wipo-gbd-transformation 1.1.47__py3-none-any.whl → 1.1.59__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of wipo-gbd-transformation might be problematic. Click here for more details.

Files changed (138) hide show
  1. gbdtransformation/brands/attm/template.yml +1 -2
  2. gbdtransformation/brands/bgtm/template.yml +1 -1
  3. gbdtransformation/brands/catm/filters.py +2 -1
  4. gbdtransformation/brands/catm/template.yml +10 -6
  5. gbdtransformation/brands/chtm/filters.py +159 -181
  6. gbdtransformation/brands/chtm/schema +79 -91
  7. gbdtransformation/brands/chtm/template.yml +97 -106
  8. gbdtransformation/brands/eetm/template.yml +1 -1
  9. gbdtransformation/brands/emtm/template.yml +1 -1
  10. gbdtransformation/brands/estm/template.yml +1 -1
  11. gbdtransformation/brands/frtm/template.yml +1 -1
  12. gbdtransformation/brands/gdtm/__init__.py +5 -0
  13. gbdtransformation/brands/gdtm/filters.py +61 -0
  14. gbdtransformation/brands/gdtm/schema +87 -0
  15. gbdtransformation/brands/gdtm/template.yml +1 -0
  16. gbdtransformation/brands/gdtm/tests/__init__.py +0 -0
  17. gbdtransformation/brands/istm/filters.py +21 -14
  18. gbdtransformation/brands/istm/template.yml +1 -1
  19. gbdtransformation/brands/krtm/template.yml +1 -1
  20. gbdtransformation/brands/lktm/__init__.py +5 -0
  21. gbdtransformation/brands/lktm/filters.py +83 -0
  22. gbdtransformation/brands/lktm/schema +87 -0
  23. gbdtransformation/brands/lktm/template.yml +1 -0
  24. gbdtransformation/brands/lktm/tests/__init__.py +0 -0
  25. gbdtransformation/brands/natm/__init__.py +2 -3
  26. gbdtransformation/brands/natm/filters.py +8 -2
  27. gbdtransformation/brands/notm/__init__.py +5 -0
  28. gbdtransformation/brands/notm/filters.py +113 -0
  29. gbdtransformation/brands/notm/template.yml +152 -0
  30. gbdtransformation/brands/nztm/template.yml +1 -1
  31. gbdtransformation/brands/phtm/schema +79 -50
  32. gbdtransformation/brands/phtm/schema.classic +50 -0
  33. gbdtransformation/brands/phtm/template.classic.yml +102 -0
  34. gbdtransformation/brands/phtm/template.yml +1 -102
  35. gbdtransformation/brands/qatm/__init__.py +5 -0
  36. gbdtransformation/brands/qatm/filters.py +81 -0
  37. gbdtransformation/brands/qatm/schema +87 -0
  38. gbdtransformation/brands/qatm/template.yml +1 -0
  39. gbdtransformation/brands/qatm/tests/__init__.py +0 -0
  40. gbdtransformation/brands/sgtm/filters.py +1 -1
  41. gbdtransformation/brands/sgtm/template.trademark.yml +2 -2
  42. gbdtransformation/brands/ustm/template.yml +1 -1
  43. gbdtransformation/brands/vctm/__init__.py +5 -0
  44. gbdtransformation/brands/vctm/filters.py +75 -0
  45. gbdtransformation/brands/vctm/schema +87 -0
  46. gbdtransformation/brands/vctm/template.yml +1 -0
  47. gbdtransformation/brands/vctm/tests/__init__.py +0 -0
  48. gbdtransformation/brands/vntm/filters.py +1 -3
  49. gbdtransformation/brands/xxxx/template.yml +1 -1
  50. gbdtransformation/designs/__init__.py +8 -0
  51. gbdtransformation/designs/alid/__init__.py +1 -1
  52. gbdtransformation/designs/alid/filters.py +14 -1
  53. gbdtransformation/designs/bnid/__init__.py +5 -0
  54. gbdtransformation/designs/bnid/filters.py +61 -0
  55. gbdtransformation/designs/bnid/schema +80 -0
  56. gbdtransformation/designs/bnid/template.yml +1 -0
  57. gbdtransformation/designs/bwid/__init__.py +6 -0
  58. gbdtransformation/designs/bwid/filters.py +64 -0
  59. gbdtransformation/designs/bwid/schema +101 -0
  60. gbdtransformation/designs/bwid/template.yml +1 -0
  61. gbdtransformation/designs/crid/__init__.py +5 -0
  62. gbdtransformation/designs/crid/filters.py +63 -0
  63. gbdtransformation/designs/crid/schema +94 -0
  64. gbdtransformation/designs/crid/template.yml +1 -0
  65. gbdtransformation/designs/cuid/__init__.py +5 -0
  66. gbdtransformation/designs/cuid/filters.py +60 -0
  67. gbdtransformation/designs/cuid/schema +98 -0
  68. gbdtransformation/designs/cuid/template.yml +1 -0
  69. gbdtransformation/designs/egid/__init__.py +5 -0
  70. gbdtransformation/designs/egid/filters.py +62 -0
  71. gbdtransformation/designs/egid/schema +82 -0
  72. gbdtransformation/designs/egid/template.yml +1 -0
  73. gbdtransformation/designs/filters.py +73 -0
  74. gbdtransformation/designs/idid/__init__.py +5 -0
  75. gbdtransformation/designs/idid/filters.py +67 -0
  76. gbdtransformation/designs/idid/schema +102 -0
  77. gbdtransformation/designs/idid/template.yml +1 -0
  78. gbdtransformation/designs/ipas/filters.py +84 -2
  79. gbdtransformation/designs/ipas/template.yml +90 -79
  80. gbdtransformation/designs/joid/__init__.py +6 -0
  81. gbdtransformation/designs/joid/filters.py +62 -0
  82. gbdtransformation/designs/joid/schema +97 -0
  83. gbdtransformation/designs/joid/template.yml +1 -0
  84. gbdtransformation/designs/keid/__init__.py +5 -0
  85. gbdtransformation/designs/keid/filters.py +62 -0
  86. gbdtransformation/designs/keid/schema +99 -0
  87. gbdtransformation/designs/keid/template.yml +1 -0
  88. gbdtransformation/designs/khid/__init__.py +5 -0
  89. gbdtransformation/designs/khid/filters.py +63 -0
  90. gbdtransformation/designs/khid/schema +100 -0
  91. gbdtransformation/designs/khid/template.yml +1 -0
  92. gbdtransformation/designs/laid/__init__.py +5 -0
  93. gbdtransformation/designs/laid/filters.py +61 -0
  94. gbdtransformation/designs/laid/schema +94 -0
  95. gbdtransformation/designs/laid/template.yml +1 -0
  96. gbdtransformation/designs/mnid/__init__.py +6 -0
  97. gbdtransformation/designs/mnid/filters.py +62 -0
  98. gbdtransformation/designs/mnid/schema +98 -0
  99. gbdtransformation/designs/mnid/template.yml +1 -0
  100. gbdtransformation/designs/myid/__init__.py +5 -0
  101. gbdtransformation/designs/myid/filters.py +60 -0
  102. gbdtransformation/designs/myid/schema +95 -0
  103. gbdtransformation/designs/myid/template.yml +1 -0
  104. gbdtransformation/designs/phid/__init__.py +5 -0
  105. gbdtransformation/designs/phid/filters.py +70 -0
  106. gbdtransformation/designs/phid/schema +95 -0
  107. gbdtransformation/designs/phid/template.yml +1 -0
  108. gbdtransformation/designs/sgid/__init__.py +6 -0
  109. gbdtransformation/designs/sgid/filters.py +66 -0
  110. gbdtransformation/designs/sgid/schema +115 -0
  111. gbdtransformation/designs/sgid/template.yml +1 -0
  112. gbdtransformation/designs/thid/__init__.py +4 -0
  113. gbdtransformation/designs/thid/filters.py +64 -0
  114. gbdtransformation/designs/thid/schema +98 -0
  115. gbdtransformation/designs/thid/template.yml +1 -0
  116. gbdtransformation/designs/tnid/__init__.py +5 -0
  117. gbdtransformation/designs/tnid/filters.py +66 -0
  118. gbdtransformation/designs/tnid/schema +96 -0
  119. gbdtransformation/designs/tnid/template.yml +1 -0
  120. gbdtransformation/designs/vnid/__init__.py +5 -0
  121. gbdtransformation/designs/vnid/filters.py +62 -0
  122. gbdtransformation/designs/vnid/schema +97 -0
  123. gbdtransformation/designs/vnid/template.yml +1 -0
  124. gbdtransformation/designs/woid/__init__.py +2 -0
  125. gbdtransformation/designs/woid/filters.py +372 -0
  126. gbdtransformation/designs/woid/schema +592 -0
  127. gbdtransformation/designs/woid/template.yml +516 -0
  128. gbdtransformation/designs/xxid/template.yml +331 -119
  129. gbdtransformation/execs-nico.py +709 -0
  130. gbdtransformation/execs.py +55 -4
  131. gbdtransformation/gbd-transform.exec.tgz +0 -0
  132. {wipo_gbd_transformation-1.1.47.dist-info → wipo_gbd_transformation-1.1.59.dist-info}/METADATA +4 -1
  133. {wipo_gbd_transformation-1.1.47.dist-info → wipo_gbd_transformation-1.1.59.dist-info}/RECORD +138 -38
  134. wipo_gbd_transformation-1.1.59.dist-info/SOURCES_Stefans-Mac-Studio.local_Sep-18-063455-2024_Conflict.txt +690 -0
  135. {wipo_gbd_transformation-1.1.47.dist-info → wipo_gbd_transformation-1.1.59.dist-info}/entry_points.txt +1 -0
  136. {wipo_gbd_transformation-1.1.47.dist-info → wipo_gbd_transformation-1.1.59.dist-info}/LICENSE.md +0 -0
  137. {wipo_gbd_transformation-1.1.47.dist-info → wipo_gbd_transformation-1.1.59.dist-info}/WHEEL +0 -0
  138. {wipo_gbd_transformation-1.1.47.dist-info → wipo_gbd_transformation-1.1.59.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,61 @@
1
+ # standard gbd definitions
2
+ import gbdtransformation.designs.ipas.filters as ipas
3
+
4
+
5
+ # namespaces defined in XML and to be ignored in procecssing
6
+ ignore_namespace = [
7
+ 'http://www.wipo.int/standards/XMLSchema/designs',
8
+ 'http://www.wipo.int/standards/XMLSchema/wo-designs'
9
+ ]
10
+ def get_appdate(appdate, appnum):
11
+ return appnum.split('/')[-2]
12
+
13
+ def get_designs_count(design, header):
14
+ return '1'
15
+
16
+ def get_designs_pos(design, header):
17
+ return '1'
18
+
19
+ def translate_kind(desgin, header):
20
+ code = header.TransactionCode.lower()
21
+ subcode = header.TransactionSubCode.lower()
22
+ if code == 'industrial design':
23
+ return 'Industrial Design'
24
+ raise Exception('Type "%s" "%s" is not mapped.' % (code, subcode))
25
+
26
+ def translate_status(design):
27
+ status = design.DesignCurrentStatusCode
28
+
29
+ return ipas.translate_status(status)
30
+
31
+
32
+ def get_registration_nb(design, idstatus):
33
+ if design.RegistrationNumber:
34
+ return design.RegistrationNumber
35
+
36
+ return None
37
+
38
+
39
+ def get_expiry_date(design, idstatus):
40
+ return ipas.get_expiry_date(design, idstatus)
41
+
42
+ def get_registration_date(design, idstatus):
43
+ return ipas.get_registration_date(design, idstatus)
44
+
45
+ def is_international(header):
46
+ return False
47
+
48
+ def get_ir_refnum(appnum):
49
+ return appnum
50
+
51
+ def select_earliest_date(publications):
52
+ return ipas.select_earliest_date(publications)
53
+
54
+ def deduplicate_publication_dates(publications):
55
+ return ipas.deduplicate_publication_dates(publications)
56
+
57
+ def deduplicate_classes(classes):
58
+ return ipas.deduplicate_classes(classes)
59
+
60
+ def deduplicate_publications(publications):
61
+ return ipas.deduplicate_publications(publications)
@@ -0,0 +1,80 @@
1
+ /Transaction
2
+ __/DesignTransactionBody
3
+ ____/TransactionContentDetails
4
+ ______/TransactionCode
5
+ ______/TransactionData
6
+ ________/DesignApplicationDetails
7
+ __________/DesignApplication
8
+ ____________/ApplicantDetails
9
+ ______________/ApplicantKey
10
+ ____________/DesignApplicationDate
11
+ ____________/DesignApplicationLanguageCode
12
+ ____________/DesignApplicationNumber
13
+ ____________/DesignDetails
14
+ ______________/Design
15
+ ________________/ApplicantDetails
16
+ __________________/Applicant
17
+ ____________________/ApplicantAddressBook
18
+ ______________________/FormattedNameAddress
19
+ ________________________/Address
20
+ __________________________/AddressCountryCode
21
+ __________________________/FreeFormatAddress
22
+ ____________________________/FreeFormatAddressLine
23
+ ________________________/Name
24
+ __________________________/FreeFormatName
25
+ ____________________________/FreeFormatNameDetails
26
+ ______________________________/FreeFormatNameLine
27
+ ______________________________/FreeFormatNameLine[@languageCode=en]
28
+ ________________/DesignCurrentStatusCode
29
+ ________________/DesignCurrentStatusDate
30
+ ________________/DesignDescription
31
+ ________________/DesignEventDetails
32
+ __________________/DesignEvent
33
+ ____________________/DesignEventCode
34
+ ____________________/DesignEventDate
35
+ ____________________/OfficeSpecificDesignEventCode
36
+ ____________________/OfficeSpecificDesignEventDescription
37
+ ____________________/OfficeSpecificDesignEventDescription[@languageCode=en]
38
+ ________________/DesignIdentifier
39
+ ________________/DesignRepresentationSheetDetails
40
+ __________________/DesignRepresentationSheet
41
+ ____________________/RepresentationSheetFilename
42
+ ________________/DesignTitle
43
+ ________________/DesignTitle[@languageCode=en]
44
+ ________________/DesignTitle[@sequenceNumber=1]
45
+ ________________/IndicationProductDetails
46
+ __________________/IndicationProduct
47
+ ____________________/ClassDescriptionDetails
48
+ ______________________/ClassDescription
49
+ ________________________/ClassNumber
50
+ ________________________/ProductDescription
51
+ ____________________/ClassificationKindCode
52
+ ____________________/ClassificationVersion
53
+ ________________/NoveltyStatement
54
+ ________________/NoveltyStatement[@languageCode=en]
55
+ ________________/PriorityDetails
56
+ __________________/Priority
57
+ ____________________/PriorityCountryCode
58
+ ____________________/PriorityDate
59
+ ____________________/PriorityNumber
60
+ ________________/PublicationDetails
61
+ __________________/Publication
62
+ ____________________/PublicationDate
63
+ ________________/RegistrationDate
64
+ ________________/RegistrationNumber
65
+ ________________/RepresentativeDetails
66
+ __________________/Representative
67
+ ____________________/RepresentativeAddressBook
68
+ ______________________/FormattedNameAddress
69
+ ________________________/Address
70
+ __________________________/AddressCountryCode
71
+ __________________________/FreeFormatAddress
72
+ ____________________________/FreeFormatAddressLine
73
+ ________________________/Name
74
+ __________________________/FreeFormatName
75
+ ____________________________/FreeFormatNameDetails
76
+ ______________________________/FreeFormatNameLine
77
+ ______________________________/FreeFormatNameLine[@languageCode=en]
78
+ ____________/RegistrationOfficeCode
79
+ ______/TransactionIdentifier
80
+ ______/TransactionSubCode
@@ -0,0 +1 @@
1
+ {% include "ipas/template.yml" %}
@@ -0,0 +1,6 @@
1
+ render = 'JSON'
2
+ source = 'national'
3
+
4
+ # AL/I/1996/000003
5
+ appnum_mask = ['BWBW([F|P])\\d{4}(\\d*)',
6
+ 'BWAP([F|P])\\d{4}(\\d*)']
@@ -0,0 +1,64 @@
1
+ # standard gbd definitions
2
+ import gbdtransformation.designs.ipas.filters as ipas
3
+ import re
4
+
5
+ # namespaces defined in XML and to be ignored in procecssing
6
+ ignore_namespace = [
7
+ 'http://www.wipo.int/standards/XMLSchema/designs',
8
+ 'http://www.wipo.int/standards/XMLSchema/wo-designs'
9
+ ]
10
+ def get_appdate(appdate, appnum):
11
+ mask = '[A-Z]*(\\d{4})\\d*'
12
+ regex = re.compile('^%s$' % mask)
13
+ matches = regex.search(appnum)
14
+ return ''.join(matches.groups())
15
+
16
+ def get_designs_count(design, header):
17
+ return '1'
18
+
19
+ def get_designs_pos(design, header):
20
+ return '1'
21
+
22
+ def translate_kind(desgin, header):
23
+ code = header.TransactionCode.lower()
24
+ subcode = header.TransactionSubCode.lower()
25
+ if code == 'industrial designs':
26
+ return "Industrial Design"
27
+ raise Exception('Type "%s" "%s" is not mapped.' % (code, subcode))
28
+
29
+ def translate_status(design):
30
+ status = design.DesignCurrentStatusCode
31
+
32
+ return ipas.translate_status(status)
33
+
34
+
35
+ def get_registration_nb(design, idstatus):
36
+ if design.RegistrationNumber:
37
+ return design.RegistrationNumber
38
+
39
+ return None
40
+
41
+
42
+ def get_expiry_date(design, idstatus):
43
+ return ipas.get_expiry_date(design, idstatus)
44
+
45
+ def get_registration_date(design, idstatus):
46
+ return ipas.get_registration_date(design, idstatus)
47
+
48
+ def is_international(header):
49
+ return False
50
+
51
+ def get_ir_refnum(appnum):
52
+ return appnum
53
+
54
+ def select_earliest_date(publications):
55
+ return ipas.select_earliest_date(publications)
56
+
57
+ def deduplicate_publication_dates(publications):
58
+ return ipas.deduplicate_publication_dates(publications)
59
+
60
+ def deduplicate_classes(classes):
61
+ return ipas.deduplicate_classes(classes)
62
+
63
+ def deduplicate_publications(publications):
64
+ return ipas.deduplicate_publications(publications)
@@ -0,0 +1,101 @@
1
+ /Transaction
2
+ __/DesignTransactionBody
3
+ ____/TransactionContentDetails
4
+ ______/TransactionCode
5
+ ______/TransactionData
6
+ ________/DesignApplicationDetails
7
+ __________/DesignApplication
8
+ ____________/ApplicantDetails
9
+ ______________/ApplicantKey
10
+ ____________/DesignApplicationDate
11
+ ____________/DesignApplicationLanguageCode
12
+ ____________/DesignApplicationNumber
13
+ ____________/DesignDetails
14
+ ______________/Design
15
+ ________________/ApplicantDetails
16
+ __________________/Applicant
17
+ ____________________/ApplicantAddressBook
18
+ ______________________/FormattedNameAddress
19
+ ________________________/Address
20
+ __________________________/AddressCountryCode
21
+ __________________________/FreeFormatAddress
22
+ ____________________________/FreeFormatAddressLine
23
+ ________________________/Name
24
+ __________________________/FreeFormatName
25
+ ____________________________/FreeFormatNameDetails
26
+ ______________________________/FreeFormatNameLine
27
+ ______________________________/FreeFormatNameLine[@languageCode=en]
28
+ ________________/DesignCurrentStatusCode
29
+ ________________/DesignCurrentStatusDate
30
+ ________________/DesignDescription
31
+ ________________/DesignEventDetails
32
+ __________________/DesignEvent
33
+ ____________________/DesignEventCode
34
+ ____________________/DesignEventDate
35
+ ____________________/OfficeSpecificDesignEventCode
36
+ ____________________/OfficeSpecificDesignEventDescription
37
+ ____________________/OfficeSpecificDesignEventDescription[@languageCode=en]
38
+ ____________________/OfficeSpecificDesignEventName
39
+ ________________/DesignIdentifier
40
+ ________________/DesignRepresentationSheetDetails
41
+ __________________/DesignRepresentationSheet
42
+ ____________________/RepresentationSheetFilename
43
+ ________________/DesignSpecimenDetails
44
+ __________________/DesignSpecimen
45
+ ____________________/SpecimenDescription
46
+ ____________________/SpecimenDescription[@languageCode=en]
47
+ ____________________/SpecimenIdentifier
48
+ ________________/DesignTitle
49
+ ________________/DesignTitle[@languageCode=en]
50
+ ________________/DesignTitle[@sequenceNumber=1]
51
+ ________________/DesignerDetails
52
+ __________________/Designer
53
+ ____________________/DesignerAddressBook
54
+ ______________________/FormattedNameAddress
55
+ ________________________/Address
56
+ __________________________/AddressCountryCode
57
+ __________________________/FreeFormatAddress
58
+ ____________________________/FreeFormatAddressLine
59
+ ________________________/Name
60
+ __________________________/FreeFormatName
61
+ ____________________________/FreeFormatNameDetails
62
+ ______________________________/FreeFormatNameLine
63
+ ______________________________/FreeFormatNameLine[@languageCode=en]
64
+ ________________/ExpiryDate
65
+ ________________/IndicationProductDetails
66
+ __________________/IndicationProduct
67
+ ____________________/ClassDescriptionDetails
68
+ ______________________/ClassDescription
69
+ ________________________/ClassNumber
70
+ ________________________/ProductDescription
71
+ ____________________/ClassificationKindCode
72
+ ____________________/ClassificationVersion
73
+ ________________/NoveltyStatement
74
+ ________________/NoveltyStatement[@languageCode=en]
75
+ ________________/PriorityDetails
76
+ __________________/Priority
77
+ ____________________/PriorityCountryCode
78
+ ____________________/PriorityDate
79
+ ____________________/PriorityNumber
80
+ ________________/PublicationDetails
81
+ __________________/Publication
82
+ ____________________/PublicationDate
83
+ ____________________/PublicationIdentifier
84
+ ________________/RegistrationDate
85
+ ________________/RegistrationNumber
86
+ ________________/RepresentativeDetails
87
+ __________________/Representative
88
+ ____________________/RepresentativeAddressBook
89
+ ______________________/FormattedNameAddress
90
+ ________________________/Address
91
+ __________________________/AddressCountryCode
92
+ __________________________/FreeFormatAddress
93
+ ____________________________/FreeFormatAddressLine
94
+ ________________________/Name
95
+ __________________________/FreeFormatName
96
+ ____________________________/FreeFormatNameDetails
97
+ ______________________________/FreeFormatNameLine
98
+ ______________________________/FreeFormatNameLine[@languageCode=en]
99
+ ____________/RegistrationOfficeCode
100
+ ______/TransactionIdentifier
101
+ ______/TransactionSubCode
@@ -0,0 +1 @@
1
+ {% include "ipas/template.yml" %}
@@ -0,0 +1,5 @@
1
+ render = 'JSON'
2
+ source = 'national'
3
+
4
+ # AL/I/1996/000003
5
+ appnum_mask = ['\\d{4}-(\\d*)']
@@ -0,0 +1,63 @@
1
+ # standard gbd definitions
2
+ import gbdtransformation.designs.ipas.filters as ipas
3
+ import re
4
+
5
+ # namespaces defined in XML and to be ignored in procecssing
6
+ ignore_namespace = [
7
+ 'http://www.wipo.int/standards/XMLSchema/designs',
8
+ 'http://www.wipo.int/standards/XMLSchema/wo-designs'
9
+ ]
10
+ def get_appdate(appdate, appnum):
11
+ return appdate
12
+
13
+ def get_designs_count(design, header):
14
+ return '1'
15
+
16
+ def get_designs_pos(design, header):
17
+ return '1'
18
+
19
+ def translate_kind(desgin, header):
20
+ code = header.TransactionCode.lower()
21
+ subcode = header.TransactionSubCode.lower()
22
+ if subcode == 'diseño industrial':
23
+ return "Industrial Design"
24
+ raise Exception('Type "%s" "%s" is not mapped.' % (code, subcode))
25
+
26
+ def translate_status(design):
27
+ status = design.DesignCurrentStatusCode
28
+ if status.lower() == 'presentada':
29
+ status = 'filed'
30
+ return ipas.translate_status(status)
31
+
32
+
33
+ def get_registration_nb(design, idstatus):
34
+ if design.RegistrationNumber:
35
+ return design.RegistrationNumber
36
+
37
+ return None
38
+
39
+
40
+ def get_expiry_date(design, idstatus):
41
+ return ipas.get_expiry_date(design, idstatus)
42
+
43
+ def get_registration_date(design, idstatus):
44
+ return ipas.get_registration_date(design, idstatus)
45
+
46
+ def is_international(header):
47
+ return False
48
+
49
+ def get_ir_refnum(appnum):
50
+ return appnum
51
+
52
+ def select_earliest_date(publications):
53
+ return ipas.select_earliest_date(publications)
54
+
55
+ def deduplicate_publication_dates(publications):
56
+ return ipas.deduplicate_publication_dates(publications)
57
+
58
+ def deduplicate_classes(classes):
59
+ return ipas.deduplicate_classes(classes)
60
+
61
+ def deduplicate_publications(publications):
62
+ return ipas.deduplicate_publications(publications)
63
+
@@ -0,0 +1,94 @@
1
+ /Transaction
2
+ __/DesignTransactionBody
3
+ ____/TransactionContentDetails
4
+ ______/TransactionCode
5
+ ______/TransactionData
6
+ ________/DesignApplicationDetails
7
+ __________/DesignApplication
8
+ ____________/ApplicantDetails
9
+ ______________/ApplicantKey
10
+ ____________/DesignApplicationDate
11
+ ____________/DesignApplicationLanguageCode
12
+ ____________/DesignApplicationNumber
13
+ ____________/DesignDetails
14
+ ______________/Design
15
+ ________________/ApplicantDetails
16
+ __________________/Applicant
17
+ ____________________/ApplicantAddressBook
18
+ ______________________/FormattedNameAddress
19
+ ________________________/Address
20
+ __________________________/AddressCountryCode
21
+ __________________________/FreeFormatAddress
22
+ ____________________________/FreeFormatAddressLine
23
+ ________________________/Name
24
+ __________________________/FreeFormatName
25
+ ____________________________/FreeFormatNameDetails
26
+ ______________________________/FreeFormatNameLine
27
+ ______________________________/FreeFormatNameLine[@languageCode=es]
28
+ ________________/DesignCurrentStatusCode
29
+ ________________/DesignCurrentStatusDate
30
+ ________________/DesignDescription
31
+ ________________/DesignEventDetails
32
+ __________________/DesignEvent
33
+ ____________________/DesignEventCode
34
+ ____________________/DesignEventDate
35
+ ____________________/OfficeSpecificDesignEventName
36
+ ________________/DesignIdentifier
37
+ ________________/DesignRepresentationSheetDetails
38
+ __________________/DesignRepresentationSheet
39
+ ____________________/RepresentationSheetFilename
40
+ ________________/DesignTitle
41
+ ________________/DesignTitle[@languageCode=es]
42
+ ________________/DesignTitle[@sequenceNumber=1]
43
+ ________________/DesignerDetails
44
+ __________________/Designer
45
+ ____________________/DesignerAddressBook
46
+ ______________________/FormattedNameAddress
47
+ ________________________/Address
48
+ __________________________/AddressCountryCode
49
+ __________________________/FreeFormatAddress
50
+ ____________________________/FreeFormatAddressLine
51
+ ________________________/Name
52
+ __________________________/FreeFormatName
53
+ ____________________________/FreeFormatNameDetails
54
+ ______________________________/FreeFormatNameLine
55
+ ______________________________/FreeFormatNameLine[@languageCode=es]
56
+ ________________/ExpiryDate
57
+ ________________/IndicationProductDetails
58
+ __________________/IndicationProduct
59
+ ____________________/ClassDescriptionDetails
60
+ ______________________/ClassDescription
61
+ ________________________/ClassNumber
62
+ ________________________/ProductDescription
63
+ ____________________/ClassificationKindCode
64
+ ____________________/ClassificationVersion
65
+ ________________/NoveltyStatement
66
+ ________________/NoveltyStatement[@languageCode=en]
67
+ ________________/NoveltyStatement[@languageCode=es]
68
+ ________________/PriorityDetails
69
+ __________________/Priority
70
+ ____________________/PriorityCountryCode
71
+ ____________________/PriorityDate
72
+ ____________________/PriorityNumber
73
+ ________________/PublicationDetails
74
+ __________________/Publication
75
+ ____________________/PublicationDate
76
+ ____________________/PublicationIdentifier
77
+ ________________/RegistrationDate
78
+ ________________/RegistrationNumber
79
+ ________________/RepresentativeDetails
80
+ __________________/Representative
81
+ ____________________/RepresentativeAddressBook
82
+ ______________________/FormattedNameAddress
83
+ ________________________/Address
84
+ __________________________/AddressCountryCode
85
+ __________________________/FreeFormatAddress
86
+ ____________________________/FreeFormatAddressLine
87
+ ________________________/Name
88
+ __________________________/FreeFormatName
89
+ ____________________________/FreeFormatNameDetails
90
+ ______________________________/FreeFormatNameLine
91
+ ______________________________/FreeFormatNameLine[@languageCode=es]
92
+ ____________/RegistrationOfficeCode
93
+ ______/TransactionIdentifier
94
+ ______/TransactionSubCode
@@ -0,0 +1 @@
1
+ {% include "ipas/template.yml" %}
@@ -0,0 +1,5 @@
1
+ render = 'JSON'
2
+ source = 'national'
3
+
4
+ # CU/I/1996/000105
5
+ appnum_mask = ['CU/I/\\d{4}/(\\d*)']
@@ -0,0 +1,60 @@
1
+ # standard gbd definitions
2
+ import gbdtransformation.designs.ipas.filters as ipas
3
+ import re
4
+
5
+ # namespaces defined in XML and to be ignored in procecssing
6
+ ignore_namespace = [
7
+ 'http://www.wipo.int/standards/XMLSchema/designs',
8
+ 'http://www.wipo.int/standards/XMLSchema/wo-designs'
9
+ ]
10
+ def get_appdate(appdate, appnum):
11
+ return appdate
12
+
13
+ def get_designs_count(design, header):
14
+ return '1'
15
+
16
+ def get_designs_pos(design, header):
17
+ return '1'
18
+
19
+ def translate_kind(desgin, header):
20
+ return "Industrial Design"
21
+
22
+
23
+ def translate_status(design):
24
+ status = design.DesignCurrentStatusCode
25
+ if status == '1934':
26
+ return 'Unknown'
27
+ return ipas.translate_status(status)
28
+
29
+
30
+ def get_registration_nb(design, idstatus):
31
+ if design.RegistrationNumber:
32
+ return design.RegistrationNumber
33
+
34
+ return None
35
+
36
+
37
+ def get_expiry_date(design, idstatus):
38
+ return ipas.get_expiry_date(design, idstatus)
39
+
40
+ def get_registration_date(design, idstatus):
41
+ return ipas.get_registration_date(design, idstatus)
42
+
43
+ def is_international(header):
44
+ return False
45
+
46
+ def get_ir_refnum(appnum):
47
+ return appnum
48
+
49
+ def select_earliest_date(publications):
50
+ return ipas.select_earliest_date(publications)
51
+
52
+ def deduplicate_publication_dates(publications):
53
+ return ipas.deduplicate_publication_dates(publications)
54
+
55
+ def deduplicate_classes(classes):
56
+ return ipas.deduplicate_classes(classes)
57
+
58
+ def deduplicate_publications(publications):
59
+ return ipas.deduplicate_publications(publications)
60
+
@@ -0,0 +1,98 @@
1
+ /Transaction
2
+ __/DesignTransactionBody
3
+ ____/TransactionContentDetails
4
+ ______/TransactionCode
5
+ ______/TransactionData
6
+ ________/DesignApplicationDetails
7
+ __________/DesignApplication
8
+ ____________/ApplicantDetails
9
+ ______________/ApplicantKey
10
+ ____________/DesignApplicationDate
11
+ ____________/DesignApplicationLanguageCode
12
+ ____________/DesignApplicationNumber
13
+ ____________/DesignDetails
14
+ ______________/Design
15
+ ________________/ApplicantDetails
16
+ __________________/Applicant
17
+ ____________________/ApplicantAddressBook
18
+ ______________________/FormattedNameAddress
19
+ ________________________/Address
20
+ __________________________/AddressCountryCode
21
+ __________________________/FreeFormatAddress
22
+ ____________________________/FreeFormatAddressLine
23
+ ________________________/Name
24
+ __________________________/FreeFormatName
25
+ ____________________________/FreeFormatNameDetails
26
+ ______________________________/FreeFormatNameLine
27
+ ______________________________/FreeFormatNameLine[@languageCode=es]
28
+ ________________/DesignCurrentStatusCode
29
+ ________________/DesignCurrentStatusDate
30
+ ________________/DesignDescription
31
+ ________________/DesignEventDetails
32
+ __________________/DesignEvent
33
+ ____________________/DesignEventCode
34
+ ____________________/DesignEventDate
35
+ ____________________/OfficeSpecificDesignEventName
36
+ ________________/DesignIdentifier
37
+ ________________/DesignRepresentationSheetDetails
38
+ __________________/DesignRepresentationSheet
39
+ ____________________/RepresentationSheetFilename
40
+ ________________/DesignSpecimenDetails
41
+ __________________/DesignSpecimen
42
+ ____________________/SpecimenDescription
43
+ ____________________/SpecimenDescription[@languageCode=es]
44
+ ____________________/SpecimenIdentifier
45
+ ________________/DesignTitle
46
+ ________________/DesignTitle[@languageCode=es]
47
+ ________________/DesignTitle[@sequenceNumber=1]
48
+ ________________/DesignerDetails
49
+ __________________/Designer
50
+ ____________________/DesignerAddressBook
51
+ ______________________/FormattedNameAddress
52
+ ________________________/Address
53
+ __________________________/AddressCountryCode
54
+ __________________________/FreeFormatAddress
55
+ ____________________________/FreeFormatAddressLine
56
+ ________________________/Name
57
+ __________________________/FreeFormatName
58
+ ____________________________/FreeFormatNameDetails
59
+ ______________________________/FreeFormatNameLine
60
+ ______________________________/FreeFormatNameLine[@languageCode=es]
61
+ ________________/ExpiryDate
62
+ ________________/IndicationProductDetails
63
+ __________________/IndicationProduct
64
+ ____________________/ClassDescriptionDetails
65
+ ______________________/ClassDescription
66
+ ________________________/ClassNumber
67
+ ________________________/ProductDescription
68
+ ____________________/ClassificationKindCode
69
+ ____________________/ClassificationVersion
70
+ ________________/NoveltyStatement
71
+ ________________/NoveltyStatement[@languageCode=es]
72
+ ________________/PriorityDetails
73
+ __________________/Priority
74
+ ____________________/PriorityCountryCode
75
+ ____________________/PriorityDate
76
+ ____________________/PriorityNumber
77
+ ________________/PublicationDetails
78
+ __________________/Publication
79
+ ____________________/PublicationDate
80
+ ____________________/PublicationIdentifier
81
+ ________________/RegistrationDate
82
+ ________________/RegistrationNumber
83
+ ________________/RepresentativeDetails
84
+ __________________/Representative
85
+ ____________________/RepresentativeAddressBook
86
+ ______________________/FormattedNameAddress
87
+ ________________________/Address
88
+ __________________________/AddressCountryCode
89
+ __________________________/FreeFormatAddress
90
+ ____________________________/FreeFormatAddressLine
91
+ ________________________/Name
92
+ __________________________/FreeFormatName
93
+ ____________________________/FreeFormatNameDetails
94
+ ______________________________/FreeFormatNameLine
95
+ ______________________________/FreeFormatNameLine[@languageCode=es]
96
+ ____________/RegistrationOfficeCode
97
+ ______/TransactionIdentifier
98
+ ______/TransactionSubCode
@@ -0,0 +1 @@
1
+ {% include "ipas/template.yml" %}
@@ -0,0 +1,5 @@
1
+ render = 'JSON'
2
+ source = 'national'
3
+
4
+ # AL/I/1996/000003
5
+ appnum_mask = 'EG/\\d*/(\\d*)'