spinta 0.2.dev8__tar.gz → 0.2.dev10__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 (729) hide show
  1. {spinta-0.2.dev8 → spinta-0.2.dev10}/PKG-INFO +2 -3
  2. {spinta-0.2.dev8 → spinta-0.2.dev10}/pyproject.toml +2 -2
  3. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/api/__init__.py +27 -10
  4. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/api/validators.py +5 -3
  5. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/auth.py +182 -27
  6. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/commands/init.py +12 -10
  7. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/commands/migrate/migrate.py +35 -64
  8. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/commands/migrate/model.py +205 -195
  9. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/commands/migrate/property.py +3 -13
  10. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/commands/migrate/types/datatype.py +54 -65
  11. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/commands/migrate/types/file.py +42 -29
  12. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/commands/migrate/types/geometry.py +2 -3
  13. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/commands/migrate/types/ref.py +76 -76
  14. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/commands/migrate/types/string.py +19 -21
  15. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/commands/migrate/types/text.py +16 -18
  16. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/helpers/changes.py +13 -10
  17. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/helpers/migrate/actions.py +22 -3
  18. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/helpers/migrate/migrate.py +237 -208
  19. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/helpers/name.py +25 -6
  20. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/helpers/redirect.py +6 -4
  21. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/types/array/init.py +8 -5
  22. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/types/external_ref/init.py +8 -4
  23. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/types/file/init.py +19 -9
  24. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/types/geometry/init.py +2 -1
  25. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/types/ref/init.py +11 -5
  26. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/types/text/init.py +8 -1
  27. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/auth.py +30 -2
  28. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/data.py +7 -1
  29. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/helpers/errors.py +0 -9
  30. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/helpers/export/backends/postgresql/commands.py +1 -1
  31. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/helpers/export/commands.py +1 -1
  32. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/helpers/export/helpers.py +1 -1
  33. spinta-0.2.dev10/spinta/cli/helpers/message.py +15 -0
  34. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/helpers/push/sync.py +41 -8
  35. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/helpers/script/components.py +1 -0
  36. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/helpers/upgrade/components.py +3 -0
  37. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/helpers/upgrade/registry.py +15 -0
  38. spinta-0.2.dev10/spinta/cli/helpers/upgrade/scripts/backends/postgresql/comments.py +250 -0
  39. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/keymap.py +7 -1
  40. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/main.py +1 -1
  41. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/migrate.py +1 -1
  42. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/pull.py +1 -1
  43. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/push.py +12 -4
  44. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/components.py +15 -1
  45. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/config.py +6 -1
  46. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/dataframe/backends/soap/commands/read.py +29 -8
  47. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/dataframe/backends/soap/components.py +3 -7
  48. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/dataframe/backends/soap/ufuncs/ufuncs.py +36 -8
  49. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/dataframe/backends/xml/commands/read.py +1 -1
  50. spinta-0.2.dev10/spinta/datasets/backends/sql/backends/oracle/helpers.py +62 -0
  51. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/components.py +10 -0
  52. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/keymaps/redis.py +7 -5
  53. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/keymaps/sync.py +30 -11
  54. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/dimensions/param/components.py +0 -1
  55. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/dimensions/param/ufuncs.py +0 -10
  56. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/exceptions.py +9 -2
  57. spinta-0.2.dev10/spinta/testing/migration.py +161 -0
  58. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/types/config.py +11 -0
  59. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/ufuncs/loadbuilder/ufuncs.py +25 -0
  60. spinta-0.2.dev10/spinta/ufuncs/resultbuilder/__init__.py +0 -0
  61. spinta-0.2.dev10/spinta/ufuncs/summaryenv/__init__.py +0 -0
  62. spinta-0.2.dev10/spinta/units/__init__.py +0 -0
  63. spinta-0.2.dev10/spinta/utils/collections.py +10 -0
  64. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/utils/response.py +39 -3
  65. {spinta-0.2.dev8 → spinta-0.2.dev10}/LICENSE +0 -0
  66. {spinta-0.2.dev8 → spinta-0.2.dev10}/README.rst +0 -0
  67. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/__init__.py +0 -0
  68. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/__main__.py +0 -0
  69. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/accesslog/__init__.py +0 -0
  70. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/accesslog/file.py +0 -0
  71. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/accesslog/python.py +0 -0
  72. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/api/inspect.py +0 -0
  73. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/api/schema.py +0 -0
  74. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/asgi.py +0 -0
  75. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/__init__.py +0 -0
  76. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/components.py +0 -0
  77. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/constants.py +0 -0
  78. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/fs/__init__.py +0 -0
  79. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/fs/commands/__init__.py +0 -0
  80. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/fs/commands/bootstrap.py +0 -0
  81. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/fs/commands/changes.py +0 -0
  82. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/fs/commands/decode.py +0 -0
  83. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/fs/commands/encode.py +0 -0
  84. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/fs/commands/init.py +0 -0
  85. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/fs/commands/load.py +0 -0
  86. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/fs/commands/migrate.py +0 -0
  87. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/fs/commands/read.py +0 -0
  88. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/fs/commands/validate.py +0 -0
  89. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/fs/commands/wait.py +0 -0
  90. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/fs/commands/wipe.py +0 -0
  91. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/fs/commands/write.py +0 -0
  92. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/fs/components.py +0 -0
  93. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/helpers.py +0 -0
  94. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/memory/__init__.py +0 -0
  95. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/memory/commands/__init__.py +0 -0
  96. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/memory/commands/auth.py +0 -0
  97. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/memory/commands/bootstrap.py +0 -0
  98. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/memory/commands/changes.py +0 -0
  99. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/memory/commands/check.py +0 -0
  100. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/memory/commands/encode.py +0 -0
  101. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/memory/commands/init.py +0 -0
  102. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/memory/commands/load.py +0 -0
  103. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/memory/commands/manifest.py +0 -0
  104. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/memory/commands/read.py +0 -0
  105. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/memory/commands/wait.py +0 -0
  106. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/memory/commands/wipe.py +0 -0
  107. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/memory/commands/write.py +0 -0
  108. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/memory/components.py +0 -0
  109. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/mongo/__init__.py +0 -0
  110. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/mongo/commands/__init__.py +0 -0
  111. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/mongo/commands/bootstrap.py +0 -0
  112. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/mongo/commands/changes.py +0 -0
  113. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/mongo/commands/encode.py +0 -0
  114. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/mongo/commands/freeze.py +0 -0
  115. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/mongo/commands/init.py +0 -0
  116. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/mongo/commands/load.py +0 -0
  117. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/mongo/commands/migrate.py +0 -0
  118. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/mongo/commands/read.py +0 -0
  119. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/mongo/commands/validate.py +0 -0
  120. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/mongo/commands/wait.py +0 -0
  121. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/mongo/commands/wipe.py +0 -0
  122. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/mongo/commands/write.py +0 -0
  123. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/mongo/components.py +0 -0
  124. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/mongo/helpers.py +0 -0
  125. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/mongo/types/__init__.py +0 -0
  126. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/mongo/types/array/__init__.py +0 -0
  127. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/mongo/types/array/write.py +0 -0
  128. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/mongo/types/file/__init__.py +0 -0
  129. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/mongo/types/file/write.py +0 -0
  130. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/mongo/types/object/__init__.py +0 -0
  131. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/mongo/types/object/write.py +0 -0
  132. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/mongo/ufuncs/__init__.py +0 -0
  133. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/mongo/ufuncs/components.py +0 -0
  134. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/mongo/ufuncs/ufuncs.py +0 -0
  135. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/nobackend/__init__.py +0 -0
  136. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/nobackend/commands/__init__.py +0 -0
  137. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/nobackend/commands/bootstrap.py +0 -0
  138. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/nobackend/commands/changes.py +0 -0
  139. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/nobackend/commands/init.py +0 -0
  140. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/nobackend/commands/load.py +0 -0
  141. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/nobackend/commands/read.py +0 -0
  142. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/nobackend/commands/wait.py +0 -0
  143. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/nobackend/commands/wipe.py +0 -0
  144. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/nobackend/commands/write.py +0 -0
  145. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/nobackend/components.py +0 -0
  146. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/__init__.py +0 -0
  147. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/commands/__init__.py +0 -0
  148. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/commands/bootstrap.py +0 -0
  149. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/commands/changes.py +0 -0
  150. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/commands/column.py +0 -0
  151. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/commands/encode.py +0 -0
  152. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/commands/freeze.py +0 -0
  153. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/commands/link.py +0 -0
  154. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/commands/load.py +0 -0
  155. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/commands/manifest.py +0 -0
  156. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/commands/migrate/__init__.py +0 -0
  157. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/commands/migrate/constants.py +0 -0
  158. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/commands/migrate/types/__init__.py +0 -0
  159. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/commands/read.py +0 -0
  160. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/commands/redirect.py +0 -0
  161. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/commands/summary.py +0 -0
  162. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/commands/validate.py +0 -0
  163. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/commands/wait.py +0 -0
  164. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/commands/wipe.py +0 -0
  165. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/commands/write.py +0 -0
  166. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/components.py +0 -0
  167. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/constants.py +0 -0
  168. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/files.py +0 -0
  169. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/helpers/__init__.py +0 -0
  170. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/helpers/exceptions.py +0 -0
  171. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/helpers/extractors.py +0 -0
  172. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/helpers/manifest.py +0 -0
  173. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/helpers/migrate/__init__.py +0 -0
  174. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/helpers/validate.py +0 -0
  175. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/sqlalchemy.py +0 -0
  176. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/types/__init__.py +0 -0
  177. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/types/array/__init__.py +0 -0
  178. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/types/array/freeze.py +0 -0
  179. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/types/array/wipe.py +0 -0
  180. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/types/array/write.py +0 -0
  181. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/types/array_backref/__init__.py +0 -0
  182. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/types/array_backref/init.py +0 -0
  183. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/types/backref/__init__.py +0 -0
  184. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/types/backref/init.py +0 -0
  185. {spinta-0.2.dev8/spinta/backends/postgresql/types/file → spinta-0.2.dev10/spinta/backends/postgresql/types/denorm}/__init__.py +0 -0
  186. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/types/denorm/init.py +0 -0
  187. {spinta-0.2.dev8/spinta/backends/postgresql/types/geometry → spinta-0.2.dev10/spinta/backends/postgresql/types/external_ref}/__init__.py +0 -0
  188. {spinta-0.2.dev8/spinta/backends/postgresql/types/object → spinta-0.2.dev10/spinta/backends/postgresql/types/file}/__init__.py +0 -0
  189. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/types/file/freeze.py +0 -0
  190. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/types/file/read.py +0 -0
  191. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/types/file/write.py +0 -0
  192. {spinta-0.2.dev8/spinta/backends/postgresql/types/ref → spinta-0.2.dev10/spinta/backends/postgresql/types/geometry}/__init__.py +0 -0
  193. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/types/geometry/encode.py +0 -0
  194. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/types/geometry/helpers.py +0 -0
  195. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/types/geometry/write.py +0 -0
  196. {spinta-0.2.dev8/spinta/backends/postgresql/types/text → spinta-0.2.dev10/spinta/backends/postgresql/types/object}/__init__.py +0 -0
  197. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/types/object/freeze.py +0 -0
  198. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/types/object/init.py +0 -0
  199. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/types/object/read.py +0 -0
  200. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/types/object/wipe.py +0 -0
  201. {spinta-0.2.dev8/spinta/backends/postgresql/ufuncs → spinta-0.2.dev10/spinta/backends/postgresql/types/ref}/__init__.py +0 -0
  202. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/types/ref/freeze.py +0 -0
  203. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/types/ref/validate.py +0 -0
  204. {spinta-0.2.dev8/spinta/backends/postgresql/ufuncs/query → spinta-0.2.dev10/spinta/backends/postgresql/types/text}/__init__.py +0 -0
  205. {spinta-0.2.dev8/spinta/backends/postgresql/ufuncs/result → spinta-0.2.dev10/spinta/backends/postgresql/ufuncs}/__init__.py +0 -0
  206. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/ufuncs/components.py +0 -0
  207. {spinta-0.2.dev8/spinta/backends/types → spinta-0.2.dev10/spinta/backends/postgresql/ufuncs/query}/__init__.py +0 -0
  208. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/ufuncs/query/components.py +0 -0
  209. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/ufuncs/query/ufuncs.py +0 -0
  210. {spinta-0.2.dev8/spinta/cli → spinta-0.2.dev10/spinta/backends/postgresql/ufuncs/result}/__init__.py +0 -0
  211. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/ufuncs/result/components.py +0 -0
  212. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/ufuncs/result/ufuncs.py +0 -0
  213. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/backends/postgresql/ufuncs/ufuncs.py +0 -0
  214. {spinta-0.2.dev8/spinta/cli/helpers → spinta-0.2.dev10/spinta/backends/types}/__init__.py +0 -0
  215. {spinta-0.2.dev8/spinta/cli/helpers/admin → spinta-0.2.dev10/spinta/cli}/__init__.py +0 -0
  216. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/admin.py +0 -0
  217. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/config.py +0 -0
  218. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/get.py +0 -0
  219. {spinta-0.2.dev8/spinta/cli/helpers/admin/scripts → spinta-0.2.dev10/spinta/cli/helpers}/__init__.py +0 -0
  220. {spinta-0.2.dev8/spinta/cli/helpers/export → spinta-0.2.dev10/spinta/cli/helpers/admin}/__init__.py +0 -0
  221. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/helpers/admin/components.py +0 -0
  222. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/helpers/admin/registry.py +0 -0
  223. {spinta-0.2.dev8/spinta/cli/helpers/export/backends → spinta-0.2.dev10/spinta/cli/helpers/admin/scripts}/__init__.py +0 -0
  224. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/helpers/admin/scripts/changelog.py +0 -0
  225. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/helpers/admin/scripts/deduplicate.py +0 -0
  226. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/helpers/auth.py +0 -0
  227. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/helpers/data.py +0 -0
  228. {spinta-0.2.dev8/spinta/cli/helpers/export/backends/postgresql → spinta-0.2.dev10/spinta/cli/helpers/export}/__init__.py +0 -0
  229. {spinta-0.2.dev8/spinta/cli/helpers/script → spinta-0.2.dev10/spinta/cli/helpers/export/backends}/__init__.py +0 -0
  230. {spinta-0.2.dev8/spinta/cli/helpers/sync/controllers → spinta-0.2.dev10/spinta/cli/helpers/export/backends/postgresql}/__init__.py +0 -0
  231. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/helpers/export/backends/postgresql/components.py +0 -0
  232. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/helpers/export/backends/postgresql/helpers.py +0 -0
  233. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/helpers/export/components.py +0 -0
  234. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/helpers/manifest.py +0 -0
  235. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/helpers/migrate.py +0 -0
  236. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/helpers/push/__init__.py +0 -0
  237. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/helpers/push/components.py +0 -0
  238. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/helpers/push/delete.py +0 -0
  239. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/helpers/push/error.py +0 -0
  240. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/helpers/push/read.py +0 -0
  241. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/helpers/push/state.py +0 -0
  242. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/helpers/push/utils.py +0 -0
  243. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/helpers/push/write.py +0 -0
  244. {spinta-0.2.dev8/spinta/cli/helpers/upgrade → spinta-0.2.dev10/spinta/cli/helpers/script}/__init__.py +0 -0
  245. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/helpers/script/core.py +0 -0
  246. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/helpers/script/helpers.py +0 -0
  247. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/helpers/script/registry.py +0 -0
  248. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/helpers/store.py +0 -0
  249. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/helpers/sync/__init__.py +0 -0
  250. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/helpers/sync/api_helpers.py +0 -0
  251. {spinta-0.2.dev8/spinta/cli/helpers/upgrade/scripts → spinta-0.2.dev10/spinta/cli/helpers/sync/controllers}/__init__.py +0 -0
  252. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/helpers/sync/controllers/data_service.py +0 -0
  253. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/helpers/sync/controllers/dataset.py +0 -0
  254. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/helpers/sync/controllers/distribution.py +0 -0
  255. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/helpers/sync/controllers/dsa.py +0 -0
  256. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/helpers/sync/controllers/synchronization/__init__.py +0 -0
  257. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/helpers/sync/controllers/synchronization/catalog_to_agent.py +0 -0
  258. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/helpers/sync/enum.py +0 -0
  259. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/helpers/sync/helpers.py +0 -0
  260. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/helpers/typer.py +0 -0
  261. {spinta-0.2.dev8/spinta/cli/helpers/upgrade/scripts/keymaps → spinta-0.2.dev10/spinta/cli/helpers/upgrade}/__init__.py +0 -0
  262. {spinta-0.2.dev8/spinta/cli/helpers/upgrade/scripts/keymaps/sqlalchemy → spinta-0.2.dev10/spinta/cli/helpers/upgrade/scripts}/__init__.py +0 -0
  263. {spinta-0.2.dev8/spinta/core → spinta-0.2.dev10/spinta/cli/helpers/upgrade/scripts/backends}/__init__.py +0 -0
  264. {spinta-0.2.dev8/spinta/datasets → spinta-0.2.dev10/spinta/cli/helpers/upgrade/scripts/backends/postgresql}/__init__.py +0 -0
  265. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/helpers/upgrade/scripts/clients.py +0 -0
  266. {spinta-0.2.dev8/spinta/datasets/backends → spinta-0.2.dev10/spinta/cli/helpers/upgrade/scripts/keymaps}/__init__.py +0 -0
  267. {spinta-0.2.dev8/spinta/datasets/backends/dataframe → spinta-0.2.dev10/spinta/cli/helpers/upgrade/scripts/keymaps/sqlalchemy}/__init__.py +0 -0
  268. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/helpers/upgrade/scripts/keymaps/sqlalchemy/helpers.py +0 -0
  269. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/helpers/upgrade/scripts/keymaps/sqlalchemy/initial_setup.py +0 -0
  270. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/helpers/upgrade/scripts/keymaps/sqlalchemy/modified_time.py +0 -0
  271. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/helpers/upgrade/scripts/keymaps/sqlalchemy/redirect_support.py +0 -0
  272. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/helpers/upgrade/scripts/redirect.py +0 -0
  273. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/init.py +0 -0
  274. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/inspect.py +0 -0
  275. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/manifest.py +0 -0
  276. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/pii.py +0 -0
  277. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/server.py +0 -0
  278. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/show.py +0 -0
  279. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/sync.py +0 -0
  280. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/cli/upgrade.py +0 -0
  281. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/client.py +0 -0
  282. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/commands/__init__.py +0 -0
  283. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/commands/auth.py +0 -0
  284. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/commands/helpers.py +0 -0
  285. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/commands/read.py +0 -0
  286. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/commands/search.py +0 -0
  287. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/commands/version.py +0 -0
  288. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/commands/write.py +0 -0
  289. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/compat.py +0 -0
  290. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/config.yml +0 -0
  291. {spinta-0.2.dev8/spinta/datasets/backends/dataframe/backends → spinta-0.2.dev10/spinta/core}/__init__.py +0 -0
  292. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/core/access.py +0 -0
  293. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/core/config.py +0 -0
  294. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/core/context.py +0 -0
  295. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/core/enums.py +0 -0
  296. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/core/ufuncs.py +0 -0
  297. {spinta-0.2.dev8/spinta/datasets/backends/dataframe/backends/csv → spinta-0.2.dev10/spinta/datasets}/__init__.py +0 -0
  298. {spinta-0.2.dev8/spinta/datasets/backends/dataframe/backends/csv/commands → spinta-0.2.dev10/spinta/datasets/backends}/__init__.py +0 -0
  299. {spinta-0.2.dev8/spinta/datasets/backends/dataframe/backends/json → spinta-0.2.dev10/spinta/datasets/backends/dataframe}/__init__.py +0 -0
  300. {spinta-0.2.dev8/spinta/datasets/backends/dataframe/backends/json/commands → spinta-0.2.dev10/spinta/datasets/backends/dataframe/backends}/__init__.py +0 -0
  301. {spinta-0.2.dev8/spinta/datasets/backends/dataframe/backends/memory → spinta-0.2.dev10/spinta/datasets/backends/dataframe/backends/csv}/__init__.py +0 -0
  302. {spinta-0.2.dev8/spinta/datasets/backends/dataframe/backends/soap → spinta-0.2.dev10/spinta/datasets/backends/dataframe/backends/csv/commands}/__init__.py +0 -0
  303. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/dataframe/backends/csv/commands/read.py +0 -0
  304. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/dataframe/backends/csv/components.py +0 -0
  305. {spinta-0.2.dev8/spinta/datasets/backends/dataframe/backends/soap/commands → spinta-0.2.dev10/spinta/datasets/backends/dataframe/backends/json}/__init__.py +0 -0
  306. {spinta-0.2.dev8/spinta/datasets/backends/dataframe/backends/soap/ufuncs → spinta-0.2.dev10/spinta/datasets/backends/dataframe/backends/json/commands}/__init__.py +0 -0
  307. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/dataframe/backends/json/commands/read.py +0 -0
  308. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/dataframe/backends/json/components.py +0 -0
  309. {spinta-0.2.dev8/spinta/datasets/backends/dataframe/backends/xml → spinta-0.2.dev10/spinta/datasets/backends/dataframe/backends/memory}/__init__.py +0 -0
  310. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/dataframe/backends/memory/components.py +0 -0
  311. {spinta-0.2.dev8/spinta/datasets/backends/dataframe/backends/xml/commands → spinta-0.2.dev10/spinta/datasets/backends/dataframe/backends/soap}/__init__.py +0 -0
  312. {spinta-0.2.dev8/spinta/datasets/backends/dataframe → spinta-0.2.dev10/spinta/datasets/backends/dataframe/backends/soap}/commands/__init__.py +0 -0
  313. {spinta-0.2.dev8/spinta/datasets/backends/dataframe → spinta-0.2.dev10/spinta/datasets/backends/dataframe/backends/soap}/ufuncs/__init__.py +0 -0
  314. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/dataframe/backends/soap/ufuncs/components.py +0 -0
  315. {spinta-0.2.dev8/spinta/datasets/backends/dataframe/ufuncs/query → spinta-0.2.dev10/spinta/datasets/backends/dataframe/backends/xml}/__init__.py +0 -0
  316. {spinta-0.2.dev8/spinta/datasets/backends/notimpl → spinta-0.2.dev10/spinta/datasets/backends/dataframe/backends/xml/commands}/__init__.py +0 -0
  317. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/dataframe/backends/xml/components.py +0 -0
  318. {spinta-0.2.dev8/spinta/datasets/backends/notimpl → spinta-0.2.dev10/spinta/datasets/backends/dataframe}/commands/__init__.py +0 -0
  319. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/dataframe/commands/read.py +0 -0
  320. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/dataframe/components.py +0 -0
  321. {spinta-0.2.dev8/spinta/datasets/backends/sql → spinta-0.2.dev10/spinta/datasets/backends/dataframe/ufuncs}/__init__.py +0 -0
  322. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/dataframe/ufuncs/components.py +0 -0
  323. {spinta-0.2.dev8/spinta/datasets/backends/sql/backends → spinta-0.2.dev10/spinta/datasets/backends/dataframe/ufuncs/query}/__init__.py +0 -0
  324. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/dataframe/ufuncs/query/components.py +0 -0
  325. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/dataframe/ufuncs/query/ufuncs.py +0 -0
  326. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/dataframe/ufuncs/ufuncs.py +0 -0
  327. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/helpers.py +0 -0
  328. {spinta-0.2.dev8/spinta/datasets/backends/sql/backends/mariadb → spinta-0.2.dev10/spinta/datasets/backends/notimpl}/__init__.py +0 -0
  329. {spinta-0.2.dev8/spinta/datasets/backends/sql/backends/mariadb/ufuncs → spinta-0.2.dev10/spinta/datasets/backends/notimpl/commands}/__init__.py +0 -0
  330. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/notimpl/commands/load.py +0 -0
  331. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/notimpl/commands/wait.py +0 -0
  332. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/notimpl/components.py +0 -0
  333. {spinta-0.2.dev8/spinta/datasets/backends/sql/backends/mariadb/ufuncs/query → spinta-0.2.dev10/spinta/datasets/backends/sql}/__init__.py +0 -0
  334. {spinta-0.2.dev8/spinta/datasets/backends/sql/backends/mssql → spinta-0.2.dev10/spinta/datasets/backends/sql/backends}/__init__.py +0 -0
  335. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/sql/backends/helpers.py +0 -0
  336. {spinta-0.2.dev8/spinta/datasets/backends/sql/backends/mssql/ufuncs → spinta-0.2.dev10/spinta/datasets/backends/sql/backends/mariadb}/__init__.py +0 -0
  337. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/sql/backends/mariadb/components.py +0 -0
  338. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/sql/backends/mariadb/helpers.py +0 -0
  339. {spinta-0.2.dev8/spinta/datasets/backends/sql/backends/mssql/ufuncs/query → spinta-0.2.dev10/spinta/datasets/backends/sql/backends/mariadb/ufuncs}/__init__.py +0 -0
  340. {spinta-0.2.dev8/spinta/datasets/backends/sql/backends/mysql → spinta-0.2.dev10/spinta/datasets/backends/sql/backends/mariadb/ufuncs/query}/__init__.py +0 -0
  341. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/sql/backends/mariadb/ufuncs/query/components.py +0 -0
  342. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/sql/backends/mariadb/ufuncs/query/ufuncs.py +0 -0
  343. {spinta-0.2.dev8/spinta/datasets/backends/sql/backends/mysql/ufuncs → spinta-0.2.dev10/spinta/datasets/backends/sql/backends/mssql}/__init__.py +0 -0
  344. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/sql/backends/mssql/components.py +0 -0
  345. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/sql/backends/mssql/helpers.py +0 -0
  346. {spinta-0.2.dev8/spinta/datasets/backends/sql/backends/mysql/ufuncs/query → spinta-0.2.dev10/spinta/datasets/backends/sql/backends/mssql/ufuncs}/__init__.py +0 -0
  347. {spinta-0.2.dev8/spinta/datasets/backends/sql/backends/oracle → spinta-0.2.dev10/spinta/datasets/backends/sql/backends/mssql/ufuncs/query}/__init__.py +0 -0
  348. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/sql/backends/mssql/ufuncs/query/components.py +0 -0
  349. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/sql/backends/mssql/ufuncs/query/ufuncs.py +0 -0
  350. {spinta-0.2.dev8/spinta/datasets/backends/sql/backends/oracle/ufuncs → spinta-0.2.dev10/spinta/datasets/backends/sql/backends/mysql}/__init__.py +0 -0
  351. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/sql/backends/mysql/components.py +0 -0
  352. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/sql/backends/mysql/helpers.py +0 -0
  353. {spinta-0.2.dev8/spinta/datasets/backends/sql/backends/oracle/ufuncs/query → spinta-0.2.dev10/spinta/datasets/backends/sql/backends/mysql/ufuncs}/__init__.py +0 -0
  354. {spinta-0.2.dev8/spinta/datasets/backends/sql/backends/postgresql → spinta-0.2.dev10/spinta/datasets/backends/sql/backends/mysql/ufuncs/query}/__init__.py +0 -0
  355. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/sql/backends/mysql/ufuncs/query/components.py +0 -0
  356. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/sql/backends/mysql/ufuncs/query/ufuncs.py +0 -0
  357. {spinta-0.2.dev8/spinta/datasets/backends/sql/backends/postgresql/ufuncs → spinta-0.2.dev10/spinta/datasets/backends/sql/backends/oracle}/__init__.py +0 -0
  358. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/sql/backends/oracle/components.py +0 -0
  359. {spinta-0.2.dev8/spinta/datasets/backends/sql/backends/postgresql/ufuncs/query → spinta-0.2.dev10/spinta/datasets/backends/sql/backends/oracle/ufuncs}/__init__.py +0 -0
  360. {spinta-0.2.dev8/spinta/datasets/backends/sql/backends/sqlite → spinta-0.2.dev10/spinta/datasets/backends/sql/backends/oracle/ufuncs/query}/__init__.py +0 -0
  361. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/sql/backends/oracle/ufuncs/query/components.py +0 -0
  362. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/sql/backends/oracle/ufuncs/query/ufuncs.py +0 -0
  363. {spinta-0.2.dev8/spinta/datasets/backends/sql/backends/sqlite/ufuncs → spinta-0.2.dev10/spinta/datasets/backends/sql/backends/postgresql}/__init__.py +0 -0
  364. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/sql/backends/postgresql/components.py +0 -0
  365. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/sql/backends/postgresql/helpers.py +0 -0
  366. {spinta-0.2.dev8/spinta/datasets/backends/sql/backends/sqlite/ufuncs/query → spinta-0.2.dev10/spinta/datasets/backends/sql/backends/postgresql/ufuncs}/__init__.py +0 -0
  367. {spinta-0.2.dev8/spinta/datasets/backends/sql/commands → spinta-0.2.dev10/spinta/datasets/backends/sql/backends/postgresql/ufuncs/query}/__init__.py +0 -0
  368. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/sql/backends/postgresql/ufuncs/query/components.py +0 -0
  369. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/sql/backends/postgresql/ufuncs/query/ufuncs.py +0 -0
  370. {spinta-0.2.dev8/spinta/datasets/backends/sql/ufuncs → spinta-0.2.dev10/spinta/datasets/backends/sql/backends/sqlite}/__init__.py +0 -0
  371. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/sql/backends/sqlite/components.py +0 -0
  372. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/sql/backends/sqlite/helpers.py +0 -0
  373. {spinta-0.2.dev8/spinta/datasets/backends/sql/ufuncs/query → spinta-0.2.dev10/spinta/datasets/backends/sql/backends/sqlite/ufuncs}/__init__.py +0 -0
  374. {spinta-0.2.dev8/spinta/datasets/backends/sql/ufuncs/result → spinta-0.2.dev10/spinta/datasets/backends/sql/backends/sqlite/ufuncs/query}/__init__.py +0 -0
  375. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/sql/backends/sqlite/ufuncs/query/components.py +0 -0
  376. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/sql/backends/sqlite/ufuncs/query/ufuncs.py +0 -0
  377. {spinta-0.2.dev8/spinta/datasets/backends/sqldump → spinta-0.2.dev10/spinta/datasets/backends/sql/commands}/__init__.py +0 -0
  378. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/sql/commands/bootstrap.py +0 -0
  379. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/sql/commands/cast.py +0 -0
  380. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/sql/commands/column.py +0 -0
  381. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/sql/commands/init.py +0 -0
  382. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/sql/commands/load.py +0 -0
  383. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/sql/commands/read.py +0 -0
  384. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/sql/commands/wait.py +0 -0
  385. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/sql/components.py +0 -0
  386. {spinta-0.2.dev8/spinta/datasets/backends/sql/backends/oracle → spinta-0.2.dev10/spinta/datasets/backends/sql}/helpers.py +0 -0
  387. {spinta-0.2.dev8/spinta/datasets/backends/sqldump/commands → spinta-0.2.dev10/spinta/datasets/backends/sql/ufuncs}/__init__.py +0 -0
  388. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/sql/ufuncs/components.py +0 -0
  389. {spinta-0.2.dev8/spinta/datasets/backends/sqldump/ufuncs → spinta-0.2.dev10/spinta/datasets/backends/sql/ufuncs/query}/__init__.py +0 -0
  390. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/sql/ufuncs/query/components.py +0 -0
  391. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/sql/ufuncs/query/helpers.py +0 -0
  392. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/sql/ufuncs/query/ufuncs.py +0 -0
  393. {spinta-0.2.dev8/spinta/datasets/backends/wsdl → spinta-0.2.dev10/spinta/datasets/backends/sql/ufuncs/result}/__init__.py +0 -0
  394. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/sql/ufuncs/result/components.py +0 -0
  395. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/sql/ufuncs/result/ufuncs.py +0 -0
  396. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/sql/ufuncs/ufuncs.py +0 -0
  397. {spinta-0.2.dev8/spinta/datasets/backends/wsdl/commads → spinta-0.2.dev10/spinta/datasets/backends/sqldump}/__init__.py +0 -0
  398. {spinta-0.2.dev8/spinta/datasets → spinta-0.2.dev10/spinta/datasets/backends/sqldump}/commands/__init__.py +0 -0
  399. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/sqldump/commands/inspect.py +0 -0
  400. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/sqldump/commands/load.py +0 -0
  401. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/sqldump/commands/wait.py +0 -0
  402. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/sqldump/components.py +0 -0
  403. {spinta-0.2.dev8/spinta/datasets/inspect → spinta-0.2.dev10/spinta/datasets/backends/sqldump/ufuncs}/__init__.py +0 -0
  404. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/sqldump/ufuncs/components.py +0 -0
  405. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/sqldump/ufuncs/ufuncs.py +0 -0
  406. {spinta-0.2.dev8/spinta/datasets/inspect/commands → spinta-0.2.dev10/spinta/datasets/backends/wsdl}/__init__.py +0 -0
  407. {spinta-0.2.dev8/spinta/datasets/keymaps → spinta-0.2.dev10/spinta/datasets/backends/wsdl/commads}/__init__.py +0 -0
  408. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/wsdl/commads/read.py +0 -0
  409. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/backends/wsdl/components.py +0 -0
  410. {spinta-0.2.dev8/spinta/dimensions → spinta-0.2.dev10/spinta/datasets/commands}/__init__.py +0 -0
  411. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/commands/check.py +0 -0
  412. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/commands/error.py +0 -0
  413. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/commands/inspect.py +0 -0
  414. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/commands/link.py +0 -0
  415. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/commands/load.py +0 -0
  416. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/commands/wipe.py +0 -0
  417. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/enums.py +0 -0
  418. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/helpers.py +0 -0
  419. {spinta-0.2.dev8/spinta/dimensions/comments → spinta-0.2.dev10/spinta/datasets/inspect}/__init__.py +0 -0
  420. {spinta-0.2.dev8/spinta/dimensions/enum → spinta-0.2.dev10/spinta/datasets/inspect/commands}/__init__.py +0 -0
  421. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/inspect/commands/manifest.py +0 -0
  422. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/inspect/commands/merge.py +0 -0
  423. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/inspect/components.py +0 -0
  424. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/inspect/helpers.py +0 -0
  425. {spinta-0.2.dev8/spinta/dimensions/lang → spinta-0.2.dev10/spinta/datasets/keymaps}/__init__.py +0 -0
  426. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/keymaps/components.py +0 -0
  427. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/keymaps/sqlalchemy.py +0 -0
  428. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/datasets/utils.py +0 -0
  429. {spinta-0.2.dev8/spinta/dimensions/param → spinta-0.2.dev10/spinta/dimensions}/__init__.py +0 -0
  430. {spinta-0.2.dev8/spinta/dimensions/prefix → spinta-0.2.dev10/spinta/dimensions/comments}/__init__.py +0 -0
  431. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/dimensions/comments/components.py +0 -0
  432. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/dimensions/comments/helpers.py +0 -0
  433. {spinta-0.2.dev8/spinta/dimensions/prefix/commands → spinta-0.2.dev10/spinta/dimensions/enum}/__init__.py +0 -0
  434. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/dimensions/enum/commands.py +0 -0
  435. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/dimensions/enum/components.py +0 -0
  436. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/dimensions/enum/helpers.py +0 -0
  437. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/dimensions/enum/ufuncs.py +0 -0
  438. {spinta-0.2.dev8/spinta/formats → spinta-0.2.dev10/spinta/dimensions/lang}/__init__.py +0 -0
  439. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/dimensions/lang/components.py +0 -0
  440. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/dimensions/lang/helpers.py +0 -0
  441. {spinta-0.2.dev8/spinta/formats/ascii → spinta-0.2.dev10/spinta/dimensions/param}/__init__.py +0 -0
  442. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/dimensions/param/helpers.py +0 -0
  443. {spinta-0.2.dev8/spinta/formats/csv → spinta-0.2.dev10/spinta/dimensions/prefix}/__init__.py +0 -0
  444. {spinta-0.2.dev8/spinta/formats/html → spinta-0.2.dev10/spinta/dimensions/prefix/commands}/__init__.py +0 -0
  445. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/dimensions/prefix/commands/load.py +0 -0
  446. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/dimensions/prefix/components.py +0 -0
  447. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/dimensions/prefix/helpers.py +0 -0
  448. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/dispatcher.py +0 -0
  449. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/fetcher.py +0 -0
  450. {spinta-0.2.dev8/spinta/formats/json → spinta-0.2.dev10/spinta/formats}/__init__.py +0 -0
  451. {spinta-0.2.dev8/spinta/formats/jsonlines → spinta-0.2.dev10/spinta/formats/ascii}/__init__.py +0 -0
  452. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/formats/ascii/commands.py +0 -0
  453. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/formats/ascii/components.py +0 -0
  454. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/formats/ascii/helpers.py +0 -0
  455. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/formats/components.py +0 -0
  456. {spinta-0.2.dev8/spinta/formats/xlsx → spinta-0.2.dev10/spinta/formats/csv}/__init__.py +0 -0
  457. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/formats/csv/commands.py +0 -0
  458. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/formats/csv/components.py +0 -0
  459. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/formats/helpers.py +0 -0
  460. {spinta-0.2.dev8/spinta/hacks → spinta-0.2.dev10/spinta/formats/html}/__init__.py +0 -0
  461. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/formats/html/commands.py +0 -0
  462. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/formats/html/components.py +0 -0
  463. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/formats/html/helpers.py +0 -0
  464. {spinta-0.2.dev8/spinta/manifests → spinta-0.2.dev10/spinta/formats/json}/__init__.py +0 -0
  465. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/formats/json/commands.py +0 -0
  466. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/formats/json/components.py +0 -0
  467. {spinta-0.2.dev8/spinta/manifests/backend → spinta-0.2.dev10/spinta/formats/jsonlines}/__init__.py +0 -0
  468. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/formats/jsonlines/commands.py +0 -0
  469. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/formats/jsonlines/components.py +0 -0
  470. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/formats/rdf/commands.py +0 -0
  471. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/formats/rdf/components.py +0 -0
  472. {spinta-0.2.dev8/spinta/manifests/backend/commands → spinta-0.2.dev10/spinta/formats/xlsx}/__init__.py +0 -0
  473. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/formats/xlsx/commands.py +0 -0
  474. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/formats/xlsx/components.py +0 -0
  475. {spinta-0.2.dev8/spinta/manifests/commands → spinta-0.2.dev10/spinta/hacks}/__init__.py +0 -0
  476. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/hacks/spyna.py +0 -0
  477. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/hacks/urlparams.py +0 -0
  478. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/handlers.py +0 -0
  479. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/logging_config.py +0 -0
  480. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifest/_ns.yml +0 -0
  481. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifest/_schema/version.yml +0 -0
  482. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifest/_schema.yml +0 -0
  483. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifest/_txn.yml +0 -0
  484. {spinta-0.2.dev8/spinta/manifests/dict → spinta-0.2.dev10/spinta/manifests}/__init__.py +0 -0
  485. {spinta-0.2.dev8/spinta/manifests/dict/commands → spinta-0.2.dev10/spinta/manifests/backend}/__init__.py +0 -0
  486. {spinta-0.2.dev8/spinta/manifests/internal → spinta-0.2.dev10/spinta/manifests/backend/commands}/__init__.py +0 -0
  487. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/backend/commands/bootstrap.py +0 -0
  488. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/backend/commands/configure.py +0 -0
  489. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/backend/commands/freeze.py +0 -0
  490. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/backend/commands/load.py +0 -0
  491. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/backend/commands/manifest.py +0 -0
  492. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/backend/commands/migrate.py +0 -0
  493. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/backend/commands/sync.py +0 -0
  494. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/backend/components.py +0 -0
  495. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/backend/helpers.py +0 -0
  496. {spinta-0.2.dev8/spinta/manifests/internal → spinta-0.2.dev10/spinta/manifests}/commands/__init__.py +0 -0
  497. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/commands/auth.py +0 -0
  498. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/commands/check.py +0 -0
  499. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/commands/error.py +0 -0
  500. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/commands/init.py +0 -0
  501. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/commands/inspect.py +0 -0
  502. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/commands/link.py +0 -0
  503. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/commands/load.py +0 -0
  504. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/commands/manifest.py +0 -0
  505. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/commands/migrate.py +0 -0
  506. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/commands/read.py +0 -0
  507. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/components.py +0 -0
  508. {spinta-0.2.dev8/spinta/manifests/internal_sql → spinta-0.2.dev10/spinta/manifests/dict}/__init__.py +0 -0
  509. {spinta-0.2.dev8/spinta/manifests/internal_sql → spinta-0.2.dev10/spinta/manifests/dict}/commands/__init__.py +0 -0
  510. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/dict/commands/configure.py +0 -0
  511. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/dict/commands/load.py +0 -0
  512. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/dict/components.py +0 -0
  513. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/dict/helpers.py +0 -0
  514. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/helpers.py +0 -0
  515. {spinta-0.2.dev8/spinta/manifests/memory → spinta-0.2.dev10/spinta/manifests/internal}/__init__.py +0 -0
  516. {spinta-0.2.dev8/spinta/manifests/memory → spinta-0.2.dev10/spinta/manifests/internal}/commands/__init__.py +0 -0
  517. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/internal/commands/configure.py +0 -0
  518. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/internal/commands/load.py +0 -0
  519. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/internal/components.py +0 -0
  520. {spinta-0.2.dev8/spinta/manifests/mermaid → spinta-0.2.dev10/spinta/manifests/internal_sql}/__init__.py +0 -0
  521. {spinta-0.2.dev8/spinta/manifests/open_api → spinta-0.2.dev10/spinta/manifests/internal_sql/commands}/__init__.py +0 -0
  522. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/internal_sql/commands/auth.py +0 -0
  523. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/internal_sql/commands/backend.py +0 -0
  524. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/internal_sql/commands/bootstrap.py +0 -0
  525. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/internal_sql/commands/configure.py +0 -0
  526. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/internal_sql/commands/load.py +0 -0
  527. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/internal_sql/commands/manifest.py +0 -0
  528. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/internal_sql/commands/read.py +0 -0
  529. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/internal_sql/components.py +0 -0
  530. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/internal_sql/helpers.py +0 -0
  531. {spinta-0.2.dev8/spinta/manifests/open_api/commands → spinta-0.2.dev10/spinta/manifests/memory}/__init__.py +0 -0
  532. {spinta-0.2.dev8/spinta/manifests/sql → spinta-0.2.dev10/spinta/manifests/memory/commands}/__init__.py +0 -0
  533. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/memory/commands/configure.py +0 -0
  534. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/memory/commands/load.py +0 -0
  535. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/memory/components.py +0 -0
  536. {spinta-0.2.dev8/spinta/manifests/sql/commands → spinta-0.2.dev10/spinta/manifests/mermaid}/__init__.py +0 -0
  537. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/mermaid/components.py +0 -0
  538. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/mermaid/helpers.py +0 -0
  539. {spinta-0.2.dev8/spinta/manifests/tabular → spinta-0.2.dev10/spinta/manifests/open_api}/__init__.py +0 -0
  540. {spinta-0.2.dev8/spinta/manifests/tabular → spinta-0.2.dev10/spinta/manifests/open_api}/commands/__init__.py +0 -0
  541. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/open_api/commands/configure.py +0 -0
  542. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/open_api/commands/load.py +0 -0
  543. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/open_api/components.py +0 -0
  544. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/open_api/helpers.py +0 -0
  545. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/open_api/openapi_config.py +0 -0
  546. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/open_api/openapi_generator.py +0 -0
  547. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/rdf/commands/bootstrap.py +0 -0
  548. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/rdf/commands/configure.py +0 -0
  549. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/rdf/commands/load.py +0 -0
  550. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/rdf/components.py +0 -0
  551. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/rdf/helpers.py +0 -0
  552. {spinta-0.2.dev8/spinta/manifests/tabular/formats → spinta-0.2.dev10/spinta/manifests/sql}/__init__.py +0 -0
  553. {spinta-0.2.dev8/spinta/manifests/xsd → spinta-0.2.dev10/spinta/manifests/sql/commands}/__init__.py +0 -0
  554. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/sql/commands/configure.py +0 -0
  555. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/sql/commands/load.py +0 -0
  556. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/sql/components.py +0 -0
  557. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/sql/helpers.py +0 -0
  558. {spinta-0.2.dev8/spinta/manifests/xsd/commands → spinta-0.2.dev10/spinta/manifests/tabular}/__init__.py +0 -0
  559. {spinta-0.2.dev8/spinta/manifests/xsd2 → spinta-0.2.dev10/spinta/manifests/tabular/commands}/__init__.py +0 -0
  560. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/tabular/commands/bootstrap.py +0 -0
  561. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/tabular/commands/configure.py +0 -0
  562. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/tabular/commands/load.py +0 -0
  563. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/tabular/components.py +0 -0
  564. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/tabular/constants.py +0 -0
  565. {spinta-0.2.dev8/spinta/manifests/xsd2/commands → spinta-0.2.dev10/spinta/manifests/tabular/formats}/__init__.py +0 -0
  566. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/tabular/formats/gsheets.py +0 -0
  567. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/tabular/helpers.py +0 -0
  568. {spinta-0.2.dev8/spinta/manifests/yaml → spinta-0.2.dev10/spinta/manifests/xsd}/__init__.py +0 -0
  569. {spinta-0.2.dev8/spinta/manifests/yaml → spinta-0.2.dev10/spinta/manifests/xsd}/commands/__init__.py +0 -0
  570. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/xsd/commands/configure.py +0 -0
  571. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/xsd/commands/load.py +0 -0
  572. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/xsd/components.py +0 -0
  573. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/xsd/helpers.py +0 -0
  574. {spinta-0.2.dev8/spinta/migrations/schema → spinta-0.2.dev10/spinta/manifests/xsd2}/__init__.py +0 -0
  575. {spinta-0.2.dev8/spinta/naming → spinta-0.2.dev10/spinta/manifests/xsd2/commands}/__init__.py +0 -0
  576. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/xsd2/commands/configure.py +0 -0
  577. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/xsd2/commands/load.py +0 -0
  578. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/xsd2/components.py +0 -0
  579. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/xsd2/helpers.py +0 -0
  580. {spinta-0.2.dev8/spinta/testing/types → spinta-0.2.dev10/spinta/manifests/yaml}/__init__.py +0 -0
  581. {spinta-0.2.dev8/spinta/types → spinta-0.2.dev10/spinta/manifests/yaml/commands}/__init__.py +0 -0
  582. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/yaml/commands/bootstrap.py +0 -0
  583. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/yaml/commands/configure.py +0 -0
  584. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/yaml/commands/freeze.py +0 -0
  585. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/yaml/commands/load.py +0 -0
  586. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/yaml/commands/manifest.py +0 -0
  587. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/yaml/commands/migrate.py +0 -0
  588. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/yaml/commands/sync.py +0 -0
  589. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/yaml/components.py +0 -0
  590. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/manifests/yaml/helpers.py +0 -0
  591. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/methods.py +0 -0
  592. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/middlewares.py +0 -0
  593. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/migrations/__init__.py +0 -0
  594. {spinta-0.2.dev8/spinta/types/array → spinta-0.2.dev10/spinta/migrations/schema}/__init__.py +0 -0
  595. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/migrations/schema/alembic.py +0 -0
  596. {spinta-0.2.dev8/spinta/types/backref → spinta-0.2.dev10/spinta/naming}/__init__.py +0 -0
  597. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/naming/components.py +0 -0
  598. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/naming/helpers.py +0 -0
  599. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/naming/ufuncts.py +0 -0
  600. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/nodes.py +0 -0
  601. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/renderer.py +0 -0
  602. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/spyna.py +0 -0
  603. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/templates/base.html +0 -0
  604. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/templates/data.html +0 -0
  605. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/templates/error.html +0 -0
  606. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/templates/form.html +0 -0
  607. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/testing/__init__.py +0 -0
  608. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/testing/cli.py +0 -0
  609. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/testing/client.py +0 -0
  610. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/testing/config.py +0 -0
  611. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/testing/context.py +0 -0
  612. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/testing/csv.py +0 -0
  613. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/testing/data.py +0 -0
  614. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/testing/datasets.py +0 -0
  615. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/testing/dtypes.py +0 -0
  616. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/testing/manifest.py +0 -0
  617. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/testing/push.py +0 -0
  618. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/testing/pytest.py +0 -0
  619. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/testing/request.py +0 -0
  620. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/testing/tabular.py +0 -0
  621. {spinta-0.2.dev8/spinta/types/denorm → spinta-0.2.dev10/spinta/testing/types}/__init__.py +0 -0
  622. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/testing/types/geometry.py +0 -0
  623. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/testing/ufuncs.py +0 -0
  624. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/testing/utils.py +0 -0
  625. {spinta-0.2.dev8/spinta/types/file → spinta-0.2.dev10/spinta/types}/__init__.py +0 -0
  626. {spinta-0.2.dev8/spinta/types/geometry → spinta-0.2.dev10/spinta/types/array}/__init__.py +0 -0
  627. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/types/array/check.py +0 -0
  628. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/types/array/link.py +0 -0
  629. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/types/array/resolve.py +0 -0
  630. {spinta-0.2.dev8/spinta/types/inherit → spinta-0.2.dev10/spinta/types/backref}/__init__.py +0 -0
  631. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/types/backref/link.py +0 -0
  632. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/types/command.py +0 -0
  633. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/types/datatype.py +0 -0
  634. {spinta-0.2.dev8/spinta/types/object → spinta-0.2.dev10/spinta/types/denorm}/__init__.py +0 -0
  635. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/types/denorm/check.py +0 -0
  636. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/types/denorm/link.py +0 -0
  637. {spinta-0.2.dev8/spinta/types/partial → spinta-0.2.dev10/spinta/types/file}/__init__.py +0 -0
  638. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/types/file/components.py +0 -0
  639. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/types/file/decode.py +0 -0
  640. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/types/file/helpers.py +0 -0
  641. {spinta-0.2.dev8/spinta/types/ref → spinta-0.2.dev10/spinta/types/geometry}/__init__.py +0 -0
  642. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/types/geometry/components.py +0 -0
  643. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/types/geometry/constants.py +0 -0
  644. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/types/geometry/helpers.py +0 -0
  645. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/types/geometry/load.py +0 -0
  646. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/types/helpers.py +0 -0
  647. {spinta-0.2.dev8/spinta/types/text → spinta-0.2.dev10/spinta/types/inherit}/__init__.py +0 -0
  648. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/types/inherit/check.py +0 -0
  649. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/types/model.py +0 -0
  650. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/types/namespace.py +0 -0
  651. {spinta-0.2.dev8/spinta/ufuncs → spinta-0.2.dev10/spinta/types/object}/__init__.py +0 -0
  652. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/types/object/check.py +0 -0
  653. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/types/object/link.py +0 -0
  654. {spinta-0.2.dev8/spinta/ufuncs/changebase → spinta-0.2.dev10/spinta/types/partial}/__init__.py +0 -0
  655. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/types/partial/link.py +0 -0
  656. {spinta-0.2.dev8/spinta/ufuncs/linkbuilder → spinta-0.2.dev10/spinta/types/ref}/__init__.py +0 -0
  657. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/types/ref/check.py +0 -0
  658. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/types/ref/link.py +0 -0
  659. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/types/ref/resolve.py +0 -0
  660. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/types/store.py +0 -0
  661. {spinta-0.2.dev8/spinta/ufuncs/loadbuilder → spinta-0.2.dev10/spinta/types/text}/__init__.py +0 -0
  662. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/types/text/check.py +0 -0
  663. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/types/text/components.py +0 -0
  664. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/types/text/helpers.py +0 -0
  665. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/types/text/load.py +0 -0
  666. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/typing.py +0 -0
  667. {spinta-0.2.dev8/spinta/ufuncs/propertyresolver → spinta-0.2.dev10/spinta/ufuncs}/__init__.py +0 -0
  668. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/ufuncs/binds.py +0 -0
  669. {spinta-0.2.dev8/spinta/ufuncs/querybuilder → spinta-0.2.dev10/spinta/ufuncs/changebase}/__init__.py +0 -0
  670. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/ufuncs/changebase/components.py +0 -0
  671. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/ufuncs/changebase/helpers.py +0 -0
  672. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/ufuncs/changebase/ufuncs.py +0 -0
  673. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/ufuncs/common.py +0 -0
  674. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/ufuncs/components.py +0 -0
  675. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/ufuncs/helpers.py +0 -0
  676. {spinta-0.2.dev8/spinta/ufuncs/requestparamsbuilder → spinta-0.2.dev10/spinta/ufuncs/linkbuilder}/__init__.py +0 -0
  677. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/ufuncs/linkbuilder/components.py +0 -0
  678. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/ufuncs/linkbuilder/ufuncs.py +0 -0
  679. {spinta-0.2.dev8/spinta/ufuncs/resultbuilder → spinta-0.2.dev10/spinta/ufuncs/loadbuilder}/__init__.py +0 -0
  680. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/ufuncs/loadbuilder/components.py +0 -0
  681. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/ufuncs/loadbuilder/helpers.py +0 -0
  682. {spinta-0.2.dev8/spinta/ufuncs/summaryenv → spinta-0.2.dev10/spinta/ufuncs/propertyresolver}/__init__.py +0 -0
  683. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/ufuncs/propertyresolver/components.py +0 -0
  684. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/ufuncs/propertyresolver/ufuncs.py +0 -0
  685. {spinta-0.2.dev8/spinta/units → spinta-0.2.dev10/spinta/ufuncs/querybuilder}/__init__.py +0 -0
  686. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/ufuncs/querybuilder/components.py +0 -0
  687. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/ufuncs/querybuilder/helpers.py +0 -0
  688. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/ufuncs/querybuilder/ufuncs.py +0 -0
  689. /spinta-0.2.dev8/spinta/datasets/backends/sql/helpers.py → /spinta-0.2.dev10/spinta/ufuncs/requestparamsbuilder/__init__.py +0 -0
  690. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/ufuncs/requestparamsbuilder/components.py +0 -0
  691. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/ufuncs/requestparamsbuilder/helpers.py +0 -0
  692. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/ufuncs/requestparamsbuilder/ufuncs.py +0 -0
  693. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/ufuncs/resultbuilder/components.py +0 -0
  694. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/ufuncs/resultbuilder/helpers.py +0 -0
  695. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/ufuncs/resultbuilder/ufuncs.py +0 -0
  696. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/ufuncs/summaryenv/components.py +0 -0
  697. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/ufuncs/summaryenv/ufuncs.py +0 -0
  698. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/units/components.py +0 -0
  699. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/units/helpers.py +0 -0
  700. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/urlparams.py +0 -0
  701. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/utils/__init__.py +0 -0
  702. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/utils/aiotools.py +0 -0
  703. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/utils/changes.py +0 -0
  704. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/utils/config.py +0 -0
  705. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/utils/data.py +0 -0
  706. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/utils/encoding.py +0 -0
  707. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/utils/enums.py +0 -0
  708. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/utils/errors.py +0 -0
  709. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/utils/functools.py +0 -0
  710. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/utils/idgen.py +0 -0
  711. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/utils/imports.py +0 -0
  712. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/utils/itertools.py +0 -0
  713. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/utils/json.py +0 -0
  714. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/utils/naming.py +0 -0
  715. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/utils/nestedstruct.py +0 -0
  716. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/utils/nin.py +0 -0
  717. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/utils/passwords.py +0 -0
  718. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/utils/path.py +0 -0
  719. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/utils/refs.py +0 -0
  720. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/utils/schema.py +0 -0
  721. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/utils/scopes.py +0 -0
  722. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/utils/sqlalchemy.py +0 -0
  723. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/utils/sqlite.py +0 -0
  724. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/utils/starlette.py +0 -0
  725. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/utils/streams.py +0 -0
  726. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/utils/tree.py +0 -0
  727. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/utils/types.py +0 -0
  728. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/utils/units.py +0 -0
  729. {spinta-0.2.dev8 → spinta-0.2.dev10}/spinta/utils/url.py +0 -0
