spens-acp 1.0.1__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 (499) hide show
  1. spens_acp-1.0.1/.gitignore +1 -0
  2. spens_acp-1.0.1/.gitlab-ci.yml +179 -0
  3. spens_acp-1.0.1/.local-packages/acp.whl +0 -0
  4. spens_acp-1.0.1/.local-packages/annotated_types.whl +0 -0
  5. spens_acp-1.0.1/.local-packages/iniconfig.whl +0 -0
  6. spens_acp-1.0.1/.local-packages/packaging.whl +0 -0
  7. spens_acp-1.0.1/.local-packages/pluggy.whl +0 -0
  8. spens_acp-1.0.1/.local-packages/pydantic.whl +0 -0
  9. spens_acp-1.0.1/.local-packages/pydantic_core.whl +0 -0
  10. spens_acp-1.0.1/.local-packages/pytest.whl +0 -0
  11. spens_acp-1.0.1/.local-packages/site-packages/_pytest/__init__.py +13 -0
  12. spens_acp-1.0.1/.local-packages/site-packages/_pytest/_argcomplete.py +117 -0
  13. spens_acp-1.0.1/.local-packages/site-packages/_pytest/_code/__init__.py +26 -0
  14. spens_acp-1.0.1/.local-packages/site-packages/_pytest/_code/code.py +1632 -0
  15. spens_acp-1.0.1/.local-packages/site-packages/_pytest/_code/source.py +228 -0
  16. spens_acp-1.0.1/.local-packages/site-packages/_pytest/_io/__init__.py +10 -0
  17. spens_acp-1.0.1/.local-packages/site-packages/_pytest/_io/pprint.py +673 -0
  18. spens_acp-1.0.1/.local-packages/site-packages/_pytest/_io/saferepr.py +155 -0
  19. spens_acp-1.0.1/.local-packages/site-packages/_pytest/_io/terminalwriter.py +258 -0
  20. spens_acp-1.0.1/.local-packages/site-packages/_pytest/_io/wcwidth.py +57 -0
  21. spens_acp-1.0.1/.local-packages/site-packages/_pytest/_py/__init__.py +0 -0
  22. spens_acp-1.0.1/.local-packages/site-packages/_pytest/_py/error.py +119 -0
  23. spens_acp-1.0.1/.local-packages/site-packages/_pytest/_py/path.py +1475 -0
  24. spens_acp-1.0.1/.local-packages/site-packages/_pytest/_version.py +24 -0
  25. spens_acp-1.0.1/.local-packages/site-packages/_pytest/assertion/__init__.py +236 -0
  26. spens_acp-1.0.1/.local-packages/site-packages/_pytest/assertion/_compare_any.py +131 -0
  27. spens_acp-1.0.1/.local-packages/site-packages/_pytest/assertion/_compare_mapping.py +48 -0
  28. spens_acp-1.0.1/.local-packages/site-packages/_pytest/assertion/_compare_sequence.py +90 -0
  29. spens_acp-1.0.1/.local-packages/site-packages/_pytest/assertion/_compare_set.py +101 -0
  30. spens_acp-1.0.1/.local-packages/site-packages/_pytest/assertion/_guards.py +60 -0
  31. spens_acp-1.0.1/.local-packages/site-packages/_pytest/assertion/_typing.py +12 -0
  32. spens_acp-1.0.1/.local-packages/site-packages/_pytest/assertion/compare_text.py +104 -0
  33. spens_acp-1.0.1/.local-packages/site-packages/_pytest/assertion/highlight.py +11 -0
  34. spens_acp-1.0.1/.local-packages/site-packages/_pytest/assertion/rewrite.py +1193 -0
  35. spens_acp-1.0.1/.local-packages/site-packages/_pytest/assertion/truncate.py +128 -0
  36. spens_acp-1.0.1/.local-packages/site-packages/_pytest/assertion/util.py +215 -0
  37. spens_acp-1.0.1/.local-packages/site-packages/_pytest/cacheprovider.py +640 -0
  38. spens_acp-1.0.1/.local-packages/site-packages/_pytest/capture.py +1151 -0
  39. spens_acp-1.0.1/.local-packages/site-packages/_pytest/compat.py +329 -0
  40. spens_acp-1.0.1/.local-packages/site-packages/_pytest/config/__init__.py +2246 -0
  41. spens_acp-1.0.1/.local-packages/site-packages/_pytest/config/argparsing.py +503 -0
  42. spens_acp-1.0.1/.local-packages/site-packages/_pytest/config/exceptions.py +15 -0
  43. spens_acp-1.0.1/.local-packages/site-packages/_pytest/config/findpaths.py +350 -0
  44. spens_acp-1.0.1/.local-packages/site-packages/_pytest/debugging.py +404 -0
  45. spens_acp-1.0.1/.local-packages/site-packages/_pytest/deprecated.py +139 -0
  46. spens_acp-1.0.1/.local-packages/site-packages/_pytest/doctest.py +735 -0
  47. spens_acp-1.0.1/.local-packages/site-packages/_pytest/faulthandler.py +119 -0
  48. spens_acp-1.0.1/.local-packages/site-packages/_pytest/fixtures.py +2393 -0
  49. spens_acp-1.0.1/.local-packages/site-packages/_pytest/freeze_support.py +45 -0
  50. spens_acp-1.0.1/.local-packages/site-packages/_pytest/helpconfig.py +293 -0
  51. spens_acp-1.0.1/.local-packages/site-packages/_pytest/hookspec.py +1289 -0
  52. spens_acp-1.0.1/.local-packages/site-packages/_pytest/junitxml.py +703 -0
  53. spens_acp-1.0.1/.local-packages/site-packages/_pytest/legacypath.py +468 -0
  54. spens_acp-1.0.1/.local-packages/site-packages/_pytest/logging.py +975 -0
  55. spens_acp-1.0.1/.local-packages/site-packages/_pytest/main.py +1215 -0
  56. spens_acp-1.0.1/.local-packages/site-packages/_pytest/mark/__init__.py +301 -0
  57. spens_acp-1.0.1/.local-packages/site-packages/_pytest/mark/expression.py +353 -0
  58. spens_acp-1.0.1/.local-packages/site-packages/_pytest/mark/structures.py +695 -0
  59. spens_acp-1.0.1/.local-packages/site-packages/_pytest/monkeypatch.py +430 -0
  60. spens_acp-1.0.1/.local-packages/site-packages/_pytest/nodes.py +764 -0
  61. spens_acp-1.0.1/.local-packages/site-packages/_pytest/outcomes.py +286 -0
  62. spens_acp-1.0.1/.local-packages/site-packages/_pytest/pastebin.py +121 -0
  63. spens_acp-1.0.1/.local-packages/site-packages/_pytest/pathlib.py +1054 -0
  64. spens_acp-1.0.1/.local-packages/site-packages/_pytest/py.typed +0 -0
  65. spens_acp-1.0.1/.local-packages/site-packages/_pytest/pytester.py +1803 -0
  66. spens_acp-1.0.1/.local-packages/site-packages/_pytest/pytester_assertions.py +74 -0
  67. spens_acp-1.0.1/.local-packages/site-packages/_pytest/python.py +1759 -0
  68. spens_acp-1.0.1/.local-packages/site-packages/_pytest/python_api.py +922 -0
  69. spens_acp-1.0.1/.local-packages/site-packages/_pytest/raises.py +1505 -0
  70. spens_acp-1.0.1/.local-packages/site-packages/_pytest/recwarn.py +379 -0
  71. spens_acp-1.0.1/.local-packages/site-packages/_pytest/reports.py +694 -0
  72. spens_acp-1.0.1/.local-packages/site-packages/_pytest/runner.py +593 -0
  73. spens_acp-1.0.1/.local-packages/site-packages/_pytest/scope.py +91 -0
  74. spens_acp-1.0.1/.local-packages/site-packages/_pytest/setuponly.py +98 -0
  75. spens_acp-1.0.1/.local-packages/site-packages/_pytest/setupplan.py +39 -0
  76. spens_acp-1.0.1/.local-packages/site-packages/_pytest/skipping.py +321 -0
  77. spens_acp-1.0.1/.local-packages/site-packages/_pytest/stash.py +116 -0
  78. spens_acp-1.0.1/.local-packages/site-packages/_pytest/stepwise.py +209 -0
  79. spens_acp-1.0.1/.local-packages/site-packages/_pytest/subtests.py +418 -0
  80. spens_acp-1.0.1/.local-packages/site-packages/_pytest/terminal.py +1786 -0
  81. spens_acp-1.0.1/.local-packages/site-packages/_pytest/terminalprogress.py +30 -0
  82. spens_acp-1.0.1/.local-packages/site-packages/_pytest/threadexception.py +152 -0
  83. spens_acp-1.0.1/.local-packages/site-packages/_pytest/timing.py +97 -0
  84. spens_acp-1.0.1/.local-packages/site-packages/_pytest/tmpdir.py +351 -0
  85. spens_acp-1.0.1/.local-packages/site-packages/_pytest/tracemalloc.py +24 -0
  86. spens_acp-1.0.1/.local-packages/site-packages/_pytest/unittest.py +653 -0
  87. spens_acp-1.0.1/.local-packages/site-packages/_pytest/unraisableexception.py +188 -0
  88. spens_acp-1.0.1/.local-packages/site-packages/_pytest/warning_types.py +166 -0
  89. spens_acp-1.0.1/.local-packages/site-packages/_pytest/warnings.py +152 -0
  90. spens_acp-1.0.1/.local-packages/site-packages/acp/__init__.py +238 -0
  91. spens_acp-1.0.1/.local-packages/site-packages/acp/_cookies.py +53 -0
  92. spens_acp-1.0.1/.local-packages/site-packages/acp/_deserialize.py +43 -0
  93. spens_acp-1.0.1/.local-packages/site-packages/acp/_sse.py +84 -0
  94. spens_acp-1.0.1/.local-packages/site-packages/acp/_transport.py +151 -0
  95. spens_acp-1.0.1/.local-packages/site-packages/acp/agent/__init__.py +3 -0
  96. spens_acp-1.0.1/.local-packages/site-packages/acp/agent/connection.py +280 -0
  97. spens_acp-1.0.1/.local-packages/site-packages/acp/agent/router.py +119 -0
  98. spens_acp-1.0.1/.local-packages/site-packages/acp/client/__init__.py +3 -0
  99. spens_acp-1.0.1/.local-packages/site-packages/acp/client/connection.py +355 -0
  100. spens_acp-1.0.1/.local-packages/site-packages/acp/client/router.py +179 -0
  101. spens_acp-1.0.1/.local-packages/site-packages/acp/connection.py +276 -0
  102. spens_acp-1.0.1/.local-packages/site-packages/acp/contrib/__init__.py +27 -0
  103. spens_acp-1.0.1/.local-packages/site-packages/acp/contrib/permissions.py +96 -0
  104. spens_acp-1.0.1/.local-packages/site-packages/acp/contrib/session_state.py +273 -0
  105. spens_acp-1.0.1/.local-packages/site-packages/acp/contrib/tool_calls.py +275 -0
  106. spens_acp-1.0.1/.local-packages/site-packages/acp/core.py +111 -0
  107. spens_acp-1.0.1/.local-packages/site-packages/acp/exceptions.py +46 -0
  108. spens_acp-1.0.1/.local-packages/site-packages/acp/helpers.py +280 -0
  109. spens_acp-1.0.1/.local-packages/site-packages/acp/http/__init__.py +30 -0
  110. spens_acp-1.0.1/.local-packages/site-packages/acp/http/asgi.py +175 -0
  111. spens_acp-1.0.1/.local-packages/site-packages/acp/http/client.py +238 -0
  112. spens_acp-1.0.1/.local-packages/site-packages/acp/http/protocol.py +106 -0
  113. spens_acp-1.0.1/.local-packages/site-packages/acp/http/server.py +461 -0
  114. spens_acp-1.0.1/.local-packages/site-packages/acp/interfaces.py +250 -0
  115. spens_acp-1.0.1/.local-packages/site-packages/acp/meta.py +49 -0
  116. spens_acp-1.0.1/.local-packages/site-packages/acp/py.typed +1 -0
  117. spens_acp-1.0.1/.local-packages/site-packages/acp/router.py +184 -0
  118. spens_acp-1.0.1/.local-packages/site-packages/acp/schema.py +5838 -0
  119. spens_acp-1.0.1/.local-packages/site-packages/acp/stdio.py +208 -0
  120. spens_acp-1.0.1/.local-packages/site-packages/acp/task/__init__.py +4 -0
  121. spens_acp-1.0.1/.local-packages/site-packages/acp/task/sender.py +63 -0
  122. spens_acp-1.0.1/.local-packages/site-packages/acp/task/supervisor.py +80 -0
  123. spens_acp-1.0.1/.local-packages/site-packages/acp/telemetry.py +41 -0
  124. spens_acp-1.0.1/.local-packages/site-packages/acp/transports.py +118 -0
  125. spens_acp-1.0.1/.local-packages/site-packages/acp/utils.py +268 -0
  126. spens_acp-1.0.1/.local-packages/site-packages/acp/ws/__init__.py +23 -0
  127. spens_acp-1.0.1/.local-packages/site-packages/acp/ws/client.py +117 -0
  128. spens_acp-1.0.1/.local-packages/site-packages/acp/ws/server.py +79 -0
  129. spens_acp-1.0.1/.local-packages/site-packages/agent_client_protocol-0.12.1.dist-info/METADATA +103 -0
  130. spens_acp-1.0.1/.local-packages/site-packages/agent_client_protocol-0.12.1.dist-info/RECORD +44 -0
  131. spens_acp-1.0.1/.local-packages/site-packages/agent_client_protocol-0.12.1.dist-info/WHEEL +4 -0
  132. spens_acp-1.0.1/.local-packages/site-packages/agent_client_protocol-0.12.1.dist-info/entry_points.txt +4 -0
  133. spens_acp-1.0.1/.local-packages/site-packages/agent_client_protocol-0.12.1.dist-info/licenses/LICENSE +202 -0
  134. spens_acp-1.0.1/.local-packages/site-packages/annotated_types/__init__.py +416 -0
  135. spens_acp-1.0.1/.local-packages/site-packages/annotated_types/py.typed +0 -0
  136. spens_acp-1.0.1/.local-packages/site-packages/annotated_types/test_cases.py +146 -0
  137. spens_acp-1.0.1/.local-packages/site-packages/annotated_types-0.8.0.dist-info/METADATA +295 -0
  138. spens_acp-1.0.1/.local-packages/site-packages/annotated_types-0.8.0.dist-info/RECORD +7 -0
  139. spens_acp-1.0.1/.local-packages/site-packages/annotated_types-0.8.0.dist-info/WHEEL +4 -0
  140. spens_acp-1.0.1/.local-packages/site-packages/annotated_types-0.8.0.dist-info/licenses/LICENSE +21 -0
  141. spens_acp-1.0.1/.local-packages/site-packages/iniconfig/__init__.py +249 -0
  142. spens_acp-1.0.1/.local-packages/site-packages/iniconfig/_parse.py +163 -0
  143. spens_acp-1.0.1/.local-packages/site-packages/iniconfig/_version.py +34 -0
  144. spens_acp-1.0.1/.local-packages/site-packages/iniconfig/exceptions.py +16 -0
  145. spens_acp-1.0.1/.local-packages/site-packages/iniconfig/py.typed +0 -0
  146. spens_acp-1.0.1/.local-packages/site-packages/iniconfig-2.3.0.dist-info/METADATA +79 -0
  147. spens_acp-1.0.1/.local-packages/site-packages/iniconfig-2.3.0.dist-info/RECORD +10 -0
  148. spens_acp-1.0.1/.local-packages/site-packages/iniconfig-2.3.0.dist-info/WHEEL +5 -0
  149. spens_acp-1.0.1/.local-packages/site-packages/iniconfig-2.3.0.dist-info/licenses/LICENSE +21 -0
  150. spens_acp-1.0.1/.local-packages/site-packages/iniconfig-2.3.0.dist-info/top_level.txt +1 -0
  151. spens_acp-1.0.1/.local-packages/site-packages/packaging/__init__.py +15 -0
  152. spens_acp-1.0.1/.local-packages/site-packages/packaging/_elffile.py +108 -0
  153. spens_acp-1.0.1/.local-packages/site-packages/packaging/_manylinux.py +278 -0
  154. spens_acp-1.0.1/.local-packages/site-packages/packaging/_musllinux.py +88 -0
  155. spens_acp-1.0.1/.local-packages/site-packages/packaging/_parser.py +418 -0
  156. spens_acp-1.0.1/.local-packages/site-packages/packaging/_ranges.py +836 -0
  157. spens_acp-1.0.1/.local-packages/site-packages/packaging/_structures.py +33 -0
  158. spens_acp-1.0.1/.local-packages/site-packages/packaging/_tokenizer.py +200 -0
  159. spens_acp-1.0.1/.local-packages/site-packages/packaging/dependency_groups.py +335 -0
  160. spens_acp-1.0.1/.local-packages/site-packages/packaging/direct_url.py +349 -0
  161. spens_acp-1.0.1/.local-packages/site-packages/packaging/errors.py +94 -0
  162. spens_acp-1.0.1/.local-packages/site-packages/packaging/licenses/__init__.py +198 -0
  163. spens_acp-1.0.1/.local-packages/site-packages/packaging/licenses/_spdx.py +799 -0
  164. spens_acp-1.0.1/.local-packages/site-packages/packaging/markers.py +576 -0
  165. spens_acp-1.0.1/.local-packages/site-packages/packaging/metadata.py +1054 -0
  166. spens_acp-1.0.1/.local-packages/site-packages/packaging/py.typed +0 -0
  167. spens_acp-1.0.1/.local-packages/site-packages/packaging/pylock.py +943 -0
  168. spens_acp-1.0.1/.local-packages/site-packages/packaging/ranges.py +2067 -0
  169. spens_acp-1.0.1/.local-packages/site-packages/packaging/requirements.py +192 -0
  170. spens_acp-1.0.1/.local-packages/site-packages/packaging/specifiers.py +1457 -0
  171. spens_acp-1.0.1/.local-packages/site-packages/packaging/tags.py +1053 -0
  172. spens_acp-1.0.1/.local-packages/site-packages/packaging/utils.py +370 -0
  173. spens_acp-1.0.1/.local-packages/site-packages/packaging/version.py +1252 -0
  174. spens_acp-1.0.1/.local-packages/site-packages/packaging-26.3.dist-info/METADATA +112 -0
  175. spens_acp-1.0.1/.local-packages/site-packages/packaging-26.3.dist-info/RECORD +29 -0
  176. spens_acp-1.0.1/.local-packages/site-packages/packaging-26.3.dist-info/WHEEL +4 -0
  177. spens_acp-1.0.1/.local-packages/site-packages/packaging-26.3.dist-info/licenses/LICENSE +3 -0
  178. spens_acp-1.0.1/.local-packages/site-packages/packaging-26.3.dist-info/licenses/LICENSE.APACHE +177 -0
  179. spens_acp-1.0.1/.local-packages/site-packages/packaging-26.3.dist-info/licenses/LICENSE.BSD +23 -0
  180. spens_acp-1.0.1/.local-packages/site-packages/pluggy/__init__.py +30 -0
  181. spens_acp-1.0.1/.local-packages/site-packages/pluggy/_callers.py +169 -0
  182. spens_acp-1.0.1/.local-packages/site-packages/pluggy/_hooks.py +714 -0
  183. spens_acp-1.0.1/.local-packages/site-packages/pluggy/_manager.py +523 -0
  184. spens_acp-1.0.1/.local-packages/site-packages/pluggy/_result.py +107 -0
  185. spens_acp-1.0.1/.local-packages/site-packages/pluggy/_tracing.py +72 -0
  186. spens_acp-1.0.1/.local-packages/site-packages/pluggy/_version.py +21 -0
  187. spens_acp-1.0.1/.local-packages/site-packages/pluggy/_warnings.py +27 -0
  188. spens_acp-1.0.1/.local-packages/site-packages/pluggy/py.typed +0 -0
  189. spens_acp-1.0.1/.local-packages/site-packages/pluggy-1.6.0.dist-info/METADATA +152 -0
  190. spens_acp-1.0.1/.local-packages/site-packages/pluggy-1.6.0.dist-info/RECORD +14 -0
  191. spens_acp-1.0.1/.local-packages/site-packages/pluggy-1.6.0.dist-info/WHEEL +5 -0
  192. spens_acp-1.0.1/.local-packages/site-packages/pluggy-1.6.0.dist-info/licenses/LICENSE +21 -0
  193. spens_acp-1.0.1/.local-packages/site-packages/pluggy-1.6.0.dist-info/top_level.txt +1 -0
  194. spens_acp-1.0.1/.local-packages/site-packages/py.py +15 -0
  195. spens_acp-1.0.1/.local-packages/site-packages/pydantic/__init__.py +456 -0
  196. spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/__init__.py +0 -0
  197. spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_config.py +386 -0
  198. spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_core_metadata.py +97 -0
  199. spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_core_utils.py +174 -0
  200. spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_dataclasses.py +315 -0
  201. spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_decorators.py +873 -0
  202. spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_decorators_v1.py +174 -0
  203. spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_discriminated_union.py +494 -0
  204. spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_docs_extraction.py +113 -0
  205. spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_fields.py +729 -0
  206. spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_forward_ref.py +23 -0
  207. spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_generate_schema.py +2934 -0
  208. spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_generics.py +530 -0
  209. spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_git.py +27 -0
  210. spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_import_utils.py +20 -0
  211. spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_internal_dataclass.py +7 -0
  212. spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_known_annotated_metadata.py +403 -0
  213. spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_mock_val_ser.py +228 -0
  214. spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_model_construction.py +868 -0
  215. spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_namespace_utils.py +293 -0
  216. spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_repr.py +124 -0
  217. spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_schema_gather.py +212 -0
  218. spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_schema_generation_shared.py +125 -0
  219. spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_serializers.py +53 -0
  220. spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_signature.py +189 -0
  221. spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_typing_extra.py +785 -0
  222. spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_utils.py +446 -0
  223. spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_validate_call.py +141 -0
  224. spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_validators.py +534 -0
  225. spens_acp-1.0.1/.local-packages/site-packages/pydantic/_migration.py +316 -0
  226. spens_acp-1.0.1/.local-packages/site-packages/pydantic/alias_generators.py +62 -0
  227. spens_acp-1.0.1/.local-packages/site-packages/pydantic/aliases.py +135 -0
  228. spens_acp-1.0.1/.local-packages/site-packages/pydantic/annotated_handlers.py +122 -0
  229. spens_acp-1.0.1/.local-packages/site-packages/pydantic/class_validators.py +5 -0
  230. spens_acp-1.0.1/.local-packages/site-packages/pydantic/color.py +604 -0
  231. spens_acp-1.0.1/.local-packages/site-packages/pydantic/config.py +1296 -0
  232. spens_acp-1.0.1/.local-packages/site-packages/pydantic/dataclasses.py +413 -0
  233. spens_acp-1.0.1/.local-packages/site-packages/pydantic/datetime_parse.py +5 -0
  234. spens_acp-1.0.1/.local-packages/site-packages/pydantic/decorator.py +5 -0
  235. spens_acp-1.0.1/.local-packages/site-packages/pydantic/deprecated/__init__.py +0 -0
  236. spens_acp-1.0.1/.local-packages/site-packages/pydantic/deprecated/class_validators.py +256 -0
  237. spens_acp-1.0.1/.local-packages/site-packages/pydantic/deprecated/config.py +72 -0
  238. spens_acp-1.0.1/.local-packages/site-packages/pydantic/deprecated/copy_internals.py +224 -0
  239. spens_acp-1.0.1/.local-packages/site-packages/pydantic/deprecated/decorator.py +284 -0
  240. spens_acp-1.0.1/.local-packages/site-packages/pydantic/deprecated/json.py +141 -0
  241. spens_acp-1.0.1/.local-packages/site-packages/pydantic/deprecated/parse.py +80 -0
  242. spens_acp-1.0.1/.local-packages/site-packages/pydantic/deprecated/tools.py +103 -0
  243. spens_acp-1.0.1/.local-packages/site-packages/pydantic/env_settings.py +5 -0
  244. spens_acp-1.0.1/.local-packages/site-packages/pydantic/error_wrappers.py +5 -0
  245. spens_acp-1.0.1/.local-packages/site-packages/pydantic/errors.py +189 -0
  246. spens_acp-1.0.1/.local-packages/site-packages/pydantic/experimental/__init__.py +1 -0
  247. spens_acp-1.0.1/.local-packages/site-packages/pydantic/experimental/arguments_schema.py +44 -0
  248. spens_acp-1.0.1/.local-packages/site-packages/pydantic/experimental/missing_sentinel.py +5 -0
  249. spens_acp-1.0.1/.local-packages/site-packages/pydantic/experimental/pipeline.py +663 -0
  250. spens_acp-1.0.1/.local-packages/site-packages/pydantic/fields.py +1892 -0
  251. spens_acp-1.0.1/.local-packages/site-packages/pydantic/functional_serializers.py +470 -0
  252. spens_acp-1.0.1/.local-packages/site-packages/pydantic/functional_validators.py +889 -0
  253. spens_acp-1.0.1/.local-packages/site-packages/pydantic/generics.py +5 -0
  254. spens_acp-1.0.1/.local-packages/site-packages/pydantic/json.py +5 -0
  255. spens_acp-1.0.1/.local-packages/site-packages/pydantic/json_schema.py +2911 -0
  256. spens_acp-1.0.1/.local-packages/site-packages/pydantic/main.py +1838 -0
  257. spens_acp-1.0.1/.local-packages/site-packages/pydantic/mypy.py +1414 -0
  258. spens_acp-1.0.1/.local-packages/site-packages/pydantic/networks.py +1332 -0
  259. spens_acp-1.0.1/.local-packages/site-packages/pydantic/parse.py +5 -0
  260. spens_acp-1.0.1/.local-packages/site-packages/pydantic/plugin/__init__.py +193 -0
  261. spens_acp-1.0.1/.local-packages/site-packages/pydantic/plugin/_loader.py +58 -0
  262. spens_acp-1.0.1/.local-packages/site-packages/pydantic/plugin/_schema_validator.py +152 -0
  263. spens_acp-1.0.1/.local-packages/site-packages/pydantic/py.typed +0 -0
  264. spens_acp-1.0.1/.local-packages/site-packages/pydantic/root_model.py +157 -0
  265. spens_acp-1.0.1/.local-packages/site-packages/pydantic/schema.py +5 -0
  266. spens_acp-1.0.1/.local-packages/site-packages/pydantic/tools.py +5 -0
  267. spens_acp-1.0.1/.local-packages/site-packages/pydantic/type_adapter.py +801 -0
  268. spens_acp-1.0.1/.local-packages/site-packages/pydantic/types.py +3310 -0
  269. spens_acp-1.0.1/.local-packages/site-packages/pydantic/typing.py +5 -0
  270. spens_acp-1.0.1/.local-packages/site-packages/pydantic/utils.py +5 -0
  271. spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/__init__.py +131 -0
  272. spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/_hypothesis_plugin.py +391 -0
  273. spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/annotated_types.py +72 -0
  274. spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/class_validators.py +361 -0
  275. spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/color.py +494 -0
  276. spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/config.py +191 -0
  277. spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/dataclasses.py +500 -0
  278. spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/datetime_parse.py +248 -0
  279. spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/decorator.py +264 -0
  280. spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/env_settings.py +350 -0
  281. spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/error_wrappers.py +161 -0
  282. spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/errors.py +646 -0
  283. spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/fields.py +1253 -0
  284. spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/generics.py +400 -0
  285. spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/json.py +112 -0
  286. spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/main.py +1130 -0
  287. spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/mypy.py +949 -0
  288. spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/networks.py +747 -0
  289. spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/parse.py +66 -0
  290. spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/py.typed +0 -0
  291. spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/schema.py +1163 -0
  292. spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/tools.py +92 -0
  293. spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/types.py +1205 -0
  294. spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/typing.py +627 -0
  295. spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/utils.py +807 -0
  296. spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/validators.py +768 -0
  297. spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/version.py +38 -0
  298. spens_acp-1.0.1/.local-packages/site-packages/pydantic/validate_call_decorator.py +116 -0
  299. spens_acp-1.0.1/.local-packages/site-packages/pydantic/validators.py +5 -0
  300. spens_acp-1.0.1/.local-packages/site-packages/pydantic/version.py +113 -0
  301. spens_acp-1.0.1/.local-packages/site-packages/pydantic/warnings.py +122 -0
  302. spens_acp-1.0.1/.local-packages/site-packages/pydantic-2.13.5.dist-info/METADATA +1307 -0
  303. spens_acp-1.0.1/.local-packages/site-packages/pydantic-2.13.5.dist-info/RECORD +111 -0
  304. spens_acp-1.0.1/.local-packages/site-packages/pydantic-2.13.5.dist-info/WHEEL +4 -0
  305. spens_acp-1.0.1/.local-packages/site-packages/pydantic-2.13.5.dist-info/licenses/LICENSE +21 -0
  306. spens_acp-1.0.1/.local-packages/site-packages/pydantic_core/__init__.py +193 -0
  307. spens_acp-1.0.1/.local-packages/site-packages/pydantic_core/_pydantic_core/__init__.pyi +1118 -0
  308. spens_acp-1.0.1/.local-packages/site-packages/pydantic_core/_pydantic_core/_schema_gather.pyi +34 -0
  309. spens_acp-1.0.1/.local-packages/site-packages/pydantic_core/_pydantic_core.cpython-312-x86_64-linux-gnu.so +0 -0
  310. spens_acp-1.0.1/.local-packages/site-packages/pydantic_core/core_schema.py +4828 -0
  311. spens_acp-1.0.1/.local-packages/site-packages/pydantic_core/py.typed +0 -0
  312. spens_acp-1.0.1/.local-packages/site-packages/pydantic_core-2.49.0.dist-info/METADATA +171 -0
  313. spens_acp-1.0.1/.local-packages/site-packages/pydantic_core-2.49.0.dist-info/RECORD +11 -0
  314. spens_acp-1.0.1/.local-packages/site-packages/pydantic_core-2.49.0.dist-info/WHEEL +5 -0
  315. spens_acp-1.0.1/.local-packages/site-packages/pydantic_core-2.49.0.dist-info/licenses/LICENSE +21 -0
  316. spens_acp-1.0.1/.local-packages/site-packages/pydantic_core-2.49.0.dist-info/sboms/pydantic-core.cyclonedx.json +3860 -0
  317. spens_acp-1.0.1/.local-packages/site-packages/pytest/__init__.py +188 -0
  318. spens_acp-1.0.1/.local-packages/site-packages/pytest/__main__.py +9 -0
  319. spens_acp-1.0.1/.local-packages/site-packages/pytest/py.typed +0 -0
  320. spens_acp-1.0.1/.local-packages/site-packages/pytest-9.1.1.dist-info/METADATA +211 -0
  321. spens_acp-1.0.1/.local-packages/site-packages/pytest-9.1.1.dist-info/RECORD +89 -0
  322. spens_acp-1.0.1/.local-packages/site-packages/pytest-9.1.1.dist-info/WHEEL +5 -0
  323. spens_acp-1.0.1/.local-packages/site-packages/pytest-9.1.1.dist-info/entry_points.txt +3 -0
  324. spens_acp-1.0.1/.local-packages/site-packages/pytest-9.1.1.dist-info/licenses/LICENSE +21 -0
  325. spens_acp-1.0.1/.local-packages/site-packages/pytest-9.1.1.dist-info/top_level.txt +3 -0
  326. spens_acp-1.0.1/.local-packages/site-packages/typing_extensions-4.16.0.dist-info/METADATA +73 -0
  327. spens_acp-1.0.1/.local-packages/site-packages/typing_extensions-4.16.0.dist-info/RECORD +5 -0
  328. spens_acp-1.0.1/.local-packages/site-packages/typing_extensions-4.16.0.dist-info/WHEEL +4 -0
  329. spens_acp-1.0.1/.local-packages/site-packages/typing_extensions-4.16.0.dist-info/licenses/LICENSE +279 -0
  330. spens_acp-1.0.1/.local-packages/site-packages/typing_extensions.py +4422 -0
  331. spens_acp-1.0.1/.local-packages/site-packages/typing_inspection/__init__.py +0 -0
  332. spens_acp-1.0.1/.local-packages/site-packages/typing_inspection/introspection.py +587 -0
  333. spens_acp-1.0.1/.local-packages/site-packages/typing_inspection/py.typed +0 -0
  334. spens_acp-1.0.1/.local-packages/site-packages/typing_inspection/typing_objects.py +620 -0
  335. spens_acp-1.0.1/.local-packages/site-packages/typing_inspection/typing_objects.pyi +421 -0
  336. spens_acp-1.0.1/.local-packages/site-packages/typing_inspection-0.4.4.dist-info/METADATA +49 -0
  337. spens_acp-1.0.1/.local-packages/site-packages/typing_inspection-0.4.4.dist-info/RECORD +9 -0
  338. spens_acp-1.0.1/.local-packages/site-packages/typing_inspection-0.4.4.dist-info/WHEEL +4 -0
  339. spens_acp-1.0.1/.local-packages/site-packages/typing_inspection-0.4.4.dist-info/licenses/LICENSE +21 -0
  340. spens_acp-1.0.1/.local-packages/typing_extensions.whl +0 -0
  341. spens_acp-1.0.1/.local-packages/typing_inspection.whl +0 -0
  342. spens_acp-1.0.1/.spens.config.json +103 -0
  343. spens_acp-1.0.1/CHANGELOG.md +5 -0
  344. spens_acp-1.0.1/PKG-INFO +580 -0
  345. spens_acp-1.0.1/README.md +559 -0
  346. spens_acp-1.0.1/example-data/1f8f89113e4545ea/.lock +0 -0
  347. spens_acp-1.0.1/example-data/1f8f89113e4545ea/events.jsonl +12 -0
  348. spens_acp-1.0.1/example-data/1f8f89113e4545ea/interceptor_config.json +114 -0
  349. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/audit/0c4ddf1ea9007b5b/audit-events.ndjson +2 -0
  350. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/audit/0c4ddf1ea9007b5b/session.json +37 -0
  351. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/audit/ledger.lock +0 -0
  352. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/audit/ledger.ndjson +1 -0
  353. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/changes/001.json +23 -0
  354. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/0b/6abaa75b924d4b25f59a002a2e5c53102e4d00d1bdf4f137c4b6e04341c732 +17 -0
  355. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/0c/6cb0f618f0de50423532359abd374c753cfa33dca307c51d5f667f81a1fa0c +27 -0
  356. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/0d/69b0f3b553b2c7c4f30a31e7c9db8f3c2ea54dfdc8fa319eee8b4b0a9ded5e +98 -0
  357. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/18/5e4e8b888b17f7d4388fddb8962e0f45fdd1a88177a2e6b863b6abe31d96f6 +379 -0
  358. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/19/85ffff1e7367a724ec456751eaa2efd501cca7688452c6701072a187326aa3 +257 -0
  359. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/1b/cdec5a5a78063e510aef9e5d46e5d039213f31aa95f846ae27e5c13c029abb +547 -0
  360. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/1e/1f496321bc43fa6ef836a13059f7159800c23ecb635cb5ef3d6b63c1626e6e +7604 -0
  361. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/20/5d17e478bcb90a23f980400c9190321df5acf734bed1d99fe2e72c1f24dccd +18 -0
  362. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/22/d0f102ffad66834278245a5f58c0bc95de85f623f0b74e65a958bf4b339d5c +13 -0
  363. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/24/6a1e0bcc5da3bee86261ec826fc1bf4b782d3812435876f08a5ed31c28a9fe +574 -0
  364. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/26/8460cb29a455ef4f2300a12bd0707092868e31aac22058daf9e28df163ecee +170 -0
  365. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/27/2d835ef603c4f26c7a416ce254eda7d5169d1f2c9259f24780cbf7b825c8cb +29 -0
  366. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/2a/5358e501a1063d116c6356d4f327a8f04f8f9bcb41af5a2c1dc25ffb5f17cc +697 -0
  367. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/2c/80aecabb092984b4f833a39f6e16809a9d59b6bdec2084479ce54f3b60a4f2 +3293 -0
  368. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/2f/3437baa735d876ad336a15c07d36b4a851f7c2e52ad2ab19ca7cf01544bdd4 +2126 -0
  369. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/32/a192261c97ccfda5e77341e76986b1931bb4d969504bc4752c0058528f5ffd +56 -0
  370. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/38/0bd69aada35831bd89def92e5e22d082916219677d2241ea2c99dcd3888144 +254 -0
  371. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/3e/ab810471fa50e22b9a5721e48ff05ca16e0f7b141be2eb92aff882a23355af +143 -0
  372. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/45/72ba33d15b85bd0cd2d0c6c4c060351ebd566114a47cd82e5bb19e6523af83 +457 -0
  373. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/46/f6d12235ffb88e5fff8df1b41f6a70e5f50cec910c38af3343aaf311b6cf5f +529 -0
  374. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/47/2124be80355c97e7f15d755f601878b25eaaa80924ba76c2aee35341b32a5c +1330 -0
  375. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/49/fc929635c7dd6e36e395f3c691fcf445bf017495ba723852373869c153af8f +161 -0
  376. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/50/c60f088b50e011e9814ae29ce6f3d2aa05255f3aa169e580e599f59dc3efca +134 -0
  377. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/51/8ac34af9d1c245f2503a06610db00ed5ea4e111b109d4da11fb00a85707e49 +174 -0
  378. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/51/ba29a1cab270ca3b5cc76c3bd409767eccda8db59157606fc833bc56bcf16d +37 -0
  379. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/52/a4273a8142f656fdf484378209540d7cd739cb9c215d6eff80d79c7ef49283 +169 -0
  380. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/52/e1274ba8905868a73b0bad586aed76a1cfe727e95e1e4eecd0684de965762b +30 -0
  381. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/54/bcd48a62a993dbc6f5cd11916183daca4973c8b2580b73527fb74d4dccccc0 +350 -0
  382. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/59/cb2c9ffc0d31515c46a3c6bfe9e01f2a524891117f969a90b6678f2f181093 +22 -0
  383. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/59/de566f6cfffffbb386f9b274007e80be56b059a20038706d846406cb08eefa +7 -0
  384. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/5b/334dc01f049ece028aaa29c2783a48cff89f55fc9e134b2925c328d75f0b0d +20 -0
  385. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/5e/0f7d879f4501abf87e7e1521ad9b5cf143fbc72ae972bef6652aa86edc2b31 +360 -0
  386. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/5f/2e458d0bae5bec0666d20d5b81cf93fc05c1b834173e1e8e90d4906d16d436 +91 -0
  387. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/66/7b08d59c3cc06cc7ec377d00a13606499c6a8bbeed8f08e758b252041756a4 +18 -0
  388. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/68/1fbd7e4abbd4f3d3ae48019682303ffd3349e51195107951e3910a3f518c14 +36 -0
  389. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/68/b6a345cc5c03b07e844a13c25a65bcea05e34347fd7c06ee8c364aa9b22b4b +17 -0
  390. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/6d/c699f076d3aafffceadf0dd2c610d0fbaa9ee05434e35d0c5aebc2cfa35d42 +6 -0
  391. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/6e/9f43f9c87f775101126a08a25d5198a09c864cae028f36bf207bef078b94ac +1 -0
  392. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/6f/8b490fddb54e3515903f931369d8f044213bf63b8f79717082312b50107f5b +57 -0
  393. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/71/beeb8b81394df67ef4a6c526a751082fb91745544e87595eb059c1a9be9810 +1133 -0
  394. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/73/092e58a959f5bd6ad698de53d1cc7050bbd9ea6bde75ff8031178b53d93625 +155 -0
  395. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/78/63ddeb6637587c264baa27dd2bf0f10876690445fedc4772044e57e91f3972 +17 -0
  396. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/78/abe4922a7929bad2dc20ff25e40daa1a43725bfddf218d3d76d50c25b97c2b +302 -0
  397. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/7b/036ab16ffe7f63fc20c58dfb37586c97c4f3668da3c5f6978ce928be81272b +327 -0
  398. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/7c/ce46b2680afeb933e526349ce3a5c07c202de0784215cb0cb62cde9e986854 +508 -0
  399. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/82/0de5ae5b22249408f505a5d97eb1215a49ab2567b0c62fa9cd21812eb53ca1 +1273 -0
  400. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/88/1f68865f02d06fc561704672f2f9ecb33bd44ec3c76c5885ee8ab028e1a5fa +466 -0
  401. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/8a/0a1ad647f8c90b09e959a1303c3a35d90fed78311df8694d641e7ae694a318 +70 -0
  402. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/8a/4d78a835f8e4f00cd9fa9abe6ef943704510fe5b9b37324e6e01881417d845 +14 -0
  403. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/8e/369647d494cc3de7a57d0c9c215be27912ad8ef821a2e8be3bb3b9855f18e4 +31 -0
  404. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/91/447944015cec709e8aa7655f7e9d64e1e4508e7023a57fe3746911c0fc6fed +1 -0
  405. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/92/3672ac8fe52743c6a8204263bf86e0dfaf14d041789f928f44920595638190 +16 -0
  406. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/95/3d24ae2de678722998785292e7143b61645511c3f134347e19aa16f9e3b189 +17 -0
  407. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/95/59b913792c62c9daf2a4399b7b584bebe486226bb530299a427287d825430e +18 -0
  408. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/98/4ded24f89b503de2a16ad0f0b1ff7c17ee1ebe1f5bf11f4751dca1045361fd +146 -0
  409. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/9b/753d678952724281e4dc9744453d8d1291ca74502c4618c2de8ba6199fc31a +16 -0
  410. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/9d/1abe0265b13a02b03fa352e17e499d909053f8533d75c428fe4e816624fc78 +117 -0
  411. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/9e/474fb9a34a6aaa3c70df0234ba8586824aa6edb59b5461dabc06ac8d48a683 +680 -0
  412. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/9f/0570e1688feed3c0f82fe83d56fd399afe0c843ef67ac65df89511d13cae3d +1 -0
  413. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/ac/45e1f2740a65b393707d3ff7caa435d19c7def777e082af8faa5645e8d03b0 +51 -0
  414. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/b3/660dcdffd84c07400e745f6e25aac1c2f0ccf8ff76b4eb22c82cd72af3f7d2 +29 -0
  415. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/b6/9dcdd32868c305a4a2af4aaeff195b9aa44b994f5d3a739aad0954146b3beb +1127 -0
  416. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/b6/fb96d1a8277ba0354989719aa43986ba11e48409dadb227afee7641ca3ab8d +0 -0
  417. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/b8/90d80b6758d4678231c4e9d605d56665516ef0a6799a23af85a5260216b17a +77 -0
  418. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/bb/55b04362350a87d8c066c724345b77595225ff1890ace433c04fcf164287c3 +471 -0
  419. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/bb/feeb8bd55d01d688489fecf78e57a732169b51900d339bffd22265d0a4a4bc +370 -0
  420. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/bd/3c234a6c653437cb5314f930d77ac313c534a143cfb1da6cc29da7eb899d4c +994 -0
  421. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/c2/58313192d5b8ce7dcab4c246ba060facb7fe50a34dad48d26526a357fcd253 +17 -0
  422. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/c4/2212c7209809642fb0d29837819484f1effbb53c3177d0551d23e4a8733674 +188 -0
  423. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/c6/fd8d7fdb069e8129597fbf5250387667996d4c91e95e3888e85df6d4e4b2a3 +16 -0
  424. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/c7/2cc8f192a696a1b80e8877112d6db0f1b3d27337dfd491348dd0418846a9a7 +488 -0
  425. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/c7/fa83a20a3c866ccb36aded68ed9df1b44a7588607c5bedfba811fc6eda1545 +13 -0
  426. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/c8/49733255b8585e31b5488c2a5027ac88ef454312fc99b87747986ea2a5fb5d +193 -0
  427. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/cf/4f41131edb95ab8459e1302bab88752d09fe8315f4bd358058325d6ada6750 +14 -0
  428. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/d2/efc2c63dc0996599d65f0679222f888cda523806eee73cd8b41281f807e9f2 +17 -0
  429. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/d7/471c77202419e36665e0a81f58105cec040fc7765ba29a62c54cf0bf0b2b87 +5862 -0
  430. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/d7/929f524524f5b54dfd232e458a7fbd1e27bfeaf23a84987e3f2c722a6c7aa5 +0 -0
  431. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/dd/0d2e1370e89aef7a91faf4093f74c4ffa6f79f6ce0adcbd999fcd147794681 +170 -0
  432. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/dd/a80cb1db885b74c0966c4951c66f86a930d8c09cb8485a79d2172ae9e0625e +969 -0
  433. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/de/e99e6bec93119805315d498ed5df617750b9afb6ad2dba1f696000ad27250d +786 -0
  434. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/e0/dafa0440671a28da72cb6395aba6a49df868a0f5eb42ec49ffd28e4f0879e3 +103 -0
  435. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/e1/d06a7437f0eb9780bd4f636fa3fdf438d9bfc2b1e57f6a705723a8741bae75 +196 -0
  436. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/e3/b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 +0 -0
  437. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/e6/12a8718a4ff8712639e64287d9f9f339cb3b5c9c954714796b25bb45b7d2f7 +17 -0
  438. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/e9/3284beb017163c2571b723dac47a5ef72b5899b6e44f45578ecf33a7b57058 +1 -0
  439. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/e9/e6a9f2a9ba6af555f97e36bcedab09ca6dcfda371d28b6a959b500e8dfa62e +781 -0
  440. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/ea/628d86f0b8b97f62fbc7de4e39473b3d4d394f9e99631304c61d554d22b9c8 +28 -0
  441. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/eb/4d848dd3f23ebe25de061dfd6d4d4464e193688dc7aac09e8accf3064edf4e +4 -0
  442. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/ed/1cad280079948f9e1f9423cf687f1e69cf4a6b415626c15a55755def2f0292 +145 -0
  443. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/f1/a15c22e6229dc9649859c40b2af8abbbbcb1cd6c388f0e435ec99c0b348468 +21 -0
  444. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/f5/a4cc7e592c0a2008a77e08930c0aa19b0687d5acd7c5e464add279bf35025f +303 -0
  445. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/f6/e16bad29a78ada97d9826d7c14ca68b3faa9b7894de496bb26cc7d067ea206 +756 -0
  446. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/f7/0daac61439a92534c9c9cf834b3a23b55da949795b0bfe9499ba1027fb44cc +120 -0
  447. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/f8/7c53cbae0b8bed8d8ef3d3ab603e72e4a479bd41d13e71d9f9c15e50d982cf +17 -0
  448. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/f9/f3b1fbf3ce4183934412e6197ac71c35598365564af5cff52e538e77514894 +469 -0
  449. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/fb/295b0ff3c7483c99cc27a5fe3b438f7f9f6ea0c082b693472a23e7d3cd23b0 +0 -0
  450. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/fb/f9e858a6baa65d2a6311e21cad6c498bac5a6a80c0623887f55a5686243776 +17 -0
  451. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/fd/db2d2b8b6a5f26ee6b5ab15375a280874a17e9d5746dfedc4e4f1eb826511a +168 -0
  452. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/fe/e015c0b669adc07813b8ba1622b8300047c97e1c276115231ef598e9cc2250 +18 -0
  453. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/session.json +37 -0
  454. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/snapshots/000.json +599 -0
  455. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/snapshots/001.json +599 -0
  456. spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/sessions/0c4ddf1ea9007b5b.json +18 -0
  457. spens_acp-1.0.1/example-data/1f8f89113e4545ea/session_summary.json +56 -0
  458. spens_acp-1.0.1/example-data/1f8f89113e4545ea/state.json +1 -0
  459. spens_acp-1.0.1/example-data/1f8f89113e4545ea/traces/captured.jsonl +2776 -0
  460. spens_acp-1.0.1/example-data/1f8f89113e4545ea/traces/request_log.jsonl +36 -0
  461. spens_acp-1.0.1/license.md +7 -0
  462. spens_acp-1.0.1/pyproject.toml +60 -0
  463. spens_acp-1.0.1/specs/Inital-spec.md +521 -0
  464. spens_acp-1.0.1/spens_acp/__init__.py +3 -0
  465. spens_acp-1.0.1/spens_acp/__main__.py +5 -0
  466. spens_acp-1.0.1/spens_acp/acp_server.py +599 -0
  467. spens_acp-1.0.1/spens_acp/config.py +326 -0
  468. spens_acp-1.0.1/spens_acp/decoder/__init__.py +192 -0
  469. spens_acp-1.0.1/spens_acp/decoder/anthropic.py +98 -0
  470. spens_acp-1.0.1/spens_acp/decoder/chatcompletions.py +99 -0
  471. spens_acp-1.0.1/spens_acp/decoder/common.py +79 -0
  472. spens_acp-1.0.1/spens_acp/decoder/responses.py +95 -0
  473. spens_acp-1.0.1/spens_acp/diag.py +22 -0
  474. spens_acp-1.0.1/spens_acp/event_mapper.py +112 -0
  475. spens_acp-1.0.1/spens_acp/history.py +83 -0
  476. spens_acp-1.0.1/spens_acp/launcher.py +213 -0
  477. spens_acp-1.0.1/spens_acp/main.py +151 -0
  478. spens_acp-1.0.1/spens_acp/persist.py +95 -0
  479. spens_acp-1.0.1/spens_acp/session_map.py +131 -0
  480. spens_acp-1.0.1/spens_acp/types.py +172 -0
  481. spens_acp-1.0.1/spens_acp/watcher.py +136 -0
  482. spens_acp-1.0.1/tests/__init__.py +0 -0
  483. spens_acp-1.0.1/tests/test_acp_server.py +426 -0
  484. spens_acp-1.0.1/tests/test_config.py +206 -0
  485. spens_acp-1.0.1/tests/test_decoder_anthropic.py +396 -0
  486. spens_acp-1.0.1/tests/test_decoder_chatcompletions.py +225 -0
  487. spens_acp-1.0.1/tests/test_decoder_responses.py +119 -0
  488. spens_acp-1.0.1/tests/test_event_mapping_golden.py +68 -0
  489. spens_acp-1.0.1/tests/test_fake_spens_e2e.py +537 -0
  490. spens_acp-1.0.1/tests/test_history.py +83 -0
  491. spens_acp-1.0.1/tests/test_launcher.py +195 -0
  492. spens_acp-1.0.1/tests/test_persist.py +108 -0
  493. spens_acp-1.0.1/tests/test_prompt_flattening.py +63 -0
  494. spens_acp-1.0.1/tests/test_protocol_e2e.py +397 -0
  495. spens_acp-1.0.1/tests/test_session_map.py +122 -0
  496. spens_acp-1.0.1/tests/test_tool_kind.py +47 -0
  497. spens_acp-1.0.1/tests/test_truncation.py +31 -0
  498. spens_acp-1.0.1/tests/test_watcher.py +104 -0
  499. spens_acp-1.0.1/uv.lock +245 -0
