Skip to content

Commit 46d7ff4

Browse files
Fix pkg name2 (#1060)
* fix: corrige suppl no nome do pacote sps e permite sufixo adicional - Create dedicated sps_pkg_name_suppl property to encapsulate supplement formatting logic - Move supplement value transformation from sps_pkg_name to isolated method - Handle special case where suppl=0 becomes 'suppl' string - Format other supplement values with 's' prefix (e.g., 's1', 's2') - Improve code organization and readability in package name generation - Implement additional_sps_pkg_name_suffix as property with getter and setter - Store value in private attribute _additional_sps_pkg_name_suffix - Include additional suffix in sps_pkg_name composition - Enable dynamic modification of package name suffix after instantiation * fix: corrige referência indefinida de variável suppl em XMLWithPre - Corrige bug onde self.suppl estava sendo usado em vez da variável local suppl - Adiciona atributo _additional_sps_pkg_name_suffix ao __init__ da classe XMLWithPre - O erro ocorria no método que determina o sufixo do nome do pacote suplementar * refactor: reorganiza sistema de nomenclatura de pacotes SPS - Extrai lógica de processamento de fpage para método dedicado sps_pkg_name_fpage com @cached_property - Adiciona suporte para sequência automática baseada em v2 quando lpage == fpage - Altera formato de concatenação de fpage_seq de simples para underscore (fpage_seq -> fpage_seq) - Remove propriedade additional_sps_pkg_name_suffix e seus métodos getter/setter - Simplifica construção de sps_pkg_name removendo additional_sps_pkg_name_suffix da lista de partes - Mantém cache com @cached_property para otimização de performance
1 parent 4e18a41 commit 46d7ff4

1 file changed

Lines changed: 20 additions & 15 deletions

File tree

packtools/sps/pid_provider/xml_sps_lib.py

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -424,7 +424,6 @@ def __init__(self, xmlpre, xmltree, pretty_print=True):
424424
self.relative_system_id = None
425425
self._sps_version = None
426426
self.errors = None
427-
self._additional_sps_pkg_name_suffix = None
428427

429428
@property
430429
def data(self):
@@ -526,29 +525,35 @@ def get_zip_content(self, xml_filename, pretty_print=False):
526525
def sps_pkg_name_suffix(self):
527526
if self.elocation_id:
528527
return self.elocation_id
529-
if self.fpage:
530-
try:
531-
if int(self.fpage) != 0:
532-
return self.fpage + (self.fpage_seq or "")
533-
except (TypeError, ValueError):
534-
return self.fpage + (self.fpage_seq or "")
528+
if self.sps_pkg_name_fpage:
529+
return self.sps_pkg_name_fpage
535530
if self.main_doi:
536531
doi = self.main_doi
537532
if "/" in doi:
538533
doi = doi[doi.rfind("/") + 1 :]
539534
return doi.replace(".", "-")
540535

536+
@cached_property
537+
def sps_pkg_name_fpage(self):
538+
fpage = self.fpage
539+
if not fpage:
540+
return None
541+
try:
542+
if int(fpage) == 0:
543+
return None
544+
except (TypeError, ValueError):
545+
pass
546+
seq = self.fpage_seq
547+
if not seq:
548+
if self.lpage == fpage:
549+
seq = self.v2 and self.v2[-5:]
550+
if seq:
551+
return f"{fpage}_{seq}"
552+
return fpage
553+
541554
@cached_property
542555
def alternative_sps_pkg_name_suffix(self):
543556
return self.order or self.filename
544-
545-
@property
546-
def additional_sps_pkg_name_suffix(self):
547-
return self._additional_sps_pkg_name_suffix
548-
549-
@additional_sps_pkg_name_suffix.setter
550-
def additional_sps_pkg_name_suffix(self, value):
551-
self._additional_sps_pkg_name_suffix = value
552557

553558
@cached_property
554559
def sps_pkg_name(self):

0 commit comments

Comments
 (0)