wipo-gbd-transformation 1.1.105__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.
Files changed (607) hide show
  1. gbdtransformation/__init__.py +0 -0
  2. gbdtransformation/brands/__init__.py +44 -0
  3. gbdtransformation/brands/aetm/__init__.py +5 -0
  4. gbdtransformation/brands/aetm/filters.py +84 -0
  5. gbdtransformation/brands/aetm/schema +87 -0
  6. gbdtransformation/brands/aetm/template.yml +1 -0
  7. gbdtransformation/brands/aetm/tests/__init__.py +0 -0
  8. gbdtransformation/brands/altm/__init__.py +6 -0
  9. gbdtransformation/brands/altm/filters.py +107 -0
  10. gbdtransformation/brands/altm/schema +83 -0
  11. gbdtransformation/brands/altm/template.yml +1 -0
  12. gbdtransformation/brands/altm/tests/__init__.py +0 -0
  13. gbdtransformation/brands/altm/tests/altm.xml +93 -0
  14. gbdtransformation/brands/aptm/__init__.py +15 -0
  15. gbdtransformation/brands/aptm/filters.py +80 -0
  16. gbdtransformation/brands/aptm/schema +87 -0
  17. gbdtransformation/brands/aptm/template.yml +1 -0
  18. gbdtransformation/brands/aptm/tests/__init__.py +0 -0
  19. gbdtransformation/brands/attm/__init__.py +6 -0
  20. gbdtransformation/brands/attm/filters.py +76 -0
  21. gbdtransformation/brands/attm/schema +52 -0
  22. gbdtransformation/brands/attm/template.yml +85 -0
  23. gbdtransformation/brands/autm/__init__.py +2 -0
  24. gbdtransformation/brands/autm/filters.py +222 -0
  25. gbdtransformation/brands/autm/schema +91 -0
  26. gbdtransformation/brands/autm/template.yml +157 -0
  27. gbdtransformation/brands/bgtm/__init__.py +5 -0
  28. gbdtransformation/brands/bgtm/filters.py +112 -0
  29. gbdtransformation/brands/bgtm/schema +314 -0
  30. gbdtransformation/brands/bgtm/template.yml +154 -0
  31. gbdtransformation/brands/bhtm/__init__.py +12 -0
  32. gbdtransformation/brands/bhtm/filters.py +87 -0
  33. gbdtransformation/brands/bhtm/schema +87 -0
  34. gbdtransformation/brands/bhtm/template.yml +1 -0
  35. gbdtransformation/brands/bhtm/tests/__init__.py +0 -0
  36. gbdtransformation/brands/bntm/__init__.py +2 -0
  37. gbdtransformation/brands/bntm/filters.py +75 -0
  38. gbdtransformation/brands/bntm/schema +87 -0
  39. gbdtransformation/brands/bntm/template.yml +1 -0
  40. gbdtransformation/brands/bntm/tests/__init__.py +0 -0
  41. gbdtransformation/brands/brtm/__init__.py +3 -0
  42. gbdtransformation/brands/brtm/filters.py +169 -0
  43. gbdtransformation/brands/brtm/schema +86 -0
  44. gbdtransformation/brands/brtm/template.yml +22 -0
  45. gbdtransformation/brands/brtm/tests/__init__.py +0 -0
  46. gbdtransformation/brands/brtm/tests/test01.xml +53 -0
  47. gbdtransformation/brands/bttm/__init__.py +10 -0
  48. gbdtransformation/brands/bttm/filters.py +80 -0
  49. gbdtransformation/brands/bttm/schema +87 -0
  50. gbdtransformation/brands/bttm/template.yml +1 -0
  51. gbdtransformation/brands/bttm/tests/__init__.py +0 -0
  52. gbdtransformation/brands/bwtm/__init__.py +13 -0
  53. gbdtransformation/brands/bwtm/filters.py +90 -0
  54. gbdtransformation/brands/bwtm/schema +87 -0
  55. gbdtransformation/brands/bwtm/template.yml +1 -0
  56. gbdtransformation/brands/bwtm/tests/__init__.py +0 -0
  57. gbdtransformation/brands/bztm/__init__.py +16 -0
  58. gbdtransformation/brands/bztm/filters.py +77 -0
  59. gbdtransformation/brands/bztm/schema +87 -0
  60. gbdtransformation/brands/bztm/template.yml +1 -0
  61. gbdtransformation/brands/bztm/tests/__init__.py +0 -0
  62. gbdtransformation/brands/catm/__init__.py +10 -0
  63. gbdtransformation/brands/catm/filters.py +272 -0
  64. gbdtransformation/brands/catm/schema +804 -0
  65. gbdtransformation/brands/catm/template.yml +230 -0
  66. gbdtransformation/brands/chtm/__init__.py +6 -0
  67. gbdtransformation/brands/chtm/filters.py +161 -0
  68. gbdtransformation/brands/chtm/schema +79 -0
  69. gbdtransformation/brands/chtm/template.yml +121 -0
  70. gbdtransformation/brands/cltm/__init__.py +2 -0
  71. gbdtransformation/brands/cltm/filters.py +80 -0
  72. gbdtransformation/brands/cltm/schema +86 -0
  73. gbdtransformation/brands/cltm/template.yml +1 -0
  74. gbdtransformation/brands/cltm/tests/__init__.py +0 -0
  75. gbdtransformation/brands/crtm/__init__.py +5 -0
  76. gbdtransformation/brands/crtm/filters.py +196 -0
  77. gbdtransformation/brands/crtm/schema +86 -0
  78. gbdtransformation/brands/crtm/template.yml +1 -0
  79. gbdtransformation/brands/crtm/tests/__init__.py +0 -0
  80. gbdtransformation/brands/cutm/__init__.py +10 -0
  81. gbdtransformation/brands/cutm/filters.py +94 -0
  82. gbdtransformation/brands/cutm/schema +86 -0
  83. gbdtransformation/brands/cutm/template.yml +4 -0
  84. gbdtransformation/brands/cutm/tests/__init__.py +0 -0
  85. gbdtransformation/brands/detm/__init__.py +19 -0
  86. gbdtransformation/brands/detm/filters.py +75 -0
  87. gbdtransformation/brands/detm/schema +511 -0
  88. gbdtransformation/brands/detm/template.yml +151 -0
  89. gbdtransformation/brands/dktm/__init__.py +7 -0
  90. gbdtransformation/brands/dktm/filters.py +90 -0
  91. gbdtransformation/brands/dktm/schema +95 -0
  92. gbdtransformation/brands/dktm/template.yml +114 -0
  93. gbdtransformation/brands/dztm/__init__.py +10 -0
  94. gbdtransformation/brands/dztm/filters.py +81 -0
  95. gbdtransformation/brands/dztm/schema +87 -0
  96. gbdtransformation/brands/dztm/template.yml +1 -0
  97. gbdtransformation/brands/dztm/tests/__init__.py +0 -0
  98. gbdtransformation/brands/eetm/__init__.py +8 -0
  99. gbdtransformation/brands/eetm/filters.py +115 -0
  100. gbdtransformation/brands/eetm/schema +48 -0
  101. gbdtransformation/brands/eetm/template.yml +98 -0
  102. gbdtransformation/brands/egtm/__init__.py +5 -0
  103. gbdtransformation/brands/egtm/filters.py +73 -0
  104. gbdtransformation/brands/egtm/schema +87 -0
  105. gbdtransformation/brands/egtm/template.yml +1 -0
  106. gbdtransformation/brands/egtm/tests/__init__.py +0 -0
  107. gbdtransformation/brands/emtm/__init__.py +3 -0
  108. gbdtransformation/brands/emtm/filters.py +96 -0
  109. gbdtransformation/brands/emtm/schema +314 -0
  110. gbdtransformation/brands/emtm/template.yml +125 -0
  111. gbdtransformation/brands/estm/__init__.py +3 -0
  112. gbdtransformation/brands/estm/filters.py +110 -0
  113. gbdtransformation/brands/estm/schema +99 -0
  114. gbdtransformation/brands/estm/template.yml +144 -0
  115. gbdtransformation/brands/filters.py +125 -0
  116. gbdtransformation/brands/frtm/__init__.py +2 -0
  117. gbdtransformation/brands/frtm/filters.py +172 -0
  118. gbdtransformation/brands/frtm/schema +300 -0
  119. gbdtransformation/brands/frtm/template.yml +203 -0
  120. gbdtransformation/brands/gbtm/__init__.py +3 -0
  121. gbdtransformation/brands/gbtm/filters.py +122 -0
  122. gbdtransformation/brands/gbtm/schema +362 -0
  123. gbdtransformation/brands/gbtm/template.yml +147 -0
  124. gbdtransformation/brands/gdtm/__init__.py +5 -0
  125. gbdtransformation/brands/gdtm/filters.py +68 -0
  126. gbdtransformation/brands/gdtm/schema +87 -0
  127. gbdtransformation/brands/gdtm/template.yml +1 -0
  128. gbdtransformation/brands/gdtm/tests/__init__.py +0 -0
  129. gbdtransformation/brands/getm/__init__.py +3 -0
  130. gbdtransformation/brands/getm/filters.py +68 -0
  131. gbdtransformation/brands/getm/schema +209 -0
  132. gbdtransformation/brands/getm/template.yml +142 -0
  133. gbdtransformation/brands/ghtm/__init__.py +12 -0
  134. gbdtransformation/brands/ghtm/filters.py +74 -0
  135. gbdtransformation/brands/ghtm/schema +86 -0
  136. gbdtransformation/brands/ghtm/template.yml +1 -0
  137. gbdtransformation/brands/ghtm/tests/__init__.py +0 -0
  138. gbdtransformation/brands/gmtm/__init__.py +7 -0
  139. gbdtransformation/brands/gmtm/filters.py +70 -0
  140. gbdtransformation/brands/gmtm/schema +86 -0
  141. gbdtransformation/brands/gmtm/template.yml +1 -0
  142. gbdtransformation/brands/gmtm/tests/__init__.py +0 -0
  143. gbdtransformation/brands/gstm/__init__.py +2 -0
  144. gbdtransformation/brands/gstm/filters.py +75 -0
  145. gbdtransformation/brands/gstm/template.gs.yml +56 -0
  146. gbdtransformation/brands/gstm/template.yml +32 -0
  147. gbdtransformation/brands/hrtm/__init__.py +3 -0
  148. gbdtransformation/brands/hrtm/filters.py +158 -0
  149. gbdtransformation/brands/hrtm/schema +43 -0
  150. gbdtransformation/brands/hrtm/template.yml +205 -0
  151. gbdtransformation/brands/idtm/__init__.py +12 -0
  152. gbdtransformation/brands/idtm/filters.py +95 -0
  153. gbdtransformation/brands/idtm/schema +86 -0
  154. gbdtransformation/brands/idtm/template.yml +1 -0
  155. gbdtransformation/brands/idtm/tests/__init__.py +0 -0
  156. gbdtransformation/brands/idtm/tests/translation.xml +106 -0
  157. gbdtransformation/brands/idtm/tests/unicode.xml +120 -0
  158. gbdtransformation/brands/iltm/__init__.py +2 -0
  159. gbdtransformation/brands/iltm/filters.py +91 -0
  160. gbdtransformation/brands/iltm/schema +87 -0
  161. gbdtransformation/brands/iltm/template.yml +213 -0
  162. gbdtransformation/brands/iltm/tests/__init__.py +0 -0
  163. gbdtransformation/brands/iltm/tests/cancellations.xml +156 -0
  164. gbdtransformation/brands/iltm/tests/collcert.xml +51 -0
  165. gbdtransformation/brands/iltm/tests/eventdata.xml +83 -0
  166. gbdtransformation/brands/iltm/tests/international.xml +80 -0
  167. gbdtransformation/brands/iltm/tests/markfeature.xml +117 -0
  168. gbdtransformation/brands/iltm/tests/noevents.xml +44 -0
  169. gbdtransformation/brands/iltm/tests/opposition.xml +147 -0
  170. gbdtransformation/brands/iltm/tests/tlit.xml +77 -0
  171. gbdtransformation/brands/intm/__init__.py +6 -0
  172. gbdtransformation/brands/intm/filters.py +75 -0
  173. gbdtransformation/brands/intm/schema +127 -0
  174. gbdtransformation/brands/intm/template.yml +112 -0
  175. gbdtransformation/brands/ipas/__init__.py +0 -0
  176. gbdtransformation/brands/ipas/filters.py +203 -0
  177. gbdtransformation/brands/ipas/template.yml +185 -0
  178. gbdtransformation/brands/istm/__init__.py +10 -0
  179. gbdtransformation/brands/istm/filters.py +60 -0
  180. gbdtransformation/brands/istm/schema +53 -0
  181. gbdtransformation/brands/istm/template.yml +119 -0
  182. gbdtransformation/brands/ittm/__init__.py +6 -0
  183. gbdtransformation/brands/ittm/filters.py +114 -0
  184. gbdtransformation/brands/ittm/schema +104 -0
  185. gbdtransformation/brands/ittm/template.yml +107 -0
  186. gbdtransformation/brands/jotm/__init__.py +8 -0
  187. gbdtransformation/brands/jotm/filters.py +61 -0
  188. gbdtransformation/brands/jotm/schema +86 -0
  189. gbdtransformation/brands/jotm/template.yml +1 -0
  190. gbdtransformation/brands/jotm/tests/__init__.py +0 -0
  191. gbdtransformation/brands/jotm/tests/test.xml +84 -0
  192. gbdtransformation/brands/jptm/__init__.py +6 -0
  193. gbdtransformation/brands/jptm/filters.py +79 -0
  194. gbdtransformation/brands/jptm/schema +39 -0
  195. gbdtransformation/brands/jptm/template.yml +113 -0
  196. gbdtransformation/brands/ketm/__init__.py +9 -0
  197. gbdtransformation/brands/ketm/filters.py +77 -0
  198. gbdtransformation/brands/ketm/schema +86 -0
  199. gbdtransformation/brands/ketm/template.yml +1 -0
  200. gbdtransformation/brands/ketm/tests/__init__.py +0 -0
  201. gbdtransformation/brands/kgtm/__init__.py +6 -0
  202. gbdtransformation/brands/kgtm/filters.py +67 -0
  203. gbdtransformation/brands/kgtm/schema +27 -0
  204. gbdtransformation/brands/kgtm/template.yml +58 -0
  205. gbdtransformation/brands/khtm/__init__.py +14 -0
  206. gbdtransformation/brands/khtm/filters.py +134 -0
  207. gbdtransformation/brands/khtm/schema +86 -0
  208. gbdtransformation/brands/khtm/template.yml +1 -0
  209. gbdtransformation/brands/khtm/tests/__init__.py +0 -0
  210. gbdtransformation/brands/khtm/tests/khtm.xml +122 -0
  211. gbdtransformation/brands/krtm/__init__.py +6 -0
  212. gbdtransformation/brands/krtm/filters.py +136 -0
  213. gbdtransformation/brands/krtm/schema +179 -0
  214. gbdtransformation/brands/krtm/template.yml +186 -0
  215. gbdtransformation/brands/kwtm/__init__.py +2 -0
  216. gbdtransformation/brands/kwtm/filters.py +69 -0
  217. gbdtransformation/brands/kwtm/schema +86 -0
  218. gbdtransformation/brands/kwtm/template.yml +1 -0
  219. gbdtransformation/brands/kwtm/tests/__init__.py +0 -0
  220. gbdtransformation/brands/kwtm/tests/test.xml +84 -0
  221. gbdtransformation/brands/kztm/__init__.py +242 -0
  222. gbdtransformation/brands/kztm/filters.py +140 -0
  223. gbdtransformation/brands/kztm/schema +36 -0
  224. gbdtransformation/brands/kztm/template.yml +117 -0
  225. gbdtransformation/brands/latm/__init__.py +7 -0
  226. gbdtransformation/brands/latm/filters.py +93 -0
  227. gbdtransformation/brands/latm/schema +86 -0
  228. gbdtransformation/brands/latm/template.yml +1 -0
  229. gbdtransformation/brands/latm/tests/__init__.py +0 -0
  230. gbdtransformation/brands/latm/tests/test.xml +112 -0
  231. gbdtransformation/brands/lktm/__init__.py +5 -0
  232. gbdtransformation/brands/lktm/filters.py +83 -0
  233. gbdtransformation/brands/lktm/schema +87 -0
  234. gbdtransformation/brands/lktm/template.yml +1 -0
  235. gbdtransformation/brands/lktm/tests/__init__.py +0 -0
  236. gbdtransformation/brands/matm/__init__.py +3 -0
  237. gbdtransformation/brands/matm/filters.py +36 -0
  238. gbdtransformation/brands/matm/schema +33 -0
  239. gbdtransformation/brands/matm/template.yml +72 -0
  240. gbdtransformation/brands/mctm/__init__.py +3 -0
  241. gbdtransformation/brands/mctm/filters.py +65 -0
  242. gbdtransformation/brands/mctm/schema +128 -0
  243. gbdtransformation/brands/mctm/template.yml +122 -0
  244. gbdtransformation/brands/mdtm/__init__.py +3 -0
  245. gbdtransformation/brands/mdtm/filters.py +64 -0
  246. gbdtransformation/brands/mdtm/schema +128 -0
  247. gbdtransformation/brands/mdtm/template.yml +122 -0
  248. gbdtransformation/brands/metm/__init__.py +5 -0
  249. gbdtransformation/brands/metm/filters.py +87 -0
  250. gbdtransformation/brands/metm/schema +87 -0
  251. gbdtransformation/brands/metm/template.yml +1 -0
  252. gbdtransformation/brands/metm/tests/__init__.py +0 -0
  253. gbdtransformation/brands/mgtm/__init__.py +7 -0
  254. gbdtransformation/brands/mgtm/filters.py +73 -0
  255. gbdtransformation/brands/mgtm/schema +86 -0
  256. gbdtransformation/brands/mgtm/template.yml +1 -0
  257. gbdtransformation/brands/mgtm/tests/__init__.py +0 -0
  258. gbdtransformation/brands/mgtm/tests/test.xml +107 -0
  259. gbdtransformation/brands/mktm/__init__.py +6 -0
  260. gbdtransformation/brands/mktm/filters.py +63 -0
  261. gbdtransformation/brands/mktm/schema +80 -0
  262. gbdtransformation/brands/mktm/template.yml +112 -0
  263. gbdtransformation/brands/mntm/__init__.py +11 -0
  264. gbdtransformation/brands/mntm/filters.py +99 -0
  265. gbdtransformation/brands/mntm/schema +86 -0
  266. gbdtransformation/brands/mntm/template.yml +1 -0
  267. gbdtransformation/brands/mntm/tests/__init__.py +0 -0
  268. gbdtransformation/brands/mwtm/__init__.py +11 -0
  269. gbdtransformation/brands/mwtm/filters.py +80 -0
  270. gbdtransformation/brands/mwtm/schema +86 -0
  271. gbdtransformation/brands/mwtm/template.yml +1 -0
  272. gbdtransformation/brands/mwtm/tests/__init__.py +0 -0
  273. gbdtransformation/brands/mxtm/__init__.py +6 -0
  274. gbdtransformation/brands/mxtm/filters.py +77 -0
  275. gbdtransformation/brands/mxtm/schema +81 -0
  276. gbdtransformation/brands/mxtm/template.yml +127 -0
  277. gbdtransformation/brands/mytm/__init__.py +17 -0
  278. gbdtransformation/brands/mytm/filters.py +125 -0
  279. gbdtransformation/brands/mytm/schema +86 -0
  280. gbdtransformation/brands/mytm/template.yml +1 -0
  281. gbdtransformation/brands/mytm/tests/__init__.py +0 -0
  282. gbdtransformation/brands/mytm/tests/example.xml +132 -0
  283. gbdtransformation/brands/mytm/tests/mytm.xml +132 -0
  284. gbdtransformation/brands/mztm/__init__.py +14 -0
  285. gbdtransformation/brands/mztm/filters.py +89 -0
  286. gbdtransformation/brands/mztm/schema +86 -0
  287. gbdtransformation/brands/mztm/template.yml +1 -0
  288. gbdtransformation/brands/mztm/tests/__init__.py +0 -0
  289. gbdtransformation/brands/natm/__init__.py +11 -0
  290. gbdtransformation/brands/natm/filters.py +88 -0
  291. gbdtransformation/brands/natm/schema +86 -0
  292. gbdtransformation/brands/natm/template.yml +1 -0
  293. gbdtransformation/brands/natm/tests/__init__.py +0 -0
  294. gbdtransformation/brands/notm/__init__.py +5 -0
  295. gbdtransformation/brands/notm/filters.py +170 -0
  296. gbdtransformation/brands/notm/template.yml +289 -0
  297. gbdtransformation/brands/nztm/__init__.py +3 -0
  298. gbdtransformation/brands/nztm/filters.py +126 -0
  299. gbdtransformation/brands/nztm/schema +197 -0
  300. gbdtransformation/brands/nztm/template.yml +161 -0
  301. gbdtransformation/brands/oatm/__init__.py +18 -0
  302. gbdtransformation/brands/oatm/filters.py +82 -0
  303. gbdtransformation/brands/oatm/schema +87 -0
  304. gbdtransformation/brands/oatm/template.yml +1 -0
  305. gbdtransformation/brands/oatm/tests/__init__.py +0 -0
  306. gbdtransformation/brands/omtm/__init__.py +5 -0
  307. gbdtransformation/brands/omtm/filters.py +60 -0
  308. gbdtransformation/brands/omtm/schema +86 -0
  309. gbdtransformation/brands/omtm/template.yml +1 -0
  310. gbdtransformation/brands/omtm/tests/__init__.py +0 -0
  311. gbdtransformation/brands/omtm/tests/test.xml +84 -0
  312. gbdtransformation/brands/patm/__init__.py +8 -0
  313. gbdtransformation/brands/patm/filters.py +149 -0
  314. gbdtransformation/brands/patm/template.yml +40 -0
  315. gbdtransformation/brands/petm/__init__.py +6 -0
  316. gbdtransformation/brands/petm/filters.py +90 -0
  317. gbdtransformation/brands/petm/schema +114 -0
  318. gbdtransformation/brands/petm/template.yml +143 -0
  319. gbdtransformation/brands/pgtm/__init__.py +5 -0
  320. gbdtransformation/brands/pgtm/filters.py +76 -0
  321. gbdtransformation/brands/pgtm/schema +86 -0
  322. gbdtransformation/brands/pgtm/template.yml +1 -0
  323. gbdtransformation/brands/pgtm/tests/__init__.py +0 -0
  324. gbdtransformation/brands/pgtm/tests/pgtm.xml +128 -0
  325. gbdtransformation/brands/phtm/__init__.py +14 -0
  326. gbdtransformation/brands/phtm/filters.py +169 -0
  327. gbdtransformation/brands/phtm/schema +79 -0
  328. gbdtransformation/brands/phtm/schema.classic +50 -0
  329. gbdtransformation/brands/phtm/template.classic.yml +102 -0
  330. gbdtransformation/brands/phtm/template.yml +189 -0
  331. gbdtransformation/brands/pttm/__init__.py +0 -0
  332. gbdtransformation/brands/pttm/filters.py +0 -0
  333. gbdtransformation/brands/pttm/schema +0 -0
  334. gbdtransformation/brands/pttm/template.yml +0 -0
  335. gbdtransformation/brands/pytm/__init__.py +6 -0
  336. gbdtransformation/brands/pytm/filters.py +136 -0
  337. gbdtransformation/brands/pytm/template.yml +40 -0
  338. gbdtransformation/brands/qatm/__init__.py +5 -0
  339. gbdtransformation/brands/qatm/filters.py +81 -0
  340. gbdtransformation/brands/qatm/schema +87 -0
  341. gbdtransformation/brands/qatm/template.yml +1 -0
  342. gbdtransformation/brands/qatm/tests/__init__.py +0 -0
  343. gbdtransformation/brands/rotm/__init__.py +3 -0
  344. gbdtransformation/brands/rotm/filters.py +82 -0
  345. gbdtransformation/brands/rotm/schema +128 -0
  346. gbdtransformation/brands/rotm/template.yml +121 -0
  347. gbdtransformation/brands/rstm/__init__.py +5 -0
  348. gbdtransformation/brands/rstm/filters.py +88 -0
  349. gbdtransformation/brands/rstm/schema +86 -0
  350. gbdtransformation/brands/rstm/template.yml +1 -0
  351. gbdtransformation/brands/rstm/tests/__init__.py +0 -0
  352. gbdtransformation/brands/rutm/__init__.py +14 -0
  353. gbdtransformation/brands/rutm/filters.py +82 -0
  354. gbdtransformation/brands/rutm/schema +94 -0
  355. gbdtransformation/brands/rutm/template.yml +105 -0
  356. gbdtransformation/brands/sdtm/__init__.py +5 -0
  357. gbdtransformation/brands/sdtm/filters.py +59 -0
  358. gbdtransformation/brands/sdtm/schema +86 -0
  359. gbdtransformation/brands/sdtm/template.yml +1 -0
  360. gbdtransformation/brands/sdtm/tests/__init__.py +0 -0
  361. gbdtransformation/brands/sdtm/tests/test.xml +84 -0
  362. gbdtransformation/brands/sgtm/__init__.py +16 -0
  363. gbdtransformation/brands/sgtm/filters.py +177 -0
  364. gbdtransformation/brands/sgtm/schema +213 -0
  365. gbdtransformation/brands/sgtm/template.article6ter.yml +48 -0
  366. gbdtransformation/brands/sgtm/template.r13.yml +45 -0
  367. gbdtransformation/brands/sgtm/template.trademark.yml +148 -0
  368. gbdtransformation/brands/sgtm/template.yml +9 -0
  369. gbdtransformation/brands/smtm/__init__.py +6 -0
  370. gbdtransformation/brands/smtm/filters.py +77 -0
  371. gbdtransformation/brands/smtm/schema +86 -0
  372. gbdtransformation/brands/smtm/template.yml +1 -0
  373. gbdtransformation/brands/smtm/tests/__init__.py +0 -0
  374. gbdtransformation/brands/smtm/tests/test.xml +133 -0
  375. gbdtransformation/brands/solrjtm/__init__.py +1 -0
  376. gbdtransformation/brands/solrjtm/filters.py +85 -0
  377. gbdtransformation/brands/solrjtm/template.yml +195 -0
  378. gbdtransformation/brands/st66tm/__init__.py +1 -0
  379. gbdtransformation/brands/st66tm/filters.py +33 -0
  380. gbdtransformation/brands/st66tm/st66tm.tmpl +219 -0
  381. gbdtransformation/brands/sttm/__init__.py +18 -0
  382. gbdtransformation/brands/sttm/filters.py +72 -0
  383. gbdtransformation/brands/sttm/schema +83 -0
  384. gbdtransformation/brands/sttm/template.yml +1 -0
  385. gbdtransformation/brands/sttm/tests/__init__.py +0 -0
  386. gbdtransformation/brands/sztm/__init__.py +14 -0
  387. gbdtransformation/brands/sztm/filters.py +72 -0
  388. gbdtransformation/brands/sztm/schema +86 -0
  389. gbdtransformation/brands/sztm/template.yml +1 -0
  390. gbdtransformation/brands/sztm/tests/__init__.py +0 -0
  391. gbdtransformation/brands/thtm/__init__.py +2 -0
  392. gbdtransformation/brands/thtm/filters.py +86 -0
  393. gbdtransformation/brands/thtm/schema +86 -0
  394. gbdtransformation/brands/thtm/template.yml +175 -0
  395. gbdtransformation/brands/thtm/tests/__init__.py +0 -0
  396. gbdtransformation/brands/thtm/tests/test.xml +84 -0
  397. gbdtransformation/brands/tntm/__init__.py +16 -0
  398. gbdtransformation/brands/tntm/filters.py +89 -0
  399. gbdtransformation/brands/tntm/schema +87 -0
  400. gbdtransformation/brands/tntm/template.yml +1 -0
  401. gbdtransformation/brands/tntm/tests/__init__.py +0 -0
  402. gbdtransformation/brands/totm/__init__.py +5 -0
  403. gbdtransformation/brands/totm/filters.py +72 -0
  404. gbdtransformation/brands/totm/schema +86 -0
  405. gbdtransformation/brands/totm/template.yml +1 -0
  406. gbdtransformation/brands/totm/tests/__init__.py +0 -0
  407. gbdtransformation/brands/totm/tests/nofeature.xml +106 -0
  408. gbdtransformation/brands/totm/tests/syntax.xml +162 -0
  409. gbdtransformation/brands/totm/tests/test.xml +84 -0
  410. gbdtransformation/brands/tttm/__init__.py +17 -0
  411. gbdtransformation/brands/tttm/filters.py +79 -0
  412. gbdtransformation/brands/tttm/schema +87 -0
  413. gbdtransformation/brands/tttm/template.yml +1 -0
  414. gbdtransformation/brands/tttm/tests/__init__.py +0 -0
  415. gbdtransformation/brands/uatm/__init__.py +18 -0
  416. gbdtransformation/brands/uatm/filters.py +70 -0
  417. gbdtransformation/brands/uatm/schema +158 -0
  418. gbdtransformation/brands/uatm/template.yml +148 -0
  419. gbdtransformation/brands/ustm/__init__.py +187 -0
  420. gbdtransformation/brands/ustm/filters.py +227 -0
  421. gbdtransformation/brands/ustm/schema +2183 -0
  422. gbdtransformation/brands/ustm/template.yml +219 -0
  423. gbdtransformation/brands/uytm/__init__.py +3 -0
  424. gbdtransformation/brands/uytm/filters.py +64 -0
  425. gbdtransformation/brands/uytm/schema +106 -0
  426. gbdtransformation/brands/uytm/template.yml +137 -0
  427. gbdtransformation/brands/vctm/__init__.py +5 -0
  428. gbdtransformation/brands/vctm/filters.py +75 -0
  429. gbdtransformation/brands/vctm/schema +87 -0
  430. gbdtransformation/brands/vctm/template.yml +1 -0
  431. gbdtransformation/brands/vctm/tests/__init__.py +0 -0
  432. gbdtransformation/brands/vntm/__init__.py +9 -0
  433. gbdtransformation/brands/vntm/filters.py +84 -0
  434. gbdtransformation/brands/vntm/schema +86 -0
  435. gbdtransformation/brands/vntm/template.yml +1 -0
  436. gbdtransformation/brands/vntm/tests/__init__.py +0 -0
  437. gbdtransformation/brands/vutm/__init__.py +5 -0
  438. gbdtransformation/brands/vutm/filters.py +67 -0
  439. gbdtransformation/brands/vutm/schema +83 -0
  440. gbdtransformation/brands/vutm/template.yml +1 -0
  441. gbdtransformation/brands/vutm/tests/__init__.py +0 -0
  442. gbdtransformation/brands/whoinn/__init__.py +6 -0
  443. gbdtransformation/brands/whoinn/filters.py +46 -0
  444. gbdtransformation/brands/whoinn/schema +4 -0
  445. gbdtransformation/brands/whoinn/template.yml +45 -0
  446. gbdtransformation/brands/wo6ter/__init__.py +1 -0
  447. gbdtransformation/brands/wo6ter/filters.py +88 -0
  448. gbdtransformation/brands/wo6ter/template.yml +88 -0
  449. gbdtransformation/brands/woao/__init__.py +1 -0
  450. gbdtransformation/brands/woao/filters.py +107 -0
  451. gbdtransformation/brands/woao/schema +116 -0
  452. gbdtransformation/brands/woao/template.yml +90 -0
  453. gbdtransformation/brands/woptm/__init__.py +3 -0
  454. gbdtransformation/brands/woptm/filters.py +42 -0
  455. gbdtransformation/brands/woptm/template.yml +2 -0
  456. gbdtransformation/brands/wotm/__init__.py +3 -0
  457. gbdtransformation/brands/wotm/filters.py +127 -0
  458. gbdtransformation/brands/wotm/schema +218 -0
  459. gbdtransformation/brands/wotm/template.yml +220 -0
  460. gbdtransformation/brands/wstm/__init__.py +6 -0
  461. gbdtransformation/brands/wstm/filters.py +67 -0
  462. gbdtransformation/brands/wstm/schema +86 -0
  463. gbdtransformation/brands/wstm/template.yml +1 -0
  464. gbdtransformation/brands/wstm/tests/__init__.py +0 -0
  465. gbdtransformation/brands/wstm/tests/test.xml +132 -0
  466. gbdtransformation/brands/xxxx/__init__.py +6 -0
  467. gbdtransformation/brands/xxxx/filters.py +60 -0
  468. gbdtransformation/brands/xxxx/schema +4 -0
  469. gbdtransformation/brands/xxxx/template.yml +363 -0
  470. gbdtransformation/brands/zmtm/__init__.py +12 -0
  471. gbdtransformation/brands/zmtm/filters.py +79 -0
  472. gbdtransformation/brands/zmtm/schema +86 -0
  473. gbdtransformation/brands/zmtm/template.yml +1 -0
  474. gbdtransformation/brands/zmtm/tests/__init__.py +0 -0
  475. gbdtransformation/brands/zwtm/__init__.py +3 -0
  476. gbdtransformation/brands/zwtm/filters.py +86 -0
  477. gbdtransformation/brands/zwtm/schema +86 -0
  478. gbdtransformation/brands/zwtm/template.yml +1 -0
  479. gbdtransformation/brands/zwtm/tests/__init__.py +0 -0
  480. gbdtransformation/common/__init__.py +383 -0
  481. gbdtransformation/common/filters.py +418 -0
  482. gbdtransformation/common/jpap/__init__.py +1 -0
  483. gbdtransformation/common/jpap/filters.py +83 -0
  484. gbdtransformation/common/jpap/template.yml +37 -0
  485. gbdtransformation/common/jpbase/__init__.py +1 -0
  486. gbdtransformation/common/jpbase/filters.py +93 -0
  487. gbdtransformation/common/jpbase/template.yml +51 -0
  488. gbdtransformation/common/jprp/__init__.py +1 -0
  489. gbdtransformation/common/jprp/filters.py +86 -0
  490. gbdtransformation/common/jprp/template.yml +51 -0
  491. gbdtransformation/common/navigation.tmpl +12 -0
  492. gbdtransformation/commons/__init__.py +0 -0
  493. gbdtransformation/commons/emap/__init__.py +1 -0
  494. gbdtransformation/commons/emap/filters.py +16 -0
  495. gbdtransformation/commons/emap/template.yml +55 -0
  496. gbdtransformation/commons/emrp/__init__.py +1 -0
  497. gbdtransformation/commons/emrp/filters.py +14 -0
  498. gbdtransformation/commons/emrp/template.yml +53 -0
  499. gbdtransformation/commons/filters.py +3 -0
  500. gbdtransformation/designs/__init__.py +8 -0
  501. gbdtransformation/designs/alid/__init__.py +5 -0
  502. gbdtransformation/designs/alid/filters.py +69 -0
  503. gbdtransformation/designs/alid/schema +89 -0
  504. gbdtransformation/designs/alid/template.yml +1 -0
  505. gbdtransformation/designs/bnid/__init__.py +5 -0
  506. gbdtransformation/designs/bnid/filters.py +61 -0
  507. gbdtransformation/designs/bnid/schema +80 -0
  508. gbdtransformation/designs/bnid/template.yml +1 -0
  509. gbdtransformation/designs/bwid/__init__.py +6 -0
  510. gbdtransformation/designs/bwid/filters.py +64 -0
  511. gbdtransformation/designs/bwid/schema +101 -0
  512. gbdtransformation/designs/bwid/template.yml +1 -0
  513. gbdtransformation/designs/crid/__init__.py +5 -0
  514. gbdtransformation/designs/crid/filters.py +63 -0
  515. gbdtransformation/designs/crid/schema +94 -0
  516. gbdtransformation/designs/crid/template.yml +1 -0
  517. gbdtransformation/designs/cuid/__init__.py +5 -0
  518. gbdtransformation/designs/cuid/filters.py +60 -0
  519. gbdtransformation/designs/cuid/schema +98 -0
  520. gbdtransformation/designs/cuid/template.yml +1 -0
  521. gbdtransformation/designs/egid/__init__.py +5 -0
  522. gbdtransformation/designs/egid/filters.py +62 -0
  523. gbdtransformation/designs/egid/schema +82 -0
  524. gbdtransformation/designs/egid/template.yml +1 -0
  525. gbdtransformation/designs/filters.py +73 -0
  526. gbdtransformation/designs/idid/__init__.py +5 -0
  527. gbdtransformation/designs/idid/filters.py +67 -0
  528. gbdtransformation/designs/idid/schema +102 -0
  529. gbdtransformation/designs/idid/template.yml +1 -0
  530. gbdtransformation/designs/ipas/__init__.py +0 -0
  531. gbdtransformation/designs/ipas/filters.py +181 -0
  532. gbdtransformation/designs/ipas/template.yml +174 -0
  533. gbdtransformation/designs/joid/__init__.py +6 -0
  534. gbdtransformation/designs/joid/filters.py +62 -0
  535. gbdtransformation/designs/joid/schema +97 -0
  536. gbdtransformation/designs/joid/template.yml +1 -0
  537. gbdtransformation/designs/keid/__init__.py +5 -0
  538. gbdtransformation/designs/keid/filters.py +62 -0
  539. gbdtransformation/designs/keid/schema +99 -0
  540. gbdtransformation/designs/keid/template.yml +1 -0
  541. gbdtransformation/designs/khid/__init__.py +5 -0
  542. gbdtransformation/designs/khid/filters.py +63 -0
  543. gbdtransformation/designs/khid/schema +100 -0
  544. gbdtransformation/designs/khid/template.yml +1 -0
  545. gbdtransformation/designs/laid/__init__.py +5 -0
  546. gbdtransformation/designs/laid/filters.py +61 -0
  547. gbdtransformation/designs/laid/schema +94 -0
  548. gbdtransformation/designs/laid/template.yml +1 -0
  549. gbdtransformation/designs/mnid/__init__.py +6 -0
  550. gbdtransformation/designs/mnid/filters.py +62 -0
  551. gbdtransformation/designs/mnid/schema +98 -0
  552. gbdtransformation/designs/mnid/template.yml +1 -0
  553. gbdtransformation/designs/myid/__init__.py +5 -0
  554. gbdtransformation/designs/myid/filters.py +60 -0
  555. gbdtransformation/designs/myid/schema +95 -0
  556. gbdtransformation/designs/myid/template.yml +1 -0
  557. gbdtransformation/designs/phid/__init__.py +5 -0
  558. gbdtransformation/designs/phid/filters.py +70 -0
  559. gbdtransformation/designs/phid/schema +95 -0
  560. gbdtransformation/designs/phid/template.yml +1 -0
  561. gbdtransformation/designs/sgid/__init__.py +6 -0
  562. gbdtransformation/designs/sgid/filters.py +66 -0
  563. gbdtransformation/designs/sgid/schema +115 -0
  564. gbdtransformation/designs/sgid/template.yml +1 -0
  565. gbdtransformation/designs/thid/__init__.py +4 -0
  566. gbdtransformation/designs/thid/filters.py +64 -0
  567. gbdtransformation/designs/thid/schema +98 -0
  568. gbdtransformation/designs/thid/template.yml +1 -0
  569. gbdtransformation/designs/tnid/__init__.py +5 -0
  570. gbdtransformation/designs/tnid/filters.py +66 -0
  571. gbdtransformation/designs/tnid/schema +96 -0
  572. gbdtransformation/designs/tnid/template.yml +1 -0
  573. gbdtransformation/designs/vnid/__init__.py +5 -0
  574. gbdtransformation/designs/vnid/filters.py +62 -0
  575. gbdtransformation/designs/vnid/schema +97 -0
  576. gbdtransformation/designs/vnid/template.yml +1 -0
  577. gbdtransformation/designs/woid/__init__.py +2 -0
  578. gbdtransformation/designs/woid/filters.py +372 -0
  579. gbdtransformation/designs/woid/schema +592 -0
  580. gbdtransformation/designs/woid/template.yml +516 -0
  581. gbdtransformation/designs/xxid/__init__.py +2 -0
  582. gbdtransformation/designs/xxid/filters.py +60 -0
  583. gbdtransformation/designs/xxid/schema +4 -0
  584. gbdtransformation/designs/xxid/template.yml +358 -0
  585. gbdtransformation/execs-nico.py +709 -0
  586. gbdtransformation/execs.py +734 -0
  587. gbdtransformation/gbd-transform.exec.tgz +0 -0
  588. gbdtransformation/parser.py +190 -0
  589. gbdtransformation/renders.py +149 -0
  590. gbdtransformation/utilities/ISOCountryCodeType-V2006.xsd +1245 -0
  591. gbdtransformation/utilities/ISOCurrencyCodeType-V2001.xsd +855 -0
  592. gbdtransformation/utilities/ISOLanguageCodeType-V2002.xsd +715 -0
  593. gbdtransformation/utilities/WIPOST3CodeType-V2007.xsd +1151 -0
  594. gbdtransformation/utilities/__init__.py +0 -0
  595. gbdtransformation/utilities/st66.dot +2828 -0
  596. gbdtransformation/utilities/st66.pdf +0 -0
  597. gbdtransformation/utilities/st66.py +38700 -0
  598. gbdtransformation/utilities/st66.xsd +4174 -0
  599. schemas/ShazamConfig.py +35 -0
  600. schemas/__init__.py +0 -0
  601. schemas/schema_extractor.py +300 -0
  602. wipo_gbd_transformation-1.1.105.dist-info/LICENSE.md +687 -0
  603. wipo_gbd_transformation-1.1.105.dist-info/METADATA +25 -0
  604. wipo_gbd_transformation-1.1.105.dist-info/RECORD +607 -0
  605. wipo_gbd_transformation-1.1.105.dist-info/WHEEL +5 -0
  606. wipo_gbd_transformation-1.1.105.dist-info/entry_points.txt +6 -0
  607. wipo_gbd_transformation-1.1.105.dist-info/top_level.txt +2 -0
