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,177 @@
1
+ import re
2
+ from gbdtransformation.common.filters import country_name2code, get_value
3
+
4
+ # -------------------------------------------------------------
5
+ # data translation helpers:
6
+ # translate values from office interpretation to gbd equivalent
7
+ # -------------------------------------------------------------
8
+ def translate_kind(kind):
9
+ if not kind: return ['Individual']
10
+
11
+ if kind == 'Trade Mark': return ['Individual']
12
+ if kind == 'Collective Mark': return ['Collective']
13
+ if kind == 'Certification Mark': return ['Certificate']
14
+
15
+ if kind == 'Collective Mark/ Certificate Mark/ Guarantee Mark': return ['Certificate', 'Collective']
16
+ if kind == 'Collective, certification or guarantee mark': return ['Certificate', 'Collective']
17
+
18
+ raise Exception('kind "%s" is not mapped.' % kind)
19
+
20
+ def translate_status(status, prev_status=''):
21
+ if status == 'Destroyed': return 'Delete'
22
+
23
+ if status == 'Deleted': return 'Ended'
24
+ if status == 'Abandoned': return 'Ended'
25
+ if status == 'Cancelled': return 'Ended'
26
+ if status == 'Deemed Never Made': return 'Ended'
27
+ if status == 'Application Deemed Never Made': return 'Ended'
28
+ if status == 'Registration Deemed Never Made': return 'Ended'
29
+ if status == 'Withdrawn': return 'Ended'
30
+ if status == 'Treated As Withdrawn': return 'Ended'
31
+ if status == 'Treated as Withdrawn': return 'Ended'
32
+ if status == 'Treated As Withdrawn (Reinstatable)': return 'Ended'
33
+ if status == 'Treated As Withdrawn (Reinstatement Pending)': return 'Ended'
34
+ if status == 'Treated As Withdrawn (Continued Processing Possible)': return 'Pending'
35
+ if status == 'Refused': return 'Ended'
36
+ if status == 'Refunded': return 'Ended'
37
+ if status == 'Revoked': return 'Ended'
38
+
39
+ if status == 'Registered': return 'Registered'
40
+ if status == 'Split': return 'Registered'
41
+ if status == 'Split (Partially Assigned)': return 'Registered'
42
+
43
+ if status == 'Divided': return 'Pending'
44
+ if status == 'Recorded': return 'Pending'
45
+ if status == 'Pending': return 'Pending'
46
+ if status == 'Pending (Published)': return 'Pending'
47
+ if status == 'Pending (Under Examination)': return 'Pending'
48
+ if status == 'Pending (Formalities Check)': return 'Pending'
49
+
50
+ if status == 'Expired': return 'Expired'
51
+ if status == 'Expired (Late Renewal Possible)': return 'Expired'
52
+ if status == 'Expunged': return 'Expired'
53
+ if status == 'Removed': return 'Expired'
54
+ if status == 'Removed (Restoration Possible)': return 'Expired'
55
+ if status == 'Expired (Renewal Possible)': return 'Expired'
56
+ raise Exception('status/prev_status "%s/%s" is not mapped.' % (status, prev_status))
57
+
58
+ def translate_feature(trademark):
59
+ if trademark.three_dimensional_shape == 'Y': return 'Three dimensional'
60
+ if trademark.aspect_of_packaging == 'Y': return 'Three dimensional'
61
+ if trademark.color_as_a_trademark == 'Y': return 'Colour'
62
+ if trademark.non_conventional_mark == 'Hologram': return 'Hologram'
63
+ if trademark.non_conventional_mark == 'Movement': return 'Motion'
64
+ if trademark.non_conventional_mark == 'Scent': return 'Olfactory'
65
+ if trademark.non_conventional_mark == 'Sound': return 'Sound'
66
+
67
+ has_verbal = trademark.mark_description is not None
68
+ try:
69
+ mark_signif = trademark.mark_index.words_in_mark
70
+ # sometimes has an attribute
71
+ if not isinstance(mark_signif, str):
72
+ mark_signif = mark_signif.__value
73
+ has_verbal = has_verbal or mark_signif
74
+ except: pass
75
+
76
+ try:
77
+ has_transliteration = trademark.mark_index.transliteration
78
+ except:
79
+ has_transliteration = False
80
+
81
+ has_image = False
82
+ try:
83
+ has_image = not trademark.logo_details.file_name.upper().endswith('.TIF')
84
+ except: pass
85
+
86
+ if has_verbal and has_image: return 'Combined'
87
+ if has_verbal and not has_image: return 'Word'
88
+ if not has_verbal and not has_transliteration and has_image: return 'Figurative'
89
+ if has_transliteration: return 'Stylized characters'
90
+
91
+ return 'Undefined'
92
+
93
+ def format_applicant_address(applicant):
94
+ country_name = applicant.country
95
+ addr = []
96
+
97
+ state = applicant.get('state') or ''
98
+ if state: addr.append(state)
99
+
100
+ for i in range(1,5):
101
+ # remove country name from address line
102
+ line = applicant.get('company_addr%s' % i) or ''
103
+ line = line.rstrip('.').strip()
104
+ if country_name:
105
+ line = re.sub(re.escape(country_name), '', line, flags=re.IGNORECASE)
106
+ line = line.replace(country_name, '')
107
+ if line == '#-': line = ''
108
+ line = line.strip().rstrip(',')
109
+
110
+ if line: addr.append(line)
111
+
112
+ return ', '.join(addr)
113
+
114
+ def format_representative_address(agent):
115
+ country_code = None
116
+ addr = []
117
+ for i in range(1,5):
118
+ line = agent.get('agent_addr%s' % i) or agent.get('afs_addr%s' % i) or ''
119
+ if line.upper().find('SINGAPORE') > -1:
120
+ country_code = 'SG'
121
+ line = re.sub(re.escape('SINGAPORE'), '', line, flags=re.IGNORECASE)
122
+ line = line.strip()
123
+
124
+ if line: addr.append(line)
125
+
126
+ return (country_code, ', '.join(addr))
127
+
128
+ def get_country_code(country_name):
129
+ if not country_name: return
130
+ # sometimes we have 2 countries indicated => map the first one
131
+ # france; switzerland
132
+ # korea & japan
133
+ country_name = country_name.split('; ')[0].split(' & ')[0]
134
+
135
+ try:
136
+ country_code = country_name2code(country_name)
137
+ return country_code
138
+ except:
139
+ pass
140
+
141
+ def get_priority_country_code(country_name):
142
+ if not country_name: return
143
+ try:
144
+ country_code = country_name2code(country_name)
145
+ return country_code
146
+ except:
147
+ pass
148
+
149
+ def get_prio_gs(elem, dflt='all'):
150
+ value = get_value(elem) or dflt
151
+ return '(%s)' % value.replace('"', '')
152
+
153
+ def get_mark_names(trademark):
154
+ mark_name = trademark.mark_description or ''
155
+ try:
156
+ mark_signif = trademark.mark_index.words_in_mark
157
+ if not isinstance(mark_signif, str):
158
+ mark_signif = mark_signif.__value
159
+ if not mark_signif:
160
+ mark_signif = ''
161
+ except: mark_signif = ''
162
+
163
+ # happens to have the tag repeated (bof)
164
+ if isinstance(mark_name, list):
165
+ mark_name = mark_name[0] or ''
166
+ if isinstance(mark_signif, list):
167
+ mark_signif = mark_signif[0] or ''
168
+
169
+ # no need to duplicate information
170
+ if mark_name.lower() == mark_signif.lower():
171
+ return (mark_name, '')
172
+
173
+ if mark_signif and not mark_name:
174
+ mark_name = mark_signif
175
+ mark_signif = ''
176
+
177
+ return (mark_name, mark_signif)
@@ -0,0 +1,213 @@
1
+ /Article6ter
2
+ __/address
3
+ __/article_6ter_no
4
+ __/device_description
5
+ __/logo_details
6
+ ____/file_name
7
+ ____/type
8
+ __/name
9
+ __/phonetic_equivalent
10
+ __/translation
11
+ __/transliteration
12
+ __/words_in_mark
13
+ /R13
14
+ __/address
15
+ __/device_description
16
+ __/logo_details
17
+ ____/Type
18
+ ____/file_name
19
+ ____/type
20
+ __/name
21
+ __/phonetic_equivalent
22
+ __/r13_no
23
+ __/translation
24
+ __/transliteration
25
+ __/words_in_mark
26
+ __/words_in_mark[@space=preserve]
27
+ /Trademark
28
+ __/agent_afs_details
29
+ ____/afs_details
30
+ ______/afs_addr1
31
+ ______/afs_addr2
32
+ ______/afs_addr3
33
+ ______/agent_addr1
34
+ ______/agent_addr2
35
+ ______/co_name
36
+ ______/type
37
+ ____/agent_details
38
+ ______/agent_addr1
39
+ ______/agent_addr2
40
+ ______/agent_addr3
41
+ ______/agent_code
42
+ ______/agent_name
43
+ ______/co_name
44
+ ______/type
45
+ __/amendment_details
46
+ ____/amendment
47
+ ______/amendment_from
48
+ ______/amendment_to
49
+ ______/amendment_type
50
+ ______/document_no
51
+ ______/lodge_date
52
+ ______/status
53
+ __/application_date
54
+ __/application_part
55
+ __/application_type
56
+ __/aspect_of_packaging
57
+ __/assignment_details
58
+ ____/assignment
59
+ ______/DocumentElement
60
+ ______/assignee_details
61
+ ________/company_details
62
+ __________/company_addr1
63
+ __________/company_addr2
64
+ __________/company_addr3
65
+ __________/company_code
66
+ __________/company_name
67
+ __________/constitution
68
+ __________/country
69
+ __________/partner
70
+ __________/state
71
+ ________/goods_services
72
+ ______/assignor_details
73
+ ________/company_addr1
74
+ ________/company_code
75
+ ________/company_code[@space=preserve]
76
+ ________/company_details
77
+ __________/business_name
78
+ __________/company_addr1
79
+ __________/company_addr2
80
+ __________/company_addr3
81
+ __________/company_code
82
+ __________/company_name
83
+ __________/constitution
84
+ __________/country
85
+ __________/partner
86
+ __________/state
87
+ ________/company_name
88
+ ________/country
89
+ ________/goods_services
90
+ ______/effective_date
91
+ ______/lodgement_date
92
+ ______/notification_date
93
+ __/certificate_date
94
+ __/classes_details
95
+ ____/class_details
96
+ ______/class_no
97
+ ______/class_status
98
+ ______/expiry_date
99
+ ______/goods_services
100
+ ______/priority_claims
101
+ ________/country
102
+ ________/date
103
+ ________/goods_services
104
+ ______/status_date
105
+ ______/status_update_date
106
+ __/clause_details
107
+ ____/clause
108
+ __/color_as_a_trademark
109
+ __/company_details
110
+ ____/business_name
111
+ ____/company_addr1
112
+ ____/company_addr2
113
+ ____/company_addr3
114
+ ____/company_addr4
115
+ ____/company_code
116
+ ____/company_code[@space=preserve]
117
+ ____/company_name
118
+ ____/constitution
119
+ ____/country
120
+ ____/partner
121
+ ____/state
122
+ __/convert_application
123
+ __/correction_details
124
+ ____/correction
125
+ ______/correction_type
126
+ ______/from
127
+ ______/notification_date
128
+ ______/to
129
+ __/division_details
130
+ ____/Status
131
+ ____/division
132
+ ______/goods_services
133
+ ______/new_tm_no
134
+ ______/org_tm_no
135
+ ____/division_date
136
+ ____/status
137
+ __/expiry_date
138
+ __/ir_date
139
+ __/ir_no
140
+ __/ir_notif_date
141
+ __/licensee_details
142
+ ____/licensee
143
+ ______/GoodsServices
144
+ ______/amended_licensee_details
145
+ ______/assent_date
146
+ ______/company_details
147
+ ________/business_name
148
+ ________/company_addr1
149
+ ________/company_addr2
150
+ ________/company_addr3
151
+ ________/company_code
152
+ ________/company_name
153
+ ________/constitution
154
+ ________/country
155
+ ________/partner
156
+ ________/state
157
+ ______/entry_date
158
+ ______/exclusive_user_indicator
159
+ ______/expiry_date
160
+ ______/goods_services
161
+ ______/licensee_status
162
+ ______/notification_date
163
+ ______/right
164
+ ______/right[@space=preserve]
165
+ ______/use_condition
166
+ __/logo_details
167
+ ____/file_name
168
+ ____/type
169
+ __/mark_description
170
+ __/mark_index
171
+ ____/changei
172
+ ____/device_description
173
+ ____/phonetic_equivalent
174
+ ____/translation
175
+ ____/transliteration
176
+ ____/words_in_mark
177
+ ____/words_in_mark[@space=preserve]
178
+ __/mark_lodge_in_color
179
+ __/mark_status
180
+ __/non_conventional_mark
181
+ __/non_live_classes_details
182
+ ____/class_details
183
+ ______/class_no
184
+ ______/class_status
185
+ ______/expiry_date
186
+ ______/goods_services
187
+ ______/priority_claims
188
+ ________/country
189
+ ________/date
190
+ ________/goods_services
191
+ ______/status_date
192
+ ______/status_update_date
193
+ __/oppositon_revocation_invalidation_rectification
194
+ ____/opp_rev_inv_rec_details
195
+ ______/class_no
196
+ ______/invalidation_status
197
+ ______/lodge_date
198
+ ______/opposition_status
199
+ ______/rectification_status
200
+ ______/revocation_status
201
+ __/previous_status
202
+ __/publication_date
203
+ __/publication_status
204
+ __/registration_completion_date
205
+ __/sd_date
206
+ __/sd_no
207
+ __/sd_notif_date
208
+ __/status_date
209
+ __/status_update_date
210
+ __/three_dimensional_shape
211
+ __/tm_no
212
+
213
+
@@ -0,0 +1,48 @@
1
+ type: EMBLEM
2
+ kind:
3
+ - Emblem
4
+
5
+ reference:
6
+ office: SG
7
+
8
+ st13: {{ Article6ter.article_6ter_no | st13('SG', type='EMBLEM') }}
9
+
10
+ applicationNumber: {{ Article6ter.article_6ter_no }}
11
+ registrationNumber: {{ Article6ter.article_6ter_no }}
12
+
13
+ gbdStatus: Registered
14
+ officeStatus: Registered
15
+
16
+ registrationOfficeCode: SG
17
+ designatedCountries:
18
+ - SG
19
+
20
+ {% if Article6ter.device_description and Article6ter.words_in_mark %}
21
+ markFeature: Combined
22
+ {% elif Article6ter.device_description %}
23
+ markFeature: Figurative
24
+ {% elif Article6ter.words_in_mark %}
25
+ markFeature: Word
26
+ {% else %}
27
+ markFeature: Figurative
28
+ {% endif %}
29
+
30
+ applicants:
31
+ - fullName:
32
+ - languageCode: {{ Article6ter.name | guess_language('en') }}
33
+ text: {{ Article6ter.name }}
34
+ fullAddress:
35
+ - languageCode: {{ Article6ter.address | guess_language('en') }}
36
+ text: {{ Article6ter.address }}
37
+
38
+ wordMarkSpecification:
39
+ markVerbalElement:
40
+ - text: {{ Article6ter.words_in_mark }}
41
+ languageCode: {{ Article6ter.words_in_mark | guess_language('en') }}
42
+ markTranslation:
43
+ - text: {{ Article6ter.translation }}
44
+ languageCode: {{ Article6ter.translation | guess_language('en') }}
45
+ markTransliteration: {{ Article6ter.transliteration }}
46
+
47
+ markImageDetails:
48
+ - name: {{ Article6ter.logo_details.file_name }}
@@ -0,0 +1,45 @@
1
+ type: TRADEMARK
2
+ kind:
3
+ - Slogan
4
+
5
+ st13: {{ R13.r13_no | st13('SG') }}
6
+
7
+ applicationNumber: {{ R13.r13_no }}
8
+ registrationNumber: {{ R13.r13_no }}
9
+
10
+ gbdStatus: Registered
11
+ officeStatus: Registered
12
+
13
+ registrationOfficeCode: SG
14
+ designatedCountries:
15
+ - SG
16
+
17
+ {% if R13.device_description and R13.words_in_mark %}
18
+ markFeature: Combined
19
+ {% elif R13.device_description %}
20
+ markFeature: Figurative
21
+ {% elif R13.words_in_mark %}
22
+ markFeature: Word
23
+ {% else %}
24
+ markFeature: Word
25
+ {% endif %}
26
+
27
+ applicants:
28
+ - fullName:
29
+ - languageCode: {{ R13.name | guess_language('en') }}
30
+ text: {{ R13.name }}
31
+ fullAddress:
32
+ - languageCode: {{ R13.address | guess_language('en') }}
33
+ text: {{ R13.address }}
34
+
35
+ wordMarkSpecification:
36
+ markVerbalElement:
37
+ - text: {{ R13.words_in_mark }}
38
+ languageCode: {{ R13.words_in_mark | guess_language('en') }}
39
+ markTranslation:
40
+ - text: {{ R13.translation }}
41
+ languageCode: {{ R13.translation | guess_language('en') }}
42
+ markTransliteration: {{ R13.transliteration }}
43
+
44
+ markImageDetails:
45
+ - name: {{ R13.logo_details.file_name }}
@@ -0,0 +1,148 @@
1
+ {% from 'navigation.tmpl' import match %}
2
+
3
+ {% set status = Trademark.mark_status | first | translate_status(prev_status=Trademark.previous_status)%}
4
+
5
+ gbdStatus: {{ status}}
6
+ st13: {{ Trademark.tm_no | first | st13('SG', appdate=Trademark.application_date | first | convertdate('%d/%m/%Y')) }}
7
+ registrationOfficeCode: SG
8
+ type: TRADEMARK
9
+
10
+ {% if not status == 'Delete' %}
11
+ kind: {{ Trademark.application_type | first | translate_kind }}
12
+
13
+ markFeature: {{ Trademark | translate_feature }}
14
+ designatedCountries:
15
+ - SG
16
+
17
+ reference:
18
+ {% if Trademark.ir_no %}
19
+ office: WO
20
+ registration:
21
+ - number: {{ Trademark.ir_no }}
22
+ date: {{ Trademark.ir_date | first | convertdate('%d/%m/%Y') }}
23
+ {% endif %}
24
+
25
+ applicationNumber: {{ Trademark.tm_no | first }}
26
+ applicationDate: {{ Trademark.application_date | first | convertdate('%d/%m/%Y') }}
27
+ publicationDate: {{ Trademark.publication_date | first | convertdate('%d/%m/%Y') }}
28
+
29
+ {% if Trademark.registration_completion_date %}
30
+ registrationNumber: {{ Trademark.tm_no | first }}
31
+ registrationDate: {{ Trademark.registration_completion_date | first |convertdate('%d/%m/%Y') }}
32
+ {% endif %}
33
+
34
+ applicationLanguageCode: en
35
+ expiryDate: {{ Trademark.expiry_date | first |convertdate('%d/%m/%Y') }}
36
+
37
+ {% if status == 'Ended' %}
38
+ terminationDate: {{ Trademark.status_date | first |convertdate('%d/%m/%Y') }}
39
+ {% endif %}
40
+
41
+ officeStatus: {{ Trademark.mark_status | first }}
42
+ statusDate: {{ Trademark.status_date | first | convertdate('%d/%m/%Y') }}
43
+
44
+ markDisclaimerDetails:
45
+ {% call(desc) match('clause_details.clause', Trademark) %}
46
+ - text: {{ desc | remove_trailing('.') }}
47
+ languageCode: {{ desc | guess_language('en') }}
48
+ {% endcall %}
49
+
50
+ wordMarkSpecification:
51
+ {% set (mark_name, mark_signif) = Trademark | get_mark_names %}
52
+ markVerbalElement:
53
+ - text: {{ mark_name }}
54
+ languageCode: {{ mark_name | guess_language('en') }}
55
+ markSignificantVerbalElement:
56
+ - text: {{ mark_signif }}
57
+ languageCode: {{ mark_signif | guess_language('en') }}
58
+ {% call(indx) match('mark_index', Trademark) %}
59
+ markTranslation:
60
+ {% call(desc) match('translation', indx) %}
61
+ - text: {{ desc }}
62
+ languageCode: {{ desc | guess_language('en') }}
63
+ {% endcall %}
64
+ markTransliteration: {{ indx.transliteration }}
65
+ {% endcall %}
66
+
67
+ markImageDetails:
68
+ - name: {{ Trademark.logo_details.file_name}}
69
+ colourIndicator: {{ Trademark.mark_lodge_in_color == 'Y' }}
70
+ {% call(desc) match('mark_index.device_description', Trademark) %}
71
+ description:
72
+ - text: {{ desc }}
73
+ languageCode: {{ desc | guess_language('en') }}
74
+ {% endcall %}
75
+
76
+ {% call(nc_gs) match('classes_details', Trademark) %}
77
+ goodsServicesClassification:
78
+ kind: Nice
79
+ version: {{ ASK_THE_OFFICE }}
80
+ class:
81
+ {% call(nice) match('class_details', nc_gs) %}
82
+ - code: {{ nice.class_no | int }}
83
+ terms:
84
+ {% if nice.goods_services | has_value %}
85
+ {% call(desc) match('goods_services', nice) %}
86
+ {{ desc | guess_language('en') | field_name }}:
87
+ {% for gsline in desc | remove_trailing('.') | split_terms %}
88
+ - {{ gsline | lower }}
89
+ {% endfor %}
90
+ {% endcall %}
91
+ {% endif %}
92
+ {% endcall %}
93
+ {% endcall %}
94
+
95
+ priorities:
96
+ {% call(nice) match('classes_details.class_details', Trademark) %}
97
+ {% call(prio) match('priority_claims', nice) %}
98
+ {% if prio.country | has_value %}
99
+ - countryCode: {{ prio.country | get_priority_country_code }}
100
+ countryName: {{ prio.country }}
101
+ date: {{ prio.date | convertdate('%d/%m/%Y') }}
102
+ comment: "Nice class {{nice.class_no | int}} {{ prio.goods_services | field_name | get_prio_gs }}"
103
+ {% endif %}
104
+ {% endcall %}
105
+ {% endcall %}
106
+
107
+ applicants:
108
+ {% call(applicant) match('company_details', Trademark) %}
109
+ - identifier: {{ applicant.company_code }}
110
+ kind: Legal entity
111
+ fullName:
112
+ - languageCode: {{ applicant.company_name | guess_language('en') }}
113
+ text: {{ applicant.company_name}}
114
+ fullAddress:
115
+ - languageCode: {{ applicant | format_applicant_address | guess_language('en') }}
116
+ text: {{ applicant | format_applicant_address }}
117
+ countryCode: {{ applicant.country | get_country_code }}
118
+ {% endcall %}
119
+
120
+ representatives:
121
+ {% call(agent) match('agent_afs_details.agent_details', Trademark) %}
122
+ - identifier: {{ agent.agent_code }}
123
+ kind: {{ agent.type }}
124
+ fullName:
125
+ - languageCode: {{ agent.agent_name or agent.co_name | guess_language('en') }}
126
+ text: {{ agent.agent_name or agent.co_name }}
127
+ {% set (cc, addr) = agent | format_representative_address %}
128
+ fullAddress:
129
+ - languageCode: {{ addr | guess_language('en') }}
130
+ text: {{ addr }}
131
+ countryCode: {{ cc }}
132
+ {% endcall %}
133
+ {% call(agent) match('agent_afs_details.afs_details', Trademark) %}
134
+ {% if agent.agent_name or agent.co_name | has_value %}
135
+ - identifier: {{ agent.agent_code }}
136
+ kind: {{ agent.type }}
137
+ fullName:
138
+ - languageCode: {{ agent.agent_name or agent.co_name | guess_language('en') }}
139
+ text: {{ agent.agent_name or agent.co_name }}
140
+ {% set (cc, addr) = agent | format_representative_address %}
141
+ fullAddress:
142
+ - languageCode: {{ addr | guess_language('en') }}
143
+ text: {{ addr }}
144
+ countryCode: {{ cc }}
145
+ {% endif %}
146
+ {% endcall %}
147
+
148
+ {% endif %}
@@ -0,0 +1,9 @@
1
+ {% from 'navigation.tmpl' import match %}
2
+
3
+ {% if Trademark %}
4
+ {% include "template.trademark.yml" %}
5
+ {% elif Article6ter %}
6
+ {% include "template.article6ter.yml" %}
7
+ {% elif R13 %}
8
+ {% include "template.r13.yml" %}
9
+ {% endif %}
@@ -0,0 +1,6 @@
1
+ render = 'JSON'
2
+ source = 'national'
3
+
4
+ # SM/M/2004/000064
5
+ # SM/M/1/000064
6
+ appnum_mask = 'SM/M/\\d{1,4}/(\\d*)'