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,157 @@
1
+ {% from 'navigation.tmpl' import match %}
2
+
3
+ {% set is_series = TMEXTRACT.MARKDET.TYPMARI | contains('series') %}
4
+ {% set nb_images = TMEXTRACT | get_nb_images %}
5
+ {% set is_color_claimed = TMEXTRACT.MARKDET.DISCLAI | contains('colour claimed') %}
6
+ {% set mark_status = TMEXTRACT.BASGR.BASSTA | translate_status %}
7
+ {% set mark_feature = TMEXTRACT.MARKDET.TYPMARI | translate_feature(words=TMEXTRACT.MARKDET.MARDESC) %}
8
+ {% set _comma = "," %}
9
+ {% set _scoln = ";" %}
10
+ {% set _space = " " %}
11
+
12
+ type: TRADEMARK
13
+ kind: {{ TMEXTRACT.OTHTMDET.TYPMARI | translate_kind }}
14
+ markFeature: {{ mark_feature }}
15
+
16
+ registrationOfficeCode: {{ TMEXTRACT.BASGR.OOCC }}
17
+ designatedCountries:
18
+ - {{ TMEXTRACT.BASGR.OOCC }}
19
+
20
+ reference:
21
+ {% call(ir) match('INTREGG.INTREGN', TMEXTRACT) %}
22
+ office: WO
23
+ registration:
24
+ - number: {{ ir }}
25
+ {% endcall %}
26
+
27
+ st13: {{ TMEXTRACT.BASGR.BASAPPN | st13('AU', appdate=TMEXTRACT.BASGR.BASAPPD) }}
28
+ applicationNumber: {{ TMEXTRACT.BASGR.BASAPPN }}
29
+ applicationDate: {{ TMEXTRACT | get_application_date | convertdate('%Y%m%d') }}
30
+
31
+ {% if mark_status == 'Registered' or mark_status == 'Expired' %}
32
+ registrationNumber: {{ TMEXTRACT.BASGR.BASAPPN }}
33
+ {% endif %}
34
+ registrationDate: {{ TMEXTRACT | get_registration_date | convertdate('%Y%m%d') }}
35
+
36
+ applicationLanguageCode: {{ TMEXTRACT.MARKDET.ORIGLAN | lower }}
37
+ expiryDate: {{ TMEXTRACT | get_expiry_date | convertdate('%Y%m%d') }}
38
+
39
+ officeStatus: {{ TMEXTRACT.BASGR.BASSTA }}
40
+ gbdStatus: {{ mark_status }}
41
+ statusDate:
42
+
43
+ wordMarkSpecification:
44
+ {% call(words) match('MARKDET.MARDESC', TMEXTRACT) %}
45
+ markVerbalElement:
46
+ {% for val in words | get_word_series(is_series) %}
47
+ - languageCode: {{ val | guess_language('en') }}
48
+ text: {{ val | trim }}
49
+ {% endfor %}
50
+ {% endcall %}
51
+
52
+ {% if nb_images > 0 or is_color_claimed %}
53
+ markImageDetails:
54
+ - name: {{ nb_images }}
55
+ {% if is_color_claimed %}
56
+ colourIndicator: {{ is_color_claimed }}
57
+ colourClaimed:
58
+ - languageCode: en
59
+ text: {{ TMEXTRACT.MARKDET.DISCLAI }}
60
+ {% endif %}
61
+ classification:
62
+ kind: KeyWords
63
+ version: AU
64
+ {% call(desc) match('MARKDET.DEVDESC', TMEXTRACT) %}
65
+ {% set desc_line = desc | remove_cr | remove_tab %}
66
+ code:
67
+ {% for val in desc_line.split(_comma) %}
68
+ - {{ val | trim }}
69
+ {% endfor %}
70
+ {% endcall %}
71
+ {% endif %}
72
+
73
+ {% if mark_feature == 'Sound' %}
74
+ markSoundDetails:
75
+ - filename: {{ TODO }}
76
+ fileformat: {{ TODO }}
77
+ {% endif %}
78
+
79
+ {% if TMEXTRACT.GSGR %}
80
+ goodsServicesClassification:
81
+ kind: Nice
82
+ version: {{ ASK_THE_OFFICE }}
83
+ class:
84
+ {% call(gs) match('GSGR', TMEXTRACT)%}
85
+ - code: {{ gs.NICCLAI | int }}
86
+ terms:
87
+ en :
88
+ {% for term in gs.GSTERMO | split_terms %}
89
+ - {{ term | trim | lower }}
90
+ {% endfor %}
91
+ {% endcall %}
92
+ {% endif %}
93
+
94
+ priorities:
95
+ {% call(priority) match('PRIGR', TMEXTRACT)%}
96
+ - countryCode: {{ priority.COUNTRY }}
97
+ number: {{ priority.PRIAPPN }}
98
+ date: {{ priority.PRIAPPD | convertdate('%Y%m%d') }}
99
+ comment:
100
+ {% endcall %}
101
+
102
+ {% call(publication) match('PUBREG', TMEXTRACT)%}
103
+ publications:
104
+ - identifier:
105
+ date: {{ publication.PUBREGD | convertdate('%Y%m%d') }}
106
+ section: {{ publication.PUBREGIS }}
107
+ {% endcall %}
108
+
109
+ {% set applicants = TMEXTRACT.APCTADD | unique_persons %}
110
+ applicants:
111
+ {% for applicant in applicants %}
112
+ - identifier: {{ applicant.NAML8 }}
113
+ kind: {{ "Natural Person" if applicant.NAML3 else "Legal Entity" }}
114
+ fullName:
115
+ - languageCode: {{ applicant | get_person_name | guess_language('en') }}
116
+ text: {{ applicant | get_person_name }}
117
+ fullAddress:
118
+ - languageCode: {{ applicant.ADDRL6 | guess_language('en') }}
119
+ text: {{ applicant.ADDRL6 | append(_space, applicant.POSTCDE) }}
120
+ countryCode: {{ applicant.COUNTRY }}
121
+ {% endfor %}
122
+
123
+ {% set representatives = TMEXTRACT.SRVCADD | unique_persons %}
124
+ representatives:
125
+ {% for representative in representatives %}
126
+ - identifier: {{ representative.NAML8 }}
127
+ kind: {{ "Natural Person" if representative.NAML3 else "Legal Entity" }}
128
+ fullName:
129
+ - languageCode: {{ representative | get_person_name | guess_language('en') }}
130
+ text: {{ representative | get_person_name }}
131
+ fullAddress:
132
+ - languageCode: {{ representative.ADDRL6 | guess_language('en') }}
133
+ text: {{ representative.ADDRL6 | append(_space, representative.POSTCDE) }}
134
+ countryCode: {{ representative.COUNTRY }}
135
+ {% endfor %}
136
+
137
+ {% call(corr) match('INTREGG.CORADD', TMEXTRACT) %}
138
+ correspondence:
139
+ fullName:
140
+ - languageCode: {{ corr | get_person_name | guess_language('en') }}
141
+ text: {{ corr | get_person_name }}
142
+ fullAddress:
143
+ - languageCode: {{ corr.ADDRL6 | guess_language('en') }}
144
+ text: {{ corr.ADDRL6 | append(_space, corr.POSTCDE) }}
145
+ countryCode: {{ corr.COUNTRY }}
146
+ {% endcall %}
147
+
148
+ # events:
149
+ # - officeKind:
150
+ # gbdKind: # (Filed|Registered|Published|Opposed|Withdrawn)
151
+ # date:
152
+
153
+
154
+ # here goes extra information that is office specific and that is pertinent for us to retain.
155
+ extra:
156
+ isSeries: {{ is_series | get_true_or_false }}
157
+ imgCount: {{ nb_images }}
@@ -0,0 +1,5 @@
1
+ # instruction to render the output to JSON format
2
+ render = 'JSON'
3
+ source = 'national'
4
+
5
+ appnum_mask = '\\d{4}(\\d*)([A-Z]*)'
@@ -0,0 +1,112 @@
1
+ # standard gbd definitions
2
+ from gbdtransformation.brands import kinds as std_kinds
3
+ from gbdtransformation.brands import status as std_status
4
+ from gbdtransformation.brands import features as std_features
5
+
6
+ # namespaces defined in XML and to be ignored in procecssing
7
+ ignore_namespace = [
8
+ 'http://www.euipo.europa.eu/EUTM/EUTM_Download',
9
+ 'http://www.oami.europa.eu/TM-Search'
10
+ ]
11
+
12
+ def filter_language(value, app_language):
13
+ if not value: return []
14
+
15
+ languages = set(['en', 'fr', 'es'])
16
+ languages.add(app_language.lower())
17
+ new_matches = []
18
+ for match in value:
19
+ if not match: continue
20
+ if not isinstance(match, dict):
21
+ new_matches.append(match)
22
+ elif not match.get('_languageCode', None):
23
+ new_matches.append(match)
24
+ elif match['_languageCode'].lower() in languages:
25
+ new_matches.append(match)
26
+ return new_matches
27
+
28
+ def get_termination(value, gbd_status):
29
+ if gbd_status == 'Ended':
30
+ return value
31
+ return None
32
+
33
+ # -------------------------------------------------------------
34
+ # data translation helpers:
35
+ # translate values from office interpretation to gbd equivalent
36
+ # -------------------------------------------------------------
37
+
38
+ def format_address(address):
39
+ return '%s, %s %s' % (address.AddressStreet,
40
+ address.AddressPostcode,
41
+ address.AddressCity)
42
+
43
+ def format_name(name):
44
+ fname = name.FirstName
45
+ lname = name.LastName
46
+
47
+ full_name = [name.FirstName, name.LastName]
48
+ full_name = [f for f in full_name if f]
49
+
50
+ return ' '.join(full_name)
51
+
52
+
53
+ def translate_kind(kind):
54
+ if not kind: return ['Individual']
55
+
56
+ if kind.capitalize() in std_kinds:
57
+ return [kind.capitalize()]
58
+
59
+ if kind == 'EU Certificate':
60
+ return ['Certificate']
61
+
62
+ raise Exception('kind "%s" is not mapped.' % kind)
63
+
64
+
65
+
66
+ def translate_feature(feature):
67
+ if not feature: return 'Undefined'
68
+
69
+ if feature in ["3D shape", "3-D"]: return 'Three dimensional'
70
+
71
+ if feature.capitalize() in std_features:
72
+ return feature.capitalize()
73
+
74
+ raise Exception('Feature "%s" unmapped' % feature)
75
+
76
+
77
+ def get_registration_nb(trademark, tmstatus):
78
+ if trademark.RegistrationNumber:
79
+ return trademark.RegistrationNumber
80
+
81
+ # default registration number to application number
82
+ # in case none is provided
83
+ if tmstatus in ['Registered', 'Expired']:
84
+ return trademark.ApplicationNumber
85
+
86
+ def translate_status(trademark):
87
+ if trademark._operationCode == 'Delete':
88
+ return 'Delete'
89
+
90
+ status = trademark.MarkCurrentStatusCode
91
+
92
+ if status in ['Application filed',
93
+ 'Application published',
94
+ 'Application under examination',
95
+ 'Registration pending',
96
+ 'Appeal pending',
97
+ 'Registration cancellation pending',
98
+ 'Filed']:
99
+ return 'Pending'
100
+
101
+ if status in ['Application refused',
102
+ 'Application withdrawn',
103
+ 'Application opposed',
104
+ 'Registration cancelled',
105
+ 'Registration surrendered',
106
+ 'Ended']:
107
+ return 'Ended'
108
+
109
+ if status == 'Registered': return 'Registered'
110
+ if status in ['Registration expired', 'Expired']: return 'Expired'
111
+
112
+ raise Exception('Status "%s" not mapped.' % status)
@@ -0,0 +1,314 @@
1
+ /TradeMark
2
+ __/AppealDetails
3
+ ____/Appeal
4
+ ______/AppealDate
5
+ ______/AppealEventDetails
6
+ ________/AppealEvent
7
+ __________/AppealEventCode
8
+ __________/AppealEventDate
9
+ ______/AppealIdentifier
10
+ ______/AppealProceedingLanguageCode
11
+ ______/AppellantDetails
12
+ ________/AppellantKey
13
+ __________/Identifier
14
+ ______/CaseReferenceDetails
15
+ ________/CaseReference
16
+ ________/CaseReference[@caseReferenceKind=Cancellation]
17
+ ________/CaseReference[@caseReferenceKind=International Application]
18
+ ________/CaseReference[@caseReferenceKind=Mark Record]
19
+ ________/CaseReference[@caseReferenceKind=Trade Mark]
20
+ ______/RepresentativeDetails
21
+ ________/RepresentativeKey
22
+ __________/Identifier
23
+ ______/RespondentDetails
24
+ ________/RespondentKey
25
+ __________/Identifier
26
+ ______/RespondentRepresentativeDetails
27
+ ________/RespondentRepresentativeKey
28
+ __________/Identifier
29
+ __/ApplicantDetails
30
+ ____/Applicant
31
+ ______/ApplicantAddressBook
32
+ ________/ContactInformationDetails
33
+ __________/URL
34
+ ________/FormattedNameAddress
35
+ __________/Address
36
+ ____________/AddressCountryCode
37
+ ____________/FormattedAddress
38
+ ______________/AddressCity
39
+ ______________/AddressPostcode
40
+ ______________/AddressState
41
+ ______________/AddressStreet
42
+ __________/Name
43
+ ____________/FormattedName
44
+ ______________/FirstName
45
+ ______________/LastName
46
+ ______________/LegalForm
47
+ ______________/MiddleName
48
+ ______________/OrganizationName
49
+ ________/PostalAddress
50
+ ______/ApplicantIdentifier
51
+ ______/ApplicantIncorporationCountryCode
52
+ ______/ApplicantIncorporationState
53
+ ______/ApplicantLegalEntity
54
+ ______/ApplicantNationalIdentification
55
+ ______/ApplicantNationalityCode
56
+ ____/Applicant[@operationCode=Delete]
57
+ ____/Applicant[@operationCode=Insert]
58
+ __/ApplicationDate
59
+ __/ApplicationLanguageCode
60
+ __/ApplicationNumber
61
+ __/CorrespondenceAddress
62
+ ____/CorrespondenceAddressIdentifier
63
+ ____/CorrespondenceAddressParty
64
+ __/ExhibitionPriorityDetails
65
+ ____/ExhibitionPriority
66
+ ______/ExhibitionDate
67
+ ______/ExhibitionFirstDisplayDate
68
+ ______/ExhibitionName
69
+ ______/ExhibitionStatusCode
70
+ __/ExpiryDate
71
+ __/GoodsServicesDetails
72
+ ____/GoodsServices
73
+ ______/ClassDescriptionDetails
74
+ ________/ClassDescription
75
+ __________/ClassNumber
76
+ __________/GoodsServicesDescription
77
+ __________/GoodsServicesDescription[@languageCode=en]
78
+ __________/GoodsServicesDescription[@languageCode=es]
79
+ __________/GoodsServicesDescription[@languageCode=fr]
80
+ __/KindMark
81
+ __/MarkCurrentStatusCode
82
+ __/MarkCurrentStatusDate
83
+ __/MarkDescriptionDetails
84
+ ____/MarkDescription
85
+ ____/MarkDescription[@languageCode=bg]
86
+ ____/MarkDescription[@languageCode=cs]
87
+ ____/MarkDescription[@languageCode=da]
88
+ ____/MarkDescription[@languageCode=de]
89
+ ____/MarkDescription[@languageCode=el]
90
+ ____/MarkDescription[@languageCode=en]
91
+ ____/MarkDescription[@languageCode=es]
92
+ ____/MarkDescription[@languageCode=et]
93
+ ____/MarkDescription[@languageCode=fi]
94
+ ____/MarkDescription[@languageCode=fr]
95
+ ____/MarkDescription[@languageCode=hr]
96
+ ____/MarkDescription[@languageCode=hu]
97
+ ____/MarkDescription[@languageCode=it]
98
+ ____/MarkDescription[@languageCode=lt]
99
+ ____/MarkDescription[@languageCode=lv]
100
+ ____/MarkDescription[@languageCode=mt]
101
+ ____/MarkDescription[@languageCode=nl]
102
+ ____/MarkDescription[@languageCode=pl]
103
+ ____/MarkDescription[@languageCode=pt]
104
+ ____/MarkDescription[@languageCode=ro]
105
+ ____/MarkDescription[@languageCode=sl]
106
+ ____/MarkDescription[@languageCode=sv]
107
+ __/MarkDisclaimerDetails
108
+ ____/MarkDisclaimer
109
+ ____/MarkDisclaimer[@languageCode=bg]
110
+ ____/MarkDisclaimer[@languageCode=cs]
111
+ ____/MarkDisclaimer[@languageCode=da]
112
+ ____/MarkDisclaimer[@languageCode=de]
113
+ ____/MarkDisclaimer[@languageCode=el]
114
+ ____/MarkDisclaimer[@languageCode=en]
115
+ ____/MarkDisclaimer[@languageCode=es]
116
+ ____/MarkDisclaimer[@languageCode=fi]
117
+ ____/MarkDisclaimer[@languageCode=fr]
118
+ ____/MarkDisclaimer[@languageCode=hu]
119
+ ____/MarkDisclaimer[@languageCode=it]
120
+ ____/MarkDisclaimer[@languageCode=nl]
121
+ ____/MarkDisclaimer[@languageCode=pl]
122
+ ____/MarkDisclaimer[@languageCode=pt]
123
+ ____/MarkDisclaimer[@languageCode=sv]
124
+ __/MarkFeature
125
+ __/MarkImageDetails
126
+ ____/MarkImage
127
+ ______/MarkImageCategory
128
+ ________/CategoryCodeDetails
129
+ __________/CategoryCode
130
+ ______/MarkImageColourClaimedText
131
+ ______/MarkImageColourClaimedText[@languageCode=bg]
132
+ ______/MarkImageColourClaimedText[@languageCode=cs]
133
+ ______/MarkImageColourClaimedText[@languageCode=da]
134
+ ______/MarkImageColourClaimedText[@languageCode=de]
135
+ ______/MarkImageColourClaimedText[@languageCode=el]
136
+ ______/MarkImageColourClaimedText[@languageCode=en]
137
+ ______/MarkImageColourClaimedText[@languageCode=es]
138
+ ______/MarkImageColourClaimedText[@languageCode=et]
139
+ ______/MarkImageColourClaimedText[@languageCode=fi]
140
+ ______/MarkImageColourClaimedText[@languageCode=fr]
141
+ ______/MarkImageColourClaimedText[@languageCode=hr]
142
+ ______/MarkImageColourClaimedText[@languageCode=hu]
143
+ ______/MarkImageColourClaimedText[@languageCode=it]
144
+ ______/MarkImageColourClaimedText[@languageCode=lt]
145
+ ______/MarkImageColourClaimedText[@languageCode=lv]
146
+ ______/MarkImageColourClaimedText[@languageCode=nl]
147
+ ______/MarkImageColourClaimedText[@languageCode=pl]
148
+ ______/MarkImageColourClaimedText[@languageCode=pt]
149
+ ______/MarkImageColourClaimedText[@languageCode=ro]
150
+ ______/MarkImageColourClaimedText[@languageCode=sk]
151
+ ______/MarkImageColourClaimedText[@languageCode=sl]
152
+ ______/MarkImageColourClaimedText[@languageCode=sv]
153
+ ______/MarkImageFileFormat
154
+ ______/MarkImageFilename
155
+ __/MarkRecordDetails
156
+ ____/MarkRecord
157
+ ______/BasicRecord
158
+ ________/BasicRecordKind
159
+ ________/BeneficiaryDetails
160
+ __________/BeneficiaryKey
161
+ ____________/Identifier
162
+ ________/BeneficiaryRepresentativeDetails
163
+ __________/BeneficiaryRepresentativeKey
164
+ ____________/Identifier
165
+ ________/ClaimantDetails
166
+ __________/ClaimantKey
167
+ ____________/Identifier
168
+ ________/RecordCurrentStatusCode
169
+ ________/RecordCurrentStatusDate
170
+ ________/RecordScope
171
+ ________/RepresentativeDetails
172
+ __________/RepresentativeKey
173
+ ____________/Identifier
174
+ __/MarkSoundDetails
175
+ ____/MarkSound
176
+ ______/MarkSoundFileFormat
177
+ ______/MarkSoundFilename
178
+ __/MarkThreeDimensionalModelDetails
179
+ ____/MarkThreeDimensionalModel
180
+ ______/ThreeDimensionalModelCategory
181
+ ________/CategoryCodeDetails
182
+ __________/CategoryCode
183
+ ______/ThreeDimensionalModelFileFormat
184
+ ______/ThreeDimensionalModelFilename
185
+ __/MarkVideoDetails
186
+ ____/MarkVideo
187
+ ______/MarkVideoCategory
188
+ ________/CategoryCodeDetails
189
+ __________/CategoryCode
190
+ ______/MarkVideoFileFormat
191
+ ______/MarkVideoFilename
192
+ __/OppositionDetails
193
+ ____/Opposition
194
+ ______/AppealDetails
195
+ ________/Appeal
196
+ __________/AppealDate
197
+ __________/AppealEventDetails
198
+ ____________/AppealEvent
199
+ ______________/AppealEventCode
200
+ ______________/AppealEventDate
201
+ __________/AppealIdentifier
202
+ __________/AppealProceedingLanguageCode
203
+ __________/AppellantDetails
204
+ ____________/AppellantKey
205
+ ______________/Identifier
206
+ __________/CaseReferenceDetails
207
+ ____________/CaseReference
208
+ ____________/CaseReference[@caseReferenceKind=Opposition]
209
+ __________/RepresentativeDetails
210
+ ____________/RepresentativeKey
211
+ ______________/Identifier
212
+ __________/RespondentDetails
213
+ ____________/RespondentKey
214
+ ______________/Identifier
215
+ __________/RespondentRepresentativeDetails
216
+ ____________/RespondentRepresentativeKey
217
+ ______________/Identifier
218
+ ______/EarlierMarkDetails
219
+ ________/EarlierMark
220
+ __________/ApplicationDate
221
+ __________/ApplicationNumber
222
+ __________/DesignatedCountryDetails
223
+ ____________/DesignatedCountryCode
224
+ __________/EarlierMarkCountryCode
225
+ __________/MarkFeature
226
+ __________/RegistrationDate
227
+ __________/RegistrationNumber
228
+ __________/WordMarkSpecification
229
+ ____________/MarkVerbalElementText
230
+ ______/OpponentDetails
231
+ ________/OpponentKey
232
+ __________/Identifier
233
+ ______/OppositionDate
234
+ ______/OppositionGroundText
235
+ ______/OppositionIdentifier
236
+ ______/ProceedingLanguageCode
237
+ ______/RepresentativeDetails
238
+ ________/RepresentativeKey
239
+ __________/Identifier
240
+ __/PriorityDetails
241
+ ____/Priority
242
+ ______/PriorityCountryCode
243
+ ______/PriorityDate
244
+ ______/PriorityNumber
245
+ ______/PriorityPartialIndicator
246
+ ______/PriorityStatusCode
247
+ __/PublicationDetails
248
+ ____/Publication
249
+ ______/PublicationDate
250
+ ______/PublicationIdentifier
251
+ ______/PublicationPage
252
+ ______/PublicationSection
253
+ __/RegistrationDate
254
+ __/RegistrationOfficeCode
255
+ __/RepresentativeDetails
256
+ ____/Representative
257
+ ______/RepresentativeAddressBook
258
+ ________/ContactInformationDetails
259
+ __________/Email
260
+ __________/Fax
261
+ __________/Phone
262
+ __________/URL
263
+ ________/FormattedNameAddress
264
+ __________/Address
265
+ ____________/AddressCountryCode
266
+ ____________/FormattedAddress
267
+ ______________/AddressCity
268
+ ______________/AddressPostcode
269
+ ______________/AddressState
270
+ ______________/AddressStreet
271
+ __________/Name
272
+ ____________/FormattedName
273
+ ______________/FirstName
274
+ ______________/LastName
275
+ ______________/MiddleName
276
+ ______________/OrganizationName
277
+ ________/PostalAddress
278
+ ______/RepresentativeIdentifier
279
+ ______/RepresentativeIncorporationCountryCode
280
+ ______/RepresentativeIncorporationState
281
+ ______/RepresentativeLegalEntity
282
+ ______/RepresentativeNationalityCode
283
+ ______/RepresentativeTypeCode
284
+ ____/Representative[@operationCode=Delete]
285
+ ____/Representative[@operationCode=Insert]
286
+ __/SecondLanguageCode
287
+ __/SeniorityDetails
288
+ ____/Seniority
289
+ ______/InternationalTradeMarkIndicator
290
+ ______/SeniorityApplicationDate
291
+ ______/SeniorityApplicationNumber
292
+ ______/SeniorityCountryCode
293
+ ______/SeniorityFilingDate
294
+ ______/SeniorityPartialIndicator
295
+ ______/SeniorityRegistrationDate
296
+ ______/SeniorityRegistrationNumber
297
+ ______/SeniorityStatusCode
298
+ __/TradeDistinctivenessIndicator
299
+ __/TradeMarkRelationDetails
300
+ ____/TradeMarkRelation
301
+ ______/RelatedTradeMarkIdentifier
302
+ ______/TradeMarkIdentifier
303
+ ______/TradeMarkRelationKind
304
+ __/TransformationPriorityDetails
305
+ ____/TransformationPriority
306
+ ______/CancellationDate
307
+ ______/PriorityDate
308
+ ______/RegistrationDate
309
+ ______/RegistrationNumber
310
+ ______/TransformationCountryCode
311
+ __/WordMarkSpecification
312
+ ____/MarkVerbalElementText
313
+ /TradeMark[@operationCode=Delete]
314
+ /TradeMark[@operationCode=Insert]