spinta 0.2.dev12__tar.gz → 0.2.dev13__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 (758) hide show
  1. {spinta-0.2.dev12 → spinta-0.2.dev13}/PKG-INFO +1 -1
  2. {spinta-0.2.dev12 → spinta-0.2.dev13}/pyproject.toml +1 -1
  3. spinta-0.2.dev13/spinta/__init__.py +3 -0
  4. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/api/__init__.py +1 -1
  5. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/asgi.py +1 -8
  6. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/auth.py +122 -27
  7. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/mongo/ufuncs/ufuncs.py +5 -0
  8. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/types/geometry/encode.py +2 -2
  9. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/ufuncs/query/ufuncs.py +6 -0
  10. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/main.py +15 -10
  11. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/manifest.py +2 -2
  12. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/components.py +18 -0
  13. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/config.py +2 -2
  14. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/core/config.py +2 -2
  15. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/core/enums.py +6 -0
  16. spinta-0.2.dev13/spinta/datasets/backends/sql/backends/oracle/helpers.py +88 -0
  17. spinta-0.2.dev13/spinta/datasets/backends/sql/backends/oracle/types/geometry/encode.py +40 -0
  18. spinta-0.2.dev13/spinta/datasets/backends/sql/backends/oracle/ufuncs/query/ufuncs.py +52 -0
  19. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/commands/load.py +6 -2
  20. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/exceptions.py +8 -0
  21. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/formats/html/commands.py +1 -1
  22. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/logging_config.py +6 -4
  23. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/helpers.py +1 -1
  24. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/open_api/openapi_generator.py +1 -1
  25. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/sql/helpers.py +2 -0
  26. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/testing/pytest.py +8 -0
  27. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/types/config.py +10 -1
  28. spinta-0.2.dev13/spinta/types/geometry/constants.py +4 -0
  29. {spinta-0.2.dev12/spinta/backends/postgresql → spinta-0.2.dev13/spinta}/types/geometry/helpers.py +36 -7
  30. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/types/store.py +8 -3
  31. spinta-0.2.dev13/spinta/ufuncs/summaryenv/__init__.py +0 -0
  32. spinta-0.2.dev13/spinta/units/__init__.py +0 -0
  33. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/urlparams.py +1 -1
  34. spinta-0.2.dev12/spinta/__init__.py +0 -9
  35. spinta-0.2.dev12/spinta/datasets/backends/sql/backends/oracle/helpers.py +0 -62
  36. spinta-0.2.dev12/spinta/datasets/backends/sql/backends/oracle/ufuncs/query/ufuncs.py +0 -16
  37. spinta-0.2.dev12/spinta/types/geometry/constants.py +0 -3
  38. spinta-0.2.dev12/spinta/types/geometry/helpers.py +0 -33
  39. {spinta-0.2.dev12 → spinta-0.2.dev13}/LICENSE +0 -0
  40. {spinta-0.2.dev12 → spinta-0.2.dev13}/README.rst +0 -0
  41. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/__main__.py +0 -0
  42. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/accesslog/__init__.py +0 -0
  43. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/accesslog/file.py +0 -0
  44. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/accesslog/python.py +0 -0
  45. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/api/inspect.py +0 -0
  46. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/api/schema.py +0 -0
  47. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/api/validators.py +0 -0
  48. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/__init__.py +0 -0
  49. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/components.py +0 -0
  50. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/constants.py +0 -0
  51. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/fs/__init__.py +0 -0
  52. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/fs/commands/__init__.py +0 -0
  53. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/fs/commands/bootstrap.py +0 -0
  54. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/fs/commands/changes.py +0 -0
  55. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/fs/commands/decode.py +0 -0
  56. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/fs/commands/encode.py +0 -0
  57. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/fs/commands/init.py +0 -0
  58. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/fs/commands/load.py +0 -0
  59. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/fs/commands/migrate.py +0 -0
  60. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/fs/commands/read.py +0 -0
  61. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/fs/commands/validate.py +0 -0
  62. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/fs/commands/wait.py +0 -0
  63. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/fs/commands/wipe.py +0 -0
  64. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/fs/commands/write.py +0 -0
  65. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/fs/components.py +0 -0
  66. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/helpers.py +0 -0
  67. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/memory/__init__.py +0 -0
  68. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/memory/commands/__init__.py +0 -0
  69. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/memory/commands/auth.py +0 -0
  70. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/memory/commands/bootstrap.py +0 -0
  71. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/memory/commands/changes.py +0 -0
  72. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/memory/commands/check.py +0 -0
  73. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/memory/commands/encode.py +0 -0
  74. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/memory/commands/init.py +0 -0
  75. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/memory/commands/load.py +0 -0
  76. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/memory/commands/manifest.py +0 -0
  77. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/memory/commands/read.py +0 -0
  78. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/memory/commands/wait.py +0 -0
  79. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/memory/commands/wipe.py +0 -0
  80. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/memory/commands/write.py +0 -0
  81. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/memory/components.py +0 -0
  82. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/mongo/__init__.py +0 -0
  83. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/mongo/commands/__init__.py +0 -0
  84. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/mongo/commands/bootstrap.py +0 -0
  85. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/mongo/commands/changes.py +0 -0
  86. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/mongo/commands/encode.py +0 -0
  87. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/mongo/commands/freeze.py +0 -0
  88. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/mongo/commands/init.py +0 -0
  89. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/mongo/commands/load.py +0 -0
  90. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/mongo/commands/migrate.py +0 -0
  91. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/mongo/commands/read.py +0 -0
  92. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/mongo/commands/validate.py +0 -0
  93. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/mongo/commands/wait.py +0 -0
  94. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/mongo/commands/wipe.py +0 -0
  95. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/mongo/commands/write.py +0 -0
  96. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/mongo/components.py +0 -0
  97. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/mongo/helpers.py +0 -0
  98. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/mongo/types/__init__.py +0 -0
  99. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/mongo/types/array/__init__.py +0 -0
  100. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/mongo/types/array/write.py +0 -0
  101. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/mongo/types/file/__init__.py +0 -0
  102. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/mongo/types/file/write.py +0 -0
  103. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/mongo/types/object/__init__.py +0 -0
  104. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/mongo/types/object/write.py +0 -0
  105. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/mongo/ufuncs/__init__.py +0 -0
  106. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/mongo/ufuncs/components.py +0 -0
  107. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/nobackend/__init__.py +0 -0
  108. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/nobackend/commands/__init__.py +0 -0
  109. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/nobackend/commands/bootstrap.py +0 -0
  110. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/nobackend/commands/changes.py +0 -0
  111. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/nobackend/commands/init.py +0 -0
  112. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/nobackend/commands/load.py +0 -0
  113. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/nobackend/commands/read.py +0 -0
  114. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/nobackend/commands/wait.py +0 -0
  115. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/nobackend/commands/wipe.py +0 -0
  116. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/nobackend/commands/write.py +0 -0
  117. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/nobackend/components.py +0 -0
  118. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/__init__.py +0 -0
  119. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/commands/__init__.py +0 -0
  120. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/commands/bootstrap.py +0 -0
  121. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/commands/changes.py +0 -0
  122. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/commands/column.py +0 -0
  123. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/commands/encode.py +0 -0
  124. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/commands/freeze.py +0 -0
  125. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/commands/init.py +0 -0
  126. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/commands/link.py +0 -0
  127. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/commands/load.py +0 -0
  128. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/commands/manifest.py +0 -0
  129. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/commands/migrate/__init__.py +0 -0
  130. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/commands/migrate/constants.py +0 -0
  131. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/commands/migrate/migrate.py +0 -0
  132. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/commands/migrate/model.py +0 -0
  133. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/commands/migrate/property.py +0 -0
  134. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/commands/migrate/types/__init__.py +0 -0
  135. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/commands/migrate/types/array.py +0 -0
  136. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/commands/migrate/types/datatype.py +0 -0
  137. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/commands/migrate/types/file.py +0 -0
  138. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/commands/migrate/types/geometry.py +0 -0
  139. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/commands/migrate/types/object.py +0 -0
  140. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/commands/migrate/types/ref.py +0 -0
  141. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/commands/migrate/types/string.py +0 -0
  142. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/commands/migrate/types/text.py +0 -0
  143. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/commands/read.py +0 -0
  144. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/commands/redirect.py +0 -0
  145. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/commands/summary.py +0 -0
  146. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/commands/validate.py +0 -0
  147. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/commands/wait.py +0 -0
  148. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/commands/wipe.py +0 -0
  149. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/commands/write.py +0 -0
  150. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/components.py +0 -0
  151. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/constants.py +0 -0
  152. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/files.py +0 -0
  153. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/helpers/__init__.py +0 -0
  154. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/helpers/changes.py +0 -0
  155. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/helpers/exceptions.py +0 -0
  156. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/helpers/extractors.py +0 -0
  157. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/helpers/manifest.py +0 -0
  158. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/helpers/migrate/__init__.py +0 -0
  159. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/helpers/migrate/actions.py +0 -0
  160. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/helpers/migrate/migrate.py +0 -0
  161. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/helpers/name.py +0 -0
  162. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/helpers/redirect.py +0 -0
  163. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/helpers/type.py +0 -0
  164. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/helpers/validate.py +0 -0
  165. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/sqlalchemy.py +0 -0
  166. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/types/__init__.py +0 -0
  167. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/types/array/__init__.py +0 -0
  168. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/types/array/freeze.py +0 -0
  169. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/types/array/init.py +0 -0
  170. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/types/array/wipe.py +0 -0
  171. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/types/array/write.py +0 -0
  172. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/types/array_backref/__init__.py +0 -0
  173. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/types/array_backref/init.py +0 -0
  174. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/types/backref/__init__.py +0 -0
  175. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/types/backref/init.py +0 -0
  176. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/types/denorm/__init__.py +0 -0
  177. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/types/denorm/init.py +0 -0
  178. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/types/external_ref/__init__.py +0 -0
  179. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/types/external_ref/init.py +0 -0
  180. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/types/file/__init__.py +0 -0
  181. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/types/file/freeze.py +0 -0
  182. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/types/file/init.py +0 -0
  183. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/types/file/read.py +0 -0
  184. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/types/file/write.py +0 -0
  185. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/types/geometry/__init__.py +0 -0
  186. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/types/geometry/init.py +0 -0
  187. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/types/geometry/write.py +0 -0
  188. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/types/object/__init__.py +0 -0
  189. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/types/object/freeze.py +0 -0
  190. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/types/object/init.py +0 -0
  191. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/types/object/read.py +0 -0
  192. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/types/object/wipe.py +0 -0
  193. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/types/ref/__init__.py +0 -0
  194. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/types/ref/freeze.py +0 -0
  195. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/types/ref/init.py +0 -0
  196. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/types/ref/validate.py +0 -0
  197. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/types/text/__init__.py +0 -0
  198. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/types/text/init.py +0 -0
  199. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/ufuncs/__init__.py +0 -0
  200. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/ufuncs/components.py +0 -0
  201. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/ufuncs/query/__init__.py +0 -0
  202. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/ufuncs/query/components.py +0 -0
  203. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/ufuncs/result/__init__.py +0 -0
  204. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/ufuncs/result/components.py +0 -0
  205. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/ufuncs/result/ufuncs.py +0 -0
  206. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/postgresql/ufuncs/ufuncs.py +0 -0
  207. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/backends/types/__init__.py +0 -0
  208. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/__init__.py +0 -0
  209. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/admin.py +0 -0
  210. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/auth.py +0 -0
  211. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/config.py +0 -0
  212. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/data.py +0 -0
  213. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/get.py +0 -0
  214. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/__init__.py +0 -0
  215. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/admin/__init__.py +0 -0
  216. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/admin/components.py +0 -0
  217. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/admin/registry.py +0 -0
  218. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/admin/scripts/__init__.py +0 -0
  219. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/admin/scripts/changelog.py +0 -0
  220. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/admin/scripts/deduplicate.py +0 -0
  221. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/auth.py +0 -0
  222. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/data.py +0 -0
  223. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/errors.py +0 -0
  224. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/export/__init__.py +0 -0
  225. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/export/backends/__init__.py +0 -0
  226. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/export/backends/postgresql/__init__.py +0 -0
  227. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/export/backends/postgresql/commands.py +0 -0
  228. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/export/backends/postgresql/components.py +0 -0
  229. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/export/backends/postgresql/helpers.py +0 -0
  230. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/export/commands.py +0 -0
  231. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/export/components.py +0 -0
  232. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/export/helpers.py +0 -0
  233. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/manifest.py +0 -0
  234. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/message.py +0 -0
  235. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/migrate.py +0 -0
  236. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/push/__init__.py +0 -0
  237. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/push/components.py +0 -0
  238. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/push/delete.py +0 -0
  239. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/push/error.py +0 -0
  240. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/push/read.py +0 -0
  241. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/push/state.py +0 -0
  242. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/push/sync.py +0 -0
  243. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/push/utils.py +0 -0
  244. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/push/write.py +0 -0
  245. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/script/__init__.py +0 -0
  246. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/script/components.py +0 -0
  247. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/script/core.py +0 -0
  248. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/script/helpers.py +0 -0
  249. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/script/registry.py +0 -0
  250. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/store.py +0 -0
  251. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/sync/__init__.py +0 -0
  252. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/sync/api_helpers.py +0 -0
  253. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/sync/controllers/__init__.py +0 -0
  254. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/sync/controllers/data_service.py +0 -0
  255. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/sync/controllers/dataset.py +0 -0
  256. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/sync/controllers/distribution.py +0 -0
  257. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/sync/controllers/dsa.py +0 -0
  258. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/sync/controllers/synchronization/__init__.py +0 -0
  259. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/sync/controllers/synchronization/catalog_to_agent.py +0 -0
  260. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/sync/enum.py +0 -0
  261. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/sync/helpers.py +0 -0
  262. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/typer.py +0 -0
  263. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/upgrade/__init__.py +0 -0
  264. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/upgrade/components.py +0 -0
  265. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/upgrade/registry.py +0 -0
  266. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/upgrade/scripts/__init__.py +0 -0
  267. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/upgrade/scripts/backends/__init__.py +0 -0
  268. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/upgrade/scripts/backends/postgresql/__init__.py +0 -0
  269. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/upgrade/scripts/backends/postgresql/comments.py +0 -0
  270. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/upgrade/scripts/clients.py +0 -0
  271. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/upgrade/scripts/keymaps/__init__.py +0 -0
  272. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/upgrade/scripts/keymaps/sqlalchemy/__init__.py +0 -0
  273. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/upgrade/scripts/keymaps/sqlalchemy/helpers.py +0 -0
  274. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/upgrade/scripts/keymaps/sqlalchemy/initial_setup.py +0 -0
  275. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/upgrade/scripts/keymaps/sqlalchemy/modified_time.py +0 -0
  276. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/upgrade/scripts/keymaps/sqlalchemy/redirect_support.py +0 -0
  277. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/helpers/upgrade/scripts/redirect.py +0 -0
  278. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/init.py +0 -0
  279. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/inspect.py +0 -0
  280. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/keymap.py +0 -0
  281. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/migrate.py +0 -0
  282. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/pii.py +0 -0
  283. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/pull.py +0 -0
  284. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/push.py +0 -0
  285. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/server.py +0 -0
  286. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/show.py +0 -0
  287. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/sync.py +0 -0
  288. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/cli/upgrade.py +0 -0
  289. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/client.py +0 -0
  290. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/commands/__init__.py +0 -0
  291. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/commands/auth.py +0 -0
  292. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/commands/helpers.py +0 -0
  293. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/commands/read.py +0 -0
  294. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/commands/search.py +0 -0
  295. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/commands/version.py +0 -0
  296. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/commands/write.py +0 -0
  297. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/compat.py +0 -0
  298. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/config.yml +0 -0
  299. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/core/__init__.py +0 -0
  300. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/core/access.py +0 -0
  301. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/core/context.py +0 -0
  302. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/core/ufuncs.py +0 -0
  303. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/__init__.py +0 -0
  304. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/__init__.py +0 -0
  305. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/dataframe/__init__.py +0 -0
  306. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/dataframe/backends/__init__.py +0 -0
  307. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/dataframe/backends/csv/__init__.py +0 -0
  308. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/dataframe/backends/csv/commands/__init__.py +0 -0
  309. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/dataframe/backends/csv/commands/read.py +0 -0
  310. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/dataframe/backends/csv/components.py +0 -0
  311. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/dataframe/backends/json/__init__.py +0 -0
  312. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/dataframe/backends/json/commands/__init__.py +0 -0
  313. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/dataframe/backends/json/commands/read.py +0 -0
  314. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/dataframe/backends/json/components.py +0 -0
  315. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/dataframe/backends/memory/__init__.py +0 -0
  316. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/dataframe/backends/memory/components.py +0 -0
  317. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/dataframe/backends/soap/__init__.py +0 -0
  318. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/dataframe/backends/soap/commands/__init__.py +0 -0
  319. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/dataframe/backends/soap/commands/read.py +0 -0
  320. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/dataframe/backends/soap/components.py +0 -0
  321. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/dataframe/backends/soap/ufuncs/__init__.py +0 -0
  322. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/dataframe/backends/soap/ufuncs/components.py +0 -0
  323. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/dataframe/backends/soap/ufuncs/ufuncs.py +0 -0
  324. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/dataframe/backends/xml/__init__.py +0 -0
  325. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/dataframe/backends/xml/commands/__init__.py +0 -0
  326. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/dataframe/backends/xml/commands/read.py +0 -0
  327. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/dataframe/backends/xml/components.py +0 -0
  328. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/dataframe/commands/__init__.py +0 -0
  329. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/dataframe/commands/read.py +0 -0
  330. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/dataframe/components.py +0 -0
  331. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/dataframe/ufuncs/__init__.py +0 -0
  332. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/dataframe/ufuncs/components.py +0 -0
  333. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/dataframe/ufuncs/query/__init__.py +0 -0
  334. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/dataframe/ufuncs/query/components.py +0 -0
  335. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/dataframe/ufuncs/query/ufuncs.py +0 -0
  336. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/dataframe/ufuncs/ufuncs.py +0 -0
  337. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/helpers.py +0 -0
  338. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/notimpl/__init__.py +0 -0
  339. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/notimpl/commands/__init__.py +0 -0
  340. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/notimpl/commands/load.py +0 -0
  341. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/notimpl/commands/wait.py +0 -0
  342. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/notimpl/components.py +0 -0
  343. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/__init__.py +0 -0
  344. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/backends/__init__.py +0 -0
  345. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/backends/helpers.py +0 -0
  346. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/backends/mariadb/__init__.py +0 -0
  347. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/backends/mariadb/components.py +0 -0
  348. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/backends/mariadb/helpers.py +0 -0
  349. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/backends/mariadb/ufuncs/__init__.py +0 -0
  350. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/backends/mariadb/ufuncs/query/__init__.py +0 -0
  351. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/backends/mariadb/ufuncs/query/components.py +0 -0
  352. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/backends/mariadb/ufuncs/query/ufuncs.py +0 -0
  353. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/backends/mssql/__init__.py +0 -0
  354. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/backends/mssql/components.py +0 -0
  355. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/backends/mssql/helpers.py +0 -0
  356. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/backends/mssql/ufuncs/__init__.py +0 -0
  357. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/backends/mssql/ufuncs/query/__init__.py +0 -0
  358. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/backends/mssql/ufuncs/query/components.py +0 -0
  359. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/backends/mssql/ufuncs/query/ufuncs.py +0 -0
  360. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/backends/mysql/__init__.py +0 -0
  361. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/backends/mysql/components.py +0 -0
  362. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/backends/mysql/helpers.py +0 -0
  363. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/backends/mysql/ufuncs/__init__.py +0 -0
  364. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/backends/mysql/ufuncs/query/__init__.py +0 -0
  365. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/backends/mysql/ufuncs/query/components.py +0 -0
  366. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/backends/mysql/ufuncs/query/ufuncs.py +0 -0
  367. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/backends/oracle/__init__.py +0 -0
  368. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/backends/oracle/components.py +0 -0
  369. {spinta-0.2.dev12/spinta/datasets/backends/sql/backends/oracle/ufuncs → spinta-0.2.dev13/spinta/datasets/backends/sql/backends/oracle/types}/__init__.py +0 -0
  370. {spinta-0.2.dev12/spinta/datasets/backends/sql/backends/oracle/ufuncs/query → spinta-0.2.dev13/spinta/datasets/backends/sql/backends/oracle/types/geometry}/__init__.py +0 -0
  371. {spinta-0.2.dev12/spinta/datasets/backends/sql/backends/postgresql → spinta-0.2.dev13/spinta/datasets/backends/sql/backends/oracle/ufuncs}/__init__.py +0 -0
  372. {spinta-0.2.dev12/spinta/datasets/backends/sql/backends/postgresql/ufuncs → spinta-0.2.dev13/spinta/datasets/backends/sql/backends/oracle/ufuncs/query}/__init__.py +0 -0
  373. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/backends/oracle/ufuncs/query/components.py +0 -0
  374. {spinta-0.2.dev12/spinta/datasets/backends/sql/backends/postgresql/ufuncs/query → spinta-0.2.dev13/spinta/datasets/backends/sql/backends/postgresql}/__init__.py +0 -0
  375. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/backends/postgresql/components.py +0 -0
  376. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/backends/postgresql/helpers.py +0 -0
  377. {spinta-0.2.dev12/spinta/datasets/backends/sql/backends/sas → spinta-0.2.dev13/spinta/datasets/backends/sql/backends/postgresql}/ufuncs/__init__.py +0 -0
  378. {spinta-0.2.dev12/spinta/datasets/backends/sql/backends/sas → spinta-0.2.dev13/spinta/datasets/backends/sql/backends/postgresql}/ufuncs/query/__init__.py +0 -0
  379. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/backends/postgresql/ufuncs/query/components.py +0 -0
  380. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/backends/postgresql/ufuncs/query/ufuncs.py +0 -0
  381. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/backends/sas/__init__.py +0 -0
  382. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/backends/sas/base.py +0 -0
  383. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/backends/sas/commands/__init__.py +0 -0
  384. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/backends/sas/commands/cast.py +0 -0
  385. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/backends/sas/commands/load.py +0 -0
  386. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/backends/sas/commands/read.py +0 -0
  387. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/backends/sas/components.py +0 -0
  388. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/backends/sas/constants.py +0 -0
  389. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/backends/sas/dialect.py +0 -0
  390. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/backends/sas/formats.py +0 -0
  391. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/backends/sas/helpers.py +0 -0
  392. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/backends/sas/identifier.py +0 -0
  393. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/backends/sas/introspection.py +0 -0
  394. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/backends/sas/log4j.properties +0 -0
  395. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/backends/sas/types.py +0 -0
  396. {spinta-0.2.dev12/spinta/datasets/backends/sql/backends/sqlite → spinta-0.2.dev13/spinta/datasets/backends/sql/backends/sas/ufuncs}/__init__.py +0 -0
  397. {spinta-0.2.dev12/spinta/datasets/backends/sql/backends/sqlite/ufuncs → spinta-0.2.dev13/spinta/datasets/backends/sql/backends/sas/ufuncs/query}/__init__.py +0 -0
  398. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/backends/sas/ufuncs/query/components.py +0 -0
  399. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/backends/sas/ufuncs/query/ufuncs.py +0 -0
  400. {spinta-0.2.dev12/spinta/datasets/backends/sql/backends/sqlite/ufuncs/query → spinta-0.2.dev13/spinta/datasets/backends/sql/backends/sqlite}/__init__.py +0 -0
  401. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/backends/sqlite/components.py +0 -0
  402. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/backends/sqlite/helpers.py +0 -0
  403. {spinta-0.2.dev12/spinta/datasets/backends/sql/commands → spinta-0.2.dev13/spinta/datasets/backends/sql/backends/sqlite/ufuncs}/__init__.py +0 -0
  404. {spinta-0.2.dev12/spinta/datasets/backends/sql/ufuncs → spinta-0.2.dev13/spinta/datasets/backends/sql/backends/sqlite/ufuncs/query}/__init__.py +0 -0
  405. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/backends/sqlite/ufuncs/query/components.py +0 -0
  406. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/backends/sqlite/ufuncs/query/ufuncs.py +0 -0
  407. {spinta-0.2.dev12/spinta/datasets/backends/sql/ufuncs/query → spinta-0.2.dev13/spinta/datasets/backends/sql/commands}/__init__.py +0 -0
  408. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/commands/bootstrap.py +0 -0
  409. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/commands/cast.py +0 -0
  410. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/commands/column.py +0 -0
  411. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/commands/init.py +0 -0
  412. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/commands/load.py +0 -0
  413. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/commands/read.py +0 -0
  414. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/commands/wait.py +0 -0
  415. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/components.py +0 -0
  416. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/helpers.py +0 -0
  417. {spinta-0.2.dev12/spinta/datasets/backends/sql/ufuncs/result → spinta-0.2.dev13/spinta/datasets/backends/sql/ufuncs}/__init__.py +0 -0
  418. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/ufuncs/components.py +0 -0
  419. {spinta-0.2.dev12/spinta/datasets/backends/sqldump → spinta-0.2.dev13/spinta/datasets/backends/sql/ufuncs/query}/__init__.py +0 -0
  420. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/ufuncs/query/components.py +0 -0
  421. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/ufuncs/query/helpers.py +0 -0
  422. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/ufuncs/query/ufuncs.py +0 -0
  423. {spinta-0.2.dev12/spinta/datasets/backends/sqldump/commands → spinta-0.2.dev13/spinta/datasets/backends/sql/ufuncs/result}/__init__.py +0 -0
  424. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/ufuncs/result/components.py +0 -0
  425. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/ufuncs/result/ufuncs.py +0 -0
  426. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sql/ufuncs/ufuncs.py +0 -0
  427. {spinta-0.2.dev12/spinta/datasets/backends/sqldump/ufuncs → spinta-0.2.dev13/spinta/datasets/backends/sqldump}/__init__.py +0 -0
  428. {spinta-0.2.dev12/spinta/datasets/backends/wsdl → spinta-0.2.dev13/spinta/datasets/backends/sqldump/commands}/__init__.py +0 -0
  429. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sqldump/commands/inspect.py +0 -0
  430. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sqldump/commands/load.py +0 -0
  431. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sqldump/commands/wait.py +0 -0
  432. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sqldump/components.py +0 -0
  433. {spinta-0.2.dev12/spinta/datasets/backends/wsdl/commads → spinta-0.2.dev13/spinta/datasets/backends/sqldump/ufuncs}/__init__.py +0 -0
  434. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sqldump/ufuncs/components.py +0 -0
  435. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/sqldump/ufuncs/ufuncs.py +0 -0
  436. {spinta-0.2.dev12/spinta/datasets/commands → spinta-0.2.dev13/spinta/datasets/backends/wsdl}/__init__.py +0 -0
  437. {spinta-0.2.dev12/spinta/datasets/inspect → spinta-0.2.dev13/spinta/datasets/backends/wsdl/commads}/__init__.py +0 -0
  438. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/wsdl/commads/read.py +0 -0
  439. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/backends/wsdl/components.py +0 -0
  440. {spinta-0.2.dev12/spinta/datasets/inspect → spinta-0.2.dev13/spinta/datasets}/commands/__init__.py +0 -0
  441. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/commands/check.py +0 -0
  442. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/commands/error.py +0 -0
  443. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/commands/inspect.py +0 -0
  444. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/commands/link.py +0 -0
  445. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/commands/wipe.py +0 -0
  446. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/components.py +0 -0
  447. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/enums.py +0 -0
  448. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/helpers.py +0 -0
  449. {spinta-0.2.dev12/spinta/datasets/keymaps → spinta-0.2.dev13/spinta/datasets/inspect}/__init__.py +0 -0
  450. {spinta-0.2.dev12/spinta/dimensions → spinta-0.2.dev13/spinta/datasets/inspect/commands}/__init__.py +0 -0
  451. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/inspect/commands/manifest.py +0 -0
  452. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/inspect/commands/merge.py +0 -0
  453. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/inspect/components.py +0 -0
  454. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/inspect/helpers.py +0 -0
  455. {spinta-0.2.dev12/spinta/dimensions/comments → spinta-0.2.dev13/spinta/datasets/keymaps}/__init__.py +0 -0
  456. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/keymaps/components.py +0 -0
  457. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/keymaps/redis.py +0 -0
  458. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/keymaps/sqlalchemy.py +0 -0
  459. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/keymaps/sync.py +0 -0
  460. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/datasets/utils.py +0 -0
  461. {spinta-0.2.dev12/spinta/dimensions/enum → spinta-0.2.dev13/spinta/dimensions}/__init__.py +0 -0
  462. {spinta-0.2.dev12/spinta/dimensions/lang → spinta-0.2.dev13/spinta/dimensions/comments}/__init__.py +0 -0
  463. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/dimensions/comments/components.py +0 -0
  464. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/dimensions/comments/helpers.py +0 -0
  465. {spinta-0.2.dev12/spinta/dimensions/param → spinta-0.2.dev13/spinta/dimensions/enum}/__init__.py +0 -0
  466. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/dimensions/enum/commands.py +0 -0
  467. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/dimensions/enum/components.py +0 -0
  468. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/dimensions/enum/helpers.py +0 -0
  469. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/dimensions/enum/ufuncs.py +0 -0
  470. {spinta-0.2.dev12/spinta/dimensions/prefix → spinta-0.2.dev13/spinta/dimensions/lang}/__init__.py +0 -0
  471. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/dimensions/lang/components.py +0 -0
  472. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/dimensions/lang/helpers.py +0 -0
  473. {spinta-0.2.dev12/spinta/dimensions/prefix/commands → spinta-0.2.dev13/spinta/dimensions/param}/__init__.py +0 -0
  474. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/dimensions/param/components.py +0 -0
  475. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/dimensions/param/helpers.py +0 -0
  476. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/dimensions/param/ufuncs.py +0 -0
  477. {spinta-0.2.dev12/spinta/formats → spinta-0.2.dev13/spinta/dimensions/prefix}/__init__.py +0 -0
  478. {spinta-0.2.dev12/spinta/formats/ascii → spinta-0.2.dev13/spinta/dimensions/prefix/commands}/__init__.py +0 -0
  479. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/dimensions/prefix/commands/load.py +0 -0
  480. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/dimensions/prefix/components.py +0 -0
  481. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/dimensions/prefix/helpers.py +0 -0
  482. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/dispatcher.py +0 -0
  483. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/fetcher.py +0 -0
  484. {spinta-0.2.dev12/spinta/formats/csv → spinta-0.2.dev13/spinta/formats}/__init__.py +0 -0
  485. {spinta-0.2.dev12/spinta/formats/html → spinta-0.2.dev13/spinta/formats/ascii}/__init__.py +0 -0
  486. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/formats/ascii/commands.py +0 -0
  487. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/formats/ascii/components.py +0 -0
  488. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/formats/ascii/helpers.py +0 -0
  489. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/formats/components.py +0 -0
  490. {spinta-0.2.dev12/spinta/formats/json → spinta-0.2.dev13/spinta/formats/csv}/__init__.py +0 -0
  491. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/formats/csv/commands.py +0 -0
  492. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/formats/csv/components.py +0 -0
  493. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/formats/helpers.py +0 -0
  494. {spinta-0.2.dev12/spinta/formats/jsonlines → spinta-0.2.dev13/spinta/formats/html}/__init__.py +0 -0
  495. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/formats/html/components.py +0 -0
  496. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/formats/html/helpers.py +0 -0
  497. {spinta-0.2.dev12/spinta/formats/xlsx → spinta-0.2.dev13/spinta/formats/json}/__init__.py +0 -0
  498. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/formats/json/commands.py +0 -0
  499. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/formats/json/components.py +0 -0
  500. {spinta-0.2.dev12/spinta/hacks → spinta-0.2.dev13/spinta/formats/jsonlines}/__init__.py +0 -0
  501. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/formats/jsonlines/commands.py +0 -0
  502. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/formats/jsonlines/components.py +0 -0
  503. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/formats/rdf/commands.py +0 -0
  504. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/formats/rdf/components.py +0 -0
  505. {spinta-0.2.dev12/spinta/manifests → spinta-0.2.dev13/spinta/formats/xlsx}/__init__.py +0 -0
  506. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/formats/xlsx/commands.py +0 -0
  507. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/formats/xlsx/components.py +0 -0
  508. {spinta-0.2.dev12/spinta/manifests/backend → spinta-0.2.dev13/spinta/hacks}/__init__.py +0 -0
  509. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/hacks/spyna.py +0 -0
  510. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/hacks/urlparams.py +0 -0
  511. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/handlers.py +0 -0
  512. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifest/_ns.yml +0 -0
  513. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifest/_schema/version.yml +0 -0
  514. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifest/_schema.yml +0 -0
  515. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifest/_txn.yml +0 -0
  516. {spinta-0.2.dev12/spinta/manifests/backend/commands → spinta-0.2.dev13/spinta/manifests}/__init__.py +0 -0
  517. {spinta-0.2.dev12/spinta/manifests/commands → spinta-0.2.dev13/spinta/manifests/backend}/__init__.py +0 -0
  518. {spinta-0.2.dev12/spinta/manifests/dict → spinta-0.2.dev13/spinta/manifests/backend/commands}/__init__.py +0 -0
  519. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/backend/commands/bootstrap.py +0 -0
  520. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/backend/commands/configure.py +0 -0
  521. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/backend/commands/freeze.py +0 -0
  522. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/backend/commands/load.py +0 -0
  523. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/backend/commands/manifest.py +0 -0
  524. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/backend/commands/migrate.py +0 -0
  525. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/backend/commands/sync.py +0 -0
  526. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/backend/components.py +0 -0
  527. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/backend/helpers.py +0 -0
  528. {spinta-0.2.dev12/spinta/manifests/dict → spinta-0.2.dev13/spinta/manifests}/commands/__init__.py +0 -0
  529. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/commands/auth.py +0 -0
  530. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/commands/check.py +0 -0
  531. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/commands/error.py +0 -0
  532. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/commands/init.py +0 -0
  533. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/commands/inspect.py +0 -0
  534. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/commands/link.py +0 -0
  535. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/commands/load.py +0 -0
  536. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/commands/manifest.py +0 -0
  537. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/commands/migrate.py +0 -0
  538. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/commands/read.py +0 -0
  539. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/components.py +0 -0
  540. {spinta-0.2.dev12/spinta/manifests/internal → spinta-0.2.dev13/spinta/manifests/dict}/__init__.py +0 -0
  541. {spinta-0.2.dev12/spinta/manifests/internal → spinta-0.2.dev13/spinta/manifests/dict}/commands/__init__.py +0 -0
  542. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/dict/commands/configure.py +0 -0
  543. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/dict/commands/load.py +0 -0
  544. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/dict/components.py +0 -0
  545. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/dict/helpers.py +0 -0
  546. {spinta-0.2.dev12/spinta/manifests/internal_sql → spinta-0.2.dev13/spinta/manifests/internal}/__init__.py +0 -0
  547. {spinta-0.2.dev12/spinta/manifests/internal_sql → spinta-0.2.dev13/spinta/manifests/internal}/commands/__init__.py +0 -0
  548. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/internal/commands/configure.py +0 -0
  549. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/internal/commands/load.py +0 -0
  550. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/internal/components.py +0 -0
  551. {spinta-0.2.dev12/spinta/manifests/memory → spinta-0.2.dev13/spinta/manifests/internal_sql}/__init__.py +0 -0
  552. {spinta-0.2.dev12/spinta/manifests/memory → spinta-0.2.dev13/spinta/manifests/internal_sql}/commands/__init__.py +0 -0
  553. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/internal_sql/commands/auth.py +0 -0
  554. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/internal_sql/commands/backend.py +0 -0
  555. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/internal_sql/commands/bootstrap.py +0 -0
  556. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/internal_sql/commands/configure.py +0 -0
  557. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/internal_sql/commands/load.py +0 -0
  558. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/internal_sql/commands/manifest.py +0 -0
  559. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/internal_sql/commands/read.py +0 -0
  560. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/internal_sql/components.py +0 -0
  561. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/internal_sql/helpers.py +0 -0
  562. {spinta-0.2.dev12/spinta/manifests/mermaid → spinta-0.2.dev13/spinta/manifests/memory}/__init__.py +0 -0
  563. {spinta-0.2.dev12/spinta/manifests/open_api → spinta-0.2.dev13/spinta/manifests/memory/commands}/__init__.py +0 -0
  564. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/memory/commands/configure.py +0 -0
  565. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/memory/commands/load.py +0 -0
  566. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/memory/components.py +0 -0
  567. {spinta-0.2.dev12/spinta/manifests/open_api/commands → spinta-0.2.dev13/spinta/manifests/mermaid}/__init__.py +0 -0
  568. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/mermaid/components.py +0 -0
  569. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/mermaid/helpers.py +0 -0
  570. {spinta-0.2.dev12/spinta/manifests/sql → spinta-0.2.dev13/spinta/manifests/open_api}/__init__.py +0 -0
  571. {spinta-0.2.dev12/spinta/manifests/sql → spinta-0.2.dev13/spinta/manifests/open_api}/commands/__init__.py +0 -0
  572. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/open_api/commands/configure.py +0 -0
  573. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/open_api/commands/load.py +0 -0
  574. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/open_api/components.py +0 -0
  575. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/open_api/helpers.py +0 -0
  576. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/open_api/openapi_config.py +0 -0
  577. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/rdf/commands/bootstrap.py +0 -0
  578. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/rdf/commands/configure.py +0 -0
  579. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/rdf/commands/load.py +0 -0
  580. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/rdf/components.py +0 -0
  581. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/rdf/helpers.py +0 -0
  582. {spinta-0.2.dev12/spinta/manifests/tabular → spinta-0.2.dev13/spinta/manifests/sql}/__init__.py +0 -0
  583. {spinta-0.2.dev12/spinta/manifests/tabular → spinta-0.2.dev13/spinta/manifests/sql}/commands/__init__.py +0 -0
  584. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/sql/commands/configure.py +0 -0
  585. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/sql/commands/load.py +0 -0
  586. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/sql/components.py +0 -0
  587. {spinta-0.2.dev12/spinta/manifests/tabular/formats → spinta-0.2.dev13/spinta/manifests/tabular}/__init__.py +0 -0
  588. {spinta-0.2.dev12/spinta/manifests/xsd → spinta-0.2.dev13/spinta/manifests/tabular/commands}/__init__.py +0 -0
  589. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/tabular/commands/bootstrap.py +0 -0
  590. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/tabular/commands/configure.py +0 -0
  591. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/tabular/commands/load.py +0 -0
  592. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/tabular/components.py +0 -0
  593. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/tabular/constants.py +0 -0
  594. {spinta-0.2.dev12/spinta/manifests/xsd/commands → spinta-0.2.dev13/spinta/manifests/tabular/formats}/__init__.py +0 -0
  595. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/tabular/formats/gsheets.py +0 -0
  596. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/tabular/helpers.py +0 -0
  597. {spinta-0.2.dev12/spinta/manifests/xsd2 → spinta-0.2.dev13/spinta/manifests/xsd}/__init__.py +0 -0
  598. {spinta-0.2.dev12/spinta/manifests/xsd2 → spinta-0.2.dev13/spinta/manifests/xsd}/commands/__init__.py +0 -0
  599. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/xsd/commands/configure.py +0 -0
  600. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/xsd/commands/load.py +0 -0
  601. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/xsd/components.py +0 -0
  602. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/xsd/helpers.py +0 -0
  603. {spinta-0.2.dev12/spinta/manifests/yaml → spinta-0.2.dev13/spinta/manifests/xsd2}/__init__.py +0 -0
  604. {spinta-0.2.dev12/spinta/manifests/yaml → spinta-0.2.dev13/spinta/manifests/xsd2}/commands/__init__.py +0 -0
  605. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/xsd2/commands/configure.py +0 -0
  606. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/xsd2/commands/load.py +0 -0
  607. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/xsd2/components.py +0 -0
  608. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/xsd2/helpers.py +0 -0
  609. {spinta-0.2.dev12/spinta/migrations/schema → spinta-0.2.dev13/spinta/manifests/yaml}/__init__.py +0 -0
  610. {spinta-0.2.dev12/spinta/naming → spinta-0.2.dev13/spinta/manifests/yaml/commands}/__init__.py +0 -0
  611. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/yaml/commands/bootstrap.py +0 -0
  612. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/yaml/commands/configure.py +0 -0
  613. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/yaml/commands/freeze.py +0 -0
  614. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/yaml/commands/load.py +0 -0
  615. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/yaml/commands/manifest.py +0 -0
  616. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/yaml/commands/migrate.py +0 -0
  617. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/yaml/commands/sync.py +0 -0
  618. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/yaml/components.py +0 -0
  619. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/manifests/yaml/helpers.py +0 -0
  620. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/methods.py +0 -0
  621. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/middlewares.py +0 -0
  622. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/migrations/__init__.py +0 -0
  623. {spinta-0.2.dev12/spinta/testing/types → spinta-0.2.dev13/spinta/migrations/schema}/__init__.py +0 -0
  624. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/migrations/schema/alembic.py +0 -0
  625. {spinta-0.2.dev12/spinta/types → spinta-0.2.dev13/spinta/naming}/__init__.py +0 -0
  626. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/naming/components.py +0 -0
  627. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/naming/helpers.py +0 -0
  628. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/naming/ufuncts.py +0 -0
  629. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/nodes.py +0 -0
  630. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/renderer.py +0 -0
  631. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/spyna.py +0 -0
  632. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/templates/base.html +0 -0
  633. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/templates/data.html +0 -0
  634. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/templates/error.html +0 -0
  635. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/templates/form.html +0 -0
  636. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/testing/__init__.py +0 -0
  637. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/testing/cli.py +0 -0
  638. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/testing/client.py +0 -0
  639. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/testing/config.py +0 -0
  640. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/testing/context.py +0 -0
  641. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/testing/csv.py +0 -0
  642. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/testing/data.py +0 -0
  643. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/testing/datasets.py +0 -0
  644. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/testing/dtypes.py +0 -0
  645. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/testing/manifest.py +0 -0
  646. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/testing/migration.py +0 -0
  647. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/testing/push.py +0 -0
  648. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/testing/request.py +0 -0
  649. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/testing/tabular.py +0 -0
  650. {spinta-0.2.dev12/spinta/types/array → spinta-0.2.dev13/spinta/testing/types}/__init__.py +0 -0
  651. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/testing/types/geometry.py +0 -0
  652. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/testing/ufuncs.py +0 -0
  653. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/testing/utils.py +0 -0
  654. {spinta-0.2.dev12/spinta/types/backref → spinta-0.2.dev13/spinta/types}/__init__.py +0 -0
  655. {spinta-0.2.dev12/spinta/types/denorm → spinta-0.2.dev13/spinta/types/array}/__init__.py +0 -0
  656. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/types/array/check.py +0 -0
  657. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/types/array/link.py +0 -0
  658. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/types/array/resolve.py +0 -0
  659. {spinta-0.2.dev12/spinta/types/file → spinta-0.2.dev13/spinta/types/backref}/__init__.py +0 -0
  660. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/types/backref/link.py +0 -0
  661. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/types/command.py +0 -0
  662. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/types/datatype.py +0 -0
  663. {spinta-0.2.dev12/spinta/types/geometry → spinta-0.2.dev13/spinta/types/denorm}/__init__.py +0 -0
  664. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/types/denorm/check.py +0 -0
  665. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/types/denorm/link.py +0 -0
  666. {spinta-0.2.dev12/spinta/types/inherit → spinta-0.2.dev13/spinta/types/file}/__init__.py +0 -0
  667. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/types/file/components.py +0 -0
  668. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/types/file/decode.py +0 -0
  669. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/types/file/helpers.py +0 -0
  670. {spinta-0.2.dev12/spinta/types/object → spinta-0.2.dev13/spinta/types/geometry}/__init__.py +0 -0
  671. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/types/geometry/components.py +0 -0
  672. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/types/geometry/load.py +0 -0
  673. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/types/helpers.py +0 -0
  674. {spinta-0.2.dev12/spinta/types/partial → spinta-0.2.dev13/spinta/types/inherit}/__init__.py +0 -0
  675. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/types/inherit/check.py +0 -0
  676. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/types/model.py +0 -0
  677. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/types/namespace.py +0 -0
  678. {spinta-0.2.dev12/spinta/types/ref → spinta-0.2.dev13/spinta/types/object}/__init__.py +0 -0
  679. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/types/object/check.py +0 -0
  680. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/types/object/link.py +0 -0
  681. {spinta-0.2.dev12/spinta/types/text → spinta-0.2.dev13/spinta/types/partial}/__init__.py +0 -0
  682. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/types/partial/link.py +0 -0
  683. {spinta-0.2.dev12/spinta/ufuncs → spinta-0.2.dev13/spinta/types/ref}/__init__.py +0 -0
  684. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/types/ref/check.py +0 -0
  685. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/types/ref/link.py +0 -0
  686. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/types/ref/resolve.py +0 -0
  687. {spinta-0.2.dev12/spinta/ufuncs/changebase → spinta-0.2.dev13/spinta/types/text}/__init__.py +0 -0
  688. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/types/text/check.py +0 -0
  689. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/types/text/components.py +0 -0
  690. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/types/text/helpers.py +0 -0
  691. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/types/text/load.py +0 -0
  692. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/typing.py +0 -0
  693. {spinta-0.2.dev12/spinta/ufuncs/linkbuilder → spinta-0.2.dev13/spinta/ufuncs}/__init__.py +0 -0
  694. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/ufuncs/binds.py +0 -0
  695. {spinta-0.2.dev12/spinta/ufuncs/loadbuilder → spinta-0.2.dev13/spinta/ufuncs/changebase}/__init__.py +0 -0
  696. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/ufuncs/changebase/components.py +0 -0
  697. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/ufuncs/changebase/helpers.py +0 -0
  698. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/ufuncs/changebase/ufuncs.py +0 -0
  699. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/ufuncs/common.py +0 -0
  700. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/ufuncs/components.py +0 -0
  701. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/ufuncs/helpers.py +0 -0
  702. {spinta-0.2.dev12/spinta/ufuncs/propertyresolver → spinta-0.2.dev13/spinta/ufuncs/linkbuilder}/__init__.py +0 -0
  703. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/ufuncs/linkbuilder/components.py +0 -0
  704. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/ufuncs/linkbuilder/ufuncs.py +0 -0
  705. {spinta-0.2.dev12/spinta/ufuncs/querybuilder → spinta-0.2.dev13/spinta/ufuncs/loadbuilder}/__init__.py +0 -0
  706. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/ufuncs/loadbuilder/components.py +0 -0
  707. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/ufuncs/loadbuilder/helpers.py +0 -0
  708. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/ufuncs/loadbuilder/ufuncs.py +0 -0
  709. {spinta-0.2.dev12/spinta/ufuncs/requestparamsbuilder → spinta-0.2.dev13/spinta/ufuncs/propertyresolver}/__init__.py +0 -0
  710. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/ufuncs/propertyresolver/components.py +0 -0
  711. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/ufuncs/propertyresolver/ufuncs.py +0 -0
  712. {spinta-0.2.dev12/spinta/ufuncs/resultbuilder → spinta-0.2.dev13/spinta/ufuncs/querybuilder}/__init__.py +0 -0
  713. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/ufuncs/querybuilder/components.py +0 -0
  714. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/ufuncs/querybuilder/helpers.py +0 -0
  715. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/ufuncs/querybuilder/ufuncs.py +0 -0
  716. {spinta-0.2.dev12/spinta/ufuncs/summaryenv → spinta-0.2.dev13/spinta/ufuncs/requestparamsbuilder}/__init__.py +0 -0
  717. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/ufuncs/requestparamsbuilder/components.py +0 -0
  718. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/ufuncs/requestparamsbuilder/helpers.py +0 -0
  719. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/ufuncs/requestparamsbuilder/ufuncs.py +0 -0
  720. {spinta-0.2.dev12/spinta/units → spinta-0.2.dev13/spinta/ufuncs/resultbuilder}/__init__.py +0 -0
  721. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/ufuncs/resultbuilder/components.py +0 -0
  722. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/ufuncs/resultbuilder/helpers.py +0 -0
  723. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/ufuncs/resultbuilder/ufuncs.py +0 -0
  724. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/ufuncs/summaryenv/components.py +0 -0
  725. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/ufuncs/summaryenv/ufuncs.py +0 -0
  726. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/units/components.py +0 -0
  727. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/units/helpers.py +0 -0
  728. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/utils/__init__.py +0 -0
  729. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/utils/aiotools.py +0 -0
  730. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/utils/changes.py +0 -0
  731. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/utils/collections.py +0 -0
  732. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/utils/config.py +0 -0
  733. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/utils/data.py +0 -0
  734. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/utils/encoding.py +0 -0
  735. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/utils/enums.py +0 -0
  736. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/utils/errors.py +0 -0
  737. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/utils/functools.py +0 -0
  738. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/utils/idgen.py +0 -0
  739. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/utils/imports.py +0 -0
  740. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/utils/itertools.py +0 -0
  741. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/utils/json.py +0 -0
  742. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/utils/naming.py +0 -0
  743. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/utils/nestedstruct.py +0 -0
  744. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/utils/nin.py +0 -0
  745. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/utils/passwords.py +0 -0
  746. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/utils/path.py +0 -0
  747. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/utils/refs.py +0 -0
  748. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/utils/response.py +0 -0
  749. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/utils/schema.py +0 -0
  750. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/utils/scopes.py +0 -0
  751. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/utils/sqlalchemy.py +0 -0
  752. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/utils/sqlite.py +0 -0
  753. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/utils/starlette.py +0 -0
  754. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/utils/streams.py +0 -0
  755. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/utils/tree.py +0 -0
  756. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/utils/types.py +0 -0
  757. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/utils/units.py +0 -0
  758. {spinta-0.2.dev12 → spinta-0.2.dev13}/spinta/utils/url.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: spinta
