spinta 0.2.dev25__tar.gz → 0.2.dev27__tar.gz

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 (1159) hide show
  1. spinta-0.2.dev27/PKG-INFO +309 -0
  2. spinta-0.2.dev27/pyproject.toml +184 -0
  3. spinta-0.2.dev27/spinta/accesslog/__init__.py +204 -0
  4. spinta-0.2.dev27/spinta/accesslog/file.py +76 -0
  5. spinta-0.2.dev27/spinta/accesslog/python.py +23 -0
  6. spinta-0.2.dev27/spinta/adapters/soap_plugins.py +122 -0
  7. spinta-0.2.dev27/spinta/api/__init__.py +499 -0
  8. spinta-0.2.dev27/spinta/api/inspect.py +180 -0
  9. spinta-0.2.dev27/spinta/api/schema.py +208 -0
  10. spinta-0.2.dev27/spinta/api/validators.py +26 -0
  11. spinta-0.2.dev27/spinta/asgi.py +24 -0
  12. spinta-0.2.dev27/spinta/auth.py +1274 -0
  13. spinta-0.2.dev27/spinta/backends/__init__.py +2014 -0
  14. spinta-0.2.dev27/spinta/backends/components.py +64 -0
  15. spinta-0.2.dev27/spinta/backends/fs/commands/bootstrap.py +8 -0
  16. spinta-0.2.dev27/spinta/backends/fs/commands/changes.py +18 -0
  17. spinta-0.2.dev27/spinta/backends/fs/commands/decode.py +14 -0
  18. spinta-0.2.dev27/spinta/backends/fs/commands/encode.py +38 -0
  19. spinta-0.2.dev27/spinta/backends/fs/commands/init.py +29 -0
  20. spinta-0.2.dev27/spinta/backends/fs/commands/load.py +11 -0
  21. spinta-0.2.dev27/spinta/backends/fs/commands/migrate.py +9 -0
  22. spinta-0.2.dev27/spinta/backends/fs/commands/read.py +55 -0
  23. spinta-0.2.dev27/spinta/backends/fs/commands/validate.py +73 -0
  24. spinta-0.2.dev27/spinta/backends/fs/commands/wait.py +8 -0
  25. spinta-0.2.dev27/spinta/backends/fs/commands/wipe.py +17 -0
  26. spinta-0.2.dev27/spinta/backends/fs/commands/write.py +116 -0
  27. spinta-0.2.dev27/spinta/backends/helpers.py +617 -0
  28. spinta-0.2.dev27/spinta/backends/memory/commands/bootstrap.py +8 -0
  29. spinta-0.2.dev27/spinta/backends/memory/commands/init.py +13 -0
  30. spinta-0.2.dev27/spinta/backends/memory/commands/load.py +10 -0
  31. spinta-0.2.dev27/spinta/backends/memory/commands/read.py +41 -0
  32. spinta-0.2.dev27/spinta/backends/memory/commands/wait.py +8 -0
  33. spinta-0.2.dev27/spinta/backends/memory/commands/wipe.py +9 -0
  34. spinta-0.2.dev27/spinta/backends/memory/components.py +87 -0
  35. spinta-0.2.dev27/spinta/backends/mongo/commands/bootstrap.py +8 -0
  36. spinta-0.2.dev27/spinta/backends/mongo/commands/changes.py +38 -0
  37. spinta-0.2.dev27/spinta/backends/mongo/commands/encode.py +24 -0
  38. spinta-0.2.dev27/spinta/backends/mongo/commands/init.py +10 -0
  39. spinta-0.2.dev27/spinta/backends/mongo/commands/load.py +16 -0
  40. spinta-0.2.dev27/spinta/backends/mongo/commands/migrate.py +9 -0
  41. spinta-0.2.dev27/spinta/backends/mongo/commands/read.py +127 -0
  42. spinta-0.2.dev27/spinta/backends/mongo/commands/validate.py +45 -0
  43. spinta-0.2.dev27/spinta/backends/mongo/commands/wait.py +9 -0
  44. spinta-0.2.dev27/spinta/backends/mongo/commands/wipe.py +23 -0
  45. spinta-0.2.dev27/spinta/backends/mongo/commands/write.py +152 -0
  46. spinta-0.2.dev27/spinta/backends/mongo/components.py +71 -0
  47. spinta-0.2.dev27/spinta/backends/mongo/helpers.py +7 -0
  48. spinta-0.2.dev27/spinta/backends/mongo/types/array/write.py +24 -0
  49. spinta-0.2.dev27/spinta/backends/mongo/types/file/write.py +30 -0
  50. spinta-0.2.dev27/spinta/backends/mongo/types/object/write.py +29 -0
  51. spinta-0.2.dev27/spinta/backends/mongo/ufuncs/components.py +100 -0
  52. spinta-0.2.dev27/spinta/backends/mongo/ufuncs/ufuncs.py +529 -0
  53. spinta-0.2.dev27/spinta/backends/nobackend/commands/load.py +14 -0
  54. spinta-0.2.dev27/spinta/backends/nobackend/commands/read.py +34 -0
  55. spinta-0.2.dev27/spinta/backends/nobackend/commands/wait.py +8 -0
  56. spinta-0.2.dev27/spinta/backends/nobackend/commands/wipe.py +8 -0
  57. spinta-0.2.dev27/spinta/backends/nobackend/commands/write.py +60 -0
  58. spinta-0.2.dev27/spinta/backends/postgresql/commands/bootstrap.py +30 -0
  59. spinta-0.2.dev27/spinta/backends/postgresql/commands/changes.py +124 -0
  60. spinta-0.2.dev27/spinta/backends/postgresql/commands/column.py +172 -0
  61. spinta-0.2.dev27/spinta/backends/postgresql/commands/encode.py +67 -0
  62. spinta-0.2.dev27/spinta/backends/postgresql/commands/load.py +27 -0
  63. spinta-0.2.dev27/spinta/backends/postgresql/commands/migrate/migrate.py +190 -0
  64. spinta-0.2.dev27/spinta/backends/postgresql/commands/migrate/model.py +854 -0
  65. spinta-0.2.dev27/spinta/backends/postgresql/commands/migrate/property.py +76 -0
  66. spinta-0.2.dev27/spinta/backends/postgresql/commands/migrate/types/array.py +201 -0
  67. spinta-0.2.dev27/spinta/backends/postgresql/commands/migrate/types/datatype.py +380 -0
  68. spinta-0.2.dev27/spinta/backends/postgresql/commands/migrate/types/file.py +113 -0
  69. spinta-0.2.dev27/spinta/backends/postgresql/commands/migrate/types/object.py +58 -0
  70. spinta-0.2.dev27/spinta/backends/postgresql/commands/migrate/types/ref.py +687 -0
  71. spinta-0.2.dev27/spinta/backends/postgresql/commands/migrate/types/string.py +145 -0
  72. spinta-0.2.dev27/spinta/backends/postgresql/commands/migrate/types/text.py +144 -0
  73. spinta-0.2.dev27/spinta/backends/postgresql/commands/read.py +83 -0
  74. spinta-0.2.dev27/spinta/backends/postgresql/commands/redirect.py +48 -0
  75. spinta-0.2.dev27/spinta/backends/postgresql/commands/summary.py +453 -0
  76. spinta-0.2.dev27/spinta/backends/postgresql/commands/validate.py +17 -0
  77. spinta-0.2.dev27/spinta/backends/postgresql/commands/wait.py +21 -0
  78. spinta-0.2.dev27/spinta/backends/postgresql/commands/wipe.py +64 -0
  79. spinta-0.2.dev27/spinta/backends/postgresql/commands/write.py +341 -0
  80. spinta-0.2.dev27/spinta/backends/postgresql/components.py +163 -0
  81. spinta-0.2.dev27/spinta/backends/postgresql/files.py +222 -0
  82. spinta-0.2.dev27/spinta/backends/postgresql/helpers/__init__.py +56 -0
  83. spinta-0.2.dev27/spinta/backends/postgresql/helpers/changes.py +43 -0
  84. spinta-0.2.dev27/spinta/backends/postgresql/helpers/exceptions.py +62 -0
  85. spinta-0.2.dev27/spinta/backends/postgresql/helpers/migrate/actions.py +661 -0
  86. spinta-0.2.dev27/spinta/backends/postgresql/helpers/migrate/citus.py +382 -0
  87. spinta-0.2.dev27/spinta/backends/postgresql/helpers/migrate/migrate.py +1529 -0
  88. spinta-0.2.dev27/spinta/backends/postgresql/helpers/migrate/name.py +218 -0
  89. spinta-0.2.dev27/spinta/backends/postgresql/helpers/name.py +109 -0
  90. spinta-0.2.dev27/spinta/backends/postgresql/helpers/type.py +13 -0
  91. spinta-0.2.dev27/spinta/backends/postgresql/helpers/validate.py +35 -0
  92. spinta-0.2.dev27/spinta/backends/postgresql/sqlalchemy.py +36 -0
  93. spinta-0.2.dev27/spinta/backends/postgresql/types/array/init.py +67 -0
  94. spinta-0.2.dev27/spinta/backends/postgresql/types/array/wipe.py +13 -0
  95. spinta-0.2.dev27/spinta/backends/postgresql/types/array/write.py +137 -0
  96. spinta-0.2.dev27/spinta/backends/postgresql/types/denorm/init.py +11 -0
  97. spinta-0.2.dev27/spinta/backends/postgresql/types/external_ref/init.py +68 -0
  98. spinta-0.2.dev27/spinta/backends/postgresql/types/file/init.py +77 -0
  99. spinta-0.2.dev27/spinta/backends/postgresql/types/file/read.py +84 -0
  100. spinta-0.2.dev27/spinta/backends/postgresql/types/file/write.py +146 -0
  101. spinta-0.2.dev27/spinta/backends/postgresql/types/geometry/encode.py +46 -0
  102. spinta-0.2.dev27/spinta/backends/postgresql/types/geometry/write.py +13 -0
  103. spinta-0.2.dev27/spinta/backends/postgresql/types/object/init.py +20 -0
  104. spinta-0.2.dev27/spinta/backends/postgresql/types/object/read.py +62 -0
  105. spinta-0.2.dev27/spinta/backends/postgresql/types/object/wipe.py +10 -0
  106. spinta-0.2.dev27/spinta/backends/postgresql/types/ref/init.py +80 -0
  107. spinta-0.2.dev27/spinta/backends/postgresql/types/ref/validate.py +29 -0
  108. spinta-0.2.dev27/spinta/backends/postgresql/types/text/init.py +27 -0
  109. spinta-0.2.dev27/spinta/backends/postgresql/ufuncs/query/components.py +315 -0
  110. spinta-0.2.dev27/spinta/backends/postgresql/ufuncs/query/ufuncs.py +1307 -0
  111. spinta-0.2.dev27/spinta/backends/postgresql/ufuncs/result/components.py +19 -0
  112. spinta-0.2.dev27/spinta/backends/postgresql/ufuncs/result/ufuncs.py +24 -0
  113. spinta-0.2.dev27/spinta/cli/admin.py +96 -0
  114. spinta-0.2.dev27/spinta/cli/auth.py +181 -0
  115. spinta-0.2.dev27/spinta/cli/comment.py +114 -0
  116. spinta-0.2.dev27/spinta/cli/data.py +193 -0
  117. spinta-0.2.dev27/spinta/cli/get.py +30 -0
  118. spinta-0.2.dev27/spinta/cli/helpers/admin/registry.py +50 -0
  119. spinta-0.2.dev27/spinta/cli/helpers/admin/scripts/changelog.py +414 -0
  120. spinta-0.2.dev27/spinta/cli/helpers/admin/scripts/citus_shard.py +180 -0
  121. spinta-0.2.dev27/spinta/cli/helpers/admin/scripts/deduplicate.py +259 -0
  122. spinta-0.2.dev27/spinta/cli/helpers/admin/scripts/enums.py +146 -0
  123. spinta-0.2.dev27/spinta/cli/helpers/admin/scripts/remove_local_ids.py +54 -0
  124. spinta-0.2.dev27/spinta/cli/helpers/auth.py +30 -0
  125. spinta-0.2.dev27/spinta/cli/helpers/data.py +171 -0
  126. spinta-0.2.dev27/spinta/cli/helpers/export/backends/postgresql/commands.py +168 -0
  127. spinta-0.2.dev27/spinta/cli/helpers/export/backends/postgresql/components.py +59 -0
  128. spinta-0.2.dev27/spinta/cli/helpers/export/backends/postgresql/helpers.py +126 -0
  129. spinta-0.2.dev27/spinta/cli/helpers/export/commands.py +332 -0
  130. spinta-0.2.dev27/spinta/cli/helpers/export/helpers.py +124 -0
  131. spinta-0.2.dev27/spinta/cli/helpers/migrate.py +19 -0
  132. spinta-0.2.dev27/spinta/cli/helpers/push/__init__.py +70 -0
  133. spinta-0.2.dev27/spinta/cli/helpers/push/components.py +110 -0
  134. spinta-0.2.dev27/spinta/cli/helpers/push/delete.py +119 -0
  135. spinta-0.2.dev27/spinta/cli/helpers/push/error.py +148 -0
  136. spinta-0.2.dev27/spinta/cli/helpers/push/read.py +351 -0
  137. spinta-0.2.dev27/spinta/cli/helpers/push/state.py +215 -0
  138. spinta-0.2.dev27/spinta/cli/helpers/push/sync.py +312 -0
  139. spinta-0.2.dev27/spinta/cli/helpers/push/utils.py +167 -0
  140. spinta-0.2.dev27/spinta/cli/helpers/push/write.py +428 -0
  141. spinta-0.2.dev27/spinta/cli/helpers/script/core.py +99 -0
  142. spinta-0.2.dev27/spinta/cli/helpers/script/helpers.py +69 -0
  143. spinta-0.2.dev27/spinta/cli/helpers/script/registry.py +92 -0
  144. spinta-0.2.dev27/spinta/cli/helpers/store.py +169 -0
  145. spinta-0.2.dev27/spinta/cli/helpers/sync/api_helpers.py +54 -0
  146. spinta-0.2.dev27/spinta/cli/helpers/sync/controllers/data_service.py +26 -0
  147. spinta-0.2.dev27/spinta/cli/helpers/sync/controllers/dataset.py +80 -0
  148. spinta-0.2.dev27/spinta/cli/helpers/sync/controllers/distribution.py +30 -0
  149. spinta-0.2.dev27/spinta/cli/helpers/sync/controllers/dsa.py +40 -0
  150. spinta-0.2.dev27/spinta/cli/helpers/sync/controllers/synchronization/connection.py +18 -0
  151. spinta-0.2.dev27/spinta/cli/helpers/sync/controllers/synchronization/manifest_catalog_to_agent.py +154 -0
  152. spinta-0.2.dev27/spinta/cli/helpers/sync/helpers.py +205 -0
  153. spinta-0.2.dev27/spinta/cli/helpers/typer.py +10 -0
  154. spinta-0.2.dev27/spinta/cli/helpers/upgrade/registry.py +101 -0
  155. spinta-0.2.dev27/spinta/cli/helpers/upgrade/scripts/backends/postgresql/comments.py +292 -0
  156. spinta-0.2.dev27/spinta/cli/helpers/upgrade/scripts/backends/postgresql/schemas.py +311 -0
  157. spinta-0.2.dev27/spinta/cli/helpers/upgrade/scripts/clients.py +213 -0
  158. spinta-0.2.dev27/spinta/cli/helpers/upgrade/scripts/keymaps/sqlalchemy/helpers.py +49 -0
  159. spinta-0.2.dev27/spinta/cli/helpers/upgrade/scripts/keymaps/sqlalchemy/initial_setup.py +25 -0
  160. spinta-0.2.dev27/spinta/cli/helpers/upgrade/scripts/keymaps/sqlalchemy/modified_time.py +49 -0
  161. spinta-0.2.dev27/spinta/cli/helpers/upgrade/scripts/keymaps/sqlalchemy/redirect_support.py +100 -0
  162. spinta-0.2.dev27/spinta/cli/helpers/upgrade/scripts/redirect.py +87 -0
  163. spinta-0.2.dev27/spinta/cli/init.py +21 -0
  164. spinta-0.2.dev27/spinta/cli/inspect.py +57 -0
  165. spinta-0.2.dev27/spinta/cli/keymap.py +128 -0
  166. spinta-0.2.dev27/spinta/cli/main.py +104 -0
  167. spinta-0.2.dev27/spinta/cli/migrate.py +90 -0
  168. spinta-0.2.dev27/spinta/cli/pii.py +244 -0
  169. spinta-0.2.dev27/spinta/cli/pull.py +103 -0
  170. spinta-0.2.dev27/spinta/cli/push.py +225 -0
  171. spinta-0.2.dev27/spinta/cli/server.py +51 -0
  172. spinta-0.2.dev27/spinta/cli/show.py +23 -0
  173. spinta-0.2.dev27/spinta/cli/sync.py +62 -0
  174. spinta-0.2.dev27/spinta/cli/uncomment.py +166 -0
  175. spinta-0.2.dev27/spinta/cli/upgrade.py +93 -0
  176. spinta-0.2.dev27/spinta/client.py +172 -0
  177. spinta-0.2.dev27/spinta/commands/__init__.py +1363 -0
  178. spinta-0.2.dev27/spinta/commands/read.py +600 -0
  179. spinta-0.2.dev27/spinta/commands/search.py +92 -0
  180. spinta-0.2.dev27/spinta/commands/write.py +1431 -0
  181. spinta-0.2.dev27/spinta/compat.py +110 -0
  182. spinta-0.2.dev27/spinta/components.py +1169 -0
  183. spinta-0.2.dev27/spinta/config.py +370 -0
  184. spinta-0.2.dev27/spinta/config.yml +229 -0
  185. spinta-0.2.dev27/spinta/core/access.py +84 -0
  186. spinta-0.2.dev27/spinta/core/config.py +663 -0
  187. spinta-0.2.dev27/spinta/core/context.py +65 -0
  188. spinta-0.2.dev27/spinta/core/enums.py +197 -0
  189. spinta-0.2.dev27/spinta/core/ufuncs.py +322 -0
  190. spinta-0.2.dev27/spinta/datasets/backends/dataframe/backends/csv/commands/read.py +33 -0
  191. spinta-0.2.dev27/spinta/datasets/backends/dataframe/backends/json/commands/read.py +191 -0
  192. spinta-0.2.dev27/spinta/datasets/backends/dataframe/backends/soap/commands/read.py +162 -0
  193. spinta-0.2.dev27/spinta/datasets/backends/dataframe/backends/soap/components.py +46 -0
  194. spinta-0.2.dev27/spinta/datasets/backends/dataframe/backends/soap/ufuncs/ufuncs.py +267 -0
  195. spinta-0.2.dev27/spinta/datasets/backends/dataframe/backends/xml/commands/read.py +163 -0
  196. spinta-0.2.dev27/spinta/datasets/backends/dataframe/commands/read.py +326 -0
  197. spinta-0.2.dev27/spinta/datasets/backends/dataframe/ufuncs/query/components.py +98 -0
  198. spinta-0.2.dev27/spinta/datasets/backends/dataframe/ufuncs/query/ufuncs.py +573 -0
  199. spinta-0.2.dev27/spinta/datasets/backends/helpers.py +202 -0
  200. spinta-0.2.dev27/spinta/datasets/backends/notimpl/commands/load.py +14 -0
  201. spinta-0.2.dev27/spinta/datasets/backends/sql/backends/mariadb/ufuncs/query/components.py +8 -0
  202. spinta-0.2.dev27/spinta/datasets/backends/sql/backends/mysql/ufuncs/query/components.py +8 -0
  203. spinta-0.2.dev27/spinta/datasets/backends/sql/backends/oracle/helpers.py +89 -0
  204. spinta-0.2.dev27/spinta/datasets/backends/sql/backends/oracle/types/geometry/encode.py +41 -0
  205. spinta-0.2.dev27/spinta/datasets/backends/sql/backends/oracle/ufuncs/query/components.py +8 -0
  206. spinta-0.2.dev27/spinta/datasets/backends/sql/backends/oracle/ufuncs/query/ufuncs.py +51 -0
  207. spinta-0.2.dev27/spinta/datasets/backends/sql/backends/postgresql/helpers.py +15 -0
  208. spinta-0.2.dev27/spinta/datasets/backends/sql/backends/postgresql/ufuncs/query/ufuncs.py +57 -0
  209. spinta-0.2.dev27/spinta/datasets/backends/sql/backends/sas/commands/__init__.py +14 -0
  210. spinta-0.2.dev27/spinta/datasets/backends/sql/backends/sas/commands/cast.py +50 -0
  211. spinta-0.2.dev27/spinta/datasets/backends/sql/backends/sas/commands/load.py +48 -0
  212. spinta-0.2.dev27/spinta/datasets/backends/sql/backends/sas/commands/read.py +176 -0
  213. spinta-0.2.dev27/spinta/datasets/backends/sql/backends/sas/constants.py +73 -0
  214. spinta-0.2.dev27/spinta/datasets/backends/sql/backends/sas/dialect.py +423 -0
  215. spinta-0.2.dev27/spinta/datasets/backends/sql/backends/sas/formats.py +429 -0
  216. spinta-0.2.dev27/spinta/datasets/backends/sql/backends/sas/helpers.py +122 -0
  217. spinta-0.2.dev27/spinta/datasets/backends/sql/backends/sas/introspection.py +309 -0
  218. spinta-0.2.dev27/spinta/datasets/backends/sql/backends/sas/types.py +152 -0
  219. spinta-0.2.dev27/spinta/datasets/backends/sql/backends/sas/ufuncs/query/components.py +6 -0
  220. spinta-0.2.dev27/spinta/datasets/backends/sql/backends/sas/ufuncs/query/ufuncs.py +74 -0
  221. spinta-0.2.dev27/spinta/datasets/backends/sql/backends/sqlite/ufuncs/query/ufuncs.py +23 -0
  222. spinta-0.2.dev27/spinta/datasets/backends/sql/commands/cast.py +251 -0
  223. spinta-0.2.dev27/spinta/datasets/backends/sql/commands/column.py +52 -0
  224. spinta-0.2.dev27/spinta/datasets/backends/sql/commands/load.py +20 -0
  225. spinta-0.2.dev27/spinta/datasets/backends/sql/commands/read.py +110 -0
  226. spinta-0.2.dev27/spinta/datasets/backends/sql/components.py +68 -0
  227. spinta-0.2.dev27/spinta/datasets/backends/sql/helpers.py +61 -0
  228. spinta-0.2.dev27/spinta/datasets/backends/sql/ufuncs/query/components.py +205 -0
  229. spinta-0.2.dev27/spinta/datasets/backends/sql/ufuncs/query/helpers.py +71 -0
  230. spinta-0.2.dev27/spinta/datasets/backends/sql/ufuncs/query/ufuncs.py +884 -0
  231. spinta-0.2.dev27/spinta/datasets/backends/sql/ufuncs/result/components.py +19 -0
  232. spinta-0.2.dev27/spinta/datasets/backends/sql/ufuncs/result/ufuncs.py +29 -0
  233. spinta-0.2.dev27/spinta/datasets/backends/sql/ufuncs/ufuncs.py +40 -0
  234. spinta-0.2.dev27/spinta/datasets/backends/sqldump/commands/inspect.py +91 -0
  235. spinta-0.2.dev27/spinta/datasets/backends/sqldump/commands/load.py +17 -0
  236. spinta-0.2.dev27/spinta/datasets/backends/sqldump/ufuncs/ufuncs.py +24 -0
  237. spinta-0.2.dev27/spinta/datasets/backends/wsdl/components.py +27 -0
  238. spinta-0.2.dev27/spinta/datasets/commands/check.py +34 -0
  239. spinta-0.2.dev27/spinta/datasets/commands/error.py +32 -0
  240. spinta-0.2.dev27/spinta/datasets/commands/link.py +67 -0
  241. spinta-0.2.dev27/spinta/datasets/commands/load.py +149 -0
  242. spinta-0.2.dev27/spinta/datasets/commands/wipe.py +8 -0
  243. spinta-0.2.dev27/spinta/datasets/components.py +247 -0
  244. spinta-0.2.dev27/spinta/datasets/helpers.py +218 -0
  245. spinta-0.2.dev27/spinta/datasets/inspect/commands/merge.py +496 -0
  246. spinta-0.2.dev27/spinta/datasets/inspect/helpers.py +326 -0
  247. spinta-0.2.dev27/spinta/datasets/keymaps/components.py +50 -0
  248. spinta-0.2.dev27/spinta/datasets/keymaps/redis.py +182 -0
  249. spinta-0.2.dev27/spinta/datasets/keymaps/sqlalchemy.py +457 -0
  250. spinta-0.2.dev27/spinta/datasets/keymaps/sync.py +341 -0
  251. spinta-0.2.dev27/spinta/datasets/utils.py +77 -0
  252. spinta-0.2.dev27/spinta/dimensions/comments/helpers.py +32 -0
  253. spinta-0.2.dev27/spinta/dimensions/enum/commands.py +102 -0
  254. spinta-0.2.dev27/spinta/dimensions/enum/components.py +63 -0
  255. spinta-0.2.dev27/spinta/dimensions/enum/helpers.py +94 -0
  256. spinta-0.2.dev27/spinta/dimensions/enum/ufuncs.py +29 -0
  257. spinta-0.2.dev27/spinta/dimensions/lang/components.py +12 -0
  258. spinta-0.2.dev27/spinta/dimensions/param/components.py +22 -0
  259. spinta-0.2.dev27/spinta/dimensions/param/helpers.py +78 -0
  260. spinta-0.2.dev27/spinta/dimensions/param/ufuncs.py +147 -0
  261. spinta-0.2.dev27/spinta/dimensions/prefix/commands/load.py +17 -0
  262. spinta-0.2.dev27/spinta/dimensions/prefix/helpers.py +34 -0
  263. spinta-0.2.dev27/spinta/dimensions/scope/components.py +64 -0
  264. spinta-0.2.dev27/spinta/dimensions/scope/helpers.py +65 -0
  265. spinta-0.2.dev27/spinta/dimensions/scope/ufuncs.py +51 -0
  266. spinta-0.2.dev27/spinta/dispatcher.py +122 -0
  267. spinta-0.2.dev27/spinta/exceptions.py +1267 -0
  268. spinta-0.2.dev27/spinta/fetcher.py +46 -0
  269. spinta-0.2.dev27/spinta/formats/ascii/commands.py +79 -0
  270. spinta-0.2.dev27/spinta/formats/ascii/components.py +87 -0
  271. spinta-0.2.dev27/spinta/formats/csv/commands.py +102 -0
  272. spinta-0.2.dev27/spinta/formats/helpers.py +217 -0
  273. spinta-0.2.dev27/spinta/formats/html/commands.py +938 -0
  274. spinta-0.2.dev27/spinta/formats/html/components.py +41 -0
  275. spinta-0.2.dev27/spinta/formats/html/helpers.py +354 -0
  276. spinta-0.2.dev27/spinta/formats/json/commands.py +85 -0
  277. spinta-0.2.dev27/spinta/formats/json/components.py +37 -0
  278. spinta-0.2.dev27/spinta/formats/jsonlines/commands.py +72 -0
  279. spinta-0.2.dev27/spinta/formats/rdf/commands.py +831 -0
  280. spinta-0.2.dev27/spinta/formats/xlsx/commands.py +79 -0
  281. spinta-0.2.dev27/spinta/hacks/urlparams.py +35 -0
  282. spinta-0.2.dev27/spinta/handlers.py +52 -0
  283. spinta-0.2.dev27/spinta/logging_config.py +35 -0
  284. spinta-0.2.dev27/spinta/manifests/backend/commands/load.py +17 -0
  285. spinta-0.2.dev27/spinta/manifests/backend/commands/migrate.py +14 -0
  286. spinta-0.2.dev27/spinta/manifests/backend/commands/sync.py +21 -0
  287. spinta-0.2.dev27/spinta/manifests/backend/helpers.py +243 -0
  288. spinta-0.2.dev27/spinta/manifests/commands/error.py +38 -0
  289. spinta-0.2.dev27/spinta/manifests/commands/inspect.py +33 -0
  290. spinta-0.2.dev27/spinta/manifests/commands/read.py +184 -0
  291. spinta-0.2.dev27/spinta/manifests/components.py +95 -0
  292. spinta-0.2.dev27/spinta/manifests/dict/commands/configure.py +16 -0
  293. spinta-0.2.dev27/spinta/manifests/dict/commands/load.py +44 -0
  294. spinta-0.2.dev27/spinta/manifests/dict/helpers.py +731 -0
  295. spinta-0.2.dev27/spinta/manifests/helpers.py +434 -0
  296. spinta-0.2.dev27/spinta/manifests/internal_sql/commands/auth.py +122 -0
  297. spinta-0.2.dev27/spinta/manifests/internal_sql/commands/bootstrap.py +22 -0
  298. spinta-0.2.dev27/spinta/manifests/internal_sql/commands/configure.py +21 -0
  299. spinta-0.2.dev27/spinta/manifests/internal_sql/commands/load.py +81 -0
  300. spinta-0.2.dev27/spinta/manifests/internal_sql/commands/read.py +131 -0
  301. spinta-0.2.dev27/spinta/manifests/internal_sql/components.py +100 -0
  302. spinta-0.2.dev27/spinta/manifests/internal_sql/helpers.py +1415 -0
  303. spinta-0.2.dev27/spinta/manifests/mermaid/helpers.py +329 -0
  304. spinta-0.2.dev27/spinta/manifests/open_api/helpers.py +363 -0
  305. spinta-0.2.dev27/spinta/manifests/open_api/openapi_generator.py +942 -0
  306. spinta-0.2.dev27/spinta/manifests/rdf/helpers.py +473 -0
  307. spinta-0.2.dev27/spinta/manifests/sql/components.py +25 -0
  308. spinta-0.2.dev27/spinta/manifests/sql/helpers.py +483 -0
  309. spinta-0.2.dev27/spinta/manifests/tabular/commands/configure.py +21 -0
  310. spinta-0.2.dev27/spinta/manifests/tabular/commands/load.py +75 -0
  311. spinta-0.2.dev27/spinta/manifests/tabular/components.py +315 -0
  312. spinta-0.2.dev27/spinta/manifests/tabular/formats/gsheets.py +37 -0
  313. spinta-0.2.dev27/spinta/manifests/tabular/helpers.py +3081 -0
  314. spinta-0.2.dev27/spinta/manifests/xsd/commands/load.py +56 -0
  315. spinta-0.2.dev27/spinta/manifests/xsd/helpers.py +1309 -0
  316. spinta-0.2.dev27/spinta/manifests/yaml/commands/configure.py +31 -0
  317. spinta-0.2.dev27/spinta/manifests/yaml/commands/load.py +95 -0
  318. spinta-0.2.dev27/spinta/manifests/yaml/components.py +17 -0
  319. spinta-0.2.dev27/spinta/manifests/yaml/helpers.py +143 -0
  320. spinta-0.2.dev27/spinta/middlewares.py +55 -0
  321. spinta-0.2.dev27/spinta/naming/components.py +9 -0
  322. spinta-0.2.dev27/spinta/naming/helpers.py +131 -0
  323. spinta-0.2.dev27/spinta/naming/ufuncts.py +31 -0
  324. spinta-0.2.dev27/spinta/nodes.py +224 -0
  325. spinta-0.2.dev27/spinta/renderer.py +32 -0
  326. spinta-0.2.dev27/spinta/spyna.py +418 -0
  327. spinta-0.2.dev27/spinta/templates/base.html +73 -0
  328. spinta-0.2.dev27/spinta/testing/citus.py +94 -0
  329. spinta-0.2.dev27/spinta/testing/cli.py +78 -0
  330. spinta-0.2.dev27/spinta/testing/client.py +336 -0
  331. spinta-0.2.dev27/spinta/testing/config.py +91 -0
  332. spinta-0.2.dev27/spinta/testing/context.py +99 -0
  333. spinta-0.2.dev27/spinta/testing/data.py +264 -0
  334. spinta-0.2.dev27/spinta/testing/datasets.py +59 -0
  335. spinta-0.2.dev27/spinta/testing/dtypes.py +244 -0
  336. spinta-0.2.dev27/spinta/testing/migration.py +324 -0
  337. spinta-0.2.dev27/spinta/testing/pytest.py +341 -0
  338. spinta-0.2.dev27/spinta/testing/request.py +87 -0
  339. spinta-0.2.dev27/spinta/testing/tabular.py +35 -0
  340. spinta-0.2.dev27/spinta/testing/utils.py +171 -0
  341. spinta-0.2.dev27/spinta/types/array/check.py +48 -0
  342. spinta-0.2.dev27/spinta/types/array/link.py +99 -0
  343. spinta-0.2.dev27/spinta/types/backref/link.py +123 -0
  344. spinta-0.2.dev27/spinta/types/command.py +38 -0
  345. spinta-0.2.dev27/spinta/types/config.py +165 -0
  346. spinta-0.2.dev27/spinta/types/datatype.py +635 -0
  347. spinta-0.2.dev27/spinta/types/denorm/link.py +64 -0
  348. spinta-0.2.dev27/spinta/types/file/decode.py +31 -0
  349. spinta-0.2.dev27/spinta/types/geometry/helpers.py +76 -0
  350. spinta-0.2.dev27/spinta/types/geometry/load.py +60 -0
  351. spinta-0.2.dev27/spinta/types/helpers.py +201 -0
  352. spinta-0.2.dev27/spinta/types/model.py +829 -0
  353. spinta-0.2.dev27/spinta/types/namespace.py +329 -0
  354. spinta-0.2.dev27/spinta/types/partial/link.py +63 -0
  355. spinta-0.2.dev27/spinta/types/ref/link.py +56 -0
  356. spinta-0.2.dev27/spinta/types/store.py +165 -0
  357. spinta-0.2.dev27/spinta/types/text/components.py +10 -0
  358. spinta-0.2.dev27/spinta/typing.py +17 -0
  359. spinta-0.2.dev27/spinta/ufuncs/binds.py +31 -0
  360. spinta-0.2.dev27/spinta/ufuncs/changebase/components.py +9 -0
  361. spinta-0.2.dev27/spinta/ufuncs/changebase/helpers.py +48 -0
  362. spinta-0.2.dev27/spinta/ufuncs/changebase/ufuncs.py +31 -0
  363. spinta-0.2.dev27/spinta/ufuncs/common.py +68 -0
  364. spinta-0.2.dev27/spinta/ufuncs/components.py +174 -0
  365. spinta-0.2.dev27/spinta/ufuncs/helpers.py +18 -0
  366. spinta-0.2.dev27/spinta/ufuncs/linkbuilder/components.py +15 -0
  367. spinta-0.2.dev27/spinta/ufuncs/linkbuilder/ufuncs.py +38 -0
  368. spinta-0.2.dev27/spinta/ufuncs/loadbuilder/components.py +80 -0
  369. spinta-0.2.dev27/spinta/ufuncs/loadbuilder/helpers.py +27 -0
  370. spinta-0.2.dev27/spinta/ufuncs/loadbuilder/ufuncs.py +97 -0
  371. spinta-0.2.dev27/spinta/ufuncs/propertyresolver/ufuncs.py +271 -0
  372. spinta-0.2.dev27/spinta/ufuncs/querybuilder/components.py +171 -0
  373. spinta-0.2.dev27/spinta/ufuncs/querybuilder/helpers.py +205 -0
  374. spinta-0.2.dev27/spinta/ufuncs/querybuilder/ufuncs.py +524 -0
  375. spinta-0.2.dev27/spinta/ufuncs/requestparamsbuilder/components.py +13 -0
  376. spinta-0.2.dev27/spinta/ufuncs/requestparamsbuilder/helpers.py +8 -0
  377. spinta-0.2.dev27/spinta/ufuncs/requestparamsbuilder/ufuncs.py +156 -0
  378. spinta-0.2.dev27/spinta/ufuncs/resultbuilder/helpers.py +152 -0
  379. spinta-0.2.dev27/spinta/ufuncs/resultbuilder/ufuncs.py +216 -0
  380. spinta-0.2.dev27/spinta/ufuncs/summaryenv/ufuncs.py +31 -0
  381. spinta-0.2.dev27/spinta/units/helpers.py +167 -0
  382. spinta-0.2.dev27/spinta/urlparams.py +585 -0
  383. spinta-0.2.dev27/spinta/utils/__init__.py +4 -0
  384. spinta-0.2.dev27/spinta/utils/aiotools.py +89 -0
  385. spinta-0.2.dev27/spinta/utils/config.py +46 -0
  386. spinta-0.2.dev27/spinta/utils/enums.py +58 -0
  387. spinta-0.2.dev27/spinta/utils/errors.py +22 -0
  388. spinta-0.2.dev27/spinta/utils/imports.py +21 -0
  389. spinta-0.2.dev27/spinta/utils/itertools.py +113 -0
  390. spinta-0.2.dev27/spinta/utils/json.py +31 -0
  391. spinta-0.2.dev27/spinta/utils/nestedstruct.py +277 -0
  392. spinta-0.2.dev27/spinta/utils/path.py +38 -0
  393. spinta-0.2.dev27/spinta/utils/response.py +411 -0
  394. spinta-0.2.dev27/spinta/utils/schema.py +96 -0
  395. spinta-0.2.dev27/spinta/utils/scopes.py +28 -0
  396. spinta-0.2.dev27/spinta/utils/sqlalchemy.py +52 -0
  397. spinta-0.2.dev27/spinta/utils/sqlite.py +144 -0
  398. spinta-0.2.dev27/spinta/utils/streams.py +25 -0
  399. spinta-0.2.dev27/spinta/utils/tree.py +26 -0
  400. spinta-0.2.dev27/spinta/utils/url.py +127 -0
  401. spinta-0.2.dev25/PKG-INFO +0 -307
  402. spinta-0.2.dev25/pyproject.toml +0 -180
  403. spinta-0.2.dev25/spinta/accesslog/__init__.py +0 -212
  404. spinta-0.2.dev25/spinta/accesslog/file.py +0 -79
  405. spinta-0.2.dev25/spinta/accesslog/python.py +0 -24
  406. spinta-0.2.dev25/spinta/adapters/soap_plugins.py +0 -122
  407. spinta-0.2.dev25/spinta/api/__init__.py +0 -491
  408. spinta-0.2.dev25/spinta/api/inspect.py +0 -181
  409. spinta-0.2.dev25/spinta/api/schema.py +0 -208
  410. spinta-0.2.dev25/spinta/api/validators.py +0 -26
  411. spinta-0.2.dev25/spinta/asgi.py +0 -24
  412. spinta-0.2.dev25/spinta/auth.py +0 -1280
  413. spinta-0.2.dev25/spinta/backends/__init__.py +0 -2027
  414. spinta-0.2.dev25/spinta/backends/components.py +0 -67
  415. spinta-0.2.dev25/spinta/backends/fs/commands/bootstrap.py +0 -8
  416. spinta-0.2.dev25/spinta/backends/fs/commands/changes.py +0 -18
  417. spinta-0.2.dev25/spinta/backends/fs/commands/decode.py +0 -14
  418. spinta-0.2.dev25/spinta/backends/fs/commands/encode.py +0 -38
  419. spinta-0.2.dev25/spinta/backends/fs/commands/init.py +0 -29
  420. spinta-0.2.dev25/spinta/backends/fs/commands/load.py +0 -11
  421. spinta-0.2.dev25/spinta/backends/fs/commands/migrate.py +0 -9
  422. spinta-0.2.dev25/spinta/backends/fs/commands/read.py +0 -58
  423. spinta-0.2.dev25/spinta/backends/fs/commands/validate.py +0 -73
  424. spinta-0.2.dev25/spinta/backends/fs/commands/wait.py +0 -8
  425. spinta-0.2.dev25/spinta/backends/fs/commands/wipe.py +0 -17
  426. spinta-0.2.dev25/spinta/backends/fs/commands/write.py +0 -118
  427. spinta-0.2.dev25/spinta/backends/helpers.py +0 -630
  428. spinta-0.2.dev25/spinta/backends/memory/commands/bootstrap.py +0 -8
  429. spinta-0.2.dev25/spinta/backends/memory/commands/init.py +0 -13
  430. spinta-0.2.dev25/spinta/backends/memory/commands/load.py +0 -10
  431. spinta-0.2.dev25/spinta/backends/memory/commands/read.py +0 -42
  432. spinta-0.2.dev25/spinta/backends/memory/commands/wait.py +0 -8
  433. spinta-0.2.dev25/spinta/backends/memory/commands/wipe.py +0 -10
  434. spinta-0.2.dev25/spinta/backends/memory/components.py +0 -88
  435. spinta-0.2.dev25/spinta/backends/mongo/commands/bootstrap.py +0 -8
  436. spinta-0.2.dev25/spinta/backends/mongo/commands/changes.py +0 -38
  437. spinta-0.2.dev25/spinta/backends/mongo/commands/encode.py +0 -24
  438. spinta-0.2.dev25/spinta/backends/mongo/commands/init.py +0 -10
  439. spinta-0.2.dev25/spinta/backends/mongo/commands/load.py +0 -16
  440. spinta-0.2.dev25/spinta/backends/mongo/commands/migrate.py +0 -9
  441. spinta-0.2.dev25/spinta/backends/mongo/commands/read.py +0 -131
  442. spinta-0.2.dev25/spinta/backends/mongo/commands/validate.py +0 -45
  443. spinta-0.2.dev25/spinta/backends/mongo/commands/wait.py +0 -9
  444. spinta-0.2.dev25/spinta/backends/mongo/commands/wipe.py +0 -23
  445. spinta-0.2.dev25/spinta/backends/mongo/commands/write.py +0 -153
  446. spinta-0.2.dev25/spinta/backends/mongo/components.py +0 -72
  447. spinta-0.2.dev25/spinta/backends/mongo/helpers.py +0 -7
  448. spinta-0.2.dev25/spinta/backends/mongo/types/array/write.py +0 -24
  449. spinta-0.2.dev25/spinta/backends/mongo/types/file/write.py +0 -30
  450. spinta-0.2.dev25/spinta/backends/mongo/types/object/write.py +0 -29
  451. spinta-0.2.dev25/spinta/backends/mongo/ufuncs/components.py +0 -100
  452. spinta-0.2.dev25/spinta/backends/mongo/ufuncs/ufuncs.py +0 -540
  453. spinta-0.2.dev25/spinta/backends/nobackend/commands/load.py +0 -14
  454. spinta-0.2.dev25/spinta/backends/nobackend/commands/read.py +0 -35
  455. spinta-0.2.dev25/spinta/backends/nobackend/commands/wait.py +0 -8
  456. spinta-0.2.dev25/spinta/backends/nobackend/commands/wipe.py +0 -9
  457. spinta-0.2.dev25/spinta/backends/nobackend/commands/write.py +0 -60
  458. spinta-0.2.dev25/spinta/backends/postgresql/commands/bootstrap.py +0 -30
  459. spinta-0.2.dev25/spinta/backends/postgresql/commands/changes.py +0 -124
  460. spinta-0.2.dev25/spinta/backends/postgresql/commands/column.py +0 -172
  461. spinta-0.2.dev25/spinta/backends/postgresql/commands/encode.py +0 -69
  462. spinta-0.2.dev25/spinta/backends/postgresql/commands/load.py +0 -26
  463. spinta-0.2.dev25/spinta/backends/postgresql/commands/migrate/migrate.py +0 -190
  464. spinta-0.2.dev25/spinta/backends/postgresql/commands/migrate/model.py +0 -854
  465. spinta-0.2.dev25/spinta/backends/postgresql/commands/migrate/property.py +0 -76
  466. spinta-0.2.dev25/spinta/backends/postgresql/commands/migrate/types/array.py +0 -201
  467. spinta-0.2.dev25/spinta/backends/postgresql/commands/migrate/types/datatype.py +0 -381
  468. spinta-0.2.dev25/spinta/backends/postgresql/commands/migrate/types/file.py +0 -113
  469. spinta-0.2.dev25/spinta/backends/postgresql/commands/migrate/types/object.py +0 -58
  470. spinta-0.2.dev25/spinta/backends/postgresql/commands/migrate/types/ref.py +0 -687
  471. spinta-0.2.dev25/spinta/backends/postgresql/commands/migrate/types/string.py +0 -145
  472. spinta-0.2.dev25/spinta/backends/postgresql/commands/migrate/types/text.py +0 -144
  473. spinta-0.2.dev25/spinta/backends/postgresql/commands/read.py +0 -86
  474. spinta-0.2.dev25/spinta/backends/postgresql/commands/redirect.py +0 -48
  475. spinta-0.2.dev25/spinta/backends/postgresql/commands/summary.py +0 -455
  476. spinta-0.2.dev25/spinta/backends/postgresql/commands/validate.py +0 -17
  477. spinta-0.2.dev25/spinta/backends/postgresql/commands/wait.py +0 -21
  478. spinta-0.2.dev25/spinta/backends/postgresql/commands/wipe.py +0 -64
  479. spinta-0.2.dev25/spinta/backends/postgresql/commands/write.py +0 -341
  480. spinta-0.2.dev25/spinta/backends/postgresql/components.py +0 -165
  481. spinta-0.2.dev25/spinta/backends/postgresql/files.py +0 -224
  482. spinta-0.2.dev25/spinta/backends/postgresql/helpers/__init__.py +0 -56
  483. spinta-0.2.dev25/spinta/backends/postgresql/helpers/changes.py +0 -44
  484. spinta-0.2.dev25/spinta/backends/postgresql/helpers/exceptions.py +0 -62
  485. spinta-0.2.dev25/spinta/backends/postgresql/helpers/migrate/actions.py +0 -657
  486. spinta-0.2.dev25/spinta/backends/postgresql/helpers/migrate/citus.py +0 -383
  487. spinta-0.2.dev25/spinta/backends/postgresql/helpers/migrate/migrate.py +0 -1529
  488. spinta-0.2.dev25/spinta/backends/postgresql/helpers/migrate/name.py +0 -219
  489. spinta-0.2.dev25/spinta/backends/postgresql/helpers/name.py +0 -109
  490. spinta-0.2.dev25/spinta/backends/postgresql/helpers/type.py +0 -13
  491. spinta-0.2.dev25/spinta/backends/postgresql/helpers/validate.py +0 -35
  492. spinta-0.2.dev25/spinta/backends/postgresql/sqlalchemy.py +0 -19
  493. spinta-0.2.dev25/spinta/backends/postgresql/types/array/init.py +0 -68
  494. spinta-0.2.dev25/spinta/backends/postgresql/types/array/wipe.py +0 -13
  495. spinta-0.2.dev25/spinta/backends/postgresql/types/array/write.py +0 -138
  496. spinta-0.2.dev25/spinta/backends/postgresql/types/denorm/init.py +0 -11
  497. spinta-0.2.dev25/spinta/backends/postgresql/types/external_ref/init.py +0 -68
  498. spinta-0.2.dev25/spinta/backends/postgresql/types/file/init.py +0 -78
  499. spinta-0.2.dev25/spinta/backends/postgresql/types/file/read.py +0 -85
  500. spinta-0.2.dev25/spinta/backends/postgresql/types/file/write.py +0 -147
  501. spinta-0.2.dev25/spinta/backends/postgresql/types/geometry/encode.py +0 -51
  502. spinta-0.2.dev25/spinta/backends/postgresql/types/geometry/write.py +0 -13
  503. spinta-0.2.dev25/spinta/backends/postgresql/types/object/init.py +0 -20
  504. spinta-0.2.dev25/spinta/backends/postgresql/types/object/read.py +0 -67
  505. spinta-0.2.dev25/spinta/backends/postgresql/types/object/wipe.py +0 -10
  506. spinta-0.2.dev25/spinta/backends/postgresql/types/ref/init.py +0 -80
  507. spinta-0.2.dev25/spinta/backends/postgresql/types/ref/validate.py +0 -30
  508. spinta-0.2.dev25/spinta/backends/postgresql/types/text/init.py +0 -27
  509. spinta-0.2.dev25/spinta/backends/postgresql/ufuncs/query/components.py +0 -318
  510. spinta-0.2.dev25/spinta/backends/postgresql/ufuncs/query/ufuncs.py +0 -1300
  511. spinta-0.2.dev25/spinta/backends/postgresql/ufuncs/result/components.py +0 -18
  512. spinta-0.2.dev25/spinta/backends/postgresql/ufuncs/result/ufuncs.py +0 -24
  513. spinta-0.2.dev25/spinta/cli/admin.py +0 -96
  514. spinta-0.2.dev25/spinta/cli/auth.py +0 -186
  515. spinta-0.2.dev25/spinta/cli/comment.py +0 -113
  516. spinta-0.2.dev25/spinta/cli/data.py +0 -195
  517. spinta-0.2.dev25/spinta/cli/get.py +0 -30
  518. spinta-0.2.dev25/spinta/cli/helpers/admin/registry.py +0 -49
  519. spinta-0.2.dev25/spinta/cli/helpers/admin/scripts/changelog.py +0 -414
  520. spinta-0.2.dev25/spinta/cli/helpers/admin/scripts/citus_shard.py +0 -126
  521. spinta-0.2.dev25/spinta/cli/helpers/admin/scripts/deduplicate.py +0 -259
  522. spinta-0.2.dev25/spinta/cli/helpers/admin/scripts/enums.py +0 -148
  523. spinta-0.2.dev25/spinta/cli/helpers/admin/scripts/remove_local_ids.py +0 -55
  524. spinta-0.2.dev25/spinta/cli/helpers/auth.py +0 -33
  525. spinta-0.2.dev25/spinta/cli/helpers/data.py +0 -180
  526. spinta-0.2.dev25/spinta/cli/helpers/export/backends/postgresql/commands.py +0 -168
  527. spinta-0.2.dev25/spinta/cli/helpers/export/backends/postgresql/components.py +0 -58
  528. spinta-0.2.dev25/spinta/cli/helpers/export/backends/postgresql/helpers.py +0 -126
  529. spinta-0.2.dev25/spinta/cli/helpers/export/commands.py +0 -332
  530. spinta-0.2.dev25/spinta/cli/helpers/export/helpers.py +0 -124
  531. spinta-0.2.dev25/spinta/cli/helpers/migrate.py +0 -19
  532. spinta-0.2.dev25/spinta/cli/helpers/push/__init__.py +0 -70
  533. spinta-0.2.dev25/spinta/cli/helpers/push/components.py +0 -113
  534. spinta-0.2.dev25/spinta/cli/helpers/push/delete.py +0 -123
  535. spinta-0.2.dev25/spinta/cli/helpers/push/error.py +0 -152
  536. spinta-0.2.dev25/spinta/cli/helpers/push/read.py +0 -356
  537. spinta-0.2.dev25/spinta/cli/helpers/push/state.py +0 -219
  538. spinta-0.2.dev25/spinta/cli/helpers/push/sync.py +0 -314
  539. spinta-0.2.dev25/spinta/cli/helpers/push/utils.py +0 -171
  540. spinta-0.2.dev25/spinta/cli/helpers/push/write.py +0 -437
  541. spinta-0.2.dev25/spinta/cli/helpers/script/core.py +0 -99
  542. spinta-0.2.dev25/spinta/cli/helpers/script/helpers.py +0 -70
  543. spinta-0.2.dev25/spinta/cli/helpers/script/registry.py +0 -93
  544. spinta-0.2.dev25/spinta/cli/helpers/store.py +0 -166
  545. spinta-0.2.dev25/spinta/cli/helpers/sync/api_helpers.py +0 -55
  546. spinta-0.2.dev25/spinta/cli/helpers/sync/controllers/data_service.py +0 -26
  547. spinta-0.2.dev25/spinta/cli/helpers/sync/controllers/dataset.py +0 -79
  548. spinta-0.2.dev25/spinta/cli/helpers/sync/controllers/distribution.py +0 -29
  549. spinta-0.2.dev25/spinta/cli/helpers/sync/controllers/dsa.py +0 -39
  550. spinta-0.2.dev25/spinta/cli/helpers/sync/controllers/synchronization/connection.py +0 -18
  551. spinta-0.2.dev25/spinta/cli/helpers/sync/controllers/synchronization/manifest_catalog_to_agent.py +0 -155
  552. spinta-0.2.dev25/spinta/cli/helpers/sync/helpers.py +0 -203
  553. spinta-0.2.dev25/spinta/cli/helpers/typer.py +0 -11
  554. spinta-0.2.dev25/spinta/cli/helpers/upgrade/registry.py +0 -102
  555. spinta-0.2.dev25/spinta/cli/helpers/upgrade/scripts/backends/postgresql/comments.py +0 -295
  556. spinta-0.2.dev25/spinta/cli/helpers/upgrade/scripts/backends/postgresql/schemas.py +0 -314
  557. spinta-0.2.dev25/spinta/cli/helpers/upgrade/scripts/clients.py +0 -213
  558. spinta-0.2.dev25/spinta/cli/helpers/upgrade/scripts/keymaps/sqlalchemy/helpers.py +0 -49
  559. spinta-0.2.dev25/spinta/cli/helpers/upgrade/scripts/keymaps/sqlalchemy/initial_setup.py +0 -25
  560. spinta-0.2.dev25/spinta/cli/helpers/upgrade/scripts/keymaps/sqlalchemy/modified_time.py +0 -49
  561. spinta-0.2.dev25/spinta/cli/helpers/upgrade/scripts/keymaps/sqlalchemy/redirect_support.py +0 -99
  562. spinta-0.2.dev25/spinta/cli/helpers/upgrade/scripts/redirect.py +0 -87
  563. spinta-0.2.dev25/spinta/cli/init.py +0 -21
  564. spinta-0.2.dev25/spinta/cli/inspect.py +0 -60
  565. spinta-0.2.dev25/spinta/cli/keymap.py +0 -130
  566. spinta-0.2.dev25/spinta/cli/main.py +0 -116
  567. spinta-0.2.dev25/spinta/cli/migrate.py +0 -93
  568. spinta-0.2.dev25/spinta/cli/pii.py +0 -258
  569. spinta-0.2.dev25/spinta/cli/pull.py +0 -106
  570. spinta-0.2.dev25/spinta/cli/push.py +0 -231
  571. spinta-0.2.dev25/spinta/cli/server.py +0 -54
  572. spinta-0.2.dev25/spinta/cli/show.py +0 -26
  573. spinta-0.2.dev25/spinta/cli/sync.py +0 -62
  574. spinta-0.2.dev25/spinta/cli/uncomment.py +0 -110
  575. spinta-0.2.dev25/spinta/cli/upgrade.py +0 -94
  576. spinta-0.2.dev25/spinta/client.py +0 -171
  577. spinta-0.2.dev25/spinta/commands/__init__.py +0 -1381
  578. spinta-0.2.dev25/spinta/commands/read.py +0 -605
  579. spinta-0.2.dev25/spinta/commands/search.py +0 -92
  580. spinta-0.2.dev25/spinta/commands/write.py +0 -1439
  581. spinta-0.2.dev25/spinta/compat.py +0 -111
  582. spinta-0.2.dev25/spinta/components.py +0 -1160
  583. spinta-0.2.dev25/spinta/config.py +0 -356
  584. spinta-0.2.dev25/spinta/config.yml +0 -223
  585. spinta-0.2.dev25/spinta/core/access.py +0 -89
  586. spinta-0.2.dev25/spinta/core/config.py +0 -666
  587. spinta-0.2.dev25/spinta/core/context.py +0 -70
  588. spinta-0.2.dev25/spinta/core/enums.py +0 -197
  589. spinta-0.2.dev25/spinta/core/ufuncs.py +0 -325
  590. spinta-0.2.dev25/spinta/datasets/backends/dataframe/backends/csv/commands/read.py +0 -33
  591. spinta-0.2.dev25/spinta/datasets/backends/dataframe/backends/json/commands/read.py +0 -191
  592. spinta-0.2.dev25/spinta/datasets/backends/dataframe/backends/soap/commands/read.py +0 -162
  593. spinta-0.2.dev25/spinta/datasets/backends/dataframe/backends/soap/components.py +0 -46
  594. spinta-0.2.dev25/spinta/datasets/backends/dataframe/backends/soap/ufuncs/ufuncs.py +0 -267
  595. spinta-0.2.dev25/spinta/datasets/backends/dataframe/backends/xml/commands/read.py +0 -163
  596. spinta-0.2.dev25/spinta/datasets/backends/dataframe/commands/read.py +0 -322
  597. spinta-0.2.dev25/spinta/datasets/backends/dataframe/ufuncs/query/components.py +0 -75
  598. spinta-0.2.dev25/spinta/datasets/backends/dataframe/ufuncs/query/ufuncs.py +0 -564
  599. spinta-0.2.dev25/spinta/datasets/backends/helpers.py +0 -202
  600. spinta-0.2.dev25/spinta/datasets/backends/notimpl/commands/load.py +0 -15
  601. spinta-0.2.dev25/spinta/datasets/backends/sql/backends/mariadb/ufuncs/query/components.py +0 -8
  602. spinta-0.2.dev25/spinta/datasets/backends/sql/backends/mysql/ufuncs/query/components.py +0 -8
  603. spinta-0.2.dev25/spinta/datasets/backends/sql/backends/oracle/helpers.py +0 -88
  604. spinta-0.2.dev25/spinta/datasets/backends/sql/backends/oracle/types/geometry/encode.py +0 -40
  605. spinta-0.2.dev25/spinta/datasets/backends/sql/backends/oracle/ufuncs/query/components.py +0 -8
  606. spinta-0.2.dev25/spinta/datasets/backends/sql/backends/oracle/ufuncs/query/ufuncs.py +0 -52
  607. spinta-0.2.dev25/spinta/datasets/backends/sql/backends/postgresql/helpers.py +0 -15
  608. spinta-0.2.dev25/spinta/datasets/backends/sql/backends/postgresql/ufuncs/query/ufuncs.py +0 -57
  609. spinta-0.2.dev25/spinta/datasets/backends/sql/backends/sas/commands/__init__.py +0 -12
  610. spinta-0.2.dev25/spinta/datasets/backends/sql/backends/sas/commands/cast.py +0 -50
  611. spinta-0.2.dev25/spinta/datasets/backends/sql/backends/sas/commands/load.py +0 -48
  612. spinta-0.2.dev25/spinta/datasets/backends/sql/backends/sas/commands/read.py +0 -178
  613. spinta-0.2.dev25/spinta/datasets/backends/sql/backends/sas/constants.py +0 -73
  614. spinta-0.2.dev25/spinta/datasets/backends/sql/backends/sas/dialect.py +0 -422
  615. spinta-0.2.dev25/spinta/datasets/backends/sql/backends/sas/formats.py +0 -428
  616. spinta-0.2.dev25/spinta/datasets/backends/sql/backends/sas/helpers.py +0 -123
  617. spinta-0.2.dev25/spinta/datasets/backends/sql/backends/sas/introspection.py +0 -309
  618. spinta-0.2.dev25/spinta/datasets/backends/sql/backends/sas/types.py +0 -151
  619. spinta-0.2.dev25/spinta/datasets/backends/sql/backends/sas/ufuncs/query/components.py +0 -6
  620. spinta-0.2.dev25/spinta/datasets/backends/sql/backends/sas/ufuncs/query/ufuncs.py +0 -74
  621. spinta-0.2.dev25/spinta/datasets/backends/sql/backends/sqlite/ufuncs/query/ufuncs.py +0 -23
  622. spinta-0.2.dev25/spinta/datasets/backends/sql/commands/cast.py +0 -181
  623. spinta-0.2.dev25/spinta/datasets/backends/sql/commands/column.py +0 -51
  624. spinta-0.2.dev25/spinta/datasets/backends/sql/commands/load.py +0 -20
  625. spinta-0.2.dev25/spinta/datasets/backends/sql/commands/read.py +0 -161
  626. spinta-0.2.dev25/spinta/datasets/backends/sql/components.py +0 -69
  627. spinta-0.2.dev25/spinta/datasets/backends/sql/helpers.py +0 -0
  628. spinta-0.2.dev25/spinta/datasets/backends/sql/ufuncs/query/components.py +0 -211
  629. spinta-0.2.dev25/spinta/datasets/backends/sql/ufuncs/query/helpers.py +0 -71
  630. spinta-0.2.dev25/spinta/datasets/backends/sql/ufuncs/query/ufuncs.py +0 -898
  631. spinta-0.2.dev25/spinta/datasets/backends/sql/ufuncs/result/components.py +0 -18
  632. spinta-0.2.dev25/spinta/datasets/backends/sql/ufuncs/result/ufuncs.py +0 -29
  633. spinta-0.2.dev25/spinta/datasets/backends/sql/ufuncs/ufuncs.py +0 -41
  634. spinta-0.2.dev25/spinta/datasets/backends/sqldump/commands/inspect.py +0 -103
  635. spinta-0.2.dev25/spinta/datasets/backends/sqldump/commands/load.py +0 -18
  636. spinta-0.2.dev25/spinta/datasets/backends/sqldump/ufuncs/ufuncs.py +0 -27
  637. spinta-0.2.dev25/spinta/datasets/backends/wsdl/components.py +0 -26
  638. spinta-0.2.dev25/spinta/datasets/commands/check.py +0 -35
  639. spinta-0.2.dev25/spinta/datasets/commands/error.py +0 -32
  640. spinta-0.2.dev25/spinta/datasets/commands/link.py +0 -67
  641. spinta-0.2.dev25/spinta/datasets/commands/load.py +0 -156
  642. spinta-0.2.dev25/spinta/datasets/commands/wipe.py +0 -9
  643. spinta-0.2.dev25/spinta/datasets/components.py +0 -253
  644. spinta-0.2.dev25/spinta/datasets/helpers.py +0 -224
  645. spinta-0.2.dev25/spinta/datasets/inspect/commands/merge.py +0 -498
  646. spinta-0.2.dev25/spinta/datasets/inspect/helpers.py +0 -336
  647. spinta-0.2.dev25/spinta/datasets/keymaps/components.py +0 -50
  648. spinta-0.2.dev25/spinta/datasets/keymaps/redis.py +0 -183
  649. spinta-0.2.dev25/spinta/datasets/keymaps/sqlalchemy.py +0 -458
  650. spinta-0.2.dev25/spinta/datasets/keymaps/sync.py +0 -341
  651. spinta-0.2.dev25/spinta/datasets/utils.py +0 -80
  652. spinta-0.2.dev25/spinta/dimensions/comments/helpers.py +0 -34
  653. spinta-0.2.dev25/spinta/dimensions/enum/commands.py +0 -107
  654. spinta-0.2.dev25/spinta/dimensions/enum/components.py +0 -64
  655. spinta-0.2.dev25/spinta/dimensions/enum/helpers.py +0 -106
  656. spinta-0.2.dev25/spinta/dimensions/enum/ufuncs.py +0 -29
  657. spinta-0.2.dev25/spinta/dimensions/lang/components.py +0 -13
  658. spinta-0.2.dev25/spinta/dimensions/param/components.py +0 -22
  659. spinta-0.2.dev25/spinta/dimensions/param/helpers.py +0 -78
  660. spinta-0.2.dev25/spinta/dimensions/param/ufuncs.py +0 -149
  661. spinta-0.2.dev25/spinta/dimensions/prefix/commands/load.py +0 -19
  662. spinta-0.2.dev25/spinta/dimensions/prefix/helpers.py +0 -36
  663. spinta-0.2.dev25/spinta/dimensions/scope/components.py +0 -64
  664. spinta-0.2.dev25/spinta/dimensions/scope/helpers.py +0 -56
  665. spinta-0.2.dev25/spinta/dimensions/scope/ufuncs.py +0 -51
  666. spinta-0.2.dev25/spinta/dispatcher.py +0 -129
  667. spinta-0.2.dev25/spinta/exceptions.py +0 -1250
  668. spinta-0.2.dev25/spinta/fetcher.py +0 -46
  669. spinta-0.2.dev25/spinta/formats/ascii/commands.py +0 -80
  670. spinta-0.2.dev25/spinta/formats/ascii/components.py +0 -87
  671. spinta-0.2.dev25/spinta/formats/csv/commands.py +0 -108
  672. spinta-0.2.dev25/spinta/formats/helpers.py +0 -232
  673. spinta-0.2.dev25/spinta/formats/html/commands.py +0 -933
  674. spinta-0.2.dev25/spinta/formats/html/components.py +0 -45
  675. spinta-0.2.dev25/spinta/formats/html/helpers.py +0 -278
  676. spinta-0.2.dev25/spinta/formats/json/commands.py +0 -85
  677. spinta-0.2.dev25/spinta/formats/json/components.py +0 -37
  678. spinta-0.2.dev25/spinta/formats/jsonlines/commands.py +0 -72
  679. spinta-0.2.dev25/spinta/formats/rdf/commands.py +0 -826
  680. spinta-0.2.dev25/spinta/formats/xlsx/commands.py +0 -84
  681. spinta-0.2.dev25/spinta/hacks/urlparams.py +0 -34
  682. spinta-0.2.dev25/spinta/handlers.py +0 -51
  683. spinta-0.2.dev25/spinta/logging_config.py +0 -35
  684. spinta-0.2.dev25/spinta/manifests/backend/commands/load.py +0 -17
  685. spinta-0.2.dev25/spinta/manifests/backend/commands/migrate.py +0 -15
  686. spinta-0.2.dev25/spinta/manifests/backend/commands/sync.py +0 -22
  687. spinta-0.2.dev25/spinta/manifests/backend/helpers.py +0 -251
  688. spinta-0.2.dev25/spinta/manifests/commands/error.py +0 -39
  689. spinta-0.2.dev25/spinta/manifests/commands/inspect.py +0 -35
  690. spinta-0.2.dev25/spinta/manifests/commands/read.py +0 -182
  691. spinta-0.2.dev25/spinta/manifests/components.py +0 -107
  692. spinta-0.2.dev25/spinta/manifests/dict/commands/configure.py +0 -16
  693. spinta-0.2.dev25/spinta/manifests/dict/commands/load.py +0 -44
  694. spinta-0.2.dev25/spinta/manifests/dict/helpers.py +0 -734
  695. spinta-0.2.dev25/spinta/manifests/helpers.py +0 -443
  696. spinta-0.2.dev25/spinta/manifests/internal_sql/commands/auth.py +0 -121
  697. spinta-0.2.dev25/spinta/manifests/internal_sql/commands/bootstrap.py +0 -22
  698. spinta-0.2.dev25/spinta/manifests/internal_sql/commands/configure.py +0 -20
  699. spinta-0.2.dev25/spinta/manifests/internal_sql/commands/load.py +0 -81
  700. spinta-0.2.dev25/spinta/manifests/internal_sql/commands/read.py +0 -130
  701. spinta-0.2.dev25/spinta/manifests/internal_sql/components.py +0 -99
  702. spinta-0.2.dev25/spinta/manifests/internal_sql/helpers.py +0 -1415
  703. spinta-0.2.dev25/spinta/manifests/mermaid/helpers.py +0 -330
  704. spinta-0.2.dev25/spinta/manifests/open_api/helpers.py +0 -365
  705. spinta-0.2.dev25/spinta/manifests/open_api/openapi_generator.py +0 -942
  706. spinta-0.2.dev25/spinta/manifests/rdf/helpers.py +0 -473
  707. spinta-0.2.dev25/spinta/manifests/sql/components.py +0 -24
  708. spinta-0.2.dev25/spinta/manifests/sql/helpers.py +0 -490
  709. spinta-0.2.dev25/spinta/manifests/tabular/commands/configure.py +0 -23
  710. spinta-0.2.dev25/spinta/manifests/tabular/commands/load.py +0 -77
  711. spinta-0.2.dev25/spinta/manifests/tabular/components.py +0 -322
  712. spinta-0.2.dev25/spinta/manifests/tabular/formats/gsheets.py +0 -40
  713. spinta-0.2.dev25/spinta/manifests/tabular/helpers.py +0 -3078
  714. spinta-0.2.dev25/spinta/manifests/xsd/commands/load.py +0 -56
  715. spinta-0.2.dev25/spinta/manifests/xsd/helpers.py +0 -1310
  716. spinta-0.2.dev25/spinta/manifests/yaml/commands/configure.py +0 -32
  717. spinta-0.2.dev25/spinta/manifests/yaml/commands/load.py +0 -97
  718. spinta-0.2.dev25/spinta/manifests/yaml/components.py +0 -19
  719. spinta-0.2.dev25/spinta/manifests/yaml/helpers.py +0 -146
  720. spinta-0.2.dev25/spinta/middlewares.py +0 -31
  721. spinta-0.2.dev25/spinta/naming/components.py +0 -10
  722. spinta-0.2.dev25/spinta/naming/helpers.py +0 -136
  723. spinta-0.2.dev25/spinta/naming/ufuncts.py +0 -35
  724. spinta-0.2.dev25/spinta/nodes.py +0 -236
  725. spinta-0.2.dev25/spinta/renderer.py +0 -34
  726. spinta-0.2.dev25/spinta/spyna.py +0 -420
  727. spinta-0.2.dev25/spinta/templates/base.html +0 -75
  728. spinta-0.2.dev25/spinta/testing/citus.py +0 -96
  729. spinta-0.2.dev25/spinta/testing/cli.py +0 -80
  730. spinta-0.2.dev25/spinta/testing/client.py +0 -342
  731. spinta-0.2.dev25/spinta/testing/config.py +0 -91
  732. spinta-0.2.dev25/spinta/testing/context.py +0 -104
  733. spinta-0.2.dev25/spinta/testing/data.py +0 -271
  734. spinta-0.2.dev25/spinta/testing/datasets.py +0 -60
  735. spinta-0.2.dev25/spinta/testing/dtypes.py +0 -244
  736. spinta-0.2.dev25/spinta/testing/migration.py +0 -325
  737. spinta-0.2.dev25/spinta/testing/pytest.py +0 -343
  738. spinta-0.2.dev25/spinta/testing/request.py +0 -93
  739. spinta-0.2.dev25/spinta/testing/tabular.py +0 -37
  740. spinta-0.2.dev25/spinta/testing/utils.py +0 -173
  741. spinta-0.2.dev25/spinta/types/array/check.py +0 -48
  742. spinta-0.2.dev25/spinta/types/array/link.py +0 -99
  743. spinta-0.2.dev25/spinta/types/backref/link.py +0 -123
  744. spinta-0.2.dev25/spinta/types/command.py +0 -38
  745. spinta-0.2.dev25/spinta/types/config.py +0 -159
  746. spinta-0.2.dev25/spinta/types/datatype.py +0 -641
  747. spinta-0.2.dev25/spinta/types/denorm/link.py +0 -64
  748. spinta-0.2.dev25/spinta/types/file/decode.py +0 -31
  749. spinta-0.2.dev25/spinta/types/geometry/helpers.py +0 -77
  750. spinta-0.2.dev25/spinta/types/geometry/load.py +0 -63
  751. spinta-0.2.dev25/spinta/types/helpers.py +0 -156
  752. spinta-0.2.dev25/spinta/types/model.py +0 -811
  753. spinta-0.2.dev25/spinta/types/namespace.py +0 -342
  754. spinta-0.2.dev25/spinta/types/partial/link.py +0 -63
  755. spinta-0.2.dev25/spinta/types/ref/link.py +0 -57
  756. spinta-0.2.dev25/spinta/types/store.py +0 -167
  757. spinta-0.2.dev25/spinta/types/text/components.py +0 -11
  758. spinta-0.2.dev25/spinta/typing.py +0 -19
  759. spinta-0.2.dev25/spinta/ufuncs/binds.py +0 -36
  760. spinta-0.2.dev25/spinta/ufuncs/changebase/components.py +0 -10
  761. spinta-0.2.dev25/spinta/ufuncs/changebase/helpers.py +0 -50
  762. spinta-0.2.dev25/spinta/ufuncs/changebase/ufuncs.py +0 -35
  763. spinta-0.2.dev25/spinta/ufuncs/common.py +0 -68
  764. spinta-0.2.dev25/spinta/ufuncs/components.py +0 -177
  765. spinta-0.2.dev25/spinta/ufuncs/helpers.py +0 -19
  766. spinta-0.2.dev25/spinta/ufuncs/linkbuilder/components.py +0 -15
  767. spinta-0.2.dev25/spinta/ufuncs/linkbuilder/ufuncs.py +0 -38
  768. spinta-0.2.dev25/spinta/ufuncs/loadbuilder/components.py +0 -80
  769. spinta-0.2.dev25/spinta/ufuncs/loadbuilder/helpers.py +0 -26
  770. spinta-0.2.dev25/spinta/ufuncs/loadbuilder/ufuncs.py +0 -97
  771. spinta-0.2.dev25/spinta/ufuncs/propertyresolver/ufuncs.py +0 -271
  772. spinta-0.2.dev25/spinta/ufuncs/querybuilder/components.py +0 -171
  773. spinta-0.2.dev25/spinta/ufuncs/querybuilder/helpers.py +0 -205
  774. spinta-0.2.dev25/spinta/ufuncs/querybuilder/ufuncs.py +0 -524
  775. spinta-0.2.dev25/spinta/ufuncs/requestparamsbuilder/components.py +0 -13
  776. spinta-0.2.dev25/spinta/ufuncs/requestparamsbuilder/helpers.py +0 -8
  777. spinta-0.2.dev25/spinta/ufuncs/requestparamsbuilder/ufuncs.py +0 -156
  778. spinta-0.2.dev25/spinta/ufuncs/resultbuilder/helpers.py +0 -152
  779. spinta-0.2.dev25/spinta/ufuncs/resultbuilder/ufuncs.py +0 -207
  780. spinta-0.2.dev25/spinta/ufuncs/summaryenv/ufuncs.py +0 -31
  781. spinta-0.2.dev25/spinta/units/helpers.py +0 -171
  782. spinta-0.2.dev25/spinta/urlparams.py +0 -499
  783. spinta-0.2.dev25/spinta/utils/__init__.py +0 -2
  784. spinta-0.2.dev25/spinta/utils/aiotools.py +0 -90
  785. spinta-0.2.dev25/spinta/utils/config.py +0 -46
  786. spinta-0.2.dev25/spinta/utils/enums.py +0 -57
  787. spinta-0.2.dev25/spinta/utils/errors.py +0 -23
  788. spinta-0.2.dev25/spinta/utils/imports.py +0 -22
  789. spinta-0.2.dev25/spinta/utils/itertools.py +0 -118
  790. spinta-0.2.dev25/spinta/utils/json.py +0 -31
  791. spinta-0.2.dev25/spinta/utils/nestedstruct.py +0 -282
  792. spinta-0.2.dev25/spinta/utils/path.py +0 -38
  793. spinta-0.2.dev25/spinta/utils/response.py +0 -421
  794. spinta-0.2.dev25/spinta/utils/schema.py +0 -96
  795. spinta-0.2.dev25/spinta/utils/scopes.py +0 -29
  796. spinta-0.2.dev25/spinta/utils/sqlalchemy.py +0 -52
  797. spinta-0.2.dev25/spinta/utils/sqlite.py +0 -144
  798. spinta-0.2.dev25/spinta/utils/streams.py +0 -27
  799. spinta-0.2.dev25/spinta/utils/tree.py +0 -27
  800. spinta-0.2.dev25/spinta/utils/url.py +0 -117
  801. {spinta-0.2.dev25 → spinta-0.2.dev27}/LICENSE +0 -0
  802. {spinta-0.2.dev25 → spinta-0.2.dev27}/README.rst +0 -0
  803. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/__init__.py +0 -0
  804. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/__main__.py +0 -0
  805. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/adapters/__init__.py +0 -0
  806. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/adapters/rc/__init__.py +0 -0
  807. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/adapters/rc/signature_adapter.py +0 -0
  808. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/constants.py +0 -0
  809. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/fs/__init__.py +0 -0
  810. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/fs/commands/__init__.py +0 -0
  811. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/fs/components.py +0 -0
  812. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/memory/__init__.py +0 -0
  813. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/memory/commands/__init__.py +0 -0
  814. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/memory/commands/auth.py +0 -0
  815. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/memory/commands/changes.py +0 -0
  816. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/memory/commands/check.py +0 -0
  817. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/memory/commands/encode.py +0 -0
  818. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/memory/commands/manifest.py +0 -0
  819. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/memory/commands/write.py +0 -0
  820. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/mongo/__init__.py +0 -0
  821. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/mongo/commands/__init__.py +0 -0
  822. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/mongo/types/__init__.py +0 -0
  823. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/mongo/types/array/__init__.py +0 -0
  824. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/mongo/types/file/__init__.py +0 -0
  825. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/mongo/types/object/__init__.py +0 -0
  826. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/mongo/ufuncs/__init__.py +0 -0
  827. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/nobackend/__init__.py +0 -0
  828. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/nobackend/commands/__init__.py +0 -0
  829. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/nobackend/commands/bootstrap.py +0 -0
  830. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/nobackend/commands/changes.py +0 -0
  831. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/nobackend/commands/init.py +0 -0
  832. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/nobackend/components.py +0 -0
  833. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/postgresql/__init__.py +0 -0
  834. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/postgresql/commands/__init__.py +0 -0
  835. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/postgresql/commands/init.py +0 -0
  836. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/postgresql/commands/link.py +0 -0
  837. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/postgresql/commands/manifest.py +0 -0
  838. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/postgresql/commands/migrate/__init__.py +0 -0
  839. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/postgresql/commands/migrate/constants.py +0 -0
  840. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/postgresql/commands/migrate/types/__init__.py +0 -0
  841. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/postgresql/commands/migrate/types/geometry.py +0 -0
  842. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/postgresql/constants.py +0 -0
  843. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/postgresql/helpers/extractors.py +0 -0
  844. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/postgresql/helpers/manifest.py +0 -0
  845. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/postgresql/helpers/migrate/__init__.py +0 -0
  846. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/postgresql/helpers/migrate/cast.py +0 -0
  847. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/postgresql/helpers/redirect.py +0 -0
  848. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/postgresql/types/__init__.py +0 -0
  849. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/postgresql/types/array/__init__.py +0 -0
  850. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/postgresql/types/array_backref/__init__.py +0 -0
  851. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/postgresql/types/array_backref/init.py +0 -0
  852. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/postgresql/types/backref/__init__.py +0 -0
  853. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/postgresql/types/backref/init.py +0 -0
  854. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/postgresql/types/denorm/__init__.py +0 -0
  855. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/postgresql/types/external_ref/__init__.py +0 -0
  856. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/postgresql/types/file/__init__.py +0 -0
  857. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/postgresql/types/geometry/__init__.py +0 -0
  858. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/postgresql/types/geometry/init.py +0 -0
  859. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/postgresql/types/object/__init__.py +0 -0
  860. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/postgresql/types/ref/__init__.py +0 -0
  861. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/postgresql/types/text/__init__.py +0 -0
  862. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/postgresql/ufuncs/__init__.py +0 -0
  863. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/postgresql/ufuncs/components.py +0 -0
  864. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/postgresql/ufuncs/query/__init__.py +0 -0
  865. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/postgresql/ufuncs/result/__init__.py +0 -0
  866. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/postgresql/ufuncs/ufuncs.py +0 -0
  867. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/backends/types/__init__.py +0 -0
  868. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/cli/__init__.py +0 -0
  869. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/cli/config.py +0 -0
  870. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/cli/helpers/__init__.py +0 -0
  871. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/cli/helpers/admin/__init__.py +0 -0
  872. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/cli/helpers/admin/components.py +0 -0
  873. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/cli/helpers/admin/scripts/__init__.py +0 -0
  874. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/cli/helpers/admin/scripts/add_local_ids.py +0 -0
  875. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/cli/helpers/enums.py +0 -0
  876. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/cli/helpers/errors.py +0 -0
  877. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/cli/helpers/export/__init__.py +0 -0
  878. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/cli/helpers/export/backends/__init__.py +0 -0
  879. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/cli/helpers/export/backends/postgresql/__init__.py +0 -0
  880. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/cli/helpers/export/components.py +0 -0
  881. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/cli/helpers/manifest.py +0 -0
  882. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/cli/helpers/message.py +0 -0
  883. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/cli/helpers/script/__init__.py +0 -0
  884. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/cli/helpers/script/components.py +0 -0
  885. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/cli/helpers/sync/__init__.py +0 -0
  886. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/cli/helpers/sync/controllers/__init__.py +0 -0
  887. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/cli/helpers/sync/controllers/synchronization/__init__.py +0 -0
  888. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/cli/helpers/sync/enum.py +0 -0
  889. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/cli/helpers/upgrade/__init__.py +0 -0
  890. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/cli/helpers/upgrade/components.py +0 -0
  891. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/cli/helpers/upgrade/scripts/__init__.py +0 -0
  892. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/cli/helpers/upgrade/scripts/backends/__init__.py +0 -0
  893. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/cli/helpers/upgrade/scripts/backends/postgresql/__init__.py +0 -0
  894. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/cli/helpers/upgrade/scripts/keymaps/__init__.py +0 -0
  895. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/cli/helpers/upgrade/scripts/keymaps/sqlalchemy/__init__.py +0 -0
  896. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/cli/manifest.py +0 -0
  897. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/commands/auth.py +0 -0
  898. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/commands/helpers.py +0 -0
  899. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/commands/version.py +0 -0
  900. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/core/__init__.py +0 -0
  901. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/__init__.py +0 -0
  902. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/__init__.py +0 -0
  903. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/dataframe/__init__.py +0 -0
  904. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/dataframe/backends/__init__.py +0 -0
  905. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/dataframe/backends/csv/__init__.py +0 -0
  906. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/dataframe/backends/csv/commands/__init__.py +0 -0
  907. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/dataframe/backends/csv/components.py +0 -0
  908. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/dataframe/backends/json/__init__.py +0 -0
  909. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/dataframe/backends/json/commands/__init__.py +0 -0
  910. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/dataframe/backends/json/components.py +0 -0
  911. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/dataframe/backends/memory/__init__.py +0 -0
  912. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/dataframe/backends/memory/components.py +0 -0
  913. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/dataframe/backends/soap/__init__.py +0 -0
  914. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/dataframe/backends/soap/commands/__init__.py +0 -0
  915. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/dataframe/backends/soap/ufuncs/__init__.py +0 -0
  916. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/dataframe/backends/soap/ufuncs/components.py +0 -0
  917. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/dataframe/backends/xml/__init__.py +0 -0
  918. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/dataframe/backends/xml/commands/__init__.py +0 -0
  919. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/dataframe/backends/xml/components.py +0 -0
  920. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/dataframe/commands/__init__.py +0 -0
  921. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/dataframe/commands/check.py +0 -0
  922. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/dataframe/components.py +0 -0
  923. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/dataframe/ufuncs/__init__.py +0 -0
  924. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/dataframe/ufuncs/components.py +0 -0
  925. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/dataframe/ufuncs/query/__init__.py +0 -0
  926. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/dataframe/ufuncs/ufuncs.py +0 -0
  927. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/notimpl/__init__.py +0 -0
  928. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/notimpl/commands/__init__.py +0 -0
  929. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/notimpl/commands/wait.py +0 -0
  930. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/notimpl/components.py +0 -0
  931. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/__init__.py +0 -0
  932. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/backends/__init__.py +0 -0
  933. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/backends/helpers.py +0 -0
  934. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/backends/mariadb/__init__.py +0 -0
  935. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/backends/mariadb/components.py +0 -0
  936. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/backends/mariadb/helpers.py +0 -0
  937. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/backends/mariadb/ufuncs/__init__.py +0 -0
  938. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/backends/mariadb/ufuncs/query/__init__.py +0 -0
  939. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/backends/mariadb/ufuncs/query/ufuncs.py +0 -0
  940. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/backends/mssql/__init__.py +0 -0
  941. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/backends/mssql/components.py +0 -0
  942. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/backends/mssql/helpers.py +0 -0
  943. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/backends/mssql/ufuncs/__init__.py +0 -0
  944. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/backends/mssql/ufuncs/query/__init__.py +0 -0
  945. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/backends/mssql/ufuncs/query/components.py +0 -0
  946. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/backends/mssql/ufuncs/query/ufuncs.py +0 -0
  947. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/backends/mysql/__init__.py +0 -0
  948. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/backends/mysql/components.py +0 -0
  949. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/backends/mysql/helpers.py +0 -0
  950. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/backends/mysql/ufuncs/__init__.py +0 -0
  951. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/backends/mysql/ufuncs/query/__init__.py +0 -0
  952. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/backends/mysql/ufuncs/query/ufuncs.py +0 -0
  953. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/backends/oracle/__init__.py +0 -0
  954. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/backends/oracle/components.py +0 -0
  955. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/backends/oracle/types/__init__.py +0 -0
  956. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/backends/oracle/types/geometry/__init__.py +0 -0
  957. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/backends/oracle/ufuncs/__init__.py +0 -0
  958. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/backends/oracle/ufuncs/query/__init__.py +0 -0
  959. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/backends/postgresql/__init__.py +0 -0
  960. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/backends/postgresql/components.py +0 -0
  961. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/backends/postgresql/ufuncs/__init__.py +0 -0
  962. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/backends/postgresql/ufuncs/query/__init__.py +0 -0
  963. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/backends/postgresql/ufuncs/query/components.py +0 -0
  964. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/backends/sas/__init__.py +0 -0
  965. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/backends/sas/base.py +0 -0
  966. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/backends/sas/components.py +0 -0
  967. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/backends/sas/identifier.py +0 -0
  968. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/backends/sas/log4j.properties +0 -0
  969. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/backends/sas/ufuncs/__init__.py +0 -0
  970. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/backends/sas/ufuncs/query/__init__.py +0 -0
  971. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/backends/sqlite/__init__.py +0 -0
  972. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/backends/sqlite/components.py +0 -0
  973. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/backends/sqlite/helpers.py +0 -0
  974. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/backends/sqlite/ufuncs/__init__.py +0 -0
  975. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/backends/sqlite/ufuncs/query/__init__.py +0 -0
  976. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/backends/sqlite/ufuncs/query/components.py +0 -0
  977. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/commands/__init__.py +0 -0
  978. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/commands/bootstrap.py +0 -0
  979. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/commands/init.py +0 -0
  980. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/commands/wait.py +0 -0
  981. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/ufuncs/__init__.py +0 -0
  982. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/ufuncs/components.py +0 -0
  983. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/ufuncs/query/__init__.py +0 -0
  984. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sql/ufuncs/result/__init__.py +0 -0
  985. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sqldump/__init__.py +0 -0
  986. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sqldump/commands/__init__.py +0 -0
  987. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sqldump/commands/wait.py +0 -0
  988. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sqldump/components.py +0 -0
  989. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sqldump/ufuncs/__init__.py +0 -0
  990. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/sqldump/ufuncs/components.py +0 -0
  991. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/wsdl/__init__.py +0 -0
  992. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/wsdl/commads/__init__.py +0 -0
  993. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/backends/wsdl/commads/read.py +0 -0
  994. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/commands/__init__.py +0 -0
  995. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/commands/inspect.py +0 -0
  996. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/enums.py +0 -0
  997. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/inspect/__init__.py +0 -0
  998. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/inspect/commands/__init__.py +0 -0
  999. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/inspect/commands/manifest.py +0 -0
  1000. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/inspect/components.py +0 -0
  1001. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/datasets/keymaps/__init__.py +0 -0
  1002. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/dimensions/__init__.py +0 -0
  1003. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/dimensions/comments/__init__.py +0 -0
  1004. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/dimensions/comments/components.py +0 -0
  1005. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/dimensions/enum/__init__.py +0 -0
  1006. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/dimensions/lang/__init__.py +0 -0
  1007. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/dimensions/lang/helpers.py +0 -0
  1008. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/dimensions/param/__init__.py +0 -0
  1009. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/dimensions/prefix/__init__.py +0 -0
  1010. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/dimensions/prefix/commands/__init__.py +0 -0
  1011. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/dimensions/prefix/components.py +0 -0
  1012. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/dimensions/scope/__init__.py +0 -0
  1013. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/formats/__init__.py +0 -0
  1014. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/formats/ascii/__init__.py +0 -0
  1015. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/formats/ascii/helpers.py +0 -0
  1016. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/formats/components.py +0 -0
  1017. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/formats/csv/__init__.py +0 -0
  1018. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/formats/csv/components.py +0 -0
  1019. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/formats/html/__init__.py +0 -0
  1020. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/formats/json/__init__.py +0 -0
  1021. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/formats/jsonlines/__init__.py +0 -0
  1022. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/formats/jsonlines/components.py +0 -0
  1023. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/formats/rdf/components.py +0 -0
  1024. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/formats/xlsx/__init__.py +0 -0
  1025. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/formats/xlsx/components.py +0 -0
  1026. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/hacks/__init__.py +0 -0
  1027. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/hacks/spyna.py +0 -0
  1028. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifest/_ns.yml +0 -0
  1029. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifest/_schema/version.yml +0 -0
  1030. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifest/_schema.yml +0 -0
  1031. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifest/_txn.yml +0 -0
  1032. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/__init__.py +0 -0
  1033. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/backend/__init__.py +0 -0
  1034. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/backend/commands/__init__.py +0 -0
  1035. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/backend/commands/bootstrap.py +0 -0
  1036. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/backend/commands/configure.py +0 -0
  1037. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/backend/commands/manifest.py +0 -0
  1038. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/backend/components.py +0 -0
  1039. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/commands/__init__.py +0 -0
  1040. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/commands/auth.py +0 -0
  1041. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/commands/check.py +0 -0
  1042. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/commands/init.py +0 -0
  1043. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/commands/link.py +0 -0
  1044. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/commands/load.py +0 -0
  1045. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/commands/manifest.py +0 -0
  1046. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/commands/migrate.py +0 -0
  1047. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/dict/__init__.py +0 -0
  1048. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/dict/commands/__init__.py +0 -0
  1049. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/dict/components.py +0 -0
  1050. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/internal/__init__.py +0 -0
  1051. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/internal/commands/__init__.py +0 -0
  1052. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/internal/commands/configure.py +0 -0
  1053. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/internal/commands/load.py +0 -0
  1054. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/internal/components.py +0 -0
  1055. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/internal_sql/__init__.py +0 -0
  1056. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/internal_sql/commands/__init__.py +0 -0
  1057. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/internal_sql/commands/backend.py +0 -0
  1058. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/internal_sql/commands/manifest.py +0 -0
  1059. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/memory/__init__.py +0 -0
  1060. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/memory/commands/__init__.py +0 -0
  1061. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/memory/commands/configure.py +0 -0
  1062. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/memory/commands/load.py +0 -0
  1063. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/memory/components.py +0 -0
  1064. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/mermaid/__init__.py +0 -0
  1065. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/mermaid/components.py +0 -0
  1066. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/open_api/__init__.py +0 -0
  1067. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/open_api/commands/__init__.py +0 -0
  1068. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/open_api/commands/configure.py +0 -0
  1069. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/open_api/commands/load.py +0 -0
  1070. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/open_api/components.py +0 -0
  1071. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/open_api/openapi_config.py +0 -0
  1072. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/rdf/commands/bootstrap.py +0 -0
  1073. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/rdf/commands/configure.py +0 -0
  1074. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/rdf/commands/load.py +0 -0
  1075. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/rdf/components.py +0 -0
  1076. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/sql/__init__.py +0 -0
  1077. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/sql/commands/__init__.py +0 -0
  1078. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/sql/commands/configure.py +0 -0
  1079. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/sql/commands/load.py +0 -0
  1080. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/tabular/__init__.py +0 -0
  1081. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/tabular/commands/__init__.py +0 -0
  1082. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/tabular/commands/bootstrap.py +0 -0
  1083. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/tabular/constants.py +0 -0
  1084. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/tabular/formats/__init__.py +0 -0
  1085. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/xsd/__init__.py +0 -0
  1086. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/xsd/commands/__init__.py +0 -0
  1087. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/xsd/commands/configure.py +0 -0
  1088. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/xsd/components.py +0 -0
  1089. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/xsd2/commands/load.py +0 -0
  1090. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/yaml/__init__.py +0 -0
  1091. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/yaml/commands/__init__.py +0 -0
  1092. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/yaml/commands/bootstrap.py +0 -0
  1093. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/yaml/commands/manifest.py +0 -0
  1094. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/yaml/commands/migrate.py +0 -0
  1095. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/manifests/yaml/commands/sync.py +0 -0
  1096. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/methods.py +0 -0
  1097. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/naming/__init__.py +0 -0
  1098. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/templates/data.html +0 -0
  1099. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/templates/error.html +0 -0
  1100. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/templates/form.html +0 -0
  1101. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/testing/__init__.py +0 -0
  1102. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/testing/csv.py +0 -0
  1103. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/testing/manifest.py +0 -0
  1104. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/testing/push.py +0 -0
  1105. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/testing/types/__init__.py +0 -0
  1106. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/testing/types/geometry.py +0 -0
  1107. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/testing/ufuncs.py +0 -0
  1108. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/types/__init__.py +0 -0
  1109. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/types/array/__init__.py +0 -0
  1110. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/types/array/resolve.py +0 -0
  1111. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/types/backref/__init__.py +0 -0
  1112. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/types/denorm/__init__.py +0 -0
  1113. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/types/denorm/check.py +0 -0
  1114. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/types/file/__init__.py +0 -0
  1115. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/types/file/components.py +0 -0
  1116. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/types/file/helpers.py +0 -0
  1117. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/types/geometry/__init__.py +0 -0
  1118. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/types/geometry/components.py +0 -0
  1119. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/types/geometry/constants.py +0 -0
  1120. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/types/inherit/__init__.py +0 -0
  1121. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/types/inherit/check.py +0 -0
  1122. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/types/object/__init__.py +0 -0
  1123. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/types/object/check.py +0 -0
  1124. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/types/object/link.py +0 -0
  1125. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/types/partial/__init__.py +0 -0
  1126. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/types/ref/__init__.py +0 -0
  1127. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/types/ref/check.py +0 -0
  1128. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/types/ref/resolve.py +0 -0
  1129. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/types/text/__init__.py +0 -0
  1130. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/types/text/check.py +0 -0
  1131. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/types/text/helpers.py +0 -0
  1132. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/types/text/load.py +0 -0
  1133. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/ufuncs/__init__.py +0 -0
  1134. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/ufuncs/changebase/__init__.py +0 -0
  1135. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/ufuncs/linkbuilder/__init__.py +0 -0
  1136. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/ufuncs/loadbuilder/__init__.py +0 -0
  1137. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/ufuncs/propertyresolver/__init__.py +0 -0
  1138. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/ufuncs/propertyresolver/components.py +0 -0
  1139. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/ufuncs/querybuilder/__init__.py +0 -0
  1140. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/ufuncs/requestparamsbuilder/__init__.py +0 -0
  1141. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/ufuncs/resultbuilder/__init__.py +0 -0
  1142. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/ufuncs/resultbuilder/components.py +0 -0
  1143. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/ufuncs/summaryenv/__init__.py +0 -0
  1144. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/ufuncs/summaryenv/components.py +0 -0
  1145. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/units/__init__.py +0 -0
  1146. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/units/components.py +0 -0
  1147. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/utils/changes.py +0 -0
  1148. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/utils/collections.py +0 -0
  1149. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/utils/data.py +0 -0
  1150. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/utils/encoding.py +0 -0
  1151. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/utils/functools.py +0 -0
  1152. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/utils/idgen.py +0 -0
  1153. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/utils/naming.py +0 -0
  1154. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/utils/nin.py +0 -0
  1155. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/utils/passwords.py +0 -0
  1156. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/utils/refs.py +0 -0
  1157. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/utils/starlette.py +0 -0
  1158. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/utils/types.py +0 -0
  1159. {spinta-0.2.dev25 → spinta-0.2.dev27}/spinta/utils/units.py +0 -0
