diracx 0.0.1a46__tar.gz → 0.0.1a47__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.
- {diracx-0.0.1a46 → diracx-0.0.1a47}/.github/workflows/integration.yml +10 -4
- {diracx-0.0.1a46 → diracx-0.0.1a47}/.github/workflows/main.yml +8 -8
- {diracx-0.0.1a46 → diracx-0.0.1a47}/.github/workflows/update_security_txt_expiry.yml +1 -1
- {diracx-0.0.1a46 → diracx-0.0.1a47}/.pre-commit-config.yaml +3 -2
- {diracx-0.0.1a46 → diracx-0.0.1a47}/PKG-INFO +1 -1
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-api/pyproject.toml +1 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-api/src/diracx/api/jobs.py +39 -8
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-cli/src/diracx/cli/internal/legacy.py +2 -3
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-client/src/diracx/client/_generated/aio/operations/_operations.py +255 -112
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-client/src/diracx/client/_generated/models/__init__.py +16 -8
- {diracx-0.0.1a46/extensions/gubbins/gubbins-client/src/gubbins → diracx-0.0.1a47/diracx-client/src/diracx}/client/_generated/models/_enums.py +3 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-client/src/diracx/client/_generated/models/_models.py +396 -77
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-client/src/diracx/client/_generated/operations/_operations.py +265 -143
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-client/src/diracx/client/patches/jobs/common.py +1 -1
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-core/pyproject.toml +1 -1
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-core/src/diracx/core/models.py +55 -2
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-db/src/diracx/db/os/job_parameters.py +9 -3
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-db/src/diracx/db/sql/dummy/db.py +3 -14
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-db/src/diracx/db/sql/job/db.py +15 -54
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-db/src/diracx/db/sql/utils/__init__.py +2 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-db/src/diracx/db/sql/utils/base.py +92 -3
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-db/tests/jobs/test_job_db.py +49 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-db/tests/test_dummy_db.py +1 -1
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-logic/src/diracx/logic/jobs/query.py +14 -8
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-logic/src/diracx/logic/jobs/status.py +35 -22
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-logic/tests/logic/test_sandboxes.py +2 -2
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-routers/src/diracx/routers/auth/token.py +0 -19
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-routers/src/diracx/routers/jobs/access_policies.py +13 -2
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-routers/src/diracx/routers/jobs/query.py +131 -11
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-routers/src/diracx/routers/jobs/sandboxes.py +23 -4
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-routers/src/diracx/routers/jobs/status.py +137 -36
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-routers/tests/jobs/test_query.py +36 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-routers/tests/jobs/test_sandboxes.py +2 -2
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-routers/tests/jobs/test_status.py +186 -129
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-testing/pyproject.toml +1 -1
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-testing/src/diracx/testing/client_generation.py +4 -0
- diracx-0.0.1a47/docs/SECURITY.md +3 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/docs/admin/explanations/configuration.md +1 -1
- diracx-0.0.1a47/docs/admin/explanations/sandbox-store.md +5 -0
- diracx-0.0.1a47/docs/admin/how-to/install/convert-cs.md +139 -0
- diracx-0.0.1a47/docs/admin/how-to/install/register-a-vo.md +85 -0
- diracx-0.0.1a47/docs/admin/how-to/install/register-the-admin-vo.md +96 -0
- diracx-0.0.1a47/docs/admin/index.md +8 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/docs/admin/reference/security_model.md +31 -31
- diracx-0.0.1a47/docs/assets/css/extra.css +11 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/docs/assets/home.html +17 -55
- {diracx-0.0.1a46 → diracx-0.0.1a47}/docs/dev/explanations/components/cli.md +5 -5
- {diracx-0.0.1a46 → diracx-0.0.1a47}/docs/dev/explanations/components/db.md +1 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/docs/dev/explanations/components/index.md +15 -14
- {diracx-0.0.1a46 → diracx-0.0.1a47}/docs/dev/explanations/components/routes.md +3 -2
- diracx-0.0.1a46/extensions/README.md → diracx-0.0.1a47/docs/dev/explanations/extensions.md +61 -71
- diracx-0.0.1a47/docs/dev/how-to/add-a-cli-command.md +3 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/docs/dev/how-to/add-a-route.md +3 -2
- diracx-0.0.1a47/docs/dev/how-to/client-extension.md +3 -0
- diracx-0.0.1a47/docs/dev/how-to/contribute.md +54 -0
- diracx-0.0.1a47/docs/dev/how-to/develop-legacy-dirac.md +3 -0
- diracx-0.0.1a47/docs/dev/index.md +11 -0
- diracx-0.0.1a47/docs/dev/reference/dependency-injection.md +282 -0
- diracx-0.0.1a47/docs/dev/reference/pixi-tasks.md +3 -0
- diracx-0.0.1a47/docs/dev/tutorials/getting-started.md +308 -0
- diracx-0.0.1a47/docs/dev/tutorials/run-locally.md +109 -0
- diracx-0.0.1a47/docs/dev/tutorials/write-docs.md +80 -0
- diracx-0.0.1a47/docs/overrides/main.html +7 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/docs/roadmap.md +3 -3
- diracx-0.0.1a47/docs/user/index.md +3 -0
- diracx-0.0.1a47/docs/user/reference/known-installations.md +39 -0
- diracx-0.0.1a47/docs/user/reference/programmatic-usage/command-line-interface.md +3 -0
- diracx-0.0.1a47/docs/user/reference/programmatic-usage/https-interface.md +1 -0
- diracx-0.0.1a47/docs/user/reference/programmatic-usage/index.md +8 -0
- diracx-0.0.1a47/docs/user/reference/programmatic-usage/python-interface.md +3 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-client/src/gubbins/client/_generated/aio/operations/_operations.py +255 -112
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-client/src/gubbins/client/_generated/models/__init__.py +16 -8
- {diracx-0.0.1a46/diracx-client/src/diracx → diracx-0.0.1a47/extensions/gubbins/gubbins-client/src/gubbins}/client/_generated/models/_enums.py +3 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-client/src/gubbins/client/_generated/models/_models.py +396 -77
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-client/src/gubbins/client/_generated/operations/_operations.py +265 -143
- diracx-0.0.1a47/extensions/gubbins/gubbins-db/src/gubbins/db/sql/jobs/__init__.py +0 -0
- diracx-0.0.1a47/extensions/gubbins/gubbins-db/src/gubbins/db/sql/lollygag/__init__.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-db/src/gubbins/db/sql/lollygag/db.py +3 -14
- diracx-0.0.1a47/extensions/gubbins/gubbins-logic/README.md +0 -0
- diracx-0.0.1a47/extensions/gubbins/gubbins-logic/src/gubbins/logic/__init__.py +0 -0
- diracx-0.0.1a47/extensions/gubbins/gubbins-logic/src/gubbins/logic/auth/__init__.py +0 -0
- diracx-0.0.1a47/extensions/gubbins/gubbins-logic/src/gubbins/logic/lollygag/__init__.py +0 -0
- diracx-0.0.1a47/extensions/gubbins/gubbins-logic/src/gubbins/logic/py.typed +0 -0
- diracx-0.0.1a47/extensions/gubbins/gubbins-routers/README.md +0 -0
- diracx-0.0.1a47/extensions/gubbins/gubbins-routers/src/gubbins/routers/py.typed +0 -0
- diracx-0.0.1a47/extensions/gubbins/gubbins-testing/README.md +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/mkdocs.yml +71 -41
- diracx-0.0.1a47/release.notes.new +31 -0
- diracx-0.0.1a47/tests/__init__.py +0 -0
- diracx-0.0.1a46/docs/SECURITY.md +0 -7
- diracx-0.0.1a46/docs/admin/how-to/convert-cs.md +0 -40
- diracx-0.0.1a46/docs/admin/how-to/register-a-vo.md +0 -83
- diracx-0.0.1a46/docs/admin/how-to/register-the-admin-vo.md +0 -96
- diracx-0.0.1a46/docs/assets/css/extra.css +0 -54
- diracx-0.0.1a46/docs/dev/explanations/extensions.md +0 -5
- diracx-0.0.1a46/docs/dev/reference/dependency-injection.md +0 -16
- diracx-0.0.1a46/docs/dev/tutorials/getting-started.md +0 -67
- diracx-0.0.1a46/docs/dev/tutorials/run-locally.md +0 -32
- diracx-0.0.1a46/docs/dev/tutorials/write-docs.md +0 -6
- diracx-0.0.1a46/docs/project/consortium.md +0 -24
- diracx-0.0.1a46/docs/project/index.md +0 -3
- diracx-0.0.1a46/release.notes.new +0 -30
- {diracx-0.0.1a46 → diracx-0.0.1a47}/.coveragerc +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/.gitattributes +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/.github/dependabot.yml +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/.github/workflows/deployment.yml +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/.github/workflows/make_release.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/.github/workflows/vulnerabilities.yml +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/.gitignore +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/.readthedocs.yaml +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/LICENSE +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/MANIFEST.in +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/README.md +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/codecov.yml +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/containers/client/Dockerfile +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/containers/services/Dockerfile +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-api/README.md +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-api/src/diracx/api/__init__.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-api/src/diracx/api/py.typed +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-api/src/diracx/api/utils.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-api/tests/test_jobs.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-api/tests/test_utils.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-cli/README.md +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-cli/pyproject.toml +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-cli/src/diracx/cli/__init__.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-cli/src/diracx/cli/__main__.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-cli/src/diracx/cli/auth.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-cli/src/diracx/cli/config.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-cli/src/diracx/cli/internal/__init__.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-cli/src/diracx/cli/internal/config.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-cli/src/diracx/cli/jobs.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-cli/src/diracx/cli/py.typed +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-cli/src/diracx/cli/utils.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-cli/tests/legacy/cs_sync/integration_test.cfg +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-cli/tests/legacy/cs_sync/integration_test.yaml +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-cli/tests/legacy/cs_sync/integration_test_buggy.cfg +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-cli/tests/legacy/cs_sync/integration_test_secret.cfg +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-cli/tests/legacy/cs_sync/test_cssync.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-cli/tests/legacy/test_legacy.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-cli/tests/test_internal.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-cli/tests/test_jobs.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-cli/tests/test_login.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-client/README.md +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-client/pyproject.toml +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-client/src/_diracx_client_importer.pth +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-client/src/diracx/_client_importer.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-client/src/diracx/client/__init__.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-client/src/diracx/client/_generated/__init__.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-client/src/diracx/client/_generated/_client.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-client/src/diracx/client/_generated/_configuration.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-client/src/diracx/client/_generated/_patch.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-client/src/diracx/client/_generated/_serialization.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-client/src/diracx/client/_generated/_utils/__init__.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-client/src/diracx/client/_generated/_utils/serialization.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-client/src/diracx/client/_generated/_utils/utils.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-client/src/diracx/client/_generated/_vendor.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-client/src/diracx/client/_generated/aio/__init__.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-client/src/diracx/client/_generated/aio/_client.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-client/src/diracx/client/_generated/aio/_configuration.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-client/src/diracx/client/_generated/aio/_patch.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-client/src/diracx/client/_generated/aio/_vendor.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-client/src/diracx/client/_generated/aio/operations/__init__.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-client/src/diracx/client/_generated/aio/operations/_patch.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-client/src/diracx/client/_generated/models/_patch.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-client/src/diracx/client/_generated/operations/__init__.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-client/src/diracx/client/_generated/operations/_patch.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-client/src/diracx/client/_generated/py.typed +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-client/src/diracx/client/aio.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-client/src/diracx/client/models.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-client/src/diracx/client/patches/auth/aio.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-client/src/diracx/client/patches/auth/common.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-client/src/diracx/client/patches/auth/sync.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-client/src/diracx/client/patches/client/aio.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-client/src/diracx/client/patches/client/common.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-client/src/diracx/client/patches/client/sync.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-client/src/diracx/client/patches/jobs/aio.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-client/src/diracx/client/patches/jobs/sync.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-client/src/diracx/client/patches/utils.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-client/src/diracx/client/py.typed +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-client/src/diracx/client/sync.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-client/tests/test_auth.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-core/README.md +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-core/src/diracx/core/__init__.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-core/src/diracx/core/config/__init__.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-core/src/diracx/core/config/schema.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-core/src/diracx/core/config/sources.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-core/src/diracx/core/exceptions.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-core/src/diracx/core/extensions.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-core/src/diracx/core/preferences.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-core/src/diracx/core/properties.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-core/src/diracx/core/py.typed +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-core/src/diracx/core/s3.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-core/src/diracx/core/settings.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-core/src/diracx/core/utils.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-core/tests/test_config_source.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-core/tests/test_extensions.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-core/tests/test_s3.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-core/tests/test_secrets.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-core/tests/test_utils.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-db/README.md +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-db/pyproject.toml +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-db/src/diracx/db/__init__.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-db/src/diracx/db/__main__.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-db/src/diracx/db/exceptions.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-db/src/diracx/db/os/__init__.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-db/src/diracx/db/os/utils.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-db/src/diracx/db/py.typed +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-db/src/diracx/db/sql/__init__.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-db/src/diracx/db/sql/auth/__init__.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-db/src/diracx/db/sql/auth/db.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-db/src/diracx/db/sql/auth/schema.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-db/src/diracx/db/sql/dummy/__init__.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-db/src/diracx/db/sql/dummy/schema.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-db/src/diracx/db/sql/job/__init__.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-db/src/diracx/db/sql/job/schema.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-db/src/diracx/db/sql/job_logging/__init__.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-db/src/diracx/db/sql/job_logging/db.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-db/src/diracx/db/sql/job_logging/schema.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-db/src/diracx/db/sql/pilot_agents/__init__.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-db/src/diracx/db/sql/pilot_agents/db.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-db/src/diracx/db/sql/pilot_agents/schema.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-db/src/diracx/db/sql/sandbox_metadata/__init__.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-db/src/diracx/db/sql/sandbox_metadata/db.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-db/src/diracx/db/sql/sandbox_metadata/schema.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-db/src/diracx/db/sql/task_queue/__init__.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-db/src/diracx/db/sql/task_queue/db.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-db/src/diracx/db/sql/task_queue/schema.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-db/src/diracx/db/sql/utils/functions.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-db/src/diracx/db/sql/utils/types.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-db/tests/auth/test_authorization_flow.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-db/tests/auth/test_device_flow.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-db/tests/auth/test_refresh_token.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-db/tests/jobs/test_job_logging_db.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-db/tests/jobs/test_sandbox_metadata.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-db/tests/opensearch/test_connection.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-db/tests/opensearch/test_index_template.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-db/tests/opensearch/test_search.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-db/tests/pilot_agents/__init__.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-db/tests/pilot_agents/test_pilot_agents_db.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-db/tests/test_freeze_time.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-logic/README.md +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-logic/pyproject.toml +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-logic/src/diracx/logic/__init__.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-logic/src/diracx/logic/__main__.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-logic/src/diracx/logic/auth/__init__.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-logic/src/diracx/logic/auth/authorize_code_flow.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-logic/src/diracx/logic/auth/device_flow.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-logic/src/diracx/logic/auth/management.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-logic/src/diracx/logic/auth/token.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-logic/src/diracx/logic/auth/utils.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-logic/src/diracx/logic/auth/well_known.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-logic/src/diracx/logic/jobs/__init__.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-logic/src/diracx/logic/jobs/sandboxes.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-logic/src/diracx/logic/jobs/submission.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-logic/src/diracx/logic/jobs/utils.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-logic/src/diracx/logic/py.typed +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-logic/src/diracx/logic/task_queues/__init__.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-logic/src/diracx/logic/task_queues/priority.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-routers/README.md +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-routers/pyproject.toml +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-routers/src/diracx/routers/__init__.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-routers/src/diracx/routers/access_policies.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-routers/src/diracx/routers/auth/__init__.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-routers/src/diracx/routers/auth/authorize_code_flow.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-routers/src/diracx/routers/auth/device_flow.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-routers/src/diracx/routers/auth/management.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-routers/src/diracx/routers/auth/utils.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-routers/src/diracx/routers/auth/well_known.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-routers/src/diracx/routers/configuration.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-routers/src/diracx/routers/dependencies.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-routers/src/diracx/routers/factory.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-routers/src/diracx/routers/fastapi_classes.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-routers/src/diracx/routers/health/__init__.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-routers/src/diracx/routers/health/probes.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-routers/src/diracx/routers/jobs/__init__.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-routers/src/diracx/routers/jobs/legacy.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-routers/src/diracx/routers/jobs/submission.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-routers/src/diracx/routers/otel.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-routers/src/diracx/routers/py.typed +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-routers/src/diracx/routers/utils/__init__.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-routers/src/diracx/routers/utils/users.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-routers/tests/auth/test_legacy_exchange.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-routers/tests/auth/test_standard.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-routers/tests/data/idp-server.invalid/.well-known/openid-configuration +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-routers/tests/health/test_probes.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-routers/tests/jobs/conftest.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-routers/tests/jobs/test_wms_access_policy.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-routers/tests/test_config_manager.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-routers/tests/test_generic.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-routers/tests/test_policy.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-testing/README.md +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-testing/src/diracx/testing/__init__.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-testing/src/diracx/testing/__main__.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-testing/src/diracx/testing/client_generation_pytest.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-testing/src/diracx/testing/dummy_osdb.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-testing/src/diracx/testing/entrypoints.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-testing/src/diracx/testing/mock_osdb.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-testing/src/diracx/testing/osdb.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-testing/src/diracx/testing/routers.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-testing/src/diracx/testing/scripts/collect_demo_coverage.sh +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-testing/src/diracx/testing/time.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/diracx-testing/src/diracx/testing/utils.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/docs/admin/explanations/authentication.md +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/docs/admin/explanations/opentelemetry.md +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/docs/admin/explanations/user-management.md +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/docs/admin/reference/settings-and-preferences.md +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/docs/admin/tutorials/authentication.md +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/docs/assets/css/fontawesome-all.min.css +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/docs/assets/css/images/arrow.svg +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/docs/assets/css/images/overlay.png +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/docs/assets/css/main.css +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/docs/assets/images/diracx-logo-square.svg +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/docs/assets/images/logo.svg +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/docs/assets/images/pic02.jpg +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/docs/assets/styles/extra.css +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/docs/assets/webfonts/fa-brands-400.woff2 +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/docs/assets/webfonts/fa-solid-900.woff +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/docs/dev/explanations/client.md +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/docs/dev/explanations/components/api.md +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/docs/dev/explanations/designing-functionality.md +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/docs/dev/explanations/index.md +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/docs/dev/explanations/testing.md +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/docs/dev/how-to/add-a-db.md +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/docs/dev/how-to/add-a-setting.md +0 -0
- /diracx-0.0.1a46/docs/dev/reference/client-metapathfinder.md → /diracx-0.0.1a47/docs/dev/how-to/add-a-task.md +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/docs/dev/how-to/add-a-test.md +0 -0
- /diracx-0.0.1a46/docs/dev/reference/db-transaction-model.md → /diracx-0.0.1a47/docs/dev/how-to/add-functionality/index.md +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/docs/dev/how-to/client-customization.md +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/docs/dev/how-to/client-generation.md +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/docs/dev/how-to/extend-diracx/index.md +0 -0
- /diracx-0.0.1a46/extensions/gubbins/gubbins-api/README.md → /diracx-0.0.1a47/docs/dev/how-to/use-the-demo/index.md +0 -0
- /diracx-0.0.1a46/extensions/gubbins/gubbins-api/src/gubbins/api/__init__.py → /diracx-0.0.1a47/docs/dev/how-to/use-the-demo/swagger.md +0 -0
- /diracx-0.0.1a46/extensions/gubbins/gubbins-api/src/gubbins/api/py.typed → /diracx-0.0.1a47/docs/dev/how-to/use-the-demo/web.md +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/docs/dev/reference/application-state.md +0 -0
- /diracx-0.0.1a46/extensions/gubbins/gubbins-cli/README.md → /diracx-0.0.1a47/docs/dev/reference/client-metapathfinder.md +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/docs/dev/reference/coding-conventions.md +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/docs/dev/reference/configuration.md +0 -0
- /diracx-0.0.1a46/extensions/gubbins/gubbins-cli/src/gubbins/cli/__init__.py → /diracx-0.0.1a47/docs/dev/reference/db-transaction-model.md +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/docs/dev/reference/entrypoints.md +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/docs/dev/reference/security-policies.md +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/docs/dev/reference/security-properties.md +0 -0
- /diracx-0.0.1a46/extensions/gubbins/gubbins-cli/src/gubbins/cli/py.typed → /diracx-0.0.1a47/docs/dev/reference/test-recipes.md +0 -0
- /diracx-0.0.1a46/extensions/gubbins/gubbins-client/README.md → /diracx-0.0.1a47/docs/dev/reference/writing-tests.md +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/docs/dev/tutorials/advanced-tutorial.md +0 -0
- /diracx-0.0.1a46/extensions/gubbins/gubbins-core/README.md → /diracx-0.0.1a47/docs/dev/tutorials/develop-web.md +0 -0
- /diracx-0.0.1a46/extensions/gubbins/gubbins-core/src/gubbins/core/py.typed → /diracx-0.0.1a47/docs/dev/tutorials/larger-developments.md +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/docs/dev/tutorials/making-changes.md +0 -0
- /diracx-0.0.1a46/extensions/gubbins/gubbins-db/README.md → /diracx-0.0.1a47/docs/dev/tutorials/play-with-auth.md +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/docs/index.md +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/docs/user/reference/client-configuration.md +0 -0
- /diracx-0.0.1a46/extensions/gubbins/gubbins-db/src/gubbins/db/py.typed → /diracx-0.0.1a47/docs/user/tutorials/getting-started.md +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/containers/client/Dockerfile +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/containers/services/Dockerfile +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/.github/workflows/main.yml +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/README.md +0 -0
- {diracx-0.0.1a46/extensions/gubbins/gubbins-logic → diracx-0.0.1a47/extensions/gubbins/gubbins-api}/README.md +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-api/pyproject.toml +0 -0
- {diracx-0.0.1a46/extensions/gubbins/gubbins-db/src/gubbins/db/sql/jobs → diracx-0.0.1a47/extensions/gubbins/gubbins-api/src/gubbins/api}/__init__.py +0 -0
- {diracx-0.0.1a46/extensions/gubbins/gubbins-logic/src/gubbins/logic → diracx-0.0.1a47/extensions/gubbins/gubbins-api/src/gubbins/api}/py.typed +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-api/tests/test_gubbins_api.py +0 -0
- {diracx-0.0.1a46/extensions/gubbins/gubbins-routers → diracx-0.0.1a47/extensions/gubbins/gubbins-cli}/README.md +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-cli/pyproject.toml +0 -0
- {diracx-0.0.1a46/extensions/gubbins/gubbins-db/src/gubbins/db/sql/lollygag → diracx-0.0.1a47/extensions/gubbins/gubbins-cli/src/gubbins/cli}/__init__.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-cli/src/gubbins/cli/config.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-cli/src/gubbins/cli/lollygag.py +0 -0
- {diracx-0.0.1a46/extensions/gubbins/gubbins-routers/src/gubbins/routers → diracx-0.0.1a47/extensions/gubbins/gubbins-cli/src/gubbins/cli}/py.typed +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-cli/tests/test_gubbins_cli.py +0 -0
- {diracx-0.0.1a46/extensions/gubbins/gubbins-testing → diracx-0.0.1a47/extensions/gubbins/gubbins-client}/README.md +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-client/pyproject.toml +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-client/src/gubbins/client/__init__.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-client/src/gubbins/client/_generated/__init__.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-client/src/gubbins/client/_generated/_client.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-client/src/gubbins/client/_generated/_configuration.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-client/src/gubbins/client/_generated/_patch.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-client/src/gubbins/client/_generated/_serialization.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-client/src/gubbins/client/_generated/_utils/__init__.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-client/src/gubbins/client/_generated/_utils/serialization.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-client/src/gubbins/client/_generated/_utils/utils.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-client/src/gubbins/client/_generated/_vendor.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-client/src/gubbins/client/_generated/aio/__init__.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-client/src/gubbins/client/_generated/aio/_client.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-client/src/gubbins/client/_generated/aio/_configuration.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-client/src/gubbins/client/_generated/aio/_patch.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-client/src/gubbins/client/_generated/aio/_vendor.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-client/src/gubbins/client/_generated/aio/operations/__init__.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-client/src/gubbins/client/_generated/aio/operations/_patch.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-client/src/gubbins/client/_generated/operations/__init__.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-client/src/gubbins/client/_generated/operations/_patch.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-client/src/gubbins/client/_generated/py.typed +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-client/src/gubbins/client/aio.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-client/src/gubbins/client/models.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-client/src/gubbins/client/py.typed +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-client/src/gubbins/client/sync.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-client/tests/test_gubbins_client.py +0 -0
- /diracx-0.0.1a46/extensions/gubbins/gubbins-logic/src/gubbins/logic/__init__.py → /diracx-0.0.1a47/extensions/gubbins/gubbins-core/README.md +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-core/pyproject.toml +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-core/src/gubbins/core/__init__.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-core/src/gubbins/core/config/__init__.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-core/src/gubbins/core/config/schema.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-core/src/gubbins/core/models.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-core/src/gubbins/core/properties.py +0 -0
- /diracx-0.0.1a46/extensions/gubbins/gubbins-logic/src/gubbins/logic/auth/__init__.py → /diracx-0.0.1a47/extensions/gubbins/gubbins-core/src/gubbins/core/py.typed +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-core/tests/test_config.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-core/tests/test_properties.py +0 -0
- /diracx-0.0.1a46/extensions/gubbins/gubbins-logic/src/gubbins/logic/lollygag/__init__.py → /diracx-0.0.1a47/extensions/gubbins/gubbins-db/README.md +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-db/pyproject.toml +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-db/src/gubbins/db/__init__.py +0 -0
- /diracx-0.0.1a46/tests/__init__.py → /diracx-0.0.1a47/extensions/gubbins/gubbins-db/src/gubbins/db/py.typed +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-db/src/gubbins/db/sql/__init__.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-db/src/gubbins/db/sql/jobs/db.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-db/src/gubbins/db/sql/jobs/schema.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-db/src/gubbins/db/sql/lollygag/schema.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-db/tests/test_gubbins_job_db.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-db/tests/test_lollygag_db.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-logic/pyproject.toml +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-logic/src/gubbins/logic/auth/well_known.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-logic/src/gubbins/logic/lollygag/lollygag.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-logic/tests/test_gubbins_logic.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-routers/pyproject.toml +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-routers/src/gubbins/routers/__init__.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-routers/src/gubbins/routers/dependencies.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-routers/src/gubbins/routers/lollygag/__init__.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-routers/src/gubbins/routers/lollygag/access_policy.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-routers/src/gubbins/routers/lollygag/lollygag.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-routers/src/gubbins/routers/well_known.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-routers/tests/data/idp-server.invalid/.well-known/openid-configuration +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-routers/tests/test_gubbins_job_manager.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-routers/tests/test_lollybag.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-routers/tests/test_wellknown.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-testing/pyproject.toml +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/gubbins-testing/src/gubbins/testing/__init__.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/pixi.toml +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/pyproject.toml +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins/release.notes +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/extensions/gubbins_values.yaml +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/pixi.toml +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/pyproject.toml +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/release.notes +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/release.notes.old +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/run_local.sh +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/tests/make_token_local.py +0 -0
- {diracx-0.0.1a46 → diracx-0.0.1a47}/tests/test_generic.py +0 -0
|
@@ -58,11 +58,17 @@ jobs:
|
|
|
58
58
|
run: |
|
|
59
59
|
has_error=0
|
|
60
60
|
# TODO: set has_error=1 when we are ready to really run the tests
|
|
61
|
-
if [ -f server-tests-failed ]; then has_error=
|
|
62
|
-
if [ -f client-tests-failed ]; then has_error=
|
|
63
|
-
if [ -f pilot-tests-failed ]; then has_error=
|
|
61
|
+
if [ -f server-tests-failed ]; then has_error=1; echo "Server tests failed"; fi
|
|
62
|
+
if [ -f client-tests-failed ]; then has_error=1; echo "Client tests failed"; fi
|
|
63
|
+
if [ -f pilot-tests-failed ]; then has_error=1; echo "Pilot tests failed"; fi
|
|
64
64
|
if [ ${has_error} = 1 ]; then exit 1; fi
|
|
65
|
-
- name: diracx logs
|
|
65
|
+
- name: diracx filtered requests logs
|
|
66
|
+
run: |
|
|
67
|
+
docker logs diracx 2>/dev/null | grep '/api/' \
|
|
68
|
+
| awk -F\" '{print $2, $3}' \
|
|
69
|
+
| awk '{print $1, $2, $4}' \
|
|
70
|
+
| sort | uniq -c | sort
|
|
71
|
+
- name: diracx error logs
|
|
66
72
|
if: ${{ failure() }}
|
|
67
73
|
run: |
|
|
68
74
|
mkdir -p /tmp/service-logs
|
|
@@ -19,7 +19,7 @@ jobs:
|
|
|
19
19
|
steps:
|
|
20
20
|
- name: Checkout code
|
|
21
21
|
uses: actions/checkout@v4
|
|
22
|
-
- uses: prefix-dev/setup-pixi@v0.8.
|
|
22
|
+
- uses: prefix-dev/setup-pixi@v0.8.12
|
|
23
23
|
with:
|
|
24
24
|
run-install: false
|
|
25
25
|
post-cleanup: false
|
|
@@ -32,7 +32,7 @@ jobs:
|
|
|
32
32
|
pixi add --no-install --pypi --feature diracx-core pytest-github-actions-annotate-failures
|
|
33
33
|
# Show any changes
|
|
34
34
|
git diff
|
|
35
|
-
- uses: prefix-dev/setup-pixi@v0.8.
|
|
35
|
+
- uses: prefix-dev/setup-pixi@v0.8.12
|
|
36
36
|
with:
|
|
37
37
|
cache: false
|
|
38
38
|
environments: shellcheck
|
|
@@ -63,7 +63,7 @@ jobs:
|
|
|
63
63
|
steps:
|
|
64
64
|
- name: Checkout code
|
|
65
65
|
uses: actions/checkout@v4
|
|
66
|
-
- uses: prefix-dev/setup-pixi@v0.8.
|
|
66
|
+
- uses: prefix-dev/setup-pixi@v0.8.12
|
|
67
67
|
with:
|
|
68
68
|
run-install: false
|
|
69
69
|
post-cleanup: false
|
|
@@ -76,7 +76,7 @@ jobs:
|
|
|
76
76
|
pixi add --no-install --pypi --feature diracx-core pytest-github-actions-annotate-failures
|
|
77
77
|
# Show any changes
|
|
78
78
|
git diff
|
|
79
|
-
- uses: prefix-dev/setup-pixi@v0.8.
|
|
79
|
+
- uses: prefix-dev/setup-pixi@v0.8.12
|
|
80
80
|
with:
|
|
81
81
|
cache: false
|
|
82
82
|
environments: ${{ matrix.package }}
|
|
@@ -96,7 +96,7 @@ jobs:
|
|
|
96
96
|
steps:
|
|
97
97
|
- name: Checkout code
|
|
98
98
|
uses: actions/checkout@v4
|
|
99
|
-
- uses: prefix-dev/setup-pixi@v0.8.
|
|
99
|
+
- uses: prefix-dev/setup-pixi@v0.8.12
|
|
100
100
|
with:
|
|
101
101
|
run-install: false
|
|
102
102
|
post-cleanup: false
|
|
@@ -109,7 +109,7 @@ jobs:
|
|
|
109
109
|
pixi add --no-install --pypi --feature diracx-core pytest-github-actions-annotate-failures
|
|
110
110
|
# Show any changes
|
|
111
111
|
git diff
|
|
112
|
-
- uses: prefix-dev/setup-pixi@v0.8.
|
|
112
|
+
- uses: prefix-dev/setup-pixi@v0.8.12
|
|
113
113
|
with:
|
|
114
114
|
cache: false
|
|
115
115
|
environments: ${{ matrix.extension == 'diracx' && 'default' || 'default-gubbins' }}
|
|
@@ -222,7 +222,7 @@ jobs:
|
|
|
222
222
|
steps:
|
|
223
223
|
- name: Checkout code
|
|
224
224
|
uses: actions/checkout@v4
|
|
225
|
-
- uses: prefix-dev/setup-pixi@v0.8.
|
|
225
|
+
- uses: prefix-dev/setup-pixi@v0.8.12
|
|
226
226
|
with:
|
|
227
227
|
run-install: false
|
|
228
228
|
post-cleanup: false
|
|
@@ -232,7 +232,7 @@ jobs:
|
|
|
232
232
|
pixi add --no-install --pypi --feature diracx-core pytest-github-actions-annotate-failures
|
|
233
233
|
# Show any changes
|
|
234
234
|
git diff
|
|
235
|
-
- uses: prefix-dev/setup-pixi@v0.8.
|
|
235
|
+
- uses: prefix-dev/setup-pixi@v0.8.12
|
|
236
236
|
with:
|
|
237
237
|
cache: false
|
|
238
238
|
locked: false
|
|
@@ -27,14 +27,14 @@ repos:
|
|
|
27
27
|
- id: check-added-large-files
|
|
28
28
|
|
|
29
29
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
30
|
-
rev: 'v0.12.
|
|
30
|
+
rev: 'v0.12.7'
|
|
31
31
|
hooks:
|
|
32
32
|
- id: ruff
|
|
33
33
|
args: ["--fix", "--show-fixes"]
|
|
34
34
|
- id: ruff-format
|
|
35
35
|
|
|
36
36
|
- repo: https://github.com/pre-commit/mirrors-mypy
|
|
37
|
-
rev: v1.
|
|
37
|
+
rev: v1.17.1
|
|
38
38
|
hooks:
|
|
39
39
|
- id: mypy
|
|
40
40
|
additional_dependencies:
|
|
@@ -53,6 +53,7 @@ repos:
|
|
|
53
53
|
- id: mdformat
|
|
54
54
|
args: ["--number"]
|
|
55
55
|
additional_dependencies:
|
|
56
|
+
- mdformat-mkdocs
|
|
56
57
|
- mdformat-gfm
|
|
57
58
|
- mdformat-black
|
|
58
59
|
|
|
@@ -7,10 +7,12 @@ import logging
|
|
|
7
7
|
import os
|
|
8
8
|
import tarfile
|
|
9
9
|
import tempfile
|
|
10
|
+
from contextlib import contextmanager
|
|
10
11
|
from pathlib import Path
|
|
11
|
-
from typing import Literal
|
|
12
|
+
from typing import BinaryIO, Literal
|
|
12
13
|
|
|
13
14
|
import httpx
|
|
15
|
+
import zstandard
|
|
14
16
|
|
|
15
17
|
from diracx.client.aio import AsyncDiracClient
|
|
16
18
|
from diracx.client.models import SandboxInfo
|
|
@@ -20,8 +22,29 @@ from .utils import with_client
|
|
|
20
22
|
logger = logging.getLogger(__name__)
|
|
21
23
|
|
|
22
24
|
SANDBOX_CHECKSUM_ALGORITHM = "sha256"
|
|
23
|
-
SANDBOX_COMPRESSION: Literal["
|
|
24
|
-
|
|
25
|
+
SANDBOX_COMPRESSION: Literal["zst"] = "zst"
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
@contextmanager
|
|
29
|
+
def tarfile_open(fileobj: BinaryIO):
|
|
30
|
+
"""Context manager to extend tarfile.open to support reading zstd compressed files.
|
|
31
|
+
|
|
32
|
+
This is only needed for Python <=3.13.
|
|
33
|
+
"""
|
|
34
|
+
# Save current position and read magic bytes
|
|
35
|
+
current_pos = fileobj.tell()
|
|
36
|
+
magic = fileobj.read(4)
|
|
37
|
+
fileobj.seek(current_pos)
|
|
38
|
+
|
|
39
|
+
# Read magic bytes to determine compression format
|
|
40
|
+
if magic.startswith(b"\x28\xb5\x2f\xfd"): # zstd magic number
|
|
41
|
+
dctx = zstandard.ZstdDecompressor()
|
|
42
|
+
with dctx.stream_reader(fileobj) as decompressor:
|
|
43
|
+
with tarfile.open(fileobj=decompressor, mode="r|") as tf:
|
|
44
|
+
yield tf
|
|
45
|
+
else:
|
|
46
|
+
with tarfile.open(fileobj=fileobj, mode="r") as tf:
|
|
47
|
+
yield tf
|
|
25
48
|
|
|
26
49
|
|
|
27
50
|
@with_client
|
|
@@ -33,10 +56,18 @@ async def create_sandbox(paths: list[Path], *, client: AsyncDiracClient) -> str:
|
|
|
33
56
|
be used to submit jobs.
|
|
34
57
|
"""
|
|
35
58
|
with tempfile.TemporaryFile(mode="w+b") as tar_fh:
|
|
36
|
-
with
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
59
|
+
# Create zstd compressed tar with level 18 and long matching enabled
|
|
60
|
+
compression_params = zstandard.ZstdCompressionParameters.from_level(
|
|
61
|
+
18, enable_ldm=1
|
|
62
|
+
)
|
|
63
|
+
cctx = zstandard.ZstdCompressor(compression_params=compression_params)
|
|
64
|
+
with cctx.stream_writer(tar_fh, closefd=False) as compressor:
|
|
65
|
+
with tarfile.open(fileobj=compressor, mode="w|") as tf:
|
|
66
|
+
for path in paths:
|
|
67
|
+
logger.debug(
|
|
68
|
+
"Adding %s to sandbox as %s", path.resolve(), path.name
|
|
69
|
+
)
|
|
70
|
+
tf.add(path.resolve(), path.name, recursive=True)
|
|
40
71
|
tar_fh.seek(0)
|
|
41
72
|
|
|
42
73
|
hasher = getattr(hashlib, SANDBOX_CHECKSUM_ALGORITHM)()
|
|
@@ -89,6 +120,6 @@ async def download_sandbox(pfn: str, destination: Path, *, client: AsyncDiracCli
|
|
|
89
120
|
fh.seek(0)
|
|
90
121
|
logger.debug("Sandbox downloaded for %s", pfn)
|
|
91
122
|
|
|
92
|
-
with
|
|
123
|
+
with tarfile_open(fh) as tf:
|
|
93
124
|
tf.extractall(path=destination, filter="data")
|
|
94
125
|
logger.debug("Extracted %s to %s", pfn, destination)
|
|
@@ -211,7 +211,6 @@ def generate_helm_values(
|
|
|
211
211
|
},
|
|
212
212
|
"rabbitmq": {"enabled": False},
|
|
213
213
|
"mysql": {"enabled": False},
|
|
214
|
-
"global": {"images": {"services": "FILL ME"}, "storageClassName": "FILL ME"},
|
|
215
214
|
}
|
|
216
215
|
|
|
217
216
|
cfg = diraccfg.CFG().loadFromBuffer(public_cfg.read_text())
|
|
@@ -265,7 +264,7 @@ def generate_helm_values(
|
|
|
265
264
|
|
|
266
265
|
from diracx.core.extensions import select_from_extension
|
|
267
266
|
|
|
268
|
-
for entry_point in select_from_extension(group="diracx.
|
|
267
|
+
for entry_point in select_from_extension(group="diracx.dbs.sql"):
|
|
269
268
|
db_name = entry_point.name
|
|
270
269
|
db_config = all_db_configs.get(db_name, {})
|
|
271
270
|
|
|
@@ -311,7 +310,7 @@ def generate_helm_values(
|
|
|
311
310
|
},
|
|
312
311
|
}
|
|
313
312
|
|
|
314
|
-
for entry_point in select_from_extension(group="diracx.
|
|
313
|
+
for entry_point in select_from_extension(group="diracx.dbs.os"):
|
|
315
314
|
db_name = entry_point.name
|
|
316
315
|
db_config = all_db_configs.get(db_name, {})
|
|
317
316
|
|