spinta 0.2.dev23__tar.gz → 0.2.dev24__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 (757) hide show
  1. {spinta-0.2.dev23 → spinta-0.2.dev24}/PKG-INFO +2 -1
  2. {spinta-0.2.dev23 → spinta-0.2.dev24}/pyproject.toml +2 -1
  3. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/__init__.py +60 -2
  4. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/helpers.py +26 -1
  5. spinta-0.2.dev24/spinta/cli/comment.py +113 -0
  6. spinta-0.2.dev24/spinta/cli/helpers/enums.py +5 -0
  7. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/main.py +4 -0
  8. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/manifest.py +11 -9
  9. spinta-0.2.dev24/spinta/cli/uncomment.py +110 -0
  10. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/components.py +12 -0
  11. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/config.py +1 -0
  12. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/core/access.py +2 -0
  13. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/dataframe/commands/read.py +5 -2
  14. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/dataframe/ufuncs/query/ufuncs.py +11 -1
  15. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/helpers.py +2 -1
  16. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/commands/cast.py +20 -17
  17. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/commands/read.py +50 -15
  18. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/ufuncs/query/ufuncs.py +11 -1
  19. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/components.py +0 -1
  20. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/helpers.py +36 -3
  21. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/dimensions/comments/components.py +3 -0
  22. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/dimensions/comments/helpers.py +2 -0
  23. spinta-0.2.dev24/spinta/dimensions/scope/components.py +46 -0
  24. spinta-0.2.dev24/spinta/dimensions/scope/helpers.py +39 -0
  25. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/exceptions.py +24 -5
  26. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/formats/html/commands.py +8 -5
  27. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/formats/html/helpers.py +7 -1
  28. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/internal_sql/helpers.py +4 -2
  29. spinta-0.2.dev24/spinta/manifests/mermaid/helpers.py +330 -0
  30. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/tabular/components.py +19 -0
  31. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/tabular/helpers.py +110 -6
  32. spinta-0.2.dev24/spinta/types/__init__.py +1 -0
  33. spinta-0.2.dev24/spinta/types/array/__init__.py +1 -0
  34. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/types/array/link.py +6 -3
  35. spinta-0.2.dev24/spinta/types/backref/__init__.py +1 -0
  36. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/types/backref/link.py +9 -3
  37. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/types/datatype.py +11 -0
  38. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/types/helpers.py +67 -2
  39. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/types/model.py +44 -2
  40. spinta-0.2.dev24/spinta/types/ref/__init__.py +1 -0
  41. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/types/ref/link.py +5 -3
  42. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/urlparams.py +2 -0
  43. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/utils/naming.py +2 -2
  44. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/utils/url.py +3 -0
  45. spinta-0.2.dev23/spinta/manifests/mermaid/helpers.py +0 -259
  46. spinta-0.2.dev23/spinta/ufuncs/resultbuilder/__init__.py +0 -0
  47. spinta-0.2.dev23/spinta/ufuncs/summaryenv/__init__.py +0 -0
  48. spinta-0.2.dev23/spinta/units/__init__.py +0 -0
  49. {spinta-0.2.dev23 → spinta-0.2.dev24}/LICENSE +0 -0
  50. {spinta-0.2.dev23 → spinta-0.2.dev24}/README.rst +0 -0
  51. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/__init__.py +0 -0
  52. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/__main__.py +0 -0
  53. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/accesslog/__init__.py +0 -0
  54. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/accesslog/file.py +0 -0
  55. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/accesslog/python.py +0 -0
  56. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/adapters/__init__.py +0 -0
  57. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/adapters/rc/__init__.py +0 -0
  58. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/adapters/rc/signature_adapter.py +0 -0
  59. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/adapters/soap_plugins.py +0 -0
  60. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/api/__init__.py +0 -0
  61. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/api/inspect.py +0 -0
  62. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/api/schema.py +0 -0
  63. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/api/validators.py +0 -0
  64. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/asgi.py +0 -0
  65. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/auth.py +0 -0
  66. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/components.py +0 -0
  67. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/constants.py +0 -0
  68. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/fs/__init__.py +0 -0
  69. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/fs/commands/__init__.py +0 -0
  70. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/fs/commands/bootstrap.py +0 -0
  71. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/fs/commands/changes.py +0 -0
  72. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/fs/commands/decode.py +0 -0
  73. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/fs/commands/encode.py +0 -0
  74. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/fs/commands/init.py +0 -0
  75. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/fs/commands/load.py +0 -0
  76. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/fs/commands/migrate.py +0 -0
  77. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/fs/commands/read.py +0 -0
  78. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/fs/commands/validate.py +0 -0
  79. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/fs/commands/wait.py +0 -0
  80. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/fs/commands/wipe.py +0 -0
  81. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/fs/commands/write.py +0 -0
  82. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/fs/components.py +0 -0
  83. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/memory/__init__.py +0 -0
  84. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/memory/commands/__init__.py +0 -0
  85. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/memory/commands/auth.py +0 -0
  86. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/memory/commands/bootstrap.py +0 -0
  87. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/memory/commands/changes.py +0 -0
  88. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/memory/commands/check.py +0 -0
  89. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/memory/commands/encode.py +0 -0
  90. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/memory/commands/init.py +0 -0
  91. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/memory/commands/load.py +0 -0
  92. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/memory/commands/manifest.py +0 -0
  93. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/memory/commands/read.py +0 -0
  94. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/memory/commands/wait.py +0 -0
  95. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/memory/commands/wipe.py +0 -0
  96. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/memory/commands/write.py +0 -0
  97. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/memory/components.py +0 -0
  98. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/mongo/__init__.py +0 -0
  99. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/mongo/commands/__init__.py +0 -0
  100. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/mongo/commands/bootstrap.py +0 -0
  101. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/mongo/commands/changes.py +0 -0
  102. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/mongo/commands/encode.py +0 -0
  103. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/mongo/commands/init.py +0 -0
  104. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/mongo/commands/load.py +0 -0
  105. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/mongo/commands/migrate.py +0 -0
  106. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/mongo/commands/read.py +0 -0
  107. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/mongo/commands/validate.py +0 -0
  108. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/mongo/commands/wait.py +0 -0
  109. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/mongo/commands/wipe.py +0 -0
  110. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/mongo/commands/write.py +0 -0
  111. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/mongo/components.py +0 -0
  112. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/mongo/helpers.py +0 -0
  113. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/mongo/types/__init__.py +0 -0
  114. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/mongo/types/array/__init__.py +0 -0
  115. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/mongo/types/array/write.py +0 -0
  116. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/mongo/types/file/__init__.py +0 -0
  117. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/mongo/types/file/write.py +0 -0
  118. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/mongo/types/object/__init__.py +0 -0
  119. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/mongo/types/object/write.py +0 -0
  120. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/mongo/ufuncs/__init__.py +0 -0
  121. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/mongo/ufuncs/components.py +0 -0
  122. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/mongo/ufuncs/ufuncs.py +0 -0
  123. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/nobackend/__init__.py +0 -0
  124. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/nobackend/commands/__init__.py +0 -0
  125. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/nobackend/commands/bootstrap.py +0 -0
  126. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/nobackend/commands/changes.py +0 -0
  127. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/nobackend/commands/init.py +0 -0
  128. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/nobackend/commands/load.py +0 -0
  129. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/nobackend/commands/read.py +0 -0
  130. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/nobackend/commands/wait.py +0 -0
  131. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/nobackend/commands/wipe.py +0 -0
  132. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/nobackend/commands/write.py +0 -0
  133. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/nobackend/components.py +0 -0
  134. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/__init__.py +0 -0
  135. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/commands/__init__.py +0 -0
  136. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/commands/bootstrap.py +0 -0
  137. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/commands/changes.py +0 -0
  138. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/commands/column.py +0 -0
  139. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/commands/encode.py +0 -0
  140. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/commands/init.py +0 -0
  141. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/commands/link.py +0 -0
  142. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/commands/load.py +0 -0
  143. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/commands/manifest.py +0 -0
  144. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/commands/migrate/__init__.py +0 -0
  145. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/commands/migrate/constants.py +0 -0
  146. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/commands/migrate/migrate.py +0 -0
  147. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/commands/migrate/model.py +0 -0
  148. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/commands/migrate/property.py +0 -0
  149. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/commands/migrate/types/__init__.py +0 -0
  150. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/commands/migrate/types/array.py +0 -0
  151. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/commands/migrate/types/datatype.py +0 -0
  152. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/commands/migrate/types/file.py +0 -0
  153. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/commands/migrate/types/geometry.py +0 -0
  154. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/commands/migrate/types/object.py +0 -0
  155. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/commands/migrate/types/ref.py +0 -0
  156. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/commands/migrate/types/string.py +0 -0
  157. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/commands/migrate/types/text.py +0 -0
  158. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/commands/read.py +0 -0
  159. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/commands/redirect.py +0 -0
  160. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/commands/summary.py +0 -0
  161. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/commands/validate.py +0 -0
  162. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/commands/wait.py +0 -0
  163. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/commands/wipe.py +0 -0
  164. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/commands/write.py +0 -0
  165. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/components.py +0 -0
  166. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/constants.py +0 -0
  167. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/files.py +0 -0
  168. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/helpers/__init__.py +0 -0
  169. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/helpers/changes.py +0 -0
  170. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/helpers/exceptions.py +0 -0
  171. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/helpers/extractors.py +0 -0
  172. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/helpers/manifest.py +0 -0
  173. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/helpers/migrate/__init__.py +0 -0
  174. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/helpers/migrate/actions.py +0 -0
  175. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/helpers/migrate/cast.py +0 -0
  176. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/helpers/migrate/migrate.py +0 -0
  177. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/helpers/migrate/name.py +0 -0
  178. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/helpers/name.py +0 -0
  179. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/helpers/redirect.py +0 -0
  180. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/helpers/type.py +0 -0
  181. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/helpers/validate.py +0 -0
  182. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/sqlalchemy.py +0 -0
  183. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/types/__init__.py +0 -0
  184. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/types/array/__init__.py +0 -0
  185. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/types/array/init.py +0 -0
  186. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/types/array/wipe.py +0 -0
  187. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/types/array/write.py +0 -0
  188. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/types/array_backref/__init__.py +0 -0
  189. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/types/array_backref/init.py +0 -0
  190. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/types/backref/__init__.py +0 -0
  191. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/types/backref/init.py +0 -0
  192. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/types/denorm/__init__.py +0 -0
  193. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/types/denorm/init.py +0 -0
  194. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/types/external_ref/__init__.py +0 -0
  195. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/types/external_ref/init.py +0 -0
  196. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/types/file/__init__.py +0 -0
  197. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/types/file/init.py +0 -0
  198. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/types/file/read.py +0 -0
  199. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/types/file/write.py +0 -0
  200. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/types/geometry/__init__.py +0 -0
  201. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/types/geometry/encode.py +0 -0
  202. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/types/geometry/init.py +0 -0
  203. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/types/geometry/write.py +0 -0
  204. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/types/object/__init__.py +0 -0
  205. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/types/object/init.py +0 -0
  206. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/types/object/read.py +0 -0
  207. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/types/object/wipe.py +0 -0
  208. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/types/ref/__init__.py +0 -0
  209. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/types/ref/init.py +0 -0
  210. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/types/ref/validate.py +0 -0
  211. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/types/text/__init__.py +0 -0
  212. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/types/text/init.py +0 -0
  213. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/ufuncs/__init__.py +0 -0
  214. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/ufuncs/components.py +0 -0
  215. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/ufuncs/query/__init__.py +0 -0
  216. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/ufuncs/query/components.py +0 -0
  217. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/ufuncs/query/ufuncs.py +0 -0
  218. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/ufuncs/result/__init__.py +0 -0
  219. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/ufuncs/result/components.py +0 -0
  220. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/ufuncs/result/ufuncs.py +0 -0
  221. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/postgresql/ufuncs/ufuncs.py +0 -0
  222. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/backends/types/__init__.py +0 -0
  223. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/__init__.py +0 -0
  224. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/admin.py +0 -0
  225. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/auth.py +0 -0
  226. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/config.py +0 -0
  227. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/data.py +0 -0
  228. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/get.py +0 -0
  229. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/__init__.py +0 -0
  230. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/admin/__init__.py +0 -0
  231. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/admin/components.py +0 -0
  232. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/admin/registry.py +0 -0
  233. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/admin/scripts/__init__.py +0 -0
  234. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/admin/scripts/changelog.py +0 -0
  235. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/admin/scripts/deduplicate.py +0 -0
  236. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/admin/scripts/enums.py +0 -0
  237. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/auth.py +0 -0
  238. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/data.py +0 -0
  239. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/errors.py +0 -0
  240. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/export/__init__.py +0 -0
  241. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/export/backends/__init__.py +0 -0
  242. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/export/backends/postgresql/__init__.py +0 -0
  243. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/export/backends/postgresql/commands.py +0 -0
  244. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/export/backends/postgresql/components.py +0 -0
  245. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/export/backends/postgresql/helpers.py +0 -0
  246. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/export/commands.py +0 -0
  247. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/export/components.py +0 -0
  248. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/export/helpers.py +0 -0
  249. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/manifest.py +0 -0
  250. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/message.py +0 -0
  251. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/migrate.py +0 -0
  252. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/push/__init__.py +0 -0
  253. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/push/components.py +0 -0
  254. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/push/delete.py +0 -0
  255. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/push/error.py +0 -0
  256. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/push/read.py +0 -0
  257. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/push/state.py +0 -0
  258. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/push/sync.py +0 -0
  259. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/push/utils.py +0 -0
  260. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/push/write.py +0 -0
  261. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/script/__init__.py +0 -0
  262. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/script/components.py +0 -0
  263. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/script/core.py +0 -0
  264. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/script/helpers.py +0 -0
  265. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/script/registry.py +0 -0
  266. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/store.py +0 -0
  267. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/sync/__init__.py +0 -0
  268. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/sync/api_helpers.py +0 -0
  269. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/sync/controllers/__init__.py +0 -0
  270. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/sync/controllers/data_service.py +0 -0
  271. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/sync/controllers/dataset.py +0 -0
  272. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/sync/controllers/distribution.py +0 -0
  273. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/sync/controllers/dsa.py +0 -0
  274. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/sync/controllers/synchronization/__init__.py +0 -0
  275. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/sync/controllers/synchronization/connection.py +0 -0
  276. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/sync/controllers/synchronization/manifest_catalog_to_agent.py +0 -0
  277. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/sync/enum.py +0 -0
  278. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/sync/helpers.py +0 -0
  279. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/typer.py +0 -0
  280. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/upgrade/__init__.py +0 -0
  281. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/upgrade/components.py +0 -0
  282. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/upgrade/registry.py +0 -0
  283. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/upgrade/scripts/__init__.py +0 -0
  284. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/upgrade/scripts/backends/__init__.py +0 -0
  285. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/upgrade/scripts/backends/postgresql/__init__.py +0 -0
  286. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/upgrade/scripts/backends/postgresql/comments.py +0 -0
  287. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/upgrade/scripts/backends/postgresql/schemas.py +0 -0
  288. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/upgrade/scripts/clients.py +0 -0
  289. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/upgrade/scripts/keymaps/__init__.py +0 -0
  290. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/upgrade/scripts/keymaps/sqlalchemy/__init__.py +0 -0
  291. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/upgrade/scripts/keymaps/sqlalchemy/helpers.py +0 -0
  292. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/upgrade/scripts/keymaps/sqlalchemy/initial_setup.py +0 -0
  293. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/upgrade/scripts/keymaps/sqlalchemy/modified_time.py +0 -0
  294. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/upgrade/scripts/keymaps/sqlalchemy/redirect_support.py +0 -0
  295. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/helpers/upgrade/scripts/redirect.py +0 -0
  296. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/init.py +0 -0
  297. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/inspect.py +0 -0
  298. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/keymap.py +0 -0
  299. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/migrate.py +0 -0
  300. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/pii.py +0 -0
  301. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/pull.py +0 -0
  302. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/push.py +0 -0
  303. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/server.py +0 -0
  304. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/show.py +0 -0
  305. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/sync.py +0 -0
  306. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/cli/upgrade.py +0 -0
  307. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/client.py +0 -0
  308. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/commands/__init__.py +0 -0
  309. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/commands/auth.py +0 -0
  310. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/commands/helpers.py +0 -0
  311. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/commands/read.py +0 -0
  312. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/commands/search.py +0 -0
  313. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/commands/version.py +0 -0
  314. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/commands/write.py +0 -0
  315. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/compat.py +0 -0
  316. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/config.yml +0 -0
  317. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/core/__init__.py +0 -0
  318. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/core/config.py +0 -0
  319. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/core/context.py +0 -0
  320. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/core/enums.py +0 -0
  321. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/core/ufuncs.py +0 -0
  322. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/__init__.py +0 -0
  323. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/__init__.py +0 -0
  324. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/dataframe/__init__.py +0 -0
  325. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/dataframe/backends/__init__.py +0 -0
  326. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/dataframe/backends/csv/__init__.py +0 -0
  327. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/dataframe/backends/csv/commands/__init__.py +0 -0
  328. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/dataframe/backends/csv/commands/read.py +0 -0
  329. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/dataframe/backends/csv/components.py +0 -0
  330. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/dataframe/backends/json/__init__.py +0 -0
  331. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/dataframe/backends/json/commands/__init__.py +0 -0
  332. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/dataframe/backends/json/commands/read.py +0 -0
  333. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/dataframe/backends/json/components.py +0 -0
  334. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/dataframe/backends/memory/__init__.py +0 -0
  335. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/dataframe/backends/memory/components.py +0 -0
  336. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/dataframe/backends/soap/__init__.py +0 -0
  337. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/dataframe/backends/soap/commands/__init__.py +0 -0
  338. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/dataframe/backends/soap/commands/read.py +0 -0
  339. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/dataframe/backends/soap/components.py +0 -0
  340. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/dataframe/backends/soap/ufuncs/__init__.py +0 -0
  341. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/dataframe/backends/soap/ufuncs/components.py +0 -0
  342. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/dataframe/backends/soap/ufuncs/ufuncs.py +0 -0
  343. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/dataframe/backends/xml/__init__.py +0 -0
  344. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/dataframe/backends/xml/commands/__init__.py +0 -0
  345. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/dataframe/backends/xml/commands/read.py +0 -0
  346. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/dataframe/backends/xml/components.py +0 -0
  347. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/dataframe/commands/__init__.py +0 -0
  348. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/dataframe/commands/check.py +0 -0
  349. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/dataframe/components.py +0 -0
  350. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/dataframe/ufuncs/__init__.py +0 -0
  351. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/dataframe/ufuncs/components.py +0 -0
  352. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/dataframe/ufuncs/query/__init__.py +0 -0
  353. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/dataframe/ufuncs/query/components.py +0 -0
  354. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/dataframe/ufuncs/ufuncs.py +0 -0
  355. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/notimpl/__init__.py +0 -0
  356. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/notimpl/commands/__init__.py +0 -0
  357. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/notimpl/commands/load.py +0 -0
  358. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/notimpl/commands/wait.py +0 -0
  359. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/notimpl/components.py +0 -0
  360. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/__init__.py +0 -0
  361. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/__init__.py +0 -0
  362. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/helpers.py +0 -0
  363. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/mariadb/__init__.py +0 -0
  364. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/mariadb/components.py +0 -0
  365. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/mariadb/helpers.py +0 -0
  366. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/mariadb/ufuncs/__init__.py +0 -0
  367. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/mariadb/ufuncs/query/__init__.py +0 -0
  368. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/mariadb/ufuncs/query/components.py +0 -0
  369. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/mariadb/ufuncs/query/ufuncs.py +0 -0
  370. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/mssql/__init__.py +0 -0
  371. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/mssql/components.py +0 -0
  372. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/mssql/helpers.py +0 -0
  373. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/mssql/ufuncs/__init__.py +0 -0
  374. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/mssql/ufuncs/query/__init__.py +0 -0
  375. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/mssql/ufuncs/query/components.py +0 -0
  376. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/mssql/ufuncs/query/ufuncs.py +0 -0
  377. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/mysql/__init__.py +0 -0
  378. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/mysql/components.py +0 -0
  379. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/mysql/helpers.py +0 -0
  380. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/mysql/ufuncs/__init__.py +0 -0
  381. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/mysql/ufuncs/query/__init__.py +0 -0
  382. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/mysql/ufuncs/query/components.py +0 -0
  383. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/mysql/ufuncs/query/ufuncs.py +0 -0
  384. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/oracle/__init__.py +0 -0
  385. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/oracle/components.py +0 -0
  386. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/oracle/helpers.py +0 -0
  387. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/oracle/types/__init__.py +0 -0
  388. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/oracle/types/geometry/__init__.py +0 -0
  389. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/oracle/types/geometry/encode.py +0 -0
  390. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/oracle/ufuncs/__init__.py +0 -0
  391. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/oracle/ufuncs/query/__init__.py +0 -0
  392. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/oracle/ufuncs/query/components.py +0 -0
  393. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/oracle/ufuncs/query/ufuncs.py +0 -0
  394. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/postgresql/__init__.py +0 -0
  395. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/postgresql/components.py +0 -0
  396. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/postgresql/helpers.py +0 -0
  397. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/postgresql/ufuncs/__init__.py +0 -0
  398. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/postgresql/ufuncs/query/__init__.py +0 -0
  399. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/postgresql/ufuncs/query/components.py +0 -0
  400. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/postgresql/ufuncs/query/ufuncs.py +0 -0
  401. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/sas/__init__.py +0 -0
  402. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/sas/base.py +0 -0
  403. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/sas/commands/__init__.py +0 -0
  404. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/sas/commands/cast.py +0 -0
  405. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/sas/commands/load.py +0 -0
  406. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/sas/commands/read.py +0 -0
  407. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/sas/components.py +0 -0
  408. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/sas/constants.py +0 -0
  409. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/sas/dialect.py +0 -0
  410. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/sas/formats.py +0 -0
  411. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/sas/helpers.py +0 -0
  412. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/sas/identifier.py +0 -0
  413. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/sas/introspection.py +0 -0
  414. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/sas/log4j.properties +0 -0
  415. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/sas/types.py +0 -0
  416. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/sas/ufuncs/__init__.py +0 -0
  417. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/sas/ufuncs/query/__init__.py +0 -0
  418. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/sas/ufuncs/query/components.py +0 -0
  419. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/sas/ufuncs/query/ufuncs.py +0 -0
  420. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/sqlite/__init__.py +0 -0
  421. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/sqlite/components.py +0 -0
  422. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/sqlite/helpers.py +0 -0
  423. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/sqlite/ufuncs/__init__.py +0 -0
  424. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/sqlite/ufuncs/query/__init__.py +0 -0
  425. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/sqlite/ufuncs/query/components.py +0 -0
  426. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/backends/sqlite/ufuncs/query/ufuncs.py +0 -0
  427. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/commands/__init__.py +0 -0
  428. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/commands/bootstrap.py +0 -0
  429. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/commands/column.py +0 -0
  430. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/commands/init.py +0 -0
  431. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/commands/load.py +0 -0
  432. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/commands/wait.py +0 -0
  433. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/components.py +0 -0
  434. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/helpers.py +0 -0
  435. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/ufuncs/__init__.py +0 -0
  436. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/ufuncs/components.py +0 -0
  437. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/ufuncs/query/__init__.py +0 -0
  438. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/ufuncs/query/components.py +0 -0
  439. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/ufuncs/query/helpers.py +0 -0
  440. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/ufuncs/result/__init__.py +0 -0
  441. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/ufuncs/result/components.py +0 -0
  442. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/ufuncs/result/ufuncs.py +0 -0
  443. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sql/ufuncs/ufuncs.py +0 -0
  444. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sqldump/__init__.py +0 -0
  445. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sqldump/commands/__init__.py +0 -0
  446. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sqldump/commands/inspect.py +0 -0
  447. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sqldump/commands/load.py +0 -0
  448. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sqldump/commands/wait.py +0 -0
  449. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sqldump/components.py +0 -0
  450. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sqldump/ufuncs/__init__.py +0 -0
  451. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sqldump/ufuncs/components.py +0 -0
  452. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/sqldump/ufuncs/ufuncs.py +0 -0
  453. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/wsdl/__init__.py +0 -0
  454. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/wsdl/commads/__init__.py +0 -0
  455. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/wsdl/commads/read.py +0 -0
  456. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/backends/wsdl/components.py +0 -0
  457. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/commands/__init__.py +0 -0
  458. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/commands/check.py +0 -0
  459. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/commands/error.py +0 -0
  460. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/commands/inspect.py +0 -0
  461. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/commands/link.py +0 -0
  462. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/commands/load.py +0 -0
  463. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/commands/wipe.py +0 -0
  464. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/enums.py +0 -0
  465. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/inspect/__init__.py +0 -0
  466. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/inspect/commands/__init__.py +0 -0
  467. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/inspect/commands/manifest.py +0 -0
  468. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/inspect/commands/merge.py +0 -0
  469. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/inspect/components.py +0 -0
  470. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/inspect/helpers.py +0 -0
  471. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/keymaps/__init__.py +0 -0
  472. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/keymaps/components.py +0 -0
  473. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/keymaps/redis.py +0 -0
  474. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/keymaps/sqlalchemy.py +0 -0
  475. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/keymaps/sync.py +0 -0
  476. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/datasets/utils.py +0 -0
  477. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/dimensions/__init__.py +0 -0
  478. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/dimensions/comments/__init__.py +0 -0
  479. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/dimensions/enum/__init__.py +0 -0
  480. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/dimensions/enum/commands.py +0 -0
  481. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/dimensions/enum/components.py +0 -0
  482. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/dimensions/enum/helpers.py +0 -0
  483. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/dimensions/enum/ufuncs.py +0 -0
  484. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/dimensions/lang/__init__.py +0 -0
  485. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/dimensions/lang/components.py +0 -0
  486. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/dimensions/lang/helpers.py +0 -0
  487. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/dimensions/param/__init__.py +0 -0
  488. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/dimensions/param/components.py +0 -0
  489. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/dimensions/param/helpers.py +0 -0
  490. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/dimensions/param/ufuncs.py +0 -0
  491. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/dimensions/prefix/__init__.py +0 -0
  492. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/dimensions/prefix/commands/__init__.py +0 -0
  493. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/dimensions/prefix/commands/load.py +0 -0
  494. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/dimensions/prefix/components.py +0 -0
  495. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/dimensions/prefix/helpers.py +0 -0
  496. {spinta-0.2.dev23/spinta/formats → spinta-0.2.dev24/spinta/dimensions/scope}/__init__.py +0 -0
  497. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/dispatcher.py +0 -0
  498. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/fetcher.py +0 -0
  499. {spinta-0.2.dev23/spinta/formats/ascii → spinta-0.2.dev24/spinta/formats}/__init__.py +0 -0
  500. {spinta-0.2.dev23/spinta/formats/csv → spinta-0.2.dev24/spinta/formats/ascii}/__init__.py +0 -0
  501. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/formats/ascii/commands.py +0 -0
  502. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/formats/ascii/components.py +0 -0
  503. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/formats/ascii/helpers.py +0 -0
  504. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/formats/components.py +0 -0
  505. {spinta-0.2.dev23/spinta/formats/html → spinta-0.2.dev24/spinta/formats/csv}/__init__.py +0 -0
  506. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/formats/csv/commands.py +0 -0
  507. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/formats/csv/components.py +0 -0
  508. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/formats/helpers.py +0 -0
  509. {spinta-0.2.dev23/spinta/formats/json → spinta-0.2.dev24/spinta/formats/html}/__init__.py +0 -0
  510. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/formats/html/components.py +0 -0
  511. {spinta-0.2.dev23/spinta/formats/jsonlines → spinta-0.2.dev24/spinta/formats/json}/__init__.py +0 -0
  512. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/formats/json/commands.py +0 -0
  513. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/formats/json/components.py +0 -0
  514. {spinta-0.2.dev23/spinta/formats/xlsx → spinta-0.2.dev24/spinta/formats/jsonlines}/__init__.py +0 -0
  515. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/formats/jsonlines/commands.py +0 -0
  516. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/formats/jsonlines/components.py +0 -0
  517. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/formats/rdf/commands.py +0 -0
  518. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/formats/rdf/components.py +0 -0
  519. {spinta-0.2.dev23/spinta/hacks → spinta-0.2.dev24/spinta/formats/xlsx}/__init__.py +0 -0
  520. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/formats/xlsx/commands.py +0 -0
  521. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/formats/xlsx/components.py +0 -0
  522. {spinta-0.2.dev23/spinta/manifests → spinta-0.2.dev24/spinta/hacks}/__init__.py +0 -0
  523. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/hacks/spyna.py +0 -0
  524. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/hacks/urlparams.py +0 -0
  525. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/handlers.py +0 -0
  526. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/logging_config.py +0 -0
  527. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifest/_ns.yml +0 -0
  528. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifest/_schema/version.yml +0 -0
  529. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifest/_schema.yml +0 -0
  530. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifest/_txn.yml +0 -0
  531. {spinta-0.2.dev23/spinta/manifests/backend → spinta-0.2.dev24/spinta/manifests}/__init__.py +0 -0
  532. {spinta-0.2.dev23/spinta/manifests/backend/commands → spinta-0.2.dev24/spinta/manifests/backend}/__init__.py +0 -0
  533. {spinta-0.2.dev23/spinta/manifests → spinta-0.2.dev24/spinta/manifests/backend}/commands/__init__.py +0 -0
  534. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/backend/commands/bootstrap.py +0 -0
  535. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/backend/commands/configure.py +0 -0
  536. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/backend/commands/load.py +0 -0
  537. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/backend/commands/manifest.py +0 -0
  538. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/backend/commands/migrate.py +0 -0
  539. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/backend/commands/sync.py +0 -0
  540. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/backend/components.py +0 -0
  541. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/backend/helpers.py +0 -0
  542. {spinta-0.2.dev23/spinta/manifests/dict → spinta-0.2.dev24/spinta/manifests/commands}/__init__.py +0 -0
  543. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/commands/auth.py +0 -0
  544. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/commands/check.py +0 -0
  545. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/commands/error.py +0 -0
  546. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/commands/init.py +0 -0
  547. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/commands/inspect.py +0 -0
  548. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/commands/link.py +0 -0
  549. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/commands/load.py +0 -0
  550. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/commands/manifest.py +0 -0
  551. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/commands/migrate.py +0 -0
  552. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/commands/read.py +0 -0
  553. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/components.py +0 -0
  554. {spinta-0.2.dev23/spinta/manifests/dict/commands → spinta-0.2.dev24/spinta/manifests/dict}/__init__.py +0 -0
  555. {spinta-0.2.dev23/spinta/manifests/internal → spinta-0.2.dev24/spinta/manifests/dict/commands}/__init__.py +0 -0
  556. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/dict/commands/configure.py +0 -0
  557. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/dict/commands/load.py +0 -0
  558. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/dict/components.py +0 -0
  559. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/dict/helpers.py +0 -0
  560. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/helpers.py +0 -0
  561. {spinta-0.2.dev23/spinta/manifests/internal/commands → spinta-0.2.dev24/spinta/manifests/internal}/__init__.py +0 -0
  562. {spinta-0.2.dev23/spinta/manifests/internal_sql → spinta-0.2.dev24/spinta/manifests/internal/commands}/__init__.py +0 -0
  563. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/internal/commands/configure.py +0 -0
  564. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/internal/commands/load.py +0 -0
  565. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/internal/components.py +0 -0
  566. {spinta-0.2.dev23/spinta/manifests/internal_sql/commands → spinta-0.2.dev24/spinta/manifests/internal_sql}/__init__.py +0 -0
  567. {spinta-0.2.dev23/spinta/manifests/memory → spinta-0.2.dev24/spinta/manifests/internal_sql/commands}/__init__.py +0 -0
  568. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/internal_sql/commands/auth.py +0 -0
  569. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/internal_sql/commands/backend.py +0 -0
  570. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/internal_sql/commands/bootstrap.py +0 -0
  571. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/internal_sql/commands/configure.py +0 -0
  572. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/internal_sql/commands/load.py +0 -0
  573. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/internal_sql/commands/manifest.py +0 -0
  574. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/internal_sql/commands/read.py +0 -0
  575. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/internal_sql/components.py +0 -0
  576. {spinta-0.2.dev23/spinta/manifests/memory/commands → spinta-0.2.dev24/spinta/manifests/memory}/__init__.py +0 -0
  577. {spinta-0.2.dev23/spinta/manifests/mermaid → spinta-0.2.dev24/spinta/manifests/memory/commands}/__init__.py +0 -0
  578. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/memory/commands/configure.py +0 -0
  579. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/memory/commands/load.py +0 -0
  580. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/memory/components.py +0 -0
  581. {spinta-0.2.dev23/spinta/manifests/open_api → spinta-0.2.dev24/spinta/manifests/mermaid}/__init__.py +0 -0
  582. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/mermaid/components.py +0 -0
  583. {spinta-0.2.dev23/spinta/manifests/open_api/commands → spinta-0.2.dev24/spinta/manifests/open_api}/__init__.py +0 -0
  584. {spinta-0.2.dev23/spinta/manifests/sql → spinta-0.2.dev24/spinta/manifests/open_api/commands}/__init__.py +0 -0
  585. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/open_api/commands/configure.py +0 -0
  586. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/open_api/commands/load.py +0 -0
  587. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/open_api/components.py +0 -0
  588. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/open_api/helpers.py +0 -0
  589. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/open_api/openapi_config.py +0 -0
  590. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/open_api/openapi_generator.py +0 -0
  591. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/rdf/commands/bootstrap.py +0 -0
  592. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/rdf/commands/configure.py +0 -0
  593. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/rdf/commands/load.py +0 -0
  594. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/rdf/components.py +0 -0
  595. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/rdf/helpers.py +0 -0
  596. {spinta-0.2.dev23/spinta/manifests/sql/commands → spinta-0.2.dev24/spinta/manifests/sql}/__init__.py +0 -0
  597. {spinta-0.2.dev23/spinta/manifests/tabular → spinta-0.2.dev24/spinta/manifests/sql/commands}/__init__.py +0 -0
  598. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/sql/commands/configure.py +0 -0
  599. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/sql/commands/load.py +0 -0
  600. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/sql/components.py +0 -0
  601. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/sql/helpers.py +0 -0
  602. {spinta-0.2.dev23/spinta/manifests/tabular/commands → spinta-0.2.dev24/spinta/manifests/tabular}/__init__.py +0 -0
  603. {spinta-0.2.dev23/spinta/manifests/tabular/formats → spinta-0.2.dev24/spinta/manifests/tabular/commands}/__init__.py +0 -0
  604. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/tabular/commands/bootstrap.py +0 -0
  605. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/tabular/commands/configure.py +0 -0
  606. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/tabular/commands/load.py +0 -0
  607. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/tabular/constants.py +0 -0
  608. {spinta-0.2.dev23/spinta/manifests/xsd → spinta-0.2.dev24/spinta/manifests/tabular/formats}/__init__.py +0 -0
  609. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/tabular/formats/gsheets.py +0 -0
  610. {spinta-0.2.dev23/spinta/manifests/xsd/commands → spinta-0.2.dev24/spinta/manifests/xsd}/__init__.py +0 -0
  611. {spinta-0.2.dev23/spinta/manifests/yaml → spinta-0.2.dev24/spinta/manifests/xsd/commands}/__init__.py +0 -0
  612. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/xsd/commands/configure.py +0 -0
  613. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/xsd/commands/load.py +0 -0
  614. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/xsd/components.py +0 -0
  615. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/xsd/helpers.py +0 -0
  616. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/xsd2/commands/load.py +0 -0
  617. {spinta-0.2.dev23/spinta/manifests/yaml/commands → spinta-0.2.dev24/spinta/manifests/yaml}/__init__.py +0 -0
  618. {spinta-0.2.dev23/spinta/naming → spinta-0.2.dev24/spinta/manifests/yaml/commands}/__init__.py +0 -0
  619. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/yaml/commands/bootstrap.py +0 -0
  620. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/yaml/commands/configure.py +0 -0
  621. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/yaml/commands/load.py +0 -0
  622. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/yaml/commands/manifest.py +0 -0
  623. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/yaml/commands/migrate.py +0 -0
  624. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/yaml/commands/sync.py +0 -0
  625. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/yaml/components.py +0 -0
  626. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/manifests/yaml/helpers.py +0 -0
  627. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/methods.py +0 -0
  628. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/middlewares.py +0 -0
  629. {spinta-0.2.dev23/spinta/testing/types → spinta-0.2.dev24/spinta/naming}/__init__.py +0 -0
  630. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/naming/components.py +0 -0
  631. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/naming/helpers.py +0 -0
  632. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/naming/ufuncts.py +0 -0
  633. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/nodes.py +0 -0
  634. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/renderer.py +0 -0
  635. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/spyna.py +0 -0
  636. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/templates/base.html +0 -0
  637. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/templates/data.html +0 -0
  638. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/templates/error.html +0 -0
  639. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/templates/form.html +0 -0
  640. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/testing/__init__.py +0 -0
  641. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/testing/cli.py +0 -0
  642. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/testing/client.py +0 -0
  643. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/testing/config.py +0 -0
  644. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/testing/context.py +0 -0
  645. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/testing/csv.py +0 -0
  646. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/testing/data.py +0 -0
  647. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/testing/datasets.py +0 -0
  648. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/testing/dtypes.py +0 -0
  649. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/testing/manifest.py +0 -0
  650. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/testing/migration.py +0 -0
  651. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/testing/push.py +0 -0
  652. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/testing/pytest.py +0 -0
  653. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/testing/request.py +0 -0
  654. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/testing/tabular.py +0 -0
  655. {spinta-0.2.dev23/spinta → spinta-0.2.dev24/spinta/testing}/types/__init__.py +0 -0
  656. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/testing/types/geometry.py +0 -0
  657. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/testing/ufuncs.py +0 -0
  658. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/testing/utils.py +0 -0
  659. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/types/array/check.py +0 -0
  660. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/types/array/resolve.py +0 -0
  661. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/types/command.py +0 -0
  662. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/types/config.py +0 -0
  663. {spinta-0.2.dev23/spinta/types/array → spinta-0.2.dev24/spinta/types/denorm}/__init__.py +0 -0
  664. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/types/denorm/check.py +0 -0
  665. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/types/denorm/link.py +0 -0
  666. {spinta-0.2.dev23/spinta/types/backref → spinta-0.2.dev24/spinta/types/file}/__init__.py +0 -0
  667. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/types/file/components.py +0 -0
  668. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/types/file/decode.py +0 -0
  669. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/types/file/helpers.py +0 -0
  670. {spinta-0.2.dev23/spinta/types/denorm → spinta-0.2.dev24/spinta/types/geometry}/__init__.py +0 -0
  671. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/types/geometry/components.py +0 -0
  672. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/types/geometry/constants.py +0 -0
  673. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/types/geometry/helpers.py +0 -0
  674. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/types/geometry/load.py +0 -0
  675. {spinta-0.2.dev23/spinta/types/file → spinta-0.2.dev24/spinta/types/inherit}/__init__.py +0 -0
  676. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/types/inherit/check.py +0 -0
  677. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/types/namespace.py +0 -0
  678. {spinta-0.2.dev23/spinta/types/geometry → spinta-0.2.dev24/spinta/types/object}/__init__.py +0 -0
  679. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/types/object/check.py +0 -0
  680. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/types/object/link.py +0 -0
  681. {spinta-0.2.dev23/spinta/types/inherit → spinta-0.2.dev24/spinta/types/partial}/__init__.py +0 -0
  682. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/types/partial/link.py +0 -0
  683. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/types/ref/check.py +0 -0
  684. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/types/ref/resolve.py +0 -0
  685. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/types/store.py +0 -0
  686. {spinta-0.2.dev23/spinta/types/object → spinta-0.2.dev24/spinta/types/text}/__init__.py +0 -0
  687. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/types/text/check.py +0 -0
  688. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/types/text/components.py +0 -0
  689. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/types/text/helpers.py +0 -0
  690. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/types/text/load.py +0 -0
  691. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/typing.py +0 -0
  692. {spinta-0.2.dev23/spinta/types/partial → spinta-0.2.dev24/spinta/ufuncs}/__init__.py +0 -0
  693. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/ufuncs/binds.py +0 -0
  694. {spinta-0.2.dev23/spinta/types/ref → spinta-0.2.dev24/spinta/ufuncs/changebase}/__init__.py +0 -0
  695. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/ufuncs/changebase/components.py +0 -0
  696. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/ufuncs/changebase/helpers.py +0 -0
  697. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/ufuncs/changebase/ufuncs.py +0 -0
  698. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/ufuncs/common.py +0 -0
  699. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/ufuncs/components.py +0 -0
  700. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/ufuncs/helpers.py +0 -0
  701. {spinta-0.2.dev23/spinta/types/text → spinta-0.2.dev24/spinta/ufuncs/linkbuilder}/__init__.py +0 -0
  702. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/ufuncs/linkbuilder/components.py +0 -0
  703. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/ufuncs/linkbuilder/ufuncs.py +0 -0
  704. {spinta-0.2.dev23/spinta/ufuncs → spinta-0.2.dev24/spinta/ufuncs/loadbuilder}/__init__.py +0 -0
  705. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/ufuncs/loadbuilder/components.py +0 -0
  706. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/ufuncs/loadbuilder/helpers.py +0 -0
  707. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/ufuncs/loadbuilder/ufuncs.py +0 -0
  708. {spinta-0.2.dev23/spinta/ufuncs/changebase → spinta-0.2.dev24/spinta/ufuncs/propertyresolver}/__init__.py +0 -0
  709. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/ufuncs/propertyresolver/components.py +0 -0
  710. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/ufuncs/propertyresolver/ufuncs.py +0 -0
  711. {spinta-0.2.dev23/spinta/ufuncs/linkbuilder → spinta-0.2.dev24/spinta/ufuncs/querybuilder}/__init__.py +0 -0
  712. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/ufuncs/querybuilder/components.py +0 -0
  713. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/ufuncs/querybuilder/helpers.py +0 -0
  714. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/ufuncs/querybuilder/ufuncs.py +0 -0
  715. {spinta-0.2.dev23/spinta/ufuncs/loadbuilder → spinta-0.2.dev24/spinta/ufuncs/requestparamsbuilder}/__init__.py +0 -0
  716. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/ufuncs/requestparamsbuilder/components.py +0 -0
  717. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/ufuncs/requestparamsbuilder/helpers.py +0 -0
  718. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/ufuncs/requestparamsbuilder/ufuncs.py +0 -0
  719. {spinta-0.2.dev23/spinta/ufuncs/propertyresolver → spinta-0.2.dev24/spinta/ufuncs/resultbuilder}/__init__.py +0 -0
  720. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/ufuncs/resultbuilder/components.py +0 -0
  721. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/ufuncs/resultbuilder/helpers.py +0 -0
  722. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/ufuncs/resultbuilder/ufuncs.py +0 -0
  723. {spinta-0.2.dev23/spinta/ufuncs/querybuilder → spinta-0.2.dev24/spinta/ufuncs/summaryenv}/__init__.py +0 -0
  724. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/ufuncs/summaryenv/components.py +0 -0
  725. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/ufuncs/summaryenv/ufuncs.py +0 -0
  726. {spinta-0.2.dev23/spinta/ufuncs/requestparamsbuilder → spinta-0.2.dev24/spinta/units}/__init__.py +0 -0
  727. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/units/components.py +0 -0
  728. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/units/helpers.py +0 -0
  729. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/utils/__init__.py +0 -0
  730. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/utils/aiotools.py +0 -0
  731. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/utils/changes.py +0 -0
  732. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/utils/collections.py +0 -0
  733. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/utils/config.py +0 -0
  734. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/utils/data.py +0 -0
  735. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/utils/encoding.py +0 -0
  736. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/utils/enums.py +0 -0
  737. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/utils/errors.py +0 -0
  738. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/utils/functools.py +0 -0
  739. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/utils/idgen.py +0 -0
  740. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/utils/imports.py +0 -0
  741. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/utils/itertools.py +0 -0
  742. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/utils/json.py +0 -0
  743. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/utils/nestedstruct.py +0 -0
  744. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/utils/nin.py +0 -0
  745. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/utils/passwords.py +0 -0
  746. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/utils/path.py +0 -0
  747. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/utils/refs.py +0 -0
  748. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/utils/response.py +0 -0
  749. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/utils/schema.py +0 -0
  750. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/utils/scopes.py +0 -0
  751. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/utils/sqlalchemy.py +0 -0
  752. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/utils/sqlite.py +0 -0
  753. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/utils/starlette.py +0 -0
  754. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/utils/streams.py +0 -0
  755. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/utils/tree.py +0 -0
  756. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/utils/types.py +0 -0
  757. {spinta-0.2.dev23 → spinta-0.2.dev24}/spinta/utils/units.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: spinta