3
- Version: 0.2.dev12
3
+ Version: 0.2.dev13
4
4
  Summary: A platform for describing, extracting, transforming, loading and serving open data.
5
5
  License: MIT
6
6
  License-File: LICENSE
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "spinta"
3
- version = "0.2dev12"
3
+ version = "0.2dev13"
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"
@@ -0,0 +1,3 @@
1
+ import importlib.metadata
2
+
3
+ __version__ = importlib.metadata.version(__name__)
@@ -422,7 +422,7 @@ async def error(request, exc):
422
422
 
423
423
  async def srid_check(request: Request):
424
424
  from shapely.geometry import Point
425
- from spinta.backends.postgresql.types.geometry.helpers import get_osm_link
425
+ from spinta.types.geometry.helpers import get_osm_link
426
426
 
427
427
  srid = request.path_params["srid"]
428
428
  x = request.path_params["x"]
@@ -1,20 +1,13 @@
1
- import logging
2
-
3
1
  from spinta.api import init
4
2
  from spinta.core.context import create_context
5
3
  from spinta import commands
6
4
 
7
-
8
- logging.basicConfig(
9
- level=logging.INFO,
10
- format="%(levelname)s: %(message)s",
11
- )
12
-
13
5
  context = create_context("asgi")
14
6
 