@@ -1,12 +1,12 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: spinta
3
- Version: 0.2.dev8
3
+ Version: 0.2.dev10
4
4
  Summary: A platform for describing, extracting, transforming, loading and serving open data.
5
5
  License: MIT
6
6
  License-File: LICENSE
7
7
  Author: Mantas Zimnickas
8
8
  Author-email: sirexas@gmail.com
9
- Requires-Python: >=3.9,<4.0
9
+ Requires-Python: >=3.10,<4.0
10
10
  Classifier: Development Status :: 3 - Alpha
11
11
  Classifier: Environment :: Console
12
12
  Classifier: Environment :: Web Environment
@@ -16,7 +16,6 @@ Classifier: License :: OSI Approved :: MIT License
16
16
  Classifier: Operating System :: POSIX
17
17
  Classifier: Operating System :: POSIX :: Linux
18
18
  Classifier: Programming Language :: Python :: 3
19
- Classifier: Programming Language :: Python :: 3.9
20
19
  Classifier: Programming Language :: Python :: 3.10
21
20
  Classifier: Programming Language :: Python :: 3.11
22
21
  Classifier: Programming Language :: Python :: 3.12
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "spinta"
3
- version = "0.2dev8"
3
+ version = "0.2dev10"
4
4
  description = "A platform for describing, extracting, transforming, loading and serving open data."