@@ -0,0 +1 @@
1
+ .spens
@@ -0,0 +1,179 @@
1
+ stages:
2
+ - test
3
+ - version
4
+ - build
5
+ - publish
6
+ - release
7
+
8
+ workflow:
9
+ rules:
10
+ - if: $CI_COMMIT_TAG
11
+ - if: $CI_PIPELINE_SOURCE == "merge_request_event"
12
+ # Don't run a duplicate branch pipeline when an MR is already open
13
+ - if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS
14
+ when: never
15
+ - if: $CI_COMMIT_BRANCH
16
+
17
+ variables:
18
+ UV_VERSION: "0.9"
19
+ PYTHON_VERSION: "3.12"
20
+ UV_CACHE_DIR: .uv-cache
21
+ # Hardlinks don't work across CI volume mounts; copying silences the warning
22
+ UV_LINK_MODE: copy
23
+ UV_PUBLISH_URL: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/pypi
24
+ UV_PUBLISH_USERNAME: gitlab-ci-token
25
+ UV_PUBLISH_PASSWORD: ${CI_JOB_TOKEN}
26
+
27
+ default:
28
+ image: ghcr.io/astral-sh/uv:$UV_VERSION-python$PYTHON_VERSION-bookworm-slim
29
+ interruptible: true
30
+ retry:
31
+ max: 2
32
+ when:
33
+ - runner_system_failure
34
+ - stuck_or_timeout_failure
35
+
36
+ # Only jobs that resolve dependencies need the uv cache.
37
+ .uv-cached:
38
+ cache:
39
+ key:
40
+ files:
41
+ - uv.lock
42
+ paths:
43
+ - $UV_CACHE_DIR
44
+ after_script:
45
+ - uv cache prune --ci
46
+
47
+ lint:
48
+ extends: .uv-cached
49
+ stage: test
50
+ allow_failure: true
51
+ script:
52
+ - uv sync --extra dev
53
+ - |
54
+ status=0
55
+ uv run ruff check --output-format=gitlab --output-file=code-quality.json . || status=$?
56
+ uv run ruff format --check . || status=1
57
+ exit $status
58
+ artifacts:
59
+ when: always
60
+ reports:
61
+ codequality: code-quality.json
62
+
63
+ test:
64
+ extends: .uv-cached
65
+ stage: test
66
+ parallel:
67
+ matrix:
68
+ - PYTHON_VERSION: ["3.12", "3.13"]
69
+ script:
70
+ - uv sync --extra dev
71
+ - uv run pytest tests -v --junitxml=report.xml
72
+ artifacts:
73
+ when: always
74
+ reports:
75
+ junit: report.xml
76
+
77
+ # Python Semantic Release — analyzes conventional commits on main,
78
+ # bumps version in pyproject.toml, updates CHANGELOG.md, commits,
79
+ # creates a git tag, and pushes back to GitLab. The new tag then
80
+ # triggers the build/publish/release jobs.
81
+ semantic-release:
82
+ stage: version
83
+ image: python:3.12-slim
84
+ rules:
85
+ - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
86
+ before_script:
87
+ - apt-get update && apt-get install -y --no-install-recommends git
88
+ - pip install --quiet python-semantic-release "uv~=${UV_VERSION}"
89
+ script:
90
+ - |
91
+ echo "token length: ${#GITLAB_TOKEN}"
92
+ # GitLab checks out a detached HEAD; PSR needs to be on a branch
93
+ git checkout "${CI_COMMIT_BRANCH}" || git checkout -B "${CI_COMMIT_BRANCH}"
94
+ git config --global user.email "justus@refwd.ai"
95
+ git config --global user.name "David Justus"
96
+ semantic-release version
97
+ variables:
98
+ # Full history is required for PSR to analyse all commits
99
+ GIT_DEPTH: "0"
100
+ GIT_COMMITTER_NAME: "David Justus"
101
+ GIT_COMMITTER_EMAIL: "justus@refwd.ai"
102
+
103
+ build:
104
+ stage: build
105
+ variables:
106
+ UV_CACHE_DIR: /tmp/uv-cache
107
+ rules:
108
+ - if: $CI_COMMIT_TAG
109
+ - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
110
+ script:
111
+ - uv build
112
+ - ls -l dist/
113
+ artifacts:
114
+ paths:
115
+ - dist/
116
+ expire_in: 1 week
117
+
118
+ # Shared publish job: verifies the tag matches the built version, then runs
119
+ # `uv publish dist/*` using the job's UV_PUBLISH_* variables.
120
+ .publish-package:
121
+ extends: .uv-cached
122
+ stage: publish
123
+ interruptible: false
124
+ needs:
125
+ - job: build
126
+ artifacts: true
127
+ rules:
128
+ - if: $CI_COMMIT_TAG
129
+ script:
130
+ - |
131
+ set -eu
132
+ version="${CI_COMMIT_TAG#v}"
133
+ if ! ls dist/ | grep -q -- "-${version}"; then
134
+ echo "dist/ does not contain version ${version} — is the tag out of sync with pyproject.toml?"
135
+ ls -l dist/
136
+ exit 1
137
+ fi
138
+ - uv publish dist/*
139
+
140
+ # Publish to this project's GitLab PyPI registry using the built-in job token.
141
+ # Inherits UV_PUBLISH_URL/USERNAME/PASSWORD from the global variables.
142
+ # Install with:
143
+ # uv add spens-acp --index-url https://__token__:<token>@gitlab.com/api/v4/projects/<id>/packages/pypi/simple
144
+ publish:gitlab:
145
+ extends: .publish-package
146
+
147
+ # Publish to the public PyPI registry (pypi.org). Create an API token at
148
+ # https://pypi.org/manage/account/token/ (scoped to the spens-acp project) and
149
+ # add it as a masked, protected CI/CD variable named PYPI_API_TOKEN.
150
+ publish:pypi:
151
+ extends: .publish-package
152
+ variables:
153
+ UV_PUBLISH_URL: "https://upload.pypi.org/legacy/"
154
+ UV_PUBLISH_USERNAME: "__token__"
155
+ UV_PUBLISH_PASSWORD: "${PYPI_API_TOKEN}"
156
+
157
+ # Attach the sdist and wheel to a GitLab Release. glab uploads them to the
158
+ # generic package registry and links them in one step.
159
+ release:gitlab:
160
+ stage: release
161
+ image: registry.gitlab.com/gitlab-org/cli:latest
162
+ interruptible: false
163
+ needs:
164
+ - job: build
165
+ artifacts: true
166
+ - job: publish:gitlab
167
+ - job: publish:pypi
168
+ rules:
169
+ - if: $CI_COMMIT_TAG
170
+ variables:
171
+ GLAB_ENABLE_CI_AUTOLOGIN: "true"
172
+ script:
173
+ - |
174
+ glab release create "$CI_COMMIT_TAG" dist/* \
175
+ --name "spens-acp ${CI_COMMIT_TAG}" \
176
+ --notes "Release ${CI_COMMIT_TAG}. The package is published to PyPI and the project's GitLab PyPI registry; the sdist and wheel are attached below as assets." \
177
+ --use-package-registry \
178
+ --package-name spens-acp \
179
+ --ref "$CI_COMMIT_SHA"
Binary file
@@ -0,0 +1,13 @@
1
+ from __future__ import annotations
2
+
3
+
4
+ __all__ = ["__version__", "version_tuple"]
5
+
6
+ try:
7
+ from ._version import version as __version__
8
+ from ._version import version_tuple
9
+ except ImportError: # pragma: no cover
10
+ # broken installation, we don't even try
11
+ # unknown only works because we do poor mans version compare
12
+ __version__ = "unknown"
13
+ version_tuple = (0, 0, "unknown")
@@ -0,0 +1,117 @@
1
+ """Allow bash-completion for argparse with argcomplete if installed.
2
+
3
+ Needs argcomplete>=0.5.6 for python 3.2/3.3 (older versions fail
4
+ to find the magic string, so _ARGCOMPLETE env. var is never set, and
5
+ this does not need special code).
6
+
7
+ Function try_argcomplete(parser) should be called directly before
8
+ the call to ArgumentParser.parse_args().
9
+
10
+ The filescompleter is what you normally would use on the positional
11
+ arguments specification, in order to get "dirname/" after "dirn<TAB>"
12
+ instead of the default "dirname ":
13
+
14
+ optparser.add_argument(Config._file_or_dir, nargs='*').completer=filescompleter
15
+
16
+ Other, application specific, completers should go in the file
17
+ doing the add_argument calls as they need to be specified as .completer
18
+ attributes as well. (If argcomplete is not installed, the function the
19
+ attribute points to will not be used).
20
+
21
+ SPEEDUP
22
+ =======
23
+
24
+ The generic argcomplete script for bash-completion
25
+ (/etc/bash_completion.d/python-argcomplete.sh)
26
+ uses a python program to determine startup script generated by pip.
27
+ You can speed up completion somewhat by changing this script to include
28
+ # PYTHON_ARGCOMPLETE_OK
29
+ so the python-argcomplete-check-easy-install-script does not
30
+ need to be called to find the entry point of the code and see if that is
31
+ marked with PYTHON_ARGCOMPLETE_OK.
32
+
33
+ INSTALL/DEBUGGING
34
+ =================
35
+
36
+ To include this support in another application that has setup.py generated
37
+ scripts:
38
+
39
+ - Add the line:
40
+ # PYTHON_ARGCOMPLETE_OK
41
+ near the top of the main python entry point.
42
+
43
+ - Include in the file calling parse_args():
44
+ from _argcomplete import try_argcomplete, filescompleter
45
+ Call try_argcomplete just before parse_args(), and optionally add
46
+ filescompleter to the positional arguments' add_argument().
47
+
48
+ If things do not work right away:
49
+
50
+ - Switch on argcomplete debugging with (also helpful when doing custom
51
+ completers):
52
+ export _ARC_DEBUG=1
53
+
54
+ - Run:
55
+ python-argcomplete-check-easy-install-script $(which appname)
56
+ echo $?
57
+ will echo 0 if the magic line has been found, 1 if not.
58
+
59
+ - Sometimes it helps to find early on errors using:
60
+ _ARGCOMPLETE=1 _ARC_DEBUG=1 appname
61
+ which should throw a KeyError: 'COMPLINE' (which is properly set by the
62
+ global argcomplete script).
63
+ """
64
+
65
+ from __future__ import annotations
66
+
67
+ import argparse
68
+ from glob import glob
69
+ import os
70
+ import sys
71
+ from typing import Any
72
+
73
+
74
+ class FastFilesCompleter:
75
+ """Fast file completer class."""
76
+
77
+ def __init__(self, directories: bool = True) -> None:
78
+ self.directories = directories
79
+
80
+ def __call__(self, prefix: str, **kwargs: Any) -> list[str]:
81
+ # Only called on non option completions.
82
+ if os.sep in prefix[1:]:
83
+ prefix_dir = len(os.path.dirname(prefix) + os.sep)
84
+ else:
85
+ prefix_dir = 0
86
+ completion = []
87
+ globbed = []
88
+ if "*" not in prefix and "?" not in prefix:
89
+ # We are on unix, otherwise no bash.
90
+ if not prefix or prefix[-1] == os.sep:
91
+ globbed.extend(glob(prefix + ".*"))
92
+ prefix += "*"
93
+ globbed.extend(glob(prefix))
94
+ for x in sorted(globbed):
95
+ if os.path.isdir(x):
96
+ x += "/"
97
+ # Append stripping the prefix (like bash, not like compgen).
98
+ completion.append(x[prefix_dir:])
99
+ return completion
100
+
101
+
102
+ if os.environ.get("_ARGCOMPLETE"):
103
+ try:
104
+ import argcomplete.completers
105
+ except ImportError:
106
+ sys.exit(-1)
107
+ filescompleter: FastFilesCompleter | None = FastFilesCompleter()
108
+
109
+ def try_argcomplete(parser: argparse.ArgumentParser) -> None:
110
+ argcomplete.autocomplete(parser, always_complete_options=False)
111
+
112
+ else:
113
+
114
+ def try_argcomplete(parser: argparse.ArgumentParser) -> None:
115
+ pass
116
+
117
+ filescompleter = None
@@ -0,0 +1,26 @@
1
+ """Python inspection/code generation API."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from .code import Code
6
+ from .code import ExceptionInfo
7
+ from .code import filter_traceback
8
+ from .code import Frame
9
+ from .code import getfslineno
10
+ from .code import Traceback
11
+ from .code import TracebackEntry
12
+ from .source import getrawcode
13
+ from .source import Source
14
+
15
+
16
+ __all__ = [
17
+ "Code",
18
+ "ExceptionInfo",
19
+ "Frame",
20
+ "Source",
21
+ "Traceback",
22
+ "TracebackEntry",
23
+ "filter_traceback",
24
+ "getfslineno",
25
+ "getrawcode",
26
+ ]