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,95 @@
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
+ ________________________/Name
22
+ __________________________/FreeFormatName
23
+ ____________________________/FreeFormatNameDetails
24
+ ______________________________/FreeFormatNameLine
25
+ ______________________________/FreeFormatNameLine[@languageCode=en]
26
+ ________________/DesignCurrentStatusCode
27
+ ________________/DesignCurrentStatusDate
28
+ ________________/DesignDescription
29
+ ________________/DesignEventDetails
30
+ __________________/DesignEvent
31
+ ____________________/DesignEventCode
32
+ ____________________/DesignEventDate
33
+ ____________________/OfficeSpecificDesignEventCode
34
+ ____________________/OfficeSpecificDesignEventDescription
35
+ ____________________/OfficeSpecificDesignEventDescription[@languageCode=en]
36
+ ____________________/OfficeSpecificDesignEventName
37
+ ________________/DesignIdentifier
38
+ ________________/DesignRepresentationSheetDetails
39
+ __________________/DesignRepresentationSheet
40
+ ____________________/RepresentationSheetFilename
41
+ ________________/DesignSpecimenDetails
42
+ __________________/DesignSpecimen
43
+ ____________________/SpecimenDescription
44
+ ____________________/SpecimenDescription[@languageCode=en]
45
+ ____________________/SpecimenIdentifier
46
+ ________________/DesignTitle
47
+ ________________/DesignTitle[@languageCode=en]
48
+ ________________/DesignTitle[@sequenceNumber=1]
49
+ ________________/DesignerDetails
50
+ __________________/Designer
51
+ ____________________/DesignerAddressBook
52
+ ______________________/FormattedNameAddress
53
+ ________________________/Address
54
+ __________________________/AddressCountryCode
55
+ ________________________/Name
56
+ __________________________/FreeFormatName
57
+ ____________________________/FreeFormatNameDetails
58
+ ______________________________/FreeFormatNameLine
59
+ ______________________________/FreeFormatNameLine[@languageCode=en]
60
+ ________________/ExpiryDate
61
+ ________________/IndicationProductDetails
62
+ __________________/IndicationProduct
63
+ ____________________/ClassDescriptionDetails
64
+ ______________________/ClassDescription
65
+ ________________________/ClassNumber
66
+ ________________________/ProductDescription
67
+ ____________________/ClassificationKindCode
68
+ ____________________/ClassificationVersion
69
+ ________________/NoveltyStatement
70
+ ________________/NoveltyStatement[@languageCode=en]
71
+ ________________/PriorityDetails
72
+ __________________/Priority
73
+ ____________________/PriorityCountryCode
74
+ ____________________/PriorityDate
75
+ ____________________/PriorityNumber
76
+ ________________/PublicationDetails
77
+ __________________/Publication
78
+ ____________________/PublicationDate
79
+ ____________________/PublicationIdentifier
80
+ ________________/RegistrationDate
81
+ ________________/RegistrationNumber
82
+ ________________/RepresentativeDetails
83
+ __________________/Representative
84
+ ____________________/RepresentativeAddressBook
85
+ ______________________/FormattedNameAddress
86
+ ________________________/Address
87
+ __________________________/AddressCountryCode
88
+ ________________________/Name
89
+ __________________________/FreeFormatName
90
+ ____________________________/FreeFormatNameDetails
91
+ ______________________________/FreeFormatNameLine
92
+ ______________________________/FreeFormatNameLine[@languageCode=en]
93
+ ____________/RegistrationOfficeCode
94
+ ______/TransactionIdentifier
95
+ ______/TransactionSubCode
@@ -0,0 +1 @@
1
+ {% include "ipas/template.yml" %}
@@ -0,0 +1,6 @@
1
+ render = 'JSON'
2
+ source = 'national'
3
+
4
+ #D210025 -int
5
+ #30202110025U -nat
6
+ appnum_mask = ['(DU*)\\d{4}(.*\\w)', '30\\d{4}(\\d*\\w)']
@@ -0,0 +1,66 @@
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 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
+ if code == 'industrial designs':
22
+ return 'Industrial Design'
23
+ raise Exception('Type "%s" - is not mapped.' % (code))
24
+
25
+ def translate_status(design):
26
+ status = design.DesignCurrentStatusCode
27
+ if status.lower() == 'approved':
28
+ status = 'pending'
29
+ if 'removed' in status.lower():
30
+ status = 'suspended'
31
+ if status.lower() == 'revoked':
32
+ status = 'suspended'
33
+ return ipas.translate_status(status)
34
+
35
+
36
+ def get_registration_nb(design, idstatus):
37
+ if design.RegistrationNumber:
38
+ return design.RegistrationNumber
39
+
40
+ return None
41
+
42
+
43
+ def get_expiry_date(design, idstatus):
44
+ return ipas.get_expiry_date(design, idstatus)
45
+
46
+ def get_registration_date(design, idstatus):
47
+ return ipas.get_registration_date(design, idstatus)
48
+
49
+ def is_international(header):
50
+ return False
51
+
52
+ def get_ir_refnum(appnum):
53
+ return appnum
54
+
55
+ def select_earliest_date(publications):
56
+ return ipas.select_earliest_date(publications)
57
+
58
+ def deduplicate_publication_dates(publications):
59
+ return ipas.deduplicate_publication_dates(publications)
60
+
61
+ def deduplicate_classes(classes):
62
+ return ipas.deduplicate_classes(classes)
63
+
64
+ def deduplicate_publications(publications):
65
+ return ipas.deduplicate_publications(publications)
66
+
@@ -0,0 +1,115 @@
1
+ /Transaction
2
+ __/DesignTransactionBody
3
+ ____/TransactionContentDetails
4
+ ______/TransactionCode
5
+ ______/TransactionData
6
+ ________/DesignApplicationDetails
7
+ __________/DesignApplication
8
+ ____________/ApplicantDetails
9
+ ______________/ApplicantKey
10
+ ________________/Identifier
11
+ ____________/DesignApplicationDate
12
+ ____________/DesignApplicationLanguageCode
13
+ ____________/DesignApplicationNumber
14
+ ____________/DesignApplicationStatementDetails
15
+ ______________/DesignApplicationStatementText
16
+ ____________/DesignDetails
17
+ ______________/Design
18
+ ________________/ApplicantDetails
19
+ __________________/Applicant
20
+ ____________________/ApplicantAddressBook
21
+ ______________________/FormattedNameAddress
22
+ ________________________/Address
23
+ __________________________/FreeFormatAddress
24
+ ____________________________/FreeFormatAddressLine
25
+ ________________________/Name
26
+ __________________________/FreeFormatName
27
+ ____________________________/FreeFormatNameDetails
28
+ ______________________________/FreeFormatNameLine
29
+ ____________________/ApplicantContractingParty
30
+ ____________________/ApplicantIdentifier
31
+ ____________________/ApplicantIncorporationCountryCode
32
+ ____________________/ApplicantIncorporationState
33
+ ____________________/ApplicantLegalEntity
34
+ ____________________/ApplicantNationalityCode
35
+ ____________________/ApplicantSequenceNumber
36
+ ________________/DesignCurrentStatusCode
37
+ ________________/DesignDescription
38
+ ________________/DesignEventDetails
39
+ __________________/DesignEvent
40
+ ____________________/Comment
41
+ ____________________/DesignEventCode
42
+ ____________________/DesignEventDate
43
+ ________________/DesignIdentifier
44
+ ________________/DesignRenewalDueDate
45
+ ________________/DesignRepresentationSheetDetails
46
+ __________________/DesignRepresentationSheet
47
+ ____________________/RepresentationSheetFilename
48
+ ________________/DesignTitle
49
+ ________________/DesignTitle[@languageCode=en]
50
+ ________________/DesignTitle[@sequenceNumber=1]
51
+ ________________/DesignerDetails
52
+ __________________/Designer
53
+ ____________________/DesignerAddressBook
54
+ ______________________/FormattedNameAddress
55
+ ________________________/Address
56
+ __________________________/FreeFormatAddress
57
+ ____________________________/FreeFormatAddressLine
58
+ ________________________/Name
59
+ __________________________/FreeFormatName
60
+ ____________________________/FreeFormatNameDetails
61
+ ______________________________/FreeFormatNameLine
62
+ ________________/Disclaimer
63
+ ________________/Disclaimer[@languageCode=en]
64
+ ________________/Disclaimer[@sequenceNumber=1]
65
+ ________________/ExpiryDate
66
+ ________________/IndicationProductDetails
67
+ __________________/IndicationProduct
68
+ ____________________/ClassDescriptionDetails
69
+ ______________________/ClassDescription
70
+ ________________________/ClassNumber
71
+ ____________________/ClassificationKindCode
72
+ ____________________/ClassificationVersion
73
+ ____________________/IndicationProductDescription
74
+ ________________/NoveltyStatement
75
+ ________________/NoveltyStatement[@languageCode=en]
76
+ ________________/NoveltyStatement[@sequenceNumber=1]
77
+ ________________/PriorityDetails
78
+ __________________/Priority
79
+ ____________________/PriorityCountryCode
80
+ ____________________/PriorityDate
81
+ ____________________/PriorityNumber
82
+ ________________/PublicationDetails
83
+ __________________/Publication
84
+ ____________________/PublicationDate
85
+ ____________________/PublicationIdentifier
86
+ ________________/RegistrationNumber
87
+ ________________/RelatedApplicationDetails
88
+ __________________/RelatedApplication
89
+ ____________________/RelatedApplicationKind
90
+ ____________________/RelatedApplicationRegistrationDate
91
+ ____________________/RelatedApplicationRegistrationNumber
92
+ ________________/RepresentativeDetails
93
+ __________________/Representative
94
+ ____________________/Comment
95
+ ____________________/RepresentativeAddressBook
96
+ ______________________/FormattedNameAddress
97
+ ________________________/Address
98
+ __________________________/AddressCountryCode
99
+ __________________________/FreeFormatAddress
100
+ ____________________________/FreeFormatAddressLine
101
+ ________________________/Name
102
+ __________________________/FreeFormatName
103
+ ____________________________/FreeFormatNameDetails
104
+ ______________________________/FreeFormatNameLine
105
+ ____________________/RepresentativeIdentifier
106
+ ____________________/RepresentativeKindCode
107
+ ____________________/RepresentativeNationalityCode
108
+ ________________/TotalSpecimen
109
+ ____________/DesignatedCountryDetails
110
+ ______________/DesignatedCountry
111
+ ________________/DesignatedCountryCode
112
+ ____________/ReceivingOfficeCode
113
+ ____________/ReceivingOfficeDate
114
+ ____________/RegistrationOfficeCode
115
+ ____________/TotalDesign
@@ -0,0 +1 @@
1
+ {% include "ipas/template.yml" %}
@@ -0,0 +1,4 @@
1
+ render = 'JSON'
2
+ source = 'national'
3
+
4
+ # AL/I/1996/000003
@@ -0,0 +1,64 @@
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 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 != 'national design':
23
+ raise Exception('Type "%s" "%s" is not mapped.' % (code, subcode))
24
+ if code == 'industrial designs':
25
+ return 'Industrial Design'
26
+ raise Exception('Type "%s" "%s" is not mapped.' % (code, subcode))
27
+
28
+ def translate_status(design):
29
+ status = design.DesignCurrentStatusCode
30
+
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,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=th]
28
+ ________________/DesignCurrentStatusCode
29
+ ________________/DesignCurrentStatusDate
30
+ ________________/DesignDescription
31
+ ________________/DesignEventDetails
32
+ __________________/DesignEvent
33
+ ____________________/DesignEventCode
34
+ ____________________/DesignEventDate
35
+ ____________________/OfficeSpecificDesignEventCode
36
+ ____________________/OfficeSpecificDesignEventDescription
37
+ ____________________/OfficeSpecificDesignEventDescription[@languageCode=th]
38
+ ____________________/OfficeSpecificDesignEventName
39
+ ________________/DesignIdentifier
40
+ ________________/DesignRepresentationSheetDetails
41
+ __________________/DesignRepresentationSheet
42
+ ____________________/RepresentationSheetFilename
43
+ ________________/DesignSpecimenDetails
44
+ __________________/DesignSpecimen
45
+ ____________________/SpecimenDescription
46
+ ____________________/SpecimenDescription[@languageCode=th]
47
+ ____________________/SpecimenIdentifier
48
+ ________________/DesignTitle
49
+ ________________/DesignTitle[@languageCode=th]
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=th]
64
+ ________________/ExpiryDate
65
+ ________________/IndicationProductDetails
66
+ __________________/IndicationProduct
67
+ ____________________/ClassDescriptionDetails
68
+ ______________________/ClassDescription
69
+ ________________________/ClassNumber
70
+ ____________________/ClassificationKindCode
71
+ ____________________/ClassificationVersion
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=th]
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 = 'TN/[L|D]/\\d*/(\\d*)'
@@ -0,0 +1,66 @@
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 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 code == 'dm national':
23
+ return 'Industrial Design'
24
+ if code == 'dm hague':
25
+ return 'Industrial Design'
26
+ raise Exception('Type "%s" "%s" is not mapped.' % (code, subcode))
27
+
28
+ def translate_status(design):
29
+ status = design.DesignCurrentStatusCode
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
+ code = header.TransactionCode.lower()
48
+ if code == 'dm national':
49
+ return False
50
+ if code == 'dm hague':
51
+ return True
52
+
53
+ def get_ir_refnum(appnum):
54
+ return appnum
55
+
56
+ def select_earliest_date(publications):
57
+ return ipas.select_earliest_date(publications)
58
+
59
+ def deduplicate_publication_dates(publications):
60
+ return ipas.deduplicate_publication_dates(publications)
61
+
62
+ def deduplicate_classes(classes):
63
+ return ipas.deduplicate_classes(classes)
64
+
65
+ def deduplicate_publications(publications):
66
+ return ipas.deduplicate_publications(publications)
@@ -0,0 +1,96 @@
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=fr]
28
+ ________________/DesignCurrentStatusCode
29
+ ________________/DesignCurrentStatusDate
30
+ ________________/DesignDescription
31
+ ________________/DesignEventDetails
32
+ __________________/DesignEvent
33
+ ____________________/DesignEventCode
34
+ ____________________/DesignEventDate
35
+ ____________________/OfficeSpecificDesignEventCode
36
+ ____________________/OfficeSpecificDesignEventDescription
37
+ ____________________/OfficeSpecificDesignEventDescription[@languageCode=fr]
38
+ ____________________/OfficeSpecificDesignEventName
39
+ ________________/DesignIdentifier
40
+ ________________/DesignRepresentationSheetDetails
41
+ __________________/DesignRepresentationSheet
42
+ ____________________/RepresentationSheetFilename
43
+ ________________/DesignTitle
44
+ ________________/DesignTitle[@languageCode=fr]
45
+ ________________/DesignTitle[@sequenceNumber=1]
46
+ ________________/DesignerDetails
47
+ __________________/Designer
48
+ ____________________/DesignerAddressBook
49
+ ______________________/FormattedNameAddress
50
+ ________________________/Address
51
+ __________________________/AddressCountryCode
52
+ __________________________/FreeFormatAddress
53
+ ____________________________/FreeFormatAddressLine
54
+ ________________________/Name
55
+ __________________________/FreeFormatName
56
+ ____________________________/FreeFormatNameDetails
57
+ ______________________________/FreeFormatNameLine
58
+ ______________________________/FreeFormatNameLine[@languageCode=fr]
59
+ ________________/ExpiryDate
60
+ ________________/IndicationProductDetails
61
+ __________________/IndicationProduct
62
+ ____________________/ClassDescriptionDetails
63
+ ______________________/ClassDescription
64
+ ________________________/ClassNumber
65
+ ________________________/ProductDescription
66
+ ____________________/ClassificationKindCode
67
+ ____________________/ClassificationVersion
68
+ ________________/NoveltyStatement
69
+ ________________/NoveltyStatement[@languageCode=fr]
70
+ ________________/PriorityDetails
71
+ __________________/Priority
72
+ ____________________/PriorityCountryCode
73
+ ____________________/PriorityDate
74
+ ____________________/PriorityNumber
75
+ ________________/PublicationDetails
76
+ __________________/Publication
77
+ ____________________/PublicationDate
78
+ ____________________/PublicationIdentifier
79
+ ________________/RegistrationDate
80
+ ________________/RegistrationNumber
81
+ ________________/RepresentativeDetails
82
+ __________________/Representative
83
+ ____________________/RepresentativeAddressBook
84
+ ______________________/FormattedNameAddress
85
+ ________________________/Address
86
+ __________________________/AddressCountryCode
87
+ __________________________/FreeFormatAddress
88
+ ____________________________/FreeFormatAddressLine
89
+ ________________________/Name
90
+ __________________________/FreeFormatName
91
+ ____________________________/FreeFormatNameDetails
92
+ ______________________________/FreeFormatNameLine
93
+ ______________________________/FreeFormatNameLine[@languageCode=fr]
94
+ ____________/RegistrationOfficeCode
95
+ ______/TransactionIdentifier
96
+ ______/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 = '3-\\d*-(\\d*)'