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,107 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+
3
+ <Transaction xmlns="http://www.wipo.int/standards/XMLSchema/trademarks" xmlns:wo="http://www.wipo.int/standards/XMLSchema/wo-trademarks">
4
+ <TradeMarkTransactionBody>
5
+ <TransactionContentDetails>
6
+ <TransactionIdentifier>M</TransactionIdentifier>
7
+ <TransactionCode>Marques Nationales</TransactionCode>
8
+ <TransactionSubCode>Marque Nationale Individuelle</TransactionSubCode>
9
+ <TransactionData>
10
+ <TradeMarkApplication>
11
+ <TradeMarkDetails>
12
+ <TradeMark>
13
+ <RegistrationOfficeCode>MG</RegistrationOfficeCode>
14
+ <ApplicationNumber>MG/M/2018/516</ApplicationNumber>
15
+ <ApplicationDate>2018-07-04</ApplicationDate>
16
+ <RegistrationNumber>19695</RegistrationNumber>
17
+ <RegistrationDate>2019-01-17</RegistrationDate>
18
+ <ApplicationLanguageCode>fr</ApplicationLanguageCode>
19
+ <ExpiryDate>2028-07-04</ExpiryDate>
20
+ <MarkCurrentStatusDate>2019-01-17</MarkCurrentStatusDate>
21
+ <MarkImageDetails>
22
+ <MarkImage>
23
+ <MarkImageFilename>ATTACHMENT/logo</MarkImageFilename>
24
+ <MarkImageFileFormat>JPEG</MarkImageFileFormat>
25
+ <MarkImageCategory>
26
+ <CategoryKind>Vienna</CategoryKind>
27
+ <CategoryVersion>7</CategoryVersion>
28
+ <CategoryCodeDetails>
29
+ <CategoryCode>03.11.10</CategoryCode>
30
+ <CategoryCode>27.05.01</CategoryCode>
31
+ <CategoryCode>27.05.08</CategoryCode>
32
+ </CategoryCodeDetails>
33
+ </MarkImageCategory>
34
+ </MarkImage>
35
+ </MarkImageDetails>
36
+ <GoodsServicesDetails>
37
+ <GoodsServices>
38
+ <ClassDescriptionDetails>
39
+ <ClassDescription>
40
+ <ClassNumber>14</ClassNumber>
41
+ <GoodsServicesDescription languageCode="fr">Collier, Bracelets, Breloques pour la bijouteries, boucles d'oreilles, boites à bijoux.</GoodsServicesDescription>
42
+ </ClassDescription>
43
+ <ClassDescription>
44
+ <ClassNumber>18</ClassNumber>
45
+ <GoodsServicesDescription languageCode="fr">sacs à mains, sacs de plages, sacs normales, porte-feuilles, sacs des voyages; valises ;pochettes pour documents, sacs à dos.</GoodsServicesDescription>
46
+ </ClassDescription>
47
+ <ClassDescription>
48
+ <ClassNumber>21</ClassNumber>
49
+ <GoodsServicesDescription languageCode="fr">boites pour la distribution de serviettes en papiers; sous verres en bambou; corbeilles à pain pour usage ménagères;plateaux à usage domestiques;corbeilles à usage ménagères, dessous de plats;ustensiles de cuisines;sets de tables;ni en papier, ni en matières textiles.</GoodsServicesDescription>
50
+ </ClassDescription>
51
+ <ClassDescription>
52
+ <ClassNumber>24</ClassNumber>
53
+ <GoodsServicesDescription languageCode="fr">chemins de tables non en papier, sets de tables en matières textiles ; Housses d'oreiller ; Couverture de lits ; serviettes de tables en matières textiles ; Housses pour coussins ; tapis des tables non en papier.</GoodsServicesDescription>
54
+ </ClassDescription>
55
+ <ClassDescription>
56
+ <ClassNumber>25</ClassNumber>
57
+ <GoodsServicesDescription languageCode="fr">Ponchos;Sarongs;Jupes;paréo;Pantalons, Foulards;Serviettes de plages;cache nez;chapeaux;Ceintures.</GoodsServicesDescription>
58
+ </ClassDescription>
59
+ </ClassDescriptionDetails>
60
+ </GoodsServices>
61
+ </GoodsServicesDetails>
62
+ <ApplicantDetails>
63
+ <Applicant>
64
+ <ApplicantAddressBook>
65
+ <FormattedNameAddress>
66
+ <Name>
67
+ <FreeFormatName>
68
+ <FreeFormatNameDetails>
69
+ <FreeFormatNameLine languageCode="fr">RAMIANDRISOA Hery Gedeon</FreeFormatNameLine>
70
+ </FreeFormatNameDetails>
71
+ </FreeFormatName>
72
+ </Name>
73
+ <Address>
74
+ <AddressCountryCode>MG</AddressCountryCode>
75
+ <FreeFormatAddress>
76
+ <FreeFormatAddressLine>Lot III G124 A Bis Ambatolampy Antehiroka</FreeFormatAddressLine>
77
+ </FreeFormatAddress>
78
+ </Address>
79
+ </FormattedNameAddress>
80
+ </ApplicantAddressBook>
81
+ </Applicant>
82
+ </ApplicantDetails>
83
+ <wo:WordMarkSpecification>
84
+ <wo:MarkVerbalElementText languageCode="fr">chicetnic</wo:MarkVerbalElementText>
85
+ </wo:WordMarkSpecification>
86
+ <wo:MarkEventDetails>
87
+ <wo:MarkEvent>
88
+ <wo:MarkEventDate>2018-07-04</wo:MarkEventDate>
89
+ <wo:MarkEventCode>Filed</wo:MarkEventCode>
90
+ <wo:OfficeSpecificMarkEventName>Filing</wo:OfficeSpecificMarkEventName>
91
+ </wo:MarkEvent>
92
+ <wo:MarkEvent>
93
+ <wo:MarkEventDate>2019-01-17</wo:MarkEventDate>
94
+ <wo:MarkEventCode>Registered</wo:MarkEventCode>
95
+ <wo:OfficeSpecificMarkEventName>-</wo:OfficeSpecificMarkEventName>
96
+ <wo:OfficeSpecificMarkEventCode>079</wo:OfficeSpecificMarkEventCode>
97
+ <wo:OfficeSpecificMarkEventDescription languageCode="fr">TM Enregistree</wo:OfficeSpecificMarkEventDescription>
98
+ </wo:MarkEvent>
99
+ </wo:MarkEventDetails>
100
+ <wo:MarkCurrentStatusCode>Registered</wo:MarkCurrentStatusCode>
101
+ </TradeMark>
102
+ </TradeMarkDetails>
103
+ </TradeMarkApplication>
104
+ </TransactionData>
105
+ </TransactionContentDetails>
106
+ </TradeMarkTransactionBody>
107
+ </Transaction>
@@ -0,0 +1,6 @@
1
+ # instruction to render the output to JSON format
2
+ render = 'JSON'
3
+ source = 'national'
4
+
5
+ # 201500024
6
+ appnum_mask = '\\d{4}(\\d*)'
@@ -0,0 +1,63 @@
1
+ # namespaces defined in XML and to be ignored in procecssing
2
+ ignore_namespace = [
3
+ 'http://www.oami.europa.eu/TM-Search'
4
+ ]
5
+
6
+
7
+ # -------------------------------------------------------------
8
+ # data translation helpers:
9
+ # translate values from office interpretation to gbd equivalent
10
+ # -------------------------------------------------------------
11
+ def get_appyear(appnum):
12
+ return appnum[:4]
13
+
14
+ def translate_kind(kind):
15
+ if kind == 'Individual': return ['Individual']
16
+ if kind == 'Certificate': return ['Certificate']
17
+ if kind == 'Collective': return ['Collective']
18
+
19
+ raise Exception('kind "%s" is not mapped.' % kind)
20
+
21
+ def translate_status(status):
22
+ if not status: return 'Unknown'
23
+
24
+ if status == 'Expired': return 'Expired'
25
+ if status == 'Registered': return 'Registered'
26
+
27
+ if status in ['Application filed',
28
+ 'Application published' ]:
29
+ return 'Pending'
30
+
31
+ if status in ['Application refused',
32
+ 'Application withdrawn',
33
+ 'Application opposed',
34
+ 'Registration cancelled']:
35
+ return 'Ended'
36
+
37
+
38
+ raise Exception('Status "%s" unmapped' % status)
39
+
40
+ def get_termination(value, gbd_status):
41
+ if gbd_status == 'Ended':
42
+ return value
43
+ return None
44
+
45
+ def translate_feature(feature):
46
+ if not feature: return 'Undefined'
47
+
48
+ if feature == '3-D': return 'Three dimensional'
49
+ if feature == 'Combined': return 'Combined'
50
+ if feature == 'Word': return 'Word'
51
+ if feature == 'Figurative': return 'Figurative'
52
+ if feature == 'Olfactory': return 'Olfactory'
53
+
54
+ raise Exception('Feature "%s" unmapped' % feature)
55
+
56
+ def get_registration_nb(trademark, tmstatus):
57
+ if trademark.RegistrationNumber:
58
+ return trademark.RegistrationNumber
59
+
60
+ # default registration number to application number
61
+ # in case none is provided
62
+ if tmstatus in ['Registered', 'Expired']:
63
+ return trademark.ApplicationNumber
@@ -0,0 +1,80 @@
1
+ ransaction
2
+ __/TradeMarkTransactionBody
3
+ ____/TransactionContentDetails
4
+ ______/TransactionCode
5
+ ______/TransactionData
6
+ ________/TradeMarkDetails
7
+ __________/TradeMark
8
+ ____________/ApplicantDetails
9
+ ______________/Applicant
10
+ ________________/ApplicantAddressBook
11
+ __________________/FormattedNameAddress
12
+ ____________________/Address
13
+ ______________________/AddressCountryCode
14
+ ______________________/FreeFormatAddress
15
+ ________________________/FreeFormatAddressLine
16
+ ____________________/Name
17
+ ______________________/FreeFormatName
18
+ ________________________/FreeFormatNameDetails
19
+ __________________________/FreeFormatNameLine
20
+ ________________/ApplicantLegalEntity
21
+ ________________/ApplicantNationalityCode
22
+ ____________/ApplicationDate
23
+ ____________/ApplicationLanguageCode
24
+ ____________/ApplicationNumber
25
+ ____________/ExpiryDate
26
+ ____________/GoodsServicesDetails
27
+ ______________/GoodsServices
28
+ ________________/ClassDescriptionDetails
29
+ __________________/ClassDescription
30
+ ____________________/ClassNumber
31
+ ____________________/GoodsServicesDescription
32
+ ____________________/GoodsServicesDescription[@languageCode=mk]
33
+ ________________/ClassificationKindCode
34
+ ____________/IPRKind
35
+ ____________/InternationalMarkIndicator
36
+ ____________/KindMark
37
+ ____________/MarkCurrentStatusCode
38
+ ____________/MarkCurrentStatusDate
39
+ ____________/MarkFeature
40
+ ____________/MarkImageDetails
41
+ ______________/MarkImage
42
+ ________________/MarkImageCategory
43
+ __________________/CategoryCodeDetails
44
+ ____________________/CategoryCode
45
+ ________________/MarkImageColourClaimedText
46
+ ________________/MarkImageColourClaimedText[@languageCode=mk]
47
+ ________________/MarkImageColourIndicator
48
+ ________________/MarkImageFilename
49
+ ____________/PriorityDetails
50
+ ______________/Priority
51
+ ________________/PriorityCountryCode
52
+ ________________/PriorityDate
53
+ ________________/PriorityNumber
54
+ ____________/RegistrationDate
55
+ ____________/RegistrationNumber
56
+ ____________/RegistrationOfficeCode
57
+ ____________/RepresentativeDetails
58
+ ______________/Representative
59
+ ________________/RepresentativeAddressBook
60
+ __________________/FormattedNameAddress
61
+ ____________________/Address
62
+ ______________________/AddressCountryCode
63
+ ______________________/FreeFormatAddress
64
+ ________________________/FreeFormatAddressLine
65
+ ____________________/Name
66
+ ______________________/FreeFormatName
67
+ ________________________/FreeFormatNameDetails
68
+ __________________________/FreeFormatNameLine
69
+ ________________/RepresentativeIdentifier
70
+ ________________/RepresentativeKindCode
71
+ ________________/RepresentativeLegalEntity
72
+ ________________/RepresentativeNationalityCode
73
+ ____________/WordMarkSpecification
74
+ ______________/MarkVerbalElementText
75
+ ______________/MarkVerbalElementText[@languageCode=mk]
76
+ __________/TradeMark[@operationCode=Insert]
77
+ ______/TransactionIdentifier
78
+ __/TransactionHeader
79
+ ____/SenderDetails
80
+ ______/RequestProducerDateTime
@@ -0,0 +1,112 @@
1
+ {% from 'navigation.tmpl' import match %}
2
+
3
+ {% set TradeMark = Transaction.TradeMarkTransactionBody.TransactionContentDetails.TransactionData.TradeMarkDetails.TradeMark %}
4
+
5
+ {% set status = TradeMark.MarkCurrentStatusCode | translate_status %}
6
+ {% set kind = TradeMark.KindMark | translate_kind %}
7
+ {% set appyear = TradeMark.ApplicationNumber | get_appyear %}
8
+
9
+ type: TRADEMARK
10
+ kind: {{ kind }}
11
+ st13: {{ TradeMark.ApplicationNumber | st13('MK', appdate=appyear) }}
12
+
13
+ markFeature: {{ TradeMark.MarkFeature | translate_feature }}
14
+ registrationOfficeCode: {{ TradeMark.RegistrationOfficeCode }}
15
+ designatedCountries:
16
+ - {{ TradeMark.RegistrationOfficeCode }}
17
+ applicationNumber: {{ TradeMark.ApplicationNumber }}
18
+ applicationDate: {{ TradeMark.ApplicationDate | convertdate('%Y-%m-%d') }}
19
+ registrationNumber: {{ TradeMark | get_registration_nb(TradeMark.MarkCurrentStatusCode)}}
20
+ registrationDate: {{ TradeMark.RegistrationDate }}
21
+ applicationLanguageCode: {{ TradeMark.ApplicationLanguageCode }}
22
+ officeStatus: {{ TradeMark.MarkCurrentStatusCode }}
23
+ gbdStatus: {{ status }}
24
+ statusDate: {{ TradeMark.MarkCurrentStatusDate | convertdate('%Y-%m-%d') }}
25
+ expiryDate: {{ TradeMark.ExpiryDate}}
26
+ terminationDate: {{ TradeMark.MarkCurrentStatusDate | get_termination(status) }}
27
+ wordMarkSpecification:
28
+ markVerbalElement:
29
+ {% call(desc) match('WordMarkSpecification.MarkVerbalElementText', TradeMark) %}
30
+ - text: {{ desc}}
31
+ languageCode: {{ desc | guess_language(desc._languageCode, TradeMark.ApplicationLanguageCode) }}
32
+ {% endcall %}
33
+ markImageDetails:
34
+ {% call(img) match('MarkImageDetails.MarkImage', TradeMark) %}
35
+ - name: {{ img.MarkImageFilename }}
36
+ colourIndicator: {{ img.MarkImageColourClaimedText | get_true_or_false }}
37
+ colourClaimed:
38
+ {% call(desc) match('MarkImageColourClaimedText', img) %}
39
+ - text: {{ desc }}
40
+ languageCode: {{ desc | guess_language(TradeMark.ApplicationLanguageCode) }}
41
+ {% endcall %}
42
+ classification:
43
+ kind: Vienna
44
+ code:
45
+ {% call(code) match('MarkImageCategory.CategoryCodeDetails.CategoryCode', img) %}
46
+ - {{ code }}
47
+ {% endcall %}
48
+ {% endcall %}
49
+
50
+ {% call(nc_gs) match('GoodsServicesDetails.GoodsServices', TradeMark) %}
51
+ goodsServicesClassification:
52
+ kind: Nice
53
+ version: {{ ASK_THE_OFFICE }}
54
+ class:
55
+ {% call(nice) match('ClassDescriptionDetails.ClassDescription', nc_gs) %}
56
+ - code: {{ nice.ClassNumber | int }}
57
+ terms:
58
+ {% if nice.GoodsServicesDescription | has_value %}
59
+ {% call(desc) match('GoodsServicesDescription', nice) %}
60
+ {{ desc | guess_language(TradeMark.ApplicationLanguageCode) | field_name }}:
61
+ {% for gsline in desc | remove_trailing('.') | split_terms %}
62
+ - {{ gsline | lower }}
63
+ {% endfor %}
64
+ {% endcall %}
65
+ {% endif %}
66
+ {% endcall %}
67
+ {% endcall %}
68
+
69
+ priorities:
70
+ {% call(priority) match('PriorityDetails.Priority', TradeMark) %}
71
+ - countryCode: {{ priority.PriorityCountryCode }}
72
+ number: {{ priority.PriorityNumber }}
73
+ date: {{ priority.PriorityDate }}
74
+ {% endcall %}
75
+
76
+ applicants:
77
+ {% call(Applicant) match('ApplicantDetails.Applicant', TradeMark) %}
78
+ - kind: {{ Applicant.ApplicantLegalEntity }}
79
+ {% call(nameline) match('FormattedNameAddress.Name.FreeFormatName.FreeFormatNameDetails.FreeFormatNameLine', Applicant.ApplicantAddressBook) %}
80
+ fullName:
81
+ - text: {{ nameline}}
82
+ languageCode: {{ nameline | guess_language(TradeMark.ApplicationLanguageCode) }}
83
+ {% endcall %}
84
+ fullAddress:
85
+ {% call(adrline) match('FormattedNameAddress.Address.FreeFormatAddress.FreeFormatAddressLine', Applicant.ApplicantAddressBook) %}
86
+ - text: {{ adrline}}
87
+ languageCode: {{ adrline | guess_language(TradeMark.ApplicationLanguageCode) }}
88
+ {% endcall %}
89
+ {% call(adrline) match('FormattedNameAddress.Address', Applicant.ApplicantAddressBook) %}
90
+ countryCode: {{ adrline.AddressCountryCode }}
91
+ {% endcall %}
92
+ {% endcall %}
93
+ representatives:
94
+ {% call(Representative) match('RepresentativeDetails.Representative', TradeMark) %}
95
+ {% if not Representative.RepresentativeIdentifier.endswith('-null') %}
96
+ - identifier: {{ Representative.RepresentativeIdentifier }}
97
+ kind: {{ Representative.RepresentativeLegalEntity }}
98
+ {% call(nameline) match('FormattedNameAddress.Name.FreeFormatName.FreeFormatNameDetails.FreeFormatNameLine', Representative.RepresentativeAddressBook) %}
99
+ fullName:
100
+ - text: {{ nameline}}
101
+ languageCode: {{ nameline | guess_language(TradeMark.ApplicationLanguageCode) }}
102
+ {% endcall %}
103
+ fullAddress:
104
+ {% call(adrline) match('FormattedNameAddress.Address.FreeFormatAddress.FreeFormatAddressLine', Representative.RepresentativeAddressBook) %}
105
+ - text: {{ adrline}}
106
+ languageCode: {{ adrline | guess_language(TradeMark.ApplicationLanguageCode) }}
107
+ {% endcall %}
108
+ {% call(adrline) match('FormattedNameAddress.Address', Representative.RepresentativeAddressBook) %}
109
+ countryCode: {{ adrline.AddressCountryCode }}
110
+ {% endcall %}
111
+ {% endif %}
112
+ {% endcall %}
@@ -0,0 +1,11 @@
1
+ render = 'JSON'
2
+ source = 'national'
3
+
4
+ # 40-2011-0010042
5
+ # 40-M-0830042
6
+ appnum_mask = [ '40-\\d{4}-(\\d*)',
7
+ '40-(M)-(\\d*)' ]
8
+
9
+ # 40-0017732
10
+ regnum_mask = [ '40-(\\d*)',
11
+ 'M-(.*)' ]
@@ -0,0 +1,99 @@
1
+ import gbdtransformation.brands.ipas.filters as ipas
2
+ from gbdtransformation.common.filters import remove_leading
3
+
4
+ ignore_namespace = [
5
+ 'http://www.wipo.int/standards/XMLSchema/trademarks',
6
+ 'http://www.wipo.int/standards/XMLSchema/wo-trademarks']
7
+
8
+ def get_appdate(appdate, appnum):
9
+ return ipas.get_appdate(appdate, appnum)
10
+
11
+ def translate_type(header):
12
+ code = header.TransactionCode
13
+ subcode = header.TransactionSubCode
14
+
15
+ # extraction missing info.
16
+ if not code:
17
+ raise Exception('Incomplete Document Info')
18
+
19
+ # Testimony
20
+ if subcode == 'Гэрчлэх тэмдэг': return 'TRADEMARK'
21
+ # Geographical indication
22
+ if subcode == 'Газар зүйн заалт': return 'GI'
23
+
24
+ if code == 'Trademark': return 'TRADEMARK'
25
+ if code == 'Trademark - Madrid': return 'TRADEMARK'
26
+
27
+ raise Exception('Type "%s" is not mapped.' % code)
28
+
29
+ def translate_kind(trademark, header):
30
+ code = header.TransactionCode
31
+ subcode = header.TransactionSubCode
32
+
33
+ if subcode == 'Trademark - Madrid': return ['Individual']
34
+ if subcode == 'Барааны тэмдэг': return ['Individual']
35
+ # Testimony
36
+ if subcode == 'Гэрчлэх тэмдэг': return ['Certificate']
37
+ # Geographical indication
38
+ if subcode == 'Газар зүйн заалт': return ['Other']
39
+ # Collective Symbol
40
+ if subcode == 'Хамтын тэмдэг': return ['Collective']
41
+
42
+ if code == 'Trademark': return ['Individual']
43
+ # return ['Other']
44
+
45
+ raise Exception('Kind "%s" not mapped.' % code)
46
+
47
+ def translate_status(trademark):
48
+ status = trademark.MarkCurrentStatusCode
49
+
50
+ if status == 'Inactive':
51
+ if trademark.ExpiryDate: return 'Expired'
52
+ else: return 'Ended'
53
+
54
+ if status == 'T025': return 'Unknown'
55
+
56
+ return ipas.translate_status(status)
57
+
58
+ def translate_feature(trademark):
59
+ feature = trademark.MarkFeature
60
+
61
+ # if not feature: return 'Undefined'
62
+
63
+ return ipas.translate_feature(feature)
64
+
65
+ def translate_event(event):
66
+ return ipas.translate_event(event)
67
+
68
+ # ---------------------------------------
69
+
70
+ #TODO language is mn but not always
71
+ # {'mn': ['DUKE UNIVERSITY']}
72
+ def verbal_lang_map(markVerbalElements, applang=None):
73
+ # print(ipas.verbal_lang_map(markVerbalElements, applang=applang))
74
+ return ipas.verbal_lang_map(markVerbalElements, applang=applang)
75
+
76
+ def get_registration_nb(trademark, tmstatus):
77
+ regnum = trademark.RegistrationNumber
78
+ if regnum:
79
+ if not regnum == '-' and not regnum == 'M-':
80
+ return regnum
81
+
82
+ return None
83
+
84
+ def get_expiry_date(trademark, tmstatus):
85
+ return ipas.get_expiry_date(trademark, tmstatus)
86
+
87
+ def get_registration_date(trademark, tmstatus):
88
+ return ipas.get_registration_date(trademark, tmstatus)
89
+
90
+ def is_international(header):
91
+ code = header.TransactionCode
92
+ return code == 'Trademark - Madrid'
93
+
94
+ # 40-M-0673426
95
+ def get_ir_refnum(appnum):
96
+ return remove_leading(appnum.split('-')[-1], '0')
97
+
98
+ def get_goods_services(goods_services):
99
+ 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,11 @@
1
+ render = 'JSON'
2
+ source = 'national'
3
+
4
+ # MW/T/2016/400
5
+ # MW/T/984/1960
6
+ appnum_mask = [ 'MW/T/\\d{4}/(\\d*)',
7
+ 'MW/T/(\\d{1,3})/\\d{4}',
8
+ 'MW/T/\\d{1,3}/(\\d*)',
9
+ '(AP)/T/\\d{4}/(\\d*)',
10
+ '(MD)/R/1/(\\d*)',
11
+ '(NP)/T/\\d{4}/(\\d*)' ]
@@ -0,0 +1,80 @@
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 ipas.get_appdate(appdate, appnum)
9
+
10
+ def translate_type(header):
11
+ code = header.TransactionCode
12
+
13
+ if code == 'National Trademarks': 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 == 'Madrid Protocol': return ['Individual']
22
+ if subcode == 'Trade Mark': return ['Individual']
23
+ if subcode == 'Service Mark': return ['Individual']
24
+ if subcode == 'Part A': return ['Individual']
25
+ if subcode == 'Part B': return ['Individual']
26
+ if subcode == 'Licence Mark': return ['Certificate']
27
+ if subcode == 'Certification Mark': return ['Certificate']
28
+
29
+ raise Exception('Kind "%s" not mapped.' % subcode)
30
+
31
+ def translate_status(trademark):
32
+ status = trademark.MarkCurrentStatusCode
33
+
34
+ if status == 'Inactive':
35
+ if trademark.ExpiryDate: return 'Expired'
36
+ else: return 'Ended'
37
+
38
+ return ipas.translate_status(status)
39
+
40
+ def translate_feature(trademark):
41
+ feature = trademark.MarkFeature
42
+
43
+ if not feature: return 'Undefined'
44
+
45
+ return ipas.translate_feature(feature)
46
+
47
+ def translate_event(event):
48
+ return ipas.translate_event(event)
49
+
50
+ # ---------------------------------------
51
+
52
+ def verbal_lang_map(markVerbalElements, applang=None):
53
+ # print( ipas.verbal_lang_map(markVerbalElements, applang=applang))
54
+ return ipas.verbal_lang_map(markVerbalElements, applang=applang)
55
+
56
+ def get_registration_nb(trademark, tmstatus):
57
+ if trademark.RegistrationNumber:
58
+ return trademark.RegistrationNumber
59
+
60
+ # if not tmstatus in ['Expired', 'Registered']:
61
+ # return None
62
+ # raise Exception('!!')
63
+
64
+ # no way to deduce registration number
65
+ return None
66
+
67
+ def get_expiry_date(trademark, tmstatus):
68
+ return ipas.get_expiry_date(trademark, tmstatus)
69
+
70
+ def get_registration_date(trademark, tmstatus):
71
+ return ipas.get_registration_date(trademark, tmstatus)
72
+
73
+ def is_international(header):
74
+ return False
75
+
76
+ def get_ir_refnum(appnum):
77
+ return
78
+
79
+ def get_goods_services(goods_services):
80
+ return ipas.get_goods_services(goods_services)