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,219 @@
1
+ # WARNING: pypers is making a transformation of the original USPTO XML
2
+ # into a "compressed" format that change the names of tags
3
+ # for example <mark-drawing-code> becomes <drawCode>, so
4
+ # the USPTO documentation has to be "translated" to this weirdo intermediary
5
+ # format (why doing simple and readable? :)
6
+ # to see this "pypers" mapping:
7
+ # https://git.wipo.int/projects/BDDS/repos/gbd_etl_pypers/browse/pypers/steps/fetch/extract/us/ustm-tags.xml
8
+
9
+ {% from 'navigation.tmpl' import match %}
10
+
11
+ {% set flags = file.head._flags %}
12
+
13
+ st13: {{ file.serNum | st13('US', appdate=file.head.fileDate) }}
14
+ registrationOfficeCode: US
15
+ type: TRADEMARK
16
+
17
+ {% if False and flags == '00000000000000000000000000000000000000000000000' or flags == '00000000000000000000000001000000000000000000000' %}
18
+ gbdStatus: Delete
19
+
20
+ {% else %}
21
+
22
+ {% set status = file.head.statusCode | translate_status %}
23
+
24
+ gbdStatus: {{ status['gbd'] }}
25
+ officeStatus: {{ status['office'] }}
26
+ statusDate: {{ file.head.statusDate | convertdate('%Y%m%d') }}
27
+ kind: {{ flags | translate_kind }}
28
+ applicationNumber: {{ file.serNum }}
29
+ applicationDate: {{ file.head.fileDate | convertdate('%Y%m%d') }}
30
+
31
+ {% if not file.regNum == '0000000' %}
32
+ registrationNumber: {{ file.regNum | remove_leading ('0') }}
33
+ registrationDate: {{ file.head.regDate | convertdate('%Y%m%d') }}
34
+ {% endif %}
35
+
36
+ {% call(ir) match('intReg', file) %}
37
+ {% if ir.intRegNum %}
38
+ reference:
39
+ office: WO
40
+ registration:
41
+ - number: {{ ir.intRegNum }}
42
+ date: {{ ir.intRegDate | convertdate('%Y%m%d') }}
43
+ {% endif %}
44
+ {% endcall %}
45
+
46
+ {% call(irs) match('madIntFileReqs', file) %}
47
+ reference:
48
+ office: WO
49
+ registration:
50
+ {% call(ir) match('madIntFileRec', irs) %}
51
+ {% if ir.intRegNum %}
52
+ - number: {{ ir.intRegNum }}
53
+ date: {{ ir.intRegDate | convertdate('%Y%m%d') }}
54
+ {% endif %}
55
+ {% endcall %}
56
+ {% endcall %}
57
+
58
+ designatedCountries:
59
+ - US
60
+
61
+ applicationLanguageCode: en
62
+
63
+ {% set feature = file.head.drawCode | translate_feature %}
64
+ markFeature: {{ feature }}
65
+
66
+ {% set end_date = file.head.cancelDate or file.head.abDate %}
67
+ {% if status['gbd'] == 'Expired' %}
68
+ expiryDate: {{ file.head.statusDate | convertdate('%Y%m%d') }}
69
+ {% elif status['gbd'] == 'Ended' %}
70
+ terminationDate: {{ end_date | convertdate('%Y%m%d') }}
71
+ {% endif %}
72
+
73
+ wordMarkSpecification:
74
+ markVerbalElement:
75
+ - languageCode: {{ file.head.mark | guess_language('en') }}
76
+ text: {{ file.head.mark }}
77
+
78
+ {% set desc = file.stmts.stmt | get_mark_description %}
79
+ markDescriptionDetails:
80
+ - languageCode: {{ desc | guess_language('en') }}
81
+ text: {{ desc }}
82
+
83
+ {% if not (feature == 'Word' or feature == 'Olfactory')%}
84
+ markImageDetails:
85
+ - name: {{ file.serNum }}
86
+ {% set claim = file.stmts.stmt | get_color_claim %}
87
+ {% if claim %}
88
+ colourIndicator: true
89
+ colourClaimed:
90
+ - languageCode: en
91
+ text: {{ claim }}
92
+ {% endif %}
93
+ {% set dc = file.desSearches.desSearch | get_img_class %}
94
+ {% if dc %}
95
+ classification:
96
+ kind: USDesignCode
97
+ code:
98
+ {% for code in dc %}
99
+ - {{ code }}
100
+ {% endfor %}
101
+ {% endif %}
102
+ {% endif %}
103
+
104
+ {% set nc_gs, uc_gs = file.stmts.stmt | get_goods_services %}
105
+ {% if (nc_gs.keys() | length) > 0 %}
106
+ goodsServicesClassification:
107
+ kind: Nice
108
+ version: {{ ASK_THE_OFFICE }}
109
+ class:
110
+ {% for nc in nc_gs.keys() %}
111
+ - code: {{ nc | int }}
112
+ terms:
113
+ en:
114
+ {% for term in nc_gs[nc] %}
115
+ - {{ term | lower }}
116
+ {% endfor %}
117
+ {% endfor %}
118
+ {% endif %}
119
+
120
+ goodsServicesUnclassified:
121
+ en:
122
+ {% for term in uc_gs %}
123
+ - {{ term }}
124
+ {% endfor %}
125
+
126
+ priorities:
127
+ - countryCode:
128
+ number:
129
+ date:
130
+ comment:
131
+
132
+ publications:
133
+ - identifier:
134
+ date:
135
+ section:
136
+
137
+ {% set applicants = file.owners.owner | get_applicants(status['gbd']) %}
138
+ applicants:
139
+ {% for applicant in applicants %}
140
+ - identifier:
141
+ kind: {{ applicant.kind }}
142
+ fullName:
143
+ - languageCode: en
144
+ text: {{ applicant.name }}
145
+ firstName:
146
+ - languageCode:
147
+ text:
148
+ lastName:
149
+ - languageCode:
150
+ text:
151
+ middleName:
152
+ - languageCode:
153
+ text:
154
+ organizationName:
155
+ - languageCode:
156
+ text:
157
+ fullAddress:
158
+ - languageCode: en
159
+ text: {{ applicant.address }}
160
+ detailedAddress:
161
+ - languageCode: en
162
+ text: {{ applicant.addressLines }}
163
+ cityName: {{ applicant.city }}
164
+ geographicRegionName: {{ applicant.state }}
165
+ postalCode: {{ applicant.postCode }}
166
+ countryCode: {{ applicant.country }}
167
+ contact:
168
+ phone:
169
+ fax:
170
+ email:
171
+ url:
172
+ countryCode: {{ applicant.country }}
173
+ {% endfor %}
174
+
175
+ representatives:
176
+ {% if file.head.attName %}
177
+ - fullName:
178
+ - languageCode: en
179
+ text: {{ file.head.attName }}
180
+ kind: Attorney
181
+ {% endif %}
182
+ {% if file.head.domRep %}
183
+ - fullName:
184
+ - languageCode: en
185
+ text: {{ file.head.domRep }}
186
+ kind: Domestic Representative
187
+ countryCode: US
188
+ {% endif %}
189
+
190
+ {% set corr = file.corr | get_correspondence %}
191
+ {% if corr %}
192
+ correspondence:
193
+ fullName:
194
+ - languageCode: en
195
+ text: {{ corr.name }}
196
+ fullAddress:
197
+ - languageCode: en
198
+ text: {{ corr.address }}
199
+ {% endif %}
200
+
201
+ events:
202
+ {% call(event) match('eventStmts.eventStmt', file) %}
203
+ - officeKind: {{ event.descText }}
204
+ date: {{ event.date | convertdate('%Y%m%d') }}
205
+ {% endcall %}
206
+
207
+ {% set (relapps, relregs) = file.priorRegApps.priorRegApp | get_related_docs %}
208
+ extra:
209
+ nationalApplicationRefNumber:
210
+ {% for relapp in relapps %}
211
+ - {{ relapp }}
212
+ {% endfor%}
213
+ nationalRegistrationRefNumber:
214
+ {% for relreg in relregs %}
215
+ - {{ relreg }}
216
+ {% endfor%}
217
+
218
+ {% endif %}
219
+
@@ -0,0 +1,3 @@
1
+ # instruction to render the output to JSON format
2
+ render = 'JSON'
3
+ source = 'national'
@@ -0,0 +1,64 @@
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 translate_type(type):
12
+ if not type: return 'TRADEMARK'
13
+
14
+ if type == 'Trade mark': return 'TRADEMARK'
15
+ if type == 'Slogan': return 'TRADEMARK'
16
+
17
+ raise Exception('type "%s" is not mapped.' % type)
18
+
19
+ def translate_kind(kind, type):
20
+ if not kind: kind = 'Individual'
21
+
22
+ if type == 'Trade mark':
23
+ if kind == 'Individual': return ['Individual']
24
+ if kind == 'Collective': return ['Collective']
25
+ if kind == 'Certificate': return ['Certificate']
26
+
27
+ if type == 'Slogan':
28
+ if kind == 'Individual': return ['Individual', type]
29
+
30
+ raise Exception('kind "%s" is not mapped.' % kind)
31
+
32
+ def translate_status(status):
33
+ if not status: return 'Unknown'
34
+
35
+ if status == 'Registered': return 'Registered'
36
+
37
+ if status == 'Expired': return 'Expired'
38
+ if status == 'Registration cancelled': return 'Expired'
39
+
40
+ if status in [ 'Application filed',
41
+ 'Application published' ]:
42
+ return 'Pending'
43
+
44
+ if status in [ 'Application refused',
45
+ 'Application opposed',
46
+ 'Registration surrendered',
47
+ 'Application withdrawn' ]:
48
+ return 'Ended'
49
+
50
+ raise Exception('Status "%s" unmapped' % status)
51
+
52
+
53
+ def translate_feature(feature):
54
+ if not feature: return 'Undefined'
55
+
56
+ if feature == 'Word': return 'Word'
57
+ if feature == 'Figurative': return 'Figurative'
58
+ if feature == 'Combined': return 'Combined'
59
+ if feature == 'Sound': return 'Sound'
60
+ if feature == '3-D': return 'Three dimensional'
61
+ if feature == 'Olfactory': return 'Olfactory'
62
+
63
+ raise Exception('Feature "%s" unmapped' % feature)
64
+
@@ -0,0 +1,106 @@
1
+ /Transaction
2
+ __/TradeMarkTransactionBody
3
+ ____/TransactionContentDetails
4
+ ______/TransactionCode
5
+ ______/TransactionData
6
+ ________/TradeMarkDetails
7
+ __________/TradeMark
8
+ ____________/AppealDetails
9
+ ______________/Appeal
10
+ ________________/AppealDate
11
+ ________________/AppealDecisionStatusCode
12
+ ________________/AppealIdentifier
13
+ ____________/ApplicantDetails
14
+ ______________/Applicant
15
+ ________________/ApplicantAddressBook
16
+ __________________/FormattedNameAddress
17
+ ____________________/Address
18
+ ______________________/AddressCountryCode
19
+ ______________________/FreeFormatAddress
20
+ ________________________/FreeFormatAddressLine
21
+ ____________________/Name
22
+ ______________________/FreeFormatName
23
+ ________________________/FreeFormatNameDetails
24
+ __________________________/FreeFormatNameLine
25
+ ________________/ApplicantNationalityCode
26
+ ____________/ApplicationDate
27
+ ____________/ApplicationLanguageCode
28
+ ____________/ApplicationNumber
29
+ ____________/ExpiryDate
30
+ ____________/GoodsServicesDetails
31
+ ______________/GoodsServices
32
+ ________________/ClassDescriptionDetails
33
+ __________________/ClassDescription
34
+ ____________________/ClassNumber
35
+ ____________________/GoodsServicesDescription
36
+ ____________________/GoodsServicesDescription[@languageCode=es]
37
+ ________________/ClassificationKindCode
38
+ ____________/IPRKind
39
+ ____________/InternationalMarkIndicator
40
+ ____________/KindMark
41
+ ____________/MarkCurrentStatusCode
42
+ ____________/MarkCurrentStatusDate
43
+ ____________/MarkDisclaimerDetails
44
+ ______________/MarkDisclaimer
45
+ ______________/MarkDisclaimer[@languageCode=es]
46
+ ____________/MarkFeature
47
+ ____________/MarkImageDetails
48
+ ______________/MarkImage
49
+ ________________/MarkImageCategory
50
+ __________________/CategoryCodeDetails
51
+ ____________________/CategoryCode
52
+ ________________/MarkImageColourClaimedText
53
+ ________________/MarkImageColourClaimedText[@languageCode=es]
54
+ ________________/MarkImageColourIndicator
55
+ ________________/MarkImageFilename
56
+ ____________/MarkRecordDetails
57
+ ______________/MarkRecord
58
+ ________________/BasicRecord
59
+ __________________/BasicRecordKind
60
+ __________________/RecordCurrentStatusCode
61
+ __________________/RecordCurrentStatusDate
62
+ __________________/RecordEffectiveDate
63
+ __________________/RecordFilingDate
64
+ __________________/RecordIdentifier
65
+ __________________/RecordPublicationDate
66
+ __________________/RecordPublicationDetails
67
+ ____________________/RecordPublication
68
+ ______________________/PublicationDate
69
+ ______________________/PublicationIdentifier
70
+ ______________________/PublicationSection
71
+ ____________/PriorityDetails
72
+ ______________/Priority
73
+ ________________/PriorityCountryCode
74
+ ________________/PriorityDate
75
+ ________________/PriorityNumber
76
+ ____________/PublicationDetails
77
+ ______________/Publication
78
+ ________________/PublicationDate
79
+ ________________/PublicationIdentifier
80
+ ________________/PublicationSection
81
+ ____________/ReceivingOfficeDate
82
+ ____________/RegistrationDate
83
+ ____________/RegistrationNumber
84
+ ____________/RegistrationOfficeCode
85
+ ____________/RepresentativeDetails
86
+ ______________/Representative
87
+ ________________/RepresentativeAddressBook
88
+ __________________/FormattedNameAddress
89
+ ____________________/Address
90
+ ______________________/AddressCountryCode
91
+ ______________________/FreeFormatAddress
92
+ ________________________/FreeFormatAddressLine
93
+ ____________________/Name
94
+ ______________________/FreeFormatName
95
+ ________________________/FreeFormatNameDetails
96
+ __________________________/FreeFormatNameLine
97
+ ________________/RepresentativeKindCode
98
+ ________________/RepresentativeNationalityCode
99
+ ____________/WordMarkSpecification
100
+ ______________/MarkVerbalElementText
101
+ ______________/MarkVerbalElementText[@languageCode=es]
102
+ __________/TradeMark[@operationCode=Insert]
103
+ ______/TransactionIdentifier
104
+ __/TransactionHeader
105
+ ____/SenderDetails
106
+ ______/RequestProducerDateTime
@@ -0,0 +1,137 @@
1
+ {% from 'navigation.tmpl' import match %}
2
+
3
+ {% set TradeMark = Transaction.TradeMarkTransactionBody.TransactionContentDetails.TransactionData.TradeMarkDetails.TradeMark %}
4
+ {% set status = TradeMark.MarkCurrentStatusCode | translate_status %}
5
+
6
+ st13: {{ TradeMark.ApplicationNumber | st13('UY', appdate=TradeMark.ApplicationDate) }}
7
+ type: {{ TradeMark.IPRKind | translate_type }}
8
+ kind: {{ TradeMark.KindMark | translate_kind(TradeMark.IPRKind) }}
9
+ markFeature: {{ TradeMark.MarkFeature | translate_feature }}
10
+ registrationOfficeCode: {{ TradeMark.RegistrationOfficeCode }}
11
+ designatedCountries:
12
+ - {{ TradeMark.RegistrationOfficeCode }}
13
+
14
+ applicationNumber: {{ TradeMark.ApplicationNumber }}
15
+ applicationDate: {{ TradeMark.ApplicationDate | convertdate('%Y-%m-%d') }}
16
+ registrationNumber: {{ TradeMark.RegistrationNumber}}
17
+ registrationDate: {{ TradeMark.RegistrationDate }}
18
+ applicationLanguageCode: {{ TradeMark.ApplicationLanguageCode }}
19
+
20
+ # all false
21
+ # isinter: {{ TradeMark.InternationalMarkIndicator | get_true_or_false }}
22
+
23
+ officeStatus: {{ TradeMark.MarkCurrentStatusCode }}
24
+ gbdStatus: {{ status }}
25
+ statusDate: {{ TradeMark.MarkCurrentStatusDate | convertdate('%Y-%m-%d') }}
26
+ expiryDate: {{ TradeMark.ExpiryDate | convertdate('%Y-%m-%d') }}
27
+
28
+ {% if status == 'Ended' %}
29
+ terminationDate: {{ TradeMark.MarkCurrentStatusDate | convertdate('%Y-%m-%d') }}
30
+ {% endif %}
31
+
32
+ markDisclaimerDetails:
33
+ {% call(desc) match('MarkDisclaimerDetails.MarkDisclaimer', TradeMark) %}
34
+ - text: {{ desc }}
35
+ languageCode: {{ desc | guess_language(desc._languageCode, TradeMark.ApplicationLanguageCode) }}
36
+ {% endcall %}
37
+
38
+ wordMarkSpecification:
39
+ markVerbalElement:
40
+ {% call(desc) match('WordMarkSpecification.MarkVerbalElementText', TradeMark) %}
41
+ - text: {{ desc}}
42
+ languageCode: {{ desc | guess_language(desc._languageCode, TradeMark.ApplicationLanguageCode) }}
43
+ {% endcall %}
44
+
45
+ markImageDetails:
46
+ {% call(img) match('MarkImageDetails.MarkImage', TradeMark) %}
47
+ - name: {{ img.MarkImageFilename }}
48
+ colourIndicator: {{ img.MarkImageColourIndicator }}
49
+ colourClaimed:
50
+ {% call(desc) match('MarkImageColourClaimedText', img) %}
51
+ - text: {{ desc }}
52
+ languageCode: {{ desc | guess_language(TradeMark.ApplicationLanguageCode) }}
53
+ {% endcall %}
54
+ {% call(vienna) match('MarkImageCategory.CategoryCodeDetails', img) %}
55
+ classification:
56
+ kind: Vienna
57
+ version: {{ ASK_THE_OFFICE }}
58
+ code:
59
+ {% call(code) match('CategoryCode', vienna) %}
60
+ - {{ code }}
61
+ {% endcall %}
62
+ {% endcall %}
63
+ {% endcall %}
64
+
65
+ {% call(nc_gs) match('GoodsServicesDetails.GoodsServices', TradeMark) %}
66
+ goodsServicesClassification:
67
+ kind: Nice
68
+ version: {{ ASK_THE_OFFICE }}
69
+ class:
70
+ {% call(nice) match('ClassDescriptionDetails.ClassDescription', nc_gs) %}
71
+ - code: {{ nice.ClassNumber | int }}
72
+ terms:
73
+ {% if nice.GoodsServicesDescription | has_value %}
74
+ {% call(desc) match('GoodsServicesDescription', nice) %}
75
+ {{ TradeMark.ApplicationLanguageCode | field_name }}:
76
+ {% for gsline in desc | remove_trailing('.') | split_terms %}
77
+ - {{ gsline | lower }}
78
+ {% endfor %}
79
+ {% endcall %}
80
+ {% endif %}
81
+ {% endcall %}
82
+ {% endcall %}
83
+
84
+ priorities:
85
+ {% call(priority) match('PriorityDetails.Priority', TradeMark) %}
86
+ - countryCode: {{ priority.PriorityCountryCode }}
87
+ number: {{ priority.PriorityNumber }}
88
+ date: {{ priority.PriorityDate }}
89
+ {% endcall %}
90
+
91
+ publications:
92
+ {% call(publication) match('PublicationDetails.Publication', TradeMark) %}
93
+ - identifier: {{ publication.PublicationIdentifier }}
94
+ date: {{ publication.PublicationDate }}
95
+ section: {{ publication.PublicationSection }}
96
+ {% endcall %}
97
+
98
+ applicants:
99
+ {% call(nameaddress) match('ApplicantDetails.Applicant.ApplicantAddressBook.FormattedNameAddress', TradeMark) %}
100
+ {% call(nameline) match('Name.FreeFormatName.FreeFormatNameDetails.FreeFormatNameLine', nameaddress) %}
101
+ - fullName:
102
+ - text: {{ nameline}}
103
+ languageCode: {{ nameline | guess_language(TradeMark.ApplicationLanguageCode) }}
104
+ {% endcall %}
105
+ {% call(adrline) match('Address.FreeFormatAddress.FreeFormatAddressLine', nameaddress) %}
106
+ fullAddress:
107
+ - text: {{ adrline}}
108
+ languageCode: {{ adrline | guess_language(TradeMark.ApplicationLanguageCode) }}
109
+ {% endcall %}
110
+ countryCode: {{ nameaddress.Address.AddressCountryCode }}
111
+ {% endcall %}
112
+
113
+ representatives:
114
+ {% call(representative) match('RepresentativeDetails.Representative', TradeMark) %}
115
+ {% if not representative.RepresentativeIdentifier.endswith('-null') %}
116
+ - kind: {{ representative.RepresentativeKindCode }}
117
+ {% call(nameaddress) match('RepresentativeAddressBook.FormattedNameAddress', representative) %}
118
+ fullName:
119
+ {% call(nameline) match('Name.FreeFormatName.FreeFormatNameDetails.FreeFormatNameLine', nameaddress) %}
120
+ - text: {{ nameline}}
121
+ languageCode: {{ nameline | guess_language(TradeMark.ApplicationLanguageCode) }}
122
+ {% endcall %}
123
+ fullAddress:
124
+ {% call(adrline) match('Address.FreeFormatAddress.FreeFormatAddressLine', nameaddress) %}
125
+ - text: {{ adrline}}
126
+ languageCode: {{ adrline | guess_language(TradeMark.ApplicationLanguageCode) }}
127
+ {% endcall %}
128
+ countryCode: {{ nameaddress.Address.AddressCountryCode }}
129
+ {% endcall %}
130
+ {% endif %}
131
+ {% endcall %}
132
+
133
+ appeals:
134
+ {% call(apeal) match('AppealDetails.Appeal', TradeMark) %}
135
+ - kind: {{ apeal.AppealDecisionStatusCode }}
136
+ date: {{ apeal.AppealDate }}
137
+ {% endcall %}
@@ -0,0 +1,5 @@
1
+ render = 'JSON'
2
+ source = 'national'
3
+
4
+ # VC/T/2015/109
5
+ appnum_mask = 'VC/T/\d{4}/(.*)'
@@ -0,0 +1,75 @@
1
+ import gbdtransformation.brands.ipas.filters as ipas
2
+ import gbdtransformation.common.filters as commons
3
+
4
+ ignore_namespace = [
5
+ 'http://www.wipo.int/standards/XMLSchema/trademarks',
6
+ 'http://www.wipo.int/standards/XMLSchema/wo-trademarks']
7
+
8
+ def get_appdate(appdate, appnum):
9
+ return appnum.split('/')[-2]
10
+
11
+ #return ipas.get_appdate(appdate, appnum)
12
+
13
+ def translate_type(header):
14
+ code = header.TransactionCode
15
+ if code == 'Trademark': return 'TRADEMARK'
16
+
17
+ raise Exception('Type "%s" is not mapped.' % code)
18
+
19
+ def translate_kind(trademark, header):
20
+ subcode = header.TransactionSubCode
21
+ if subcode == 'Trademarks': return ['Individual']
22
+ # it is None for all
23
+ # kind = trademark.KindMark
24
+
25
+ raise Exception('Kind "%s" not mapped.' % subcode)
26
+
27
+ def translate_status(trademark):
28
+ status = trademark.MarkCurrentStatusCode
29
+ """
30
+ if status == 'Converted': return 'Registered'
31
+ """
32
+ return ipas.translate_status(status)
33
+
34
+ def translate_feature(trademark):
35
+ feature = trademark.MarkFeature
36
+ if not feature: return 'Undefined'
37
+
38
+ return ipas.translate_feature(feature)
39
+
40
+ def translate_event(event):
41
+ if not event: return 'Unknown'
42
+
43
+ return ipas.translate_event(event)
44
+
45
+ # ---------------------------------------
46
+ # # language code is not accurate for markVerbalElement
47
+ # def guess_language(text, lang, default):
48
+ # if commons.is_latin(text):
49
+ # return 'en'
50
+ # else:
51
+ # return commons.guess_language(text, lang, default)
52
+
53
+ def verbal_lang_map(markVerbalElements, applang=None):
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
+ return None
61
+
62
+ def get_expiry_date(trademark, tmstatus):
63
+ return ipas.get_expiry_date(trademark, tmstatus)
64
+
65
+ def get_registration_date(trademark, tmstatus):
66
+ return ipas.get_registration_date(trademark, tmstatus)
67
+
68
+ def is_international(header):
69
+ return False
70
+
71
+ def get_ir_refnum(appnum):
72
+ return
73
+
74
+ def get_goods_services(goods_services):
75
+ return ipas.get_goods_services(goods_services)
@@ -0,0 +1,87 @@
1
+ /Transaction
2
+ __/TradeMarkTransactionBody
3
+ ____/TransactionContentDetails
4
+ ______/TransactionCode
5
+ ______/TransactionData
6
+ ________/TradeMarkApplication
7
+ __________/TradeMarkDetails
8
+ ____________/TradeMark
9
+ ______________/ApplicantDetails
10
+ ________________/Applicant
11
+ __________________/ApplicantAddressBook
12
+ ____________________/FormattedNameAddress
13
+ ______________________/Address
14
+ ________________________/AddressCountryCode
15
+ ________________________/FreeFormatAddress
16
+ __________________________/FreeFormatAddressLine
17
+ ______________________/Name
18
+ ________________________/FreeFormatName
19
+ __________________________/FreeFormatNameDetails
20
+ ____________________________/FreeFormatNameLine
21
+ ____________________________/FreeFormatNameLine[@languageCode=en]
22
+ ______________/ApplicationDate
23
+ ______________/ApplicationLanguageCode
24
+ ______________/ApplicationNumber
25
+ ______________/ExpiryDate
26
+ ______________/GoodsServicesDetails
27
+ ________________/GoodsServices
28
+ __________________/ClassDescriptionDetails
29
+ ____________________/ClassDescription
30
+ ______________________/ClassNumber
31
+ ______________________/GoodsServicesDescription
32
+ ______________________/GoodsServicesDescription[@languageCode=en]
33
+ ______________/KindMark
34
+ ______________/MarkCurrentStatusCode
35
+ ______________/MarkCurrentStatusDate
36
+ ______________/MarkDisclaimerDetails
37
+ ________________/MarkDisclaimer
38
+ ________________/MarkDisclaimer[@languageCode=en]
39
+ ______________/MarkEventDetails
40
+ ________________/MarkEvent
41
+ __________________/MarkEventCode
42
+ __________________/MarkEventDate
43
+ __________________/OfficeSpecificMarkEventCode
44
+ __________________/OfficeSpecificMarkEventDescription
45
+ __________________/OfficeSpecificMarkEventDescription[@languageCode=en]
46
+ ______________/MarkFeature
47
+ ______________/MarkImageDetails
48
+ ________________/MarkImage
49
+ __________________/MarkImageCategory
50
+ ____________________/CategoryCodeDetails
51
+ ______________________/CategoryCode
52
+ ____________________/CategoryKind
53
+ ____________________/CategoryVersion
54
+ __________________/MarkImageColourClaimedText
55
+ __________________/MarkImageColourClaimedText[@languageCode=en]
56
+ __________________/MarkImageFileFormat
57
+ __________________/MarkImageFilename
58
+ ______________/PriorityDetails
59
+ ________________/Priority
60
+ __________________/PriorityCountryCode
61
+ __________________/PriorityDate
62
+ __________________/PriorityNumber
63
+ ______________/PublicationDetails
64
+ ________________/Publication
65
+ __________________/PublicationDate
66
+ __________________/PublicationIdentifier
67
+ ______________/RegistrationDate
68
+ ______________/RegistrationNumber
69
+ ______________/RegistrationOfficeCode
70
+ ______________/RepresentativeDetails
71
+ ________________/Representative
72
+ __________________/RepresentativeAddressBook
73
+ ____________________/FormattedNameAddress
74
+ ______________________/Address
75
+ ________________________/AddressCountryCode
76
+ ________________________/FreeFormatAddress
77
+ __________________________/FreeFormatAddressLine
78
+ ______________________/Name
79
+ ________________________/FreeFormatName
80
+ __________________________/FreeFormatNameDetails
81
+ ____________________________/FreeFormatNameLine
82
+ ____________________________/FreeFormatNameLine[@languageCode=en]
83
+ ______________/WordMarkSpecification
84
+ ________________/MarkVerbalElementText
85
+ ________________/MarkVerbalElementText[@languageCode=en]
86
+ ______/TransactionIdentifier
87
+ ______/TransactionSubCode