5
5
  authors = ["Mantas Zimnickas <sirexas@gmail.com>"]
6
6
  license = "MIT"
@@ -34,7 +34,7 @@ spinta = "spinta.cli.main:app"
34
34
 
35
35
 
36
36
  [tool.poetry.dependencies]
37
- python = "^3.9"
37
+ python = "^3.10"
38
38
  aiofiles = "*"
39
39
  # https://github.com/atviriduomenys/spinta/issues/675
40
40
  # 0.x -> 1.x upgrade changed their implementation API, so we can no longer support 0.x.
@@ -19,7 +19,7 @@ from starlette.templating import Jinja2Templates
19
19
 
20
20
  from spinta import components, commands
21
21
  from spinta.accesslog import create_accesslog
22
- from spinta.api.validators import ClientAddData, ClientPatchData, ClientSecretPatchData
22
+ from spinta.api.validators import ClientAddData, ClientPatchData, ClientSecretPatchData, ClientBackendsData
23
23
  from spinta.auth import (
24
24
  AuthorizationServer,
25
25
  check_scope,
@@ -33,6 +33,9 @@ from spinta.auth import (
33
33
  Scopes,
34
34
  authenticate_token,
35
35
  StarletteOAuth2Data,
36
+ KeyType,
37
+ load_key_from_file,
38
+ has_scope,
36
39
  )
37
40
  from spinta.auth import BearerTokenValidator
38
41
  from spinta.auth import ResourceProtector
@@ -96,6 +99,20 @@ async def auth_token(request: Request):
96
99
  raise NoAuthServer()
97
100
 
98
101
 
102
+ async def get_verification_keys(request: Request) -> JSONResponse:
103
+ context = request.state.context
104
+ config = context.get("config")
105
+ content: dict = {"keys": []}
106
+ if config.token_validation_key:
107
+ if "keys" in config.token_validation_key:
108
+ content["keys"] += config.token_validation_key["keys"]
109
+ else:
110
+ content["keys"] = [config.token_validation_key]
111
+ elif default_key := load_key_from_file(config, KeyType.public):
112
+ content["keys"].append(default_key)
113
+ return JSONResponse(content=content)
114
+
115
+
99
116
  def _auth_accesslog(context: Context, request: Request, payload: dict, output_format: str):
100
117
  access_token = payload.get("access_token")
101
118
  if not access_token:
@@ -175,7 +192,6 @@ async def auth_clients_add(request: Request) -> JSONResponse:
175
192
  client_id,
176
193
  client_data["secret"],
177
194
  client_data.get("scopes"),
178
- client_data.get("backends"),
179
195
  )