3
- Version: 0.2.dev23
3
+ Version: 0.2.dev24
4
4
  Summary: A platform for describing, extracting, transforming, loading and serving open data.
5
5
  License: MIT
6
6
  License-File: LICENSE
@@ -36,6 +36,7 @@ Requires-Dist: alembic (>=1.11.0,<1.12.0) ; extra == "migrations" or extra == "a
36
36
  Requires-Dist: asyncpg
37
37
  Requires-Dist: authlib (>=1.0.0)
38
38
  Requires-Dist: cachetools
39
+ Requires-Dist: cbor2 (>=5.9.0,<6.0.0)
39
40
  Requires-Dist: click
40
41
  Requires-Dist: dask[dataframe]
41
42
  Requires-Dist: docutils (>=0.21.2,<0.22.0)
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "spinta"
3
- version = "0.2dev23"
3
+ version = "0.2dev24"
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"
@@ -116,6 +116,7 @@ cachetools = "*"
116
116
  docutils = "^0.21.2"
117
117
  zeep = "^4.3.1"
118
118
  redis = "^6.4.0"
119
+ cbor2 = "^5.9.0"
119
120
 
120
121
  [tool.poetry.extras]
121
122
  http = ["gunicorn", "uvicorn"]
@@ -13,6 +13,7 @@ from typing import Iterable
13
13
  from typing import List