@@ -0,0 +1,68 @@
1
+ # namespaces defined in XML and to be ignored in procecssing
2
+ ignore_namespace = ['http://www.oami.europa.eu/TM-Search']
3
+
4
+
5
+ # -------------------------------------------------------------
6
+ # data translation helpers:
7
+ # translate values from office interpretation to gbd equivalent
8
+ # -------------------------------------------------------------
9
+ def get_termination(value, gbd_status):
10
+ if gbd_status == 'Ended':
11
+ return value
12
+ return None
13
+
14
+ def get_registration_nb(trademark, tmstatus):
15
+ if trademark.RegistrationNumber:
16
+ return trademark.RegistrationNumber
17
+
18
+ # default registration number to application number
19
+ # in case none is provided
20
+ if tmstatus in ['Registered', 'Expired']:
21
+ return trademark.ApplicationNumber
22
+
23
+ def get_addr(addr):
24
+ if not addr: return None
25
+ return "%s %s %s" % (addr.AddressStreet, addr.AddressCity, addr.AddressPostcode)
26
+
27
+ def get_name(name):
28
+ if not name: return None
29
+ if name.OrganizationName:
30
+ return name.OrganizationName
31
+ return "%s %s" % (name.FirstName, name.LastName )
32
+
33
+ def translate_kind(kind):
34
+ if kind == 'Individual': return ['Individual']
35
+ if kind == 'Collective': return ['Collective']
36
+
37
+ raise Exception('kind "%s" is not mapped.' % kind)
38
+
39
+ def translate_status(status):
40
+ if not status: return 'Unknown'
41
+
42
+ if status in ['Application filed',
43
+ 'Application published' ]:
44
+ return 'Pending'
45
+
46
+ if status in ['Application refused',
47
+ 'Registration cancelled' ]:
48
+ return 'Ended'
49
+
50
+ if status == 'Registered':
51
+ return 'Registered'
52
+
53
+ raise Exception('Status "%s" unmapped' % status)
54
+
55
+
56
+ def translate_feature(feature):
57
+ if not feature: return 'Undefined'
58
+
59
+ if feature == 'Word': return 'Word'
60
+ if feature == 'Combined': return 'Combined'
61
+ if feature == 'Figurative': return 'Figurative'
62
+ if feature == '3-D': return 'Three dimensional'
63
+ if feature == 'Sound': return 'Sound'
64
+ if feature == 'Stylized characters': return 'Stylized characters'
65
+ if feature == 'Multimedia': return 'Multimedia'
66
+
67
+ raise Exception('Feature "%s" unmapped' % feature)
68
+
@@ -0,0 +1,209 @@
1
+ Transaction
2
+ __/TradeMarkTransactionBody
3
+ ____/TransactionContentDetails
4
+ ______/TransactionCode
5
+ ______/TransactionData
6
+ ________/TradeMarkDetails
7
+ __________/TradeMark
8
+ ____________/AppealDetails
9
+ ______________/Appeal
10
+ ________________/AppealDate
11
+ ________________/AppealDecisionDate
12
+ ________________/AppealDecisionStatusCode
13
+ ________________/AppealGroundText
14
+ ________________/AppealGroundText[@languageCode=ka]
15
+ ________________/AppealIdentifier
16
+ ________________/AppellantDetails
17
+ __________________/Appellant
18
+ ____________________/AppellantAddressBook
19
+ ______________________/FormattedNameAddress
20
+ ________________________/Address
21
+ __________________________/AddressCountryCode
22
+ __________________________/FormattedAddress
23
+ ____________________________/AddressCity
24
+ ____________________________/AddressPostcode
25
+ ____________________________/AddressStreet
26
+ ________________________/Name
27
+ __________________________/FormattedName
28
+ ____________________________/FirstName
29
+ ____________________________/LastName
30
+ ____________________________/OrganizationName
31
+ ____________________/AppellantIdentifier
32
+ ____________________/AppellantLegalEntity
33
+ ____________________/AppellantNationalityCode
34
+ ________________/RepresentativeDetails
35
+ __________________/Representative
36
+ ____________________/RepresentativeAddressBook
37
+ ______________________/FormattedNameAddress
38
+ ________________________/Address
39
+ __________________________/AddressCountryCode
40
+ __________________________/FormattedAddress
41
+ ____________________________/AddressCity
42
+ ____________________________/AddressPostcode
43
+ ____________________________/AddressStreet
44
+ ________________________/Name
45
+ __________________________/FormattedName
46
+ ____________________________/FirstName
47
+ ____________________________/LastName
48
+ ____________________________/OrganizationName
49
+ ____________________/RepresentativeIdentifier
50
+ ____________________/RepresentativeKindCode
51
+ ____________________/RepresentativeLegalEntity
52
+ ____________________/RepresentativeNationalityCode
53
+ ____________/ApplicantDetails
54
+ ______________/Applicant
55
+ ________________/ApplicantAddressBook
56
+ __________________/FormattedNameAddress
57
+ ____________________/Address
58
+ ______________________/AddressCountryCode
59
+ ______________________/FormattedAddress
60
+ ________________________/AddressCity
61
+ ________________________/AddressPostcode
62
+ ________________________/AddressStreet
63
+ ____________________/Name
64
+ ______________________/FormattedName
65
+ ________________________/FirstName
66
+ ________________________/LastName
67
+ ________________________/OrganizationName
68
+ ________________/ApplicantIdentifier
69
+ ________________/ApplicantLegalEntity
70
+ ________________/ApplicantNationalityCode
71
+ ____________/ApplicationDate
72
+ ____________/ApplicationLanguageCode
73
+ ____________/ApplicationNumber
74
+ ____________/CorrespondenceAddress
75
+ ______________/CorrespondenceAddressBook
76
+ ________________/FormattedNameAddress
77
+ __________________/Address
78
+ ____________________/AddressCountryCode
79
+ ____________________/FormattedAddress
80
+ ______________________/AddressCity
81
+ ______________________/AddressPostcode
82
+ ______________________/AddressStreet
83
+ __________________/Name
84
+ ____________________/FormattedName
85
+ ______________________/FirstName
86
+ ______________________/LastName
87
+ ______________________/OrganizationName
88
+ ____________/ExhibitionPriorityDetails
89
+ ______________/ExhibitionPriority
90
+ ________________/ExhibitionCountryCode
91
+ ________________/ExhibitionDate
92
+ ________________/ExhibitionStatusCode
93
+ ____________/ExpiryDate
94
+ ____________/GoodsServicesDetails
95
+ ______________/GoodsServices
96
+ ________________/ClassDescriptionDetails
97
+ __________________/ClassDescription
98
+ ____________________/ClassNumber
99
+ ____________________/ClassNumberStatusCode
100
+ ____________________/GoodsServicesDescription
101
+ ____________________/GoodsServicesDescription[@languageCode=ka]
102
+ ________________/ClassificationKindCode
103
+ ________________/ClassificationVersion
104
+ ____________/IPRKind
105
+ ____________/KindMark
106
+ ____________/MarkCurrentStatusCode
107
+ ____________/MarkCurrentStatusDate
108
+ ____________/MarkDescriptionDetails
109
+ ______________/MarkDescription
110
+ ____________/MarkDisclaimerDetails
111
+ ______________/MarkDisclaimer
112
+ ____________/MarkEventDetails
113
+ ______________/MarkEvent
114
+ ________________/MarkEventCode
115
+ ________________/MarkEventDate
116
+ ____________/MarkFeature
117
+ ____________/MarkImageDetails
118
+ ______________/MarkImage
119
+ ________________/MarkImageCategory
120
+ __________________/CategoryCodeDetails
121
+ ____________________/CategoryCode
122
+ __________________/CategoryKind
123
+ __________________/CategoryVersion
124
+ ________________/MarkImageColourIndicator
125
+ ________________/MarkImageFilename
126
+ ____________/OppositionDetails
127
+ ______________/Opposition
128
+ ________________/OpponentDetails
129
+ __________________/Opponent
130
+ ____________________/OpponentAddressBook
131
+ ______________________/FormattedNameAddress
132
+ ________________________/Address
133
+ __________________________/AddressCountryCode
134
+ __________________________/FormattedAddress
135
+ ____________________________/AddressCity
136
+ ____________________________/AddressPostcode
137
+ ____________________________/AddressStreet
138
+ ________________________/Name
139
+ __________________________/FormattedName
140
+ ____________________________/FirstName
141
+ ____________________________/LastName
142
+ ____________________________/OrganizationName
143
+ ____________________/OpponentIdentifier
144
+ ____________________/OpponentLegalEntity
145
+ ____________________/OpponentNationalityCode
146
+ ________________/OppositionDate
147
+ ________________/OppositionGroundText
148
+ ________________/OppositionGroundText[@languageCode=ka]
149
+ ________________/OppositionIdentifier
150
+ ________________/RepresentativeDetails
151
+ __________________/Representative
152
+ ____________________/RepresentativeAddressBook
153
+ ______________________/FormattedNameAddress
154
+ ________________________/Address
155
+ __________________________/AddressCountryCode
156
+ __________________________/FormattedAddress
157
+ ____________________________/AddressCity
158
+ ____________________________/AddressPostcode
159
+ ____________________________/AddressStreet
160
+ ________________________/Name
161
+ __________________________/FormattedName
162
+ ____________________________/FirstName
163
+ ____________________________/LastName
164
+ ____________________/RepresentativeIdentifier
165
+ ____________________/RepresentativeKindCode
166
+ ____________________/RepresentativeLegalEntity
167
+ ____________________/RepresentativeNationalityCode
168
+ ____________/OppositionPeriodEndDate
169
+ ____________/OppositionPeriodStartDate
170
+ ____________/PriorityDetails
171
+ ______________/Priority
172
+ ________________/PriorityCountryCode
173
+ ________________/PriorityDate
174
+ ________________/PriorityNumber
175
+ ________________/PriorityPartialIndicator
176
+ ________________/PriorityStatusCode
177
+ ____________/PublicationDetails
178
+ ______________/Publication
179
+ ________________/PublicationDate
180
+ ________________/PublicationIdentifier
181
+ ________________/PublicationSection
182
+ ____________/RegistrationDate
183
+ ____________/RegistrationNumber
184
+ ____________/RegistrationOfficeCode
185
+ ____________/RepresentativeDetails
186
+ ______________/Representative
187
+ ________________/RepresentativeAddressBook
188
+ __________________/FormattedNameAddress
189
+ ____________________/Address
190
+ ______________________/AddressCountryCode
191
+ ______________________/FormattedAddress
192
+ ________________________/AddressCity
193
+ ________________________/AddressPostcode
194
+ ________________________/AddressStreet
195
+ ____________________/Name
196
+ ______________________/FormattedName
197
+ ________________________/FirstName
198
+ ________________________/LastName
199
+ ________________________/OrganizationName
200
+ ________________/RepresentativeIdentifier
201
+ ________________/RepresentativeKindCode
202
+ ________________/RepresentativeLegalEntity
203
+ ________________/RepresentativeNationalityCode
204
+ ____________/WordMarkSpecification
205
+ ______________/MarkVerbalElementText
206
+ ______/TransactionIdentifier
207
+ __/TransactionHeader
208
+ ____/SenderDetails
209
+ ______/RequestProducerDateTime
@@ -0,0 +1,142 @@
1
+ {% from 'navigation.tmpl' import match %}
2
+ {% set TradeMark = Transaction.TradeMarkTransactionBody.TransactionContentDetails.TransactionData.TradeMarkDetails.TradeMark %}
3
+
4
+ {% set kind = TradeMark.KindMark | translate_kind %}
5
+ {% set status = TradeMark.MarkCurrentStatusCode | translate_status %}
6
+
7
+ type: TRADEMARK
8
+ kind: {{ kind }}
9
+ st13: {{ TradeMark.ApplicationNumber | st13('GE', appdate=TradeMark.ApplicationDate) }}
10
+
11
+ markFeature: {{ TradeMark.MarkFeature | translate_feature }}
12
+ registrationOfficeCode: {{ TradeMark.RegistrationOfficeCode }}
13
+ designatedCountries:
14
+ - {{ TradeMark.RegistrationOfficeCode }}
15
+ applicationNumber: {{ TradeMark.ApplicationNumber }}
16
+ applicationDate: {{ TradeMark.ApplicationDate | convertdate('%Y-%m-%d') }}
17
+ registrationNumber: {{ TradeMark | get_registration_nb(TradeMark.MarkCurrentStatusCode)}}
18
+ registrationDate: {{ TradeMark.RegistrationDate }}
19
+ applicationLanguageCode: {{ TradeMark.ApplicationLanguageCode }}
20
+ expiryDate: {{ TradeMark.ExpiryDate }}
21
+ terminationDate: {{ TradeMark.MarkCurrentStatusDate | get_termination(status) }}
22
+ officeStatus: {{ TradeMark.MarkCurrentStatusCode }}
23
+ gbdStatus: {{ status }}
24
+ statusDate: {{ TradeMark.MarkCurrentStatusDate | convertdate('%Y-%m-%d') }}
25
+ markDisclaimerDetails:
26
+ {% call(desc) match('MarkDisclaimerDetails.MarkDisclaimer', TradeMark) %}
27
+ - text: {{ desc }}
28
+ languageCode: {{ desc | guess_language(TradeMark.ApplicationLanguageCode, 'en') }}
29
+ {% endcall %}
30
+ markDescriptionDetails:
31
+ {% call(desc) match('MarkDescriptionDetails.MarkDescription', TradeMark) %}
32
+ - text: {{ desc }}
33
+ languageCode: {{ desc | guess_language(TradeMark.ApplicationLanguageCode, 'en') }}
34
+ {% endcall %}
35
+ wordMarkSpecification:
36
+ markVerbalElement:
37
+ {% call(desc) match('WordMarkSpecification.MarkVerbalElementText', TradeMark) %}
38
+ - text: {{ desc }}
39
+ languageCode: {{ desc | guess_language(TradeMark.ApplicationLanguageCode, 'en') }}
40
+ {% endcall %}
41
+ markImageDetails:
42
+ {% call(img) match('MarkImageDetails.MarkImage', TradeMark) %}
43
+ - name: {{ img.MarkImageFilename }}
44
+ colourIndicator: {{ img.MarkImageColourIndicator }}
45
+ classification:
46
+ kind: Vienna
47
+ code:
48
+ {% call(code) match('MarkImageCategory.CategoryCodeDetails.CategoryCode', img) %}
49
+ - {{ code }}
50
+ {% endcall %}
51
+ {% endcall %}
52
+
53
+ {% call(nc_gs) match('GoodsServicesDetails.GoodsServices', TradeMark) %}
54
+ goodsServicesClassification:
55
+ kind: Nice
56
+ version: {{ ASK_THE_OFFICE }}
57
+ class:
58
+ {% call(nice) match('ClassDescriptionDetails.ClassDescription', nc_gs) %}
59
+ - code: {{ nice.ClassNumber | int }}
60
+ terms:
61
+ {% if nice.GoodsServicesDescription | has_value %}
62
+ {% call(desc) match('GoodsServicesDescription', nice) %}
63
+ {{ desc | guess_language(desc._languageCode, 'ka') | field_name }}:
64
+ {% for gsline in desc | remove_trailing('.') | split_terms %}
65
+ - {{ gsline | lower }}
66
+ {% endfor %}
67
+ {% endcall %}
68
+ {% endif %}
69
+ {% endcall %}
70
+ {% endcall %}
71
+
72
+ priorities:
73
+ {% call(priority) match('PriorityDetails.Priority', TradeMark) %}
74
+ - countryCode: {{ priority.PriorityCountryCode }}
75
+ number: {{ priority.PriorityNumber }}
76
+ date: {{ priority.PriorityDate }}
77
+ comment: {{ priority.PriorityStatusCode }}
78
+ {% endcall %}
79
+
80
+ publications:
81
+ {% call(publication) match('PublicationDetails.Publication', TradeMark) %}
82
+ - identifier: {{ publication.PublicationIdentifier }}
83
+ date: {{ publication.PublicationDate }}
84
+ section: {{ publication.PublicationSection }}
85
+ {% endcall %}
86
+ applicants:
87
+ {% call(Applicant) match('ApplicantDetails.Applicant', TradeMark) %}
88
+ - identifier: {{ Applicant.ApplicantIdentifier }}
89
+ fullName:
90
+ {% call(nameline) match('FormattedNameAddress.Name.FormattedName', Applicant.ApplicantAddressBook) %}
91
+ - text: {{ nameline | get_name}}
92
+ languageCode: {{ nameline | get_name | guess_language(TradeMark.ApplicationLanguageCode, 'en') }}
93
+ {% endcall %}
94
+ fullAddress:
95
+ {% call(adrline) match('FormattedNameAddress.Address.FormattedAddress', Applicant.ApplicantAddressBook) %}
96
+ - text: {{ adrline | get_addr}}
97
+ languageCode: {{ adrline | get_addr | guess_language(TradeMark.ApplicationLanguageCode, 'en') }}
98
+ {% endcall %}
99
+ {% call(adrline) match('FormattedNameAddress.Address', Applicant.ApplicantAddressBook) %}
100
+ countryCode: {{ adrline.AddressCountryCode }}
101
+ {% endcall %}
102
+ {% endcall %}
103
+ representatives:
104
+ {% call(Representative) match('RepresentativeDetails.Representative', TradeMark) %}
105
+ - identifier: {{ Representative.RepresentativeIdentifier }}
106
+ fullName:
107
+ {% call(nameline) match('FormattedNameAddress.Name.FormattedName', Representative.RepresentativeAddressBook) %}
108
+ - text: {{ nameline | get_name}}
109
+ languageCode: {{ nameline | get_name | guess_language(TradeMark.ApplicationLanguageCode, 'en') }}
110
+ {% endcall %}
111
+ fullAddress:
112
+ {% call(adrline) match('FormattedNameAddress.Address.FormattedAddress', Representative.RepresentativeAddressBook) %}
113
+ - text: {{ adrline | get_addr}}
114
+ languageCode: {{ adrline | get_addr | guess_language(TradeMark.ApplicationLanguageCode, 'en') }}
115
+ {% endcall %}
116
+ {% call(adrline) match('FormattedNameAddress.Address', Representative.RepresentativeAddressBook) %}
117
+ countryCode: {{ adrline.AddressCountryCode }}
118
+ {% endcall %}
119
+ {% endcall %}
120
+
121
+ correspondence:
122
+ {% call(Correspondence) match('CorrespondenceAddress', TradeMark) %}
123
+ fullName:
124
+ {% call(nameline) match('FormattedNameAddress.Name.FormattedName', Correspondence.CorrespondenceAddressBook) %}
125
+ - text: {{ nameline | get_name}}
126
+ languageCode: {{ nameline | get_name | guess_language(TradeMark.ApplicationLanguageCode, 'en') }}
127
+ {% endcall %}
128
+ fullAddress:
129
+ {% call(adrline) match('FormattedNameAddress.Address.FormattedAddress', Correspondence.CorrespondenceAddressBook) %}
130
+ - text: {{ adrline | get_addr}}
131
+ languageCode: {{ adrline | get_addr | guess_language(TradeMark.ApplicationLanguageCode, 'en') }}
132
+ {% endcall %}
133
+ {% call(adrline) match('FormattedNameAddress.Address', Correspondence.CorrespondenceAddressBook) %}
134
+ countryCode: {{ adrline.AddressCountryCode }}
135
+ {% endcall %}
136
+ {% endcall %}
137
+
138
+ appeals:
139
+ {% call(apeal) match('AppealDetails.Appeal', TradeMark) %}
140
+ - kind: {{ apeal.AppealIdentifier }}
141
+ date: {{ apeal.AppealDate }}
142
+ {% endcall %}
@@ -0,0 +1,12 @@
1
+ render = 'JSON'
2
+ source = 'national'
3
+
4
+ # GH/T/2006/1880
5
+ # MD/M/1/1187738 # madrid
6
+ appnum_mask = [ 'GH/T/\\d{4}/(\\d*)',
7
+ 'GH/T/(\\d{1,3})/(\\d*)',
8
+ '(WP)/T/\\d{4}/(\\d*)',
9
+ 'MD/(T|M)/\\d{4}/(\\d*)',
10
+ 'MD/(M)/1/(\\d*)' ,
11
+ 'GH/(M)/2/(\\d*)' ,
12
+ 'B/(M)/1/(\\d*)' ]
@@ -0,0 +1,74 @@
1
+ import gbdtransformation.brands.ipas.filters as ipas
2
+
3
+ ignore_namespace = [
4
+ 'http://www.wipo.int/standards/XMLSchema/trademarks',
5
+ 'http://www.wipo.int/standards/XMLSchema/wo-trademarks']
6
+
7
+ def get_appdate(appdate, appnum):
8
+ return appnum.split('/')[-2].zfill(4)
9
+
10
+ def translate_type(header):
11
+ code = header.TransactionCode
12
+
13
+ if code == 'Marks': return 'TRADEMARK'
14
+ if code == 'Madrid Marks': return 'TRADEMARK'
15
+
16
+ raise Exception('Type "%s" is not mapped.' % code)
17
+
18
+ def translate_kind(trademark, header):
19
+ subcode = header.TransactionSubCode
20
+
21
+ if subcode == 'Trademarks': return ['Individual']
22
+ if subcode == 'Service Marks': return ['Individual']
23
+ if subcode == 'Madrid Protocol': return ['Individual']
24
+ if subcode == 'Defensive Marks': return ['Defensive']
25
+ if subcode == 'Certification Marks': return ['Certificate']
26
+
27
+ raise Exception('Kind "%s" not mapped.' % subcode)
28
+
29
+ def translate_status(trademark):
30
+ status = trademark.MarkCurrentStatusCode
31
+
32
+ if status == 'Inactive':
33
+ if trademark.ExpiryDate: return 'Expired'
34
+ else: return 'Ended'
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
+ return ipas.translate_event(event)
47
+
48
+ # ---------------------------------------
49
+
50
+ def verbal_lang_map(markVerbalElements, applang=None):
51
+ return ipas.verbal_lang_map(markVerbalElements, applang=applang)
52
+
53
+ def get_registration_nb(trademark, tmstatus):
54
+ if trademark.RegistrationNumber:
55
+ return trademark.RegistrationNumber
56
+
57
+ return None
58
+
59
+ def get_expiry_date(trademark, tmstatus):
60
+ return ipas.get_expiry_date(trademark, tmstatus)
61
+
62
+ def get_registration_date(trademark, tmstatus):
63
+ return ipas.get_registration_date(trademark, tmstatus)
64
+
65
+ def is_international(header):
66
+ code = header.TransactionCode
67
+ return code == 'Madrid Marks'
68
+
69
+ # ex: MD/M/1/1341864
70
+ def get_ir_refnum(appnum):
71
+ return appnum.split('/')[-1]
72
+
73
+ def get_goods_services(goods_services):
74
+ return ipas.get_goods_services(goods_services)
@@ -0,0 +1,86 @@
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
+ ______________/RegistrationDate
67
+ ______________/RegistrationNumber
68
+ ______________/RegistrationOfficeCode
69
+ ______________/RepresentativeDetails
70
+ ________________/Representative
71
+ __________________/RepresentativeAddressBook
72
+ ____________________/FormattedNameAddress
73
+ ______________________/Address
74
+ ________________________/AddressCountryCode
75
+ ________________________/FreeFormatAddress
76
+ __________________________/FreeFormatAddressLine
77
+ ______________________/Name
78
+ ________________________/FreeFormatName
79
+ __________________________/FreeFormatNameDetails
80
+ ____________________________/FreeFormatNameLine
81
+ ____________________________/FreeFormatNameLine[@languageCode=en]
82
+ ______________/WordMarkSpecification
83
+ ________________/MarkVerbalElementText
84
+ ________________/MarkVerbalElementText[@languageCode=en]
85
+ ______/TransactionIdentifier
86
+ ______/TransactionSubCode
@@ -0,0 +1 @@
1
+ {% include "ipas/template.yml" %}
File without changes
@@ -0,0 +1,7 @@
1
+ render = 'JSON'
2
+ source = 'national'
3
+
4
+ # GM/M/2014/288
5
+ # AP/M/1986/46
6
+ appnum_mask = [ 'GM/M/\\d{4}/(\\d*)',
7
+ '(AP)/M/\\d{4}/(\\d*)' ]
@@ -0,0 +1,70 @@
1
+ import gbdtransformation.brands.ipas.filters as ipas
2
+
3
+ ignore_namespace = [
4
+ 'http://www.wipo.int/standards/XMLSchema/trademarks',
5
+ 'http://www.wipo.int/standards/XMLSchema/wo-trademarks']
6
+
7
+ def get_appdate(appdate, appnum):
8
+ return appnum.split('/')[-2]
9
+
10
+ def translate_type(header):
11
+ code = header.TransactionCode
12
+
13
+ if code == 'National Mark': return 'TRADEMARK'
14
+
15
+ raise Exception('Type "%s" is not mapped.' % code)
16
+
17
+ def translate_kind(trademark, header):
18
+ subcode = header.TransactionSubCode
19
+
20
+ if subcode == 'Trademark': return ['Individual']
21
+ if subcode == 'Certification Mark': return ['Certificate']
22
+
23
+ raise Exception('Kind "%s" not mapped.' % subcode)
24
+
25
+ def translate_status(trademark):
26
+ status = trademark.MarkCurrentStatusCode
27
+
28
+ if status == 'Inactive':
29
+ if trademark.ExpiryDate: return 'Expired'
30
+ else: return 'Ended'
31
+
32
+ return ipas.translate_status(status)
33
+
34
+ def translate_feature(trademark):
35
+ feature = trademark.MarkFeature
36
+
37
+ if not feature: return 'Undefined'
38
+
39
+ return ipas.translate_feature(feature)
40
+
41
+ def translate_event(event):
42
+ return ipas.translate_event(event)
43
+
44
+ # ---------------------------------------
45
+
46
+ def verbal_lang_map(markVerbalElements, applang=None):
47
+ return ipas.verbal_lang_map(markVerbalElements, applang=applang)
48
+
49
+ def get_registration_nb(trademark, tmstatus):
50
+ if trademark.RegistrationNumber:
51
+ return trademark.RegistrationNumber
52
+
53
+ return None
54
+
55
+ def get_expiry_date(trademark, tmstatus):
56
+ return ipas.get_expiry_date(trademark, tmstatus)
57
+
58
+ def get_registration_date(trademark, tmstatus):
59
+ return ipas.get_registration_date(trademark, tmstatus)
60
+
61
+ def is_international(header):
62
+ code = header.TransactionCode
63
+ return code == 'Madrid Marks'
64
+
65
+ # ex: MD/M/1/1341864
66
+ def get_ir_refnum(appnum):
67
+ return appnum.split('/')[-1]
68
+
69
+ def get_goods_services(goods_services):
70
+ return ipas.get_goods_services(goods_services)