15
7
  rc = context.get("rc")
16
8
  config = context.get("config")
17
9
  commands.load(context, config)
10
+
18
11
  commands.check(context, config)
19
12
 
20
13
  store = context.get("store")
@@ -12,6 +12,7 @@ import time
12
12
  import uuid
13
13
  from collections import defaultdict
14
14
  from functools import cached_property
15
+ from itertools import chain
15
16
  from threading import Lock
16
17
  from typing import Set, Any, TypedDict, Literal
17
18
  from typing import Type
@@ -26,7 +27,7 @@ from authlib.oauth2 import OAuth2Error
26
27
  from authlib.oauth2 import OAuth2Request
27
28
  from authlib.oauth2 import rfc6749
28
29
  from authlib.oauth2 import rfc6750
29
- from authlib.oauth2.rfc6749 import grants, OAuth2Payload, scope_to_list, list_to_scope
30
+ from authlib.oauth2.rfc6749 import grants, OAuth2Payload, list_to_scope
30
31
  from authlib.oauth2.rfc6749.errors import InvalidClientError
31
32
  from authlib.oauth2.rfc6750.errors import InsufficientScopeError
32
33
  from authlib.oauth2.rfc6749.util import scope_to_list
@@ -40,11 +41,12 @@ from starlette.datastructures import FormData, QueryParams, Headers
40
41
  from starlette.exceptions import HTTPException
