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,134 @@
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
+ subcode = header.TransactionSubCode
13
+
14
+ # extraction missing info.
15
+ if not code:
16
+ raise Exception('Incomplete Document Info')
17
+
18
+ if code == 'Madrid Designated': return 'TRADEMARK'
19
+ if subcode == 'Domestic Trademark': return 'TRADEMARK'
20
+ if subcode == 'Domestic Service Mark': return 'TRADEMARK'
21
+ if subcode == 'Domestic Collective Mark': return 'TRADEMARK'
22
+ if subcode == 'Domestic Certification Mark': return 'TRADEMARK'
23
+ if subcode == 'Foreign Trademark': return 'TRADEMARK'
24
+ if subcode == 'Foreign Service Mark': return 'TRADEMARK'
25
+ if subcode == 'Foreign Certification Mark': return 'TRADEMARK'
26
+ if subcode == 'Foreign Collective Mark': return 'TRADEMARK'
27
+ if subcode == 'Related Foreign Trademarks': return 'TRADEMARK'
28
+ if subcode == 'Domestic GI': return 'GI'
29
+ if subcode == 'Foreign GI': return 'GI'
30
+
31
+ raise Exception('Type "%s" is not mapped.' % subcode)
32
+
33
+ def translate_kind(trademark, header):
34
+ subcode = header.TransactionSubCode
35
+ kind = trademark.KindMark
36
+
37
+ if subcode == 'Domestic GI': return ['Other']
38
+ if subcode == 'Foreign GI': return ['Other']
39
+ if subcode == 'Domestic Collective Mark': return ['Collective']
40
+ if subcode == 'Domestic Certification Mark': return ['Certificate']
41
+ if subcode == 'Foreign Trademark': return ['Individual']
42
+ if subcode == 'Domestic Trademark': return ['Individual']
43
+ if subcode == 'Domestic Service Mark': return ['Individual']
44
+ if subcode == 'Foreign Service Mark': return ['Individual']
45
+ if subcode == 'Foreign Certification Mark': return ['Certificate']
46
+ if subcode == 'Foreign Collective Mark': return ['Collective']
47
+
48
+ if kind == 'Individual': return ['Individual']
49
+ # code = header.TransactionCode
50
+
51
+ # if code == 'Madrid Designated': return ['Individual']
52
+ # if subcode == 'Domestic Trademark': return ['Individual']
53
+ # if subcode == 'Domestic Service Mark': return ['Individual']
54
+ # if subcode == 'Foreign Trademark': return ['Individual']
55
+ # if subcode == 'Foreign Service Mark': return ['Individual']
56
+
57
+ raise Exception('Kind "%s" not mapped.' % kind)
58
+
59
+ def translate_status(trademark):
60
+ status = trademark.MarkCurrentStatusCode
61
+
62
+ if status == 'Inactive':
63
+ if trademark.ExpiryDate: return 'Expired'
64
+ else: return 'Ended'
65
+
66
+ if status == '1401': return 'Unknown'
67
+ if status == '0032': return 'Unknown'
68
+ if status == '0035': return 'Unknown'
69
+ if status == '0049': return 'Unknown'
70
+ if status == '0063': return 'Unknown'
71
+ if status == '0086': return 'Unknown'
72
+ if status == '0123': return 'Unknown'
73
+ if status == '0160': return 'Unknown'
74
+ if status == '0535': return 'Unknown'
75
+ if status == '0552': return 'Unknown'
76
+ if status == '0644': return 'Unknown'
77
+ if status == '0699': return 'Unknown'
78
+ if status == '0718': return 'Unknown'
79
+ if status == '2330': return 'Unknown'
80
+ if status == '2335': return 'Unknown'
81
+ if status == '2346': return 'Unknown'
82
+ if status == '2347': return 'Unknown'
83
+ if status == '2349': return 'Unknown'
84
+ if status == '2353': return 'Unknown'
85
+ if status == '2363': return 'Unknown'
86
+ if status == '2376': return 'Unknown'
87
+ if status == '2390': return 'Unknown'
88
+ if status == '2394': return 'Unknown'
89
+ if status == '2395': return 'Unknown'
90
+ if status == '2399': return 'Unknown'
91
+ if status == '2400': return 'Unknown'
92
+
93
+ return ipas.translate_status(status)
94
+
95
+ def translate_feature(trademark):
96
+ feature = trademark.MarkFeature
97
+
98
+ return ipas.translate_feature(feature)
99
+
100
+ def translate_event(event):
101
+ return ipas.translate_event(event)
102
+
103
+ # ---------------------------------------
104
+
105
+ def verbal_lang_map(markVerbalElements, applang=None):
106
+ # print( ipas.verbal_lang_map(markVerbalElements, applang=applang))
107
+ return ipas.verbal_lang_map(markVerbalElements, applang=applang)
108
+
109
+ def get_registration_nb(trademark, tmstatus):
110
+ if trademark.RegistrationNumber and not trademark.RegistrationNumber == 'KH/M/':
111
+ return trademark.RegistrationNumber
112
+
113
+ if not tmstatus in ['Expired', 'Registered']:
114
+ return None
115
+
116
+ # no way to deduce registration number
117
+ return None
118
+
119
+ def get_expiry_date(trademark, tmstatus):
120
+ return ipas.get_expiry_date(trademark, tmstatus)
121
+
122
+ def get_registration_date(trademark, tmstatus):
123
+ return ipas.get_registration_date(trademark, tmstatus)
124
+
125
+ def is_international(header):
126
+ code = header.TransactionCode
127
+ return code == 'Madrid Designated'
128
+
129
+ # KH/673426/M
130
+ def get_ir_refnum(appnum):
131
+ return appnum.split('/')[1]
132
+
133
+ def get_goods_services(goods_services):
134
+ 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,122 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <Transaction xmlns="http://www.wipo.int/standards/XMLSchema/trademarks" xmlns:wo="http://www.wipo.int/standards/XMLSchema/wo-trademarks">
3
+ <TradeMarkTransactionBody>
4
+ <TransactionContentDetails>
5
+ <TransactionIdentifier></TransactionIdentifier>
6
+ <TransactionCode>Madrid Designated</TransactionCode>
7
+ <TransactionSubCode>Madrid Mark</TransactionSubCode>
8
+ <TransactionData>
9
+ <TradeMarkApplication>
10
+ <TradeMarkDetails>
11
+ <TradeMark>
12
+ <RegistrationOfficeCode>KH</RegistrationOfficeCode>
13
+ <ApplicationNumber>KH/673426/M</ApplicationNumber>
14
+ <ApplicationDate>2015-08-06</ApplicationDate>
15
+ <RegistrationNumber>673426</RegistrationNumber>
16
+ <RegistrationDate>2016-06-10</RegistrationDate>
17
+ <ApplicationLanguageCode>en</ApplicationLanguageCode>
18
+ <ExpiryDate>2025-08-06</ExpiryDate>
19
+ <MarkCurrentStatusDate>2016-10-27</MarkCurrentStatusDate>
20
+ <KindMark>Individual</KindMark>
21
+ <MarkFeature>Combined</MarkFeature>
22
+ <MarkImageDetails>
23
+ <MarkImage>
24
+ <MarkImageFilename>ATTACHMENT/logo</MarkImageFilename>
25
+ <MarkImageFileFormat>JPEG</MarkImageFileFormat>
26
+ </MarkImage>
27
+ </MarkImageDetails>
28
+ <GoodsServicesDetails>
29
+ <GoodsServices>
30
+ <ClassDescriptionDetails>
31
+ <ClassDescription>
32
+ <ClassNumber>10</ClassNumber>
33
+ <GoodsServicesDescription languageCode="en">Surgical, medical, dental and veterinary apparatus and instruments; artificial limbs, eyes and teeth; orthopaedic articles; suture materials.</GoodsServicesDescription>
34
+ </ClassDescription>
35
+ </ClassDescriptionDetails>
36
+ </GoodsServices>
37
+ </GoodsServicesDetails>
38
+ <PublicationDetails>
39
+ <Publication>
40
+ <PublicationIdentifier>KH/673426/M</PublicationIdentifier>
41
+ <PublicationDate>2016-07-29</PublicationDate>
42
+ </Publication>
43
+ </PublicationDetails>
44
+ <ApplicantDetails>
45
+ <Applicant>
46
+ <ApplicantAddressBook>
47
+ <FormattedNameAddress>
48
+ <Name>
49
+ <FreeFormatName>
50
+ <FreeFormatNameDetails>
51
+ <FreeFormatNameLine languageCode="en">Ferring B.V.</FreeFormatNameLine>
52
+ </FreeFormatNameDetails>
53
+ </FreeFormatName>
54
+ </Name>
55
+ <Address>
56
+ <AddressCountryCode>NL</AddressCountryCode>
57
+ <FreeFormatAddress>
58
+ <FreeFormatAddressLine>Polarisavenue 144 NL-2132 JX Hoofddorp</FreeFormatAddressLine>
59
+ </FreeFormatAddress>
60
+ </Address>
61
+ </FormattedNameAddress>
62
+ </ApplicantAddressBook>
63
+ </Applicant>
64
+ </ApplicantDetails>
65
+ <RepresentativeDetails>
66
+ <Representative>
67
+ <RepresentativeAddressBook>
68
+ <FormattedNameAddress>
69
+ <Name>
70
+ <FreeFormatName>
71
+ <FreeFormatNameDetails>
72
+ <FreeFormatNameLine languageCode="en">Novagraaf Nederland BV</FreeFormatNameLine>
73
+ </FreeFormatNameDetails>
74
+ </FreeFormatName>
75
+ </Name>
76
+ <Address>
77
+ <AddressCountryCode>NL</AddressCountryCode>
78
+ <FreeFormatAddress>
79
+ <FreeFormatAddressLine>Hoogoorddreef 5 NL-1101 BA Amsterdam</FreeFormatAddressLine>
80
+ </FreeFormatAddress>
81
+ </Address>
82
+ </FormattedNameAddress>
83
+ </RepresentativeAddressBook>
84
+ </Representative>
85
+ </RepresentativeDetails>
86
+ <wo:WordMarkSpecification>
87
+ <wo:MarkVerbalElementText languageCode="en">ZomaJet</wo:MarkVerbalElementText>
88
+ </wo:WordMarkSpecification>
89
+ <wo:MarkEventDetails>
90
+ <wo:MarkEvent>
91
+ <wo:MarkEventDate>2015-08-06</wo:MarkEventDate>
92
+ <wo:MarkEventCode>Filed</wo:MarkEventCode>
93
+ <wo:OfficeSpecificMarkEventName>Filing</wo:OfficeSpecificMarkEventName>
94
+ </wo:MarkEvent>
95
+ <wo:MarkEvent>
96
+ <wo:MarkEventDate>2016-06-10</wo:MarkEventDate>
97
+ <wo:MarkEventCode>Registered</wo:MarkEventCode>
98
+ <wo:OfficeSpecificMarkEventName>Registration</wo:OfficeSpecificMarkEventName>
99
+ <wo:OfficeSpecificMarkEventCode>123</wo:OfficeSpecificMarkEventCode>
100
+ <wo:OfficeSpecificMarkEventDescription languageCode="en">TM Registered</wo:OfficeSpecificMarkEventDescription>
101
+ </wo:MarkEvent>
102
+ <wo:MarkEvent>
103
+ <wo:MarkEventDate>2016-07-29</wo:MarkEventDate>
104
+ <wo:MarkEventCode>Published</wo:MarkEventCode>
105
+ <wo:OfficeSpecificMarkEventName>Publication</wo:OfficeSpecificMarkEventName>
106
+ </wo:MarkEvent>
107
+ <wo:MarkEvent>
108
+ <wo:MarkEventDate>2016-10-27</wo:MarkEventDate>
109
+ <wo:MarkEventCode>Registered</wo:MarkEventCode>
110
+ <wo:OfficeSpecificMarkEventName>Registration</wo:OfficeSpecificMarkEventName>
111
+ <wo:OfficeSpecificMarkEventCode>123</wo:OfficeSpecificMarkEventCode>
112
+ <wo:OfficeSpecificMarkEventDescription languageCode="en">TM Registered</wo:OfficeSpecificMarkEventDescription>
113
+ </wo:MarkEvent>
114
+ </wo:MarkEventDetails>
115
+ <wo:MarkCurrentStatusCode>Registered</wo:MarkCurrentStatusCode>
116
+ </TradeMark>
117
+ </TradeMarkDetails>
118
+ </TradeMarkApplication>
119
+ </TransactionData>
120
+ </TransactionContentDetails>
121
+ </TradeMarkTransactionBody>
122
+ </Transaction>
@@ -0,0 +1,6 @@
1
+ # instruction to render the output to JSON format
2
+ render = 'JSON'
3
+ source = 'national'
4
+
5
+ # 4520180121818
6
+ appnum_mask = '(\\d{2})\\d{4}(\\d*)'
@@ -0,0 +1,136 @@
1
+ from gbdtransformation.brands.filters import st13 as std_st13
2
+
3
+ # namespaces defined in XML and to be ignored in procecssing
4
+ ignore_namespace = ['http://www.wipo.int/standards/XMLSchema/ST96/Trademark',
5
+ 'http://www.wipo.int/standards/XMLSchema/ST96/Common',
6
+ 'urn:kr:gov:doc:kipo:common',
7
+ 'urn:kr:gov:doc:kipo:trademark',
8
+ 'urn:kr:gov:doc:moip:common',
9
+ 'urn:kr:gov:doc:moip:trademark']
10
+
11
+
12
+ # -------------------------------------------------------------
13
+ # data translation helpers:
14
+ # translate values from office interpretation to gbd equivalent
15
+ # -------------------------------------------------------------
16
+
17
+ def get_appyear(appnum):
18
+ return appnum[2:6]
19
+
20
+ def get_mark_names(word_mark_spec):
21
+ verbal = word_mark_spec.MarkVerbalElementText
22
+ signif = word_mark_spec.MarkSignificantVerbalElementText
23
+
24
+ if not signif == verbal:
25
+ return (verbal, signif)
26
+ else:
27
+ return (verbal, None)
28
+
29
+ def get_trademark_root(transaction):
30
+ try:
31
+ trademark = transaction.TrademarkBag.KRTrademark
32
+ return (trademark, trademark)
33
+ # division => header information are in DocumentRelated
34
+ except:
35
+ trademark = transaction.KRTrademarkDivisionBag.KRTrademarkDivision
36
+ header = trademark.KRDocumentRelatedBag.KRDocumentRelated
37
+ return (trademark, header)
38
+
39
+ def get_classification(goodsServices):
40
+ nice_class = []
41
+ domestic_class = []
42
+
43
+ if not goodsServices: goodsServices = []
44
+
45
+ if not isinstance(goodsServices, list):
46
+ goodsServices = [goodsServices]
47
+
48
+ for gs in goodsServices:
49
+ if gs.ClassificationKindCode == 'Nice':
50
+ nice_class.append(gs)
51
+ elif gs.ClassificationKindCode == 'Domestic':
52
+ domestic_class.append(gs)
53
+
54
+ return (nice_class, domestic_class)
55
+
56
+ def translate_kind(kind):
57
+ if not kind: return ['Individual']
58
+
59
+ if kind == 'Individual mark': return ['Individual']
60
+ if kind == 'Certification mark, also named Guarantee mark': return ['Certificate']
61
+ if kind == 'Collective mark': return ['Collective']
62
+
63
+ # raise Exception to recognize unmapped values
64
+ raise Exception('Kind "%s" is not mapped.' % kind)
65
+
66
+ def translate_status(trademark):
67
+ if not trademark:
68
+ return 'Unknown'
69
+
70
+ if trademark._operationCategory == 'Delete':
71
+ return 'Delete'
72
+
73
+ status = trademark.KRMarkCurrentStatusCode
74
+
75
+ if not status:
76
+ return 'Unknown'
77
+
78
+ # Ended can also mean expired (bof)
79
+ if status == 'Ended':
80
+ if trademark.RegistrationNumber and trademark.ExpiryDate:
81
+ return 'Expired'
82
+ else:
83
+ return 'Ended'
84
+
85
+ if status == 'Registered': return 'Registered'
86
+ if status == 'Application published': return 'Pending'
87
+ if status == 'Application filed': return 'Pending'
88
+
89
+ # raise Exception to recognize unmapped values
90
+ raise Exception('status "%s" is not mapped.' % status)
91
+
92
+ #TODO
93
+ def translate_feature(trademark, status):
94
+ try:
95
+ feature = trademark.MarkRepresentation.KRMarkFeatureCategory
96
+ except:
97
+ feature = None
98
+
99
+ if feature == '3D Mark': return 'Three dimensional'
100
+ if feature == 'Color': return 'Colour'
101
+ if feature == 'Combination of colors mark': return 'Colour'
102
+ if feature == 'Motion mark': return 'Motion'
103
+ if feature == 'Sound mark': return 'Sound'
104
+ if feature == 'Stylized': return 'Stylized characters'
105
+ if feature == 'Others': return 'Other'
106
+
107
+ # otherwise, let's guess
108
+ try:
109
+ has_vienna = trademark.MarkRepresentation.MarkReproduction.MarkImageBag.MarkImage.MarkImageCategory.KRCategoryCodeBag is not None
110
+ except:
111
+ has_vienna = False
112
+
113
+ try:
114
+ has_image = trademark.MarkRepresentation.MarkReproduction.MarkImageBag.MarkImage is not None
115
+ except:
116
+ has_image = False
117
+
118
+ try:
119
+ has_word = trademark.MarkRepresentation.MarkReproduction.KRWordMarkSpecification.MarkVerbalElementText is not None
120
+ except:
121
+ has_word = False
122
+
123
+ try:
124
+ has_word_image = trademark.MarkRepresentation.MarkReproduction.KRWordMarkSpecification.ImageFileName is not None
125
+ except:
126
+ has_word_image = False
127
+
128
+ if has_word and (has_image or has_word_image) and has_vienna: return 'Combined'
129
+ if not has_word and (has_image or has_word_image) and has_vienna: return 'Figurative'
130
+ if has_image and has_vienna: return 'Figurative'
131
+ if not has_word and has_word_image: return 'Stylized characters'
132
+
133
+ if has_word: return 'Word'
134
+
135
+ # still cannot figure it out !
136
+ return 'Undefined'
@@ -0,0 +1,179 @@
1
+ /TrademarkTransaction
2
+ __/TrademarkTransactionBody
3
+ ____/TransactionContentBag
4
+ ______/TransactionCategory
5
+ ______/TransactionData
6
+ ________/KRTrademarkDivisionBag
7
+ __________/KRTrademarkDivision
8
+ ____________/ExpiryDate
9
+ ____________/GoodsServicesBag
10
+ ______________/GoodsServices
11
+ ________________/ClassDescriptionBag
12
+ __________________/ClassDescription
13
+ ____________________/ClassNumber
14
+ ____________________/GoodsServicesDescriptionText
15
+ ____________________/GoodsServicesDescriptionText[@languageCode=ko]
16
+ ____________________/GoodsServicesDescriptionText[@sequenceNumber=1]
17
+ ________________/ClassificationKindCode
18
+ ________________/ClassificationVersion
19
+ ____________/KRDocumentRelatedBag
20
+ ______________/KRDocumentRelated
21
+ ________________/ApplicationDate
22
+ ________________/ApplicationNumber
23
+ __________________/ApplicationNumberText
24
+ ________________/KRRegistrationCategory
25
+ ________________/RegistrationDate
26
+ ________________/RegistrationNumber
27
+ ____________/KRMarkCurrentStatusCode
28
+ ____________/MarkCategory
29
+ ____________/MarkCurrentStatusDate
30
+ ____________/MarkRepresentation
31
+ ______________/KRMarkFeatureCategory
32
+ ______________/MarkDescriptionBag
33
+ ________________/MarkDescriptionText
34
+ ______________/MarkReproduction
35
+ ________________/KRWordMarkSpecification
36
+ __________________/ImageFileName
37
+ __________________/ImageFormatCategory
38
+ __________________/MarkSignificantVerbalElementText
39
+ __________________/MarkVerbalElementText
40
+ ________________/MarkImageBag
41
+ __________________/MarkImage
42
+ ____________________/ImageFileName
43
+ ____________________/ImageFormatCategory
44
+ ____________________/MarkImageCategory
45
+ ______________________/KRCategoryCodeBag
46
+ ________________________/CategoryCode
47
+ ________________________/KRCategoryCodeTermText
48
+ ____________/OppositionBag
49
+ ____________/Registrant
50
+ ______________/Contact
51
+ ________________/Name
52
+ __________________/PersonName
53
+ ____________________/PersonFullName
54
+ ________________/PostalAddressBag
55
+ __________________/PostalAddress
56
+ ____________________/PostalAddressText
57
+ ____________/RegistrationDate
58
+ ____________/RegistrationNumber
59
+ ____________/TerminationDate
60
+ __________/KRTrademarkDivision[@operationCategory=Insert]
61
+ __________/KRTrademarkDivision[@operationCategory=Update]
62
+ ________/TrademarkBag
63
+ __________/KRTrademark
64
+ ____________/ApplicantBag
65
+ ______________/Applicant
66
+ ________________/AssignmentConveyanceCategory
67
+ ________________/AssignmentIdentifier
68
+ ________________/Contact
69
+ __________________/Name
70
+ ____________________/PersonName
71
+ ______________________/PersonFullName
72
+ __________________/PostalAddressBag
73
+ ____________________/PostalAddress
74
+ ______________________/PostalAddressText
75
+ ________________/LegalEntityName
76
+ ________________/NationalLegalEntityCode
77
+ ________________/NationalityCode
78
+ ____________/ApplicationDate
79
+ ____________/ApplicationLanguageCode
80
+ ____________/ApplicationNumber
81
+ ______________/ApplicationNumberText
82
+ ____________/ExpiryDate
83
+ ____________/FilingPlace
84
+ ____________/GoodsServicesBag
85
+ ______________/GoodsServices
86
+ ________________/ClassDescriptionBag
87
+ __________________/ClassDescription
88
+ ____________________/ClassNumber
89
+ ____________________/GoodsServicesDescriptionText
90
+ ____________________/GoodsServicesDescriptionText[@languageCode=ko]
91
+ ____________________/GoodsServicesDescriptionText[@sequenceNumber=1]
92
+ ________________/ClassificationKindCode
93
+ ________________/ClassificationVersion
94
+ ____________/KRDocumentRelatedBag
95
+ ______________/KRDocumentRelated
96
+ ________________/ApplicationDate
97
+ ________________/ApplicationNumber
98
+ __________________/ApplicationNumberText
99
+ ________________/KRRegistrationCategory
100
+ ________________/RegistrationDate
101
+ ________________/RegistrationNumber
102
+ ____________/KRMarkCurrentStatusCode
103
+ ____________/MarkCategory
104
+ ____________/MarkCurrentStatusDate
105
+ ____________/MarkRepresentation
106
+ ______________/KRMarkFeatureCategory
107
+ ______________/MarkDescriptionBag
108
+ ________________/MarkDescriptionText
109
+ ______________/MarkReproduction
110
+ ________________/KRWordMarkSpecification
111
+ __________________/ImageFileName
112
+ __________________/ImageFormatCategory
113
+ __________________/MarkSignificantVerbalElementText
114
+ __________________/MarkVerbalElementText
115
+ ________________/MarkImageBag
116
+ __________________/MarkImage
117
+ ____________________/ImageFileName
118
+ ____________________/ImageFormatCategory
119
+ ____________________/MarkImageCategory
120
+ ______________________/KRCategoryCodeBag
121
+ ________________________/CategoryCode
122
+ ________________________/KRCategoryCodeTermText
123
+ ________________/MarkMultimediaBag
124
+ __________________/MarkMultimedia
125
+ ________________/MarkSoundBag
126
+ __________________/MarkSound
127
+ ____________________/MarkSoundFileName
128
+ ____________________/SoundFileFormatCategory
129
+ ____________/OppositionBag
130
+ ____________/PriorityBag
131
+ ______________/Priority
132
+ ________________/ApplicationNumber
133
+ __________________/ApplicationNumberText
134
+ ________________/PriorityApplicationFilingDate
135
+ ________________/PriorityCountryCode
136
+ ____________/PublicationBag
137
+ ______________/Publication
138
+ ________________/NationalPublication
139
+ __________________/PublicationStatusCategory
140
+ ________________/PublicationDate
141
+ ________________/PublicationIdentifier
142
+ ________________/PublicationSectionCategory
143
+ ____________/RegistrationDate
144
+ ____________/RegistrationNumber
145
+ ____________/RegistrationOfficeCode
146
+ ____________/RepresentativeBag
147
+ ______________/Representative
148
+ ________________/Contact
149
+ __________________/Name
150
+ ____________________/PersonName
151
+ ______________________/PersonFullName
152
+ __________________/PostalAddressBag
153
+ ____________________/PostalAddress
154
+ ______________________/PostalAddressText
155
+ ________________/LegalEntityName
156
+ ________________/NationalLegalEntityCode
157
+ ________________/NationalityCode
158
+ ________________/RepresentativeCategory
159
+ __________/KRTrademark[@operationCategory=Delete]
160
+ __________/KRTrademark[@operationCategory=Insert]
161
+ __________/KRTrademark[@operationCategory=Update]
162
+ ______/TransactionIdentifier
163
+ ______/TransactionIdentifier[@officeCode=KR]
164
+ ______/TransactionSubCode
165
+ ____/TransactionErrorBag
166
+ ______/TransactionError
167
+ ________/TransactionErrorCode
168
+ ________/TransactionErrorText
169
+ __/TransactionHeader
170
+ ____/SenderBag
171
+ ______/RequestDate
172
+ ______/RequestFileName
173
+ ______/RequestIdentifier
174
+ ______/RequestIdentifier[@officeCode=KR]
175
+ ______/RequestLanguageCode
176
+ ______/RequestProducer
177
+ ______/RequestReceivingOfficeCode
178
+ ______/RequestXSDVersion
179
+ /TrademarkTransaction[@schemaVersion=Version 1.0 Draft 5]