@@ -0,0 +1,309 @@
1
+ Metadata-Version: 2.4
2
+ Name: spinta
3
+ Version: 0.2.dev27
4
+ Summary: A platform for describing, extracting, transforming, loading and serving open data.
5
+ License: MIT
6
+ License-File: LICENSE
7
+ Author: Mantas Zimnickas
8
+ Author-email: sirexas@gmail.com
9
+ Requires-Python: >=3.10,<4.0
10
+ Classifier: Development Status :: 3 - Alpha
11
+ Classifier: Environment :: Console
12
+ Classifier: Environment :: Web Environment
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: Intended Audience :: System Administrators
15
+ Classifier: License :: OSI Approved :: MIT License
16
+ Classifier: Operating System :: POSIX
17
+ Classifier: Operating System :: POSIX :: Linux
18
+ Classifier: Programming Language :: Python :: 3
19
+ Classifier: Programming Language :: Python :: 3.10
20
+ Classifier: Programming Language :: Python :: 3.11
21
+ Classifier: Programming Language :: Python :: 3.12
22
+ Classifier: Programming Language :: Python :: 3.13
23
+ Classifier: Programming Language :: Python :: 3.14
24
+ Classifier: Topic :: Database
25
+ Classifier: Topic :: Database :: Database Engines/Servers
26
+ Classifier: Topic :: Database :: Front-Ends
27
+ Provides-Extra: all
28
+ Provides-Extra: http
29
+ Provides-Extra: migrations
30
+ Requires-Dist: GeoAlchemy2
31
+ Requires-Dist: Shapely
32
+ Requires-Dist: XlsxWriter
33
+ Requires-Dist: aiofiles
34
+ Requires-Dist: aiohttp
35
+ Requires-Dist: alembic (>=1.11.0,<1.12.0) ; extra == "migrations" or extra == "all"
36
+ Requires-Dist: asyncpg
37
+ Requires-Dist: authlib (>=1.0.0)
38
+ Requires-Dist: cachetools
39
+ Requires-Dist: cbor2 (>=5.9.0,<6.0.0)
40
+ Requires-Dist: click
41
+ Requires-Dist: dask[dataframe]
42
+ Requires-Dist: docutils (>=0.21.2,<0.22.0)
43
+ Requires-Dist: fsspec
44
+ Requires-Dist: gunicorn ; extra == "http" or extra == "all"
45
+ Requires-Dist: jinja2
46
+ Requires-Dist: jsonpatch
47
+ Requires-Dist: lark-parser
48
+ Requires-Dist: lxml
49
+ Requires-Dist: markdown
50
+ Requires-Dist: msgpack
51
+ Requires-Dist: multipledispatch
52
+ Requires-Dist: nh3
53
+ Requires-Dist: numpy
54
+ Requires-Dist: openpyxl
55
+ Requires-Dist: pandas (>=2.3.3,<3)
56
+ Requires-Dist: phonenumbers
57
+ Requires-Dist: pprintpp
58
+ Requires-Dist: psutil
59
+ Requires-Dist: psycopg2-binary
60
+ Requires-Dist: pydantic
61
+ Requires-Dist: pymongo (<=4.8.0)
62
+ Requires-Dist: pyproj (==3.6.1) ; python_version < "3.13"
63
+ Requires-Dist: pyproj (>=3.7.0) ; python_version >= "3.13"
64
+ Requires-Dist: python-multipart
65
+ Requires-Dist: pytz
66
+ Requires-Dist: rdflib
67
+ Requires-Dist: redis (>=6.4.0,<7.0.0)
68
+ Requires-Dist: requests
69
+ Requires-Dist: ruamel.yaml
70
+ Requires-Dist: setuptools
71
+ Requires-Dist: setuptools-scm
72
+ Requires-Dist: sqlalchemy (>=1.4,<1.5)
73
+ Requires-Dist: sqlalchemy-utils (<=0.41.2)
74
+ Requires-Dist: sqlean-py (<=3.49.1)
75
+ Requires-Dist: sqlparse
76
+ Requires-Dist: starlette (>=0.52.1,<1.0.0)
77
+ Requires-Dist: tabulate
78
+ Requires-Dist: toposort
79
+ Requires-Dist: tqdm
80
+ Requires-Dist: typer[all]
81
+ Requires-Dist: ujson
82
+ Requires-Dist: unidecode
83
+ Requires-Dist: uvicorn ; extra == "http" or extra == "all"
84
+ Requires-Dist: xlrd
85
+ Requires-Dist: xmltodict
86
+ Requires-Dist: zeep (>=4.3.1,<5.0.0)
87
+ Project-URL: Bug Tracker, https://github.com/atviriduomenys/spinta/issues
88
+ Project-URL: Documentation, https://spinta.readthedocs.io/
89
+ Project-URL: Homepage, https://github.com/atviriduomenys/spinta
90
+ Project-URL: Repository, https://github.com/atviriduomenys/spinta
91
+ Description-Content-Type: text/x-rst
92
+
93
+ .. default-role:: literal
94
+
95
+ Spinta is a command line tool and REST JSON API service for publishing and
96
+ mapping data between different physical data models, JSON API and semantic data
97
+ models. It supports a great deal of data schemes and formats.
98
+
99
+ .. image:: https://gitlab.com/atviriduomenys/spinta/badges/master/pipeline.svg
100
+ :target: https://gitlab.com/atviriduomenys/spinta/commits/master
101
+
102
+ .. image:: https://gitlab.com/atviriduomenys/spinta/badges/master/coverage.svg
103
+ :target: https://gitlab.com/atviriduomenys/spinta/commits/master
104
+
105
+ ::
106
+
107
+ Physical data Different Real time REST JSON
108
+ sources formats transformation API
109
+
110
+ +-----+
111
+ +--> | SQL | --------->|
112
+ +------+ | +-----+ |
113
+ | file | ---->| |
114
+ +------+ | +-----+ |
115
+ +--> | CSV | --------->|
116
+ +--------+ | +-----+ | +---------------+
117
+ | DB API | --->| | ------->| REST JSON API |
118
+ +--------+ | +------+ | +---------------+
119
+ | | JSON | -------->|
120
+ +----------+ | +------+ |
121
+ | REST API | -->| |
122
+ +----------+ | +-----+ |
123
+ +--> | XML | --------->|
124
+ +-----+
125
+
126
+
127
+
128
+
129
+ Purpose
130
+ =======
131
+
132
+ - **Describe your data**: You can automatically generate data structure
133
+ description table (*Manifest*) from many different data sources.
134
+
135
+ - **Extract your data**: Once you have your data structure in *Manifest* tables,
136
+ you can extract data from multiple external data sources. Extracted data are
137
+ validated and transformed using rules defined in *Manifest* table. Finally,
138
+ data can be stored into internal database in order to provide fast and
139
+ flexible access to data.
140
+
141
+ - **Transform your data**: Data transformations are applied in real time, when
142
+ reading data from source. This puts some limitations on transformation side, but
143
+ allows data to be streamed in real time.
144
+
145
+ - **Publish your data**: Once you have your data loaded into internal
146
+ database, you can publish data using API. API is generated automatically using
147
+ *Manifest* tables and provides extracted data in many different formats. For
148
+ example if original data source was a CSV file, now you have a flexible API,
149
+ that can talk JSON, RDF, SQL, CSV and other formats.
150
+
151
+
152
+ Features
153
+ ========
154
+
155
+ - Simple 15 column table format for describing data structures (you can use
156
+ any spreadsheet software to manage metadata of your data)
157
+
158
+ - Internal data storage with pluggable backends (PostgreSQL or Mongo)
159
+
160
+ - Build-in async API server built on top of Starlette_ for data publishing
161
+
162
+ - Simple web based data browser.
163
+
164
+ - Convenient command-line interface
165
+
166
+ - Public or restricted API access via OAuth protocol using build-in access
167
+ management.
168
+
169
+ - Simple DSL_ for querying, transforming and validating data.
170
+
171
+ - Low memory consumption for data of any size
172
+
173
+ - Support for many different data sources
174
+
175
+ - Advanced data extraction even from dynamic API.
176
+
177
+ - Compatible with DCAT_ and `Frictionless Data Specifications`_.
178
+
179
+ .. _Starlette: https://www.starlette.io/
180
+ .. _DSL: https://en.wikipedia.org/wiki/Domain-specific_language
181
+ .. _DCAT: https://www.w3.org/TR/vocab-dcat-2/
182
+ .. _Frictionless Data Specifications: https://specs.frictionlessdata.io/
183
+
184
+
185
+ .. note::
186
+
187
+ Currently this project is under heavy development and is in pre-alpha stage.
188
+ So many things might not work and many things can change. Use it at your own
189
+ risk.
190
+
191
+
192
+ Example
193
+ =======
194
+
195
+ If you have an SQLite database:
196
+
197
+ .. code-block:: sh
198
+
199
+ $ sqlite3 sqlite.db <<EOF
200
+ CREATE TABLE COUNTRY (
201
+ NAME TEXT
202
+ );
203
+ EOF
204
+
205
+ You can get a limited API and simple web based data browser with a single
206
+ command:
207
+
208
+ .. code-block:: sh
209
+
210
+ $ spinta run -r sql sqlite:///sqlite.db
211
+
212
+ Then you can generate metadata table (*manifest*) like this:
213
+
214
+ .. code-block:: sh
215
+
216
+ $ spinta inspect -r sql sqlite:///sqlite.db
217
+ d | r | b | m | property | type | ref | source | prepare | level | access | uri | title | description
218
+ dataset | | | | | | | | |
219
+ | sql | sql | | sqlite:///sqlite.db | | | | | |
220
+ | | | | | | | | |
221
+ | | | Country | | | COUNTRY | | | | | |
222
+ | | | | name | string | | NAME | | 3 | open | | |
223
+
224
+ Generated data structure table can be saved into a CSV file:
225
+
226
+ .. code-block:: sh
227
+
228
+ $ spinta inspect -r sql sqlite:///sqlite.db -o manifest.csv
229
+
230
+ Missing peaces in metadata can be filled using any Spreadsheet software.
231
+
232
+ Once you done editing metadata, you can test it via web based data browser or
233
+ API:
234
+
235
+ .. code-block:: sh
236
+
237
+ $ spinta run --mode external manifest.csv
238
+
239
+ Once you are satisfied with metadata, you can generate a new metadata table for
240
+ publishing, removing all traces of original data source:
241
+
242
+ .. code-block:: sh
243
+
244
+ $ spinta copy --no-source --access open manifest.csv manifest-public.csv
245
+
246
+ Now you have matadata for publishing, but all things about original data
247
+ source are gone. In order to publish data, you need to copy external data to
248
+ internal data store. To do that, first you need to initialize internal data
249
+ store:
250
+
251
+ .. code-block:: sh
252
+
253
+ $ spinta config add backend my_backend postgresql postgresql://localhost/db
254
+ $ spinta config add manifest my_manifest tabular manifest-public.csv
255
+ $ spinta migrate
256
+
257
+ Once internal database is initialized, you can push external data into it:
258
+
259
+ .. code-block:: sh
260
+
261
+ $ spinta push --access open manifest.csv
262
+
263
+ And now you can publish data via full featured API with a web based data
264
+ browser:
265
+
266
+ .. code-block:: json
267
+
268
+ $ spinta run
269
+
270
+ You can access your data like this:
271
+
272
+ .. code-block:: json
273
+
274
+ $ http :8000/dataset/sql/Country
275
+ HTTP/1.1 200 OK
276
+ content-type: application/json
277
+
278
+ {
279
+ "_data": [
280
+ {
281
+ "_type": "dataset/sql/Country",
282
+ "_id": "abdd1245-bbf9-4085-9366-f11c0f737c1d",
283
+ "_rev": "16dabe62-61e9-4549-a6bd-07cecfbc3508",
284
+ "_txn": "792a5029-63c9-4c07-995c-cbc063aaac2c",
285
+ "name": "Vilnius"
286
+ }
287
+ ]
288
+ }
289
+
290
+ $ http :8000/dataset/sql/Country/abdd1245-bbf9-4085-9366-f11c0f737c1d
291
+ HTTP/1.1 200 OK
292
+ content-type: application/json
293
+
294
+ {
295
+ "_type": "dataset/sql/Country",
296
+ "_id": "abdd1245-bbf9-4085-9366-f11c0f737c1d",
297
+ "_rev": "16dabe62-61e9-4549-a6bd-07cecfbc3508",
298
+ "_txn": "792a5029-63c9-4c07-995c-cbc063aaac2c",
299
+ "name": "Vilnius"
300
+ }
301
+
302
+ $ http :8000/dataset/sql/Country/abdd1245-bbf9-4085-9366-f11c0f737c1d?select(name)
303
+ HTTP/1.1 200 OK
304
+ content-type: application/json
305
+
306
+ {
307
+ "name": "Vilnius"
308
+ }
309
+
@@ -0,0 +1,184 @@
1
+ [tool.poetry]
2
+ name = "spinta"
3
+ version = "0.2dev27"
4
+ description = "A platform for describing, extracting, transforming, loading and serving open data."
5
+ authors = ["Mantas Zimnickas <sirexas@gmail.com>"]
6
+ license = "MIT"
7
+ readme = "README.rst"
8
+ homepage = "https://github.com/atviriduomenys/spinta"
9
+ repository = "https://github.com/atviriduomenys/spinta"
10
+ documentation = "https://spinta.readthedocs.io/"
11
+ classifiers = [
12
+ "Development Status :: 3 - Alpha",
13
+ "Environment :: Console",
14
+ "Environment :: Web Environment",
15
+ "Intended Audience :: Developers",
16
+ "Intended Audience :: System Administrators",
17
+ "Operating System :: POSIX",
18
+ "Operating System :: POSIX :: Linux",
19
+ "Topic :: Database",
20
+ "Topic :: Database :: Database Engines/Servers",
21
+ "Topic :: Database :: Front-Ends",
22
+ ]
23
+ packages = [
24
+ { include = "spinta" },
25
+ ]
26
+
27
+
28
+ [tool.poetry.urls]
29
+ "Bug Tracker" = "https://github.com/atviriduomenys/spinta/issues"
30
+
31
+
32
+ [tool.poetry.scripts]
33
+ spinta = "spinta.cli.main:app"
34
+
35
+
36
+ [tool.poetry.dependencies]
37
+ python = "^3.10"
38
+ pandas = ">=2.3.3,<3"
39
+ aiofiles = "*"
40
+ # https://github.com/atviriduomenys/spinta/issues/675
41
+ # 0.x -> 1.x upgrade changed their implementation API, so we can no longer support 0.x.
42
+ authlib = ">=1.0.0"
43
+ nh3 = "*"
44
+ markdown = "*"
45
+ jinja2 = "*"
46
+ jsonpatch = "*"
47
+ lark-parser = "*"
48
+ msgpack = "*"
49
+ multipledispatch = "*"
50
+ python-multipart = "*"
51
+ pytz = "*"
52
+ requests = "*"
53
+ "ruamel.yaml" = "*"
54
+ # FIXME: https://setuptools.readthedocs.io/en/latest/history.html#v58-0-0
55
+ # simpleeval package uses use_2to3 thus it is not compatbile with
56
+ # setuptools>=58
57
+ setuptools = "*"
58
+ setuptools-scm = "*"
59
+ # https://github.com/encode/starlette/security/advisories/GHSA-f96h-pmfr-66vw
60
+ starlette = ">=0.52.1,<1.0.0"
61
+ pydantic = "*"
62
+ toposort = "*"
63
+ tqdm = "*"
64
+ ujson = "*"
65
+ unidecode = "*"
66
+ sqlparse = "*"
67
+ pprintpp = "*"
68
+ rdflib = "*"
69
+ numpy = "*"
70
+
71
+ # CLI tool
72
+ click = "*"
73
+ typer = { version = "*", extras = ["all"] }
74
+
75
+ # API server dependencies
76
+ gunicorn = { version = "*", optional = true }
77
+ uvicorn = { version = "*", optional = true }
78
+
79
+ # PostgreSQL backend dependencies
80
+ alembic = { version = "~1.11.0", optional = true }
81
+ asyncpg = "*"
82
+ psycopg2-binary = "*"
83
+ # FIXME: https://github.com/python-poetry/poetry/issues/4402
84
+ # sqlalchemy = "~1.4"
85
+ sqlalchemy = "~1.4"
86
+ # https://github.com/kvesteri/sqlalchemy-utils/issues/472
87
+ # https://github.com/kvesteri/sqlalchemy-utils/issues/791
88
+ sqlalchemy-utils = "<=0.41.2"
89
+
90
+ # Mongo backend dependendencies
91
+ # https://github.com/atviriduomenys/spinta/issues/806
92
+ pymongo = "<=4.8.0"
93
+
94
+ # Excel dependencies
95
+ xlrd = "*"
96
+
97
+ # XML format dependencies
98
+ lxml = "*"
99
+
100
+ # PII (Person Identifiable Information) dependencies
101
+ phonenumbers = "*"
102
+
103
+ # Other dependencies
104
+ XlsxWriter = "*"
105
+ openpyxl = "*"
106
+ GeoAlchemy2 = "*"
107
+ Shapely = "*"
108
+ aiohttp = "*"
109
+ fsspec = "*"
110
+ dask = { version = "*", extras = ["dataframe"] }
111
+ psutil = "*"
112
+ tabulate = "*"
113
+ pyproj = [{version = ">=3.7.0", python = ">=3.13"}, {version = "3.6.1", python = "<3.13"}]
114
+ xmltodict = "*"
115
+ # Error when trying to install >=3.50
116
+ sqlean-py = "<=3.49.1"
117
+ cachetools = "*"
118
+ docutils = "^0.21.2"
119
+ zeep = "^4.3.1"
120
+ redis = "^6.4.0"
121
+ cbor2 = "^5.9.0"
122
+
123
+ [tool.poetry.extras]
124
+ http = ["gunicorn", "uvicorn"]
125
+ migrations = ["alembic"]
126
+ all = ["gunicorn", "uvicorn", "alembic"]
127
+
128
+
129
+ [tool.poetry.group.dev.dependencies]
130
+ ipdb = "*"
131
+ ipython = "*"
132
+ pp-ez = "*"
133
+ pytest = "~7"
134
+ pytest-asyncio = "*"
135
+ pytest-cov = "*"
136
+ pytest-mock = "*"
137
+ responses = "*"
138
+ snoop = "*"
139
+ python-dotenv = "*"
140
+ docutils = "*"
141
+ requests-mock = "^1.11.0"
142
+ ruff = "^0.12.10"
143
+
144
+ # Starlette
145
+ httpx = "*"
146
+
147
+ # Docs
148
+ sphinx = "*"
149
+ sphinx-autobuild = "*"
150
+ sphinxcontrib-httpdomain = "*"
151
+ memory-profiler = "*"
152
+ mypy = "*"
153
+ cssselect = "*"
154
+ objprint = "*"
155
+ sphinx-rtd-theme = "*"
156
+ sqlalchemy-stubs = "*"
157
+ types-requests = "^2.32.4.20250809"
158
+ fakeredis = "^2.32.0"
159
+
160
+
161
+ [build-system]
162
+ requires = ["poetry_core>=1.0.0"]
163
+ build-backend = "poetry.core.masonry.api"
164
+
165
+ # https://mypy.readthedocs.io/en/stable/config_file.html#using-a-pyproject-toml-file
166
+ [tool.mypy]
167
+ disallow_any_unimported = true
168
+ show_error_codes = true
169
+ check_untyped_defs = true
170
+ plugins = "sqlmypy"
171
+
172
+
173
+ [tool.ruff]
174
+ line-length = 120
175
+
176
+
177
+ [tool.ruff.format]
178
+ quote-style = "double"
179
+
180
+
181
+ [tool.ruff.lint]
182
+ # I (isort) checks import sorting and grouping.
183
+ extend-select = ["I"]
184
+ ignore = ["F811"]
@@ -0,0 +1,204 @@
1
+ import datetime
2
+ import os
3
+ import time
4
+ from typing import Any, AsyncIterator, Dict, Iterable, Iterator, List, TypeVar, overload
5
+
6
+ import psutil
7
+ from starlette.requests import Request
8
+
9
+ from spinta import commands
10
+ from spinta.auth import Token, get_default_auth_client_id
11
+ from spinta.components import Config, Context, UrlParams
12
+
13
+
14
+ class AccessLog:
15
+ client: str = None
16
+ method: str = None
17
+ reason: str = None
18
+ url: str = None
19
+ buffer_size: int = 100
20
+ format: str = None # response format
21
+ content_type: str = None # request content-type header
22
+ agent: str = None # request user-agent header
23
+ txn: str = None # request transaction id
24
+ start: float = None # request start time in seconds
25
+ memory: int = None # memory used in bytes at the start of request
26
+ scopes: List[str] = None # list of scopes
27
+ token: str = None # token used for request
28
+
29
+ def __enter__(self):
30
+ return self
31
+
32
+ def __exit__(self, *exc):
33
+ return None
34
+
35
+ def log(self, message: Dict[str, Any]) -> None:
36
+ raise NotImplementedError
37
+
38
+ def request(
39
+ self,
40
+ *,
41
+ txn: str,
42
+ ns: str = None,
43
+ model: str = None,
44
+ prop: str = None,
45
+ action: str = None,
46
+ method: str = None,
47
+ reason: str = None,
48
+ id_: str = None,
49
+ rev: str = None,
50
+ scopes: List[str] = None,
51
+ ):
52
+ self.txn = txn
53
+ self.start = self._get_time()
54
+ self.memory = self._get_memory()
55
+ message = {
56
+ "time": datetime.datetime.now(datetime.timezone.utc).isoformat(),
57
+ "pid": os.getpid(),
58
+ "type": "request",
59
+ "method": method or self.method,
60
+ "action": action,
61
+ "ns": ns,
62
+ "model": model,
63
+ "prop": prop,
64
+ "id": id_,
65
+ "rev": rev,
66
+ "txn": txn,
67
+ "rctype": self.content_type,
68
+ "format": self.format,
69
+ "url": self.url,
70
+ "client": self.client,
71
+ "token": self.token,
72
+ "reason": reason or self.reason,
73
+ "agent": self.agent,
74
+ }
75
+ message = {k: v for k, v in message.items() if v is not None}
76
+ self.log(message)
77
+
78
+ def response(
79
+ self,
80
+ *,
81
+ objects: int,
82
+ ):
83
+ delta = self._get_time() - self.start
84
+ memory = self._get_memory() - self.memory
85
+ message = {
86
+ "time": datetime.datetime.now(datetime.timezone.utc).isoformat(),
87
+ "type": "response",
88
+ "delta": delta,
89
+ "memory": memory,
90
+ "objects": objects,
91
+ "txn": self.txn,
92
+ }
93
+
94
+ self.log(message)
95
+
96
+ def auth(
97
+ self,
98
+ *,
99
+ reason: str = None,
100
+ ):
101
+ message = {
102
+ "time": datetime.datetime.now(datetime.timezone.utc).isoformat(),
103
+ "type": "auth",
104
+ "client": self.client,
105
+ "token": self.token,
106
+ "scope": self.scopes,
107
+ "reason": reason or self.reason,
108
+ "method": self.method,
109
+ "rctype": self.content_type,
110
+ "format": self.format,
111
+ "url": self.url,
112
+ "agent": self.agent,
113
+ }
114
+ message = {k: v for k, v in message.items() if v is not None}
115
+ self.log(message)
116
+
117
+ def _get_time(self) -> float:
118
+ "Get current time in seconds"
119
+ return time.monotonic()
120
+
121
+ def _get_memory(self) -> float:
122
+ "Get currently used memory in bytes"
123
+ return psutil.Process().memory_info().rss
124
+
125
+
126
+ @overload
127
+ @commands.load.register(Context, AccessLog, Config)
128
+ def load(context: Context, accesslog: AccessLog, config: Config):
129
+ accesslog.buffer_size = config.rc.get(
130
+ "accesslog",
131
+ "buffer_size",
132
+ required=True,
133
+ )
134
+
135
+
136
+ @overload
137
+ @commands.load.register(Context, AccessLog, Token)
138
+ def load(context: Context, accesslog: AccessLog, token: Token): # noqa
139
+ accesslog.client = token.get_sub()
140
+
141
+ client_id = token.get_client_id()
142
+ config = context.get("config")
143
+ if client_id != get_default_auth_client_id(context):
144
+ if config.scope_log:
145
+ accesslog.scopes = token.get_scope()
146
+ accesslog.token = token.get_jti()
147
+
148
+
149
+ @overload
150
+ @commands.load.register(Context, AccessLog, Request)
151
+ def load(context: Context, accesslog: AccessLog, request: Request): # noqa
152
+ accesslog.method = request.method
153
+ accesslog.url = str(request.url)
154
+ accesslog.content_type = request.headers.get("content-type")
155
+ accesslog.agent = request.headers.get("user-agent")
156
+
157
+
158
+ @overload
159
+ @commands.load.register(Context, AccessLog, UrlParams)
160
+ def load(context: Context, accesslog: AccessLog, params: UrlParams): # noqa
161
+ accesslog.format = params.format if params.format else "json"
162
+
163
+
164
+ def create_accesslog(
165
+ context: Context,
166
+ *,
167
+ method: str = None,
168
+ loaders: List[Any],
169
+ ) -> AccessLog:
170
+ config: Config = context.get("config")
171
+ # XXX: Probably we should clone store.accesslog here, instead of creating
172
+ # completely new AccessLog instance.
173
+ accesslog: AccessLog = config.AccessLog()
174
+ accesslog.method = method
175
+ for loader in loaders:
176
+ commands.load(context, accesslog, loader)
177
+ return accesslog
178
+
179
+
180
+ TRow = TypeVar("TRow")
181
+
182
+
183
+ def log_response(
184
+ context: Context,
185
+ rows: Iterable[TRow],
186
+ ) -> Iterator[TRow]:
187
+ objects = 0
188
+ for row in rows:
189
+ objects += 1
190
+ yield row
191
+ accesslog: AccessLog = context.get("accesslog")
192
+ accesslog.response(objects=objects)
193
+
194
+
195
+ async def log_async_response(
196
+ context: Context,
197
+ rows: AsyncIterator[TRow],
198
+ ) -> AsyncIterator[TRow]:
199
+ objects = 0
200
+ async for row in rows:
201
+ objects += 1
202
+ yield row
203
+ accesslog: AccessLog = context.get("accesslog")
204
+ accesslog.response(objects=objects)