41
42
  from starlette.responses import JSONResponse
42
43
 
44
+ from spinta import commands
43
45
  from spinta.components import Config
44
46
  from spinta.components import Context, Namespace, Model, Property
45
47
  from spinta.components import ScopeFormatterFunc
46
48
  from spinta.core.enums import Access, Action
47
- from spinta.exceptions import AuthorizedClientsOnly
49
+ from spinta.exceptions import AuthorizedClientsOnly, NoScopesForNamespaces, InvalidExtraScopes
48
50
  from spinta.exceptions import BasicAuthRequired
49
51
  from spinta.exceptions import (
50
52
  InvalidToken,
@@ -297,6 +299,7 @@ class Client(rfc6749.ClientMixin):
297
299
  secret_hash: str
298
300
  scopes: Set[str]
299
301
  backends: dict[str, dict[str, Any]]
302
+ contract_scopes: dict[str, list[str]]
300
303
 
301
304
  def __init__(
302
305
  self,
@@ -306,12 +309,14 @@ class Client(rfc6749.ClientMixin):
306
309
  secret_hash: str,
307
310
  scopes: list[str],
308
311
  backends: dict[str, dict[str, Any]],
312
+ contract_scopes: dict[str, list[str]],
309
313
  ) -> None:
310
314
  self.id = id_
311
315
  self.name = name_
312
316
  self.secret_hash = secret_hash
313
317
  self.scopes = set(scopes)
314
318
  self.backends = backends
319
+ self.contract_scopes = contract_scopes
315
320
 
316
321
  # Auth method used for token endpoint.
317
322
  # More info: token_endpoint_auth_method https://datatracker.ietf.org/doc/html/rfc7591#autoid-5
@@ -360,6 +365,9 @@ class Client(rfc6749.ClientMixin):
360
365
  else:
361
366
  return True
362
367
 
368
+ def get_all_contract_scopes(self) -> set[str]:
369
+ return set(chain.from_iterable(self.contract_scopes.values()))
370
+
363
371
 
364
372
  def decode_unverified_header(token: str) -> dict[str, Any]:
365
373
  try:
@@ -399,33 +407,34 @@ class Token(rfc6749.TokenMixin):
399
407
  required_scopes = scope_to_list(scope)
400
408
  return not self._validator.scope_insufficient(self.get_scope(), required_scopes)
401
409
 
402
- def check_scope(self, scope: SCOPE_TYPE):
410
+ def check_scope(self, scope: SCOPE_TYPE) -> bool:
403
411
  token_scopes = set(scope_to_list(self._token.get("scope", "")))
404
412
  if any(token_scope for token_scope in token_scopes if token_scope.startswith(DEPRECATED_SCOPE_PREFIX)):
405
413
  log.warning(
406
414
  "Deprecation warning: using 'spinta_*' scopes is deprecated and will be removed in a future version."
407
415
  )
408
416
 
409
- if not self.valid_scope(scope):
410
- client_id = self._token["aud"]
417
+ if self.valid_scope(scope):
418
+ return True
411
419
 
412
- operator = "OR"
413
- if isinstance(scope, str):
414
- operator = "AND"
415
- scope = [scope]
416
- missing_scopes = ", ".join(
417
- sorted([single_scope for single_scope in scope if not single_scope.startswith(DEPRECATED_SCOPE_PREFIX)])
418
- )
420
+ # Scope is not valid. Raise an exception
421
+ client_id = self._token["aud"]
419
422
 
420
- # FIXME: this should be wrapped into UserError.
421
- if operator == "AND":
422
- log.error(f"client {client_id!r} is missing required scopes: %s", missing_scopes)
423
- raise InsufficientScopeError(description=f"Missing scopes: {missing_scopes}")
424
- elif operator == "OR":
425
- log.error(f"client {client_id!r} is missing one of required scopes: %s", missing_scopes)
426
- raise InsufficientScopeError(description=f"Missing one of scopes: {missing_scopes}")
427
- else:
428
- raise Exception(f"Unknown operator {operator}.")
423
+ require_all_scopes = isinstance(scope, str)
424
+ scope_list = [scope] if require_all_scopes else scope
425
+
426
+ missing_scopes = ", ".join(
427
+ sorted(single_scope for single_scope in scope_list if not single_scope.startswith(DEPRECATED_SCOPE_PREFIX))
428
+ )
429
+
430
+ if require_all_scopes:
431
+ message = f"Missing required scopes: {missing_scopes}"
432
+ log.error(f"client {client_id!r} is missing required scopes: %s", missing_scopes)
433
+ else:
434
+ message = f"Missing one of required scopes: {missing_scopes}"
435
+ log.error(f"client {client_id!r} is missing one of required scopes: %s", missing_scopes)
436
+
437
+ raise InsufficientScopeError(description=message)
429
438
 
430
439
  # No longer mandatory, but will keep it, since it is used in other places.
431
440
  def get_client_id(self) -> str:
@@ -458,12 +467,82 @@ class Token(rfc6749.TokenMixin):
458
467
  def is_expired(self) -> bool:
459
468
  return time.time() > self._token["exp"]
460
469
 
470
+ @staticmethod
471
+ def _collect_available_namespaces(context: Context) -> set[str]:
472
+ """Collects all scopes that can be used to get data from currently loaded manifest"""
473
+
474
+ manifest = context.get("store").manifest
475
+ model_namespaces = chain.from_iterable(
476
+ model.get_namespaces()
477
+ for model in commands.get_models(context, manifest).values()
478
+ if not model.name.startswith("_")
479
+ )
480
+
481
+ return set(model_namespaces)
482
+
483
+ @staticmethod
484
+ def _get_scope_namespace(single_scope: str, scope_prefixes: list[str]) -> str:
485
+ """Removes spinta prefixes and action suffixes, leaving only namespace part of scope"""
486
+ for prefix in scope_prefixes:
487
+ if single_scope.startswith(prefix):
488
+ single_scope = single_scope.removeprefix(prefix)
489
+
490
+ for action in Action.scope_action_values():
491
+ if single_scope.endswith(action):
492
+ single_scope = single_scope.removesuffix(action)
493
+
494
+ return single_scope
495
+
496
+ def _get_namespace_scope_map(self, scope_prefixes: list[str]) -> dict[str, set[str]]:
497
+ """
498
+ Splits JWT scope into separate scopes and build a mapping of namespaces to their corresponding scopes
499
+ """
500
+ scope_dict = defaultdict(set)
501
+ for scope in scope_to_list(self.get_scope()):
502
+ if namespace := self._get_scope_namespace(scope, scope_prefixes):
503
+ scope_dict[namespace].add(scope)
504
+
505
+ return dict(scope_dict)
506
+
507
+ def _get_scopes_from_model_namespaces(self, model_namespaces: set[str], scope_prefixes: list[str]) -> set[str]:
508
+ """Returns only JWT scopes that match any namespaces from manifest"""
509
+ scope_namespace_map = self._get_namespace_scope_map(scope_prefixes)
510
+
511
+ return {
512
+ scope
513
+ for namespace, scopes in scope_namespace_map.items()
514
+ if namespace in model_namespaces
515
+ for scope in scopes
516
+ }
517
+
518
+ def check_contract_scopes(self, context: Context) -> None:
519
+ """
520
+ Checks if there are no extra JWT scopes from manifest namespaces comparing to contract scopes saved
521
+ in client's file.
522
+ """
523
+
524
+ if not (model_namespaces := self._collect_available_namespaces(context)):
525
+ raise NoScopesForNamespaces(namespaces=[])
526
+
527
+ config = context.get("config")
528
+ client = query_client(get_clients_path(config), self.get_client_id())
529
+
530
+ contract_scopes = client.get_all_contract_scopes()
531
+ filtered_jwt_scopes = self._get_scopes_from_model_namespaces(
532
+ model_namespaces, [config.scope_prefix, config.scope_prefix_udts]
533
+ )
534
+
535
+ if not filtered_jwt_scopes:
536
+ raise NoScopesForNamespaces(namespaces=", ".join(sorted(model_namespaces)))
537
+ elif not contract_scopes.issuperset(filtered_jwt_scopes):
538
+ raise InvalidExtraScopes(extra_scopes=", ".join(sorted(filtered_jwt_scopes - contract_scopes)))
539
+
461
540
 
462
541
  class AdminToken(rfc6749.TokenMixin):
463
542
  def valid_scope(self, scope: SCOPE_TYPE, **kwargs) -> bool:
464
543
  return True
465
544
 
466
- def check_scope(self, scope: SCOPE_TYPE, **kwargs):
545
+ def check_scope(self, scope: SCOPE_TYPE, **kwargs) -> bool:
467
546
  pass
468
547
 
469
548
  def get_sub(self) -> str: # User.
@@ -478,6 +557,9 @@ class AdminToken(rfc6749.TokenMixin):
478
557
  def get_client_id(self) -> str:
479
558
  return self.get_aud()
480
559
 
560
+ def check_contract_scopes(self, context: Context) -> None:
561
+ pass
562
+
481
563
 
482
564
  @dataclasses.dataclass
483
565
  class StarletteOAuth2Data:
@@ -556,6 +638,7 @@ def get_auth_token(context: Context) -> Token:
556
638
  token = resource_protector.validate_request(scope, request)
557
639
  except JoseError as e:
558
640
  raise HTTPException(status_code=400, detail=e.error)
641
+
559
642
  return token
560
643
 
561
644
 
@@ -687,14 +770,14 @@ def get_client_file_path(path: pathlib.Path, client: str) -> pathlib.Path:
687
770
  return client_file
688
771
 
689
772
 
690
- def check_scope(context: Context, scope: Union[Scopes, str]):
773
+ def check_scope(context: Context, scope: Union[Scopes, str]) -> bool:
691
774
  config = context.get("config")
692
775
  token = context.get("auth.token")
693
776
 
694
777
  if isinstance(scope, Scopes):
695
778
  scope = scope.value
696
779
 
697
- token.check_scope([f"{config.scope_prefix}{scope}", f"{config.scope_prefix_udts}:{scope}"])
780
+ return token.check_scope([f"{config.scope_prefix}{scope}", f"{config.scope_prefix_udts}:{scope}"])
698
781
 
699
782
 
700
783
  def has_scope(context: Context, scope: Scopes | str, raise_error: bool = True) -> bool:
@@ -819,9 +902,15 @@ def authorized(
819
902
  ]
820
903
  # Check if client has at least one of required scopes.
821
904
  if throw:
822
- token.check_scope(scopes)
905
+ is_token_valid = token.check_scope(scopes)
823
906
  else:
824
- return token.valid_scope(scopes)
907
+ is_token_valid = token.valid_scope(scopes)
908
+
909
+ # Contract scopes are only checked for non-open nodes and when check_contract_scopes is enabled
910
+ if config.check_contract_scopes and node.access < Access.open:
911
+ token.check_contract_scopes(context)
912
+
913
+ return is_token_valid
825
914
 
826
915
 
827
916
  def auth_server_keys_exists(path: pathlib.Path):
@@ -905,6 +994,7 @@ def create_client_file(
905
994
  secret: str | None = None,
906
995
  scopes: List[str] | None = None,
907
996
  backends: dict[str, dict[str, str]] | None = None,
997
+ contract_scopes: dict[str, list[str]] | None = None,
908
998
  *,
909
999
  add_secret: bool = False,
910
1000
  ) -> tuple[pathlib.Path, dict]:
@@ -937,6 +1027,7 @@ def create_client_file(
937
1027
  "client_secret_hash": secret_hash,
938
1028
  "scopes": scopes or [],
939
1029
  "backends": backends or {},
1030
+ "contract_scopes": contract_scopes or {},
940
1031
  }
941
1032
  keymap[name] = client_id
942
1033
 
@@ -989,6 +1080,7 @@ def update_client_file(
989
1080
  secret: str | None,
990
1081
  scopes: list | None,
991
1082
  backends: dict[str, dict[str, str]] | None,
1083
+ contract_scopes: dict[str, list[str]] | None = None,
992
1084
  ) -> dict:
993
1085
  if client_exists(path, client_id):
994
1086
  config = context.get("config")
@@ -1000,6 +1092,7 @@ def update_client_file(
1000
1092
  new_secret_hash = passwords.crypt(secret) if secret else client.secret_hash
1001
1093
  new_scopes = scopes if scopes is not None else client.scopes
1002
1094
  new_backends = backends if backends is not None else client.backends
1095
+ new_contract_scopes = contract_scopes if contract_scopes is not None else client.contract_scopes
1003
1096
 
1004
1097
  client_path = get_client_file_path(path, client_id)
1005
1098
  keymap = _load_keymap_data(keymap_path)
@@ -1013,6 +1106,7 @@ def update_client_file(
1013
1106
  "client_secret_hash": new_secret_hash,
1014
1107
  "scopes": list(new_scopes),
1015
1108
  "backends": new_backends,
1109
+ "contract_scopes": new_contract_scopes,
1016
1110
  }
1017
1111
 
1018
1112
  yml.dump(new_data, client_path)
@@ -1173,6 +1267,7 @@ def query_client(path: pathlib.Path, client: str, is_name: bool = False) -> Clie
1173
1267
  name_=client_name,
1174
1268
  secret_hash=data["client_secret_hash"],
1175
1269
  scopes=data["scopes"],
1176
- backends=data["backends"] if data.get("backends") else {},
1270
+ backends=data.get("backends", {}),
1271
+ contract_scopes=data.get("contract_scopes", {}),
1177
1272
  )
1178
1273
  return client
@@ -483,6 +483,11 @@ def sort(env, field):
483
483
  return env.call("asc", prop.dtype)
484
484
 
485
485
 
486
+ @ufunc.resolver(MongoQueryBuilder, DataType)
487
+ def sort(env: MongoQueryBuilder, dtype: DataType) -> Any:
488
+ return env.call("asc", dtype)
489
+
490
+
486
491
  @ufunc.resolver(MongoQueryBuilder, Positive)
487
492
  def sort(env, sign):
488
493
  return env.call("asc", sign.arg)
@@ -7,8 +7,8 @@ from geoalchemy2.shape import to_shape
7
7
 
8
8
 
9
9
  from spinta import commands
10
- from spinta.backends.postgresql.types.geometry.helpers import get_display_value
11
- from spinta.backends.postgresql.types.geometry.helpers import get_osm_link
10
+ from spinta.types.geometry.helpers import get_display_value
11
+ from spinta.types.geometry.helpers import get_osm_link
12
12
  from spinta.formats.components import Format
13
13
  from spinta.core.enums import Action
14
14
  from spinta.components import Context
@@ -7,6 +7,7 @@ from typing import Union, Any
7
7
  import geoalchemy2.functions
8
8
  import sqlalchemy as sa
9
9
  from sqlalchemy.dialects.postgresql import UUID
10
+ from sqlalchemy.sql.elements import UnaryExpression
10
11
 
11
12
  from spinta import exceptions, commands
12
13
  from spinta.auth import authorized
@@ -1138,6 +1139,11 @@ def sort(env, dtype):
1138
1139
  return env.call("asc", dtype)
1139
1140
 
1140
1141
 
1142
+ @ufunc.resolver(PgQueryBuilder, NestedProperty)
1143
+ def sort(env: PgQueryBuilder, nested: NestedProperty) -> UnaryExpression:
1144
+ return env.call("asc", nested.right)
1145
+
1146
+
1141
1147
  @ufunc.resolver(PgQueryBuilder, Negative_)
1142
1148
  def sort(env, field):
1143
1149
  prop = env.resolve_property(field)
@@ -77,15 +77,17 @@ def main(
77
77
  ),
78
78
  env_file: Optional[pathlib.Path] = Option(None, "--env-file", help=("Load configuration from a given .env file.")),
79
79
  version: bool = Option(False, help="Show version number."),
80
+ tb: Optional[str] = Option("pretty", "--tb", help=("Exception style: pretty, native.")),
81
+ # Deprecated. Use env file instead
80
82
  log_file: Optional[pathlib.Path] = Option(
81
83
  None, "--log-file", help=("Write log messages to a specified file, if not given, writes logs to STDERR.")
82
84
  ),
85
+ # Deprecated. Use env file instead
83
86
  log_level: Optional[str] = Option(
84
- "warning",
87
+ None,
85
88
  "--log-level",
86
89
  help=("Log level. Possible levels: fatal, error, warning, info, debug. Default: warning."),
87
90
  ),
88
- tb: Optional[str] = Option("pretty", "--tb", help=("Exception style: pretty, native.")),
89
91
  ):
