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,100 @@
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=kh]
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=en]
44
+ ____________________/SpecimenDescription[@languageCode=kh]
45
+ ____________________/SpecimenIdentifier
46
+ ________________/DesignTitle
47
+ ________________/DesignTitle[@languageCode=kh]
48
+ ________________/DesignTitle[@sequenceNumber=1]
49
+ ________________/DesignerDetails
50
+ __________________/Designer
51
+ ____________________/DesignerAddressBook
52
+ ______________________/FormattedNameAddress
53
+ ________________________/Address
54
+ __________________________/AddressCountryCode
55
+ __________________________/FreeFormatAddress
56
+ ____________________________/FreeFormatAddressLine
57
+ ________________________/Name
58
+ __________________________/FreeFormatName
59
+ ____________________________/FreeFormatNameDetails
60
+ ______________________________/FreeFormatNameLine
61
+ ______________________________/FreeFormatNameLine[@languageCode=kh]
62
+ ________________/ExpiryDate
63
+ ________________/IndicationProductDetails
64
+ __________________/IndicationProduct
65
+ ____________________/ClassDescriptionDetails
66
+ ______________________/ClassDescription
67
+ ________________________/ClassNumber
68
+ ________________________/ProductDescription
69
+ ____________________/ClassificationKindCode
70
+ ____________________/ClassificationVersion
71
+ ________________/NoveltyStatement
72
+ ________________/NoveltyStatement[@languageCode=en]
73
+ ________________/NoveltyStatement[@languageCode=kh]
74
+ ________________/PriorityDetails
75
+ __________________/Priority
76
+ ____________________/PriorityCountryCode
77
+ ____________________/PriorityDate
78
+ ____________________/PriorityNumber
79
+ ________________/PublicationDetails
80
+ __________________/Publication
81
+ ____________________/PublicationDate
82
+ ____________________/PublicationIdentifier
83
+ ________________/RegistrationDate
84
+ ________________/RegistrationNumber
85
+ ________________/RepresentativeDetails
86
+ __________________/Representative
87
+ ____________________/RepresentativeAddressBook
88
+ ______________________/FormattedNameAddress
89
+ ________________________/Address
90
+ __________________________/AddressCountryCode
91
+ __________________________/FreeFormatAddress
92
+ ____________________________/FreeFormatAddressLine
93
+ ________________________/Name
94
+ __________________________/FreeFormatName
95
+ ____________________________/FreeFormatNameDetails
96
+ ______________________________/FreeFormatNameLine
97
+ ______________________________/FreeFormatNameLine[@languageCode=kh]
98
+ ____________/RegistrationOfficeCode
99
+ ______/TransactionIdentifier
100
+ ______/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 = 'I/(\\d*)'
@@ -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 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 == 'industrial designs':
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,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=la]
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=la]
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=la]
56
+ ________________/ExpiryDate
57
+ ________________/IndicationProductDetails
58
+ __________________/IndicationProduct
59
+ ____________________/ClassDescriptionDetails
60
+ ______________________/ClassDescription
61
+ ________________________/ClassNumber
62
+ ________________________/ProductDescription
63
+ ____________________/ClassificationKindCode
64
+ ____________________/ClassificationVersion
65
+ ________________/NoveltyStatement
66
+ ________________/NoveltyStatement[@languageCode=la]
67
+ ________________/PriorityDetails
68
+ __________________/Priority
69
+ ____________________/PriorityCountryCode
70
+ ____________________/PriorityDate
71
+ ____________________/PriorityNumber
72
+ ________________/PublicationDetails
73
+ __________________/Publication
74
+ ____________________/PublicationDate
75
+ ____________________/PublicationIdentifier
76
+ ____________________/PublicationSection
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=la]
92
+ ____________/RegistrationOfficeCode
93
+ ______/TransactionIdentifier
94
+ ______/TransactionSubCode
@@ -0,0 +1 @@
1
+ {% include "ipas/template.yml" %}
@@ -0,0 +1,6 @@
1
+ render = 'JSON'
2
+ source = 'national'
3
+
4
+ # 30-2014-0003049
5
+ appnum_mask = ['30-\\d{4}-(\\d*)',
6
+ '10-\\d{4}-(\\d*)']
@@ -0,0 +1,62 @@
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)
62
+
@@ -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=mn]
28
+ ________________/DesignCurrentStatusCode
29
+ ________________/DesignCurrentStatusDate
30
+ ________________/DesignDescription
31
+ ________________/DesignEventDetails
32
+ __________________/DesignEvent
33
+ ____________________/DesignEventCode
34
+ ____________________/DesignEventDate
35
+ ________________/DesignIdentifier
36
+ ________________/DesignRepresentationSheetDetails
37
+ __________________/DesignRepresentationSheet
38
+ ____________________/RepresentationSheetFilename
39
+ ________________/DesignSpecimenDetails
40
+ __________________/DesignSpecimen
41
+ ____________________/SpecimenDescription
42
+ ____________________/SpecimenDescription[@languageCode=mn]
43
+ ____________________/SpecimenIdentifier
44
+ ________________/DesignTitle
45
+ ________________/DesignTitle[@languageCode=mn]
46
+ ________________/DesignTitle[@sequenceNumber=1]
47
+ ________________/DesignerDetails
48
+ __________________/Designer
49
+ ____________________/DesignerAddressBook
50
+ ______________________/FormattedNameAddress
51
+ ________________________/Address
52
+ __________________________/AddressCountryCode
53
+ __________________________/FreeFormatAddress
54
+ ____________________________/FreeFormatAddressLine
55
+ ________________________/Name
56
+ __________________________/FreeFormatName
57
+ ____________________________/FreeFormatNameDetails
58
+ ______________________________/FreeFormatNameLine
59
+ ______________________________/FreeFormatNameLine[@languageCode=mn]
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
+ ________________/NoveltyStatement[@languageCode=mn]
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=mn]
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
+ # UK(E) 02-0380
5
+ appnum_mask = ['UK\(E\) (\\d*)-(\\d*)', '(\\d*)-([A-Z0-9]*)-(\\d*)']
@@ -0,0 +1,60 @@
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
+ return 'Industrial Design'
23
+
24
+ def translate_status(design):
25
+ status = design.DesignCurrentStatusCode
26
+ if status.lower() == 'lapsed':
27
+ status = 'expired'
28
+ return ipas.translate_status(status)
29
+
30
+
31
+ def get_registration_nb(design, idstatus):
32
+ if design.RegistrationNumber:
33
+ return design.RegistrationNumber
34
+
35
+ return None
36
+
37
+
38
+ def get_expiry_date(design, idstatus):
39
+ return ipas.get_expiry_date(design, idstatus)
40
+
41
+ def get_registration_date(design, idstatus):
42
+ return ipas.get_registration_date(design, idstatus)
43
+
44
+ def is_international(header):
45
+ return False
46
+
47
+ def get_ir_refnum(appnum):
48
+ return appnum
49
+
50
+ def select_earliest_date(publications):
51
+ return ipas.select_earliest_date(publications)
52
+
53
+ def deduplicate_publication_dates(publications):
54
+ return ipas.deduplicate_publication_dates(publications)
55
+
56
+ def deduplicate_classes(classes):
57
+ return ipas.deduplicate_classes(classes)
58
+
59
+ def deduplicate_publications(publications):
60
+ return ipas.deduplicate_publications(publications)
@@ -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
+ __________________________/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
+ ________________/DesignTitle
44
+ ________________/DesignTitle[@languageCode=en]
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=en]
59
+ ________________/ExpiryDate
60
+ ________________/IndicationProductDetails
61
+ __________________/IndicationProduct
62
+ ____________________/ClassDescriptionDetails
63
+ ______________________/ClassDescription
64
+ ________________________/ClassNumber
65
+ ____________________/ClassificationKindCode
66
+ ____________________/ClassificationVersion
67
+ ________________/NoveltyStatement
68
+ ________________/NoveltyStatement[@languageCode=en]
69
+ ________________/PriorityDetails
70
+ __________________/Priority
71
+ ____________________/PriorityCountryCode
72
+ ____________________/PriorityDate
73
+ ____________________/PriorityNumber
74
+ ________________/PublicationDetails
75
+ __________________/Publication
76
+ ____________________/PublicationDate
77
+ ____________________/PublicationIdentifier
78
+ ________________/RegistrationDate
79
+ ________________/RegistrationNumber
80
+ ________________/RepresentativeDetails
81
+ __________________/Representative
82
+ ____________________/RepresentativeAddressBook
83
+ ______________________/FormattedNameAddress
84
+ ________________________/Address
85
+ __________________________/AddressCountryCode
86
+ __________________________/FreeFormatAddress
87
+ ____________________________/FreeFormatAddressLine
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,5 @@
1
+ render = 'JSON'
2
+ source = 'national'
3
+
4
+ # PH/3/2011/000001 A/3/1994/009794
5
+ appnum_mask = ['PH/\\d*/(\\d*)/(\\d*)', 'A/\\d*/\\d*/(\\d*)']
@@ -0,0 +1,70 @@
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
+ date = appnum.split('/')[-2]
12
+ if date != '0':
13
+ return date
14
+ return appdate
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 design':
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
+ if status.lower() == 'in decision on registration':
33
+ status = 'pending'
34
+ if status.lower() == 'voluntary withdrawn':
35
+ status = 'withdrawn'
36
+ if status in ['926', '927']:
37
+ return 'Unknown'
38
+ return ipas.translate_status(status)
39
+
40
+
41
+ def get_registration_nb(design, idstatus):
42
+ if design.RegistrationNumber:
43
+ return design.RegistrationNumber
44
+
45
+ return None
46
+
47
+
48
+ def get_expiry_date(design, idstatus):
49
+ return ipas.get_expiry_date(design, idstatus)
50
+
51
+ def get_registration_date(design, idstatus):
52
+ return ipas.get_registration_date(design, idstatus)
53
+
54
+ def is_international(header):
55
+ return False
56
+
57
+ def get_ir_refnum(appnum):
58
+ return appnum
59
+
60
+ def select_earliest_date(publications):
61
+ return ipas.select_earliest_date(publications)
62
+
63
+ def deduplicate_publication_dates(publications):
64
+ return ipas.deduplicate_publication_dates(publications)
65
+
66
+ def deduplicate_classes(classes):
67
+ return ipas.deduplicate_classes(classes)
68
+
69
+ def deduplicate_publications(publications):
70
+ return ipas.deduplicate_publications(publications)