180
196
 
181
197
  return JSONResponse(
@@ -183,7 +199,6 @@ async def auth_clients_add(request: Request) -> JSONResponse:
183
199
  "client_id": client_["client_id"],
184
200
  "client_name": name,
185
201
  "scopes": client_["scopes"],
186
- "backends": client_["backends"],
187
202
  }
188
203
  )
189
204
 
@@ -246,15 +261,16 @@ async def auth_clients_patch_specific(request: Request) -> JSONResponse:
246
261
  context = _auth_client_context(request)
247
262
  token = context.get("auth.token")
248
263
  client_id = request.path_params["client"]
264
+ is_own_client = client_id == token.get_client_id()
249
265
 
250
- validator_class = ClientPatchData
251
- try:
252
- check_scope(context, Scopes.AUTH_CLIENTS)
253
- except InsufficientScopeError:
266
+ if has_scope(context, Scopes.AUTH_CLIENTS, raise_error=False):
267
+ validator_class = ClientPatchData
268
+ elif has_scope(context, Scopes.CLIENT_BACKENDS_UPDATE_SELF, raise_error=False) and is_own_client:
269
+ validator_class = ClientBackendsData
270
+ elif is_own_client: # Requests without scope can only change its own secret
254
271
  validator_class = ClientSecretPatchData