90
92
  if tb == "pretty":
91
93
  app.pretty_exceptions_enable = True
@@ -94,15 +96,18 @@ def main(
94
96
  else:
95
97
  raise ValueError("Unknown value {tb!r} for --tb option. Possible values are: pretty, native.")
96
98
 
97
- logging.basicConfig(
98
- level=logging.getLevelName(log_level.upper()),
99
- format="%(asctime)s %(levelname)s: %(message)s",
100
- filename=log_file,
101
- )
99
+ ctx.obj = ctx.obj or create_context("cli", args=option, envfile=env_file)
102
100
 
103
- log.debug("log file set to: %s", log_file or "STDERR")
104
- log.debug("log level set to: %s", log_level)
101
+ if log_file:
102
+ log.warning(
103
+ "Deprecation warning: log_file option is deprecated and will be removed in a future version. "
104
+ "Set file_log_path via env file instead."
105
+ )
106
+ if log_level:
107
+ log.warning(
108
+ "Deprecation warning:log_level option is deprecated and will be removed in a future version. "
109
+ "Set log_level and file_log_level via env file instead."
110
+ )
105
111
 
106
- ctx.obj = ctx.obj or create_context("cli", args=option, envfile=env_file)
107
112
  if version:
108
113
  echo(spinta.__version__)
@@ -154,9 +154,9 @@ def _read_and_return_manifest(
154
154
  rename_duplicates: bool = False,
155
155
  verbose: bool = True,
156
156
  check_config: bool = True,
157
- load_backends: bool = True,
157
+ ensure_backends: bool = True,
158
158
  ) -> Iterator[ManifestRow]:
159
- context = configure_context(context, manifests, load_backends=load_backends)
159
+ context = configure_context(context, manifests, ensure_backends=ensure_backends)
160
160
  store = load_manifest(
161
161
  context,
162
162
  rename_duplicates=rename_duplicates,
@@ -732,6 +732,19 @@ class Model(MetaData):
732
732
  def get_given_properties(self):
733
733
  return {prop_name: prop for prop_name, prop in self.properties.items() if not prop_name.startswith("_")}
734
734
 
735
+ def get_namespaces(self, include_self: bool = True) -> set[str]:
736
+ namespaces = []
737
+ if include_self:
738
+ namespaces.append(self.name)
739
+
740
+ if self.ns:
741
+ namespaces.append(self.ns.name)
742
+ namespaces.extend(
743
+ [parent_namespace.name for parent_namespace in self.ns.parents() if parent_namespace.name]
744
+ )
745
+
746
+ return set(namespaces)
747
+
735
748
 
736
749
  class PropertyGiven:
737
750
  access: str | None = None
@@ -1080,6 +1093,7 @@ class Config:
1080
1093
  scope_formatter: ScopeFormatterFunc
1081
1094
  scope_max_length: int
1082
1095
  scope_log: bool
1096
+ check_contract_scopes: bool
1083
1097
  default_auth_client: str
1084
1098
  http_basic_auth: bool
1085
1099
  token_validation_key: dict | None = None
@@ -1113,6 +1127,10 @@ class Config:
1113
1127
  # Cache-Control header
1114
1128
  cache_control: str = ""
1115
1129
 
1130
+ log_level: str
1131
+ file_log_level: str
1132
+ file_log_path: pathlib.Path
1133
+
1116
1134
  def __init__(self):
1117
1135
  self.commands = _CommandsConfig()
1118
1136
  self.components = {}
@@ -266,8 +266,8 @@ CONFIG = {
266
266
  "max_file_size": 100,
267
267
  # Used to determine max amount of errors can be thrown while writing, before canceling writing stream
268
268
  "max_error_count_on_insert": 100,
269
- # Enables setting backends by default, disabled when Spinta used as library and does not contain configuration of backends
270
- "load_backends": True,
269
+ # Ensures setting backends by default, disabled when Spinta used as library and does not contain configuration of backends
270
+ "ensure_backends": True,
271
271
  # Response Cache-Control header.
272
272
  "cache_control_header": "public, max-age=60, must-revalidate",
273
273
  "environments": {
@@ -572,7 +572,7 @@ def configure_rc(
572
572
  resources: List[ResourceTuple] = None,
573
573
  dataset: str = None,
574
574
  manifest_type: str = "inline",
575
- load_backends=True,
575
+ ensure_backends=True,
576
576
  ) -> RawConfig:
577
577
  config: Dict[str, Any] = {}
578
578
 
@@ -658,7 +658,7 @@ def configure_rc(
658
658
  if check_names is not None:
659
659
  config["check.names"] = check_names
660
660
 
661
- config["load_backends"] = load_backends
661
+ config["ensure_backends"] = ensure_backends
662
662
 
663
663
  if config:
664
664
  rc = rc.fork(config)
@@ -127,6 +127,12 @@ class Action(enum.Enum):
127
127
  def values(cls):
128
128
  return list(cls._value2member_map_.keys())
129
129
 
130
+ @classmethod
131
+ def scope_action_values(cls) -> list[str]:
132
+ old_prefix_actions = list(map(lambda action: "_" + action, cls.values()))
133
+ new_prefix_actions = list(map(lambda action: "/:" + action, cls.values()))
134
+ return old_prefix_actions + new_prefix_actions
135
+
130
136
 
131
137
  class Mode(enum.Enum):
132
138
  # Internal mode always use internal backend set on manifest, namespace or
@@ -0,0 +1,88 @@
1
+ from typing import Any, Optional, Callable
2
+ from sqlalchemy.sql.sqltypes import LargeBinary
3
+ from sqlalchemy.types import UserDefinedType
4
+ from sqlalchemy.dialects.oracle import base
5
+ from sqlalchemy.sql.elements import ColumnElement
6
+ from sqlalchemy import Column
7
+ import sqlalchemy as sa
8
+
9
+
10
+ class LONGRAW(LargeBinary):
11
+ __visit_name__ = "LONGRAW"
12
+
13
+
14
+ class SDO_GEOMETRY(UserDefinedType):
15
+ cache_ok = True
16
+ __visit_name__ = "SDO_GEOMETRY"
17
+
18
+ def __init__(self, geometry_type: Optional[str] = None, srid: Optional[int] = None):
19
+ self.geometry_type = geometry_type
20
+ self.srid = srid
21
+
22
+ def get_col_spec(self, **kw: Any) -> str:
23
+ return "SDO_GEOMETRY"
24
+
25
+ def column_expression(self, col: Column) -> ColumnElement:
26
+ wkt_expr = sa.func.SDO_UTIL.TO_WKTGEOMETRY(col)
27
+ return sa.func.NVL(wkt_expr, None)
28
+
29
+ def result_processor(self, dialect: Any, coltype: Any) -> Optional[Callable]:
30
+ def process(value: Optional[Any]) -> Optional[Any]:
31
+ if value is None:
32
+ return None
33
+
34
+ # Handle CLOB/LOB objects from cx_Oracle/python-oracledb
35
+ # LOB objects have a .read() method to extract the string content
36
+ if hasattr(value, "read"):
37
+ try:
38
+ value = value.read()
39
+ except Exception as e:
40
+ import warnings
41
+
42
+ warnings.warn(f"Failed to read CLOB/LOB for SDO_GEOMETRY: {e}")
43
+ return None
44
+
45
+ if isinstance(value, str):
46
+ try:
47
+ from shapely import from_wkt
48
+
49
+ return from_wkt(value)
50
+ except Exception as e:
51
+ import warnings
52
+
53
+ warnings.warn(f"Failed to parse WKT geometry: {e}")
54
+ return None
55
+
56
+ # Unexpected type - log warning and return None
57
+ import warnings
58
+
59
+ warnings.warn(f"Expected WKT string or LOB for SDO_GEOMETRY but got {type(value).__name__}")
60
+ return None
61
+
62
+ return process
63
+
64
+
65
+ def flip_geometry_oracle(column: Column) -> ColumnElement:
66
+ return sa.func.SDO_UTIL.REVERSE_LINESTRING(column)
67
+
68
+
69
+ if "LONG RAW" not in base.ischema_names:
70
+ base.ischema_names["LONG RAW"] = LONGRAW
71
+
72
+ if not hasattr(base.OracleTypeCompiler, "visit_LONGRAW"):
73
+
74
+ def visit_LONGRAW(self, type_: LONGRAW, **kw: Any) -> str:
75
+ return "LONG RAW"
76
+
77
+ base.OracleTypeCompiler.visit_LONGRAW = visit_LONGRAW
78
+
79
+
80
+ if "SDO_GEOMETRY" not in base.ischema_names:
81
+ base.ischema_names["SDO_GEOMETRY"] = SDO_GEOMETRY
82
+
83
+ if not hasattr(base.OracleTypeCompiler, "visit_SDO_GEOMETRY"):
84
+
85
+ def visit_SDO_GEOMETRY(self, type_: SDO_GEOMETRY, **kw: Any) -> str:
86
+ return "SDO_GEOMETRY"
87
+
88
+ base.OracleTypeCompiler.visit_SDO_GEOMETRY = visit_SDO_GEOMETRY
@@ -0,0 +1,40 @@
1
+ from typing import Any, Dict
2
+ from shapely.geometry.base import BaseGeometry
3
+
4
+ from spinta import commands
5
+ from spinta.components import Context
6
+ from spinta.core.enums import Action
7
+ from spinta.formats.components import Format
8
+ from spinta.formats.html.components import Cell, Html
9
+ from spinta.types.geometry.components import Geometry
10
+ from spinta.types.geometry.helpers import get_display_value, get_osm_link
11
+
12
+
13
+ @commands.prepare_dtype_for_response.register(Context, Format, Geometry, BaseGeometry)
14
+ def prepare_dtype_for_response(
15
+ context: Context,
16
+ fmt: Format,
17
+ dtype: Geometry,
18
+ value: BaseGeometry,
19
+ *,
20
+ data: Dict[str, Any],
21
+ action: Action,
22
+ select: dict = None,
23
+ ):
24
+ return value.wkt
25
+
26
+
27
+ @commands.prepare_dtype_for_response.register(Context, Html, Geometry, BaseGeometry)
28
+ def prepare_dtype_for_response(
29
+ context: Context,
30
+ fmt: Html,
31
+ dtype: Geometry,
32
+ value: BaseGeometry,
33
+ *,
34
+ data: Dict[str, Any],
35
+ action: Action,
36
+ select: dict = None,
37
+ ):
38
+ display_value = get_display_value(value)
39
+ osm_link = get_osm_link(value, dtype)
40
+ return Cell(display_value, link=osm_link)