anncsu-sdk 0.0.9.dev29__tar.gz → 0.0.10.dev1__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.
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/.github/workflows/publish.yml +1 -1
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/PKG-INFO +1 -1
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/CLI.md +47 -18
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/cli/commands/bulk.py +5 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/cli/commands/coordinate.py +34 -25
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/cli/models.py +21 -1
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/coordinate/bulk/dryrun.py +33 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/cli/test_coordinate.py +202 -40
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/coordinate/bulk/test_dryrun.py +105 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/.devcontainer/README.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/.devcontainer/devcontainer.json +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/.devcontainer/setup.sh +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/.gitattributes +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/.github/workflows/README.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/.github/workflows/ci.yml +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/.gitignore +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/.pre-commit-config.yaml +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/.python-version +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/.speakeasy/gen.lock +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/.speakeasy/gen.yaml +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/.speakeasy/out.accessi.openapi.yaml +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/.speakeasy/out.coordinate.openapi.yaml +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/.speakeasy/out.odonimi.openapi.yaml +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/.speakeasy/out.openapi.yaml +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/.speakeasy/workflow.lock +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/.speakeasy/workflow.yaml +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/.vscode/settings.json +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/CONTRIBUTING.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/LICENSE +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/README.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/USAGE.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/SECURITY.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/VALIDATION.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoaccessigetpathparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoaccessigetpathparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoaccessigetpathparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoaccessigetpathparamnotfounderror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoaccessigetpathparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoaccessigetqueryparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoaccessigetqueryparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoaccessigetqueryparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoaccessigetqueryparamnotfounderror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoaccessigetqueryparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoaccessipostbadrequesterror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoaccessipostinternalservererror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoaccessipostmethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoaccessipostnotfounderror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoaccessipostunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoaccessiproggetpathparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoaccessiproggetpathparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoaccessiproggetpathparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoaccessiproggetpathparamnotfounderror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoaccessiproggetpathparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoaccessiproggetqueryparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoaccessiproggetqueryparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoaccessiproggetqueryparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoaccessiproggetqueryparamnotfounderror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoaccessiproggetqueryparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoaccessiprogpostbadrequesterror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoaccessiprogpostinternalservererror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoaccessiprogpostmethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoaccessiprogpostnotfounderror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoaccessiprogpostunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoodonimigetpathparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoodonimigetpathparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoodonimigetpathparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoodonimigetpathparamnotfounderror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoodonimigetpathparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoodonimigetqueryparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoodonimigetqueryparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoodonimigetqueryparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoodonimigetqueryparamnotfounderror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoodonimigetqueryparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoodonimipostbadrequesterror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoodonimipostinternalservererror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoodonimipostmethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoodonimipostnotfounderror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoodonimipostunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoodonimiproggetpathparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoodonimiproggetpathparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoodonimiproggetpathparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoodonimiproggetpathparamnotfounderror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoodonimiproggetpathparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoodonimiproggetqueryparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoodonimiproggetqueryparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoodonimiproggetqueryparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoodonimiproggetqueryparamnotfounderror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoodonimiproggetqueryparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoodonimiprogpostbadrequesterror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoodonimiprogpostinternalservererror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoodonimiprogpostmethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoodonimiprogpostnotfounderror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/elencoodonimiprogpostunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/esisteaccessogetpathparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/esisteaccessogetpathparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/esisteaccessogetpathparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/esisteaccessogetpathparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/esisteaccessogetqueryparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/esisteaccessogetqueryparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/esisteaccessogetqueryparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/esisteaccessogetqueryparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/esisteaccessopostbadrequesterror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/esisteaccessopostinternalservererror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/esisteaccessopostmethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/esisteaccessopostunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/esisteodonimogetpathparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/esisteodonimogetpathparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/esisteodonimogetpathparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/esisteodonimogetpathparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/esisteodonimogetqueryparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/esisteodonimogetqueryparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/esisteodonimogetqueryparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/esisteodonimogetqueryparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/esisteodonimopostbadrequesterror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/esisteodonimopostinternalservererror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/esisteodonimopostmethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/esisteodonimopostunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/prognazaccgetpathparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/prognazaccgetpathparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/prognazaccgetpathparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/prognazaccgetpathparamnotfounderror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/prognazaccgetpathparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/prognazaccgetqueryparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/prognazaccgetqueryparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/prognazaccgetqueryparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/prognazaccgetqueryparamnotfounderror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/prognazaccgetqueryparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/prognazaccpostbadrequesterror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/prognazaccpostinternalservererror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/prognazaccpostmethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/prognazaccpostnotfounderror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/prognazaccpostunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/prognazareagetpathparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/prognazareagetpathparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/prognazareagetpathparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/prognazareagetpathparamnotfounderror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/prognazareagetpathparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/prognazareagetqueryparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/prognazareagetqueryparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/prognazareagetqueryparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/prognazareagetqueryparamnotfounderror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/prognazareagetqueryparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/prognazareapostbadrequesterror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/prognazareapostinternalservererror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/prognazareapostmethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/prognazareapostnotfounderror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/prognazareapostunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/errors/serviceunavailableerror.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/elencoaccessigetpathparamdata.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/elencoaccessigetpathparamrequest.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/elencoaccessigetpathparamresponse.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/elencoaccessigetqueryparamdata.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/elencoaccessigetqueryparamrequest.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/elencoaccessigetqueryparamresponse.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/elencoaccessipostdata.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/elencoaccessipostrequest.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/elencoaccessipostresponse.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/elencoaccessiproggetpathparamdata.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/elencoaccessiproggetpathparamrequest.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/elencoaccessiproggetpathparamresponse.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/elencoaccessiproggetqueryparamdata.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/elencoaccessiproggetqueryparamrequest.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/elencoaccessiproggetqueryparamresponse.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/elencoaccessiprogpostdata.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/elencoaccessiprogpostrequest.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/elencoaccessiprogpostresponse.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/elencoodonimigetpathparamdata.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/elencoodonimigetpathparamrequest.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/elencoodonimigetpathparamresponse.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/elencoodonimigetqueryparamdata.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/elencoodonimigetqueryparamrequest.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/elencoodonimigetqueryparamresponse.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/elencoodonimipostdata.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/elencoodonimipostrequest.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/elencoodonimipostresponse.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/elencoodonimiproggetpathparamdata.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/elencoodonimiproggetpathparamrequest.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/elencoodonimiproggetpathparamresponse.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/elencoodonimiproggetqueryparamdata.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/elencoodonimiproggetqueryparamrequest.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/elencoodonimiproggetqueryparamresponse.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/elencoodonimiprogpostdata.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/elencoodonimiprogpostrequest.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/elencoodonimiprogpostresponse.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/esisteaccessogetpathparamrequest.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/esisteaccessogetpathparamresponse.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/esisteaccessogetqueryparamrequest.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/esisteaccessogetqueryparamresponse.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/esisteaccessopostrequest.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/esisteaccessopostresponse.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/esisteodonimogetpathparamrequest.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/esisteodonimogetpathparamresponse.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/esisteodonimogetqueryparamrequest.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/esisteodonimogetqueryparamresponse.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/esisteodonimopostrequest.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/esisteodonimopostresponse.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/prognazaccgetpathparamdata.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/prognazaccgetpathparamrequest.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/prognazaccgetpathparamresponse.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/prognazaccgetqueryparamdata.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/prognazaccgetqueryparamrequest.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/prognazaccgetqueryparamresponse.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/prognazaccpostdata.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/prognazaccpostrequest.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/prognazaccpostresponse.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/prognazareagetpathparamdata.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/prognazareagetpathparamrequest.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/prognazareagetpathparamresponse.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/prognazareagetqueryparamdata.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/prognazareagetqueryparamrequest.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/prognazareagetqueryparamresponse.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/prognazareapostdata.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/prognazareapostrequest.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/prognazareapostresponse.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/showstatusresponse.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/models/utils/retryconfig.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/sdk-accessi.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/sdk-coordinate.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/sdk-odonimi.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/sdk-pa.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/sdks/anncsu/README.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/sdks/jsonpost/README.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/sdks/pathparam/README.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/sdks/queryparam/README.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/sdks/status/README.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/docs/speakeasy.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/oas/.spectral.yaml +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/oas/README.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/oas/dev/Specifica API - ANNCSU - Aggiornamento accessi.yaml +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/oas/dev/Specifica API - ANNCSU - Aggiornamento coordinate massivo.yml +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/oas/dev/Specifica API - ANNCSU - Aggiornamento coordinate.yml +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/oas/dev/Specifica API - ANNCSU - Aggiornamento odonimi.yaml +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/oas/dev/Specifica API - ANNCSU /342/200/223 Consultazione per le PA.yaml" +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/oas/prod/Specifica API - ANNCSU /342/200/223 Consultazione per le PA.yaml" +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/pylintrc +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/pyproject.toml +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/scripts/create_client_assertion.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/scripts/post_speakeasy_generation.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/scripts/publish.sh +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/accessi/__init__.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/accessi/_version.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/accessi/accessi.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/accessi/errors/__init__.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/accessi/errors/accesso_validation.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/accessi/errors/anncsuerror.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/accessi/errors/apierror.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/accessi/errors/no_response_error.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/accessi/errors/responsevalidationerror.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/accessi/errors/rispostaerrore.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/accessi/errors/show_statusop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/accessi/models/__init__.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/accessi/models/richiestaoperazione.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/accessi/models/rispostaoperazione.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/accessi/models/security.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/accessi/models/show_statusop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/accessi/models/validated.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/accessi/py.typed +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/accessi/sdk.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/accessi/sdkconfiguration.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/accessi/status.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/cli/__init__.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/cli/app.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/cli/commands/__init__.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/cli/commands/accesso.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/cli/commands/assertion.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/cli/commands/auth.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/cli/commands/config.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/cli/commands/constants.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/cli/commands/odonimo.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/cli/commands/pa.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/__init__.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/auth.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/basesdk.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/config.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/errors/__init__.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/errors/apierror.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/errors/audience_mismatch.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/errors/base.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/errors/digest_serialization_mismatch.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/errors/no_response_error.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/errors/responsevalidationerror.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/hooks/__init__.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/hooks/modi_hook.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/hooks/registration.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/hooks/sdkhooks.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/hooks/token_validation.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/hooks/types.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/httpclient.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/modi.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/pdnd_assertion.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/pdnd_token.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/sdk/__init__.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/sdk/basesdk.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/sdk/httpclient.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/sdk/protocols.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/sdk/types/__init__.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/sdk/types/basemodel.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/sdk/utils/__init__.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/sdk/utils/annotations.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/sdk/utils/datetimes.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/sdk/utils/dynamic_imports.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/sdk/utils/enums.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/sdk/utils/eventstreaming.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/sdk/utils/forms.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/sdk/utils/headers.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/sdk/utils/logger.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/sdk/utils/metadata.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/sdk/utils/queryparams.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/sdk/utils/requestbodies.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/sdk/utils/retries.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/sdk/utils/security.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/sdk/utils/serializers.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/sdk/utils/unmarshal_json_response.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/sdk/utils/url.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/sdk/utils/values.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/sdkconfiguration.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/security.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/session.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/types/__init__.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/utils/__init__.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/validation/__init__.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/validation/examples.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/validation/response_validator.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/common/validation/validators.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/coordinate/__init__.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/coordinate/_version.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/coordinate/bulk/__init__.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/coordinate/bulk/db.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/coordinate/bulk/executor.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/coordinate/bulk/importer.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/coordinate/bulk/reporter.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/coordinate/errors/__init__.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/coordinate/errors/anncsuerror.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/coordinate/errors/apierror.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/coordinate/errors/coordinate_validation.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/coordinate/errors/no_response_error.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/coordinate/errors/responsevalidationerror.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/coordinate/errors/risposta_validation.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/coordinate/errors/rispostaerrore.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/coordinate/errors/show_statusop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/coordinate/jsonpost.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/coordinate/models/__init__.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/coordinate/models/richiestaoperazione.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/coordinate/models/rispostaoperazione.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/coordinate/models/security.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/coordinate/models/show_statusop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/coordinate/models/validated.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/coordinate/py.typed +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/coordinate/sdk.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/coordinate/sdkconfiguration.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/coordinate/status.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/odonimi/__init__.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/odonimi/_version.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/odonimi/errors/__init__.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/odonimi/errors/anncsuerror.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/odonimi/errors/apierror.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/odonimi/errors/no_response_error.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/odonimi/errors/odonimo_validation.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/odonimi/errors/responsevalidationerror.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/odonimi/errors/rispostaerrore.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/odonimi/errors/show_statusop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/odonimi/models/__init__.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/odonimi/models/autprefettura.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/odonimi/models/provvedimento.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/odonimi/models/richiestaoperazione.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/odonimi/models/rispostaoperazione.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/odonimi/models/security.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/odonimi/models/show_statusop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/odonimi/models/validated.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/odonimi/odonimi.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/odonimi/py.typed +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/odonimi/sdk.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/odonimi/sdkconfiguration.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/odonimi/status.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/__init__.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/_hooks/__init__.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/_hooks/registration.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/_hooks/sdkhooks.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/_hooks/types.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/_version.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/errors/__init__.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/errors/anncsuerror.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/errors/apierror.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/errors/elencoaccessigetpathparamop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/errors/elencoaccessigetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/errors/elencoaccessipostop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/errors/elencoaccessiproggetpathparamop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/errors/elencoaccessiproggetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/errors/elencoaccessiprogpostop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/errors/elencoodonimigetpathparamop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/errors/elencoodonimigetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/errors/elencoodonimipostop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/errors/elencoodonimiproggetpathparamop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/errors/elencoodonimiproggetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/errors/elencoodonimiprogpostop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/errors/esisteaccessogetpathparamop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/errors/esisteaccessogetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/errors/esisteaccessopostop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/errors/esisteodonimogetpathparamop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/errors/esisteodonimogetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/errors/esisteodonimopostop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/errors/no_response_error.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/errors/prognazaccgetpathparamop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/errors/prognazaccgetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/errors/prognazaccpostop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/errors/prognazareagetpathparamop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/errors/prognazareagetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/errors/prognazareapostop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/errors/responsevalidationerror.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/errors/show_statusop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/jsonpost.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/models/__init__.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/models/elencoaccessigetpathparamop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/models/elencoaccessigetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/models/elencoaccessipostop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/models/elencoaccessiproggetpathparamop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/models/elencoaccessiproggetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/models/elencoaccessiprogpostop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/models/elencoodonimigetpathparamop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/models/elencoodonimigetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/models/elencoodonimipostop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/models/elencoodonimiproggetpathparamop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/models/elencoodonimiproggetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/models/elencoodonimiprogpostop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/models/esisteaccessogetpathparamop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/models/esisteaccessogetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/models/esisteaccessopostop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/models/esisteodonimogetpathparamop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/models/esisteodonimogetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/models/esisteodonimopostop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/models/prognazaccgetpathparamop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/models/prognazaccgetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/models/prognazaccpostop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/models/prognazareagetpathparamop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/models/prognazareagetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/models/prognazareapostop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/models/show_statusop.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/pathparam.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/py.typed +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/queryparam.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/sdk.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/sdkconfiguration.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/src/anncsu/pa/status.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/README.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/accessi/__init__.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/accessi/test_accesso_validation.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/accessi/test_do_request_signature.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/accessi/test_imports.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/cli/__init__.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/cli/conftest.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/cli/test_accesso.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/cli/test_assertion.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/cli/test_auth.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/cli/test_config.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/cli/test_coordinate_bulk.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/cli/test_duckdb_batch.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/cli/test_main.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/cli/test_odonimo.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/cli/test_pa.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/cli/test_raw_output.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/cli/test_token_endpoint_resolution.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/common/__init__.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/common/test_auth_modi_integration.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/common/test_cli_env_override.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/common/test_config.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/common/test_imports.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/common/test_modi.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/common/test_modi_hook.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/common/test_pdnd_assertion.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/common/test_pdnd_auth_manager.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/common/test_pdnd_token.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/common/test_security.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/common/test_security_basemodel.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/common/test_session.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/common/test_token_validation_hook.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/conftest.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/coordinate/__init__.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/coordinate/bulk/__init__.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/coordinate/bulk/test_db.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/coordinate/bulk/test_executor.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/coordinate/bulk/test_importer.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/coordinate/bulk/test_integration.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/coordinate/bulk/test_reporter.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/coordinate/test_coordinate_validation.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/coordinate/test_imports.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/coordinate/test_risposta_validation.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/coordinate/test_sdk_hooks_integration.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/integration/__init__.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/integration/coordinate/__init__.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/integration/coordinate/test_jsonpost_async_httpx.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/integration/coordinate/test_jsonpost_httpx.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/integration/coordinate/test_status_async_httpx.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/integration/coordinate/test_status_httpx.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/integration/pa/__init__.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/integration/pa/test_jsonpost_async_httpx.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/integration/pa/test_jsonpost_httpx.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/integration/pa/test_pathparam_async_httpx.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/integration/pa/test_pathparam_httpx.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/integration/pa/test_queryparam_async_httpx.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/integration/pa/test_queryparam_httpx.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/integration/pa/test_status_httpx.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/integration/test_sdk_instantiation.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/integration/test_security_in_requests.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/odonimi/__init__.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/odonimi/test_imports.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/odonimi/test_odonimo_validation.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/pa/__init__.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/pa/test_imports.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/pa/test_response_field_mapping.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/test_post_speakeasy_generation.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/validation/__init__.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/validation/coordinate/__init__.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/validation/coordinate/test_coordinate_operations_validation.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/validation/coordinate/test_model_factories.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/validation/coordinate/test_validators.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/validation/coordinate/test_validators_property.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/validation/pa/ADVANCED_TESTING.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/validation/pa/README.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/validation/pa/README_COMPREHENSIVE_TESTS.md +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/validation/pa/__init__.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/validation/pa/test_all_operations_validation.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/validation/pa/test_model_factories.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/validation/pa/test_model_factories_comprehensive.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/validation/pa/test_validators.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/validation/pa/test_validators_property.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/tests/validation/test_response_validator.py +0 -0
- {anncsu_sdk-0.0.9.dev29 → anncsu_sdk-0.0.10.dev1}/uv.lock +0 -0
|
@@ -16,7 +16,7 @@ jobs:
|
|
|
16
16
|
publish:
|
|
17
17
|
runs-on: ubuntu-latest
|
|
18
18
|
permissions:
|
|
19
|
-
contents:
|
|
19
|
+
contents: write # Required for softprops/action-gh-release to create GitHub Releases on tag pushes
|
|
20
20
|
id-token: write # Required for trusted publishing (optional but recommended)
|
|
21
21
|
|
|
22
22
|
steps:
|
|
@@ -877,22 +877,40 @@ Original coordinates to restore manually:
|
|
|
877
877
|
metodo: 4
|
|
878
878
|
```
|
|
879
879
|
|
|
880
|
-
**
|
|
880
|
+
**Safety skip on legacy NULL `metodo`**: a dry-run **guarantees zero changes** in production. If the target record has an original `metodo` that is not one of the valid OAS values (`"1"`, `"2"`, `"3"`, `"4"`) — typically legacy data imported before the validation rule was enforced — the restore step would fail (ANNCSU error 130, *"Il metodo deve essere obbligatorio e compreso tra 1 e 4"*) and the test update would remain committed permanently.
|
|
881
881
|
|
|
882
|
-
|
|
883
|
-
|-------|------------|-------------|
|
|
884
|
-
| X | `12.4922309` | Longitude (Roma Colosseo area) |
|
|
885
|
-
| Y | `41.8902102` | Latitude (Roma Colosseo area) |
|
|
886
|
-
| Z | `null` | Altitude not specified |
|
|
887
|
-
| metodo | `4` | "Altro" (other method) |
|
|
882
|
+
To preserve the dry-run guarantee, the CLI **skips** such records **before any API write call**:
|
|
888
883
|
|
|
889
|
-
|
|
884
|
+
- No `gestionecoordinate` request is sent.
|
|
885
|
+
- A warning is printed (or, with `--json`, a structured payload with `"skipped": true` and `"skip_reason": "original_metodo_null_or_invalid"`).
|
|
886
|
+
- Exit code is `0` (the dry-run completed as designed, the record was simply not testable).
|
|
890
887
|
|
|
891
|
-
|
|
892
|
-
|
|
888
|
+
JSON output when a record is skipped:
|
|
889
|
+
|
|
890
|
+
```json
|
|
891
|
+
{
|
|
892
|
+
"success": true,
|
|
893
|
+
"original_coordinates": {
|
|
894
|
+
"prognazacc": "5256880",
|
|
895
|
+
"codcom": "H501",
|
|
896
|
+
"civico": "1",
|
|
897
|
+
"coord_x": null,
|
|
898
|
+
"coord_y": null,
|
|
899
|
+
"quota": null,
|
|
900
|
+
"metodo": null
|
|
901
|
+
},
|
|
902
|
+
"test_update": null,
|
|
903
|
+
"restore": null,
|
|
904
|
+
"restore_failed": false,
|
|
905
|
+
"skipped": true,
|
|
906
|
+
"skip_reason": "original_metodo_null_or_invalid",
|
|
907
|
+
"error_message": null
|
|
908
|
+
}
|
|
893
909
|
```
|
|
894
910
|
|
|
895
|
-
**
|
|
911
|
+
> **Removed in this release**: the prior fallback that injected Roma Colosseo coordinates (`X=12.4922309`, `Y=41.8902102`, `metodo=4`) when the access had no original coordinates. That fallback violated the "dry-run = zero changes" guarantee because the eventual restore to `metodo=NULL` could not succeed. Skip is now the only behaviour.
|
|
912
|
+
|
|
913
|
+
**Warning Handling (legacy)**: if a restore fails for any *other* reason (e.g. transient network error during the round-trip on a record that did pass the safety check), the command will still display original values for manual recovery — same as before.
|
|
896
914
|
|
|
897
915
|
---
|
|
898
916
|
|
|
@@ -1225,12 +1243,13 @@ Dry-Run Results:
|
|
|
1225
1243
|
┌──────────────────────┬───────┐
|
|
1226
1244
|
│ Metric │ Value │
|
|
1227
1245
|
├──────────────────────┼───────┤
|
|
1228
|
-
│ Total tested │
|
|
1229
|
-
│ Updates succeeded │
|
|
1246
|
+
│ Total tested │ 8 │
|
|
1247
|
+
│ Updates succeeded │ 8 │
|
|
1230
1248
|
│ Updates failed │ 0 │
|
|
1231
|
-
│ Restores succeeded │
|
|
1249
|
+
│ Restores succeeded │ 8 │
|
|
1232
1250
|
│ Restores failed │ 0 │
|
|
1233
1251
|
│ Lookup failures │ 0 │
|
|
1252
|
+
│ Metodo NULL skipped │ 2 │
|
|
1234
1253
|
└──────────────────────┴───────┘
|
|
1235
1254
|
```
|
|
1236
1255
|
|
|
@@ -1238,12 +1257,13 @@ JSON output:
|
|
|
1238
1257
|
```json
|
|
1239
1258
|
{
|
|
1240
1259
|
"run_id": "abc123-def456",
|
|
1241
|
-
"total_tested":
|
|
1242
|
-
"updates_succeeded":
|
|
1260
|
+
"total_tested": 8,
|
|
1261
|
+
"updates_succeeded": 6,
|
|
1243
1262
|
"updates_failed": 2,
|
|
1244
|
-
"restores_succeeded":
|
|
1263
|
+
"restores_succeeded": 6,
|
|
1245
1264
|
"restores_failed": 0,
|
|
1246
1265
|
"lookup_failures": 0,
|
|
1266
|
+
"metodo_null_skipped": 2,
|
|
1247
1267
|
"errors": [
|
|
1248
1268
|
{
|
|
1249
1269
|
"row_id": 4,
|
|
@@ -1258,15 +1278,24 @@ JSON output:
|
|
|
1258
1278
|
"operation": "dryrun_update",
|
|
1259
1279
|
"http_status": 400,
|
|
1260
1280
|
"error_detail": "body.richiesta.accesso.coordinate.x: Max length is '12', found '14'"
|
|
1281
|
+
},
|
|
1282
|
+
{
|
|
1283
|
+
"row_id": 12,
|
|
1284
|
+
"progr_civico": "33013500",
|
|
1285
|
+
"operation": "dryrun_skip",
|
|
1286
|
+
"http_status": null,
|
|
1287
|
+
"error_detail": "original_metodo_null_or_invalid: None"
|
|
1261
1288
|
}
|
|
1262
1289
|
]
|
|
1263
1290
|
}
|
|
1264
1291
|
```
|
|
1265
1292
|
|
|
1293
|
+
**Safety skip on legacy NULL `metodo`**: same semantics as `coordinate dry-run` — records whose original `metodo` is not in `{"1", "2", "3", "4"}` are skipped **before any API write** to preserve the "dry-run = zero changes" guarantee. Counted in the dedicated `metodo_null_skipped` field; logged in `bulk_results` with `operation = 'dryrun_skip'` and `error_detail = 'original_metodo_null_or_invalid: <value>'`, so they appear in the **Error Details** section alongside other failures (distinguishable by the `operation` column).
|
|
1294
|
+
|
|
1266
1295
|
When there are errors, the text output also includes an **Error Details** table showing
|
|
1267
1296
|
row, progr_civico, operation, HTTP status, and error message for each failed operation.
|
|
1268
1297
|
|
|
1269
|
-
Exits with code 1 if any restores failed (manual intervention may be needed).
|
|
1298
|
+
Exits with code 1 if any restores failed (manual intervention may be needed). Skipped records do NOT cause a non-zero exit.
|
|
1270
1299
|
|
|
1271
1300
|
#### `anncsu coordinate bulk resume`
|
|
1272
1301
|
|
|
@@ -572,6 +572,7 @@ def bulk_dry_run(
|
|
|
572
572
|
"restores_succeeded": dry_result.restores_succeeded,
|
|
573
573
|
"restores_failed": dry_result.restores_failed,
|
|
574
574
|
"lookup_failures": dry_result.lookup_failures,
|
|
575
|
+
"metodo_null_skipped": dry_result.metodo_null_skipped,
|
|
575
576
|
"errors": [
|
|
576
577
|
{
|
|
577
578
|
"row_id": e[0],
|
|
@@ -605,6 +606,10 @@ def bulk_dry_run(
|
|
|
605
606
|
"Restores failed", f"[red]{dry_result.restores_failed}[/red]"
|
|
606
607
|
)
|
|
607
608
|
table.add_row("Lookup failures", str(dry_result.lookup_failures))
|
|
609
|
+
table.add_row(
|
|
610
|
+
"Metodo NULL skipped",
|
|
611
|
+
f"[yellow]{dry_result.metodo_null_skipped}[/yellow]",
|
|
612
|
+
)
|
|
608
613
|
console.print(table)
|
|
609
614
|
|
|
610
615
|
if errors:
|
|
@@ -40,6 +40,7 @@ from anncsu.common.modi import AuditContext, ModIConfig
|
|
|
40
40
|
from anncsu.common.security import Security as PASecurity
|
|
41
41
|
from anncsu.common.session import get_config_dir
|
|
42
42
|
from anncsu.coordinate import AnncsuCoordinate
|
|
43
|
+
from anncsu.coordinate.bulk.dryrun import _is_safely_restorable
|
|
43
44
|
from anncsu.coordinate.models import Accesso, Coordinate, Richiesta, Security
|
|
44
45
|
from anncsu.coordinate.models.validated import ValidatedRispostaOperazione
|
|
45
46
|
from anncsu.pa import AnncsuConsultazione
|
|
@@ -829,6 +830,32 @@ def dry_run(
|
|
|
829
830
|
console.print(f" Quota: {original.quota or 'N/A'}")
|
|
830
831
|
console.print(f" Metodo: {original.metodo or 'N/A'}\n")
|
|
831
832
|
|
|
833
|
+
# Pre-flight safety check: skip records whose original ``metodo`` is not
|
|
834
|
+
# one of the valid OAS values (``"1".."4"``). For such legacy records the
|
|
835
|
+
# update would succeed but the restore would fail with ANNCSU code 130,
|
|
836
|
+
# leaving the production data permanently overwritten. The dry-run
|
|
837
|
+
# guarantees "zero changes", so we bail out before any API write.
|
|
838
|
+
if not _is_safely_restorable(original.metodo):
|
|
839
|
+
if not json_output:
|
|
840
|
+
console.print(
|
|
841
|
+
"[yellow]Skipped:[/yellow] original ``metodo`` is "
|
|
842
|
+
f"{original.metodo!r}, which is not a valid restorable value "
|
|
843
|
+
"(expected '1', '2', '3', or '4'). No update or restore was "
|
|
844
|
+
"attempted to preserve the dry-run guarantee.\n"
|
|
845
|
+
)
|
|
846
|
+
skip_result = DryRunResult(
|
|
847
|
+
success=True,
|
|
848
|
+
original_coordinates=original,
|
|
849
|
+
test_update=None,
|
|
850
|
+
restore=None,
|
|
851
|
+
restore_failed=False,
|
|
852
|
+
skipped=True,
|
|
853
|
+
skip_reason="original_metodo_null_or_invalid",
|
|
854
|
+
)
|
|
855
|
+
if json_output:
|
|
856
|
+
print(skip_result.model_dump_json(indent=2))
|
|
857
|
+
return
|
|
858
|
+
|
|
832
859
|
# Step 2: Perform test update
|
|
833
860
|
if not json_output:
|
|
834
861
|
console.print("[bold]Step 2:[/bold] Performing test update...\n")
|
|
@@ -841,31 +868,13 @@ def dry_run(
|
|
|
841
868
|
modi_audience=coord_server,
|
|
842
869
|
)
|
|
843
870
|
|
|
844
|
-
#
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
y=original.coord_y,
|
|
852
|
-
z=original.quota,
|
|
853
|
-
metodo=original.metodo,
|
|
854
|
-
)
|
|
855
|
-
else:
|
|
856
|
-
# Access has no coordinates - use test values (Roma Colosseo area)
|
|
857
|
-
# These will be restored to empty after the test
|
|
858
|
-
if not json_output:
|
|
859
|
-
console.print(
|
|
860
|
-
"[yellow]Note:[/yellow] Access has no coordinates. "
|
|
861
|
-
"Using test coordinates (will be cleared after test).\n"
|
|
862
|
-
)
|
|
863
|
-
test_coordinate = Coordinate(
|
|
864
|
-
x="12.4922309", # Roma - Colosseo longitude
|
|
865
|
-
y="41.8902102", # Roma - Colosseo latitude
|
|
866
|
-
z=None,
|
|
867
|
-
metodo="4", # Metodo 4 = Altro
|
|
868
|
-
)
|
|
871
|
+
# Use the original coordinates as test payload (round-trip).
|
|
872
|
+
test_coordinate = Coordinate(
|
|
873
|
+
x=original.coord_x,
|
|
874
|
+
y=original.coord_y,
|
|
875
|
+
z=original.quota,
|
|
876
|
+
metodo=original.metodo,
|
|
877
|
+
)
|
|
869
878
|
|
|
870
879
|
test_richiesta = Richiesta(
|
|
871
880
|
accesso=Accesso(
|
|
@@ -324,7 +324,13 @@ class DryRunResult(BaseModel):
|
|
|
324
324
|
original_coordinates: OriginalCoordinates = Field(
|
|
325
325
|
description="Original coordinates before the test"
|
|
326
326
|
)
|
|
327
|
-
test_update: CoordinateUpdateResult = Field(
|
|
327
|
+
test_update: CoordinateUpdateResult | None = Field(
|
|
328
|
+
default=None,
|
|
329
|
+
description=(
|
|
330
|
+
"Result of the test update. ``None`` when the dry-run was skipped "
|
|
331
|
+
"(see ``skipped`` / ``skip_reason``) because no API write was attempted."
|
|
332
|
+
),
|
|
333
|
+
)
|
|
328
334
|
restore: CoordinateUpdateResult | None = Field(
|
|
329
335
|
default=None, description="Result of the restore operation"
|
|
330
336
|
)
|
|
@@ -332,6 +338,20 @@ class DryRunResult(BaseModel):
|
|
|
332
338
|
default=False,
|
|
333
339
|
description="Whether restore failed (requires manual intervention)",
|
|
334
340
|
)
|
|
341
|
+
skipped: bool = Field(
|
|
342
|
+
default=False,
|
|
343
|
+
description=(
|
|
344
|
+
"Whether the dry-run was skipped before any API write because the "
|
|
345
|
+
"original record cannot be safely restored (e.g. legacy NULL metodo)."
|
|
346
|
+
),
|
|
347
|
+
)
|
|
348
|
+
skip_reason: str | None = Field(
|
|
349
|
+
default=None,
|
|
350
|
+
description=(
|
|
351
|
+
"Machine-readable reason when ``skipped`` is ``True``. "
|
|
352
|
+
"Currently the only value is ``original_metodo_null_or_invalid``."
|
|
353
|
+
),
|
|
354
|
+
)
|
|
335
355
|
error_message: str | None = Field(
|
|
336
356
|
default=None, description="Error message if operation failed"
|
|
337
357
|
)
|
|
@@ -13,6 +13,7 @@ from anncsu.coordinate.models.richiestaoperazione import (
|
|
|
13
13
|
)
|
|
14
14
|
|
|
15
15
|
DEFAULT_MAX_RECORDS = 10
|
|
16
|
+
VALID_METODO_VALUES = frozenset({"1", "2", "3", "4"})
|
|
16
17
|
|
|
17
18
|
|
|
18
19
|
def _extract_http_error(e: Exception) -> tuple[int | None, str]:
|
|
@@ -22,6 +23,20 @@ def _extract_http_error(e: Exception) -> tuple[int | None, str]:
|
|
|
22
23
|
return http_status, error_detail
|
|
23
24
|
|
|
24
25
|
|
|
26
|
+
def _is_safely_restorable(metodo: str | None) -> bool:
|
|
27
|
+
"""A record can be safely dry-run-tested only if its original ``metodo``
|
|
28
|
+
is one of the valid OAS values (``"1".."4"``).
|
|
29
|
+
|
|
30
|
+
Records with NULL / empty / out-of-range ``metodo`` are legacy data
|
|
31
|
+
that pre-date the current API validation rule. The update would
|
|
32
|
+
succeed (the new CSV value is valid) but the restore would fail with
|
|
33
|
+
ANNCSU error 130 — leaving the record permanently overwritten. To
|
|
34
|
+
preserve the "dry-run = zero changes" guarantee, such records are
|
|
35
|
+
skipped before any write call.
|
|
36
|
+
"""
|
|
37
|
+
return metodo in VALID_METODO_VALUES
|
|
38
|
+
|
|
39
|
+
|
|
25
40
|
@dataclass
|
|
26
41
|
class DryRunResult:
|
|
27
42
|
"""Result of a bulk dry-run operation."""
|
|
@@ -33,6 +48,7 @@ class DryRunResult:
|
|
|
33
48
|
restores_failed: int
|
|
34
49
|
lookup_failures: int
|
|
35
50
|
run_id: str
|
|
51
|
+
metodo_null_skipped: int = 0
|
|
36
52
|
|
|
37
53
|
|
|
38
54
|
class BulkDryRunner:
|
|
@@ -77,6 +93,7 @@ class BulkDryRunner:
|
|
|
77
93
|
restores_succeeded = 0
|
|
78
94
|
restores_failed = 0
|
|
79
95
|
lookup_failures = 0
|
|
96
|
+
metodo_null_skipped = 0
|
|
80
97
|
|
|
81
98
|
# Track which rows were successfully updated (need restore)
|
|
82
99
|
rows_to_restore: list[dict] = []
|
|
@@ -130,6 +147,21 @@ class BulkDryRunner:
|
|
|
130
147
|
original_metodo=lookup_data.metodo,
|
|
131
148
|
)
|
|
132
149
|
|
|
150
|
+
# Step 2b: Pre-flight — skip records whose original metodo is not
|
|
151
|
+
# one of {"1","2","3","4"}. Otherwise the restore would fail
|
|
152
|
+
# (ANNCSU error 130) and leave the record permanently overwritten.
|
|
153
|
+
if not _is_safely_restorable(lookup_data.metodo):
|
|
154
|
+
metodo_null_skipped += 1
|
|
155
|
+
self.db.insert_result(
|
|
156
|
+
row_id=row_id,
|
|
157
|
+
run_id=self.run_id,
|
|
158
|
+
operation="dryrun_skip",
|
|
159
|
+
error_detail=(
|
|
160
|
+
f"original_metodo_null_or_invalid: {lookup_data.metodo!r}"
|
|
161
|
+
),
|
|
162
|
+
)
|
|
163
|
+
continue
|
|
164
|
+
|
|
133
165
|
# Step 3: Update with new coordinates from CSV
|
|
134
166
|
try:
|
|
135
167
|
response = self._call_update(row)
|
|
@@ -216,6 +248,7 @@ class BulkDryRunner:
|
|
|
216
248
|
restores_succeeded=restores_succeeded,
|
|
217
249
|
restores_failed=restores_failed,
|
|
218
250
|
lookup_failures=lookup_failures,
|
|
251
|
+
metodo_null_skipped=metodo_null_skipped,
|
|
219
252
|
run_id=self.run_id,
|
|
220
253
|
)
|
|
221
254
|
|
|
@@ -964,10 +964,17 @@ class TestCoordinateDryRun:
|
|
|
964
964
|
)
|
|
965
965
|
assert call_kwargs[1]["accparz"] == "10"
|
|
966
966
|
|
|
967
|
-
def
|
|
967
|
+
def test_dry_run_skips_access_without_metodo_via_search(
|
|
968
968
|
self, cli_runner: CliRunner, tmp_path: Path, mock_private_key: Path
|
|
969
969
|
) -> None:
|
|
970
|
-
"""
|
|
970
|
+
"""Access with NULL ``metodo`` reached via --codcom/--denom search must
|
|
971
|
+
be skipped — no test coordinates are invented, no API write occurs.
|
|
972
|
+
|
|
973
|
+
This replaces the prior ``..._uses_test_values`` test (the Colosseo
|
|
974
|
+
fallback) which violated the "dry-run = zero changes" guarantee
|
|
975
|
+
because the eventual restore to NULL metodo always failed with
|
|
976
|
+
ANNCSU error 130.
|
|
977
|
+
"""
|
|
971
978
|
from anncsu.cli import app
|
|
972
979
|
|
|
973
980
|
with cli_runner.isolated_filesystem(temp_dir=tmp_path):
|
|
@@ -990,21 +997,20 @@ class TestCoordinateDryRun:
|
|
|
990
997
|
"anncsu.cli.commands.coordinate.AnncsuConsultazione"
|
|
991
998
|
) as mock_consult_sdk:
|
|
992
999
|
consult_sdk = MagicMock()
|
|
993
|
-
# Mock odonimo response
|
|
994
1000
|
odonimo_response = MagicMock()
|
|
995
1001
|
odonimo_response.data = [MagicMock()]
|
|
996
1002
|
odonimo_response.data[0].prognaz = "987654"
|
|
997
1003
|
odonimo_response.data[0].dug = "VIA"
|
|
998
1004
|
odonimo_response.data[0].denomuff = "ROMA"
|
|
999
1005
|
consult_sdk.queryparam.elencoodonimiprog_get_query_param.return_value = odonimo_response
|
|
1000
|
-
#
|
|
1006
|
+
# Access with NO metodo (legacy data)
|
|
1001
1007
|
search_response = MagicMock()
|
|
1002
1008
|
search_response.data = [MagicMock()]
|
|
1003
1009
|
search_response.data[0].prognazacc = "5256880"
|
|
1004
|
-
search_response.data[0].coord_x = None
|
|
1005
|
-
search_response.data[0].coord_y = None
|
|
1010
|
+
search_response.data[0].coord_x = None
|
|
1011
|
+
search_response.data[0].coord_y = None
|
|
1006
1012
|
search_response.data[0].quota = None
|
|
1007
|
-
search_response.data[0].metodo = None
|
|
1013
|
+
search_response.data[0].metodo = None
|
|
1008
1014
|
search_response.data[0].civico = "1"
|
|
1009
1015
|
consult_sdk.queryparam.elencoaccessiprog_get_query_param.return_value = search_response
|
|
1010
1016
|
mock_consult_sdk.return_value = consult_sdk
|
|
@@ -1013,22 +1019,6 @@ class TestCoordinateDryRun:
|
|
|
1013
1019
|
"anncsu.cli.commands.coordinate.AnncsuCoordinate"
|
|
1014
1020
|
) as mock_coord_sdk:
|
|
1015
1021
|
coord_sdk = MagicMock()
|
|
1016
|
-
# Test update succeeds
|
|
1017
|
-
update_response = create_mock_response(
|
|
1018
|
-
id_richiesta="REQ-TEST-123",
|
|
1019
|
-
esito="0",
|
|
1020
|
-
messaggio="Test update OK",
|
|
1021
|
-
)
|
|
1022
|
-
# Restore succeeds
|
|
1023
|
-
restore_response = create_mock_response(
|
|
1024
|
-
id_richiesta="REQ-RESTORE-456",
|
|
1025
|
-
esito="0",
|
|
1026
|
-
messaggio="Restore OK",
|
|
1027
|
-
)
|
|
1028
|
-
coord_sdk.json_post.gestionecoordinate.side_effect = [
|
|
1029
|
-
update_response,
|
|
1030
|
-
restore_response,
|
|
1031
|
-
]
|
|
1032
1022
|
mock_coord_sdk.return_value = coord_sdk
|
|
1033
1023
|
|
|
1034
1024
|
result = cli_runner.invoke(
|
|
@@ -1043,23 +1033,195 @@ class TestCoordinateDryRun:
|
|
|
1043
1033
|
],
|
|
1044
1034
|
)
|
|
1045
1035
|
|
|
1046
|
-
assert result.exit_code == 0
|
|
1047
|
-
#
|
|
1048
|
-
assert
|
|
1049
|
-
#
|
|
1050
|
-
assert
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1036
|
+
assert result.exit_code == 0, result.output
|
|
1037
|
+
# Critical: no API write was attempted
|
|
1038
|
+
assert coord_sdk.json_post.gestionecoordinate.call_count == 0
|
|
1039
|
+
# User informed about the skip
|
|
1040
|
+
assert "skip" in result.output.lower()
|
|
1041
|
+
|
|
1042
|
+
def test_dry_run_skips_when_original_metodo_is_null(
|
|
1043
|
+
self, cli_runner: CliRunner, tmp_path: Path, mock_private_key: Path
|
|
1044
|
+
) -> None:
|
|
1045
|
+
"""Single dry-run must skip records whose original ``metodo`` is NULL.
|
|
1046
|
+
|
|
1047
|
+
The dry-run guarantee is "zero changes": if the original record has
|
|
1048
|
+
no valid metodo (1-4), the restore step would fail and leave the
|
|
1049
|
+
update committed. The CLI must:
|
|
1050
|
+
|
|
1051
|
+
- emit a warning explaining the skip
|
|
1052
|
+
- perform zero ``gestionecoordinate`` calls (no write whatsoever)
|
|
1053
|
+
- exit 0 (the dry-run completed as designed)
|
|
1054
|
+
"""
|
|
1055
|
+
from anncsu.cli import app
|
|
1056
|
+
|
|
1057
|
+
with cli_runner.isolated_filesystem(temp_dir=tmp_path):
|
|
1058
|
+
Path("private_key.pem").write_text(mock_private_key.read_text())
|
|
1059
|
+
with patch(
|
|
1060
|
+
"anncsu.cli.commands.coordinate.ClientAssertionSettings"
|
|
1061
|
+
) as mock_settings:
|
|
1062
|
+
mock_settings.return_value = MagicMock()
|
|
1063
|
+
with patch(
|
|
1064
|
+
"anncsu.cli.commands.coordinate.PDNDAuthManager"
|
|
1065
|
+
) as mock_manager_cls:
|
|
1066
|
+
manager = MagicMock()
|
|
1067
|
+
manager.get_access_token.return_value = "tok"
|
|
1068
|
+
mock_manager_cls.return_value = manager
|
|
1069
|
+
with patch(
|
|
1070
|
+
"anncsu.cli.commands.coordinate.AnncsuConsultazione"
|
|
1071
|
+
) as mock_consult_cls:
|
|
1072
|
+
consult_sdk = MagicMock()
|
|
1073
|
+
resp = MagicMock()
|
|
1074
|
+
d = MagicMock()
|
|
1075
|
+
d.prognazacc = "5256880"
|
|
1076
|
+
d.prognaz = "907156"
|
|
1077
|
+
d.dug = "VIA"
|
|
1078
|
+
d.denomuff = "ROMA"
|
|
1079
|
+
d.civico = "1"
|
|
1080
|
+
d.coord_x = None
|
|
1081
|
+
d.coord_y = None
|
|
1082
|
+
d.quota = None
|
|
1083
|
+
d.metodo = None
|
|
1084
|
+
resp.data = [d]
|
|
1085
|
+
consult_sdk.queryparam.prognazacc_get_query_param.return_value = resp
|
|
1086
|
+
mock_consult_cls.return_value = consult_sdk
|
|
1087
|
+
with patch(
|
|
1088
|
+
"anncsu.cli.commands.coordinate.AnncsuCoordinate"
|
|
1089
|
+
) as mock_coord_cls:
|
|
1090
|
+
coord_sdk = MagicMock()
|
|
1091
|
+
mock_coord_cls.return_value = coord_sdk
|
|
1092
|
+
|
|
1093
|
+
result = cli_runner.invoke(
|
|
1094
|
+
app,
|
|
1095
|
+
[
|
|
1096
|
+
"coordinate",
|
|
1097
|
+
"dry-run",
|
|
1098
|
+
"--prognazacc",
|
|
1099
|
+
"5256880",
|
|
1100
|
+
],
|
|
1101
|
+
)
|
|
1102
|
+
|
|
1103
|
+
assert result.exit_code == 0, result.output
|
|
1104
|
+
# The whole point: no API write was attempted
|
|
1105
|
+
assert coord_sdk.json_post.gestionecoordinate.call_count == 0
|
|
1106
|
+
# User must be informed why we did nothing
|
|
1107
|
+
assert "skip" in result.output.lower() or "metodo" in result.output.lower()
|
|
1108
|
+
|
|
1109
|
+
def test_dry_run_skip_emits_json_output(
|
|
1110
|
+
self, cli_runner: CliRunner, tmp_path: Path, mock_private_key: Path
|
|
1111
|
+
) -> None:
|
|
1112
|
+
"""``--json`` flag during a skip must produce a structured payload
|
|
1113
|
+
with ``skipped: true`` and a machine-readable ``skip_reason``."""
|
|
1114
|
+
import json as json_lib
|
|
1115
|
+
|
|
1116
|
+
from anncsu.cli import app
|
|
1117
|
+
|
|
1118
|
+
with cli_runner.isolated_filesystem(temp_dir=tmp_path):
|
|
1119
|
+
Path("private_key.pem").write_text(mock_private_key.read_text())
|
|
1120
|
+
with patch(
|
|
1121
|
+
"anncsu.cli.commands.coordinate.ClientAssertionSettings"
|
|
1122
|
+
) as mock_settings:
|
|
1123
|
+
mock_settings.return_value = MagicMock()
|
|
1124
|
+
with patch(
|
|
1125
|
+
"anncsu.cli.commands.coordinate.PDNDAuthManager"
|
|
1126
|
+
) as mock_manager_cls:
|
|
1127
|
+
manager = MagicMock()
|
|
1128
|
+
manager.get_access_token.return_value = "tok"
|
|
1129
|
+
mock_manager_cls.return_value = manager
|
|
1130
|
+
with patch(
|
|
1131
|
+
"anncsu.cli.commands.coordinate.AnncsuConsultazione"
|
|
1132
|
+
) as mock_consult_cls:
|
|
1133
|
+
consult_sdk = MagicMock()
|
|
1134
|
+
resp = MagicMock()
|
|
1135
|
+
d = MagicMock()
|
|
1136
|
+
d.prognazacc = "5256880"
|
|
1137
|
+
d.prognaz = "907156"
|
|
1138
|
+
d.dug = "VIA"
|
|
1139
|
+
d.denomuff = "ROMA"
|
|
1140
|
+
d.civico = "1"
|
|
1141
|
+
d.coord_x = "12.0"
|
|
1142
|
+
d.coord_y = "42.0"
|
|
1143
|
+
d.quota = None
|
|
1144
|
+
d.metodo = "" # empty string also non-restorable
|
|
1145
|
+
resp.data = [d]
|
|
1146
|
+
consult_sdk.queryparam.prognazacc_get_query_param.return_value = resp
|
|
1147
|
+
mock_consult_cls.return_value = consult_sdk
|
|
1148
|
+
with patch(
|
|
1149
|
+
"anncsu.cli.commands.coordinate.AnncsuCoordinate"
|
|
1150
|
+
) as mock_coord_cls:
|
|
1151
|
+
coord_sdk = MagicMock()
|
|
1152
|
+
mock_coord_cls.return_value = coord_sdk
|
|
1153
|
+
|
|
1154
|
+
result = cli_runner.invoke(
|
|
1155
|
+
app,
|
|
1156
|
+
[
|
|
1157
|
+
"coordinate",
|
|
1158
|
+
"dry-run",
|
|
1159
|
+
"--prognazacc",
|
|
1160
|
+
"5256880",
|
|
1161
|
+
"--json",
|
|
1162
|
+
],
|
|
1163
|
+
)
|
|
1164
|
+
|
|
1165
|
+
assert result.exit_code == 0, result.output
|
|
1166
|
+
assert coord_sdk.json_post.gestionecoordinate.call_count == 0
|
|
1167
|
+
payload = json_lib.loads(result.output)
|
|
1168
|
+
assert payload.get("skipped") is True
|
|
1169
|
+
assert payload.get("skip_reason") == "original_metodo_null_or_invalid", payload
|
|
1170
|
+
|
|
1171
|
+
def test_dry_run_skips_when_original_metodo_out_of_range(
|
|
1172
|
+
self, cli_runner: CliRunner, tmp_path: Path, mock_private_key: Path
|
|
1173
|
+
) -> None:
|
|
1174
|
+
"""metodo values outside {"1","2","3","4"} are non-restorable."""
|
|
1175
|
+
from anncsu.cli import app
|
|
1176
|
+
|
|
1177
|
+
with cli_runner.isolated_filesystem(temp_dir=tmp_path):
|
|
1178
|
+
Path("private_key.pem").write_text(mock_private_key.read_text())
|
|
1179
|
+
with patch(
|
|
1180
|
+
"anncsu.cli.commands.coordinate.ClientAssertionSettings"
|
|
1181
|
+
) as mock_settings:
|
|
1182
|
+
mock_settings.return_value = MagicMock()
|
|
1183
|
+
with patch(
|
|
1184
|
+
"anncsu.cli.commands.coordinate.PDNDAuthManager"
|
|
1185
|
+
) as mock_manager_cls:
|
|
1186
|
+
manager = MagicMock()
|
|
1187
|
+
manager.get_access_token.return_value = "tok"
|
|
1188
|
+
mock_manager_cls.return_value = manager
|
|
1189
|
+
with patch(
|
|
1190
|
+
"anncsu.cli.commands.coordinate.AnncsuConsultazione"
|
|
1191
|
+
) as mock_consult_cls:
|
|
1192
|
+
consult_sdk = MagicMock()
|
|
1193
|
+
resp = MagicMock()
|
|
1194
|
+
d = MagicMock()
|
|
1195
|
+
d.prognazacc = "5256880"
|
|
1196
|
+
d.prognaz = "907156"
|
|
1197
|
+
d.dug = "VIA"
|
|
1198
|
+
d.denomuff = "ROMA"
|
|
1199
|
+
d.civico = "1"
|
|
1200
|
+
d.coord_x = "12.0"
|
|
1201
|
+
d.coord_y = "42.0"
|
|
1202
|
+
d.quota = None
|
|
1203
|
+
d.metodo = "5"
|
|
1204
|
+
resp.data = [d]
|
|
1205
|
+
consult_sdk.queryparam.prognazacc_get_query_param.return_value = resp
|
|
1206
|
+
mock_consult_cls.return_value = consult_sdk
|
|
1207
|
+
with patch(
|
|
1208
|
+
"anncsu.cli.commands.coordinate.AnncsuCoordinate"
|
|
1209
|
+
) as mock_coord_cls:
|
|
1210
|
+
coord_sdk = MagicMock()
|
|
1211
|
+
mock_coord_cls.return_value = coord_sdk
|
|
1212
|
+
|
|
1213
|
+
result = cli_runner.invoke(
|
|
1214
|
+
app,
|
|
1215
|
+
[
|
|
1216
|
+
"coordinate",
|
|
1217
|
+
"dry-run",
|
|
1218
|
+
"--prognazacc",
|
|
1219
|
+
"5256880",
|
|
1220
|
+
],
|
|
1221
|
+
)
|
|
1222
|
+
|
|
1223
|
+
assert result.exit_code == 0, result.output
|
|
1224
|
+
assert coord_sdk.json_post.gestionecoordinate.call_count == 0
|
|
1063
1225
|
|
|
1064
1226
|
def test_dry_run_with_prognazacc_skips_search(
|
|
1065
1227
|
self, cli_runner: CliRunner, tmp_path: Path, mock_private_key: Path
|