wipo-gbd-transformation 1.1.46__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.
- gbdtransformation/brands/attm/template.yml +1 -2
- gbdtransformation/brands/bgtm/template.yml +1 -1
- gbdtransformation/brands/catm/filters.py +2 -1
- gbdtransformation/brands/catm/template.yml +10 -6
- gbdtransformation/brands/chtm/filters.py +159 -181
- gbdtransformation/brands/chtm/schema +79 -91
- gbdtransformation/brands/chtm/template.yml +97 -106
- gbdtransformation/brands/eetm/template.yml +1 -1
- gbdtransformation/brands/emtm/template.yml +1 -1
- gbdtransformation/brands/estm/template.yml +1 -1
- gbdtransformation/brands/frtm/template.yml +1 -1
- gbdtransformation/brands/gdtm/__init__.py +5 -0
- gbdtransformation/brands/gdtm/filters.py +61 -0
- gbdtransformation/brands/gdtm/schema +87 -0
- gbdtransformation/brands/gdtm/template.yml +1 -0
- gbdtransformation/brands/gdtm/tests/__init__.py +0 -0
- gbdtransformation/brands/istm/filters.py +21 -11
- gbdtransformation/brands/istm/template.yml +1 -1
- gbdtransformation/brands/krtm/template.yml +1 -1
- gbdtransformation/brands/lktm/__init__.py +5 -0
- gbdtransformation/brands/lktm/filters.py +83 -0
- gbdtransformation/brands/lktm/schema +87 -0
- gbdtransformation/brands/lktm/template.yml +1 -0
- gbdtransformation/brands/lktm/tests/__init__.py +0 -0
- gbdtransformation/brands/natm/__init__.py +2 -3
- gbdtransformation/brands/natm/filters.py +8 -2
- gbdtransformation/brands/notm/__init__.py +5 -0
- gbdtransformation/brands/notm/filters.py +113 -0
- gbdtransformation/brands/notm/template.yml +152 -0
- gbdtransformation/brands/nztm/template.yml +1 -1
- gbdtransformation/brands/pgtm/filters.py +1 -0
- gbdtransformation/brands/phtm/schema +79 -50
- gbdtransformation/brands/phtm/schema.classic +50 -0
- gbdtransformation/brands/phtm/template.classic.yml +102 -0
- gbdtransformation/brands/phtm/template.yml +1 -102
- gbdtransformation/brands/qatm/__init__.py +5 -0
- gbdtransformation/brands/qatm/filters.py +81 -0
- gbdtransformation/brands/qatm/schema +87 -0
- gbdtransformation/brands/qatm/template.yml +1 -0
- gbdtransformation/brands/qatm/tests/__init__.py +0 -0
- gbdtransformation/brands/sgtm/filters.py +1 -0
- gbdtransformation/brands/sgtm/template.trademark.yml +2 -2
- gbdtransformation/brands/ustm/template.yml +1 -1
- gbdtransformation/brands/vctm/__init__.py +5 -0
- gbdtransformation/brands/vctm/filters.py +75 -0
- gbdtransformation/brands/vctm/schema +87 -0
- gbdtransformation/brands/vctm/template.yml +1 -0
- gbdtransformation/brands/vctm/tests/__init__.py +0 -0
- gbdtransformation/brands/vntm/filters.py +1 -3
- gbdtransformation/brands/xxxx/template.yml +1 -1
- gbdtransformation/designs/__init__.py +8 -0
- gbdtransformation/designs/alid/__init__.py +1 -1
- gbdtransformation/designs/alid/filters.py +14 -1
- gbdtransformation/designs/bnid/__init__.py +5 -0
- gbdtransformation/designs/bnid/filters.py +61 -0
- gbdtransformation/designs/bnid/schema +80 -0
- gbdtransformation/designs/bnid/template.yml +1 -0
- gbdtransformation/designs/bwid/__init__.py +6 -0
- gbdtransformation/designs/bwid/filters.py +64 -0
- gbdtransformation/designs/bwid/schema +101 -0
- gbdtransformation/designs/bwid/template.yml +1 -0
- gbdtransformation/designs/crid/__init__.py +5 -0
- gbdtransformation/designs/crid/filters.py +63 -0
- gbdtransformation/designs/crid/schema +94 -0
- gbdtransformation/designs/crid/template.yml +1 -0
- gbdtransformation/designs/cuid/__init__.py +5 -0
- gbdtransformation/designs/cuid/filters.py +60 -0
- gbdtransformation/designs/cuid/schema +98 -0
- gbdtransformation/designs/cuid/template.yml +1 -0
- gbdtransformation/designs/egid/__init__.py +5 -0
- gbdtransformation/designs/egid/filters.py +62 -0
- gbdtransformation/designs/egid/schema +82 -0
- gbdtransformation/designs/egid/template.yml +1 -0
- gbdtransformation/designs/filters.py +73 -0
- gbdtransformation/designs/idid/__init__.py +5 -0
- gbdtransformation/designs/idid/filters.py +67 -0
- gbdtransformation/designs/idid/schema +102 -0
- gbdtransformation/designs/idid/template.yml +1 -0
- gbdtransformation/designs/ipas/filters.py +84 -2
- gbdtransformation/designs/ipas/template.yml +90 -79
- gbdtransformation/designs/joid/__init__.py +6 -0
- gbdtransformation/designs/joid/filters.py +62 -0
- gbdtransformation/designs/joid/schema +97 -0
- gbdtransformation/designs/joid/template.yml +1 -0
- gbdtransformation/designs/keid/__init__.py +5 -0
- gbdtransformation/designs/keid/filters.py +62 -0
- gbdtransformation/designs/keid/schema +99 -0
- gbdtransformation/designs/keid/template.yml +1 -0
- gbdtransformation/designs/khid/__init__.py +5 -0
- gbdtransformation/designs/khid/filters.py +63 -0
- gbdtransformation/designs/khid/schema +100 -0
- gbdtransformation/designs/khid/template.yml +1 -0
- gbdtransformation/designs/laid/__init__.py +5 -0
- gbdtransformation/designs/laid/filters.py +61 -0
- gbdtransformation/designs/laid/schema +94 -0
- gbdtransformation/designs/laid/template.yml +1 -0
- gbdtransformation/designs/mnid/__init__.py +6 -0
- gbdtransformation/designs/mnid/filters.py +62 -0
- gbdtransformation/designs/mnid/schema +98 -0
- gbdtransformation/designs/mnid/template.yml +1 -0
- gbdtransformation/designs/myid/__init__.py +5 -0
- gbdtransformation/designs/myid/filters.py +60 -0
- gbdtransformation/designs/myid/schema +95 -0
- gbdtransformation/designs/myid/template.yml +1 -0
- gbdtransformation/designs/phid/__init__.py +5 -0
- gbdtransformation/designs/phid/filters.py +70 -0
- gbdtransformation/designs/phid/schema +95 -0
- gbdtransformation/designs/phid/template.yml +1 -0
- gbdtransformation/designs/sgid/__init__.py +6 -0
- gbdtransformation/designs/sgid/filters.py +66 -0
- gbdtransformation/designs/sgid/schema +115 -0
- gbdtransformation/designs/sgid/template.yml +1 -0
- gbdtransformation/designs/thid/__init__.py +4 -0
- gbdtransformation/designs/thid/filters.py +64 -0
- gbdtransformation/designs/thid/schema +98 -0
- gbdtransformation/designs/thid/template.yml +1 -0
- gbdtransformation/designs/tnid/__init__.py +5 -0
- gbdtransformation/designs/tnid/filters.py +66 -0
- gbdtransformation/designs/tnid/schema +96 -0
- gbdtransformation/designs/tnid/template.yml +1 -0
- gbdtransformation/designs/vnid/__init__.py +5 -0
- gbdtransformation/designs/vnid/filters.py +62 -0
- gbdtransformation/designs/vnid/schema +97 -0
- gbdtransformation/designs/vnid/template.yml +1 -0
- gbdtransformation/designs/woid/__init__.py +2 -0
- gbdtransformation/designs/woid/filters.py +372 -0
- gbdtransformation/designs/woid/schema +592 -0
- gbdtransformation/designs/woid/template.yml +516 -0
- gbdtransformation/designs/xxid/template.yml +331 -119
- gbdtransformation/execs-nico.py +709 -0
- gbdtransformation/execs.py +55 -4
- gbdtransformation/gbd-transform.exec.tgz +0 -0
- {wipo_gbd_transformation-1.1.46.dist-info → wipo_gbd_transformation-1.1.59.dist-info}/METADATA +4 -1
- {wipo_gbd_transformation-1.1.46.dist-info → wipo_gbd_transformation-1.1.59.dist-info}/RECORD +139 -39
- wipo_gbd_transformation-1.1.59.dist-info/SOURCES_Stefans-Mac-Studio.local_Sep-18-063455-2024_Conflict.txt +690 -0
- {wipo_gbd_transformation-1.1.46.dist-info → wipo_gbd_transformation-1.1.59.dist-info}/entry_points.txt +1 -0
- {wipo_gbd_transformation-1.1.46.dist-info → wipo_gbd_transformation-1.1.59.dist-info}/LICENSE.md +0 -0
- {wipo_gbd_transformation-1.1.46.dist-info → wipo_gbd_transformation-1.1.59.dist-info}/WHEEL +0 -0
- {wipo_gbd_transformation-1.1.46.dist-info → wipo_gbd_transformation-1.1.59.dist-info}/top_level.txt +0 -0
|
@@ -1,130 +1,121 @@
|
|
|
1
1
|
{% from 'navigation.tmpl' import match %}
|
|
2
2
|
|
|
3
|
-
{%
|
|
4
|
-
{% set
|
|
5
|
-
|
|
6
|
-
kind: {{ kind }}
|
|
7
|
-
|
|
8
|
-
markFeature: {{ info.martype | translate_feature(info.marart) }}
|
|
3
|
+
{% set trademark = Trademark %}
|
|
4
|
+
{% set status = trademark.MarkCurrentStatusCode | translate_status %}
|
|
5
|
+
{% set officeCode = trademark.RegistrationOfficeCode %}
|
|
9
6
|
|
|
10
|
-
|
|
11
|
-
designatedCountries:
|
|
12
|
-
- CH
|
|
7
|
+
{% if officeCode == 'CH' %}
|
|
13
8
|
|
|
14
|
-
st13: {{
|
|
9
|
+
st13: {{ trademark.ApplicationNumber.ApplicationNumberText | st13('CH', appdate=trademark.ApplicationDate) }}
|
|
10
|
+
gbdStatus: {{ status }}
|
|
11
|
+
registrationOfficeCode: {{ officeCode }}
|
|
12
|
+
type: TRADEMARK
|
|
15
13
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
14
|
+
{% if not status == 'Delete' %}
|
|
15
|
+
kind: {{ tradenark.MarkCategory | translate_kind }}
|
|
16
|
+
markFeature: {{ trademark.MarkRepresentation.MarkFeatureCategory | translate_feature }}
|
|
17
|
+
designatedCountries:
|
|
18
|
+
- {{ officeCode }}
|
|
20
19
|
|
|
21
|
-
|
|
20
|
+
applicationNumber: {{ trademark.ApplicationNumber.ApplicationNumberText }}
|
|
21
|
+
applicationDate: {{ trademark.ApplicationDate | convertdate('%Y-%m-%d') }}
|
|
22
|
+
registrationNumber: {{ trademark | get_registration_nb(trademark.MarkCurrentStatusCode) }}
|
|
23
|
+
registrationDate: {{ trademark.RegistrationDate }}
|
|
24
|
+
applicationLanguageCode:
|
|
25
|
+
officeStatus: {{ trademark.MarkCurrentStatusCode }}
|
|
26
|
+
statusDate:
|
|
27
|
+
expiryDate: {{ trademark.ExpiryDate }}
|
|
22
28
|
|
|
23
|
-
|
|
24
|
-
terminationDate: {{ info.basdeld }}
|
|
29
|
+
markDisclaimerDetails:
|
|
25
30
|
|
|
26
|
-
|
|
27
|
-
gbdStatus: {{ info.basstate | translate_status(info.basdeld) }}
|
|
28
|
-
statusDate: {{ info.lastgazd }}
|
|
31
|
+
markDescriptionDetails:
|
|
29
32
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
+
wordMarkSpecification:
|
|
34
|
+
markVerbalElement:
|
|
35
|
+
{% set verbalElement = trademark.MarkRepresentation.MarkReproduction.WordMarkSpecification.MarkSignificantVerbalElementText | clean_verbal_element %}
|
|
36
|
+
- text: {{ verbalElement }}
|
|
33
37
|
|
|
34
38
|
markImageDetails:
|
|
35
|
-
|
|
36
|
-
|
|
39
|
+
{% call(img) match('MarkImage', trademark.MarkRepresentation.MarkImageBag) %}
|
|
40
|
+
- name: {{ img.FileName }}
|
|
41
|
+
colourIndicator: {{ img.MarkImageColourClaimedText | get_true_or_false }}
|
|
37
42
|
colourClaimed:
|
|
38
|
-
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
text: {{ verbal | trim }}
|
|
43
|
+
- text: {{ img.MarkImageColourClaimedText }}
|
|
44
|
+
languageCode: {{ img.MarkImageColourClaimedText | local_guess_language() }}
|
|
45
|
+
classification:
|
|
46
|
+
kind: Vienna
|
|
47
|
+
code:
|
|
48
|
+
-
|
|
49
|
+
{% endcall %}
|
|
46
50
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
text: {{ applicant.name }}
|
|
53
|
-
fullAddress:
|
|
54
|
-
- languageCode: {{ info.origlan }}
|
|
55
|
-
text: {{ applicant.addr }}
|
|
56
|
-
countryCode: {{ applicant.nat }}
|
|
57
|
-
{% endfor %}
|
|
51
|
+
markSoundDetails:
|
|
52
|
+
{% call(sound) match('MarkSoundDetails.MarkSound', trademark.MarkRepresentation.MarkSoundBag) %}
|
|
53
|
+
- filename: {{ sound.MarkSoundFilename }}
|
|
54
|
+
fileformat: {{ sound.MarkSoundFileFormat }}
|
|
55
|
+
{% endcall %}
|
|
58
56
|
|
|
59
|
-
|
|
60
|
-
{%
|
|
61
|
-
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
fullAddress:
|
|
65
|
-
- languageCode: {{ info.origlan }}
|
|
66
|
-
text: {{ representative.addr }}
|
|
67
|
-
countryCode: {{ representative.nat }}
|
|
68
|
-
{% endfor %}
|
|
69
|
-
|
|
70
|
-
{% if persons.correspondence %}
|
|
71
|
-
correspondence:
|
|
72
|
-
fullName:
|
|
73
|
-
- languageCode: {{ info.origlan }}
|
|
74
|
-
text: {{ persons.correspondence.name }}
|
|
75
|
-
fullAddress:
|
|
76
|
-
- languageCode: {{ info.origlan }}
|
|
77
|
-
text: {{ persons.correspondence.addr }}
|
|
78
|
-
countryCode: {{ persons.correspondence.nat }}
|
|
79
|
-
{% endif %}
|
|
57
|
+
markVideoDetails:
|
|
58
|
+
{% call(video) match('MarkVideoDetails.MarkVideo', trademark.MarkRepresentation) %}
|
|
59
|
+
- filename: {{ video.MarkVideoFilename }}
|
|
60
|
+
fileformat: {{ video.MarkVideoFileFormat }}
|
|
61
|
+
{% endcall %}
|
|
80
62
|
|
|
81
|
-
priorities:
|
|
82
|
-
{% call(prio) match('prigr.prio', info) %}
|
|
83
|
-
- countryCode: {{ prio.prinat }}
|
|
84
|
-
number: {{ prio.prinr }}
|
|
85
|
-
date: {{ prio.priappd }}
|
|
86
|
-
comment: {{ prigr.prirem }}
|
|
87
|
-
{% endcall %}
|
|
88
|
-
|
|
89
|
-
{% set (nc_gs, gs) = info.gsgr | structure_gs %}
|
|
90
|
-
{% if nc_gs.keys() | length > 0 %}
|
|
91
63
|
goodsServicesClassification:
|
|
92
64
|
kind: Nice
|
|
93
65
|
version: {{ ASK_THE_OFFICE }}
|
|
94
|
-
class:
|
|
95
|
-
|
|
96
|
-
- code: {{
|
|
97
|
-
{% if terms | length > 0 %}
|
|
66
|
+
class:
|
|
67
|
+
{% call(ClassDescription) match('ClassDescription', trademark.GoodsServicesBag.GoodsServices.ClassDescriptionBag) %}
|
|
68
|
+
- code: {{ ClassDescription.ClassNumber| int }}
|
|
98
69
|
terms:
|
|
99
|
-
{{
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
{% endfor %}
|
|
103
|
-
{% endif %}
|
|
104
|
-
{% endfor %}
|
|
105
|
-
{% endif %}
|
|
70
|
+
{{ ClassDescription.GoodsServicesDescriptionText | local_guess_language() }}:
|
|
71
|
+
- {{ ClassDescription.GoodsServicesDescriptionText }}
|
|
72
|
+
{% endcall %}
|
|
106
73
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
{{
|
|
110
|
-
{
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
74
|
+
priorities:
|
|
75
|
+
{% call(priority) match('PriorityBag.Priority', trademark) %}
|
|
76
|
+
- countryCode: {{ priority.PriorityCountryCode }}
|
|
77
|
+
number: {{ priority.PriorityRegistrationNumber }}
|
|
78
|
+
date: {{ select_priority_date }}
|
|
79
|
+
{% endcall %}
|
|
80
|
+
|
|
81
|
+
publications:
|
|
82
|
+
{% call(publication) match('PublicationBag.Publication', trademark) %}
|
|
83
|
+
- identifier: {{ publication.PublicationIdentifier }}
|
|
84
|
+
date: {{ publication.PublicationDate }}
|
|
85
|
+
section: {{ publication.PublicationPage }}
|
|
86
|
+
{% endcall %}
|
|
114
87
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
88
|
+
applicants:
|
|
89
|
+
{% call(Applicant) match('Applicant', trademark.ApplicantBag) %}
|
|
90
|
+
- identifier:
|
|
91
|
+
kind:
|
|
92
|
+
fullName:
|
|
93
|
+
- text: {{ Applicant.Contact.Name.PersonName.PersonFullName }}
|
|
94
|
+
languageCode:
|
|
95
|
+
{% call(postalAddress) match('PostalAddress', Applicant.Contact.PostalAddressBag) %}
|
|
96
|
+
fullAddress:
|
|
97
|
+
{% set addr = postalAddress.PostalStructuredAddress | get_full_address %}
|
|
98
|
+
- text: {{ addr }}
|
|
99
|
+
languageCode: {{ addr | local_guess_language() }}
|
|
100
|
+
countryCode: {{ postalAddress.PostalStructuredAddress.CountryCode }}
|
|
101
|
+
{% endcall %}
|
|
127
102
|
{% endcall %}
|
|
128
103
|
|
|
129
|
-
|
|
104
|
+
representatives:
|
|
105
|
+
{% call(Representative) match('Representative', trademark.RepresentativeBag) %}
|
|
106
|
+
- identifier:
|
|
107
|
+
kind:
|
|
108
|
+
fullName:
|
|
109
|
+
- text: {{ Representative.Contact.Name.PersonName.PersonFullName }}
|
|
110
|
+
languageCode:
|
|
111
|
+
{% call(postalAddress) match('PostalAddress', Representative.Contact.PostalAddressBag) %}
|
|
112
|
+
fullAddress:
|
|
113
|
+
{% set addr = postalAddress.PostalStructuredAddress | get_full_address %}
|
|
114
|
+
- text: {{ addr }}
|
|
115
|
+
languageCode: {{ addr | local_guess_language() }}
|
|
116
|
+
countryCode: {{ postalAddress.PostalStructuredAddress.CountryCode }}
|
|
117
|
+
{% endcall %}
|
|
118
|
+
{% endcall %}
|
|
130
119
|
|
|
120
|
+
{% endif %}
|
|
121
|
+
{% endif %}
|
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
gbdStatus: {{ status }}
|
|
7
7
|
st13: {{TradeMark.ApplicationNumber | st13('EE', appdate=appyear) }}
|
|
8
8
|
registrationOfficeCode: EE
|
|
9
|
+
type: TRADEMARK
|
|
9
10
|
|
|
10
11
|
{% if not status == 'Delete' %}
|
|
11
|
-
type: TRADEMARK
|
|
12
12
|
kind:
|
|
13
13
|
- Individual
|
|
14
14
|
markFeature: {{TradeMark.MarkType | translate_feature}}
|
|
@@ -11,9 +11,9 @@
|
|
|
11
11
|
st13: {{ TradeMark.ApplicationNumber | st13('EM') }}
|
|
12
12
|
gbdStatus: {{ status }}
|
|
13
13
|
registrationOfficeCode: EM
|
|
14
|
+
type: TRADEMARK
|
|
14
15
|
|
|
15
16
|
{% if not status == 'Delete' %}
|
|
16
|
-
type: TRADEMARK
|
|
17
17
|
kind: {{ TradeMark.KindMark | translate_kind }}
|
|
18
18
|
markFeature: {{ TradeMark.MarkFeature | translate_feature }}
|
|
19
19
|
designatedCountries:
|
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
st13: {{ TradeMark.ApplicationNumber | st13('ES', appdate=TradeMark.ApplicationDate) }}
|
|
7
7
|
gbdStatus: {{ status }}
|
|
8
8
|
registrationOfficeCode: {{ TradeMark.RegistrationOfficeCode }}
|
|
9
|
+
type: TRADEMARK
|
|
9
10
|
|
|
10
11
|
{% if not status == 'Delete' %}
|
|
11
|
-
type: TRADEMARK
|
|
12
12
|
kind: {{ TradeMark.KindMark | translate_kind }}
|
|
13
13
|
markFeature: {{ TradeMark.MarkFeature | translate_feature }}
|
|
14
14
|
designatedCountries:
|
|
@@ -11,9 +11,9 @@
|
|
|
11
11
|
st13: {{ TradeMark.ApplicationNumber | st13('FR', appdate=TradeMark.ApplicationDate) }}
|
|
12
12
|
gbdStatus: {{ status }}
|
|
13
13
|
registrationOfficeCode: {{ TradeMark.RegistrationOfficeCode }}
|
|
14
|
+
type: TRADEMARK
|
|
14
15
|
|
|
15
16
|
{% if not status == 'Delete' %}
|
|
16
|
-
type: TRADEMARK
|
|
17
17
|
kind: {{ TradeMark.KindMark | translate_kind }}
|
|
18
18
|
|
|
19
19
|
designatedCountries:
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import gbdtransformation.brands.ipas.filters as ipas
|
|
2
|
+
import gbdtransformation.common.filters as commons
|
|
3
|
+
|
|
4
|
+
ignore_namespace = [
|
|
5
|
+
'http://www.wipo.int/standards/XMLSchema/trademarks',
|
|
6
|
+
'http://www.wipo.int/standards/XMLSchema/wo-trademarks']
|
|
7
|
+
|
|
8
|
+
def get_appdate(appdate, appnum):
|
|
9
|
+
return ipas.get_appdate(appdate, appnum)
|
|
10
|
+
|
|
11
|
+
def translate_type(header):
|
|
12
|
+
code = header.TransactionCode
|
|
13
|
+
if code == 'Trademark': return 'TRADEMARK'
|
|
14
|
+
|
|
15
|
+
raise Exception('Type "%s" is not mapped.' % code)
|
|
16
|
+
|
|
17
|
+
def translate_kind(trademark, header):
|
|
18
|
+
subcode = header.TransactionSubCode
|
|
19
|
+
if subcode == 'Trademarks': return ['Individual']
|
|
20
|
+
# it is None for all
|
|
21
|
+
# kind = trademark.KindMark
|
|
22
|
+
raise Exception('Kind "%s" not mapped.' % subcode)
|
|
23
|
+
|
|
24
|
+
def translate_status(trademark):
|
|
25
|
+
status = trademark.MarkCurrentStatusCode
|
|
26
|
+
|
|
27
|
+
return ipas.translate_status(status)
|
|
28
|
+
|
|
29
|
+
def translate_feature(trademark):
|
|
30
|
+
feature = trademark.MarkFeature
|
|
31
|
+
if not feature: return 'Undefined'
|
|
32
|
+
|
|
33
|
+
return ipas.translate_feature(feature)
|
|
34
|
+
|
|
35
|
+
def translate_event(event):
|
|
36
|
+
if not event: return 'Unknown'
|
|
37
|
+
|
|
38
|
+
return ipas.translate_event(event)
|
|
39
|
+
|
|
40
|
+
def verbal_lang_map(markVerbalElements, applang=None):
|
|
41
|
+
return ipas.verbal_lang_map(markVerbalElements, applang=applang)
|
|
42
|
+
|
|
43
|
+
def get_registration_nb(trademark, tmstatus):
|
|
44
|
+
if trademark.RegistrationNumber:
|
|
45
|
+
return trademark.RegistrationNumber
|
|
46
|
+
return None
|
|
47
|
+
|
|
48
|
+
def get_expiry_date(trademark, tmstatus):
|
|
49
|
+
return ipas.get_expiry_date(trademark, tmstatus)
|
|
50
|
+
|
|
51
|
+
def get_registration_date(trademark, tmstatus):
|
|
52
|
+
return ipas.get_registration_date(trademark, tmstatus)
|
|
53
|
+
|
|
54
|
+
def is_international(header):
|
|
55
|
+
return False
|
|
56
|
+
|
|
57
|
+
def get_ir_refnum(appnum):
|
|
58
|
+
return
|
|
59
|
+
|
|
60
|
+
def get_goods_services(goods_services):
|
|
61
|
+
return ipas.get_goods_services(goods_services)
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/Transaction
|
|
2
|
+
__/TradeMarkTransactionBody
|
|
3
|
+
____/TransactionContentDetails
|
|
4
|
+
______/TransactionCode
|
|
5
|
+
______/TransactionData
|
|
6
|
+
________/TradeMarkApplication
|
|
7
|
+
__________/TradeMarkDetails
|
|
8
|
+
____________/TradeMark
|
|
9
|
+
______________/ApplicantDetails
|
|
10
|
+
________________/Applicant
|
|
11
|
+
__________________/ApplicantAddressBook
|
|
12
|
+
____________________/FormattedNameAddress
|
|
13
|
+
______________________/Address
|
|
14
|
+
________________________/AddressCountryCode
|
|
15
|
+
________________________/FreeFormatAddress
|
|
16
|
+
__________________________/FreeFormatAddressLine
|
|
17
|
+
______________________/Name
|
|
18
|
+
________________________/FreeFormatName
|
|
19
|
+
__________________________/FreeFormatNameDetails
|
|
20
|
+
____________________________/FreeFormatNameLine
|
|
21
|
+
____________________________/FreeFormatNameLine[@languageCode=en]
|
|
22
|
+
______________/ApplicationDate
|
|
23
|
+
______________/ApplicationLanguageCode
|
|
24
|
+
______________/ApplicationNumber
|
|
25
|
+
______________/ExpiryDate
|
|
26
|
+
______________/GoodsServicesDetails
|
|
27
|
+
________________/GoodsServices
|
|
28
|
+
__________________/ClassDescriptionDetails
|
|
29
|
+
____________________/ClassDescription
|
|
30
|
+
______________________/ClassNumber
|
|
31
|
+
______________________/GoodsServicesDescription
|
|
32
|
+
______________________/GoodsServicesDescription[@languageCode=en]
|
|
33
|
+
______________/KindMark
|
|
34
|
+
______________/MarkCurrentStatusCode
|
|
35
|
+
______________/MarkCurrentStatusDate
|
|
36
|
+
______________/MarkDisclaimerDetails
|
|
37
|
+
________________/MarkDisclaimer
|
|
38
|
+
________________/MarkDisclaimer[@languageCode=en]
|
|
39
|
+
______________/MarkEventDetails
|
|
40
|
+
________________/MarkEvent
|
|
41
|
+
__________________/MarkEventCode
|
|
42
|
+
__________________/MarkEventDate
|
|
43
|
+
__________________/OfficeSpecificMarkEventCode
|
|
44
|
+
__________________/OfficeSpecificMarkEventDescription
|
|
45
|
+
__________________/OfficeSpecificMarkEventDescription[@languageCode=en]
|
|
46
|
+
______________/MarkFeature
|
|
47
|
+
______________/MarkImageDetails
|
|
48
|
+
________________/MarkImage
|
|
49
|
+
__________________/MarkImageCategory
|
|
50
|
+
____________________/CategoryCodeDetails
|
|
51
|
+
______________________/CategoryCode
|
|
52
|
+
____________________/CategoryKind
|
|
53
|
+
____________________/CategoryVersion
|
|
54
|
+
__________________/MarkImageColourClaimedText
|
|
55
|
+
__________________/MarkImageColourClaimedText[@languageCode=en]
|
|
56
|
+
__________________/MarkImageFileFormat
|
|
57
|
+
__________________/MarkImageFilename
|
|
58
|
+
______________/PriorityDetails
|
|
59
|
+
________________/Priority
|
|
60
|
+
__________________/PriorityCountryCode
|
|
61
|
+
__________________/PriorityDate
|
|
62
|
+
__________________/PriorityNumber
|
|
63
|
+
______________/PublicationDetails
|
|
64
|
+
________________/Publication
|
|
65
|
+
__________________/PublicationDate
|
|
66
|
+
__________________/PublicationIdentifier
|
|
67
|
+
______________/RegistrationDate
|
|
68
|
+
______________/RegistrationNumber
|
|
69
|
+
______________/RegistrationOfficeCode
|
|
70
|
+
______________/RepresentativeDetails
|
|
71
|
+
________________/Representative
|
|
72
|
+
__________________/RepresentativeAddressBook
|
|
73
|
+
____________________/FormattedNameAddress
|
|
74
|
+
______________________/Address
|
|
75
|
+
________________________/AddressCountryCode
|
|
76
|
+
________________________/FreeFormatAddress
|
|
77
|
+
__________________________/FreeFormatAddressLine
|
|
78
|
+
______________________/Name
|
|
79
|
+
________________________/FreeFormatName
|
|
80
|
+
__________________________/FreeFormatNameDetails
|
|
81
|
+
____________________________/FreeFormatNameLine
|
|
82
|
+
____________________________/FreeFormatNameLine[@languageCode=en]
|
|
83
|
+
______________/WordMarkSpecification
|
|
84
|
+
________________/MarkVerbalElementText
|
|
85
|
+
________________/MarkVerbalElementText[@languageCode=en]
|
|
86
|
+
______/TransactionIdentifier
|
|
87
|
+
______/TransactionSubCode
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{% include "ipas/template.yml" %}
|
|
File without changes
|
|
@@ -10,23 +10,33 @@ def get_full_address(applicant):
|
|
|
10
10
|
|
|
11
11
|
def translate_status(status, status_is):
|
|
12
12
|
# office did not map to english -> we do it
|
|
13
|
-
if
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
13
|
+
if 'Áfrýjun' in status_is: return 'Pending' # Appeal
|
|
14
|
+
if status_is == 'Afturkallað': return 'Ended' # Revoked
|
|
15
|
+
if status_is == 'Birt': return 'Pending' # Published
|
|
16
|
+
if status_is == 'Andmæli': return 'Registered' # Published
|
|
17
|
+
if status_is == 'Krafa um niðurfellingu': return 'Ended' # Request for cancellation
|
|
18
|
+
if status_is == 'Tilbúið til birtingar': return 'Pending' # Ready for publishing
|
|
19
|
+
if status_is == 'Í rannsókn': return 'Registered' # Investigating ..
|
|
20
|
+
if status_is == 'Krafa um ógildingu': return 'Registered' # Claim for annulment ..
|
|
21
|
+
if status_is == 'Rannsóknarhæft': return 'Pending' #Researchable or in their office Application
|
|
22
|
+
if status_is == 'Fyrsta höfnun': return 'Pending' #First rejection or in their office Application
|
|
23
|
+
if status_is == 'Hafna': return 'Ended' #Rejection or in their office Application
|
|
24
|
+
if status_is == 'Vafamál': return 'Registered' #Investigating or in their office Application
|
|
25
|
+
if status_is == 'Endurupptökufrestur': return 'Pending' #Re-admission deadline (Trad)
|
|
26
|
+
if 'Í bi' in status_is: return 'Pending' #On hold
|
|
27
|
+
if 'nari sko' in status_is: return 'Pending'
|
|
28
|
+
if 'Rökstu' in status_is: return 'Pending'
|
|
29
|
+
if status_is == 'Rökstuningur': return 'Pending'
|
|
30
|
+
if status_is == 'Synja': return 'Ended'
|
|
31
|
+
if status_is == 'Umsögn hjá NS': return 'Pending'
|
|
32
|
+
|
|
23
33
|
|
|
24
34
|
if status == 'Filed': return 'Pending'
|
|
25
35
|
if status == 'Expired': return 'Expired'
|
|
26
36
|
if status == 'Ended': return 'Ended'
|
|
27
37
|
if status == 'Registered': return 'Registered'
|
|
38
|
+
return 'Unknown'
|
|
28
39
|
|
|
29
|
-
raise Exception('Status "%s/%s" unmapped' % (status, status_is))
|
|
30
40
|
|
|
31
41
|
|
|
32
42
|
def translate_feature(feature, is3D):
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
{% set appdate = mark.applicationDate | convertdate('%d.%m.%Y %H:%M:%S') %}
|
|
4
4
|
st13: {{ mark.vmid | st13('IS', appdate=appdate) }}
|
|
5
5
|
registrationOfficeCode: IS
|
|
6
|
+
type: TRADEMARK
|
|
6
7
|
|
|
7
8
|
{% if mark.deleted | get_true_or_false %}
|
|
8
9
|
gbdStatus: Delete
|
|
@@ -10,7 +11,6 @@ gbdStatus: Delete
|
|
|
10
11
|
|
|
11
12
|
{% set status = mark.statusEN | translate_status(mark.status) %}
|
|
12
13
|
|
|
13
|
-
type: TRADEMARK
|
|
14
14
|
kind:
|
|
15
15
|
- Individual
|
|
16
16
|
|
|
@@ -9,9 +9,9 @@
|
|
|
9
9
|
gbdStatus: {{ status }}
|
|
10
10
|
st13: {{ header.ApplicationNumber.ApplicationNumberText | st13('KR', appdate=appyear) }}
|
|
11
11
|
registrationOfficeCode: KR # division marks donot have RegistrationOfficeCode
|
|
12
|
+
type: TRADEMARK
|
|
12
13
|
|
|
13
14
|
{% if not status == 'Delete' %}
|
|
14
|
-
type: TRADEMARK
|
|
15
15
|
kind: {{ kind }}
|
|
16
16
|
|
|
17
17
|
designatedCountries:
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import gbdtransformation.brands.ipas.filters as ipas
|
|
2
|
+
import gbdtransformation.common.filters as commons
|
|
3
|
+
|
|
4
|
+
ignore_namespace = [
|
|
5
|
+
'http://www.wipo.int/standards/XMLSchema/trademarks',
|
|
6
|
+
'http://www.wipo.int/standards/XMLSchema/wo-trademarks']
|
|
7
|
+
|
|
8
|
+
def get_appdate(appdate, appnum):
|
|
9
|
+
return ipas.get_appdate(appdate, appnum)
|
|
10
|
+
|
|
11
|
+
def translate_type(header):
|
|
12
|
+
code = header.TransactionCode
|
|
13
|
+
if code == 'Trademark': return 'TRADEMARK'
|
|
14
|
+
if code == 'Certification Trademark': return 'TRADEMARK'
|
|
15
|
+
return 'TRADEMARK'
|
|
16
|
+
|
|
17
|
+
def translate_kind(trademark, header):
|
|
18
|
+
subcode = header.TransactionSubCode
|
|
19
|
+
if subcode == 'Individual Trademark': return ['Individual']
|
|
20
|
+
if subcode == 'Company/Partnership Trademark': return ['Individual']
|
|
21
|
+
if subcode == 'Collective Trademark': return ['Collective']
|
|
22
|
+
if subcode == 'Certification Trademark': return ['Individual']
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
# it is None for all
|
|
26
|
+
# kind = trademark.KindMark
|
|
27
|
+
|
|
28
|
+
raise Exception('Kind "%s" not mapped.' % subcode)
|
|
29
|
+
return ['Individual']
|
|
30
|
+
|
|
31
|
+
def translate_status(trademark):
|
|
32
|
+
status = trademark.MarkCurrentStatusCode
|
|
33
|
+
|
|
34
|
+
if status == 'Converted': return 'Registered'
|
|
35
|
+
|
|
36
|
+
return ipas.translate_status(status)
|
|
37
|
+
|
|
38
|
+
def translate_feature(trademark):
|
|
39
|
+
feature = trademark.MarkFeature
|
|
40
|
+
|
|
41
|
+
if not feature: return 'Undefined'
|
|
42
|
+
|
|
43
|
+
return ipas.translate_feature(feature)
|
|
44
|
+
|
|
45
|
+
def translate_event(event):
|
|
46
|
+
if not event: return 'Unknown'
|
|
47
|
+
|
|
48
|
+
return ipas.translate_event(event)
|
|
49
|
+
|
|
50
|
+
# ---------------------------------------
|
|
51
|
+
# # language code is not accurate for markVerbalElement
|
|
52
|
+
# def guess_language(text, lang, default):
|
|
53
|
+
# if commons.is_latin(text):
|
|
54
|
+
# return 'en'
|
|
55
|
+
# else:
|
|
56
|
+
# return commons.guess_language(text, lang, default)
|
|
57
|
+
|
|
58
|
+
# TODO: separate values like
|
|
59
|
+
# {'ar': ['BITUTAPE - بيتوتيب']}
|
|
60
|
+
# {'ar': ['ديمه كابيتال Dimah Capital']}
|
|
61
|
+
def verbal_lang_map(markVerbalElements, applang=None):
|
|
62
|
+
return ipas.verbal_lang_map(markVerbalElements, applang=applang)
|
|
63
|
+
|
|
64
|
+
def get_registration_nb(trademark, tmstatus):
|
|
65
|
+
if trademark.RegistrationNumber:
|
|
66
|
+
return trademark.RegistrationNumber
|
|
67
|
+
|
|
68
|
+
return None
|
|
69
|
+
|
|
70
|
+
def get_expiry_date(trademark, tmstatus):
|
|
71
|
+
return ipas.get_expiry_date(trademark, tmstatus)
|
|
72
|
+
|
|
73
|
+
def get_registration_date(trademark, tmstatus):
|
|
74
|
+
return ipas.get_registration_date(trademark, tmstatus)
|
|
75
|
+
|
|
76
|
+
def is_international(header):
|
|
77
|
+
return False
|
|
78
|
+
|
|
79
|
+
def get_ir_refnum(appnum):
|
|
80
|
+
return
|
|
81
|
+
|
|
82
|
+
def get_goods_services(goods_services):
|
|
83
|
+
return ipas.get_goods_services(goods_services)
|