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.
- spens_acp-1.0.1/.gitignore +1 -0
- spens_acp-1.0.1/.gitlab-ci.yml +179 -0
- spens_acp-1.0.1/.local-packages/acp.whl +0 -0
- spens_acp-1.0.1/.local-packages/annotated_types.whl +0 -0
- spens_acp-1.0.1/.local-packages/iniconfig.whl +0 -0
- spens_acp-1.0.1/.local-packages/packaging.whl +0 -0
- spens_acp-1.0.1/.local-packages/pluggy.whl +0 -0
- spens_acp-1.0.1/.local-packages/pydantic.whl +0 -0
- spens_acp-1.0.1/.local-packages/pydantic_core.whl +0 -0
- spens_acp-1.0.1/.local-packages/pytest.whl +0 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/__init__.py +13 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/_argcomplete.py +117 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/_code/__init__.py +26 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/_code/code.py +1632 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/_code/source.py +228 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/_io/__init__.py +10 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/_io/pprint.py +673 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/_io/saferepr.py +155 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/_io/terminalwriter.py +258 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/_io/wcwidth.py +57 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/_py/__init__.py +0 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/_py/error.py +119 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/_py/path.py +1475 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/_version.py +24 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/assertion/__init__.py +236 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/assertion/_compare_any.py +131 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/assertion/_compare_mapping.py +48 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/assertion/_compare_sequence.py +90 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/assertion/_compare_set.py +101 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/assertion/_guards.py +60 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/assertion/_typing.py +12 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/assertion/compare_text.py +104 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/assertion/highlight.py +11 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/assertion/rewrite.py +1193 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/assertion/truncate.py +128 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/assertion/util.py +215 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/cacheprovider.py +640 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/capture.py +1151 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/compat.py +329 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/config/__init__.py +2246 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/config/argparsing.py +503 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/config/exceptions.py +15 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/config/findpaths.py +350 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/debugging.py +404 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/deprecated.py +139 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/doctest.py +735 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/faulthandler.py +119 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/fixtures.py +2393 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/freeze_support.py +45 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/helpconfig.py +293 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/hookspec.py +1289 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/junitxml.py +703 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/legacypath.py +468 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/logging.py +975 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/main.py +1215 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/mark/__init__.py +301 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/mark/expression.py +353 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/mark/structures.py +695 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/monkeypatch.py +430 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/nodes.py +764 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/outcomes.py +286 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/pastebin.py +121 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/pathlib.py +1054 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/py.typed +0 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/pytester.py +1803 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/pytester_assertions.py +74 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/python.py +1759 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/python_api.py +922 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/raises.py +1505 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/recwarn.py +379 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/reports.py +694 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/runner.py +593 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/scope.py +91 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/setuponly.py +98 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/setupplan.py +39 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/skipping.py +321 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/stash.py +116 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/stepwise.py +209 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/subtests.py +418 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/terminal.py +1786 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/terminalprogress.py +30 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/threadexception.py +152 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/timing.py +97 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/tmpdir.py +351 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/tracemalloc.py +24 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/unittest.py +653 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/unraisableexception.py +188 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/warning_types.py +166 -0
- spens_acp-1.0.1/.local-packages/site-packages/_pytest/warnings.py +152 -0
- spens_acp-1.0.1/.local-packages/site-packages/acp/__init__.py +238 -0
- spens_acp-1.0.1/.local-packages/site-packages/acp/_cookies.py +53 -0
- spens_acp-1.0.1/.local-packages/site-packages/acp/_deserialize.py +43 -0
- spens_acp-1.0.1/.local-packages/site-packages/acp/_sse.py +84 -0
- spens_acp-1.0.1/.local-packages/site-packages/acp/_transport.py +151 -0
- spens_acp-1.0.1/.local-packages/site-packages/acp/agent/__init__.py +3 -0
- spens_acp-1.0.1/.local-packages/site-packages/acp/agent/connection.py +280 -0
- spens_acp-1.0.1/.local-packages/site-packages/acp/agent/router.py +119 -0
- spens_acp-1.0.1/.local-packages/site-packages/acp/client/__init__.py +3 -0
- spens_acp-1.0.1/.local-packages/site-packages/acp/client/connection.py +355 -0
- spens_acp-1.0.1/.local-packages/site-packages/acp/client/router.py +179 -0
- spens_acp-1.0.1/.local-packages/site-packages/acp/connection.py +276 -0
- spens_acp-1.0.1/.local-packages/site-packages/acp/contrib/__init__.py +27 -0
- spens_acp-1.0.1/.local-packages/site-packages/acp/contrib/permissions.py +96 -0
- spens_acp-1.0.1/.local-packages/site-packages/acp/contrib/session_state.py +273 -0
- spens_acp-1.0.1/.local-packages/site-packages/acp/contrib/tool_calls.py +275 -0
- spens_acp-1.0.1/.local-packages/site-packages/acp/core.py +111 -0
- spens_acp-1.0.1/.local-packages/site-packages/acp/exceptions.py +46 -0
- spens_acp-1.0.1/.local-packages/site-packages/acp/helpers.py +280 -0
- spens_acp-1.0.1/.local-packages/site-packages/acp/http/__init__.py +30 -0
- spens_acp-1.0.1/.local-packages/site-packages/acp/http/asgi.py +175 -0
- spens_acp-1.0.1/.local-packages/site-packages/acp/http/client.py +238 -0
- spens_acp-1.0.1/.local-packages/site-packages/acp/http/protocol.py +106 -0
- spens_acp-1.0.1/.local-packages/site-packages/acp/http/server.py +461 -0
- spens_acp-1.0.1/.local-packages/site-packages/acp/interfaces.py +250 -0
- spens_acp-1.0.1/.local-packages/site-packages/acp/meta.py +49 -0
- spens_acp-1.0.1/.local-packages/site-packages/acp/py.typed +1 -0
- spens_acp-1.0.1/.local-packages/site-packages/acp/router.py +184 -0
- spens_acp-1.0.1/.local-packages/site-packages/acp/schema.py +5838 -0
- spens_acp-1.0.1/.local-packages/site-packages/acp/stdio.py +208 -0
- spens_acp-1.0.1/.local-packages/site-packages/acp/task/__init__.py +4 -0
- spens_acp-1.0.1/.local-packages/site-packages/acp/task/sender.py +63 -0
- spens_acp-1.0.1/.local-packages/site-packages/acp/task/supervisor.py +80 -0
- spens_acp-1.0.1/.local-packages/site-packages/acp/telemetry.py +41 -0
- spens_acp-1.0.1/.local-packages/site-packages/acp/transports.py +118 -0
- spens_acp-1.0.1/.local-packages/site-packages/acp/utils.py +268 -0
- spens_acp-1.0.1/.local-packages/site-packages/acp/ws/__init__.py +23 -0
- spens_acp-1.0.1/.local-packages/site-packages/acp/ws/client.py +117 -0
- spens_acp-1.0.1/.local-packages/site-packages/acp/ws/server.py +79 -0
- spens_acp-1.0.1/.local-packages/site-packages/agent_client_protocol-0.12.1.dist-info/METADATA +103 -0
- spens_acp-1.0.1/.local-packages/site-packages/agent_client_protocol-0.12.1.dist-info/RECORD +44 -0
- spens_acp-1.0.1/.local-packages/site-packages/agent_client_protocol-0.12.1.dist-info/WHEEL +4 -0
- spens_acp-1.0.1/.local-packages/site-packages/agent_client_protocol-0.12.1.dist-info/entry_points.txt +4 -0
- spens_acp-1.0.1/.local-packages/site-packages/agent_client_protocol-0.12.1.dist-info/licenses/LICENSE +202 -0
- spens_acp-1.0.1/.local-packages/site-packages/annotated_types/__init__.py +416 -0
- spens_acp-1.0.1/.local-packages/site-packages/annotated_types/py.typed +0 -0
- spens_acp-1.0.1/.local-packages/site-packages/annotated_types/test_cases.py +146 -0
- spens_acp-1.0.1/.local-packages/site-packages/annotated_types-0.8.0.dist-info/METADATA +295 -0
- spens_acp-1.0.1/.local-packages/site-packages/annotated_types-0.8.0.dist-info/RECORD +7 -0
- spens_acp-1.0.1/.local-packages/site-packages/annotated_types-0.8.0.dist-info/WHEEL +4 -0
- spens_acp-1.0.1/.local-packages/site-packages/annotated_types-0.8.0.dist-info/licenses/LICENSE +21 -0
- spens_acp-1.0.1/.local-packages/site-packages/iniconfig/__init__.py +249 -0
- spens_acp-1.0.1/.local-packages/site-packages/iniconfig/_parse.py +163 -0
- spens_acp-1.0.1/.local-packages/site-packages/iniconfig/_version.py +34 -0
- spens_acp-1.0.1/.local-packages/site-packages/iniconfig/exceptions.py +16 -0
- spens_acp-1.0.1/.local-packages/site-packages/iniconfig/py.typed +0 -0
- spens_acp-1.0.1/.local-packages/site-packages/iniconfig-2.3.0.dist-info/METADATA +79 -0
- spens_acp-1.0.1/.local-packages/site-packages/iniconfig-2.3.0.dist-info/RECORD +10 -0
- spens_acp-1.0.1/.local-packages/site-packages/iniconfig-2.3.0.dist-info/WHEEL +5 -0
- spens_acp-1.0.1/.local-packages/site-packages/iniconfig-2.3.0.dist-info/licenses/LICENSE +21 -0
- spens_acp-1.0.1/.local-packages/site-packages/iniconfig-2.3.0.dist-info/top_level.txt +1 -0
- spens_acp-1.0.1/.local-packages/site-packages/packaging/__init__.py +15 -0
- spens_acp-1.0.1/.local-packages/site-packages/packaging/_elffile.py +108 -0
- spens_acp-1.0.1/.local-packages/site-packages/packaging/_manylinux.py +278 -0
- spens_acp-1.0.1/.local-packages/site-packages/packaging/_musllinux.py +88 -0
- spens_acp-1.0.1/.local-packages/site-packages/packaging/_parser.py +418 -0
- spens_acp-1.0.1/.local-packages/site-packages/packaging/_ranges.py +836 -0
- spens_acp-1.0.1/.local-packages/site-packages/packaging/_structures.py +33 -0
- spens_acp-1.0.1/.local-packages/site-packages/packaging/_tokenizer.py +200 -0
- spens_acp-1.0.1/.local-packages/site-packages/packaging/dependency_groups.py +335 -0
- spens_acp-1.0.1/.local-packages/site-packages/packaging/direct_url.py +349 -0
- spens_acp-1.0.1/.local-packages/site-packages/packaging/errors.py +94 -0
- spens_acp-1.0.1/.local-packages/site-packages/packaging/licenses/__init__.py +198 -0
- spens_acp-1.0.1/.local-packages/site-packages/packaging/licenses/_spdx.py +799 -0
- spens_acp-1.0.1/.local-packages/site-packages/packaging/markers.py +576 -0
- spens_acp-1.0.1/.local-packages/site-packages/packaging/metadata.py +1054 -0
- spens_acp-1.0.1/.local-packages/site-packages/packaging/py.typed +0 -0
- spens_acp-1.0.1/.local-packages/site-packages/packaging/pylock.py +943 -0
- spens_acp-1.0.1/.local-packages/site-packages/packaging/ranges.py +2067 -0
- spens_acp-1.0.1/.local-packages/site-packages/packaging/requirements.py +192 -0
- spens_acp-1.0.1/.local-packages/site-packages/packaging/specifiers.py +1457 -0
- spens_acp-1.0.1/.local-packages/site-packages/packaging/tags.py +1053 -0
- spens_acp-1.0.1/.local-packages/site-packages/packaging/utils.py +370 -0
- spens_acp-1.0.1/.local-packages/site-packages/packaging/version.py +1252 -0
- spens_acp-1.0.1/.local-packages/site-packages/packaging-26.3.dist-info/METADATA +112 -0
- spens_acp-1.0.1/.local-packages/site-packages/packaging-26.3.dist-info/RECORD +29 -0
- spens_acp-1.0.1/.local-packages/site-packages/packaging-26.3.dist-info/WHEEL +4 -0
- spens_acp-1.0.1/.local-packages/site-packages/packaging-26.3.dist-info/licenses/LICENSE +3 -0
- spens_acp-1.0.1/.local-packages/site-packages/packaging-26.3.dist-info/licenses/LICENSE.APACHE +177 -0
- spens_acp-1.0.1/.local-packages/site-packages/packaging-26.3.dist-info/licenses/LICENSE.BSD +23 -0
- spens_acp-1.0.1/.local-packages/site-packages/pluggy/__init__.py +30 -0
- spens_acp-1.0.1/.local-packages/site-packages/pluggy/_callers.py +169 -0
- spens_acp-1.0.1/.local-packages/site-packages/pluggy/_hooks.py +714 -0
- spens_acp-1.0.1/.local-packages/site-packages/pluggy/_manager.py +523 -0
- spens_acp-1.0.1/.local-packages/site-packages/pluggy/_result.py +107 -0
- spens_acp-1.0.1/.local-packages/site-packages/pluggy/_tracing.py +72 -0
- spens_acp-1.0.1/.local-packages/site-packages/pluggy/_version.py +21 -0
- spens_acp-1.0.1/.local-packages/site-packages/pluggy/_warnings.py +27 -0
- spens_acp-1.0.1/.local-packages/site-packages/pluggy/py.typed +0 -0
- spens_acp-1.0.1/.local-packages/site-packages/pluggy-1.6.0.dist-info/METADATA +152 -0
- spens_acp-1.0.1/.local-packages/site-packages/pluggy-1.6.0.dist-info/RECORD +14 -0
- spens_acp-1.0.1/.local-packages/site-packages/pluggy-1.6.0.dist-info/WHEEL +5 -0
- spens_acp-1.0.1/.local-packages/site-packages/pluggy-1.6.0.dist-info/licenses/LICENSE +21 -0
- spens_acp-1.0.1/.local-packages/site-packages/pluggy-1.6.0.dist-info/top_level.txt +1 -0
- spens_acp-1.0.1/.local-packages/site-packages/py.py +15 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/__init__.py +456 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/__init__.py +0 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_config.py +386 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_core_metadata.py +97 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_core_utils.py +174 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_dataclasses.py +315 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_decorators.py +873 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_decorators_v1.py +174 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_discriminated_union.py +494 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_docs_extraction.py +113 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_fields.py +729 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_forward_ref.py +23 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_generate_schema.py +2934 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_generics.py +530 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_git.py +27 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_import_utils.py +20 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_internal_dataclass.py +7 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_known_annotated_metadata.py +403 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_mock_val_ser.py +228 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_model_construction.py +868 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_namespace_utils.py +293 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_repr.py +124 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_schema_gather.py +212 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_schema_generation_shared.py +125 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_serializers.py +53 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_signature.py +189 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_typing_extra.py +785 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_utils.py +446 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_validate_call.py +141 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/_internal/_validators.py +534 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/_migration.py +316 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/alias_generators.py +62 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/aliases.py +135 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/annotated_handlers.py +122 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/class_validators.py +5 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/color.py +604 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/config.py +1296 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/dataclasses.py +413 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/datetime_parse.py +5 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/decorator.py +5 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/deprecated/__init__.py +0 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/deprecated/class_validators.py +256 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/deprecated/config.py +72 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/deprecated/copy_internals.py +224 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/deprecated/decorator.py +284 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/deprecated/json.py +141 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/deprecated/parse.py +80 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/deprecated/tools.py +103 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/env_settings.py +5 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/error_wrappers.py +5 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/errors.py +189 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/experimental/__init__.py +1 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/experimental/arguments_schema.py +44 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/experimental/missing_sentinel.py +5 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/experimental/pipeline.py +663 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/fields.py +1892 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/functional_serializers.py +470 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/functional_validators.py +889 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/generics.py +5 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/json.py +5 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/json_schema.py +2911 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/main.py +1838 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/mypy.py +1414 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/networks.py +1332 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/parse.py +5 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/plugin/__init__.py +193 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/plugin/_loader.py +58 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/plugin/_schema_validator.py +152 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/py.typed +0 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/root_model.py +157 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/schema.py +5 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/tools.py +5 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/type_adapter.py +801 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/types.py +3310 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/typing.py +5 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/utils.py +5 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/__init__.py +131 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/_hypothesis_plugin.py +391 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/annotated_types.py +72 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/class_validators.py +361 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/color.py +494 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/config.py +191 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/dataclasses.py +500 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/datetime_parse.py +248 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/decorator.py +264 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/env_settings.py +350 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/error_wrappers.py +161 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/errors.py +646 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/fields.py +1253 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/generics.py +400 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/json.py +112 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/main.py +1130 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/mypy.py +949 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/networks.py +747 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/parse.py +66 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/py.typed +0 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/schema.py +1163 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/tools.py +92 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/types.py +1205 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/typing.py +627 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/utils.py +807 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/validators.py +768 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/v1/version.py +38 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/validate_call_decorator.py +116 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/validators.py +5 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/version.py +113 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic/warnings.py +122 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic-2.13.5.dist-info/METADATA +1307 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic-2.13.5.dist-info/RECORD +111 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic-2.13.5.dist-info/WHEEL +4 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic-2.13.5.dist-info/licenses/LICENSE +21 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic_core/__init__.py +193 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic_core/_pydantic_core/__init__.pyi +1118 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic_core/_pydantic_core/_schema_gather.pyi +34 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic_core/_pydantic_core.cpython-312-x86_64-linux-gnu.so +0 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic_core/core_schema.py +4828 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic_core/py.typed +0 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic_core-2.49.0.dist-info/METADATA +171 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic_core-2.49.0.dist-info/RECORD +11 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic_core-2.49.0.dist-info/WHEEL +5 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic_core-2.49.0.dist-info/licenses/LICENSE +21 -0
- spens_acp-1.0.1/.local-packages/site-packages/pydantic_core-2.49.0.dist-info/sboms/pydantic-core.cyclonedx.json +3860 -0
- spens_acp-1.0.1/.local-packages/site-packages/pytest/__init__.py +188 -0
- spens_acp-1.0.1/.local-packages/site-packages/pytest/__main__.py +9 -0
- spens_acp-1.0.1/.local-packages/site-packages/pytest/py.typed +0 -0
- spens_acp-1.0.1/.local-packages/site-packages/pytest-9.1.1.dist-info/METADATA +211 -0
- spens_acp-1.0.1/.local-packages/site-packages/pytest-9.1.1.dist-info/RECORD +89 -0
- spens_acp-1.0.1/.local-packages/site-packages/pytest-9.1.1.dist-info/WHEEL +5 -0
- spens_acp-1.0.1/.local-packages/site-packages/pytest-9.1.1.dist-info/entry_points.txt +3 -0
- spens_acp-1.0.1/.local-packages/site-packages/pytest-9.1.1.dist-info/licenses/LICENSE +21 -0
- spens_acp-1.0.1/.local-packages/site-packages/pytest-9.1.1.dist-info/top_level.txt +3 -0
- spens_acp-1.0.1/.local-packages/site-packages/typing_extensions-4.16.0.dist-info/METADATA +73 -0
- spens_acp-1.0.1/.local-packages/site-packages/typing_extensions-4.16.0.dist-info/RECORD +5 -0
- spens_acp-1.0.1/.local-packages/site-packages/typing_extensions-4.16.0.dist-info/WHEEL +4 -0
- spens_acp-1.0.1/.local-packages/site-packages/typing_extensions-4.16.0.dist-info/licenses/LICENSE +279 -0
- spens_acp-1.0.1/.local-packages/site-packages/typing_extensions.py +4422 -0
- spens_acp-1.0.1/.local-packages/site-packages/typing_inspection/__init__.py +0 -0
- spens_acp-1.0.1/.local-packages/site-packages/typing_inspection/introspection.py +587 -0
- spens_acp-1.0.1/.local-packages/site-packages/typing_inspection/py.typed +0 -0
- spens_acp-1.0.1/.local-packages/site-packages/typing_inspection/typing_objects.py +620 -0
- spens_acp-1.0.1/.local-packages/site-packages/typing_inspection/typing_objects.pyi +421 -0
- spens_acp-1.0.1/.local-packages/site-packages/typing_inspection-0.4.4.dist-info/METADATA +49 -0
- spens_acp-1.0.1/.local-packages/site-packages/typing_inspection-0.4.4.dist-info/RECORD +9 -0
- spens_acp-1.0.1/.local-packages/site-packages/typing_inspection-0.4.4.dist-info/WHEEL +4 -0
- spens_acp-1.0.1/.local-packages/site-packages/typing_inspection-0.4.4.dist-info/licenses/LICENSE +21 -0
- spens_acp-1.0.1/.local-packages/typing_extensions.whl +0 -0
- spens_acp-1.0.1/.local-packages/typing_inspection.whl +0 -0
- spens_acp-1.0.1/.spens.config.json +103 -0
- spens_acp-1.0.1/CHANGELOG.md +5 -0
- spens_acp-1.0.1/PKG-INFO +580 -0
- spens_acp-1.0.1/README.md +559 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/.lock +0 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/events.jsonl +12 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/interceptor_config.json +114 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/audit/0c4ddf1ea9007b5b/audit-events.ndjson +2 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/audit/0c4ddf1ea9007b5b/session.json +37 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/audit/ledger.lock +0 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/audit/ledger.ndjson +1 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/changes/001.json +23 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/0b/6abaa75b924d4b25f59a002a2e5c53102e4d00d1bdf4f137c4b6e04341c732 +17 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/0c/6cb0f618f0de50423532359abd374c753cfa33dca307c51d5f667f81a1fa0c +27 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/0d/69b0f3b553b2c7c4f30a31e7c9db8f3c2ea54dfdc8fa319eee8b4b0a9ded5e +98 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/18/5e4e8b888b17f7d4388fddb8962e0f45fdd1a88177a2e6b863b6abe31d96f6 +379 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/19/85ffff1e7367a724ec456751eaa2efd501cca7688452c6701072a187326aa3 +257 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/1b/cdec5a5a78063e510aef9e5d46e5d039213f31aa95f846ae27e5c13c029abb +547 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/1e/1f496321bc43fa6ef836a13059f7159800c23ecb635cb5ef3d6b63c1626e6e +7604 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/20/5d17e478bcb90a23f980400c9190321df5acf734bed1d99fe2e72c1f24dccd +18 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/22/d0f102ffad66834278245a5f58c0bc95de85f623f0b74e65a958bf4b339d5c +13 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/24/6a1e0bcc5da3bee86261ec826fc1bf4b782d3812435876f08a5ed31c28a9fe +574 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/26/8460cb29a455ef4f2300a12bd0707092868e31aac22058daf9e28df163ecee +170 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/27/2d835ef603c4f26c7a416ce254eda7d5169d1f2c9259f24780cbf7b825c8cb +29 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/2a/5358e501a1063d116c6356d4f327a8f04f8f9bcb41af5a2c1dc25ffb5f17cc +697 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/2c/80aecabb092984b4f833a39f6e16809a9d59b6bdec2084479ce54f3b60a4f2 +3293 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/2f/3437baa735d876ad336a15c07d36b4a851f7c2e52ad2ab19ca7cf01544bdd4 +2126 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/32/a192261c97ccfda5e77341e76986b1931bb4d969504bc4752c0058528f5ffd +56 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/38/0bd69aada35831bd89def92e5e22d082916219677d2241ea2c99dcd3888144 +254 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/3e/ab810471fa50e22b9a5721e48ff05ca16e0f7b141be2eb92aff882a23355af +143 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/45/72ba33d15b85bd0cd2d0c6c4c060351ebd566114a47cd82e5bb19e6523af83 +457 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/46/f6d12235ffb88e5fff8df1b41f6a70e5f50cec910c38af3343aaf311b6cf5f +529 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/47/2124be80355c97e7f15d755f601878b25eaaa80924ba76c2aee35341b32a5c +1330 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/49/fc929635c7dd6e36e395f3c691fcf445bf017495ba723852373869c153af8f +161 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/50/c60f088b50e011e9814ae29ce6f3d2aa05255f3aa169e580e599f59dc3efca +134 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/51/8ac34af9d1c245f2503a06610db00ed5ea4e111b109d4da11fb00a85707e49 +174 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/51/ba29a1cab270ca3b5cc76c3bd409767eccda8db59157606fc833bc56bcf16d +37 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/52/a4273a8142f656fdf484378209540d7cd739cb9c215d6eff80d79c7ef49283 +169 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/52/e1274ba8905868a73b0bad586aed76a1cfe727e95e1e4eecd0684de965762b +30 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/54/bcd48a62a993dbc6f5cd11916183daca4973c8b2580b73527fb74d4dccccc0 +350 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/59/cb2c9ffc0d31515c46a3c6bfe9e01f2a524891117f969a90b6678f2f181093 +22 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/59/de566f6cfffffbb386f9b274007e80be56b059a20038706d846406cb08eefa +7 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/5b/334dc01f049ece028aaa29c2783a48cff89f55fc9e134b2925c328d75f0b0d +20 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/5e/0f7d879f4501abf87e7e1521ad9b5cf143fbc72ae972bef6652aa86edc2b31 +360 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/5f/2e458d0bae5bec0666d20d5b81cf93fc05c1b834173e1e8e90d4906d16d436 +91 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/66/7b08d59c3cc06cc7ec377d00a13606499c6a8bbeed8f08e758b252041756a4 +18 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/68/1fbd7e4abbd4f3d3ae48019682303ffd3349e51195107951e3910a3f518c14 +36 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/68/b6a345cc5c03b07e844a13c25a65bcea05e34347fd7c06ee8c364aa9b22b4b +17 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/6d/c699f076d3aafffceadf0dd2c610d0fbaa9ee05434e35d0c5aebc2cfa35d42 +6 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/6e/9f43f9c87f775101126a08a25d5198a09c864cae028f36bf207bef078b94ac +1 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/6f/8b490fddb54e3515903f931369d8f044213bf63b8f79717082312b50107f5b +57 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/71/beeb8b81394df67ef4a6c526a751082fb91745544e87595eb059c1a9be9810 +1133 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/73/092e58a959f5bd6ad698de53d1cc7050bbd9ea6bde75ff8031178b53d93625 +155 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/78/63ddeb6637587c264baa27dd2bf0f10876690445fedc4772044e57e91f3972 +17 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/78/abe4922a7929bad2dc20ff25e40daa1a43725bfddf218d3d76d50c25b97c2b +302 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/7b/036ab16ffe7f63fc20c58dfb37586c97c4f3668da3c5f6978ce928be81272b +327 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/7c/ce46b2680afeb933e526349ce3a5c07c202de0784215cb0cb62cde9e986854 +508 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/82/0de5ae5b22249408f505a5d97eb1215a49ab2567b0c62fa9cd21812eb53ca1 +1273 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/88/1f68865f02d06fc561704672f2f9ecb33bd44ec3c76c5885ee8ab028e1a5fa +466 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/8a/0a1ad647f8c90b09e959a1303c3a35d90fed78311df8694d641e7ae694a318 +70 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/8a/4d78a835f8e4f00cd9fa9abe6ef943704510fe5b9b37324e6e01881417d845 +14 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/8e/369647d494cc3de7a57d0c9c215be27912ad8ef821a2e8be3bb3b9855f18e4 +31 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/91/447944015cec709e8aa7655f7e9d64e1e4508e7023a57fe3746911c0fc6fed +1 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/92/3672ac8fe52743c6a8204263bf86e0dfaf14d041789f928f44920595638190 +16 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/95/3d24ae2de678722998785292e7143b61645511c3f134347e19aa16f9e3b189 +17 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/95/59b913792c62c9daf2a4399b7b584bebe486226bb530299a427287d825430e +18 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/98/4ded24f89b503de2a16ad0f0b1ff7c17ee1ebe1f5bf11f4751dca1045361fd +146 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/9b/753d678952724281e4dc9744453d8d1291ca74502c4618c2de8ba6199fc31a +16 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/9d/1abe0265b13a02b03fa352e17e499d909053f8533d75c428fe4e816624fc78 +117 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/9e/474fb9a34a6aaa3c70df0234ba8586824aa6edb59b5461dabc06ac8d48a683 +680 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/9f/0570e1688feed3c0f82fe83d56fd399afe0c843ef67ac65df89511d13cae3d +1 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/ac/45e1f2740a65b393707d3ff7caa435d19c7def777e082af8faa5645e8d03b0 +51 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/b3/660dcdffd84c07400e745f6e25aac1c2f0ccf8ff76b4eb22c82cd72af3f7d2 +29 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/b6/9dcdd32868c305a4a2af4aaeff195b9aa44b994f5d3a739aad0954146b3beb +1127 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/b6/fb96d1a8277ba0354989719aa43986ba11e48409dadb227afee7641ca3ab8d +0 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/b8/90d80b6758d4678231c4e9d605d56665516ef0a6799a23af85a5260216b17a +77 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/bb/55b04362350a87d8c066c724345b77595225ff1890ace433c04fcf164287c3 +471 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/bb/feeb8bd55d01d688489fecf78e57a732169b51900d339bffd22265d0a4a4bc +370 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/bd/3c234a6c653437cb5314f930d77ac313c534a143cfb1da6cc29da7eb899d4c +994 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/c2/58313192d5b8ce7dcab4c246ba060facb7fe50a34dad48d26526a357fcd253 +17 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/c4/2212c7209809642fb0d29837819484f1effbb53c3177d0551d23e4a8733674 +188 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/c6/fd8d7fdb069e8129597fbf5250387667996d4c91e95e3888e85df6d4e4b2a3 +16 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/c7/2cc8f192a696a1b80e8877112d6db0f1b3d27337dfd491348dd0418846a9a7 +488 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/c7/fa83a20a3c866ccb36aded68ed9df1b44a7588607c5bedfba811fc6eda1545 +13 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/c8/49733255b8585e31b5488c2a5027ac88ef454312fc99b87747986ea2a5fb5d +193 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/cf/4f41131edb95ab8459e1302bab88752d09fe8315f4bd358058325d6ada6750 +14 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/d2/efc2c63dc0996599d65f0679222f888cda523806eee73cd8b41281f807e9f2 +17 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/d7/471c77202419e36665e0a81f58105cec040fc7765ba29a62c54cf0bf0b2b87 +5862 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/d7/929f524524f5b54dfd232e458a7fbd1e27bfeaf23a84987e3f2c722a6c7aa5 +0 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/dd/0d2e1370e89aef7a91faf4093f74c4ffa6f79f6ce0adcbd999fcd147794681 +170 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/dd/a80cb1db885b74c0966c4951c66f86a930d8c09cb8485a79d2172ae9e0625e +969 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/de/e99e6bec93119805315d498ed5df617750b9afb6ad2dba1f696000ad27250d +786 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/e0/dafa0440671a28da72cb6395aba6a49df868a0f5eb42ec49ffd28e4f0879e3 +103 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/e1/d06a7437f0eb9780bd4f636fa3fdf438d9bfc2b1e57f6a705723a8741bae75 +196 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/e3/b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 +0 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/e6/12a8718a4ff8712639e64287d9f9f339cb3b5c9c954714796b25bb45b7d2f7 +17 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/e9/3284beb017163c2571b723dac47a5ef72b5899b6e44f45578ecf33a7b57058 +1 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/e9/e6a9f2a9ba6af555f97e36bcedab09ca6dcfda371d28b6a959b500e8dfa62e +781 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/ea/628d86f0b8b97f62fbc7de4e39473b3d4d394f9e99631304c61d554d22b9c8 +28 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/eb/4d848dd3f23ebe25de061dfd6d4d4464e193688dc7aac09e8accf3064edf4e +4 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/ed/1cad280079948f9e1f9423cf687f1e69cf4a6b415626c15a55755def2f0292 +145 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/f1/a15c22e6229dc9649859c40b2af8abbbbcb1cd6c388f0e435ec99c0b348468 +21 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/f5/a4cc7e592c0a2008a77e08930c0aa19b0687d5acd7c5e464add279bf35025f +303 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/f6/e16bad29a78ada97d9826d7c14ca68b3faa9b7894de496bb26cc7d067ea206 +756 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/f7/0daac61439a92534c9c9cf834b3a23b55da949795b0bfe9499ba1027fb44cc +120 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/f8/7c53cbae0b8bed8d8ef3d3ab603e72e4a479bd41d13e71d9f9c15e50d982cf +17 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/f9/f3b1fbf3ce4183934412e6197ac71c35598365564af5cff52e538e77514894 +469 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/fb/295b0ff3c7483c99cc27a5fe3b438f7f9f6ea0c082b693472a23e7d3cd23b0 +0 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/fb/f9e858a6baa65d2a6311e21cad6c498bac5a6a80c0623887f55a5686243776 +17 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/fd/db2d2b8b6a5f26ee6b5ab15375a280874a17e9d5746dfedc4e4f1eb826511a +168 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/objects/fe/e015c0b669adc07813b8ba1622b8300047c97e1c276115231ef598e9cc2250 +18 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/session.json +37 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/snapshots/000.json +599 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/rollbacks/0c4ddf1ea9007b5b/snapshots/001.json +599 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/nono-audit/sessions/0c4ddf1ea9007b5b.json +18 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/session_summary.json +56 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/state.json +1 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/traces/captured.jsonl +2776 -0
- spens_acp-1.0.1/example-data/1f8f89113e4545ea/traces/request_log.jsonl +36 -0
- spens_acp-1.0.1/license.md +7 -0
- spens_acp-1.0.1/pyproject.toml +60 -0
- spens_acp-1.0.1/specs/Inital-spec.md +521 -0
- spens_acp-1.0.1/spens_acp/__init__.py +3 -0
- spens_acp-1.0.1/spens_acp/__main__.py +5 -0
- spens_acp-1.0.1/spens_acp/acp_server.py +599 -0
- spens_acp-1.0.1/spens_acp/config.py +326 -0
- spens_acp-1.0.1/spens_acp/decoder/__init__.py +192 -0
- spens_acp-1.0.1/spens_acp/decoder/anthropic.py +98 -0
- spens_acp-1.0.1/spens_acp/decoder/chatcompletions.py +99 -0
- spens_acp-1.0.1/spens_acp/decoder/common.py +79 -0
- spens_acp-1.0.1/spens_acp/decoder/responses.py +95 -0
- spens_acp-1.0.1/spens_acp/diag.py +22 -0
- spens_acp-1.0.1/spens_acp/event_mapper.py +112 -0
- spens_acp-1.0.1/spens_acp/history.py +83 -0
- spens_acp-1.0.1/spens_acp/launcher.py +213 -0
- spens_acp-1.0.1/spens_acp/main.py +151 -0
- spens_acp-1.0.1/spens_acp/persist.py +95 -0
- spens_acp-1.0.1/spens_acp/session_map.py +131 -0
- spens_acp-1.0.1/spens_acp/types.py +172 -0
- spens_acp-1.0.1/spens_acp/watcher.py +136 -0
- spens_acp-1.0.1/tests/__init__.py +0 -0
- spens_acp-1.0.1/tests/test_acp_server.py +426 -0
- spens_acp-1.0.1/tests/test_config.py +206 -0
- spens_acp-1.0.1/tests/test_decoder_anthropic.py +396 -0
- spens_acp-1.0.1/tests/test_decoder_chatcompletions.py +225 -0
- spens_acp-1.0.1/tests/test_decoder_responses.py +119 -0
- spens_acp-1.0.1/tests/test_event_mapping_golden.py +68 -0
- spens_acp-1.0.1/tests/test_fake_spens_e2e.py +537 -0
- spens_acp-1.0.1/tests/test_history.py +83 -0
- spens_acp-1.0.1/tests/test_launcher.py +195 -0
- spens_acp-1.0.1/tests/test_persist.py +108 -0
- spens_acp-1.0.1/tests/test_prompt_flattening.py +63 -0
- spens_acp-1.0.1/tests/test_protocol_e2e.py +397 -0
- spens_acp-1.0.1/tests/test_session_map.py +122 -0
- spens_acp-1.0.1/tests/test_tool_kind.py +47 -0
- spens_acp-1.0.1/tests/test_truncation.py +31 -0
- spens_acp-1.0.1/tests/test_watcher.py +104 -0
- 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
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
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
|
+
]
|