255
- # Requests without AUTH_CLIENTS scope can only change its own secret
256
- if client_id != token.get_client_id():
257
- raise InsufficientPermission(scope=Scopes.AUTH_CLIENTS)
272
+ else:
273
+ raise InsufficientPermission(scope=Scopes.AUTH_CLIENTS)
258
274
 
259
275
  config = context.get("config")
260
276
  commands.load(context, config)
@@ -425,6 +441,7 @@ def init(context: Context):
425
441
  Route("/favicon.ico", favicon, methods=["GET"]),
426
442
  Route("/version", version, methods=["GET"]),
427
443
  Route("/auth/token", auth_token, methods=["POST"]),
444
+ Route("/.well-known/jwks.json", get_verification_keys, methods=["GET"]),
428
445
  Route("/_srid/{srid:int}/{x:spinta_float}/{y:spinta_float}", srid_check, methods=["GET"]),
429
446
  Route("/auth/clients", auth_clients_get_all, methods=["GET"]),
430
447
  Route("/auth/clients", auth_clients_add, methods=["POST"]),
@@ -7,7 +7,6 @@ class ClientAddData(BaseModel):
7
7
  client_name: Optional[str] = None
8
8
  secret: str = Field(..., min_length=1)
9
9
  scopes: Optional[list[str]] = None