14
14
  from typing import Optional
15
15
 
16
+ from cbor2 import dumps as cbor_dumps
16
17
  import dateutil
17
18
  import shapely.geometry.base
18
19
  from geoalchemy2.elements import WKTElement, WKBElement
@@ -23,7 +24,7 @@ from spinta import commands
23
24
  from spinta import exceptions
24
25
  from spinta.backends.components import Backend
25
26
  from spinta.backends.components import SelectTree
26
- from spinta.backends.helpers import check_unknown_props, get_select_tree, prepare_response
27
+ from spinta.backends.helpers import check_unknown_props, get_select_tree, prepare_response, is_accessible_by_equals_sign
27
28
  from spinta.backends.helpers import flat_select_to_nested
28
29
  from spinta.backends.helpers import get_model_reserved_props
29
30
  from spinta.backends.helpers import get_select_prop_names
@@ -58,7 +59,19 @@ from spinta.exceptions import (
58
59
  from spinta.exceptions import NoItemRevision
59
60
  from spinta.formats.components import Format
60
61
  from spinta.manifests.components import Manifest
61
- from spinta.types.datatype import Array, ExternalRef, Inherit, PageType, BackRef, ArrayBackRef, Integer, Boolean, Denorm
62
+ from spinta.types.datatype import (
63
+ Array,
64
+ ExternalRef,
65
+ Inherit,
66
+ PageType,
67
+ BackRef,
68
+ ArrayBackRef,
69
+ Integer,
70
+ Boolean,
71
+ Denorm,
72
+ Base32,
73
+ String,
74
+ )
62
75
  from spinta.types.datatype import Binary
63
76
  from spinta.types.datatype import DataType
64
77
  from spinta.types.datatype import Date
@@ -590,12 +603,31 @@ def is_object_id(context: Context, value: str):
590
603
 
591
604
  @is_object_id.register(Context, Backend, Model, str)
592
605
  def is_object_id(context: Context, backend: Backend, model: Model, value: str):
606
+ return is_object_id(context, backend, model.properties["_id"].dtype, value)
607
+
608
+
609
+ @is_object_id.register(Context, Backend, PrimaryKey, str)
610
+ def is_object_id(context: Context, backend: Backend, dtype: PrimaryKey, value: str):
593
611
  try:
594
612
  return uuid.UUID(value).version == 4
595
613
  except ValueError:
596
614
  return False
597
615
 
598
616
 
617
+ @is_object_id.register(Context, Backend, DataType, str)
618
+ def is_object_id(context: Context, backend: Backend, dtype: DataType, value: str):
619
+ candidate = value
620
+ if is_accessible_by_equals_sign(dtype.prop, value):
621
+ if not value.startswith("="):
622
+ return False
623
+ candidate = value[1:]
624
+ try:
625
+ dtype.load(candidate)
626
+ except exceptions.InvalidValue:
627
+ return False
628
+ return True
629
+
630
+
599
631
  @is_object_id.register(Context, Backend, Model, uuid.UUID)
600
632
  def is_object_id(context: Context, backend: Backend, model: Model, value: uuid.UUID):
601
633
  return value.version == 4
@@ -1750,6 +1782,13 @@ def cast_backend_to_python(context: Context, dtype: DataType, backend: Backend,
1750
1782
  return data
1751
1783
 
1752
1784
 
1785
+ @commands.cast_backend_to_python.register(Context, String, Backend, object)
1786
+ def cast_backend_to_python(context: Context, dtype: String, backend: Backend, data: Any, **kwargs) -> Any:
1787
+ if data is None or is_nan(data):
1788
+ return None
1789
+ return str(data)
1790
+
1791
+
1753
1792
  @commands.cast_backend_to_python.register(Context, UUID, Backend, object)
1754
1793
  def cast_backend_to_python(context: Context, dtype: UUID, backend: Backend, data: Any, **kwargs) -> Any:
1755
1794
  if is_nan(data):
@@ -1891,6 +1930,13 @@ def cast_backend_to_python(context: Context, dtype: Ref, backend: Backend, data:
1891
1930
 
1892
1931
  processed_data = {}
1893
1932
  for key in data:
1933
+ if key == "_id":
1934
+ # _id reaches this dispatch already in its final form — produced by
1935
+ # handle_ref_key_assignment for external readers, or read directly
1936
+ # from the storage column for internal backends. Re-applying the
1937
+ # referenced model's _id cast double-encodes Base32 ids.
1938
+ processed_data[key] = data[key]
1939
+ continue
1894
1940
  prop = commands.resolve_property(dtype.prop.model, f"{dtype.prop.place}.{key}")
1895
1941
  if prop is not None:
1896
1942
  processed_data[key] = commands.cast_backend_to_python(context, prop, backend, data[key], **kwargs)
@@ -1939,6 +1985,18 @@ def cast_backend_to_python(context: Context, dtype: Denorm, backend: Backend, da
1939
1985
  return commands.cast_backend_to_python(context, dtype.rel_prop, backend, data, **kwargs)
1940
1986
 
1941
1987
 
1988
+ @commands.cast_backend_to_python.register(Context, Base32, Backend, object)
1989
+ def cast_backend_to_python(context: Context, dtype: Base32, backend: Backend, data: Any, **kwargs) -> Any:
1990
+ if is_nan(data):
1991
+ return None
1992
+ if isinstance(data, (list, tuple)):
1993
+ data = cbor_dumps(list(data))
1994
+ else:
1995
+ data = str(data).encode("utf-8")
1996
+ encoded = base64.b32encode(data)
1997
+ return encoded.rstrip(b"=").decode("utf-8")
1998
+
1999
+
1942
2000
  @commands.reload_backend_metadata.register(Context, Manifest, Backend)
1943
2001
  def reload_backend_metadata(context, manifest, backend):
1944
2002
  pass
@@ -26,7 +26,7 @@ from spinta.components import Model
26
26
  from spinta.components import Namespace
27
27
  from spinta.components import Property
28
28
  from spinta.exceptions import BackendUnavailable
29
- from spinta.types.datatype import DataType, Denorm
29
+ from spinta.types.datatype import DataType, Denorm, String, Base32, PrimaryKey
30
30
  from spinta.utils.data import take
31
31
  from spinta.backends.constants import TableType, BackendOrigin
32
32
 
@@ -596,3 +596,28 @@ def extract_table_data_from_logical_name(table_name: str) -> tuple[str | None, T
596
596
  return data[0], table_type, None
597
597
 
598
598
  return None, None, None
599
+
600
+
601
+ def is_custom_id_prop(prop: Property) -> bool:
602
+ return prop.name == "_id" and not isinstance(prop.dtype, PrimaryKey)
603
+
604
+
605
+ def is_custom_revision_prop(prop: Property) -> bool:
606
+ return prop.name == "_revision" and prop.explicitly_given
607
+
608
+
609
+ def is_accessible_by_equals_sign(id_prop: Property, value: str | int) -> bool:
610
+ if isinstance(id_prop.dtype, Base32):
611
+ return True
612
+
613
+ if isinstance(id_prop.dtype, String):
614
+ return not check_if_model_primary_key_is_composite(id_prop.model)
615
+
616
+ return False
617
+
618
+
619
+ def check_if_model_primary_key_is_composite(model: Model) -> bool:
620
+ pkeys_count = len(model.external.pkeys)
621
+ if pkeys_count > 1:
622
+ return True
623
+ return False
@@ -0,0 +1,113 @@
1
+ from typer import Argument
2
+ from typer import Context as TyperContext
3
+ from typer import Option
4
+ from typer import echo
5
+
6
+ from spinta.cli.helpers.enums import CommentPart
7
+ from spinta.cli.helpers.store import load_manifest
8
+ from spinta.components import Context, Property
9
+ from spinta.core.context import configure_context
10
+ from spinta.core.enums import Access
11
+ from spinta.manifests.components import Manifest
12
+ from spinta.manifests.tabular.helpers import datasets_to_tabular
13
+ from spinta.manifests.tabular.helpers import render_tabular_manifest_rows
14
+ from spinta.manifests.tabular.helpers import write_tabular_manifest
15
+
16
+
17
+ def comment(
18
+ ctx: TyperContext,
19
+ part: CommentPart = Argument(None, help="Part to comment"),
20
+ author: str | None = Option(None, "--author", help="Comment author"),
21
+ uri: str | None = Option(
22
+ None, "--uri", help="URI tag stored on each comment (use with uncomment --uri to restore selectively)"
23
+ ),
24
+ description: str | None = Option(None, "--description", help="Additional description stored on each comment"),
25
+ output: str | None = Option(None, "-o", "--output", help="Output tabular manifest in a specified file"),
26
+ manifests: list[str] = Argument(None, help="Source manifest files"),
27
+ ) -> None:
28
+ """Comment out specific manifest parts so the manifest can be processed further."""
29
+ context: Context = ctx.obj
30
+ context = configure_context(context, manifests)
31
+
32
+ comment_manifest(
33
+ context,
34
+ author=author,
35
+ uri=uri,
36
+ description=description,
37
+ output=output,
38
+ manifests=manifests,
39
+ )
40
+
41
+
42
+ def comment_manifest(
43
+ context: Context,
44
+ author: str | None = None,
45
+ uri: str | None = None,
46
+ description: str | None = None,
47
+ output: str | None = None,
48
+ manifests: list[str] | None = None,
49
+ ) -> None:
50
+ verbose = bool(output)
51
+ context = configure_context(context, manifests)
52
+ store = load_manifest(
53
+ context,
54
+ load_internal=False,
55
+ verbose=verbose,
56
+ full_load=True,
57
+ )
58
+
59
+ _update_systemic_comments(context, store.manifest, author=author, uri=uri, description=description)
60
+ rows = datasets_to_tabular(context, store.manifest, external=False, access=Access.private)
61
+
62
+ if output:
63
+ write_tabular_manifest(context, output, rows)
64
+ else:
65
+ manager = context.get("error_manager")
66
+ handler = manager.handler
67
+ table = render_tabular_manifest_rows(rows)
68
+ if handler.get_counts():
69
+ handler.post_process()
70
+ else:
71
+ echo(table)
72
+
73
+
74
+ def _update_systemic_comments(
75
+ context: Context,
76
+ manifest: Manifest,
77
+ *,
78
+ author: str | None = None,
79
+ uri: str | None = None,
80
+ description: str | None = None,
81
+ ) -> None:
82
+ """Update author/uri/description on comment type properties."""
83
+ from spinta import commands
84
+
85
+ if all(argument is None for argument in [author, uri, description]):
86
+ return
87
+
88
+ models = commands.get_models(context, manifest)
89
+ for model in models.values():
90
+ for prop in model.properties.values():
91
+ _patch_property_restore_comments(prop, author=author, uri=uri, description=description)
92
+
93
+
94
+ def _patch_property_restore_comments(
95
+ prop: Property,
96
+ *,
97
+ author: str | None,
98
+ uri: str | None,
99
+ description: str | None,
100
+ ) -> None:
101
+ if not prop.comments:
102
+ return
103
+
104
+ for comment in prop.comments:
105
+ if not comment.prepare or not comment.prepare.startswith("update"):
106
+ continue
107
+
108
+ if author is not None:
109
+ comment.author = author
110
+ if uri is not None:
111
+ comment.uri = uri
112
+ if description is not None:
113
+ comment.comment = description
@@ -0,0 +1,5 @@
1
+ from enum import Enum
2
+
3
+
4
+ class CommentPart(str, Enum):
5
+ missing_external_refs = "missing-external-refs"
@@ -17,6 +17,8 @@ from spinta.cli import data
17
17
  from spinta.cli import inspect
18
18
  from spinta.cli import manifest
19
19
  from spinta.cli import migrate
20
+ from spinta.cli.comment import comment
21
+ from spinta.cli.uncomment import uncomment
20
22
  from spinta.cli import pii
21
23
  from spinta.cli import pull
22
24
  from spinta.cli import push
@@ -45,6 +47,8 @@ add(app, "inspect", inspect.inspect, short_help=("Update manifest schema from an
45
47
  add(app, "pii", pii.app, short_help="Manage Person Identifying Information")
46
48
 
47
49
  add(app, "copy", manifest.copy, short_help="Copy only specified metadata from a manifest")
50
+ add(app, "comment", comment, short_help="Comment unsupported functionality in a manifest")
51
+ add(app, "uncomment", uncomment, short_help="Restore commented parts of a manifest")
48
52
  add(app, "show", show, short_help="Show manifest as ascii table")
49
53
 
50
54
  add(app, "bootstrap", migrate.bootstrap, short_help="Initialize backends")
@@ -1,6 +1,5 @@
1
1
  from typing import Iterator, Union
2
2
  from typing import List
3
- from typing import Optional
4
3
 
5
4
  from typer import Argument
6
5
  from typer import Context as TyperContext
@@ -36,9 +35,10 @@ def copy(
36
35
  # https://github.com/tiangolo/typer/issues/151
37
36
  access: str = Option("private", help=("Copy properties with at least specified access")),
38
37
  format_names: bool = Option(False, help=("Reformat model and property names.")),
39
- output: Optional[str] = Option(None, "-o", "--output", help=("Output tabular manifest in a specified file")),
40
- columns: Optional[str] = Option(None, "-c", "--columns", help=("Comma separated list of columns")),
41
- order_by: Optional[str] = Option(
38
+ output: str | None = Option(None, "-o", "--output", help=("Output tabular manifest in a specified file")),
39
+ dataset: str | None = Option(None, "-d", "--dataset", help=("Main dataset name")),
40
+ columns: str | None = Option(None, "-c", "--columns", help=("Comma separated list of columns")),
41
+ order_by: str | None = Option(
42
42
  None, help=("Order by a specified column (currently only access column is supported)")
43
43
  ),
44
44
  rename_duplicates: bool = Option(False, help=("Rename duplicate model names by adding number suffix")),
@@ -57,6 +57,7 @@ def copy(
57
57
  order_by=order_by,
58
58
  rename_duplicates=rename_duplicates,
59
59
  manifests=manifests,
60
+ dataset=dataset,
60
61
  )
61
62
 
62
63
 
@@ -65,12 +66,13 @@ def copy_manifest(
65
66
  source: bool = True,
66
67
  access: str = "private",
67
68
  format_names: bool = False,
68
- output: Optional[str] = None,
69
- columns: Optional[str] = None,
70
- order_by: Optional[str] = None,
69
+ output: str | None = None,
70
+ columns: str | None = None,
71
+ order_by: str | None = None,
71
72
  rename_duplicates: bool = False,
72
73
  manifests: List[str] = None,
73
- output_type: Optional[str] = None,
74
+ output_type: str | None = None,
75
+ dataset: str | None = None,
74
76
  ):
75
77
  """Copy models from CSV manifest files into another CSV manifest file"""
76
78
  access = get_enum_by_name(Access, access)
@@ -113,7 +115,7 @@ def copy_manifest(
113
115
  )
114
116
  if output:
115
117
  if output_type == "mermaid":
116
- write_mermaid_manifest(context, output, rows)
118
+ write_mermaid_manifest(context, rows, dataset, output)
117
119
  elif internal:
118
120
  write_internal_sql_manifest(context, output, rows)
119
121
  else:
@@ -0,0 +1,110 @@
1
+ import csv
2
+ import pathlib
3
+ import re
4
+
5
+ from typer import Argument
6
+ from typer import Context as TyperContext
7
+ from typer import Option
8
+ from typer import echo
9
+
10
+ from spinta.components import Context
11
+ from spinta.manifests.tabular.components import MANIFEST_COLUMNS
12
+ from spinta.manifests.tabular.components import ManifestRow
13
+ from spinta.manifests.tabular.helpers import render_tabular_manifest_rows
14
+ from spinta.manifests.tabular.helpers import torow
15
+ from spinta.manifests.tabular.helpers import write_tabular_manifest
16
+
17
+
18
+ UPDATE_FUNCTION = "update"
19
+ COLUMN_TYPE_COMMENT = "comment"
20
+
21
+
22
+ def uncomment(
23
+ ctx: TyperContext,
24
+ uri: str | None = Option(None, "--uri", help="Only restore comments that carry this URI tag"),
25
+ output: str | None = Option(None, "-o", "--output", help="Output tabular manifest in a specified file"),
26
+ manifests: list[str] = Argument(None, help="Source manifest files"),
27
+ ):
28
+ """Restore commented-out properties."""
29
+ context: Context = ctx.obj
30
+ uncomment_manifest(context, uri=uri, output=output, manifests=manifests)
31
+
32
+
33
+ def uncomment_manifest(
34
+ context: Context,
35
+ uri: str | None = None,
36
+ output: str | None = None,
37
+ manifests: list[str] | None = None,
38
+ ) -> None:
39
+ """Read raw CSV rows, remove `update` comments, and write the result."""
40
+ rows = _read_raw_manifest_rows(manifests or [])
41
+ result = _uncomment_rows(rows, uri_filter=uri)
42
+ if output:
43
+ write_tabular_manifest(context, output, iter(result))
44
+ else:
45
+ echo(render_tabular_manifest_rows(iter(result)))
46
+
47
+
48
+ def _read_raw_manifest_rows(manifests: list[str]) -> list[ManifestRow]:
49
+ """Read CSV manifest files as raw dicts, normalising to MANIFEST_COLUMNS keys."""
50
+ rows = []
51
+ for path in manifests:
52
+ with pathlib.Path(path).open(encoding="utf-8-sig") as file:
53
+ reader = csv.DictReader(file)
54
+ for raw in reader:
55
+ rows.append(torow(MANIFEST_COLUMNS, raw))
56
+ return rows
57
+
58
+
59
+ def _parse_update_fields(prepare: str) -> dict[str, str]:
60
+ """Parse 'update(key1:val1, key2:val2, ...)' into {'key1': 'val1', 'key2': 'val2', ...}.
61
+
62
+ Splits on commas only when followed by a word-colon pattern, so values containing
63
+ commas inside brackets (e.g. ref:example2/City[id, name]) are handled correctly.
64
+ """
65
+ match = re.match(rf"{UPDATE_FUNCTION}\((.+)\)\s*$", (prepare or "").strip())
66
+ if not match:
67
+ return {}
68
+ parts = re.split(r",\s*(?=\w+:)", match.group(1))
69
+ result = {}
70
+ for part in parts:
71
+ key, _, value = part.partition(":")
72
+ result[key.strip()] = value.strip().strip('"')
73
+ return result
74
+
75
+
76
+ def _is_restore_comment(row: ManifestRow) -> bool:
77
+ prepare = row.get("prepare") or ""
78
+ return row.get("type") == COLUMN_TYPE_COMMENT and prepare.startswith(UPDATE_FUNCTION)
79
+
80
+
81
+ def _uncomment_rows(rows: list[ManifestRow], uri_filter: str | None) -> list[ManifestRow]:
82
+ """
83
+ Walk rows in order. When an `update` comment is found (and passes the URI filter),
84
+ patch the most recent property row in result and drop the comment row.
85
+ """
86
+ result: list[ManifestRow] = []
87
+ last_property_index: int | None = None
88
+
89
+ for row in rows:
90
+ if _is_restore_comment(row):
91
+ # Restore only rows that match the `uri` if it is given by input;
92
+ if uri_filter is not None and row.get("uri") != uri_filter:
93
+ result.append(row)
94
+ continue
95
+
96
+ # Parse the expression and apply field to the last seen row (comments go after the row they change);
97
+ fields = _parse_update_fields(row.get("prepare", ""))
98
+ if fields and last_property_index is not None:
99
+ prop_row: dict = dict(result[last_property_index])
100
+ for key, value in fields.items():
101
+ prop_row[key] = value
102
+ prop_row["level"] = row.get("level") or ""
103
+ result[last_property_index] = prop_row
104
+ else:
105
+ # If it's not an `update` comment, append to the result as-is;
106
+ if row.get("property"):
107
+ last_property_index = len(result)
108
+ result.append(row)
109
+
110
+ return result
@@ -38,6 +38,7 @@ if TYPE_CHECKING:
38
38
  from spinta.accesslog import AccessLog
39
39
  from spinta.formats.components import Format
40
40
  from spinta.dimensions.comments.components import Comment
41
+ from spinta.dimensions.scope.components import Scope
41
42
 
42
43
 
43
44
  class Context:
@@ -620,6 +621,14 @@ def page_in_data(data: dict) -> bool:
620
621
  return "_page" in data
621
622
 
622
623
 
624
+ def revision_in_data(data: dict) -> bool:
625
+ return "_revision" in data
626
+
627
+
628
+ def check_if_revision_explicit(prop: Property) -> bool:
629
+ return prop.name == "_revision" and prop.explicitly_given
630
+
631
+
623
632
  class ParamsPage:
624
633
  values: List[Any]
625
634
  size: int
@@ -642,6 +651,7 @@ class Model(MetaData):
642
651
  description: str
643
652
  ns: Namespace
644
653
  external: Entity = None
654
+ scopes: Dict[str, Scope]
645
655
  properties: Dict[str, Property]
646
656
  mode: Mode = None
647
657
  given: ModelGiven
@@ -666,6 +676,7 @@ class Model(MetaData):
666
676
  "unique": {"default": []},
667
677
  "base": {},
668
678
  "link": {},
679
+ "scopes": {"default": {}},
669
680
  "properties": {"default": {}},
670
681
  "external": {},
671
682
  "level": {
@@ -884,6 +895,7 @@ class Attachment:
884
895
  class UrlParseNode(TypedDict):
885
896
  name: str
886
897
  args: List[Any]
898
+ id_prop: Property
887
899
 
888
900
 
889
901
  class UrlParams:
@@ -165,6 +165,7 @@ CONFIG = {
165
165
  "partial_array": "spinta.types.datatype:PartialArray",
166
166
  "uuid": "spinta.types.datatype:UUID",
167
167
  "unknown": "spinta.types.datatype:Unknown",
168
+ "base32": "spinta.types.datatype:Base32",
168
169
  },
169
170
  "urlparams": {
170
171
  "component": "spinta.urlparams:UrlParams",
@@ -9,6 +9,7 @@ from spinta.utils.enums import enum_by_name, get_enum_by_name
9
9
 
10
10
  if TYPE_CHECKING:
11
11
  from spinta.dimensions.enum.components import EnumItem
12
+ from spinta.dimensions.scope.components import Scope
12
13
  from spinta.components import Model
13
14
  from spinta.components import Namespace
14
15
  from spinta.components import Property
@@ -25,6 +26,7 @@ def load_access_param(
25
26
  Model,
26
27
  Property,
27
28
  EnumItem,
29
+ Scope,
28
30
  ],
29
31
  given_access: Union[str, Access],
30
32
  parents: Iterable[
@@ -15,16 +15,17 @@ from spinta.core.ufuncs import Expr, Env
15
15
  from spinta.datasets.backends.dataframe.components import DaskBackend
16
16
  from spinta.datasets.backends.dataframe.backends.memory.components import MemoryDaskBackend
17
17
  from spinta.datasets.backends.dataframe.ufuncs.query.components import DaskDataFrameQueryBuilder
18
+ from spinta.backends.helpers import is_custom_id_prop
18
19
  from spinta.datasets.backends.helpers import handle_ref_key_assignment
19
20
  from spinta.datasets.components import Resource
20
- from spinta.datasets.helpers import get_enum_filters, get_ref_filters
21
+ from spinta.datasets.helpers import get_enum_filters, get_ref_filters, encode_composite_string_id
21
22
  from spinta.datasets.keymaps.components import KeyMap
22
23
  from spinta.datasets.utils import iterparams
23
24
  from spinta.dimensions.enum.helpers import get_prop_enum
24
25
  from spinta.dimensions.param.components import ResolvedParams
25
26
  from spinta.exceptions import PropertyNotFound, NoExternalName, ValueNotInEnum
26
27
  from spinta.manifests.components import Manifest
27
- from spinta.types.datatype import PrimaryKey, Ref, DataType, Boolean, Number, Integer, DateTime
28
+ from spinta.types.datatype import PrimaryKey, Ref, DataType, Boolean, Number, Integer, DateTime, Base32
28
29
  from spinta.typing import ObjectData
29
30
  from spinta.ufuncs.querybuilder.components import Selected
30
31
  from spinta.ufuncs.helpers import merge_formulas
@@ -284,6 +285,8 @@ def dask_get_all(
284
285
  val = keymap.encode(sel.prop.model.model_type(), val)
285
286
  elif isinstance(sel.prop.dtype, Ref):
286
287
  val = handle_ref_key_assignment(context, keymap, env, val, sel.prop.dtype)
288
+ elif is_custom_id_prop(sel.prop) and isinstance(val, list) and not isinstance(sel.prop.dtype, Base32):
289
+ val = encode_composite_string_id(val, model.external.pkeys)
287
290
  res[key] = val
288
291
  res = commands.cast_backend_to_python(context, model, backend, res, extra_properties=extra_properties)
289
292
  yield res
@@ -6,6 +6,7 @@ from typing import Dict, Any, Tuple, List, Iterator
6
6
  from dask.dataframe import Series
7
7
 
8
8
  from spinta.auth import authorized
9
+ from spinta.backends.helpers import is_custom_id_prop, is_custom_revision_prop
9
10
  from spinta.components import Property
10
11
  from spinta.core.enums import Action
11
12
  from spinta.core.ufuncs import Expr, ufunc, Bind, Unresolved, GetAttr
@@ -166,7 +167,9 @@ def select(env: DaskDataFrameQueryBuilder, expr: Expr):
166
167
  else:
167
168
  raise PropertyNotFound(env.model, property=resolved[selected_key])
168
169
  else:
169
- for prop in take(["_id", all], env.model.properties).values():
170
+ for prop in take(["_id", "_revision", all], env.model.properties).values():
171
+ if prop.name == "_revision" and not is_custom_revision_prop(prop):
172
+ continue
170
173
  if authorized(env.context, prop, Action.GETALL):
171
174
  env.selected[prop.place] = env.call("select", prop)
172
175
 
@@ -238,6 +241,13 @@ def select(env: DaskDataFrameQueryBuilder, prop: Property) -> Selected:
238
241
  elif prop.external and prop.external.name:
239
242
  # If prepare is not given, then take value from `source`.
240
243
  result = env.call("select", prop.dtype)
244
+ elif is_custom_id_prop(prop):
245
+ pkeys = prop.model.external.pkeys or list(take(prop.model.properties).values())
246
+ if len(pkeys) == 1:
247
+ prep = env.call("select", pkeys[0])
248
+ else:
249
+ prep = [env.call("select", pk) for pk in pkeys]
250
+ result = Selected(prop=prop, prep=prep)
241
251
  elif prop.is_reserved():
242
252
  # Reserved properties never have external source.
243
253
  result = env.call("select", prop.dtype)
@@ -3,6 +3,7 @@ import pathlib
3
3
  from typing import Any
4
4
 
5
5
  from spinta import commands, spyna
6
+ from spinta.backends.helpers import is_custom_id_prop
6
7
  from spinta.components import Property, Model, Context
7
8
  from spinta.core.enums import Mode
8
9
  from spinta.core.ufuncs import Env, asttoexpr
@@ -49,7 +50,7 @@ def handle_ref_key_assignment(context: Context, keymap: KeyMap, env: Env, value:
49
50
 
50
51
  val = None
51
52
  contains = None
52
- if ref.refprops[0].name != "_id":
53
+ if ref.refprops[0].name != "_id" and not is_custom_id_prop(ref.model.properties["_id"]):
53
54
  contains = keymap.contains(keymap_name, target_value)
54
55
  if not contains:
55
56
  if target_value is None: