anncsu-sdk 0.0.10.dev2__tar.gz → 0.0.10.dev4__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.10.dev2 → anncsu_sdk-0.0.10.dev4}/PKG-INFO +1 -1
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/CLI.md +44 -16
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/VALIDATION.md +2 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/sdk-odonimi.md +29 -1
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/sdk-pa.md +22 -2
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/cli/commands/odonimo.py +48 -3
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/cli/commands/pa.py +94 -25
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/odonimi/__init__.py +6 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/odonimi/errors/odonimo_validation.py +60 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/odonimi/models/validated.py +70 -7
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/cli/test_odonimo.py +292 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/cli/test_pa.py +72 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/odonimi/test_odonimo_validation.py +180 -3
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/.devcontainer/README.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/.devcontainer/devcontainer.json +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/.devcontainer/setup.sh +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/.gitattributes +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/.github/workflows/README.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/.github/workflows/ci.yml +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/.github/workflows/publish.yml +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/.gitignore +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/.pre-commit-config.yaml +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/.python-version +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/.speakeasy/gen.lock +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/.speakeasy/gen.yaml +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/.speakeasy/out.accessi.openapi.yaml +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/.speakeasy/out.coordinate.openapi.yaml +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/.speakeasy/out.odonimi.openapi.yaml +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/.speakeasy/out.openapi.yaml +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/.speakeasy/workflow.lock +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/.speakeasy/workflow.yaml +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/.vscode/settings.json +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/CONTRIBUTING.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/LICENSE +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/README.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/USAGE.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/SECURITY.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessigetpathparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessigetpathparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessigetpathparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessigetpathparamnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessigetpathparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessigetqueryparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessigetqueryparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessigetqueryparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessigetqueryparamnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessigetqueryparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessipostbadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessipostinternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessipostmethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessipostnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessipostunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessiproggetpathparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessiproggetpathparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessiproggetpathparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessiproggetpathparamnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessiproggetpathparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessiproggetqueryparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessiproggetqueryparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessiproggetqueryparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessiproggetqueryparamnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessiproggetqueryparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessiprogpostbadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessiprogpostinternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessiprogpostmethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessiprogpostnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessiprogpostunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimigetpathparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimigetpathparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimigetpathparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimigetpathparamnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimigetpathparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimigetqueryparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimigetqueryparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimigetqueryparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimigetqueryparamnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimigetqueryparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimipostbadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimipostinternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimipostmethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimipostnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimipostunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimiproggetpathparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimiproggetpathparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimiproggetpathparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimiproggetpathparamnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimiproggetpathparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimiproggetqueryparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimiproggetqueryparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimiproggetqueryparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimiproggetqueryparamnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimiproggetqueryparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimiprogpostbadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimiprogpostinternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimiprogpostmethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimiprogpostnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimiprogpostunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/esisteaccessogetpathparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/esisteaccessogetpathparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/esisteaccessogetpathparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/esisteaccessogetpathparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/esisteaccessogetqueryparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/esisteaccessogetqueryparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/esisteaccessogetqueryparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/esisteaccessogetqueryparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/esisteaccessopostbadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/esisteaccessopostinternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/esisteaccessopostmethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/esisteaccessopostunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/esisteodonimogetpathparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/esisteodonimogetpathparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/esisteodonimogetpathparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/esisteodonimogetpathparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/esisteodonimogetqueryparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/esisteodonimogetqueryparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/esisteodonimogetqueryparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/esisteodonimogetqueryparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/esisteodonimopostbadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/esisteodonimopostinternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/esisteodonimopostmethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/esisteodonimopostunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazaccgetpathparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazaccgetpathparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazaccgetpathparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazaccgetpathparamnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazaccgetpathparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazaccgetqueryparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazaccgetqueryparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazaccgetqueryparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazaccgetqueryparamnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazaccgetqueryparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazaccpostbadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazaccpostinternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazaccpostmethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazaccpostnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazaccpostunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazareagetpathparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazareagetpathparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazareagetpathparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazareagetpathparamnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazareagetpathparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazareagetqueryparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazareagetqueryparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazareagetqueryparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazareagetqueryparamnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazareagetqueryparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazareapostbadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazareapostinternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazareapostmethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazareapostnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazareapostunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/errors/serviceunavailableerror.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoaccessigetpathparamdata.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoaccessigetpathparamrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoaccessigetpathparamresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoaccessigetqueryparamdata.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoaccessigetqueryparamrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoaccessigetqueryparamresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoaccessipostdata.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoaccessipostrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoaccessipostresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoaccessiproggetpathparamdata.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoaccessiproggetpathparamrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoaccessiproggetpathparamresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoaccessiproggetqueryparamdata.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoaccessiproggetqueryparamrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoaccessiproggetqueryparamresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoaccessiprogpostdata.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoaccessiprogpostrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoaccessiprogpostresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoodonimigetpathparamdata.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoodonimigetpathparamrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoodonimigetpathparamresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoodonimigetqueryparamdata.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoodonimigetqueryparamrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoodonimigetqueryparamresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoodonimipostdata.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoodonimipostrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoodonimipostresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoodonimiproggetpathparamdata.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoodonimiproggetpathparamrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoodonimiproggetpathparamresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoodonimiproggetqueryparamdata.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoodonimiproggetqueryparamrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoodonimiproggetqueryparamresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoodonimiprogpostdata.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoodonimiprogpostrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoodonimiprogpostresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/esisteaccessogetpathparamrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/esisteaccessogetpathparamresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/esisteaccessogetqueryparamrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/esisteaccessogetqueryparamresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/esisteaccessopostrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/esisteaccessopostresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/esisteodonimogetpathparamrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/esisteodonimogetpathparamresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/esisteodonimogetqueryparamrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/esisteodonimogetqueryparamresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/esisteodonimopostrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/esisteodonimopostresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/prognazaccgetpathparamdata.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/prognazaccgetpathparamrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/prognazaccgetpathparamresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/prognazaccgetqueryparamdata.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/prognazaccgetqueryparamrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/prognazaccgetqueryparamresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/prognazaccpostdata.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/prognazaccpostrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/prognazaccpostresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/prognazareagetpathparamdata.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/prognazareagetpathparamrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/prognazareagetpathparamresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/prognazareagetqueryparamdata.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/prognazareagetqueryparamrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/prognazareagetqueryparamresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/prognazareapostdata.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/prognazareapostrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/prognazareapostresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/showstatusresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/models/utils/retryconfig.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/sdk-accessi.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/sdk-coordinate.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/sdks/anncsu/README.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/sdks/jsonpost/README.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/sdks/pathparam/README.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/sdks/queryparam/README.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/sdks/status/README.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/docs/speakeasy.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/oas/.spectral.yaml +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/oas/README.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/oas/dev/Specifica API - ANNCSU - Aggiornamento accessi.yaml +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/oas/dev/Specifica API - ANNCSU - Aggiornamento coordinate massivo.yml +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/oas/dev/Specifica API - ANNCSU - Aggiornamento coordinate.yml +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/oas/dev/Specifica API - ANNCSU - Aggiornamento odonimi.yaml +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/oas/dev/Specifica API - ANNCSU /342/200/223 Consultazione per le PA.yaml" +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/oas/prod/Specifica API - ANNCSU /342/200/223 Consultazione per le PA.yaml" +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/pylintrc +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/pyproject.toml +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/scripts/create_client_assertion.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/scripts/post_speakeasy_generation.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/scripts/publish.sh +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/accessi/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/accessi/_version.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/accessi/accessi.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/accessi/errors/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/accessi/errors/accesso_validation.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/accessi/errors/anncsuerror.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/accessi/errors/apierror.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/accessi/errors/no_response_error.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/accessi/errors/responsevalidationerror.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/accessi/errors/rispostaerrore.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/accessi/errors/show_statusop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/accessi/models/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/accessi/models/richiestaoperazione.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/accessi/models/rispostaoperazione.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/accessi/models/security.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/accessi/models/show_statusop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/accessi/models/validated.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/accessi/py.typed +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/accessi/sdk.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/accessi/sdkconfiguration.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/accessi/status.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/cli/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/cli/app.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/cli/commands/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/cli/commands/accesso.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/cli/commands/assertion.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/cli/commands/auth.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/cli/commands/bulk.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/cli/commands/config.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/cli/commands/constants.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/cli/commands/coordinate.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/cli/models.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/auth.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/basesdk.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/config.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/errors/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/errors/apierror.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/errors/audience_mismatch.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/errors/base.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/errors/digest_serialization_mismatch.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/errors/no_response_error.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/errors/responsevalidationerror.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/hooks/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/hooks/modi_hook.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/hooks/registration.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/hooks/sdkhooks.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/hooks/token_validation.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/hooks/types.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/httpclient.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/modi.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/pdnd_assertion.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/pdnd_token.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/sdk/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/sdk/basesdk.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/sdk/httpclient.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/sdk/protocols.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/sdk/types/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/sdk/types/basemodel.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/sdk/utils/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/sdk/utils/annotations.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/sdk/utils/datetimes.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/sdk/utils/dynamic_imports.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/sdk/utils/enums.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/sdk/utils/eventstreaming.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/sdk/utils/forms.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/sdk/utils/headers.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/sdk/utils/logger.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/sdk/utils/metadata.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/sdk/utils/queryparams.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/sdk/utils/requestbodies.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/sdk/utils/retries.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/sdk/utils/security.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/sdk/utils/serializers.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/sdk/utils/unmarshal_json_response.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/sdk/utils/url.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/sdk/utils/values.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/sdkconfiguration.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/security.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/session.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/types/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/utils/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/validation/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/validation/examples.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/validation/response_validator.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/validation/validators.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/_version.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/bulk/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/bulk/db.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/bulk/dryrun.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/bulk/executor.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/bulk/importer.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/bulk/reporter.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/errors/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/errors/anncsuerror.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/errors/apierror.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/errors/coordinate_validation.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/errors/no_response_error.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/errors/responsevalidationerror.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/errors/risposta_validation.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/errors/rispostaerrore.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/errors/show_statusop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/jsonpost.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/models/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/models/richiestaoperazione.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/models/rispostaoperazione.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/models/security.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/models/show_statusop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/models/validated.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/py.typed +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/sdk.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/sdkconfiguration.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/status.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/odonimi/_version.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/odonimi/errors/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/odonimi/errors/anncsuerror.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/odonimi/errors/apierror.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/odonimi/errors/no_response_error.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/odonimi/errors/responsevalidationerror.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/odonimi/errors/rispostaerrore.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/odonimi/errors/show_statusop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/odonimi/models/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/odonimi/models/autprefettura.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/odonimi/models/provvedimento.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/odonimi/models/richiestaoperazione.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/odonimi/models/rispostaoperazione.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/odonimi/models/security.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/odonimi/models/show_statusop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/odonimi/odonimi.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/odonimi/py.typed +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/odonimi/sdk.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/odonimi/sdkconfiguration.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/odonimi/status.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/_hooks/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/_hooks/registration.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/_hooks/sdkhooks.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/_hooks/types.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/_version.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/anncsuerror.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/apierror.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/elencoaccessigetpathparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/elencoaccessigetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/elencoaccessipostop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/elencoaccessiproggetpathparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/elencoaccessiproggetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/elencoaccessiprogpostop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/elencoodonimigetpathparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/elencoodonimigetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/elencoodonimipostop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/elencoodonimiproggetpathparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/elencoodonimiproggetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/elencoodonimiprogpostop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/esisteaccessogetpathparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/esisteaccessogetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/esisteaccessopostop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/esisteodonimogetpathparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/esisteodonimogetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/esisteodonimopostop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/no_response_error.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/prognazaccgetpathparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/prognazaccgetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/prognazaccpostop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/prognazareagetpathparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/prognazareagetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/prognazareapostop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/responsevalidationerror.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/show_statusop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/jsonpost.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/models/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/models/elencoaccessigetpathparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/models/elencoaccessigetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/models/elencoaccessipostop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/models/elencoaccessiproggetpathparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/models/elencoaccessiproggetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/models/elencoaccessiprogpostop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/models/elencoodonimigetpathparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/models/elencoodonimigetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/models/elencoodonimipostop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/models/elencoodonimiproggetpathparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/models/elencoodonimiproggetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/models/elencoodonimiprogpostop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/models/esisteaccessogetpathparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/models/esisteaccessogetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/models/esisteaccessopostop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/models/esisteodonimogetpathparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/models/esisteodonimogetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/models/esisteodonimopostop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/models/prognazaccgetpathparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/models/prognazaccgetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/models/prognazaccpostop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/models/prognazareagetpathparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/models/prognazareagetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/models/prognazareapostop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/models/show_statusop.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/pathparam.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/py.typed +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/queryparam.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/sdk.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/sdkconfiguration.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/status.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/README.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/accessi/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/accessi/test_accesso_validation.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/accessi/test_do_request_signature.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/accessi/test_imports.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/cli/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/cli/conftest.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/cli/test_accesso.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/cli/test_assertion.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/cli/test_auth.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/cli/test_config.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/cli/test_coordinate.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/cli/test_coordinate_bulk.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/cli/test_duckdb_batch.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/cli/test_main.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/cli/test_raw_output.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/cli/test_token_endpoint_resolution.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/common/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/common/test_auth_modi_integration.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/common/test_cli_env_override.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/common/test_config.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/common/test_imports.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/common/test_modi.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/common/test_modi_hook.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/common/test_pdnd_assertion.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/common/test_pdnd_auth_manager.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/common/test_pdnd_token.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/common/test_security.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/common/test_security_basemodel.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/common/test_session.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/common/test_token_validation_hook.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/conftest.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/coordinate/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/coordinate/bulk/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/coordinate/bulk/test_db.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/coordinate/bulk/test_dryrun.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/coordinate/bulk/test_executor.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/coordinate/bulk/test_importer.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/coordinate/bulk/test_integration.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/coordinate/bulk/test_reporter.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/coordinate/test_coordinate_validation.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/coordinate/test_imports.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/coordinate/test_risposta_validation.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/coordinate/test_sdk_hooks_integration.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/integration/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/integration/coordinate/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/integration/coordinate/test_jsonpost_async_httpx.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/integration/coordinate/test_jsonpost_httpx.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/integration/coordinate/test_status_async_httpx.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/integration/coordinate/test_status_httpx.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/integration/pa/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/integration/pa/test_jsonpost_async_httpx.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/integration/pa/test_jsonpost_httpx.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/integration/pa/test_pathparam_async_httpx.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/integration/pa/test_pathparam_httpx.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/integration/pa/test_queryparam_async_httpx.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/integration/pa/test_queryparam_httpx.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/integration/pa/test_status_httpx.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/integration/test_sdk_instantiation.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/integration/test_security_in_requests.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/odonimi/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/odonimi/test_imports.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/pa/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/pa/test_imports.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/pa/test_response_field_mapping.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/test_post_speakeasy_generation.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/validation/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/validation/coordinate/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/validation/coordinate/test_coordinate_operations_validation.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/validation/coordinate/test_model_factories.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/validation/coordinate/test_validators.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/validation/coordinate/test_validators_property.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/validation/pa/ADVANCED_TESTING.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/validation/pa/README.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/validation/pa/README_COMPREHENSIVE_TESTS.md +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/validation/pa/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/validation/pa/test_all_operations_validation.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/validation/pa/test_model_factories.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/validation/pa/test_model_factories_comprehensive.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/validation/pa/test_validators.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/validation/pa/test_validators_property.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/tests/validation/test_response_validator.py +0 -0
- {anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/uv.lock +0 -0
|
@@ -1789,15 +1789,18 @@ anncsu pa accesso --prognazacc 28586543 --raw
|
|
|
1789
1789
|
|
|
1790
1790
|
#### `anncsu pa accessi`
|
|
1791
1791
|
|
|
1792
|
-
List access points (civici) for a street.
|
|
1792
|
+
List access points (civici) for a street. Resolve the street either by `--denom` (municipality code + base64 partial name) **or** directly by `--prognaz`, then list its access points.
|
|
1793
1793
|
|
|
1794
1794
|
```bash
|
|
1795
|
-
# List
|
|
1795
|
+
# List access points by street name (base64)
|
|
1796
1796
|
anncsu pa accessi --codcom I501 --denom "VklBIFJPTUE="
|
|
1797
1797
|
|
|
1798
1798
|
# Filter by partial civic number
|
|
1799
1799
|
anncsu pa accessi --codcom I501 --denom "VklBIFJPTUE=" --accparz "1"
|
|
1800
1800
|
|
|
1801
|
+
# Target a specific odonimo directly by its national progressive
|
|
1802
|
+
anncsu pa accessi --codcom H501 --prognaz 920585 --accparz 95
|
|
1803
|
+
|
|
1801
1804
|
# Production with JSON output
|
|
1802
1805
|
anncsu pa accessi --codcom I501 --denom "VklBIFJPTUE=" --production --json
|
|
1803
1806
|
```
|
|
@@ -1807,7 +1810,8 @@ anncsu pa accessi --codcom I501 --denom "VklBIFJPTUE=" --production --json
|
|
|
1807
1810
|
| Option | Required | Description |
|
|
1808
1811
|
|--------|----------|-------------|
|
|
1809
1812
|
| `--codcom`, `-c` | Yes | Codice Belfiore del comune |
|
|
1810
|
-
| `--denom`, `-d` |
|
|
1813
|
+
| `--denom`, `-d` | One of denom/prognaz | Denominazione parziale dell'odonimo - base64 encoded |
|
|
1814
|
+
| `--prognaz`, `-p` | One of denom/prognaz | Progressivo nazionale dell'odonimo (targets it directly) |
|
|
1811
1815
|
| `--accparz`, `-a` | No | Valore parziale del civico (default: "1") |
|
|
1812
1816
|
| `--validation/--production` | No | Environment (default: validation) |
|
|
1813
1817
|
| `--token-endpoint`, `-e` | No | PDND token endpoint URL |
|
|
@@ -1816,6 +1820,10 @@ anncsu pa accessi --codcom I501 --denom "VklBIFJPTUE=" --production --json
|
|
|
1816
1820
|
| `--json` | No | Output as JSON |
|
|
1817
1821
|
| `--raw` | No | Print raw API responses to stderr (odonimo + accessi) |
|
|
1818
1822
|
|
|
1823
|
+
> **`--denom` is a substring search and can be ambiguous.** E.g. `--denom` for "taranto" matches both `VIA NINO TARANTO` and `VIA TARANTO`. When more than one odonimo matches, the command does **not** silently pick the first: it lists every candidate with its `--prognaz` and exits, so you can re-run targeting the exact one. `--denom` and `--prognaz` are mutually exclusive; provide exactly one.
|
|
1824
|
+
|
|
1825
|
+
> **`--accparz` is a substring match on the civico** (not a prefix): `--accparz 9` returns 9, 19, 29, … 91, 97. To list *all* accessi you currently have to union several `accparz` values (e.g. `0`–`9`) and de-duplicate by `prognazacc` — the API has no "list all" wildcard. The esponente comes back in the `Esp.` column: civico 95 may yield three rows (95, 95/A, 95/D), each a distinct `prognazacc`.
|
|
1826
|
+
|
|
1819
1827
|
**Output columns:** Prog. Naz. Acc., Civico, Esp., Specif., Metrico, Coord X, Coord Y, Quota, Metodo
|
|
1820
1828
|
|
|
1821
1829
|
**JSON output example:**
|
|
@@ -2184,17 +2192,17 @@ anncsu odonimo insert --codcom A062 --dug VIA \
|
|
|
2184
2192
|
Options:
|
|
2185
2193
|
|
|
2186
2194
|
- `--codcom, -c` - Codice comune (Belfiore code, e.g. `A062`) **[required]**
|
|
2187
|
-
- `--dug` - DUG (e.g. `VIA`, `PIAZZA`, `STRADA
|
|
2188
|
-
- `--denom-delibera` - Denominazione delibera (uppercase applied server-side)
|
|
2189
|
-
- `--denom-in-lingua-1` / `--denom-in-lingua-2` - Odonimo in lingua (per comuni bi/tri-lingua)
|
|
2190
|
-
- `--denom-localita` - Denominazione località (uppercase applied)
|
|
2191
|
-
- `--codice-comunale` - Codifica comunale dell'odonimo (no uppercase)
|
|
2192
|
-
- `--provv-data` - Data del provvedimento (formato `dd/MM/yyyy`)
|
|
2195
|
+
- `--dug` - DUG (e.g. `VIA`, `PIAZZA`, `STRADA`; max 30 char) **[required for I/R]**
|
|
2196
|
+
- `--denom-delibera` - Denominazione ufficiale da delibera, **senza DUG** (e.g. `DELLE ORCHIDEE` for "VIA DELLE ORCHIDEE"; max 120 char, uppercase applied server-side)
|
|
2197
|
+
- `--denom-in-lingua-1` / `--denom-in-lingua-2` - Odonimo in lingua, **DUG inclusa** (per comuni bi/tri-lingua; max 150 char, uppercase applied)
|
|
2198
|
+
- `--denom-localita` - Denominazione località (max 151 char — OAS quirk; uppercase applied)
|
|
2199
|
+
- `--codice-comunale` - Codifica comunale dell'odonimo (max 30 char, no uppercase)
|
|
2200
|
+
- `--provv-data` - Data del provvedimento (valid calendar date, formato `dd/MM/yyyy`)
|
|
2193
2201
|
- `--provv-protocollo` - Protocollo del provvedimento (max 70 char, no uppercase)
|
|
2194
|
-
- `--provv-flag-delibera` - Flag delibera
|
|
2195
|
-
- `--prefettura-data` - Data prefettura (required if `--prefettura-protocollo`)
|
|
2196
|
-
- `--prefettura-protocollo` - Protocollo prefettura (required if `--prefettura-data`)
|
|
2197
|
-
- `--data-valid-amm` - Data validità amministrativa (
|
|
2202
|
+
- `--provv-flag-delibera` - Flag delibera, **only `0`-`4` accepted**; `0` and `1` make `--provv-data` + `--provv-protocollo` required
|
|
2203
|
+
- `--prefettura-data` - Data prefettura (`dd/MM/yyyy`; required if `--prefettura-protocollo`)
|
|
2204
|
+
- `--prefettura-protocollo` - Protocollo prefettura (max 70 char; required if `--prefettura-data`)
|
|
2205
|
+
- `--data-valid-amm` - Data validità amministrativa (`dd/MM/yyyy`). Must be **≤ today** for every operation (checked client-side); for R it must additionally be ≥ the previous validity date (checked server-side)
|
|
2198
2206
|
- `--token-endpoint, -e` - PDND token endpoint URL
|
|
2199
2207
|
- `--server-url, -s` - API server URL (auto-discovered from voucher if omitted)
|
|
2200
2208
|
- `--validation/--production` - Use validation (UAT) or production environment
|
|
@@ -2203,6 +2211,8 @@ Options:
|
|
|
2203
2211
|
- `--raw` - Print raw API response to stderr
|
|
2204
2212
|
- `--dry-run` - I + S rollback (see `--dry-run` section below)
|
|
2205
2213
|
|
|
2214
|
+
All constraints above (maxLength, flag range, date format, future dates) are validated **client-side before any API call** via `ValidatedOdonimo` — invalid input exits with code 1 and a `Validation error:` message, without consuming PDND tokens. See [sdk-odonimi.md](sdk-odonimi.md#business-rules) for the full rule list.
|
|
2215
|
+
|
|
2206
2216
|
JSON output:
|
|
2207
2217
|
|
|
2208
2218
|
```json
|
|
@@ -2233,10 +2243,22 @@ anncsu odonimo update --codcom A062 \
|
|
|
2233
2243
|
|
|
2234
2244
|
Options:
|
|
2235
2245
|
|
|
2236
|
-
- All `insert` options (
|
|
2237
|
-
- `--prognaz, -p` - Progressivo nazionale dell'odonimo (required unless `--auto-resolve`)
|
|
2246
|
+
- All `insert` options (same fields, constraints and client-side validation — see the `insert` option list above)
|
|
2247
|
+
- `--prognaz, -p` - Progressivo nazionale dell'odonimo (max 10 char; required unless `--auto-resolve`)
|
|
2238
2248
|
- `--auto-resolve` - Resolve `--prognaz` via PA from `--codcom` + `--denom` (see `--auto-resolve` section)
|
|
2239
|
-
- `--denom` - Base64-encoded denomination used with `--auto-resolve`
|
|
2249
|
+
- `--denom` - Base64-encoded denomination used with `--auto-resolve` (lookup only — the **new** denomination goes in `--denom-delibera`)
|
|
2250
|
+
|
|
2251
|
+
Note: `R` is a **replace**, not a partial patch — read the current state first (`anncsu pa odonimo`) and re-pass the values you want to keep.
|
|
2252
|
+
|
|
2253
|
+
Server-side errors (HTTP 400/404/500) are rendered with the structured ANNCSU fields:
|
|
2254
|
+
|
|
2255
|
+
```
|
|
2256
|
+
Errore ANNCSU (codice 23): Errore di validazione: ...
|
|
2257
|
+
```
|
|
2258
|
+
|
|
2259
|
+
When an `R` with `--data-valid-amm` fails server-side, the CLI also prints a hint about the rule it cannot check client-side: *per l'aggiornamento (R), `data_valid_amm` deve essere ≥ della precedente data di validità dell'odonimo*. Non-ANNCSU error bodies (e.g. RFC 7807 from the GovWay gateway) are shown raw.
|
|
2260
|
+
|
|
2261
|
+
> **Known limitation — clearing `codice_comunale`**: `codice_comunale` is the only *nullable* field of the request schema (three states: omitted / value / explicit `null`). The CLI can omit it or set a value, but cannot send an explicit `"codice_comunale": null` — i.e. there is no way to **clear** an existing codifica comunale via `update`. If this becomes a real use case, a dedicated flag (e.g. `--clear-codice-comunale`) is the planned solution. The SDK supports it already: `Richiesta(codice_comunale=None, ...)` with the field explicitly set serializes to `null`.
|
|
2240
2262
|
|
|
2241
2263
|
#### `anncsu odonimo delete`
|
|
2242
2264
|
|
|
@@ -2301,6 +2323,12 @@ Unlike `accesso --dry-run` (which operates on an existing accesso via test+resto
|
|
|
2301
2323
|
|
|
2302
2324
|
**For `update --dry-run`**: `--prognaz` and `--auto-resolve` are ignored (a warning is printed) because the R is always applied to the fake odonimo generated by the preceding I.
|
|
2303
2325
|
|
|
2326
|
+
**Client-side validation in dry-run**: user data is validated via `ValidatedOdonimo` (same rules as the real commands — maxLength, flag range, date format, future dates) before being sent. For `update --dry-run` the user R payload is validated **after** the fake I has been created: on validation error the CLI prints `Validation error (user R):`, attempts an emergency S cleanup of the fake odonimo, and exits 1.
|
|
2327
|
+
|
|
2328
|
+
**Server error rendering in dry-run**: unlike the real commands (which render `Errore ANNCSU (codice N): messaggio` plus the `data_valid_amm` hint), a server rejection inside a dry-run step is captured into that step's result — e.g. `update_op.messaggio = "Update exception: <raw body>"` — so the cycle can continue with the S cleanup. Check `test_op` / `update_op` / `rollback` in the JSON output for the per-step outcome.
|
|
2329
|
+
|
|
2330
|
+
> **Tip — reproducing the `data_valid_amm` server rule safely**: the fake odonimo is created *today*, so its current validity date is the creation date. Running `update --dry-run --data-valid-amm <past date>` makes the R violate the server rule *data_valid_amm ≥ precedente* on the fictitious odonimo — a safe way to capture the real ANNCSU error code and message without touching real data.
|
|
2331
|
+
|
|
2304
2332
|
Examples:
|
|
2305
2333
|
|
|
2306
2334
|
```bash
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
The ANNCSU SDK implements a hybrid validation approach to ensure data quality for both API requests and responses.
|
|
4
4
|
|
|
5
|
+
> **Write operations (odonimi/accessi)**: the business-rule validation for the *aggiornamento* APIs lives in dedicated models — `ValidatedOdonimo` (rules I/R/S, maxLength, flag delibera 0-4, date `dd/MM/yyyy`, `data_valid_amm` non-future) and `ValidatedAccesso`. See [sdk-odonimi.md § Validazione Odonimo](sdk-odonimi.md#validazione-odonimo) for the full rule list and error classes. This document covers the *consultazione* (PA) input/response validation.
|
|
6
|
+
|
|
5
7
|
## Overview
|
|
6
8
|
|
|
7
9
|
### Phase 1: Input Validation (Always Enabled)
|
|
@@ -257,6 +257,28 @@ def is_success(response, tipo_operazione: str) -> bool:
|
|
|
257
257
|
|
|
258
258
|
Una check ingenua `esito == "0"` produce un **false-negative** sulle S che vanno a buon fine — è una causa nota di errori in codice cliente.
|
|
259
259
|
|
|
260
|
+
## Errori HTTP (`RispostaErrore`)
|
|
261
|
+
|
|
262
|
+
I rifiuti del server (HTTP **400** richiesta non valida, **404** odonimo non trovato, **500** errore interno) arrivano come `application/problem+json`, ma **non è RFC 7807**: il contratto ANNCSU definisce uno schema custom con tre campi (`id`, `codice`, `messaggio`). L'SDK li trasforma nell'eccezione `RispostaErrore`:
|
|
263
|
+
|
|
264
|
+
```python
|
|
265
|
+
from anncsu.odonimi.errors import RispostaErrore
|
|
266
|
+
|
|
267
|
+
try:
|
|
268
|
+
response = sdk.anncsu.gestione_anncsu_odonimi_pdnd(richiesta=richiesta)
|
|
269
|
+
except RispostaErrore as e:
|
|
270
|
+
print(e.data.codice) # es. "23" — codice dal catalogo errori ANNCSU
|
|
271
|
+
print(e.data.messaggio) # es. "Errore di validazione: ..."
|
|
272
|
+
# str(e) è il body JSON grezzo della risposta
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
Attenzione a due cose:
|
|
276
|
+
|
|
277
|
+
- `str(e)` (e quindi un log naive `f"errore: {e}"`) mostra il **body grezzo**, non i campi strutturati — usare sempre `e.data.codice` / `e.data.messaggio`.
|
|
278
|
+
- Se il body non è conforme allo schema ANNCSU (es. un RFC 7807 vero emesso dal gateway GovWay, con `type`/`title`/`detail`), `e.data.codice` e `e.data.messaggio` sono `None`: in quel caso l'unica informazione utile è `str(e)`.
|
|
279
|
+
|
|
280
|
+
Caso tipico di 400 su `R`: `data_valid_amm` inferiore alla precedente data di validità dell'odonimo — regola che il client **non può** verificare (richiede il valore storico). La CLI in questo caso mostra `Errore ANNCSU (codice N): messaggio` più una nota che spiega la regola.
|
|
281
|
+
|
|
260
282
|
## Validazione Odonimo
|
|
261
283
|
|
|
262
284
|
L'SDK fornisce un modello `ValidatedOdonimo` con validazione delle business rules ANNCSU. Va sempre usato prima della chiamata API per intercettare errori a livello locale.
|
|
@@ -273,8 +295,11 @@ Le regole sono applicate in ordine in un singolo `@model_validator(mode="after")
|
|
|
273
295
|
6. **Per `S`**: `dug` **vietato** — altrimenti `DugNotAllowedForDeleteError`
|
|
274
296
|
7. Se `provvedimento.flag_delibera ∈ {"0","1"}`: `data` + `protocollo` obbligatori — altrimenti `FlagDeliberaMissingFieldsError`
|
|
275
297
|
8. `aut_prefettura.data_pref` ↔ `protocollo_pref` mutex (entrambi o nessuno) — altrimenti `PrefetturaMutexError`
|
|
298
|
+
9. `provvedimento.flag_delibera`, se valorizzato, deve essere `"0"`..`"4"` (OAS: "valori numerici da 0 a 4") — altrimenti `FlagDeliberaInvalidValueError`
|
|
299
|
+
10. I campi data (`provvedimento.data`, `aut_prefettura.data_pref`, `data_valid_amm`), se valorizzati, devono essere date di calendario valide in formato **`dd/MM/yyyy`** (es. `"10/10/2023"`; rifiutati `"2023-10-10"`, `"31/02/2024"`) — altrimenti `InvalidDateFormatError`
|
|
300
|
+
11. `data_valid_amm` non può essere nel futuro, per **tutte** le operazioni — altrimenti `DataValidAmmInFutureError`. L'OAS dice "minore o uguale della data corrente per inserimento e soppressione. Per aggiornamento **anche** >= della precedente": l'"anche" è additivo, quindi il vincolo ≤ data corrente vale pure per `R`
|
|
276
301
|
|
|
277
|
-
|
|
302
|
+
La metà R-only della regola su `data_valid_amm` (`≥` della precedente) resta **delegata al server**: richiede il valore storico precedente, non disponibile lato client.
|
|
278
303
|
|
|
279
304
|
### Uso del Modello Validato
|
|
280
305
|
|
|
@@ -338,6 +363,9 @@ from anncsu.odonimi.errors.odonimo_validation import (
|
|
|
338
363
|
OdonimoMaxLengthError, # campo eccede maxLength OAS
|
|
339
364
|
FlagDeliberaMissingFieldsError, # flag_delibera 0/1 senza data+protocollo
|
|
340
365
|
PrefetturaMutexError, # data_pref ↔ protocollo_pref mutex
|
|
366
|
+
FlagDeliberaInvalidValueError, # flag_delibera fuori range 0-4
|
|
367
|
+
InvalidDateFormatError, # data non valida o non dd/MM/yyyy
|
|
368
|
+
DataValidAmmInFutureError, # data_valid_amm nel futuro per I/S
|
|
341
369
|
)
|
|
342
370
|
|
|
343
371
|
# Catch specifico
|
|
@@ -178,16 +178,36 @@ if result.res == "OK":
|
|
|
178
178
|
else:
|
|
179
179
|
print(f"Odonimo non trovato")
|
|
180
180
|
|
|
181
|
-
# 5. Elenco accessi per l'odonimo
|
|
181
|
+
# 5. Elenco accessi per l'odonimo.
|
|
182
|
+
# NB: ``accparz`` è OBBLIGATORIO (match per sottostringa sul civico) — non
|
|
183
|
+
# esiste un valore "tutti". Vedi la nota sotto.
|
|
182
184
|
accessi = sdk.queryparam.elenco_accessi_get_query_param(
|
|
183
185
|
codcom=codcom,
|
|
184
186
|
denom=denom,
|
|
187
|
+
accparz="1", # es. tutti i civici che contengono "1"
|
|
185
188
|
)
|
|
186
189
|
|
|
187
190
|
for accesso in accessi.data:
|
|
188
|
-
|
|
191
|
+
# L'esponente torna nel campo dedicato ``esp`` (civico e esponente sono
|
|
192
|
+
# separati): es. civico="95", esp="A" → 95/A.
|
|
193
|
+
print(
|
|
194
|
+
f"Civico: {accesso.civico}{('/' + accesso.esp) if accesso.esp else ''}, "
|
|
195
|
+
f"Coordinate: ({accesso.coord_x}, {accesso.coord_y})"
|
|
196
|
+
)
|
|
189
197
|
```
|
|
190
198
|
|
|
199
|
+
> **`accparz` è obbligatorio ed è un match per sottostringa** (non prefisso): `accparz="9"`
|
|
200
|
+
> ritorna `9, 19, 29, …, 91, 97` (tutti i civici che *contengono* "9"). **Non esiste un
|
|
201
|
+
> wildcard "elenca tutti"**: per ottenere l'elenco completo bisogna unire più valori di
|
|
202
|
+
> `accparz` (es. `"0"`–`"9"`) e deduplicare per `prognazacc`. Lo stesso vale per
|
|
203
|
+
> `elenco_accessi_prog` (per `prognaz`).
|
|
204
|
+
>
|
|
205
|
+
> **Esponente / specificità**: un accesso è identificato da `civico` (numero) + `esp`
|
|
206
|
+
> (esponente) + `specif`. Più accessi possono condividere lo stesso `civico` con `esp`
|
|
207
|
+
> diversi → `prognazacc` distinti, **tutti** restituiti dalla stessa `accparz`. Es. su
|
|
208
|
+
> VIA TARANTO (H501, prognaz `920585`) il civico `95` ritorna tre accessi: `95`, `95/A`,
|
|
209
|
+
> `95/D`.
|
|
210
|
+
|
|
191
211
|
## Gestione Errori
|
|
192
212
|
|
|
193
213
|
```python
|
|
@@ -48,6 +48,7 @@ from anncsu.common.modi import AuditContext, ModIConfig
|
|
|
48
48
|
from anncsu.common.security import Security as PASecurity
|
|
49
49
|
from anncsu.common.session import get_config_dir
|
|
50
50
|
from anncsu.odonimi import AnncsuOdonimi
|
|
51
|
+
from anncsu.odonimi.errors import RispostaErrore as OdonimiRispostaErrore
|
|
51
52
|
from anncsu.odonimi.models import Security
|
|
52
53
|
from anncsu.odonimi.models.richiestaoperazione import (
|
|
53
54
|
AutPrefettura,
|
|
@@ -1364,6 +1365,36 @@ def _build_richiesta(
|
|
|
1364
1365
|
)
|
|
1365
1366
|
|
|
1366
1367
|
|
|
1368
|
+
def _render_server_error(
|
|
1369
|
+
e: OdonimiRispostaErrore,
|
|
1370
|
+
*,
|
|
1371
|
+
tipo_operazione: str,
|
|
1372
|
+
richiesta: Richiesta,
|
|
1373
|
+
) -> None:
|
|
1374
|
+
"""Render an ANNCSU ``RispostaErrore`` (HTTP 400/404/500) readably.
|
|
1375
|
+
|
|
1376
|
+
The contract's problem+json carries structured ``codice`` +
|
|
1377
|
+
``messaggio``; bodies without them (e.g. RFC 7807 from the gateway)
|
|
1378
|
+
fall back to the raw body. For R with ``data_valid_amm`` set, the
|
|
1379
|
+
server-side rule that the client cannot check is surfaced as a hint.
|
|
1380
|
+
"""
|
|
1381
|
+
codice = getattr(e.data, "codice", None)
|
|
1382
|
+
messaggio = getattr(e.data, "messaggio", None)
|
|
1383
|
+
if codice or messaggio:
|
|
1384
|
+
error_console.print(
|
|
1385
|
+
f"[red]Errore ANNCSU[/red] (codice {codice or '—'}): {messaggio or '—'}"
|
|
1386
|
+
)
|
|
1387
|
+
else:
|
|
1388
|
+
error_console.print(f"[red]Error:[/red] {e}")
|
|
1389
|
+
|
|
1390
|
+
if tipo_operazione == "R" and richiesta.data_valid_amm:
|
|
1391
|
+
error_console.print(
|
|
1392
|
+
"[yellow]Nota:[/yellow] per l'aggiornamento (R), 'data_valid_amm' "
|
|
1393
|
+
"deve essere maggiore o uguale alla precedente data di validità "
|
|
1394
|
+
"dell'odonimo (regola verificata dal server ANNCSU)."
|
|
1395
|
+
)
|
|
1396
|
+
|
|
1397
|
+
|
|
1367
1398
|
def _execute_operation(
|
|
1368
1399
|
*,
|
|
1369
1400
|
tipo_operazione: str,
|
|
@@ -1395,6 +1426,9 @@ def _execute_operation(
|
|
|
1395
1426
|
|
|
1396
1427
|
try:
|
|
1397
1428
|
response = sdk.anncsu.gestione_anncsu_odonimi_pdnd(richiesta=richiesta)
|
|
1429
|
+
except OdonimiRispostaErrore as e:
|
|
1430
|
+
_render_server_error(e, tipo_operazione=tipo_operazione, richiesta=richiesta)
|
|
1431
|
+
raise typer.Exit(1) from None
|
|
1398
1432
|
except Exception as e:
|
|
1399
1433
|
error_console.print(f"[red]Error:[/red] API call failed: {e}")
|
|
1400
1434
|
raise typer.Exit(1) from None
|
|
@@ -1532,7 +1566,10 @@ def insert(
|
|
|
1532
1566
|
str | None,
|
|
1533
1567
|
typer.Option(
|
|
1534
1568
|
"--data-valid-amm",
|
|
1535
|
-
help=
|
|
1569
|
+
help=(
|
|
1570
|
+
"Data di validità amministrativa (dd/MM/yyyy). Non può "
|
|
1571
|
+
"essere nel futuro (regola ANNCSU per I)."
|
|
1572
|
+
),
|
|
1536
1573
|
),
|
|
1537
1574
|
] = None,
|
|
1538
1575
|
token_endpoint: Annotated[
|
|
@@ -1743,7 +1780,12 @@ def update(
|
|
|
1743
1780
|
str | None,
|
|
1744
1781
|
typer.Option(
|
|
1745
1782
|
"--data-valid-amm",
|
|
1746
|
-
help=
|
|
1783
|
+
help=(
|
|
1784
|
+
"Data di validità amministrativa (dd/MM/yyyy). Non può "
|
|
1785
|
+
"essere nel futuro; inoltre per l'odonimo esistente deve "
|
|
1786
|
+
"essere >= della precedente data di validità (quest'ultima "
|
|
1787
|
+
"regola è verificata dal server ANNCSU)."
|
|
1788
|
+
),
|
|
1747
1789
|
),
|
|
1748
1790
|
] = None,
|
|
1749
1791
|
token_endpoint: Annotated[
|
|
@@ -1916,7 +1958,10 @@ def delete(
|
|
|
1916
1958
|
str | None,
|
|
1917
1959
|
typer.Option(
|
|
1918
1960
|
"--data-valid-amm",
|
|
1919
|
-
help=
|
|
1961
|
+
help=(
|
|
1962
|
+
"Data di fine validità (dd/MM/yyyy). Default: data "
|
|
1963
|
+
"corrente. Non può essere nel futuro (regola ANNCSU per S)."
|
|
1964
|
+
),
|
|
1920
1965
|
),
|
|
1921
1966
|
] = None,
|
|
1922
1967
|
token_endpoint: Annotated[
|
|
@@ -360,13 +360,28 @@ def accessi(
|
|
|
360
360
|
),
|
|
361
361
|
],
|
|
362
362
|
denom: Annotated[
|
|
363
|
-
str,
|
|
363
|
+
str | None,
|
|
364
364
|
typer.Option(
|
|
365
365
|
"--denom",
|
|
366
366
|
"-d",
|
|
367
|
-
help=
|
|
367
|
+
help=(
|
|
368
|
+
"Denominazione anche parziale dell'odonimo - base64 encoded. "
|
|
369
|
+
"Mutually exclusive with --prognaz."
|
|
370
|
+
),
|
|
368
371
|
),
|
|
369
|
-
],
|
|
372
|
+
] = None,
|
|
373
|
+
prognaz: Annotated[
|
|
374
|
+
str | None,
|
|
375
|
+
typer.Option(
|
|
376
|
+
"--prognaz",
|
|
377
|
+
"-p",
|
|
378
|
+
help=(
|
|
379
|
+
"Progressivo nazionale dell'odonimo. Use it to target a "
|
|
380
|
+
"specific odonimo directly (skips the --denom search and its "
|
|
381
|
+
"ambiguity). Mutually exclusive with --denom."
|
|
382
|
+
),
|
|
383
|
+
),
|
|
384
|
+
] = None,
|
|
370
385
|
accparz: Annotated[
|
|
371
386
|
str | None,
|
|
372
387
|
typer.Option(
|
|
@@ -419,12 +434,16 @@ def accessi(
|
|
|
419
434
|
) -> None:
|
|
420
435
|
"""List access points for a street.
|
|
421
436
|
|
|
422
|
-
|
|
423
|
-
|
|
437
|
+
Resolve the street (odonimo) either by ``--denom`` (municipality code +
|
|
438
|
+
base64 name) or directly by ``--prognaz``, then list its access points
|
|
439
|
+
(civici). ``--denom`` is a substring search: when it matches more than one
|
|
440
|
+
odonimo the command stops and lists the candidates so you can re-run with
|
|
441
|
+
``--prognaz`` (it never silently picks the first match).
|
|
424
442
|
|
|
425
443
|
Example:
|
|
426
444
|
anncsu pa accessi --codcom I501 --denom "VklBIFJPTUE="
|
|
427
445
|
anncsu pa accessi --codcom I501 --denom "VklBIFJPTUE=" --accparz "1"
|
|
446
|
+
anncsu pa accessi --codcom H501 --prognaz 920585 --accparz 95
|
|
428
447
|
"""
|
|
429
448
|
if server_url is None:
|
|
430
449
|
server_url = (
|
|
@@ -440,43 +459,92 @@ def accessi(
|
|
|
440
459
|
verify_ssl=not no_verify_ssl,
|
|
441
460
|
)
|
|
442
461
|
|
|
443
|
-
# Step 1:
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
462
|
+
# Step 1: Resolve the odonimo — either directly via --prognaz or by
|
|
463
|
+
# searching --denom. The denom search can match multiple odonimi (it is a
|
|
464
|
+
# substring match), so we never silently pick the first: we error and ask
|
|
465
|
+
# the user to disambiguate with --prognaz.
|
|
466
|
+
if prognaz and denom:
|
|
467
|
+
error_console.print(
|
|
468
|
+
"[red]Error:[/red] --denom and --prognaz are mutually exclusive."
|
|
448
469
|
)
|
|
449
|
-
|
|
450
|
-
error_console.print(f"[red]Error:[/red] Odonimo search failed: {e}")
|
|
451
|
-
raise typer.Exit(1) from None
|
|
470
|
+
raise typer.Exit(1)
|
|
452
471
|
|
|
453
|
-
if
|
|
454
|
-
|
|
472
|
+
if prognaz:
|
|
473
|
+
try:
|
|
474
|
+
odonimo_response = sdk.queryparam.prognazarea_get_query_param(
|
|
475
|
+
prognaz=prognaz,
|
|
476
|
+
)
|
|
477
|
+
except Exception as e:
|
|
478
|
+
error_console.print(f"[red]Error:[/red] Odonimo lookup failed: {e}")
|
|
479
|
+
raise typer.Exit(1) from None
|
|
480
|
+
|
|
481
|
+
if raw_output:
|
|
482
|
+
_print_raw(odonimo_response, "Raw odonimo response")
|
|
483
|
+
|
|
484
|
+
if not odonimo_response.data:
|
|
485
|
+
error_console.print(
|
|
486
|
+
f"[red]No results:[/red] No odonimo found for prognaz={prognaz}"
|
|
487
|
+
)
|
|
488
|
+
raise typer.Exit(1) from None
|
|
455
489
|
|
|
456
|
-
|
|
490
|
+
odonimo_data = odonimo_response.data[0]
|
|
491
|
+
resolved_prognaz = prognaz
|
|
492
|
+
elif denom:
|
|
493
|
+
try:
|
|
494
|
+
odonimo_response = sdk.queryparam.elencoodonimiprog_get_query_param(
|
|
495
|
+
codcom=codcom,
|
|
496
|
+
denomparz=denom,
|
|
497
|
+
)
|
|
498
|
+
except Exception as e:
|
|
499
|
+
error_console.print(f"[red]Error:[/red] Odonimo search failed: {e}")
|
|
500
|
+
raise typer.Exit(1) from None
|
|
501
|
+
|
|
502
|
+
if raw_output:
|
|
503
|
+
_print_raw(odonimo_response, "Raw odonimo response")
|
|
504
|
+
|
|
505
|
+
if not odonimo_response.data:
|
|
506
|
+
error_console.print(
|
|
507
|
+
f"[red]No results:[/red] No odonimo found for codcom={codcom}, "
|
|
508
|
+
f"denom={denom}"
|
|
509
|
+
)
|
|
510
|
+
raise typer.Exit(1) from None
|
|
511
|
+
|
|
512
|
+
matches = list(odonimo_response.data)
|
|
513
|
+
if len(matches) > 1:
|
|
514
|
+
error_console.print(
|
|
515
|
+
f"[red]Ambiguous:[/red] {len(matches)} odonimi match codcom="
|
|
516
|
+
f"{codcom}, denom={denom}. Re-run with --prognaz to pick one:"
|
|
517
|
+
)
|
|
518
|
+
for m in matches:
|
|
519
|
+
error_console.print(
|
|
520
|
+
f" --prognaz {m.prognaz} → {m.dug or ''} {m.denomuff or ''}"
|
|
521
|
+
)
|
|
522
|
+
raise typer.Exit(1)
|
|
523
|
+
|
|
524
|
+
odonimo_data = matches[0]
|
|
525
|
+
resolved_prognaz = odonimo_data.prognaz
|
|
526
|
+
else:
|
|
457
527
|
error_console.print(
|
|
458
|
-
|
|
528
|
+
"[red]Error:[/red] Provide --denom (street name, base64) or "
|
|
529
|
+
"--prognaz (national progressive of the odonimo)."
|
|
459
530
|
)
|
|
460
|
-
raise typer.Exit(1)
|
|
461
|
-
|
|
462
|
-
odonimo_data = odonimo_response.data[0]
|
|
463
|
-
prognaz = odonimo_data.prognaz
|
|
531
|
+
raise typer.Exit(1)
|
|
464
532
|
|
|
465
|
-
if not
|
|
533
|
+
if not resolved_prognaz:
|
|
466
534
|
error_console.print("[red]Error:[/red] Odonimo found but no prognaz available")
|
|
467
535
|
raise typer.Exit(1) from None
|
|
468
536
|
|
|
469
537
|
if not json_output:
|
|
470
538
|
console.print(
|
|
471
539
|
f"[bold]Street:[/bold] {odonimo_data.dug} {odonimo_data.denomuff} "
|
|
472
|
-
f"(prognaz={
|
|
540
|
+
f"(prognaz={resolved_prognaz})\n"
|
|
473
541
|
)
|
|
474
542
|
|
|
475
543
|
# Step 2: List accessi for this odonimo
|
|
476
544
|
search_accparz = accparz if accparz else "1"
|
|
477
545
|
try:
|
|
478
546
|
accessi_response = sdk.queryparam.elencoaccessiprog_get_query_param(
|
|
479
|
-
prognaz=
|
|
547
|
+
prognaz=resolved_prognaz,
|
|
480
548
|
accparz=search_accparz,
|
|
481
549
|
)
|
|
482
550
|
except Exception as e:
|
|
@@ -488,7 +556,8 @@ def accessi(
|
|
|
488
556
|
|
|
489
557
|
if not accessi_response.data:
|
|
490
558
|
error_console.print(
|
|
491
|
-
f"[red]No results:[/red] No access points found for
|
|
559
|
+
f"[red]No results:[/red] No access points found for "
|
|
560
|
+
f"prognaz={resolved_prognaz}"
|
|
492
561
|
)
|
|
493
562
|
raise typer.Exit(1) from None
|
|
494
563
|
|
|
@@ -9,9 +9,12 @@ from ._version import (
|
|
|
9
9
|
)
|
|
10
10
|
from .errors.odonimo_validation import (
|
|
11
11
|
CodcomRequiredError,
|
|
12
|
+
DataValidAmmInFutureError,
|
|
12
13
|
DugNotAllowedForDeleteError,
|
|
13
14
|
DugRequiredError,
|
|
15
|
+
FlagDeliberaInvalidValueError,
|
|
14
16
|
FlagDeliberaMissingFieldsError,
|
|
17
|
+
InvalidDateFormatError,
|
|
15
18
|
OdonimoMaxLengthError,
|
|
16
19
|
OdonimoValidationError,
|
|
17
20
|
PrefetturaMutexError,
|
|
@@ -35,9 +38,12 @@ __all__ = [
|
|
|
35
38
|
"__user_agent__",
|
|
36
39
|
"AnncsuOdonimi",
|
|
37
40
|
"CodcomRequiredError",
|
|
41
|
+
"DataValidAmmInFutureError",
|
|
38
42
|
"DugNotAllowedForDeleteError",
|
|
39
43
|
"DugRequiredError",
|
|
44
|
+
"FlagDeliberaInvalidValueError",
|
|
40
45
|
"FlagDeliberaMissingFieldsError",
|
|
46
|
+
"InvalidDateFormatError",
|
|
41
47
|
"OdonimoMaxLengthError",
|
|
42
48
|
"OdonimoValidationError",
|
|
43
49
|
"PrefetturaMutexError",
|
{anncsu_sdk-0.0.10.dev2 → anncsu_sdk-0.0.10.dev4}/src/anncsu/odonimi/errors/odonimo_validation.py
RENAMED
|
@@ -175,6 +175,63 @@ class PrefetturaMutexError(OdonimoValidationError):
|
|
|
175
175
|
)
|
|
176
176
|
|
|
177
177
|
|
|
178
|
+
@dataclass
|
|
179
|
+
class FlagDeliberaInvalidValueError(OdonimoValidationError):
|
|
180
|
+
"""Raised when provvedimento.flag_delibera is not one of '0'..'4'.
|
|
181
|
+
|
|
182
|
+
Per OAS spec: "Flag della delibera (valori numerici da 0 a 4)".
|
|
183
|
+
"""
|
|
184
|
+
|
|
185
|
+
value: str
|
|
186
|
+
|
|
187
|
+
def __str__(self) -> str:
|
|
188
|
+
return (
|
|
189
|
+
f"Il campo 'provvedimento.flag_delibera' deve essere un valore "
|
|
190
|
+
f"numerico da '0' a '4'. Valore fornito: {self.value!r}"
|
|
191
|
+
)
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
@dataclass
|
|
195
|
+
class InvalidDateFormatError(OdonimoValidationError):
|
|
196
|
+
"""Raised when a date field is not a valid dd/MM/yyyy calendar date.
|
|
197
|
+
|
|
198
|
+
Applies to provvedimento.data, aut_prefettura.data_pref and
|
|
199
|
+
data_valid_amm (OAS examples: "10/10/2023", "08/10/2024").
|
|
200
|
+
"""
|
|
201
|
+
|
|
202
|
+
field_name: str
|
|
203
|
+
value: str
|
|
204
|
+
|
|
205
|
+
def __str__(self) -> str:
|
|
206
|
+
return (
|
|
207
|
+
f"Il campo '{self.field_name}' deve essere una data valida nel "
|
|
208
|
+
f"formato dd/MM/yyyy (es. '10/10/2023'). "
|
|
209
|
+
f"Valore fornito: {self.value!r}"
|
|
210
|
+
)
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
@dataclass
|
|
214
|
+
class DataValidAmmInFutureError(OdonimoValidationError):
|
|
215
|
+
"""Raised when data_valid_amm is in the future (any operation).
|
|
216
|
+
|
|
217
|
+
Per OAS spec: "minore o uguale della data corrente per inserimento e
|
|
218
|
+
soppressione. Per aggiornamento anche >= della precedente" — the
|
|
219
|
+
'anche' is additive, so the <= today bound applies to R as well.
|
|
220
|
+
The R-only half (">= della precedente") requires the server-side
|
|
221
|
+
historical value and is NOT checked client-side.
|
|
222
|
+
"""
|
|
223
|
+
|
|
224
|
+
operazione: str
|
|
225
|
+
value: str
|
|
226
|
+
|
|
227
|
+
def __str__(self) -> str:
|
|
228
|
+
return (
|
|
229
|
+
f"Il campo 'data_valid_amm' non puo' essere nel futuro per "
|
|
230
|
+
f"tipo_operazione='{self.operazione}' (deve essere minore o "
|
|
231
|
+
f"uguale alla data corrente). Valore fornito: {self.value!r}"
|
|
232
|
+
)
|
|
233
|
+
|
|
234
|
+
|
|
178
235
|
__all__ = [
|
|
179
236
|
"OdonimoValidationError",
|
|
180
237
|
"TipoOperazioneError",
|
|
@@ -185,4 +242,7 @@ __all__ = [
|
|
|
185
242
|
"OdonimoMaxLengthError",
|
|
186
243
|
"FlagDeliberaMissingFieldsError",
|
|
187
244
|
"PrefetturaMutexError",
|
|
245
|
+
"FlagDeliberaInvalidValueError",
|
|
246
|
+
"InvalidDateFormatError",
|
|
247
|
+
"DataValidAmmInFutureError",
|
|
188
248
|
]
|