10
- backends: Optional[dict[str, dict[str, Any]]] = None
11
10
 
12
11
  model_config = ConfigDict(extra="forbid")
13
12
 
@@ -18,7 +17,10 @@ class ClientSecretPatchData(BaseModel):
18
17
  model_config = ConfigDict(extra="forbid")
19
18
 
20
19
 
21
- class ClientPatchData(ClientSecretPatchData):
20
+ class ClientBackendsData(ClientSecretPatchData):
21
+ backends: Optional[dict[str, dict[str, Any]]] = None
22
+
23
+
24
+ class ClientPatchData(ClientBackendsData):
22
25
  client_name: Optional[str] = None
23
26
  scopes: Optional[list[str]] = None
24
- backends: Optional[dict[str, dict[str, Any]]] = None
@@ -13,14 +13,15 @@ import uuid
13
13
  from collections import defaultdict
14
14
  from functools import cached_property
15
15
  from threading import Lock
16
- from typing import Set, Any
16
+ from typing import Set, Any, TypedDict, Literal
17
17
  from typing import Type
18
18
  from typing import Union, List, Tuple
19
19
 
20
+ import requests
20
21
  import ruamel.yaml
21
- from authlib.jose import JsonWebKey
22
+ from authlib.jose import JsonWebKey, RSAKey, JWTClaims
22
23
  from authlib.jose import jwt
23
- from authlib.jose.errors import JoseError
24
+ from authlib.jose.errors import JoseError, DecodeError, InvalidTokenError, BadSignatureError
24
25
  from authlib.oauth2 import OAuth2Error
25
26
  from authlib.oauth2 import OAuth2Request
26
27
  from authlib.oauth2 import rfc6749
@@ -34,6 +35,7 @@ from cachetools.keys import hashkey
34
35
  from cryptography.hazmat.backends import default_backend
35
36
  from cryptography.hazmat.primitives.asymmetric import rsa
36
37
  from multipledispatch import dispatch
38
+ from requests import RequestException
37
39
  from starlette.datastructures import FormData, QueryParams, Headers
38
40
  from starlette.exceptions import HTTPException
39
41
  from starlette.responses import JSONResponse
@@ -77,6 +79,20 @@ DEPRECATED_SCOPE_PREFIX = "spinta_"
77
79
 
78
80
  # Scope types taken from authlib.oauth2.rfc6749.util.scope_to_list
79
81
  SCOPE_TYPE = Union[tuple, list, set, str, None]
82
+ Kid = str # key id
83
+
84
+
85
+ class JWK(TypedDict):
86
+ kid: str
87
+ kty: str
88
+ alg: str
89
+ use: str
90
+ n: str
91
+ e: str
92
+
93
+
94
+ class JWKS(TypedDict):
95
+ keys: List[JWK]
80
96
 
81
97
 
82
98
  class KeyType(enum.Enum):
@@ -92,6 +108,9 @@ class Scopes(enum.Enum):
92
108
  # Grants access to manipulate client files through API
93
109
  AUTH_CLIENTS = "auth_clients"
94
110
 
111
+ # Grants access to change its own client file backends
112
+ CLIENT_BACKENDS_UPDATE_SELF = "client_backends_update_self"
113
+
95
114
  # Grants access to generate inspect files through API
96
115
  INSPECT = "inspect"
97
116
 
@@ -165,11 +184,103 @@ class ResourceProtector(rfc6749.ResourceProtector):
165
184
  self.register_token_validator(Validator(context))
166
185
 
167
186
 
187
+ def load_all_public_keys(context: Context) -> list[RSAKey]:
188
+ config = context.get("config")
189
+ token_validation_key = config.token_validation_key
190
+ token_validation_keys_download_url = config.token_validation_keys_download_url
191
+
192
+ if isinstance(token_validation_key, dict) and token_validation_key:
193
+ local_public_keys: list[RSAKey] = []
194
+ if "keys" in token_validation_key:
195
+ for key in token_validation_key["keys"]:
196
+ local_public_keys.append(JsonWebKey.import_key(key))
197
+ else:
198
+ local_public_keys = [JsonWebKey.import_key(token_validation_key)]
199
+ return local_public_keys
200
+ elif token_validation_keys_download_url:
201
+ return load_downloaded_public_keys(context)
202
+ else:
203
+ return [load_key(context, KeyType.public)]
204
+
205
+
206
+ def load_downloaded_public_keys(context: Context) -> list[RSAKey]:
207
+ config = context.get("config")
208
+ if not config.downloaded_public_keys_file:
209
+ log.error("config.downloaded_public_keys_file is not set")
210
+ return []
211
+ if not config.downloaded_public_keys_file.exists():
212
+ log.error(f"File {config.downloaded_public_keys_file} does not exist")
213
+ return []
214
+
215
+ with config.downloaded_public_keys_file.open() as f:
216
+ return [JsonWebKey.import_key(key) for key in json.load(f)["keys"]]
217
+
218
+
219
+ def download_and_store_public_keys(context: Context) -> JWKS | None:
220
+ config = context.get("config")
221
+ if not config.token_validation_keys_download_url:
222
+ return None
223
+ log.info("Downloading public keys from %s", config.token_validation_keys_download_url)
224
+ try:
225
+ response = requests.get(config.token_validation_keys_download_url)
226
+ except RequestException as e:
227
+ log.exception(
228
+ f"Failed to download public keys from {config.token_validation_keys_download_url}. Exception: {e}"
229
+ )
230
+ return None
231
+ if not response.ok or "keys" not in response.json():
232
+ log.error(
233
+ f"Failed to download public keys from {config.token_validation_keys_download_url}. Response: {response.text}"
234
+ )
235
+ return None
236
+
237
+ jwks: JWKS = response.json()
238
+
239
+ if not os.path.exists(config.downloaded_public_keys_file):
240
+ log.warning(f"Warning: {config.downloaded_public_keys_file=} does not exist. Creating it now.")
241
+ os.makedirs(os.path.dirname(config.downloaded_public_keys_file), exist_ok=True)
242
+ with open(config.downloaded_public_keys_file, "x") as f:
243
+ json.dump({}, f)
244
+
245
+ with open(config.downloaded_public_keys_file, "w") as f:
246
+ json.dump(jwks, f, indent=4)
247
+ log.info(f"Successfully downloaded public keys ({jwks}) from {config.downloaded_public_keys_file=}")
248
+
249
+ return jwks
250
+
251
+
168
252
  class BearerTokenValidator(rfc6750.BearerTokenValidator):
169
- def __init__(self, context):
253
+ def __init__(self, context: Context):
170
254
  super().__init__()
171
255
  self._context = context
172
- self._public_key = load_key(context, KeyType.public)
256
+ self._default_public_key: RSAKey = load_key(context, KeyType.public)
257
+ self._all_public_keys: list[RSAKey] = load_all_public_keys(context)
258
+
259
+ def decode_token(self, token_string: str) -> JWTClaims:
260
+ if not token_string:
261
+ raise InvalidToken("Token string is required")
262
+
263
+ try:
264
+ token_header = decode_unverified_header(token_string)
265
+ if kid := token_header.get("key"):
266
+ for key in self._all_public_keys:
267
+ if key.kid and str(key.kid) == str(kid):
268
+ return jwt.decode(token_string, key)
269
+
270
+ token_kty = decode_kty_from_alg(token_header["alg"])
271
+ for key in self._all_public_keys:
272
+ is_not_encryption_key = key.tokens.get("use") != "enc"
273
+ key_algorithm = key.tokens.get("alg")
274
+ is_same_algorithm = key_algorithm and token_header["alg"] == key_algorithm
275
+ is_same_algorithm_type = key.kty and key.kty == token_kty
276
+ if is_not_encryption_key and (is_same_algorithm or is_same_algorithm_type):
277
+ try:
278
+ return jwt.decode(token_string, key)
279
+ except BadSignatureError:
280
+ continue
281
+ except (JoseError, DecodeError, InvalidTokenError) as e:
282
+ raise InvalidToken(error=str(e))
283
+ raise InvalidToken(f"No public key found for token {token_header=}")
173
284
 
174
285
  def authenticate_token(self, token_string: str) -> Token:
175
286
  return Token(token_string, self)
@@ -245,12 +356,34 @@ class Client(rfc6749.ClientMixin):
245
356
  return True
246
357
 
247
358
 
359
+ def decode_unverified_header(token: str) -> dict[str, Any]:
360
+ try:
361
+ if isinstance(token, bytes):
362
+ token = token.decode("utf-8")
363
+
364
+ header_b64 = token.split(".")[0]
365
+
366
+ # Add padding if missing
367
+ header_b64 += "=" * (-len(header_b64) % 4)
368
+ header_bytes = base64.urlsafe_b64decode(header_b64)
369
+
370
+ return json.loads(header_bytes)
371
+ except (UnicodeDecodeError, DecodeError, json.JSONDecodeError, ValueError, IndexError) as e:
372
+ raise InvalidToken(token=token) from e
373
+
374
+
375
+ def decode_kty_from_alg(alg: str) -> Literal["RSA", "EC", None]:
376
+ """Get Key Type from Token Algorithm."""
377
+ if alg.startswith("RS"):
378
+ return "RSA"
379
+ if alg.startswith("ES"):
380
+ return "EC"
381
+ return None
382
+
383
+
248
384
  class Token(rfc6749.TokenMixin):
249
385
  def __init__(self, token_string, validator: BearerTokenValidator):
250
- try:
251
- self._token = jwt.decode(token_string, validator._public_key)
252
- except JoseError as e:
253
- raise InvalidToken(error=str(e))
386
+ self._token = validator.decode_token(token_string)
254
387
 
255
388
  self.expires_in = self._token["exp"] - self._token["iat"]
256
389
  self.client_id = self.get_aud()
@@ -460,9 +593,18 @@ def create_key_pair():
460
593
  return rsa.generate_private_key(public_exponent=65537, key_size=2048, backend=default_backend())
461
594
 
462
595
 
463
- def load_key(context: Context, key_type: KeyType, *, required: bool = True):
596
+ def load_key_from_file(config: Config, key_type: KeyType) -> dict | None:
597
+ keypath = config.config_path / "keys" / f"{key_type.value}.json"
598
+ if keypath.exists():
599
+ with keypath.open() as f:
600
+ return json.load(f)
601
+ return None
602
+
603
+
604
+ def load_key(context: Context, key_type: KeyType, *, required: bool = True) -> RSAKey | None:
464
605
  key = None
465
606
  config = context.get("config")
607
+ default_key = load_key_from_file(config, key_type)
466
608
 
467
609
  # Public key can be set via configuration.
468
610
  if key_type == KeyType.public:
@@ -470,22 +612,23 @@ def load_key(context: Context, key_type: KeyType, *, required: bool = True):
470
612
 
471
613
  # Load key from a file.
472
614
  if key is None:
473
- keypath = config.config_path / "keys" / f"{key_type.value}.json"
474
- if keypath.exists():
475
- with keypath.open() as f:
476
- key = json.load(f)
615
+ key = default_key
616
+
617
+ if isinstance(key, dict) and "keys" in key:
618
+ # Left for backwards compatibility in case private/public file has multiple keys.
619
+ keys = [k for k in key["keys"] if k.get("alg") == "RS512"]
620
+ if keys:
621
+ key = keys[0]
622
+ elif key != default_key:
623
+ key = default_key
624
+ else:
625
+ key = None
477
626
 
478
627
  if key is None:
479
628
  if required:
480
629
  raise NoTokenValidationKey(key_type=key_type.value)
481
630
  else:
482
- return
483
-
484
- if isinstance(key, dict) and "keys" in key:
485
- # XXX: Maybe I should load all keys and then pick right one by algorithm
486
- # used in token?
487
- keys = [k for k in key["keys"] if k["alg"] == "RS512"]
488
- key = keys[0]
631
+ return None
489
632
 
490
633
  return JsonWebKey.import_key(key)
491
634
 
@@ -549,6 +692,18 @@ def check_scope(context: Context, scope: Union[Scopes, str]):
549
692
  token.check_scope([f"{config.scope_prefix}{scope}", f"{config.scope_prefix_udts}:{scope}"])
550
693
 
551
694
 
695
+ def has_scope(context: Context, scope: Scopes | str, raise_error: bool = True) -> bool:
696
+ valid_scope = False
697
+ try:
698
+ check_scope(context, scope)
699
+ valid_scope = True
700
+ except InsufficientScopeError as error:
701
+ if raise_error:
702
+ raise error
703
+
704
+ return valid_scope
705
+
706
+
552
707
  def get_scope_name(
553
708
  context: Context,
554
709
  node: Union[Namespace, Model, Property],
@@ -811,7 +966,7 @@ def delete_client_file(path: pathlib.Path, client_id: str):
811
966
  Remove only empty folders
812
967
  """
813
968
  else:
814
- raise (InvalidClientError(description="Invalid client id or secret"))
969
+ raise InvalidClientError(description="Invalid client id or secret")
815
970
 
816
971
 
817
972
  def update_client_file(
@@ -861,7 +1016,7 @@ def update_client_file(
861
1016
  yml.dump(keymap, keymap_path)
862
1017
  return new_data
863
1018
  else:
864
- raise (InvalidClientError(description="Invalid client id or secret"))
1019
+ raise InvalidClientError(description="Invalid client id or secret")
865
1020
 
866
1021
 
867
1022
  def get_client_id_from_name(path: pathlib.Path, client_name: str):
@@ -940,13 +1095,13 @@ def _client_file_cache_key(path: pathlib.Path, client: str, *args, is_name: bool
940
1095
  if is_name:
941
1096
  client_id = get_client_id_from_name(path, client)
942
1097
  if client_id is None:
943
- raise (InvalidClientError(description="Invalid client name"))
1098
+ raise InvalidClientError(description="Invalid client name")
944
1099
 
945
1100
  client = client_id
946
1101
 
947
1102
  client_file = get_client_file_path(path, client)
948
1103
  if not client_file.exists():
949
- raise (InvalidClientError(description="Invalid client id or secret"))
1104
+ raise InvalidClientError(description="Invalid client id or secret")
950
1105
 
951
1106
  time_ = os.path.getmtime(client_file)
952
1107
  key += tuple([time_])
@@ -977,7 +1132,7 @@ def query_client(path: pathlib.Path, client: str, is_name: bool = False) -> Clie
977
1132
  if is_name:
978
1133
  client_id = get_client_id_from_name(path, client)
979
1134
  if client_id is None:
980
- raise (InvalidClientError(description="Invalid client name"))
1135
+ raise InvalidClientError(description="Invalid client name")
981
1136
 
982
1137
  client = client_id
983
1138
  client_file = get_client_file_path(path, client)
@@ -988,7 +1143,7 @@ def query_client(path: pathlib.Path, client: str, is_name: bool = False) -> Clie
988
1143
  try:
989
1144
  data = yaml.load(client_file)
990
1145
  except FileNotFoundError:
991
- raise (InvalidClientError(description="Invalid client id or secret"))
1146
+ raise InvalidClientError(description="Client file not found. Invalid client id or secret")
992
1147
  if not isinstance(data, dict):
993
1148
  raise InvalidClientFileFormat(client_file=client_file.name, client_file_type=type(data))
994
1149
  if not isinstance(data["scopes"], list):
@@ -10,7 +10,7 @@ from spinta.backends.postgresql.components import PostgreSQL
10
10
  from spinta.backends.postgresql.constants import UNSUPPORTED_TYPES
11
11
  from spinta.backends.postgresql.helpers import get_column_name
12
12
  from spinta.backends.postgresql.helpers.changes import get_changes_table
13
- from spinta.backends.postgresql.helpers.name import PG_NAMING_CONVENTION, get_pg_table_name
13
+ from spinta.backends.postgresql.helpers.name import PG_NAMING_CONVENTION, get_pg_table_name, get_pg_column_name
14
14
  from spinta.backends.postgresql.helpers.redirect import get_redirect_table
15
15
  from spinta.components import Context, Model
16
16
  from spinta.manifests.components import Manifest
@@ -59,7 +59,7 @@ def prepare(context: Context, backend: PostgreSQL, model: Model, ignore_duplicat
59
59
  name = f"{name}._id"
60
60
  elif prop.dtype:
61
61
  name = f"{name}.{prop.dtype.refprops[0].name}"
62
- prop_list.append(name)
62
+ prop_list.append(get_pg_column_name(name))
63
63
 
64
64
  columns.append(sa.UniqueConstraint(*prop_list))
65
65
 
@@ -68,10 +68,11 @@ def prepare(context: Context, backend: PostgreSQL, model: Model, ignore_duplicat
68
68
  main_table = sa.Table(
69
69
  main_table_name,
70
70
  backend.schema,
71
- sa.Column("_txn", pkey_type, index=True),
72
- sa.Column("_created", sa.DateTime),
73
- sa.Column("_updated", sa.DateTime),
71
+ sa.Column(get_pg_column_name("_txn"), pkey_type, index=True, comment="_txn"),
72
+ sa.Column(get_pg_column_name("_created"), sa.DateTime, comment="_created"),
73
+ sa.Column(get_pg_column_name("_updated"), sa.DateTime, comment="_updated"),
74
74
  *columns,
75
+ comment=table_name,
75
76
  )
76
77
  backend.add_table(main_table, model)
77
78
 
@@ -119,7 +120,7 @@ def prepare(context: Context, backend: PostgreSQL, dtype: DataType, **kwargs):
119
120
  raise Exception(f"Unknown type {dtype.name!r} for property {prop.place!r}.")
120
121
  column_type = types[dtype.name]
121
122
  nullable = not dtype.required
122
- return sa.Column(name, column_type, unique=dtype.unique, nullable=nullable)
123
+ return sa.Column(get_pg_column_name(name), column_type, unique=dtype.unique, nullable=nullable, comment=name)
123
124
 
124
125
 
125
126
  @commands.get_primary_key_type.register()
@@ -132,14 +133,15 @@ def get_primary_key_type(context: Context, backend: PostgreSQL):
132
133
  def prepare(context: Context, backend: PostgreSQL, dtype: PrimaryKey, **kwargs):
133
134
  pkey_type = commands.get_primary_key_type(context, backend)
134
135
  base = dtype.prop.model.base
136
+ column_name = get_pg_column_name("_id")
135
137
  if base and commands.identifiable(base):
136
138
  ref_table = get_pg_table_name(base.parent)
137
139
  return [
138
- sa.Column("_id", pkey_type, primary_key=True),
140
+ sa.Column(column_name, pkey_type, primary_key=True, comment="_id"),
139
141
  sa.ForeignKeyConstraint(
140
- ["_id"],
142
+ [column_name],
141
143
  [f"{ref_table}._id"],
142
- name=PG_NAMING_CONVENTION[Convention.FK] % {"table_name": ref_table, "column_0_N_name": "_id"},
144
+ name=PG_NAMING_CONVENTION[Convention.FK] % {"table_name": ref_table, "column_0_N_name": column_name},
143
145
  ),
144
146
  ]
145
- return sa.Column("_id", pkey_type, primary_key=True)
147
+ return sa.Column(column_name, pkey_type, primary_key=True, comment="_id")