From da377b3f364576ade8b1a59b6f0bb3a7d63d5470 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 27 Jul 2026 22:07:46 -0300 Subject: [PATCH 001/165] chore(wip): preserve local worktree changes --- flext-infra | 2 +- flext-tests | 2 +- uv.lock | 151 ---------------------------------------------------- 3 files changed, 2 insertions(+), 153 deletions(-) diff --git a/flext-infra b/flext-infra index de0f3cf82..347e37084 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit de0f3cf82ee4eca05753b85dc8e961b899aa313e +Subproject commit 347e370844126f913ab0d3db55b75b7369c5f935 diff --git a/flext-tests b/flext-tests index b0e4230bb..da846b620 160000 --- a/flext-tests +++ b/flext-tests @@ -1 +1 @@ -Subproject commit b0e4230bb1b977cb4e404a88b725ee83cf7f992e +Subproject commit da846b62093be893b27bf4b0cbb35343442c271a diff --git a/uv.lock b/uv.lock index 9b502d3b0..07c44c9fe 100644 --- a/uv.lock +++ b/uv.lock @@ -10962,83 +10962,6 @@ dependencies = [ { name = "python-on-whales" }, ] -[package.optional-dependencies] -dev = [ - { name = "autoflake" }, - { name = "bandit" }, - { name = "black" }, - { name = "blacken-docs" }, - { name = "codespell" }, - { name = "deptry" }, - { name = "django-stubs" }, - { name = "factory-boy" }, - { name = "faker" }, - { name = "hypothesis" }, - { name = "isort" }, - { name = "matplotlib-stubs" }, - { name = "mkdocs" }, - { name = "mkdocs-awesome-pages-plugin" }, - { name = "mkdocs-encryptcontent-plugin" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-get-deps" }, - { name = "mkdocs-git-revision-date-localized-plugin" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-macros-plugin" }, - { name = "mkdocs-material" }, - { name = "mkdocs-material-extensions" }, - { name = "mkdocs-mermaid2-plugin" }, - { name = "mkdocs-minify-plugin" }, - { name = "mkdocs-print-site-plugin" }, - { name = "mkdocs-redirects" }, - { name = "mkdocs-section-index" }, - { name = "mkdocs-versioning" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "pip-audit" }, - { name = "pre-commit" }, - { name = "pylint" }, - { name = "pyrefly" }, - { name = "pytest" }, - { name = "pytest-benchmark" }, - { name = "pytest-clarity" }, - { name = "pytest-codeblocks" }, - { name = "pytest-cov" }, - { name = "pytest-deadfixtures" }, - { name = "pytest-env" }, - { name = "pytest-markdown-docs" }, - { name = "pytest-mock" }, - { name = "pytest-randomly" }, - { name = "pytest-sugar" }, - { name = "pytest-timeout" }, - { name = "pytest-xdist" }, - { name = "pyupgrade" }, - { name = "radon" }, - { name = "ruff" }, - { name = "types-cachetools" }, - { name = "types-cffi" }, - { name = "types-click" }, - { name = "types-defusedxml" }, - { name = "types-docker" }, - { name = "types-flask" }, - { name = "types-jsonschema" }, - { name = "types-ldap3" }, - { name = "types-paramiko" }, - { name = "types-protobuf" }, - { name = "types-psutil" }, - { name = "types-psycopg2" }, - { name = "types-pyasn1" }, - { name = "types-pyopenssl" }, - { name = "types-python-dateutil" }, - { name = "types-pyyaml" }, - { name = "types-redis" }, - { name = "types-requests" }, - { name = "types-setuptools" }, - { name = "types-tabulate" }, - { name = "types-toml" }, - { name = "vulture" }, - { name = "yamlfix" }, -] - [package.dev-dependencies] codegen = [ { name = "flext-infra" }, @@ -11123,101 +11046,27 @@ dev = [ [package.metadata] requires-dist = [ - { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, - { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, - { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, - { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, - { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, - { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, - { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, { name = "docker", specifier = ">=7.1" }, { name = "factory-boy", specifier = ">=3.3.3" }, - { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, { name = "faker", specifier = ">=40.15.0" }, - { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, { name = "flext-cli", editable = "flext-cli" }, { name = "flext-core", editable = "flext-core" }, { name = "flext-infra", editable = "flext-infra" }, { name = "hypothesis", specifier = ">=6.152.4" }, - { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, - { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, - { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, - { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, - { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, - { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, - { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, - { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, - { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, - { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, { name = "pytest", specifier = ">=9.0.3" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.2.3" }, - { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, - { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, { name = "pytest-cov", specifier = ">=7.1.0" }, - { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, { name = "pytest-deadfixtures", specifier = ">=3.1.0" }, - { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, { name = "pytest-env", specifier = ">=1.6.0" }, - { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, { name = "pytest-mock", specifier = ">=3.15.1" }, - { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, { name = "pytest-randomly", specifier = ">=4.1.0" }, - { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, { name = "pytest-reportlog", specifier = ">=1.0.0" }, { name = "pytest-sugar", specifier = ">=1.1.1" }, - { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, { name = "pytest-timeout", specifier = ">=2.4.0" }, - { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, { name = "pytest-xdist", specifier = ">=3.8.0" }, - { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, { name = "python-on-whales", specifier = ">=0.7" }, - { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, - { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, - { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, - { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, - { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, - { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, - { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, - { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, - { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, - { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, - { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, - { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, - { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, - { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, - { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, ] -provides-extras = ["dev"] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] From a309cb5364f6c9833c1eb3e7d8f3f0f4540fe54d Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Tue, 28 Jul 2026 09:37:10 -0300 Subject: [PATCH 002/165] style(tests): align versioning imports --- tests/unit/libs/versioning_tests.py | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/unit/libs/versioning_tests.py b/tests/unit/libs/versioning_tests.py index 5a13978b1..35163e6d4 100644 --- a/tests/unit/libs/versioning_tests.py +++ b/tests/unit/libs/versioning_tests.py @@ -8,7 +8,6 @@ from typing import TYPE_CHECKING from flext_tests import tm - from tests.infra.constants import c from tests.infra.utilities import u From ae84cb3833cec6048afaae4f872918dff3490ce6 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Wed, 29 Jul 2026 10:58:12 -0300 Subject: [PATCH 003/165] fix(workspace): advance generic setup owner --- flext-infra | 2 +- uv.lock | 6451 +++++++++++++-------------------------------------- 2 files changed, 1605 insertions(+), 4848 deletions(-) diff --git a/flext-infra b/flext-infra index 941d4e7e2..f09bcf6f7 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 941d4e7e22b0d6767163bf39301ae4954cb4f8f1 +Subproject commit f09bcf6f7dd044e458b0e24af0766e85a92da2cd diff --git a/uv.lock b/uv.lock index 98cc7aecb..7f87e84e6 100644 --- a/uv.lock +++ b/uv.lock @@ -1414,6 +1414,81 @@ dependencies = [ { name = "pydantic" }, ] +[package.optional-dependencies] +dev = [ + { name = "autoflake" }, + { name = "bandit" }, + { name = "black" }, + { name = "blacken-docs" }, + { name = "codespell" }, + { name = "deptry" }, + { name = "django-stubs" }, + { name = "factory-boy" }, + { name = "faker" }, + { name = "hypothesis" }, + { name = "isort" }, + { name = "matplotlib-stubs" }, + { name = "mkdocs" }, + { name = "mkdocs-awesome-pages-plugin" }, + { name = "mkdocs-encryptcontent-plugin" }, + { name = "mkdocs-exclude" }, + { name = "mkdocs-get-deps" }, + { name = "mkdocs-git-revision-date-localized-plugin" }, + { name = "mkdocs-literate-nav" }, + { name = "mkdocs-macros-plugin" }, + { name = "mkdocs-material" }, + { name = "mkdocs-material-extensions" }, + { name = "mkdocs-mermaid2-plugin" }, + { name = "mkdocs-minify-plugin" }, + { name = "mkdocs-print-site-plugin" }, + { name = "mkdocs-redirects" }, + { name = "mkdocs-section-index" }, + { name = "mkdocs-versioning" }, + { name = "mkdocstrings" }, + { name = "mkdocstrings-python" }, + { name = "pip-audit" }, + { name = "pre-commit" }, + { name = "pylint" }, + { name = "pyrefly" }, + { name = "pytest" }, + { name = "pytest-benchmark" }, + { name = "pytest-clarity" }, + { name = "pytest-codeblocks" }, + { name = "pytest-cov" }, + { name = "pytest-deadfixtures" }, + { name = "pytest-env" }, + { name = "pytest-markdown-docs" }, + { name = "pytest-mock" }, + { name = "pytest-randomly" }, + { name = "pytest-sugar" }, + { name = "pytest-timeout" }, + { name = "pytest-xdist" }, + { name = "pyupgrade" }, + { name = "radon" }, + { name = "ruff" }, + { name = "types-cachetools" }, + { name = "types-cffi" }, + { name = "types-click" }, + { name = "types-defusedxml" }, + { name = "types-docker" }, + { name = "types-flask" }, + { name = "types-ldap3" }, + { name = "types-paramiko" }, + { name = "types-protobuf" }, + { name = "types-psutil" }, + { name = "types-psycopg2" }, + { name = "types-pyasn1" }, + { name = "types-pyopenssl" }, + { name = "types-python-dateutil" }, + { name = "types-pyyaml" }, + { name = "types-redis" }, + { name = "types-requests" }, + { name = "types-setuptools" }, + { name = "types-tabulate" }, + { name = "types-toml" }, + { name = "vulture" }, +] + [package.dev-dependencies] codegen = [ { name = "flext-infra" }, @@ -1531,12 +1606,84 @@ workspace = [ [package.metadata] requires-dist = [ + { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, + { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.9.4" }, + { name = "black", marker = "extra == 'dev'", specifier = ">=26.5.1" }, + { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.20.0" }, + { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, + { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, + { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=6.0.6" }, + { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, + { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, { name = "flext-core", editable = "flext-core" }, { name = "flext-infra", editable = "flext-infra" }, { name = "flext-tests", editable = "flext-tests" }, + { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.157.2" }, { name = "importlib-resources", specifier = ">=7.1.0" }, + { name = "isort", marker = "extra == 'dev'", specifier = ">=8.0.1" }, + { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, + { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, + { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, + { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, + { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, + { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, + { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, + { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, + { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, + { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, + { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, + { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, + { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, + { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, + { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, + { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, + { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, + { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, + { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=2.0.5" }, + { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.10.1" }, + { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, { name = "pydantic", specifier = ">=2.13.3" }, + { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, + { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, + { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, + { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.2.3" }, + { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, + { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, + { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, + { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, + { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, + { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, + { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, + { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, + { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, + { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, + { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, + { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, + { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, + { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, + { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, + { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, + { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, + { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, + { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.2.0.20260720" }, + { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, + { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, + { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, + { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, + { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7.2.2.20260518" }, + { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, + { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, + { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, + { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9.0.20260716" }, + { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, + { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, + { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, + { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, + { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, + { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20260518" }, + { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, ] +provides-extras = ["dev"] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] @@ -1672,7 +1819,10 @@ dependencies = [ { name = "websockets" }, ] -[package.optional-dependencies] +[package.dev-dependencies] +codegen = [ + { name = "flext-infra" }, +] dev = [ { name = "autoflake" }, { name = "bandit" }, @@ -1683,6 +1833,7 @@ dev = [ { name = "django-stubs" }, { name = "factory-boy" }, { name = "faker" }, + { name = "flext-tests" }, { name = "hypothesis" }, { name = "isort" }, { name = "matplotlib-stubs" }, @@ -1749,10 +1900,119 @@ dev = [ { name = "yamlfix" }, ] -[package.dev-dependencies] -codegen = [ - { name = "flext-infra" }, +[package.metadata] +requires-dist = [ + { name = "cbor2", specifier = ">=6.0.1" }, + { name = "fastapi", specifier = ">=0.136.1" }, + { name = "flext-core", editable = "flext-core" }, + { name = "flext-web", editable = "flext-web" }, + { name = "gql", specifier = ">=4.0.0" }, + { name = "httpx", specifier = ">=0.28.1" }, + { name = "httpx-sse", specifier = ">=0.4.3" }, + { name = "msgpack", specifier = ">=1.1.2" }, + { name = "orjson", specifier = ">=3.11.8" }, + { name = "pydantic", specifier = ">=2.13.3" }, + { name = "pydantic-core", specifier = ">=2.46.3" }, + { name = "pydantic-settings", specifier = ">=2.14.0" }, + { name = "typing-extensions", specifier = ">=4.15.0" }, + { name = "websockets", specifier = ">=16.0" }, +] + +[package.metadata.requires-dev] +codegen = [{ name = "flext-infra", editable = "flext-infra" }] +dev = [ + { name = "autoflake", specifier = ">=2.3.1" }, + { name = "bandit", specifier = ">=1.8" }, + { name = "black", specifier = ">=25.1" }, + { name = "blacken-docs", specifier = ">=1.19" }, + { name = "codespell", specifier = ">=2.3" }, + { name = "deptry", specifier = ">=0.23" }, + { name = "django-stubs", specifier = ">=5.2.2" }, + { name = "factory-boy", specifier = ">=3.3.1" }, + { name = "faker", specifier = ">=37.4" }, + { name = "flext-tests", editable = "flext-tests" }, + { name = "hypothesis", specifier = ">=6.125" }, + { name = "isort", specifier = ">=6.0.1" }, + { name = "matplotlib-stubs", specifier = ">=0.3" }, + { name = "mkdocs", specifier = ">=1.6" }, + { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.9" }, + { name = "mkdocs-encryptcontent-plugin", specifier = ">=2" }, + { name = "mkdocs-exclude", specifier = ">=1.0.2" }, + { name = "mkdocs-get-deps", specifier = ">=0.2" }, + { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.2" }, + { name = "mkdocs-literate-nav", specifier = ">=0.6" }, + { name = "mkdocs-macros-plugin", specifier = ">=1" }, + { name = "mkdocs-material", specifier = ">=9.5" }, + { name = "mkdocs-material-extensions", specifier = ">=1.3.1" }, + { name = "mkdocs-mermaid2-plugin", specifier = ">=1.1" }, + { name = "mkdocs-minify-plugin", specifier = ">=0.7" }, + { name = "mkdocs-print-site-plugin", specifier = ">=0.8" }, + { name = "mkdocs-redirects", specifier = ">=1.2" }, + { name = "mkdocs-section-index", specifier = ">=0.3.12" }, + { name = "mkdocs-versioning", specifier = ">=0.2" }, + { name = "mkdocstrings", specifier = ">=0.24" }, + { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "pip-audit", specifier = ">=2.7.3" }, + { name = "pre-commit", specifier = ">=4.6.0" }, + { name = "pylint", specifier = ">=3.3" }, + { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pytest", specifier = ">=8.4" }, + { name = "pytest-benchmark", specifier = ">=5.1" }, + { name = "pytest-clarity", specifier = ">=1.0.1" }, + { name = "pytest-codeblocks", specifier = ">=0.17.0" }, + { name = "pytest-cov", specifier = ">=6.2" }, + { name = "pytest-deadfixtures", specifier = ">=2.2.1" }, + { name = "pytest-env", specifier = ">=1.1.5" }, + { name = "pytest-markdown-docs", specifier = ">=0.9.2" }, + { name = "pytest-mock", specifier = ">=3.14" }, + { name = "pytest-randomly", specifier = ">=3.16" }, + { name = "pytest-sugar", specifier = ">=1" }, + { name = "pytest-timeout", specifier = ">=2.4" }, + { name = "pytest-xdist", specifier = ">=3.8" }, + { name = "pyupgrade", specifier = ">=3.19" }, + { name = "radon", specifier = ">=6.0.1" }, + { name = "ruff", specifier = ">=0.12.3" }, + { name = "types-cachetools", specifier = ">=6.2" }, + { name = "types-cffi", specifier = ">=2.0" }, + { name = "types-click", specifier = ">=7.1" }, + { name = "types-defusedxml", specifier = ">=0.7" }, + { name = "types-docker", specifier = ">=7.1" }, + { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-jsonschema", specifier = ">=4.26" }, + { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, + { name = "types-paramiko", specifier = ">=4.0" }, + { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, + { name = "types-psutil", specifier = ">=7" }, + { name = "types-psycopg2", specifier = ">=2.9.21.20250718" }, + { name = "types-pyasn1", specifier = ">=0.6" }, + { name = "types-pyopenssl", specifier = ">=24.1" }, + { name = "types-python-dateutil", specifier = ">=2.9" }, + { name = "types-pyyaml", specifier = ">=6.0.12.20260518" }, + { name = "types-redis", specifier = ">=4.6" }, + { name = "types-requests", specifier = ">=2.32.4" }, + { name = "types-setuptools", specifier = ">=80.9" }, + { name = "types-tabulate", specifier = ">=0.10" }, + { name = "types-toml", specifier = ">=0.10.8.20240310" }, + { name = "vulture", specifier = ">=2.13" }, + { name = "yamlfix", specifier = ">=1.19.1,<2" }, +] + +[[package]] +name = "flext-auth" +version = "0.12.0rc0" +source = { editable = "flext-auth" } +dependencies = [ + { name = "bcrypt" }, + { name = "cryptography" }, + { name = "flext-api" }, + { name = "flext-core" }, + { name = "pydantic" }, + { name = "pydantic-core" }, + { name = "pydantic-settings" }, + { name = "pyjwt" }, ] + +[package.optional-dependencies] dev = [ { name = "autoflake" }, { name = "bandit" }, @@ -1763,7 +2023,6 @@ dev = [ { name = "django-stubs" }, { name = "factory-boy" }, { name = "faker" }, - { name = "flext-tests" }, { name = "hypothesis" }, { name = "isort" }, { name = "matplotlib-stubs" }, @@ -1830,24 +2089,100 @@ dev = [ { name = "yamlfix" }, ] +[package.dev-dependencies] +codegen = [ + { name = "flext-infra" }, +] +dev = [ + { name = "autoflake" }, + { name = "bandit" }, + { name = "black" }, + { name = "blacken-docs" }, + { name = "codespell" }, + { name = "deptry" }, + { name = "django-stubs" }, + { name = "factory-boy" }, + { name = "faker" }, + { name = "flext-tests" }, + { name = "hypothesis" }, + { name = "isort" }, + { name = "matplotlib-stubs" }, + { name = "mkdocs" }, + { name = "mkdocs-awesome-pages-plugin" }, + { name = "mkdocs-encryptcontent-plugin" }, + { name = "mkdocs-exclude" }, + { name = "mkdocs-get-deps" }, + { name = "mkdocs-git-revision-date-localized-plugin" }, + { name = "mkdocs-literate-nav" }, + { name = "mkdocs-macros-plugin" }, + { name = "mkdocs-material" }, + { name = "mkdocs-material-extensions" }, + { name = "mkdocs-mermaid2-plugin" }, + { name = "mkdocs-minify-plugin" }, + { name = "mkdocs-print-site-plugin" }, + { name = "mkdocs-redirects" }, + { name = "mkdocs-section-index" }, + { name = "mkdocs-versioning" }, + { name = "mkdocstrings" }, + { name = "mkdocstrings-python" }, + { name = "pip-audit" }, + { name = "pre-commit" }, + { name = "pylint" }, + { name = "pyrefly" }, + { name = "pytest" }, + { name = "pytest-benchmark" }, + { name = "pytest-clarity" }, + { name = "pytest-codeblocks" }, + { name = "pytest-cov" }, + { name = "pytest-deadfixtures" }, + { name = "pytest-env" }, + { name = "pytest-markdown-docs" }, + { name = "pytest-mock" }, + { name = "pytest-randomly" }, + { name = "pytest-sugar" }, + { name = "pytest-timeout" }, + { name = "pytest-xdist" }, + { name = "pyupgrade" }, + { name = "radon" }, + { name = "ruff" }, + { name = "types-cachetools" }, + { name = "types-cffi" }, + { name = "types-click" }, + { name = "types-defusedxml" }, + { name = "types-docker" }, + { name = "types-flask" }, + { name = "types-ldap3" }, + { name = "types-paramiko" }, + { name = "types-protobuf" }, + { name = "types-psutil" }, + { name = "types-psycopg2" }, + { name = "types-pyasn1" }, + { name = "types-pyopenssl" }, + { name = "types-python-dateutil" }, + { name = "types-pyyaml" }, + { name = "types-redis" }, + { name = "types-requests" }, + { name = "types-setuptools" }, + { name = "types-tabulate" }, + { name = "types-toml" }, + { name = "vulture" }, +] + [package.metadata] requires-dist = [ { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, + { name = "bcrypt", specifier = ">=5.0.0" }, { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, - { name = "cbor2", specifier = ">=6.0.1" }, { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, + { name = "cryptography", specifier = ">=47.0.0" }, { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, - { name = "fastapi", specifier = ">=0.136.1" }, + { name = "flext-api", editable = "flext-api" }, { name = "flext-core", editable = "flext-core" }, - { name = "flext-web", editable = "flext-web" }, - { name = "gql", specifier = ">=4.0.0" }, - { name = "httpx", specifier = ">=0.28.1" }, - { name = "httpx-sse", specifier = ">=0.4.3" }, { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, @@ -1869,13 +2204,12 @@ requires-dist = [ { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, - { name = "msgpack", specifier = ">=1.1.2" }, - { name = "orjson", specifier = ">=3.11.8" }, { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, { name = "pydantic", specifier = ">=2.13.3" }, { name = "pydantic-core", specifier = ">=2.46.3" }, { name = "pydantic-settings", specifier = ">=2.14.0" }, + { name = "pyjwt", specifier = ">=2.12.1" }, { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, @@ -1915,9 +2249,7 @@ requires-dist = [ { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, - { name = "typing-extensions", specifier = ">=4.15.0" }, { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, - { name = "websockets", specifier = ">=16.0" }, { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, ] provides-extras = ["dev"] @@ -1982,7 +2314,6 @@ dev = [ { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, - { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, @@ -1998,99 +2329,33 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] -name = "flext-auth" +name = "flext-cli" version = "0.12.0rc0" -source = { editable = "flext-auth" } +source = { editable = "flext-cli" } dependencies = [ - { name = "bcrypt" }, - { name = "cryptography" }, - { name = "flext-api" }, + { name = "cachetools" }, + { name = "click" }, + { name = "defusedxml" }, { name = "flext-core" }, + { name = "jinja2" }, + { name = "jsonschema" }, + { name = "openpyxl" }, + { name = "pluggy" }, + { name = "prompt-toolkit" }, { name = "pydantic" }, { name = "pydantic-core" }, { name = "pydantic-settings" }, - { name = "pyjwt" }, -] - -[package.optional-dependencies] -dev = [ - { name = "autoflake" }, - { name = "bandit" }, - { name = "black" }, - { name = "blacken-docs" }, - { name = "codespell" }, - { name = "deptry" }, - { name = "django-stubs" }, - { name = "factory-boy" }, - { name = "faker" }, - { name = "hypothesis" }, - { name = "isort" }, - { name = "matplotlib-stubs" }, - { name = "mkdocs" }, - { name = "mkdocs-awesome-pages-plugin" }, - { name = "mkdocs-encryptcontent-plugin" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-get-deps" }, - { name = "mkdocs-git-revision-date-localized-plugin" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-macros-plugin" }, - { name = "mkdocs-material" }, - { name = "mkdocs-material-extensions" }, - { name = "mkdocs-mermaid2-plugin" }, - { name = "mkdocs-minify-plugin" }, - { name = "mkdocs-print-site-plugin" }, - { name = "mkdocs-redirects" }, - { name = "mkdocs-section-index" }, - { name = "mkdocs-versioning" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "pip-audit" }, - { name = "pre-commit" }, - { name = "pylint" }, - { name = "pyrefly" }, - { name = "pytest" }, - { name = "pytest-benchmark" }, - { name = "pytest-clarity" }, - { name = "pytest-codeblocks" }, - { name = "pytest-cov" }, - { name = "pytest-deadfixtures" }, - { name = "pytest-env" }, - { name = "pytest-markdown-docs" }, - { name = "pytest-mock" }, - { name = "pytest-randomly" }, - { name = "pytest-sugar" }, - { name = "pytest-timeout" }, - { name = "pytest-xdist" }, - { name = "pyupgrade" }, - { name = "radon" }, - { name = "ruff" }, - { name = "types-cachetools" }, - { name = "types-cffi" }, - { name = "types-click" }, - { name = "types-defusedxml" }, - { name = "types-docker" }, - { name = "types-flask" }, - { name = "types-jsonschema" }, - { name = "types-ldap3" }, - { name = "types-paramiko" }, - { name = "types-protobuf" }, - { name = "types-psutil" }, - { name = "types-psycopg2" }, - { name = "types-pyasn1" }, - { name = "types-pyopenssl" }, - { name = "types-python-dateutil" }, - { name = "types-pyyaml" }, - { name = "types-redis" }, - { name = "types-requests" }, - { name = "types-setuptools" }, - { name = "types-tabulate" }, - { name = "types-toml" }, - { name = "vulture" }, - { name = "yamlfix" }, + { name = "python-docx" }, + { name = "python-pptx" }, + { name = "pyyaml" }, + { name = "rich" }, + { name = "ruamel-yaml" }, + { name = "tabulate" }, + { name = "tomlkit" }, + { name = "typer" }, ] [package.dev-dependencies] @@ -2131,6 +2396,7 @@ dev = [ { name = "mkdocstrings-python" }, { name = "pip-audit" }, { name = "pre-commit" }, + { name = "psutil" }, { name = "pylint" }, { name = "pyrefly" }, { name = "pytest" }, @@ -2155,7 +2421,9 @@ dev = [ { name = "types-defusedxml" }, { name = "types-docker" }, { name = "types-flask" }, + { name = "types-jsonschema" }, { name = "types-ldap3" }, + { name = "types-openpyxl" }, { name = "types-paramiko" }, { name = "types-protobuf" }, { name = "types-psutil" }, @@ -2170,93 +2438,32 @@ dev = [ { name = "types-tabulate" }, { name = "types-toml" }, { name = "vulture" }, + { name = "yamlfix" }, ] [package.metadata] requires-dist = [ - { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, - { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, - { name = "bcrypt", specifier = ">=5.0.0" }, - { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, - { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, - { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, - { name = "cryptography", specifier = ">=47.0.0" }, - { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, - { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, - { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, - { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, - { name = "flext-api", editable = "flext-api" }, + { name = "cachetools", specifier = ">=6.2,<7.0" }, + { name = "click", specifier = ">=8.3.3" }, + { name = "defusedxml", specifier = ">=0.7.1" }, { name = "flext-core", editable = "flext-core" }, - { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, - { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, - { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, - { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, - { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, - { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, - { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, - { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, + { name = "jinja2", specifier = ">=3.1.6" }, + { name = "jsonschema", specifier = ">=4.26.0" }, + { name = "openpyxl", specifier = ">=3.1.5" }, + { name = "pluggy", specifier = ">=1.6.0" }, + { name = "prompt-toolkit", specifier = ">=3.0.52" }, { name = "pydantic", specifier = ">=2.13.3" }, { name = "pydantic-core", specifier = ">=2.46.3" }, { name = "pydantic-settings", specifier = ">=2.14.0" }, - { name = "pyjwt", specifier = ">=2.12.1" }, - { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, - { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, - { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, - { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, - { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, - { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, - { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, - { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, - { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, - { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, - { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, - { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, - { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, - { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, - { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, - { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, - { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, - { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, - { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, - { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, - { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, - { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, - { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, - { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, - { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, + { name = "python-docx", specifier = ">=1.1.2" }, + { name = "python-pptx", specifier = ">=1.0.2" }, + { name = "pyyaml", specifier = ">=6.0.3" }, + { name = "rich", specifier = ">=14,<15" }, + { name = "ruamel-yaml", specifier = ">=0.18.16" }, + { name = "tabulate", specifier = ">=0.10.0" }, + { name = "tomlkit", specifier = ">=0.14.0" }, + { name = "typer", specifier = ">=0.25.1" }, ] -provides-extras = ["dev"] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] @@ -2294,6 +2501,7 @@ dev = [ { name = "mkdocstrings-python", specifier = ">=1.7" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, + { name = "psutil", specifier = ">=7.2.2" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pytest", specifier = ">=8.4" }, @@ -2318,7 +2526,9 @@ dev = [ { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, + { name = "types-openpyxl", specifier = ">=3.1.5.20260518" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, { name = "types-psutil", specifier = ">=7" }, @@ -2333,33 +2543,34 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] -name = "flext-cli" +name = "flext-core" version = "0.12.0rc0" -source = { editable = "flext-cli" } +source = { editable = "flext-core" } dependencies = [ + { name = "beartype" }, { name = "cachetools" }, - { name = "click" }, - { name = "defusedxml" }, - { name = "flext-core" }, - { name = "jinja2" }, - { name = "jsonschema" }, - { name = "openpyxl" }, - { name = "pluggy" }, - { name = "prompt-toolkit" }, + { name = "dependency-injector" }, + { name = "docker" }, + { name = "limits" }, + { name = "orjson" }, + { name = "packaging" }, + { name = "pybreaker" }, { name = "pydantic" }, { name = "pydantic-core" }, + { name = "pydantic-extra-types", extra = ["semver"] }, { name = "pydantic-settings" }, - { name = "python-docx" }, - { name = "python-pptx" }, + { name = "python-dotenv" }, + { name = "python-on-whales" }, { name = "pyyaml" }, - { name = "rich" }, - { name = "ruamel-yaml" }, - { name = "tabulate" }, + { name = "returns" }, + { name = "rope" }, + { name = "structlog" }, { name = "tomlkit" }, - { name = "typer" }, + { name = "wrapt" }, ] [package.dev-dependencies] @@ -2373,12 +2584,17 @@ dev = [ { name = "blacken-docs" }, { name = "codespell" }, { name = "deptry" }, + { name = "detect-secrets" }, { name = "django-stubs" }, { name = "factory-boy" }, { name = "faker" }, + { name = "flext-cli" }, + { name = "flext-infra" }, { name = "flext-tests" }, { name = "hypothesis" }, + { name = "interrogate" }, { name = "isort" }, + { name = "libcst" }, { name = "matplotlib-stubs" }, { name = "mkdocs" }, { name = "mkdocs-awesome-pages-plugin" }, @@ -2398,9 +2614,9 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, - { name = "psutil" }, { name = "pylint" }, { name = "pyrefly" }, { name = "pytest" }, @@ -2418,6 +2634,7 @@ dev = [ { name = "pytest-xdist" }, { name = "pyupgrade" }, { name = "radon" }, + { name = "rope" }, { name = "ruff" }, { name = "types-cachetools" }, { name = "types-cffi" }, @@ -2427,7 +2644,6 @@ dev = [ { name = "types-flask" }, { name = "types-jsonschema" }, { name = "types-ldap3" }, - { name = "types-openpyxl" }, { name = "types-paramiko" }, { name = "types-protobuf" }, { name = "types-psutil" }, @@ -2447,26 +2663,26 @@ dev = [ [package.metadata] requires-dist = [ + { name = "beartype", specifier = ">=0.22.9,<0.23" }, { name = "cachetools", specifier = ">=6.2,<7.0" }, - { name = "click", specifier = ">=8.3.3" }, - { name = "defusedxml", specifier = ">=0.7.1" }, - { name = "flext-core", editable = "flext-core" }, - { name = "jinja2", specifier = ">=3.1.6" }, - { name = "jsonschema", specifier = ">=4.26.0" }, - { name = "openpyxl", specifier = ">=3.1.5" }, - { name = "pluggy", specifier = ">=1.6.0" }, - { name = "prompt-toolkit", specifier = ">=3.0.52" }, + { name = "dependency-injector", specifier = ">=4.49.0" }, + { name = "docker", specifier = ">=7.1.0" }, + { name = "limits", specifier = ">=5.8.0" }, + { name = "orjson", specifier = ">=3.11.8" }, + { name = "packaging", specifier = ">=26.2" }, + { name = "pybreaker", specifier = ">=1.4.1" }, { name = "pydantic", specifier = ">=2.13.3" }, { name = "pydantic-core", specifier = ">=2.46.3" }, + { name = "pydantic-extra-types", extras = ["semver"], specifier = ">=2.11.1" }, { name = "pydantic-settings", specifier = ">=2.14.0" }, - { name = "python-docx", specifier = ">=1.1.2" }, - { name = "python-pptx", specifier = ">=1.0.2" }, + { name = "python-dotenv", specifier = ">=1.2.2" }, + { name = "python-on-whales", specifier = ">=0.81.0" }, { name = "pyyaml", specifier = ">=6.0.3" }, - { name = "rich", specifier = ">=14,<15" }, - { name = "ruamel-yaml", specifier = ">=0.18.16" }, - { name = "tabulate", specifier = ">=0.10.0" }, + { name = "returns", specifier = ">=0.27.0" }, + { name = "rope", specifier = ">=1.14.0" }, + { name = "structlog", specifier = ">=25.5.0" }, { name = "tomlkit", specifier = ">=0.14.0" }, - { name = "typer", specifier = ">=0.25.1" }, + { name = "wrapt", specifier = ">=2.1.2" }, ] [package.metadata.requires-dev] @@ -2478,12 +2694,17 @@ dev = [ { name = "blacken-docs", specifier = ">=1.19" }, { name = "codespell", specifier = ">=2.3" }, { name = "deptry", specifier = ">=0.23" }, + { name = "detect-secrets", specifier = ">=1.5.0" }, { name = "django-stubs", specifier = ">=5.2.2" }, { name = "factory-boy", specifier = ">=3.3.1" }, { name = "faker", specifier = ">=37.4" }, + { name = "flext-cli", editable = "flext-cli" }, + { name = "flext-infra", editable = "flext-infra" }, { name = "flext-tests", editable = "flext-tests" }, { name = "hypothesis", specifier = ">=6.125" }, + { name = "interrogate", specifier = ">=1.7.0" }, { name = "isort", specifier = ">=6.0.1" }, + { name = "libcst", specifier = ">=1.8.6" }, { name = "matplotlib-stubs", specifier = ">=0.3" }, { name = "mkdocs", specifier = ">=1.6" }, { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.9" }, @@ -2503,9 +2724,9 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=1.20.2" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, - { name = "psutil", specifier = ">=7.2.2" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pytest", specifier = ">=8.4" }, @@ -2523,16 +2744,16 @@ dev = [ { name = "pytest-xdist", specifier = ">=3.8" }, { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, + { name = "rope", specifier = ">=1.14.0" }, { name = "ruff", specifier = ">=0.12.3" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, - { name = "types-defusedxml", specifier = ">=0.7" }, + { name = "types-defusedxml", specifier = ">=0.7.0.20260408" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, - { name = "types-openpyxl", specifier = ">=3.1.5.20260518" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, { name = "types-psutil", specifier = ">=7" }, @@ -2546,35 +2767,21 @@ dev = [ { name = "types-setuptools", specifier = ">=80.9" }, { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, - { name = "vulture", specifier = ">=2.13" }, + { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] -name = "flext-core" +name = "flext-db-oracle" version = "0.12.0rc0" -source = { editable = "flext-core" } +source = { editable = "flext-db-oracle" } dependencies = [ - { name = "beartype" }, - { name = "cachetools" }, - { name = "dependency-injector" }, - { name = "docker" }, - { name = "limits" }, - { name = "orjson" }, - { name = "packaging" }, - { name = "pybreaker" }, + { name = "flext-cli" }, + { name = "flext-core" }, + { name = "oracledb" }, { name = "pydantic" }, { name = "pydantic-core" }, - { name = "pydantic-extra-types", extra = ["semver"] }, - { name = "pydantic-settings" }, - { name = "python-dotenv" }, - { name = "python-on-whales" }, - { name = "pyyaml" }, - { name = "returns" }, - { name = "rope" }, - { name = "structlog" }, - { name = "tomlkit" }, - { name = "wrapt" }, + { name = "sqlalchemy" }, ] [package.dev-dependencies] @@ -2588,17 +2795,12 @@ dev = [ { name = "blacken-docs" }, { name = "codespell" }, { name = "deptry" }, - { name = "detect-secrets" }, { name = "django-stubs" }, { name = "factory-boy" }, { name = "faker" }, - { name = "flext-cli" }, - { name = "flext-infra" }, { name = "flext-tests" }, { name = "hypothesis" }, - { name = "interrogate" }, { name = "isort" }, - { name = "libcst" }, { name = "matplotlib-stubs" }, { name = "mkdocs" }, { name = "mkdocs-awesome-pages-plugin" }, @@ -2618,7 +2820,6 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, - { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, @@ -2638,7 +2839,6 @@ dev = [ { name = "pytest-xdist" }, { name = "pyupgrade" }, { name = "radon" }, - { name = "rope" }, { name = "ruff" }, { name = "types-cachetools" }, { name = "types-cffi" }, @@ -2667,26 +2867,12 @@ dev = [ [package.metadata] requires-dist = [ - { name = "beartype", specifier = ">=0.22.9,<0.23" }, - { name = "cachetools", specifier = ">=6.2,<7.0" }, - { name = "dependency-injector", specifier = ">=4.49.0" }, - { name = "docker", specifier = ">=7.1.0" }, - { name = "limits", specifier = ">=5.8.0" }, - { name = "orjson", specifier = ">=3.11.8" }, - { name = "packaging", specifier = ">=26.2" }, - { name = "pybreaker", specifier = ">=1.4.1" }, + { name = "flext-cli", editable = "flext-cli" }, + { name = "flext-core", editable = "flext-core" }, + { name = "oracledb", specifier = ">=3.4.2" }, { name = "pydantic", specifier = ">=2.13.3" }, { name = "pydantic-core", specifier = ">=2.46.3" }, - { name = "pydantic-extra-types", extras = ["semver"], specifier = ">=2.11.1" }, - { name = "pydantic-settings", specifier = ">=2.14.0" }, - { name = "python-dotenv", specifier = ">=1.2.2" }, - { name = "python-on-whales", specifier = ">=0.81.0" }, - { name = "pyyaml", specifier = ">=6.0.3" }, - { name = "returns", specifier = ">=0.27.0" }, - { name = "rope", specifier = ">=1.14.0" }, - { name = "structlog", specifier = ">=25.5.0" }, - { name = "tomlkit", specifier = ">=0.14.0" }, - { name = "wrapt", specifier = ">=2.1.2" }, + { name = "sqlalchemy", specifier = ">=2.0.49" }, ] [package.metadata.requires-dev] @@ -2698,17 +2884,12 @@ dev = [ { name = "blacken-docs", specifier = ">=1.19" }, { name = "codespell", specifier = ">=2.3" }, { name = "deptry", specifier = ">=0.23" }, - { name = "detect-secrets", specifier = ">=1.5.0" }, { name = "django-stubs", specifier = ">=5.2.2" }, { name = "factory-boy", specifier = ">=3.3.1" }, { name = "faker", specifier = ">=37.4" }, - { name = "flext-cli", editable = "flext-cli" }, - { name = "flext-infra", editable = "flext-infra" }, { name = "flext-tests", editable = "flext-tests" }, { name = "hypothesis", specifier = ">=6.125" }, - { name = "interrogate", specifier = ">=1.7.0" }, { name = "isort", specifier = ">=6.0.1" }, - { name = "libcst", specifier = ">=1.8.6" }, { name = "matplotlib-stubs", specifier = ">=0.3" }, { name = "mkdocs", specifier = ">=1.6" }, { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.9" }, @@ -2728,7 +2909,6 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, - { name = "mypy", specifier = ">=1.20.2" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, @@ -2748,12 +2928,11 @@ dev = [ { name = "pytest-xdist", specifier = ">=3.8" }, { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, - { name = "rope", specifier = ">=1.14.0" }, { name = "ruff", specifier = ">=0.12.3" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, - { name = "types-defusedxml", specifier = ">=0.7.0.20260408" }, + { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, { name = "types-jsonschema", specifier = ">=4.26" }, @@ -2771,24 +2950,28 @@ dev = [ { name = "types-setuptools", specifier = ">=80.9" }, { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, - { name = "vulture", specifier = ">=2.16" }, + { name = "vulture", specifier = ">=2.13" }, { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] -name = "flext-db-oracle" +name = "flext-dbt-ldap" version = "0.12.0rc0" -source = { editable = "flext-db-oracle" } +source = { editable = "flext-dbt-ldap" } dependencies = [ { name = "flext-cli" }, { name = "flext-core" }, - { name = "oracledb" }, + { name = "flext-ldap" }, + { name = "flext-ldif" }, + { name = "flext-meltano" }, { name = "pydantic" }, { name = "pydantic-core" }, - { name = "sqlalchemy" }, ] -[package.optional-dependencies] +[package.dev-dependencies] +codegen = [ + { name = "flext-infra" }, +] dev = [ { name = "autoflake" }, { name = "bandit" }, @@ -2799,6 +2982,8 @@ dev = [ { name = "django-stubs" }, { name = "factory-boy" }, { name = "faker" }, + { name = "flext-cli" }, + { name = "flext-tests" }, { name = "hypothesis" }, { name = "isort" }, { name = "matplotlib-stubs" }, @@ -2865,171 +3050,19 @@ dev = [ { name = "yamlfix" }, ] -[package.dev-dependencies] -codegen = [ - { name = "flext-infra" }, +[package.metadata] +requires-dist = [ + { name = "flext-cli", editable = "flext-cli" }, + { name = "flext-core", editable = "flext-core" }, + { name = "flext-ldap", editable = "flext-ldap" }, + { name = "flext-ldif", editable = "flext-ldif" }, + { name = "flext-meltano", editable = "flext-meltano" }, + { name = "pydantic", specifier = ">=2.13.3" }, + { name = "pydantic-core", specifier = ">=2.46.3" }, ] -dev = [ - { name = "autoflake" }, - { name = "bandit" }, - { name = "black" }, - { name = "blacken-docs" }, - { name = "codespell" }, - { name = "deptry" }, - { name = "django-stubs" }, - { name = "factory-boy" }, - { name = "faker" }, - { name = "flext-tests" }, - { name = "hypothesis" }, - { name = "isort" }, - { name = "matplotlib-stubs" }, - { name = "mkdocs" }, - { name = "mkdocs-awesome-pages-plugin" }, - { name = "mkdocs-encryptcontent-plugin" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-get-deps" }, - { name = "mkdocs-git-revision-date-localized-plugin" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-macros-plugin" }, - { name = "mkdocs-material" }, - { name = "mkdocs-material-extensions" }, - { name = "mkdocs-mermaid2-plugin" }, - { name = "mkdocs-minify-plugin" }, - { name = "mkdocs-print-site-plugin" }, - { name = "mkdocs-redirects" }, - { name = "mkdocs-section-index" }, - { name = "mkdocs-versioning" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "pip-audit" }, - { name = "pre-commit" }, - { name = "pylint" }, - { name = "pyrefly" }, - { name = "pytest" }, - { name = "pytest-benchmark" }, - { name = "pytest-clarity" }, - { name = "pytest-codeblocks" }, - { name = "pytest-cov" }, - { name = "pytest-deadfixtures" }, - { name = "pytest-env" }, - { name = "pytest-markdown-docs" }, - { name = "pytest-mock" }, - { name = "pytest-randomly" }, - { name = "pytest-sugar" }, - { name = "pytest-timeout" }, - { name = "pytest-xdist" }, - { name = "pyupgrade" }, - { name = "radon" }, - { name = "ruff" }, - { name = "types-cachetools" }, - { name = "types-cffi" }, - { name = "types-click" }, - { name = "types-defusedxml" }, - { name = "types-docker" }, - { name = "types-flask" }, - { name = "types-ldap3" }, - { name = "types-paramiko" }, - { name = "types-protobuf" }, - { name = "types-psutil" }, - { name = "types-psycopg2" }, - { name = "types-pyasn1" }, - { name = "types-pyopenssl" }, - { name = "types-python-dateutil" }, - { name = "types-pyyaml" }, - { name = "types-redis" }, - { name = "types-requests" }, - { name = "types-setuptools" }, - { name = "types-tabulate" }, - { name = "types-toml" }, - { name = "vulture" }, -] - -[package.metadata] -requires-dist = [ - { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, - { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, - { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, - { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, - { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, - { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, - { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, - { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, - { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, - { name = "flext-cli", editable = "flext-cli" }, - { name = "flext-core", editable = "flext-core" }, - { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, - { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, - { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, - { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, - { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, - { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, - { name = "oracledb", specifier = ">=3.4.2" }, - { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, - { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, - { name = "pydantic", specifier = ">=2.13.3" }, - { name = "pydantic-core", specifier = ">=2.46.3" }, - { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, - { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, - { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, - { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, - { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, - { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, - { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, - { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, - { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, - { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, - { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, - { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, - { name = "sqlalchemy", specifier = ">=2.0.49" }, - { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, - { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, - { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, - { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, - { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, - { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, - { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, - { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, - { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, - { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, - { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, - { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, - { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, -] -provides-extras = ["dev"] - -[package.metadata.requires-dev] -codegen = [{ name = "flext-infra", editable = "flext-infra" }] + +[package.metadata.requires-dev] +codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, @@ -3040,6 +3073,7 @@ dev = [ { name = "django-stubs", specifier = ">=5.2.2" }, { name = "factory-boy", specifier = ">=3.3.1" }, { name = "faker", specifier = ">=37.4" }, + { name = "flext-cli", editable = "flext-cli" }, { name = "flext-tests", editable = "flext-tests" }, { name = "hypothesis", specifier = ">=6.125" }, { name = "isort", specifier = ">=6.0.1" }, @@ -3088,6 +3122,7 @@ dev = [ { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, @@ -3103,23 +3138,25 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] -name = "flext-dbt-ldap" +name = "flext-dbt-ldif" version = "0.12.0rc0" -source = { editable = "flext-dbt-ldap" } +source = { editable = "flext-dbt-ldif" } dependencies = [ - { name = "flext-cli" }, { name = "flext-core" }, - { name = "flext-ldap" }, { name = "flext-ldif" }, { name = "flext-meltano" }, { name = "pydantic" }, { name = "pydantic-core" }, ] -[package.optional-dependencies] +[package.dev-dependencies] +codegen = [ + { name = "flext-infra" }, +] dev = [ { name = "autoflake" }, { name = "bandit" }, @@ -3130,6 +3167,7 @@ dev = [ { name = "django-stubs" }, { name = "factory-boy" }, { name = "faker" }, + { name = "flext-tests" }, { name = "hypothesis" }, { name = "isort" }, { name = "matplotlib-stubs" }, @@ -3196,6 +3234,107 @@ dev = [ { name = "yamlfix" }, ] +[package.metadata] +requires-dist = [ + { name = "flext-core", editable = "flext-core" }, + { name = "flext-ldif", editable = "flext-ldif" }, + { name = "flext-meltano", editable = "flext-meltano" }, + { name = "pydantic", specifier = ">=2.13.3" }, + { name = "pydantic-core", specifier = ">=2.46.3" }, +] + +[package.metadata.requires-dev] +codegen = [{ name = "flext-infra", editable = "flext-infra" }] +dev = [ + { name = "autoflake", specifier = ">=2.3.1" }, + { name = "bandit", specifier = ">=1.8" }, + { name = "black", specifier = ">=25.1" }, + { name = "blacken-docs", specifier = ">=1.19" }, + { name = "codespell", specifier = ">=2.3" }, + { name = "deptry", specifier = ">=0.23" }, + { name = "django-stubs", specifier = ">=5.2.2" }, + { name = "factory-boy", specifier = ">=3.3.1" }, + { name = "faker", specifier = ">=37.4" }, + { name = "flext-tests", editable = "flext-tests" }, + { name = "hypothesis", specifier = ">=6.125" }, + { name = "isort", specifier = ">=6.0.1" }, + { name = "matplotlib-stubs", specifier = ">=0.3" }, + { name = "mkdocs", specifier = ">=1.6" }, + { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.9" }, + { name = "mkdocs-encryptcontent-plugin", specifier = ">=2" }, + { name = "mkdocs-exclude", specifier = ">=1.0.2" }, + { name = "mkdocs-get-deps", specifier = ">=0.2" }, + { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.2" }, + { name = "mkdocs-literate-nav", specifier = ">=0.6" }, + { name = "mkdocs-macros-plugin", specifier = ">=1" }, + { name = "mkdocs-material", specifier = ">=9.5" }, + { name = "mkdocs-material-extensions", specifier = ">=1.3.1" }, + { name = "mkdocs-mermaid2-plugin", specifier = ">=1.1" }, + { name = "mkdocs-minify-plugin", specifier = ">=0.7" }, + { name = "mkdocs-print-site-plugin", specifier = ">=0.8" }, + { name = "mkdocs-redirects", specifier = ">=1.2" }, + { name = "mkdocs-section-index", specifier = ">=0.3.12" }, + { name = "mkdocs-versioning", specifier = ">=0.2" }, + { name = "mkdocstrings", specifier = ">=0.24" }, + { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "pip-audit", specifier = ">=2.7.3" }, + { name = "pre-commit", specifier = ">=4.6.0" }, + { name = "pylint", specifier = ">=3.3" }, + { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pytest", specifier = ">=8.4" }, + { name = "pytest-benchmark", specifier = ">=5.1" }, + { name = "pytest-clarity", specifier = ">=1.0.1" }, + { name = "pytest-codeblocks", specifier = ">=0.17.0" }, + { name = "pytest-cov", specifier = ">=6.2" }, + { name = "pytest-deadfixtures", specifier = ">=2.2.1" }, + { name = "pytest-env", specifier = ">=1.1.5" }, + { name = "pytest-markdown-docs", specifier = ">=0.9.2" }, + { name = "pytest-mock", specifier = ">=3.14" }, + { name = "pytest-randomly", specifier = ">=3.16" }, + { name = "pytest-sugar", specifier = ">=1" }, + { name = "pytest-timeout", specifier = ">=2.4" }, + { name = "pytest-xdist", specifier = ">=3.8" }, + { name = "pyupgrade", specifier = ">=3.19" }, + { name = "radon", specifier = ">=6.0.1" }, + { name = "ruff", specifier = ">=0.12.3" }, + { name = "types-cachetools", specifier = ">=6.2" }, + { name = "types-cffi", specifier = ">=2.0" }, + { name = "types-click", specifier = ">=7.1" }, + { name = "types-defusedxml", specifier = ">=0.7" }, + { name = "types-docker", specifier = ">=7.1" }, + { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-jsonschema", specifier = ">=4.26" }, + { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, + { name = "types-paramiko", specifier = ">=4.0" }, + { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, + { name = "types-psutil", specifier = ">=7" }, + { name = "types-psycopg2", specifier = ">=2.9.21.20250718" }, + { name = "types-pyasn1", specifier = ">=0.6" }, + { name = "types-pyopenssl", specifier = ">=24.1" }, + { name = "types-python-dateutil", specifier = ">=2.9" }, + { name = "types-pyyaml", specifier = ">=6.0.12.20260518" }, + { name = "types-redis", specifier = ">=4.6" }, + { name = "types-requests", specifier = ">=2.32.4" }, + { name = "types-setuptools", specifier = ">=80.9" }, + { name = "types-tabulate", specifier = ">=0.10" }, + { name = "types-toml", specifier = ">=0.10.8.20240310" }, + { name = "vulture", specifier = ">=2.13" }, + { name = "yamlfix", specifier = ">=1.19.1,<2" }, +] + +[[package]] +name = "flext-dbt-oracle" +version = "0.12.0rc0" +source = { editable = "flext-dbt-oracle" } +dependencies = [ + { name = "dbt-common" }, + { name = "flext-core" }, + { name = "flext-db-oracle" }, + { name = "flext-meltano" }, + { name = "pydantic" }, + { name = "pydantic-core" }, +] + [package.dev-dependencies] codegen = [ { name = "flext-infra" }, @@ -3210,7 +3349,6 @@ dev = [ { name = "django-stubs" }, { name = "factory-boy" }, { name = "faker" }, - { name = "flext-cli" }, { name = "flext-tests" }, { name = "hypothesis" }, { name = "isort" }, @@ -3259,6 +3397,7 @@ dev = [ { name = "types-defusedxml" }, { name = "types-docker" }, { name = "types-flask" }, + { name = "types-jsonschema" }, { name = "types-ldap3" }, { name = "types-paramiko" }, { name = "types-protobuf" }, @@ -3274,92 +3413,18 @@ dev = [ { name = "types-tabulate" }, { name = "types-toml" }, { name = "vulture" }, + { name = "yamlfix" }, ] [package.metadata] requires-dist = [ - { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, - { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, - { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, - { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, - { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, - { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, - { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, - { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, - { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, - { name = "flext-cli", editable = "flext-cli" }, + { name = "dbt-common", specifier = ">=1.38.0" }, { name = "flext-core", editable = "flext-core" }, - { name = "flext-ldap", editable = "flext-ldap" }, - { name = "flext-ldif", editable = "flext-ldif" }, + { name = "flext-db-oracle", editable = "flext-db-oracle" }, { name = "flext-meltano", editable = "flext-meltano" }, - { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, - { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, - { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, - { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, - { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, - { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, - { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, - { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, { name = "pydantic", specifier = ">=2.13.3" }, { name = "pydantic-core", specifier = ">=2.46.3" }, - { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, - { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, - { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, - { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, - { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, - { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, - { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, - { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, - { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, - { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, - { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, - { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, - { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, - { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, - { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, - { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, - { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, - { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, - { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, - { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, - { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, - { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, - { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, - { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, - { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, ] -provides-extras = ["dev"] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] @@ -3373,7 +3438,6 @@ dev = [ { name = "django-stubs", specifier = ">=5.2.2" }, { name = "factory-boy", specifier = ">=3.3.1" }, { name = "faker", specifier = ">=37.4" }, - { name = "flext-cli", editable = "flext-cli" }, { name = "flext-tests", editable = "flext-tests" }, { name = "hypothesis", specifier = ">=6.125" }, { name = "isort", specifier = ">=6.0.1" }, @@ -3422,6 +3486,7 @@ dev = [ { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, @@ -3437,97 +3502,22 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] -name = "flext-dbt-ldif" +name = "flext-dbt-oracle-wms" version = "0.12.0rc0" -source = { editable = "flext-dbt-ldif" } +source = { editable = "flext-dbt-oracle-wms" } dependencies = [ + { name = "click" }, { name = "flext-core" }, - { name = "flext-ldif" }, { name = "flext-meltano" }, + { name = "flext-oracle-wms" }, { name = "pydantic" }, { name = "pydantic-core" }, ] -[package.optional-dependencies] -dev = [ - { name = "autoflake" }, - { name = "bandit" }, - { name = "black" }, - { name = "blacken-docs" }, - { name = "codespell" }, - { name = "deptry" }, - { name = "django-stubs" }, - { name = "factory-boy" }, - { name = "faker" }, - { name = "hypothesis" }, - { name = "isort" }, - { name = "matplotlib-stubs" }, - { name = "mkdocs" }, - { name = "mkdocs-awesome-pages-plugin" }, - { name = "mkdocs-encryptcontent-plugin" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-get-deps" }, - { name = "mkdocs-git-revision-date-localized-plugin" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-macros-plugin" }, - { name = "mkdocs-material" }, - { name = "mkdocs-material-extensions" }, - { name = "mkdocs-mermaid2-plugin" }, - { name = "mkdocs-minify-plugin" }, - { name = "mkdocs-print-site-plugin" }, - { name = "mkdocs-redirects" }, - { name = "mkdocs-section-index" }, - { name = "mkdocs-versioning" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "pip-audit" }, - { name = "pre-commit" }, - { name = "pylint" }, - { name = "pyrefly" }, - { name = "pytest" }, - { name = "pytest-benchmark" }, - { name = "pytest-clarity" }, - { name = "pytest-codeblocks" }, - { name = "pytest-cov" }, - { name = "pytest-deadfixtures" }, - { name = "pytest-env" }, - { name = "pytest-markdown-docs" }, - { name = "pytest-mock" }, - { name = "pytest-randomly" }, - { name = "pytest-sugar" }, - { name = "pytest-timeout" }, - { name = "pytest-xdist" }, - { name = "pyupgrade" }, - { name = "radon" }, - { name = "ruff" }, - { name = "types-cachetools" }, - { name = "types-cffi" }, - { name = "types-click" }, - { name = "types-defusedxml" }, - { name = "types-docker" }, - { name = "types-flask" }, - { name = "types-jsonschema" }, - { name = "types-ldap3" }, - { name = "types-paramiko" }, - { name = "types-protobuf" }, - { name = "types-psutil" }, - { name = "types-psycopg2" }, - { name = "types-pyasn1" }, - { name = "types-pyopenssl" }, - { name = "types-python-dateutil" }, - { name = "types-pyyaml" }, - { name = "types-redis" }, - { name = "types-requests" }, - { name = "types-setuptools" }, - { name = "types-tabulate" }, - { name = "types-toml" }, - { name = "vulture" }, - { name = "yamlfix" }, -] - [package.dev-dependencies] codegen = [ { name = "flext-infra" }, @@ -3590,6 +3580,7 @@ dev = [ { name = "types-defusedxml" }, { name = "types-docker" }, { name = "types-flask" }, + { name = "types-jsonschema" }, { name = "types-ldap3" }, { name = "types-paramiko" }, { name = "types-protobuf" }, @@ -3605,90 +3596,18 @@ dev = [ { name = "types-tabulate" }, { name = "types-toml" }, { name = "vulture" }, + { name = "yamlfix" }, ] [package.metadata] requires-dist = [ - { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, - { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, - { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, - { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, - { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, - { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, - { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, - { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, - { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, + { name = "click", specifier = ">=8.3.3" }, { name = "flext-core", editable = "flext-core" }, - { name = "flext-ldif", editable = "flext-ldif" }, { name = "flext-meltano", editable = "flext-meltano" }, - { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, - { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, - { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, - { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, - { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, - { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, - { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, - { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, + { name = "flext-oracle-wms", editable = "flext-oracle-wms" }, { name = "pydantic", specifier = ">=2.13.3" }, { name = "pydantic-core", specifier = ">=2.46.3" }, - { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, - { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, - { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, - { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, - { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, - { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, - { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, - { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, - { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, - { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, - { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, - { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, - { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, - { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, - { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, - { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, - { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, - { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, - { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, - { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, - { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, - { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, - { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, - { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, - { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, ] -provides-extras = ["dev"] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] @@ -3750,6 +3669,7 @@ dev = [ { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, @@ -3765,22 +3685,31 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] -name = "flext-dbt-oracle" +name = "flext-grpc" version = "0.12.0rc0" -source = { editable = "flext-dbt-oracle" } +source = { editable = "flext-grpc" } dependencies = [ - { name = "dbt-common" }, + { name = "flext-cli" }, { name = "flext-core" }, - { name = "flext-db-oracle" }, - { name = "flext-meltano" }, + { name = "grpcio" }, + { name = "grpcio-tools" }, + { name = "prometheus-client" }, + { name = "protobuf" }, + { name = "psutil" }, { name = "pydantic" }, { name = "pydantic-core" }, + { name = "pydantic-settings" }, + { name = "sqlalchemy" }, ] -[package.optional-dependencies] +[package.dev-dependencies] +codegen = [ + { name = "flext-infra" }, +] dev = [ { name = "autoflake" }, { name = "bandit" }, @@ -3791,6 +3720,7 @@ dev = [ { name = "django-stubs" }, { name = "factory-boy" }, { name = "faker" }, + { name = "flext-tests" }, { name = "hypothesis" }, { name = "isort" }, { name = "matplotlib-stubs" }, @@ -3857,168 +3787,20 @@ dev = [ { name = "yamlfix" }, ] -[package.dev-dependencies] -codegen = [ - { name = "flext-infra" }, -] -dev = [ - { name = "autoflake" }, - { name = "bandit" }, - { name = "black" }, - { name = "blacken-docs" }, - { name = "codespell" }, - { name = "deptry" }, - { name = "django-stubs" }, - { name = "factory-boy" }, - { name = "faker" }, - { name = "flext-tests" }, - { name = "hypothesis" }, - { name = "isort" }, - { name = "matplotlib-stubs" }, - { name = "mkdocs" }, - { name = "mkdocs-awesome-pages-plugin" }, - { name = "mkdocs-encryptcontent-plugin" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-get-deps" }, - { name = "mkdocs-git-revision-date-localized-plugin" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-macros-plugin" }, - { name = "mkdocs-material" }, - { name = "mkdocs-material-extensions" }, - { name = "mkdocs-mermaid2-plugin" }, - { name = "mkdocs-minify-plugin" }, - { name = "mkdocs-print-site-plugin" }, - { name = "mkdocs-redirects" }, - { name = "mkdocs-section-index" }, - { name = "mkdocs-versioning" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "pip-audit" }, - { name = "pre-commit" }, - { name = "pylint" }, - { name = "pyrefly" }, - { name = "pytest" }, - { name = "pytest-benchmark" }, - { name = "pytest-clarity" }, - { name = "pytest-codeblocks" }, - { name = "pytest-cov" }, - { name = "pytest-deadfixtures" }, - { name = "pytest-env" }, - { name = "pytest-markdown-docs" }, - { name = "pytest-mock" }, - { name = "pytest-randomly" }, - { name = "pytest-sugar" }, - { name = "pytest-timeout" }, - { name = "pytest-xdist" }, - { name = "pyupgrade" }, - { name = "radon" }, - { name = "ruff" }, - { name = "types-cachetools" }, - { name = "types-cffi" }, - { name = "types-click" }, - { name = "types-defusedxml" }, - { name = "types-docker" }, - { name = "types-flask" }, - { name = "types-ldap3" }, - { name = "types-paramiko" }, - { name = "types-protobuf" }, - { name = "types-psutil" }, - { name = "types-psycopg2" }, - { name = "types-pyasn1" }, - { name = "types-pyopenssl" }, - { name = "types-python-dateutil" }, - { name = "types-pyyaml" }, - { name = "types-redis" }, - { name = "types-requests" }, - { name = "types-setuptools" }, - { name = "types-tabulate" }, - { name = "types-toml" }, - { name = "vulture" }, -] - [package.metadata] requires-dist = [ - { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, - { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, - { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, - { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, - { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, - { name = "dbt-common", specifier = ">=1.38.0" }, - { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, - { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, - { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, - { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, + { name = "flext-cli", editable = "flext-cli" }, { name = "flext-core", editable = "flext-core" }, - { name = "flext-db-oracle", editable = "flext-db-oracle" }, - { name = "flext-meltano", editable = "flext-meltano" }, - { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, - { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, - { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, - { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, - { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, - { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, - { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, - { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, + { name = "grpcio", specifier = ">=1.80.0" }, + { name = "grpcio-tools", specifier = ">=1.80.0" }, + { name = "prometheus-client", specifier = ">=0.25.0" }, + { name = "protobuf", specifier = ">=6.33.6" }, + { name = "psutil", specifier = ">=7.2.2" }, { name = "pydantic", specifier = ">=2.13.3" }, { name = "pydantic-core", specifier = ">=2.46.3" }, - { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, - { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, - { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, - { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, - { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, - { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, - { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, - { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, - { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, - { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, - { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, - { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, - { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, - { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, - { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, - { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, - { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, - { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, - { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, - { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, - { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, - { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, - { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, - { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, - { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, + { name = "pydantic-settings", specifier = ">=2.14.0" }, + { name = "sqlalchemy", specifier = ">=2.0.49" }, ] -provides-extras = ["dev"] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] @@ -4080,6 +3862,7 @@ dev = [ { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, @@ -4095,23 +3878,34 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] -name = "flext-dbt-oracle-wms" +name = "flext-infra" version = "0.12.0rc0" -source = { editable = "flext-dbt-oracle-wms" } +source = { editable = "flext-infra" } dependencies = [ - { name = "click" }, + { name = "defusedxml" }, + { name = "filelock" }, + { name = "flext-cli" }, { name = "flext-core" }, - { name = "flext-meltano" }, - { name = "flext-oracle-wms" }, - { name = "pydantic" }, - { name = "pydantic-core" }, + { name = "gitpython" }, + { name = "libcst" }, + { name = "mkdocs" }, + { name = "mkdocs-exclude" }, + { name = "mkdocs-material" }, + { name = "mkdocs-section-index" }, + { name = "mkdocstrings" }, + { name = "mkdocstrings-python" }, + { name = "pyrefly" }, + { name = "rope" }, + { name = "ruff" }, ] -[package.optional-dependencies] +[package.dev-dependencies] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -4121,6 +3915,7 @@ dev = [ { name = "django-stubs" }, { name = "factory-boy" }, { name = "faker" }, + { name = "flext-tests" }, { name = "hypothesis" }, { name = "isort" }, { name = "matplotlib-stubs" }, @@ -4142,10 +3937,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -4162,6 +3959,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -4187,2320 +3985,121 @@ dev = [ { name = "yamlfix" }, ] -[package.dev-dependencies] -codegen = [ - { name = "flext-infra" }, +[package.metadata] +requires-dist = [ + { name = "defusedxml", specifier = ">=0.7.1" }, + { name = "filelock", specifier = ">=3.32.0" }, + { name = "flext-cli", editable = "flext-cli" }, + { name = "flext-core", editable = "flext-core" }, + { name = "gitpython", specifier = ">=3.1.57" }, + { name = "libcst", specifier = ">=1.8.6" }, + { name = "mkdocs", specifier = ">=1.6.1" }, + { name = "mkdocs-exclude", specifier = ">=1.0.2" }, + { name = "mkdocs-material", specifier = ">=9.7.7" }, + { name = "mkdocs-section-index", specifier = ">=0.3.12" }, + { name = "mkdocstrings", specifier = ">=1.0.6" }, + { name = "mkdocstrings-python", specifier = ">=2.0.5" }, + { name = "pyrefly", specifier = ">=1.1.1" }, + { name = "rope", specifier = ">=1.14.0" }, + { name = "ruff", specifier = ">=0.16.0" }, ] + +[package.metadata.requires-dev] dev = [ - { name = "autoflake" }, - { name = "bandit" }, - { name = "black" }, - { name = "blacken-docs" }, - { name = "codespell" }, - { name = "deptry" }, - { name = "django-stubs" }, - { name = "factory-boy" }, - { name = "faker" }, - { name = "flext-tests" }, - { name = "hypothesis" }, - { name = "isort" }, - { name = "matplotlib-stubs" }, - { name = "mkdocs" }, - { name = "mkdocs-awesome-pages-plugin" }, - { name = "mkdocs-encryptcontent-plugin" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-get-deps" }, - { name = "mkdocs-git-revision-date-localized-plugin" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-macros-plugin" }, - { name = "mkdocs-material" }, - { name = "mkdocs-material-extensions" }, - { name = "mkdocs-mermaid2-plugin" }, - { name = "mkdocs-minify-plugin" }, - { name = "mkdocs-print-site-plugin" }, - { name = "mkdocs-redirects" }, - { name = "mkdocs-section-index" }, - { name = "mkdocs-versioning" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "pip-audit" }, - { name = "pre-commit" }, - { name = "pylint" }, - { name = "pyrefly" }, - { name = "pytest" }, - { name = "pytest-benchmark" }, - { name = "pytest-clarity" }, - { name = "pytest-codeblocks" }, - { name = "pytest-cov" }, - { name = "pytest-deadfixtures" }, - { name = "pytest-env" }, - { name = "pytest-markdown-docs" }, - { name = "pytest-mock" }, - { name = "pytest-randomly" }, - { name = "pytest-sugar" }, - { name = "pytest-timeout" }, - { name = "pytest-xdist" }, - { name = "pyupgrade" }, - { name = "radon" }, - { name = "ruff" }, - { name = "types-cachetools" }, - { name = "types-cffi" }, - { name = "types-click" }, - { name = "types-defusedxml" }, - { name = "types-docker" }, - { name = "types-flask" }, - { name = "types-ldap3" }, - { name = "types-paramiko" }, - { name = "types-protobuf" }, - { name = "types-psutil" }, - { name = "types-psycopg2" }, - { name = "types-pyasn1" }, - { name = "types-pyopenssl" }, - { name = "types-python-dateutil" }, - { name = "types-pyyaml" }, - { name = "types-redis" }, - { name = "types-requests" }, - { name = "types-setuptools" }, - { name = "types-tabulate" }, - { name = "types-toml" }, - { name = "vulture" }, -] - -[package.metadata] -requires-dist = [ - { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, - { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, - { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, - { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, - { name = "click", specifier = ">=8.3.3" }, - { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, - { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, - { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, - { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, - { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, - { name = "flext-core", editable = "flext-core" }, - { name = "flext-meltano", editable = "flext-meltano" }, - { name = "flext-oracle-wms", editable = "flext-oracle-wms" }, - { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, - { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, - { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, - { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, - { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, - { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, - { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, - { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, - { name = "pydantic", specifier = ">=2.13.3" }, - { name = "pydantic-core", specifier = ">=2.46.3" }, - { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, - { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, - { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, - { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, - { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, - { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, - { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, - { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, - { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, - { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, - { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, - { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, - { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, - { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, - { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, - { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, - { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, - { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, - { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, - { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, - { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, - { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, - { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, - { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, - { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, -] -provides-extras = ["dev"] - -[package.metadata.requires-dev] -codegen = [{ name = "flext-infra", editable = "flext-infra" }] -dev = [ - { name = "autoflake", specifier = ">=2.3.1" }, - { name = "bandit", specifier = ">=1.8" }, - { name = "black", specifier = ">=25.1" }, - { name = "blacken-docs", specifier = ">=1.19" }, - { name = "codespell", specifier = ">=2.3" }, - { name = "deptry", specifier = ">=0.23" }, - { name = "django-stubs", specifier = ">=5.2.2" }, - { name = "factory-boy", specifier = ">=3.3.1" }, - { name = "faker", specifier = ">=37.4" }, - { name = "flext-tests", editable = "flext-tests" }, - { name = "hypothesis", specifier = ">=6.125" }, - { name = "isort", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", specifier = ">=0.3" }, - { name = "mkdocs", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", specifier = ">=2" }, - { name = "mkdocs-exclude", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", specifier = ">=1" }, - { name = "mkdocs-material", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", specifier = ">=0.8" }, - { name = "mkdocs-redirects", specifier = ">=1.2" }, - { name = "mkdocs-section-index", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", specifier = ">=0.2" }, - { name = "mkdocstrings", specifier = ">=0.24" }, - { name = "mkdocstrings-python", specifier = ">=1.7" }, - { name = "pip-audit", specifier = ">=2.7.3" }, - { name = "pre-commit", specifier = ">=4.6.0" }, - { name = "pylint", specifier = ">=3.3" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", specifier = ">=8.4" }, - { name = "pytest-benchmark", specifier = ">=5.1" }, - { name = "pytest-clarity", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", specifier = ">=0.17.0" }, - { name = "pytest-cov", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", specifier = ">=2.2.1" }, - { name = "pytest-env", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", specifier = ">=0.9.2" }, - { name = "pytest-mock", specifier = ">=3.14" }, - { name = "pytest-randomly", specifier = ">=3.16" }, - { name = "pytest-sugar", specifier = ">=1" }, - { name = "pytest-timeout", specifier = ">=2.4" }, - { name = "pytest-xdist", specifier = ">=3.8" }, - { name = "pyupgrade", specifier = ">=3.19" }, - { name = "radon", specifier = ">=6.0.1" }, - { name = "ruff", specifier = ">=0.12.3" }, - { name = "types-cachetools", specifier = ">=6.2" }, - { name = "types-cffi", specifier = ">=2.0" }, - { name = "types-click", specifier = ">=7.1" }, - { name = "types-defusedxml", specifier = ">=0.7" }, - { name = "types-docker", specifier = ">=7.1" }, - { name = "types-flask", specifier = ">=1.1.6" }, - { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", specifier = ">=4.0" }, - { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", specifier = ">=7" }, - { name = "types-psycopg2", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", specifier = ">=0.6" }, - { name = "types-pyopenssl", specifier = ">=24.1" }, - { name = "types-python-dateutil", specifier = ">=2.9" }, - { name = "types-pyyaml", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", specifier = ">=4.6" }, - { name = "types-requests", specifier = ">=2.32.4" }, - { name = "types-setuptools", specifier = ">=80.9" }, - { name = "types-tabulate", specifier = ">=0.10" }, - { name = "types-toml", specifier = ">=0.10.8.20240310" }, - { name = "vulture", specifier = ">=2.13" }, -] - -[[package]] -name = "flext-grpc" -version = "0.12.0rc0" -source = { editable = "flext-grpc" } -dependencies = [ - { name = "flext-cli" }, - { name = "flext-core" }, - { name = "grpcio" }, - { name = "grpcio-tools" }, - { name = "prometheus-client" }, - { name = "protobuf" }, - { name = "psutil" }, - { name = "pydantic" }, - { name = "pydantic-core" }, - { name = "pydantic-settings" }, - { name = "sqlalchemy" }, -] - -[package.optional-dependencies] -dev = [ - { name = "autoflake" }, - { name = "bandit" }, - { name = "black" }, - { name = "blacken-docs" }, - { name = "codespell" }, - { name = "deptry" }, - { name = "django-stubs" }, - { name = "factory-boy" }, - { name = "faker" }, - { name = "hypothesis" }, - { name = "isort" }, - { name = "matplotlib-stubs" }, - { name = "mkdocs" }, - { name = "mkdocs-awesome-pages-plugin" }, - { name = "mkdocs-encryptcontent-plugin" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-get-deps" }, - { name = "mkdocs-git-revision-date-localized-plugin" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-macros-plugin" }, - { name = "mkdocs-material" }, - { name = "mkdocs-material-extensions" }, - { name = "mkdocs-mermaid2-plugin" }, - { name = "mkdocs-minify-plugin" }, - { name = "mkdocs-print-site-plugin" }, - { name = "mkdocs-redirects" }, - { name = "mkdocs-section-index" }, - { name = "mkdocs-versioning" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "pip-audit" }, - { name = "pre-commit" }, - { name = "pylint" }, - { name = "pyrefly" }, - { name = "pytest" }, - { name = "pytest-benchmark" }, - { name = "pytest-clarity" }, - { name = "pytest-codeblocks" }, - { name = "pytest-cov" }, - { name = "pytest-deadfixtures" }, - { name = "pytest-env" }, - { name = "pytest-markdown-docs" }, - { name = "pytest-mock" }, - { name = "pytest-randomly" }, - { name = "pytest-sugar" }, - { name = "pytest-timeout" }, - { name = "pytest-xdist" }, - { name = "pyupgrade" }, - { name = "radon" }, - { name = "ruff" }, - { name = "types-cachetools" }, - { name = "types-cffi" }, - { name = "types-click" }, - { name = "types-defusedxml" }, - { name = "types-docker" }, - { name = "types-flask" }, - { name = "types-jsonschema" }, - { name = "types-ldap3" }, - { name = "types-paramiko" }, - { name = "types-protobuf" }, - { name = "types-psutil" }, - { name = "types-psycopg2" }, - { name = "types-pyasn1" }, - { name = "types-pyopenssl" }, - { name = "types-python-dateutil" }, - { name = "types-pyyaml" }, - { name = "types-redis" }, - { name = "types-requests" }, - { name = "types-setuptools" }, - { name = "types-tabulate" }, - { name = "types-toml" }, - { name = "vulture" }, - { name = "yamlfix" }, -] - -[package.dev-dependencies] -codegen = [ - { name = "flext-infra" }, -] -dev = [ - { name = "autoflake" }, - { name = "bandit" }, - { name = "black" }, - { name = "blacken-docs" }, - { name = "codespell" }, - { name = "deptry" }, - { name = "django-stubs" }, - { name = "factory-boy" }, - { name = "faker" }, - { name = "flext-tests" }, - { name = "hypothesis" }, - { name = "isort" }, - { name = "matplotlib-stubs" }, - { name = "mkdocs" }, - { name = "mkdocs-awesome-pages-plugin" }, - { name = "mkdocs-encryptcontent-plugin" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-get-deps" }, - { name = "mkdocs-git-revision-date-localized-plugin" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-macros-plugin" }, - { name = "mkdocs-material" }, - { name = "mkdocs-material-extensions" }, - { name = "mkdocs-mermaid2-plugin" }, - { name = "mkdocs-minify-plugin" }, - { name = "mkdocs-print-site-plugin" }, - { name = "mkdocs-redirects" }, - { name = "mkdocs-section-index" }, - { name = "mkdocs-versioning" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "pip-audit" }, - { name = "pre-commit" }, - { name = "pylint" }, - { name = "pyrefly" }, - { name = "pytest" }, - { name = "pytest-benchmark" }, - { name = "pytest-clarity" }, - { name = "pytest-codeblocks" }, - { name = "pytest-cov" }, - { name = "pytest-deadfixtures" }, - { name = "pytest-env" }, - { name = "pytest-markdown-docs" }, - { name = "pytest-mock" }, - { name = "pytest-randomly" }, - { name = "pytest-sugar" }, - { name = "pytest-timeout" }, - { name = "pytest-xdist" }, - { name = "pyupgrade" }, - { name = "radon" }, - { name = "ruff" }, - { name = "types-cachetools" }, - { name = "types-cffi" }, - { name = "types-click" }, - { name = "types-defusedxml" }, - { name = "types-docker" }, - { name = "types-flask" }, - { name = "types-ldap3" }, - { name = "types-paramiko" }, - { name = "types-protobuf" }, - { name = "types-psutil" }, - { name = "types-psycopg2" }, - { name = "types-pyasn1" }, - { name = "types-pyopenssl" }, - { name = "types-python-dateutil" }, - { name = "types-pyyaml" }, - { name = "types-redis" }, - { name = "types-requests" }, - { name = "types-setuptools" }, - { name = "types-tabulate" }, - { name = "types-toml" }, - { name = "vulture" }, -] - -[package.metadata] -requires-dist = [ - { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, - { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, - { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, - { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, - { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, - { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, - { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, - { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, - { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, - { name = "flext-cli", editable = "flext-cli" }, - { name = "flext-core", editable = "flext-core" }, - { name = "grpcio", specifier = ">=1.80.0" }, - { name = "grpcio-tools", specifier = ">=1.80.0" }, - { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, - { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, - { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, - { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, - { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, - { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, - { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, - { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, - { name = "prometheus-client", specifier = ">=0.25.0" }, - { name = "protobuf", specifier = ">=6.33.6" }, - { name = "psutil", specifier = ">=7.2.2" }, - { name = "pydantic", specifier = ">=2.13.3" }, - { name = "pydantic-core", specifier = ">=2.46.3" }, - { name = "pydantic-settings", specifier = ">=2.14.0" }, - { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, - { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, - { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, - { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, - { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, - { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, - { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, - { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, - { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, - { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, - { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, - { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, - { name = "sqlalchemy", specifier = ">=2.0.49" }, - { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, - { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, - { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, - { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, - { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, - { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, - { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, - { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, - { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, - { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, - { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, - { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, - { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, -] -provides-extras = ["dev"] - -[package.metadata.requires-dev] -codegen = [{ name = "flext-infra", editable = "flext-infra" }] -dev = [ - { name = "autoflake", specifier = ">=2.3.1" }, - { name = "bandit", specifier = ">=1.8" }, - { name = "black", specifier = ">=25.1" }, - { name = "blacken-docs", specifier = ">=1.19" }, - { name = "codespell", specifier = ">=2.3" }, - { name = "deptry", specifier = ">=0.23" }, - { name = "django-stubs", specifier = ">=5.2.2" }, - { name = "factory-boy", specifier = ">=3.3.1" }, - { name = "faker", specifier = ">=37.4" }, - { name = "flext-tests", editable = "flext-tests" }, - { name = "hypothesis", specifier = ">=6.125" }, - { name = "isort", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", specifier = ">=0.3" }, - { name = "mkdocs", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", specifier = ">=2" }, - { name = "mkdocs-exclude", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", specifier = ">=1" }, - { name = "mkdocs-material", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", specifier = ">=0.8" }, - { name = "mkdocs-redirects", specifier = ">=1.2" }, - { name = "mkdocs-section-index", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", specifier = ">=0.2" }, - { name = "mkdocstrings", specifier = ">=0.24" }, - { name = "mkdocstrings-python", specifier = ">=1.7" }, - { name = "pip-audit", specifier = ">=2.7.3" }, - { name = "pre-commit", specifier = ">=4.6.0" }, - { name = "pylint", specifier = ">=3.3" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", specifier = ">=8.4" }, - { name = "pytest-benchmark", specifier = ">=5.1" }, - { name = "pytest-clarity", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", specifier = ">=0.17.0" }, - { name = "pytest-cov", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", specifier = ">=2.2.1" }, - { name = "pytest-env", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", specifier = ">=0.9.2" }, - { name = "pytest-mock", specifier = ">=3.14" }, - { name = "pytest-randomly", specifier = ">=3.16" }, - { name = "pytest-sugar", specifier = ">=1" }, - { name = "pytest-timeout", specifier = ">=2.4" }, - { name = "pytest-xdist", specifier = ">=3.8" }, - { name = "pyupgrade", specifier = ">=3.19" }, - { name = "radon", specifier = ">=6.0.1" }, - { name = "ruff", specifier = ">=0.12.3" }, - { name = "types-cachetools", specifier = ">=6.2" }, - { name = "types-cffi", specifier = ">=2.0" }, - { name = "types-click", specifier = ">=7.1" }, - { name = "types-defusedxml", specifier = ">=0.7" }, - { name = "types-docker", specifier = ">=7.1" }, - { name = "types-flask", specifier = ">=1.1.6" }, - { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", specifier = ">=4.0" }, - { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", specifier = ">=7" }, - { name = "types-psycopg2", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", specifier = ">=0.6" }, - { name = "types-pyopenssl", specifier = ">=24.1" }, - { name = "types-python-dateutil", specifier = ">=2.9" }, - { name = "types-pyyaml", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", specifier = ">=4.6" }, - { name = "types-requests", specifier = ">=2.32.4" }, - { name = "types-setuptools", specifier = ">=80.9" }, - { name = "types-tabulate", specifier = ">=0.10" }, - { name = "types-toml", specifier = ">=0.10.8.20240310" }, - { name = "vulture", specifier = ">=2.13" }, -] - -[[package]] -name = "flext-infra" -version = "0.12.0rc0" -source = { editable = "flext-infra" } -dependencies = [ - { name = "defusedxml" }, - { name = "filelock" }, - { name = "flext-cli" }, - { name = "flext-core" }, - { name = "gitpython" }, - { name = "libcst" }, - { name = "mkdocs" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-material" }, - { name = "mkdocs-section-index" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "rope" }, -] - -[package.dev-dependencies] -dev = [ - { name = "actionlint-py" }, - { name = "autoflake" }, - { name = "bandit" }, - { name = "black" }, - { name = "blacken-docs" }, - { name = "codespell" }, - { name = "deptry" }, - { name = "django-stubs" }, - { name = "factory-boy" }, - { name = "faker" }, - { name = "flext-tests" }, - { name = "hypothesis" }, - { name = "isort" }, - { name = "matplotlib-stubs" }, - { name = "mkdocs" }, - { name = "mkdocs-awesome-pages-plugin" }, - { name = "mkdocs-encryptcontent-plugin" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-get-deps" }, - { name = "mkdocs-git-revision-date-localized-plugin" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-macros-plugin" }, - { name = "mkdocs-material" }, - { name = "mkdocs-material-extensions" }, - { name = "mkdocs-mermaid2-plugin" }, - { name = "mkdocs-minify-plugin" }, - { name = "mkdocs-print-site-plugin" }, - { name = "mkdocs-redirects" }, - { name = "mkdocs-section-index" }, - { name = "mkdocs-versioning" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "mypy" }, - { name = "pip-audit" }, - { name = "pre-commit" }, - { name = "pylint" }, - { name = "pyrefly" }, - { name = "pyright" }, - { name = "pytest" }, - { name = "pytest-benchmark" }, - { name = "pytest-clarity" }, - { name = "pytest-codeblocks" }, - { name = "pytest-cov" }, - { name = "pytest-deadfixtures" }, - { name = "pytest-env" }, - { name = "pytest-markdown-docs" }, - { name = "pytest-mock" }, - { name = "pytest-randomly" }, - { name = "pytest-sugar" }, - { name = "pytest-timeout" }, - { name = "pytest-xdist" }, - { name = "pyupgrade" }, - { name = "radon" }, - { name = "ruff" }, - { name = "rumdl" }, - { name = "types-cachetools" }, - { name = "types-cffi" }, - { name = "types-click" }, - { name = "types-defusedxml" }, - { name = "types-docker" }, - { name = "types-flask" }, - { name = "types-jsonschema" }, - { name = "types-ldap3" }, - { name = "types-paramiko" }, - { name = "types-protobuf" }, - { name = "types-psutil" }, - { name = "types-psycopg2" }, - { name = "types-pyasn1" }, - { name = "types-pyopenssl" }, - { name = "types-python-dateutil" }, - { name = "types-pyyaml" }, - { name = "types-redis" }, - { name = "types-requests" }, - { name = "types-setuptools" }, - { name = "types-tabulate" }, - { name = "types-toml" }, - { name = "vulture" }, - { name = "yamlfix" }, -] - -[package.metadata] -requires-dist = [ - { name = "defusedxml", specifier = ">=0.7.1" }, - { name = "filelock", specifier = ">=3.32.0" }, - { name = "flext-cli", editable = "flext-cli" }, - { name = "flext-core", editable = "flext-core" }, - { name = "gitpython", specifier = ">=3.1.57" }, - { name = "libcst", specifier = ">=1.8.6" }, - { name = "mkdocs", specifier = ">=1.6.1" }, - { name = "mkdocs-exclude", specifier = ">=1.0.2" }, - { name = "mkdocs-material", specifier = ">=9.7.7" }, - { name = "mkdocs-section-index", specifier = ">=0.3.12" }, - { name = "mkdocstrings", specifier = ">=1.0.6" }, - { name = "mkdocstrings-python", specifier = ">=2.0.5" }, - { name = "rope", specifier = ">=1.14.0" }, -] - -[package.metadata.requires-dev] -dev = [ - { name = "actionlint-py", specifier = ">=1.7.12.24" }, - { name = "autoflake", specifier = ">=2.3.3" }, - { name = "bandit", specifier = ">=1.9.4" }, - { name = "black", specifier = ">=26.5.1" }, - { name = "blacken-docs", specifier = ">=1.20.0" }, - { name = "codespell", specifier = ">=2.4.3" }, - { name = "deptry", specifier = ">=0.25.1" }, - { name = "django-stubs", specifier = ">=6.0.7" }, - { name = "factory-boy", specifier = ">=3.3.3" }, - { name = "faker", specifier = ">=40.36.0" }, - { name = "flext-tests", editable = "flext-tests" }, - { name = "hypothesis", specifier = ">=6.161.8" }, - { name = "isort", specifier = ">=8.0.1" }, - { name = "matplotlib-stubs", specifier = ">=0.3.11" }, - { name = "mkdocs", specifier = ">=1.6.1" }, - { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.10.1" }, - { name = "mkdocs-encryptcontent-plugin", specifier = ">=3.1.0" }, - { name = "mkdocs-exclude", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", specifier = ">=0.2.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.5.3" }, - { name = "mkdocs-literate-nav", specifier = ">=0.6.3" }, - { name = "mkdocs-macros-plugin", specifier = ">=1.5.0" }, - { name = "mkdocs-material", specifier = ">=9.7.7" }, - { name = "mkdocs-material-extensions", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", specifier = ">=1.2.3" }, - { name = "mkdocs-minify-plugin", specifier = ">=0.8.0" }, - { name = "mkdocs-print-site-plugin", specifier = ">=2.8" }, - { name = "mkdocs-redirects", specifier = ">=1.2.3" }, - { name = "mkdocs-section-index", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", specifier = ">=0.4.0" }, - { name = "mkdocstrings", specifier = ">=1.0.6" }, - { name = "mkdocstrings-python", specifier = ">=2.0.5" }, - { name = "mypy", specifier = ">=2.3.0" }, - { name = "pip-audit", specifier = ">=2.10.1" }, - { name = "pre-commit", specifier = ">=4.6.1" }, - { name = "pylint", specifier = ">=4.0.6" }, - { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyright", specifier = ">=1.1.411" }, - { name = "pytest", specifier = ">=9.1.1" }, - { name = "pytest-benchmark", specifier = ">=5.2.3" }, - { name = "pytest-clarity", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", specifier = ">=0.18.0" }, - { name = "pytest-cov", specifier = ">=7.1.0" }, - { name = "pytest-deadfixtures", specifier = ">=3.1.0" }, - { name = "pytest-env", specifier = ">=1.7.0" }, - { name = "pytest-markdown-docs", specifier = ">=0.9.2" }, - { name = "pytest-mock", specifier = ">=3.15.1" }, - { name = "pytest-randomly", specifier = ">=4.1.0" }, - { name = "pytest-sugar", specifier = ">=1.1.1" }, - { name = "pytest-timeout", specifier = ">=2.4.0" }, - { name = "pytest-xdist", specifier = ">=3.8.0" }, - { name = "pyupgrade", specifier = ">=3.21.2" }, - { name = "radon", specifier = ">=6.0.1" }, - { name = "ruff", specifier = ">=0.16.0" }, - { name = "rumdl", specifier = ">=0.2.43" }, - { name = "types-cachetools", specifier = ">=7.0.0.20260713" }, - { name = "types-cffi", specifier = ">=2.0.0.20260518" }, - { name = "types-click", specifier = ">=7.1.8" }, - { name = "types-defusedxml", specifier = ">=0.7.0.20260504" }, - { name = "types-docker", specifier = ">=7.2.0.20260724" }, - { name = "types-flask", specifier = ">=1.1.6" }, - { name = "types-jsonschema", specifier = ">=4.26.0.20260518" }, - { name = "types-ldap3", specifier = ">=2.9.13.20260518" }, - { name = "types-paramiko", specifier = ">=5.0.0.20260724" }, - { name = "types-protobuf", specifier = ">=7.34.1.20260518" }, - { name = "types-psutil", specifier = ">=7.2.2.20260518" }, - { name = "types-psycopg2", specifier = ">=2.9.21.20260724" }, - { name = "types-pyasn1", specifier = ">=0.6.0.20260724" }, - { name = "types-pyopenssl", specifier = ">=24.1.0.20240722" }, - { name = "types-python-dateutil", specifier = ">=2.9.0.20260716" }, - { name = "types-pyyaml", specifier = ">=6.0.12.20260724" }, - { name = "types-redis", specifier = ">=4.6.0.20241004" }, - { name = "types-requests", specifier = ">=2.33.0.20260712" }, - { name = "types-setuptools", specifier = ">=83.0.0.20260724" }, - { name = "types-tabulate", specifier = ">=0.10.0.20260508" }, - { name = "types-toml", specifier = ">=0.10.8.20260518" }, - { name = "vulture", specifier = ">=2.16" }, - { name = "yamlfix", specifier = ">=1.19.1" }, -] - -[[package]] -name = "flext-ldap" -version = "0.12.0rc0" -source = { editable = "flext-ldap" } -dependencies = [ - { name = "cryptography" }, - { name = "flext-cli" }, - { name = "flext-core" }, - { name = "flext-ldif" }, - { name = "ldap3" }, - { name = "pydantic" }, - { name = "pydantic-core" }, - { name = "pydantic-settings" }, - { name = "structlog" }, -] - -[package.dev-dependencies] -codegen = [ - { name = "flext-infra" }, -] -dev = [ - { name = "autoflake" }, - { name = "bandit" }, - { name = "black" }, - { name = "blacken-docs" }, - { name = "codespell" }, - { name = "deptry" }, - { name = "django-stubs" }, - { name = "factory-boy" }, - { name = "faker" }, - { name = "flext-tests" }, - { name = "hypothesis" }, - { name = "isort" }, - { name = "matplotlib-stubs" }, - { name = "mkdocs" }, - { name = "mkdocs-awesome-pages-plugin" }, - { name = "mkdocs-encryptcontent-plugin" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-get-deps" }, - { name = "mkdocs-git-revision-date-localized-plugin" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-macros-plugin" }, - { name = "mkdocs-material" }, - { name = "mkdocs-material-extensions" }, - { name = "mkdocs-mermaid2-plugin" }, - { name = "mkdocs-minify-plugin" }, - { name = "mkdocs-print-site-plugin" }, - { name = "mkdocs-redirects" }, - { name = "mkdocs-section-index" }, - { name = "mkdocs-versioning" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "pip-audit" }, - { name = "pre-commit" }, - { name = "pylint" }, - { name = "pyrefly" }, - { name = "pytest" }, - { name = "pytest-benchmark" }, - { name = "pytest-clarity" }, - { name = "pytest-codeblocks" }, - { name = "pytest-cov" }, - { name = "pytest-deadfixtures" }, - { name = "pytest-env" }, - { name = "pytest-markdown-docs" }, - { name = "pytest-mock" }, - { name = "pytest-randomly" }, - { name = "pytest-sugar" }, - { name = "pytest-timeout" }, - { name = "pytest-xdist" }, - { name = "pyupgrade" }, - { name = "radon" }, - { name = "ruff" }, - { name = "types-cachetools" }, - { name = "types-cffi" }, - { name = "types-click" }, - { name = "types-defusedxml" }, - { name = "types-docker" }, - { name = "types-flask" }, - { name = "types-jsonschema" }, - { name = "types-ldap3" }, - { name = "types-paramiko" }, - { name = "types-protobuf" }, - { name = "types-psutil" }, - { name = "types-psycopg2" }, - { name = "types-pyasn1" }, - { name = "types-pyopenssl" }, - { name = "types-python-dateutil" }, - { name = "types-pyyaml" }, - { name = "types-redis" }, - { name = "types-requests" }, - { name = "types-setuptools" }, - { name = "types-tabulate" }, - { name = "types-toml" }, - { name = "vulture" }, - { name = "yamlfix" }, -] - -[package.metadata] -requires-dist = [ - { name = "cryptography", specifier = ">=47.0.0" }, - { name = "flext-cli", editable = "flext-cli" }, - { name = "flext-core", editable = "flext-core" }, - { name = "flext-ldif", editable = "flext-ldif" }, - { name = "ldap3", specifier = ">=2.10.2rc4" }, - { name = "pydantic", specifier = ">=2.13.3" }, - { name = "pydantic-core", specifier = ">=2.46.3" }, - { name = "pydantic-settings", specifier = ">=2.14.0" }, - { name = "structlog", specifier = ">=25.5.0" }, -] - -[package.metadata.requires-dev] -codegen = [{ name = "flext-infra", editable = "flext-infra" }] -dev = [ - { name = "autoflake", specifier = ">=2.3.1" }, - { name = "bandit", specifier = ">=1.8" }, - { name = "black", specifier = ">=25.1" }, - { name = "blacken-docs", specifier = ">=1.19" }, - { name = "codespell", specifier = ">=2.3" }, - { name = "deptry", specifier = ">=0.23" }, - { name = "django-stubs", specifier = ">=5.2.2" }, - { name = "factory-boy", specifier = ">=3.3.1" }, - { name = "faker", specifier = ">=37.4" }, - { name = "flext-tests", editable = "flext-tests" }, - { name = "hypothesis", specifier = ">=6.125" }, - { name = "isort", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", specifier = ">=0.3" }, - { name = "mkdocs", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", specifier = ">=2" }, - { name = "mkdocs-exclude", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", specifier = ">=1" }, - { name = "mkdocs-material", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", specifier = ">=0.8" }, - { name = "mkdocs-redirects", specifier = ">=1.2" }, - { name = "mkdocs-section-index", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", specifier = ">=0.2" }, - { name = "mkdocstrings", specifier = ">=0.24" }, - { name = "mkdocstrings-python", specifier = ">=1.7" }, - { name = "pip-audit", specifier = ">=2.7.3" }, - { name = "pre-commit", specifier = ">=4.6.0" }, - { name = "pylint", specifier = ">=3.3" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", specifier = ">=8.4" }, - { name = "pytest-benchmark", specifier = ">=5.1" }, - { name = "pytest-clarity", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", specifier = ">=0.17.0" }, - { name = "pytest-cov", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", specifier = ">=2.2.1" }, - { name = "pytest-env", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", specifier = ">=0.9.2" }, - { name = "pytest-mock", specifier = ">=3.14" }, - { name = "pytest-randomly", specifier = ">=3.16" }, - { name = "pytest-sugar", specifier = ">=1" }, - { name = "pytest-timeout", specifier = ">=2.4" }, - { name = "pytest-xdist", specifier = ">=3.8" }, - { name = "pyupgrade", specifier = ">=3.19" }, - { name = "radon", specifier = ">=6.0.1" }, - { name = "ruff", specifier = ">=0.12.3" }, - { name = "types-cachetools", specifier = ">=6.2" }, - { name = "types-cffi", specifier = ">=2.0" }, - { name = "types-click", specifier = ">=7.1" }, - { name = "types-defusedxml", specifier = ">=0.7" }, - { name = "types-docker", specifier = ">=7.1" }, - { name = "types-flask", specifier = ">=1.1.6" }, - { name = "types-jsonschema", specifier = ">=4.26" }, - { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", specifier = ">=4.0" }, - { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", specifier = ">=7" }, - { name = "types-psycopg2", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", specifier = ">=0.6" }, - { name = "types-pyopenssl", specifier = ">=24.1" }, - { name = "types-python-dateutil", specifier = ">=2.9" }, - { name = "types-pyyaml", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", specifier = ">=4.6" }, - { name = "types-requests", specifier = ">=2.32.4" }, - { name = "types-setuptools", specifier = ">=80.9" }, - { name = "types-tabulate", specifier = ">=0.10" }, - { name = "types-toml", specifier = ">=0.10.8.20240310" }, - { name = "vulture", specifier = ">=2.13" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, -] - -[[package]] -name = "flext-ldif" -version = "0.12.0rc0" -source = { editable = "flext-ldif" } -dependencies = [ - { name = "colorlog" }, - { name = "flext-cli" }, - { name = "flext-core" }, - { name = "ldap3" }, - { name = "pydantic" }, - { name = "pydantic-core" }, - { name = "pydantic-settings" }, - { name = "structlog" }, -] - -[package.dev-dependencies] -codegen = [ - { name = "flext-infra" }, -] -dev = [ - { name = "autoflake" }, - { name = "bandit" }, - { name = "black" }, - { name = "blacken-docs" }, - { name = "codespell" }, - { name = "deptry" }, - { name = "django-stubs" }, - { name = "factory-boy" }, - { name = "faker" }, - { name = "flext-tests" }, - { name = "hypothesis" }, - { name = "isort" }, - { name = "matplotlib-stubs" }, - { name = "mkdocs" }, - { name = "mkdocs-awesome-pages-plugin" }, - { name = "mkdocs-encryptcontent-plugin" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-get-deps" }, - { name = "mkdocs-git-revision-date-localized-plugin" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-macros-plugin" }, - { name = "mkdocs-material" }, - { name = "mkdocs-material-extensions" }, - { name = "mkdocs-mermaid2-plugin" }, - { name = "mkdocs-minify-plugin" }, - { name = "mkdocs-print-site-plugin" }, - { name = "mkdocs-redirects" }, - { name = "mkdocs-section-index" }, - { name = "mkdocs-versioning" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "pip-audit" }, - { name = "pre-commit" }, - { name = "pylint" }, - { name = "pyrefly" }, - { name = "pytest" }, - { name = "pytest-benchmark" }, - { name = "pytest-clarity" }, - { name = "pytest-codeblocks" }, - { name = "pytest-cov" }, - { name = "pytest-deadfixtures" }, - { name = "pytest-env" }, - { name = "pytest-markdown-docs" }, - { name = "pytest-mock" }, - { name = "pytest-randomly" }, - { name = "pytest-sugar" }, - { name = "pytest-timeout" }, - { name = "pytest-xdist" }, - { name = "pyupgrade" }, - { name = "radon" }, - { name = "ruff" }, - { name = "types-cachetools" }, - { name = "types-cffi" }, - { name = "types-click" }, - { name = "types-defusedxml" }, - { name = "types-docker" }, - { name = "types-flask" }, - { name = "types-jsonschema" }, - { name = "types-ldap3" }, - { name = "types-paramiko" }, - { name = "types-protobuf" }, - { name = "types-psutil" }, - { name = "types-psycopg2" }, - { name = "types-pyasn1" }, - { name = "types-pyopenssl" }, - { name = "types-python-dateutil" }, - { name = "types-pyyaml" }, - { name = "types-redis" }, - { name = "types-requests" }, - { name = "types-setuptools" }, - { name = "types-tabulate" }, - { name = "types-toml" }, - { name = "vulture" }, - { name = "yamlfix" }, -] - -[package.metadata] -requires-dist = [ - { name = "colorlog", specifier = ">=6.10.1" }, - { name = "flext-cli", editable = "flext-cli" }, - { name = "flext-core", editable = "flext-core" }, - { name = "ldap3", specifier = ">=2.10.2rc4" }, - { name = "pydantic", specifier = ">=2.13.3" }, - { name = "pydantic-core", specifier = ">=2.46.3" }, - { name = "pydantic-settings", specifier = ">=2.14.0" }, - { name = "structlog", specifier = ">=25.5.0" }, -] - -[package.metadata.requires-dev] -codegen = [{ name = "flext-infra", editable = "flext-infra" }] -dev = [ - { name = "autoflake", specifier = ">=2.3.1" }, - { name = "bandit", specifier = ">=1.8" }, - { name = "black", specifier = ">=25.1" }, - { name = "blacken-docs", specifier = ">=1.19" }, - { name = "codespell", specifier = ">=2.3" }, - { name = "deptry", specifier = ">=0.23" }, - { name = "django-stubs", specifier = ">=5.2.2" }, - { name = "factory-boy", specifier = ">=3.3.1" }, - { name = "faker", specifier = ">=37.4" }, - { name = "flext-tests", editable = "flext-tests" }, - { name = "hypothesis", specifier = ">=6.125" }, - { name = "isort", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", specifier = ">=0.3" }, - { name = "mkdocs", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", specifier = ">=2" }, - { name = "mkdocs-exclude", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", specifier = ">=1" }, - { name = "mkdocs-material", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", specifier = ">=0.8" }, - { name = "mkdocs-redirects", specifier = ">=1.2" }, - { name = "mkdocs-section-index", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", specifier = ">=0.2" }, - { name = "mkdocstrings", specifier = ">=0.24" }, - { name = "mkdocstrings-python", specifier = ">=1.7" }, - { name = "pip-audit", specifier = ">=2.7.3" }, - { name = "pre-commit", specifier = ">=4.6.0" }, - { name = "pylint", specifier = ">=3.3" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", specifier = ">=8.4" }, - { name = "pytest-benchmark", specifier = ">=5.1" }, - { name = "pytest-clarity", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", specifier = ">=0.17.0" }, - { name = "pytest-cov", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", specifier = ">=2.2.1" }, - { name = "pytest-env", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", specifier = ">=0.9.2" }, - { name = "pytest-mock", specifier = ">=3.14" }, - { name = "pytest-randomly", specifier = ">=3.16" }, - { name = "pytest-sugar", specifier = ">=1" }, - { name = "pytest-timeout", specifier = ">=2.4" }, - { name = "pytest-xdist", specifier = ">=3.8" }, - { name = "pyupgrade", specifier = ">=3.19" }, - { name = "radon", specifier = ">=6.0.1" }, - { name = "ruff", specifier = ">=0.12.3" }, - { name = "types-cachetools", specifier = ">=6.2" }, - { name = "types-cffi", specifier = ">=2.0" }, - { name = "types-click", specifier = ">=7.1" }, - { name = "types-defusedxml", specifier = ">=0.7" }, - { name = "types-docker", specifier = ">=7.1" }, - { name = "types-flask", specifier = ">=1.1.6" }, - { name = "types-jsonschema", specifier = ">=4.26" }, - { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", specifier = ">=4.0" }, - { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", specifier = ">=7" }, - { name = "types-psycopg2", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", specifier = ">=0.6" }, - { name = "types-pyopenssl", specifier = ">=24.1" }, - { name = "types-python-dateutil", specifier = ">=2.9" }, - { name = "types-pyyaml", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", specifier = ">=4.6" }, - { name = "types-requests", specifier = ">=2.32.4" }, - { name = "types-setuptools", specifier = ">=80.9" }, - { name = "types-tabulate", specifier = ">=0.10" }, - { name = "types-toml", specifier = ">=0.10.8.20240310" }, - { name = "vulture", specifier = ">=2.13" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, -] - -[[package]] -name = "flext-meltano" -version = "0.12.0rc0" -source = { editable = "flext-meltano" } -dependencies = [ - { name = "alembic" }, - { name = "dbt-adapters" }, - { name = "dbt-common" }, - { name = "dbt-core" }, - { name = "duckdb" }, - { name = "fastapi" }, - { name = "flext-cli" }, - { name = "flext-core" }, - { name = "httpx" }, - { name = "injectable" }, - { name = "jinja2" }, - { name = "meltano" }, - { name = "pandas" }, - { name = "prometheus-client" }, - { name = "pydantic" }, - { name = "pydantic-core" }, - { name = "pydantic-settings" }, - { name = "python-dotenv" }, - { name = "pyyaml" }, - { name = "referencing" }, - { name = "requests" }, - { name = "setuptools" }, - { name = "singer-sdk" }, - { name = "sqlalchemy" }, - { name = "structlog" }, - { name = "uvicorn" }, - { name = "wrapt" }, -] - -[package.optional-dependencies] -dev = [ - { name = "autoflake" }, - { name = "bandit" }, - { name = "black" }, - { name = "blacken-docs" }, - { name = "codespell" }, - { name = "deptry" }, - { name = "django-stubs" }, - { name = "factory-boy" }, - { name = "faker" }, - { name = "hypothesis" }, - { name = "isort" }, - { name = "matplotlib-stubs" }, - { name = "mkdocs" }, - { name = "mkdocs-awesome-pages-plugin" }, - { name = "mkdocs-encryptcontent-plugin" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-get-deps" }, - { name = "mkdocs-git-revision-date-localized-plugin" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-macros-plugin" }, - { name = "mkdocs-material" }, - { name = "mkdocs-material-extensions" }, - { name = "mkdocs-mermaid2-plugin" }, - { name = "mkdocs-minify-plugin" }, - { name = "mkdocs-print-site-plugin" }, - { name = "mkdocs-redirects" }, - { name = "mkdocs-section-index" }, - { name = "mkdocs-versioning" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "pip-audit" }, - { name = "pre-commit" }, - { name = "pylint" }, - { name = "pyrefly" }, - { name = "pytest" }, - { name = "pytest-benchmark" }, - { name = "pytest-clarity" }, - { name = "pytest-codeblocks" }, - { name = "pytest-cov" }, - { name = "pytest-deadfixtures" }, - { name = "pytest-env" }, - { name = "pytest-markdown-docs" }, - { name = "pytest-mock" }, - { name = "pytest-randomly" }, - { name = "pytest-sugar" }, - { name = "pytest-timeout" }, - { name = "pytest-xdist" }, - { name = "pyupgrade" }, - { name = "radon" }, - { name = "ruff" }, - { name = "types-cachetools" }, - { name = "types-cffi" }, - { name = "types-click" }, - { name = "types-defusedxml" }, - { name = "types-docker" }, - { name = "types-flask" }, - { name = "types-jsonschema" }, - { name = "types-ldap3" }, - { name = "types-paramiko" }, - { name = "types-protobuf" }, - { name = "types-psutil" }, - { name = "types-psycopg2" }, - { name = "types-pyasn1" }, - { name = "types-pyopenssl" }, - { name = "types-python-dateutil" }, - { name = "types-pyyaml" }, - { name = "types-redis" }, - { name = "types-requests" }, - { name = "types-setuptools" }, - { name = "types-tabulate" }, - { name = "types-toml" }, - { name = "vulture" }, - { name = "yamlfix" }, -] - -[package.dev-dependencies] -codegen = [ - { name = "flext-infra" }, -] -dev = [ - { name = "autoflake" }, - { name = "bandit" }, - { name = "black" }, - { name = "blacken-docs" }, - { name = "codespell" }, - { name = "deptry" }, - { name = "django-stubs" }, - { name = "factory-boy" }, - { name = "faker" }, - { name = "flext-tests" }, - { name = "hypothesis" }, - { name = "isort" }, - { name = "matplotlib-stubs" }, - { name = "mkdocs" }, - { name = "mkdocs-awesome-pages-plugin" }, - { name = "mkdocs-encryptcontent-plugin" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-get-deps" }, - { name = "mkdocs-git-revision-date-localized-plugin" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-macros-plugin" }, - { name = "mkdocs-material" }, - { name = "mkdocs-material-extensions" }, - { name = "mkdocs-mermaid2-plugin" }, - { name = "mkdocs-minify-plugin" }, - { name = "mkdocs-print-site-plugin" }, - { name = "mkdocs-redirects" }, - { name = "mkdocs-section-index" }, - { name = "mkdocs-versioning" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "pip-audit" }, - { name = "pre-commit" }, - { name = "psycopg2" }, - { name = "pylint" }, - { name = "pyrefly" }, - { name = "pytest" }, - { name = "pytest-benchmark" }, - { name = "pytest-clarity" }, - { name = "pytest-codeblocks" }, - { name = "pytest-cov" }, - { name = "pytest-deadfixtures" }, - { name = "pytest-env" }, - { name = "pytest-markdown-docs" }, - { name = "pytest-mock" }, - { name = "pytest-randomly" }, - { name = "pytest-sugar" }, - { name = "pytest-timeout" }, - { name = "pytest-xdist" }, - { name = "pyupgrade" }, - { name = "radon" }, - { name = "redis" }, - { name = "ruff" }, - { name = "types-cachetools" }, - { name = "types-cffi" }, - { name = "types-click" }, - { name = "types-defusedxml" }, - { name = "types-docker" }, - { name = "types-flask" }, - { name = "types-ldap3" }, - { name = "types-paramiko" }, - { name = "types-protobuf" }, - { name = "types-psutil" }, - { name = "types-psycopg2" }, - { name = "types-pyasn1" }, - { name = "types-pyopenssl" }, - { name = "types-python-dateutil" }, - { name = "types-pyyaml" }, - { name = "types-redis" }, - { name = "types-requests" }, - { name = "types-setuptools" }, - { name = "types-tabulate" }, - { name = "types-toml" }, - { name = "vulture" }, -] - -[package.metadata] -requires-dist = [ - { name = "alembic", specifier = ">=1.18.4" }, - { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, - { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, - { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, - { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, - { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, - { name = "dbt-adapters", specifier = ">=1.24.4" }, - { name = "dbt-common", specifier = ">=1.38.0" }, - { name = "dbt-core", specifier = ">=1.12.0,<1.13" }, - { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, - { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, - { name = "duckdb", specifier = ">=1.5.2" }, - { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, - { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, - { name = "fastapi", specifier = ">=0.136.1" }, - { name = "flext-cli", editable = "flext-cli" }, - { name = "flext-core", editable = "flext-core" }, - { name = "httpx", specifier = ">=0.28.1" }, - { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, - { name = "injectable", specifier = ">=4.0.1" }, - { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "jinja2", specifier = ">=3.1.6" }, - { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, - { name = "meltano", specifier = ">=4.2.1" }, - { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, - { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, - { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, - { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, - { name = "pandas", specifier = ">=3.0.2" }, - { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, - { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, - { name = "prometheus-client", specifier = ">=0.25.0" }, - { name = "pydantic", specifier = ">=2.13.3" }, - { name = "pydantic-core", specifier = ">=2.46.3" }, - { name = "pydantic-settings", specifier = ">=2.14.0" }, - { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, - { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, - { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, - { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, - { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, - { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, - { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, - { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, - { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, - { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, - { name = "python-dotenv", specifier = ">=1.2.2" }, - { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, - { name = "pyyaml", specifier = ">=6.0.3" }, - { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "referencing", specifier = ">=0.37.0" }, - { name = "requests", specifier = ">=2.33.1" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, - { name = "setuptools", specifier = ">=82.0.1" }, - { name = "singer-sdk", specifier = ">=0.53.7" }, - { name = "sqlalchemy", specifier = ">=2.0.49" }, - { name = "structlog", specifier = ">=25.5.0" }, - { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, - { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, - { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, - { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, - { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, - { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, - { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, - { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, - { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, - { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, - { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, - { name = "uvicorn", specifier = ">=0.46.0" }, - { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, - { name = "wrapt", specifier = ">=2.1.2" }, - { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, -] -provides-extras = ["dev"] - -[package.metadata.requires-dev] -codegen = [{ name = "flext-infra", editable = "flext-infra" }] -dev = [ - { name = "autoflake", specifier = ">=2.3.1" }, - { name = "bandit", specifier = ">=1.8" }, - { name = "black", specifier = ">=25.1" }, - { name = "blacken-docs", specifier = ">=1.19" }, - { name = "codespell", specifier = ">=2.3" }, - { name = "deptry", specifier = ">=0.23" }, - { name = "django-stubs", specifier = ">=5.2.2" }, - { name = "factory-boy", specifier = ">=3.3.1" }, - { name = "faker", specifier = ">=37.4" }, - { name = "flext-tests", editable = "flext-tests" }, - { name = "hypothesis", specifier = ">=6.125" }, - { name = "isort", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", specifier = ">=0.3" }, - { name = "mkdocs", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", specifier = ">=2" }, - { name = "mkdocs-exclude", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", specifier = ">=1" }, - { name = "mkdocs-material", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", specifier = ">=0.8" }, - { name = "mkdocs-redirects", specifier = ">=1.2" }, - { name = "mkdocs-section-index", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", specifier = ">=0.2" }, - { name = "mkdocstrings", specifier = ">=0.24" }, - { name = "mkdocstrings-python", specifier = ">=1.7" }, - { name = "pip-audit", specifier = ">=2.7.3" }, - { name = "pre-commit", specifier = ">=4.6.0" }, - { name = "psycopg2", specifier = ">=2.9.12" }, - { name = "pylint", specifier = ">=3.3" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", specifier = ">=8.4" }, - { name = "pytest-benchmark", specifier = ">=5.1" }, - { name = "pytest-clarity", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", specifier = ">=0.17.0" }, - { name = "pytest-cov", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", specifier = ">=2.2.1" }, - { name = "pytest-env", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", specifier = ">=0.9.2" }, - { name = "pytest-mock", specifier = ">=3.14" }, - { name = "pytest-randomly", specifier = ">=3.16" }, - { name = "pytest-sugar", specifier = ">=1" }, - { name = "pytest-timeout", specifier = ">=2.4" }, - { name = "pytest-xdist", specifier = ">=3.8" }, - { name = "pyupgrade", specifier = ">=3.19" }, - { name = "radon", specifier = ">=6.0.1" }, - { name = "redis", specifier = ">=7.4.0" }, - { name = "ruff", specifier = ">=0.12.3" }, - { name = "types-cachetools", specifier = ">=6.2" }, - { name = "types-cffi", specifier = ">=2.0" }, - { name = "types-click", specifier = ">=7.1" }, - { name = "types-defusedxml", specifier = ">=0.7" }, - { name = "types-docker", specifier = ">=7.1" }, - { name = "types-flask", specifier = ">=1.1.6" }, - { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", specifier = ">=4.0" }, - { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", specifier = ">=7" }, - { name = "types-psycopg2", specifier = ">=2.9.21.20260422" }, - { name = "types-pyasn1", specifier = ">=0.6" }, - { name = "types-pyopenssl", specifier = ">=24.1" }, - { name = "types-python-dateutil", specifier = ">=2.9" }, - { name = "types-pyyaml", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", specifier = ">=4.6.0.20241004" }, - { name = "types-requests", specifier = ">=2.32.4" }, - { name = "types-setuptools", specifier = ">=80.9" }, - { name = "types-tabulate", specifier = ">=0.10" }, - { name = "types-toml", specifier = ">=0.10.8.20240310" }, - { name = "vulture", specifier = ">=2.13" }, -] - -[[package]] -name = "flext-observability" -version = "0.12.0rc0" -source = { editable = "flext-observability" } -dependencies = [ - { name = "flask" }, - { name = "flext-cli" }, - { name = "flext-core" }, - { name = "opentelemetry-api" }, - { name = "opentelemetry-exporter-otlp-proto-grpc" }, - { name = "opentelemetry-exporter-prometheus" }, - { name = "opentelemetry-sdk" }, - { name = "prometheus-client" }, - { name = "psutil" }, - { name = "pydantic" }, - { name = "pydantic-core" }, - { name = "pydantic-settings" }, - { name = "rich" }, - { name = "starlette" }, - { name = "structlog" }, - { name = "typer" }, -] - -[package.optional-dependencies] -dev = [ - { name = "autoflake" }, - { name = "bandit" }, - { name = "black" }, - { name = "blacken-docs" }, - { name = "codespell" }, - { name = "deptry" }, - { name = "django-stubs" }, - { name = "factory-boy" }, - { name = "faker" }, - { name = "hypothesis" }, - { name = "isort" }, - { name = "matplotlib-stubs" }, - { name = "mkdocs" }, - { name = "mkdocs-awesome-pages-plugin" }, - { name = "mkdocs-encryptcontent-plugin" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-get-deps" }, - { name = "mkdocs-git-revision-date-localized-plugin" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-macros-plugin" }, - { name = "mkdocs-material" }, - { name = "mkdocs-material-extensions" }, - { name = "mkdocs-mermaid2-plugin" }, - { name = "mkdocs-minify-plugin" }, - { name = "mkdocs-print-site-plugin" }, - { name = "mkdocs-redirects" }, - { name = "mkdocs-section-index" }, - { name = "mkdocs-versioning" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "pip-audit" }, - { name = "pre-commit" }, - { name = "pylint" }, - { name = "pyrefly" }, - { name = "pytest" }, - { name = "pytest-benchmark" }, - { name = "pytest-clarity" }, - { name = "pytest-codeblocks" }, - { name = "pytest-cov" }, - { name = "pytest-deadfixtures" }, - { name = "pytest-env" }, - { name = "pytest-markdown-docs" }, - { name = "pytest-mock" }, - { name = "pytest-randomly" }, - { name = "pytest-sugar" }, - { name = "pytest-timeout" }, - { name = "pytest-xdist" }, - { name = "pyupgrade" }, - { name = "radon" }, - { name = "ruff" }, - { name = "types-cachetools" }, - { name = "types-cffi" }, - { name = "types-click" }, - { name = "types-defusedxml" }, - { name = "types-docker" }, - { name = "types-flask" }, - { name = "types-jsonschema" }, - { name = "types-ldap3" }, - { name = "types-paramiko" }, - { name = "types-protobuf" }, - { name = "types-psutil" }, - { name = "types-psycopg2" }, - { name = "types-pyasn1" }, - { name = "types-pyopenssl" }, - { name = "types-python-dateutil" }, - { name = "types-pyyaml" }, - { name = "types-redis" }, - { name = "types-requests" }, - { name = "types-setuptools" }, - { name = "types-tabulate" }, - { name = "types-toml" }, - { name = "vulture" }, - { name = "yamlfix" }, -] - -[package.dev-dependencies] -codegen = [ - { name = "flext-infra" }, -] -dev = [ - { name = "autoflake" }, - { name = "bandit" }, - { name = "black" }, - { name = "blacken-docs" }, - { name = "codespell" }, - { name = "deptry" }, - { name = "django-stubs" }, - { name = "factory-boy" }, - { name = "faker" }, - { name = "flext-tests" }, - { name = "hypothesis" }, - { name = "isort" }, - { name = "matplotlib-stubs" }, - { name = "mkdocs" }, - { name = "mkdocs-awesome-pages-plugin" }, - { name = "mkdocs-encryptcontent-plugin" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-get-deps" }, - { name = "mkdocs-git-revision-date-localized-plugin" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-macros-plugin" }, - { name = "mkdocs-material" }, - { name = "mkdocs-material-extensions" }, - { name = "mkdocs-mermaid2-plugin" }, - { name = "mkdocs-minify-plugin" }, - { name = "mkdocs-print-site-plugin" }, - { name = "mkdocs-redirects" }, - { name = "mkdocs-section-index" }, - { name = "mkdocs-versioning" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "pip-audit" }, - { name = "pre-commit" }, - { name = "pylint" }, - { name = "pyrefly" }, - { name = "pytest" }, - { name = "pytest-benchmark" }, - { name = "pytest-clarity" }, - { name = "pytest-codeblocks" }, - { name = "pytest-cov" }, - { name = "pytest-deadfixtures" }, - { name = "pytest-env" }, - { name = "pytest-markdown-docs" }, - { name = "pytest-mock" }, - { name = "pytest-randomly" }, - { name = "pytest-sugar" }, - { name = "pytest-timeout" }, - { name = "pytest-xdist" }, - { name = "pyupgrade" }, - { name = "radon" }, - { name = "ruff" }, - { name = "types-cachetools" }, - { name = "types-cffi" }, - { name = "types-click" }, - { name = "types-defusedxml" }, - { name = "types-docker" }, - { name = "types-flask" }, - { name = "types-ldap3" }, - { name = "types-paramiko" }, - { name = "types-protobuf" }, - { name = "types-psutil" }, - { name = "types-psycopg2" }, - { name = "types-pyasn1" }, - { name = "types-pyopenssl" }, - { name = "types-python-dateutil" }, - { name = "types-pyyaml" }, - { name = "types-redis" }, - { name = "types-requests" }, - { name = "types-setuptools" }, - { name = "types-tabulate" }, - { name = "types-toml" }, - { name = "vulture" }, -] - -[package.metadata] -requires-dist = [ - { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, - { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, - { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, - { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, - { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, - { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, - { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, - { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, - { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, - { name = "flask", specifier = ">=3.1.3" }, - { name = "flext-cli", editable = "flext-cli" }, - { name = "flext-core", editable = "flext-core" }, - { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, - { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, - { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, - { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, - { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, - { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, - { name = "opentelemetry-api", specifier = ">=1.41.1" }, - { name = "opentelemetry-exporter-otlp-proto-grpc", specifier = ">=1.41.1" }, - { name = "opentelemetry-exporter-prometheus", specifier = ">=0.62b1" }, - { name = "opentelemetry-sdk", specifier = ">=1.41.1" }, - { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, - { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, - { name = "prometheus-client", specifier = ">=0.25.0" }, - { name = "psutil", specifier = ">=7.2.2" }, - { name = "pydantic", specifier = ">=2.13.3" }, - { name = "pydantic-core", specifier = ">=2.46.3" }, - { name = "pydantic-settings", specifier = ">=2.14.0" }, - { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, - { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, - { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, - { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, - { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, - { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, - { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, - { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, - { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, - { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, - { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, - { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "rich", specifier = ">=14,<15" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, - { name = "starlette", specifier = ">=1.0.0" }, - { name = "structlog", specifier = ">=25.5.0" }, - { name = "typer", specifier = ">=0.25.1" }, - { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, - { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, - { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, - { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, - { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, - { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, - { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, - { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, - { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, - { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, - { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, - { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, - { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, -] -provides-extras = ["dev"] - -[package.metadata.requires-dev] -codegen = [{ name = "flext-infra", editable = "flext-infra" }] -dev = [ - { name = "autoflake", specifier = ">=2.3.1" }, - { name = "bandit", specifier = ">=1.8" }, - { name = "black", specifier = ">=25.1" }, - { name = "blacken-docs", specifier = ">=1.19" }, - { name = "codespell", specifier = ">=2.3" }, - { name = "deptry", specifier = ">=0.23" }, - { name = "django-stubs", specifier = ">=5.2.2" }, - { name = "factory-boy", specifier = ">=3.3.1" }, - { name = "faker", specifier = ">=37.4" }, - { name = "flext-tests", editable = "flext-tests" }, - { name = "hypothesis", specifier = ">=6.125" }, - { name = "isort", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", specifier = ">=0.3" }, - { name = "mkdocs", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", specifier = ">=2" }, - { name = "mkdocs-exclude", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", specifier = ">=1" }, - { name = "mkdocs-material", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", specifier = ">=0.8" }, - { name = "mkdocs-redirects", specifier = ">=1.2" }, - { name = "mkdocs-section-index", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", specifier = ">=0.2" }, - { name = "mkdocstrings", specifier = ">=0.24" }, - { name = "mkdocstrings-python", specifier = ">=1.7" }, - { name = "pip-audit", specifier = ">=2.7.3" }, - { name = "pre-commit", specifier = ">=4.6.0" }, - { name = "pylint", specifier = ">=3.3" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", specifier = ">=8.4" }, - { name = "pytest-benchmark", specifier = ">=5.1" }, - { name = "pytest-clarity", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", specifier = ">=0.17.0" }, - { name = "pytest-cov", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", specifier = ">=2.2.1" }, - { name = "pytest-env", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", specifier = ">=0.9.2" }, - { name = "pytest-mock", specifier = ">=3.14" }, - { name = "pytest-randomly", specifier = ">=3.16" }, - { name = "pytest-sugar", specifier = ">=1" }, - { name = "pytest-timeout", specifier = ">=2.4" }, - { name = "pytest-xdist", specifier = ">=3.8" }, - { name = "pyupgrade", specifier = ">=3.19" }, - { name = "radon", specifier = ">=6.0.1" }, - { name = "ruff", specifier = ">=0.12.3" }, - { name = "types-cachetools", specifier = ">=6.2" }, - { name = "types-cffi", specifier = ">=2.0" }, - { name = "types-click", specifier = ">=7.1" }, - { name = "types-defusedxml", specifier = ">=0.7" }, - { name = "types-docker", specifier = ">=7.1" }, - { name = "types-flask", specifier = ">=1.1.6" }, - { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", specifier = ">=4.0" }, - { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", specifier = ">=7" }, - { name = "types-psycopg2", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", specifier = ">=0.6" }, - { name = "types-pyopenssl", specifier = ">=24.1" }, - { name = "types-python-dateutil", specifier = ">=2.9" }, - { name = "types-pyyaml", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", specifier = ">=4.6" }, - { name = "types-requests", specifier = ">=2.32.4" }, - { name = "types-setuptools", specifier = ">=80.9" }, - { name = "types-tabulate", specifier = ">=0.10" }, - { name = "types-toml", specifier = ">=0.10.8.20240310" }, - { name = "vulture", specifier = ">=2.13" }, -] - -[[package]] -name = "flext-oracle-oic" -version = "0.12.0rc0" -source = { editable = "flext-oracle-oic" } -dependencies = [ - { name = "flext-api" }, - { name = "flext-auth" }, - { name = "flext-cli" }, - { name = "flext-core" }, - { name = "httpx" }, - { name = "pydantic" }, - { name = "pydantic-core" }, - { name = "pydantic-settings" }, - { name = "requests" }, - { name = "tenacity" }, - { name = "typer" }, - { name = "urllib3" }, -] - -[package.optional-dependencies] -dev = [ - { name = "autoflake" }, - { name = "bandit" }, - { name = "black" }, - { name = "blacken-docs" }, - { name = "codespell" }, - { name = "deptry" }, - { name = "django-stubs" }, - { name = "factory-boy" }, - { name = "faker" }, - { name = "hypothesis" }, - { name = "isort" }, - { name = "matplotlib-stubs" }, - { name = "mkdocs" }, - { name = "mkdocs-awesome-pages-plugin" }, - { name = "mkdocs-encryptcontent-plugin" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-get-deps" }, - { name = "mkdocs-git-revision-date-localized-plugin" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-macros-plugin" }, - { name = "mkdocs-material" }, - { name = "mkdocs-material-extensions" }, - { name = "mkdocs-mermaid2-plugin" }, - { name = "mkdocs-minify-plugin" }, - { name = "mkdocs-print-site-plugin" }, - { name = "mkdocs-redirects" }, - { name = "mkdocs-section-index" }, - { name = "mkdocs-versioning" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "pip-audit" }, - { name = "pre-commit" }, - { name = "pylint" }, - { name = "pyrefly" }, - { name = "pytest" }, - { name = "pytest-benchmark" }, - { name = "pytest-clarity" }, - { name = "pytest-codeblocks" }, - { name = "pytest-cov" }, - { name = "pytest-deadfixtures" }, - { name = "pytest-env" }, - { name = "pytest-markdown-docs" }, - { name = "pytest-mock" }, - { name = "pytest-randomly" }, - { name = "pytest-sugar" }, - { name = "pytest-timeout" }, - { name = "pytest-xdist" }, - { name = "pyupgrade" }, - { name = "radon" }, - { name = "ruff" }, - { name = "types-cachetools" }, - { name = "types-cffi" }, - { name = "types-click" }, - { name = "types-defusedxml" }, - { name = "types-docker" }, - { name = "types-flask" }, - { name = "types-jsonschema" }, - { name = "types-ldap3" }, - { name = "types-paramiko" }, - { name = "types-protobuf" }, - { name = "types-psutil" }, - { name = "types-psycopg2" }, - { name = "types-pyasn1" }, - { name = "types-pyopenssl" }, - { name = "types-python-dateutil" }, - { name = "types-pyyaml" }, - { name = "types-redis" }, - { name = "types-requests" }, - { name = "types-setuptools" }, - { name = "types-tabulate" }, - { name = "types-toml" }, - { name = "vulture" }, - { name = "yamlfix" }, -] - -[package.dev-dependencies] -codegen = [ - { name = "flext-infra" }, -] -dev = [ - { name = "autoflake" }, - { name = "bandit" }, - { name = "black" }, - { name = "blacken-docs" }, - { name = "codespell" }, - { name = "deptry" }, - { name = "django-stubs" }, - { name = "factory-boy" }, - { name = "faker" }, - { name = "flext-tests" }, - { name = "hypothesis" }, - { name = "isort" }, - { name = "matplotlib-stubs" }, - { name = "mkdocs" }, - { name = "mkdocs-awesome-pages-plugin" }, - { name = "mkdocs-encryptcontent-plugin" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-get-deps" }, - { name = "mkdocs-git-revision-date-localized-plugin" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-macros-plugin" }, - { name = "mkdocs-material" }, - { name = "mkdocs-material-extensions" }, - { name = "mkdocs-mermaid2-plugin" }, - { name = "mkdocs-minify-plugin" }, - { name = "mkdocs-print-site-plugin" }, - { name = "mkdocs-redirects" }, - { name = "mkdocs-section-index" }, - { name = "mkdocs-versioning" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "pip-audit" }, - { name = "pre-commit" }, - { name = "pylint" }, - { name = "pyrefly" }, - { name = "pytest" }, - { name = "pytest-benchmark" }, - { name = "pytest-clarity" }, - { name = "pytest-codeblocks" }, - { name = "pytest-cov" }, - { name = "pytest-deadfixtures" }, - { name = "pytest-env" }, - { name = "pytest-markdown-docs" }, - { name = "pytest-mock" }, - { name = "pytest-randomly" }, - { name = "pytest-sugar" }, - { name = "pytest-timeout" }, - { name = "pytest-xdist" }, - { name = "pyupgrade" }, - { name = "radon" }, - { name = "ruff" }, - { name = "types-cachetools" }, - { name = "types-cffi" }, - { name = "types-click" }, - { name = "types-defusedxml" }, - { name = "types-docker" }, - { name = "types-flask" }, - { name = "types-ldap3" }, - { name = "types-paramiko" }, - { name = "types-protobuf" }, - { name = "types-psutil" }, - { name = "types-psycopg2" }, - { name = "types-pyasn1" }, - { name = "types-pyopenssl" }, - { name = "types-python-dateutil" }, - { name = "types-pyyaml" }, - { name = "types-redis" }, - { name = "types-requests" }, - { name = "types-setuptools" }, - { name = "types-tabulate" }, - { name = "types-toml" }, - { name = "vulture" }, -] - -[package.metadata] -requires-dist = [ - { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, - { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, - { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, - { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, - { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, - { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, - { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, - { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, - { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, - { name = "flext-api", editable = "flext-api" }, - { name = "flext-auth", editable = "flext-auth" }, - { name = "flext-cli", editable = "flext-cli" }, - { name = "flext-core", editable = "flext-core" }, - { name = "httpx", specifier = ">=0.28.1" }, - { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, - { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, - { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, - { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, - { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, - { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, - { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, - { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, - { name = "pydantic", specifier = ">=2.13.3" }, - { name = "pydantic-core", specifier = ">=2.46.3" }, - { name = "pydantic-settings", specifier = ">=2.14.0" }, - { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, - { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, - { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, - { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, - { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, - { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, - { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, - { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, - { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, - { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, - { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, - { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "requests", specifier = ">=2.33.1" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, - { name = "tenacity", specifier = ">=9.1.4" }, - { name = "typer", specifier = ">=0.25.1" }, - { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, - { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, - { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, - { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, - { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, - { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, - { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, - { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, - { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, - { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, - { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, - { name = "urllib3", specifier = ">=2.6.3" }, - { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, - { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, -] -provides-extras = ["dev"] - -[package.metadata.requires-dev] -codegen = [{ name = "flext-infra", editable = "flext-infra" }] -dev = [ - { name = "autoflake", specifier = ">=2.3.1" }, - { name = "bandit", specifier = ">=1.8" }, - { name = "black", specifier = ">=25.1" }, - { name = "blacken-docs", specifier = ">=1.19" }, - { name = "codespell", specifier = ">=2.3" }, - { name = "deptry", specifier = ">=0.23" }, - { name = "django-stubs", specifier = ">=5.2.2" }, - { name = "factory-boy", specifier = ">=3.3.1" }, - { name = "faker", specifier = ">=37.4" }, + { name = "actionlint-py", specifier = ">=1.7.12.24" }, + { name = "autoflake", specifier = ">=2.3.3" }, + { name = "bandit", specifier = ">=1.9.4" }, + { name = "black", specifier = ">=26.5.1" }, + { name = "blacken-docs", specifier = ">=1.20.0" }, + { name = "codespell", specifier = ">=2.4.3" }, + { name = "deptry", specifier = ">=0.25.1" }, + { name = "django-stubs", specifier = ">=6.0.7" }, + { name = "factory-boy", specifier = ">=3.3.3" }, + { name = "faker", specifier = ">=40.36.0" }, { name = "flext-tests", editable = "flext-tests" }, - { name = "hypothesis", specifier = ">=6.125" }, - { name = "isort", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", specifier = ">=0.3" }, - { name = "mkdocs", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", specifier = ">=2" }, + { name = "hypothesis", specifier = ">=6.163.0" }, + { name = "isort", specifier = ">=8.0.1" }, + { name = "matplotlib-stubs", specifier = ">=0.3.11" }, + { name = "mkdocs", specifier = ">=1.6.1" }, + { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.10.1" }, + { name = "mkdocs-encryptcontent-plugin", specifier = ">=3.1.0" }, { name = "mkdocs-exclude", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", specifier = ">=1" }, - { name = "mkdocs-material", specifier = ">=9.5" }, + { name = "mkdocs-get-deps", specifier = ">=0.2.2" }, + { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.5.3" }, + { name = "mkdocs-literate-nav", specifier = ">=0.6.3" }, + { name = "mkdocs-macros-plugin", specifier = ">=1.5.0" }, + { name = "mkdocs-material", specifier = ">=9.7.7" }, { name = "mkdocs-material-extensions", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", specifier = ">=0.8" }, - { name = "mkdocs-redirects", specifier = ">=1.2" }, + { name = "mkdocs-mermaid2-plugin", specifier = ">=1.2.3" }, + { name = "mkdocs-minify-plugin", specifier = ">=0.8.0" }, + { name = "mkdocs-print-site-plugin", specifier = ">=2.8" }, + { name = "mkdocs-redirects", specifier = ">=1.2.3" }, { name = "mkdocs-section-index", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", specifier = ">=0.2" }, - { name = "mkdocstrings", specifier = ">=0.24" }, - { name = "mkdocstrings-python", specifier = ">=1.7" }, - { name = "pip-audit", specifier = ">=2.7.3" }, - { name = "pre-commit", specifier = ">=4.6.0" }, - { name = "pylint", specifier = ">=3.3" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", specifier = ">=8.4" }, - { name = "pytest-benchmark", specifier = ">=5.1" }, + { name = "mkdocs-versioning", specifier = ">=0.4.0" }, + { name = "mkdocstrings", specifier = ">=1.0.6" }, + { name = "mkdocstrings-python", specifier = ">=2.0.5" }, + { name = "mypy", specifier = ">=2.3.0" }, + { name = "pip-audit", specifier = ">=2.10.1" }, + { name = "pre-commit", specifier = ">=4.6.1" }, + { name = "pylint", specifier = ">=4.0.6" }, + { name = "pyrefly", specifier = ">=1.1.1" }, + { name = "pyright", specifier = ">=1.1.411" }, + { name = "pytest", specifier = ">=9.1.1" }, + { name = "pytest-benchmark", specifier = ">=5.2.3" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", specifier = ">=0.17.0" }, - { name = "pytest-cov", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", specifier = ">=2.2.1" }, - { name = "pytest-env", specifier = ">=1.1.5" }, + { name = "pytest-codeblocks", specifier = ">=0.18.0" }, + { name = "pytest-cov", specifier = ">=7.1.0" }, + { name = "pytest-deadfixtures", specifier = ">=3.1.0" }, + { name = "pytest-env", specifier = ">=1.7.0" }, { name = "pytest-markdown-docs", specifier = ">=0.9.2" }, - { name = "pytest-mock", specifier = ">=3.14" }, - { name = "pytest-randomly", specifier = ">=3.16" }, - { name = "pytest-sugar", specifier = ">=1" }, - { name = "pytest-timeout", specifier = ">=2.4" }, - { name = "pytest-xdist", specifier = ">=3.8" }, - { name = "pyupgrade", specifier = ">=3.19" }, + { name = "pytest-mock", specifier = ">=3.15.1" }, + { name = "pytest-randomly", specifier = ">=4.1.0" }, + { name = "pytest-sugar", specifier = ">=1.1.1" }, + { name = "pytest-timeout", specifier = ">=2.4.0" }, + { name = "pytest-xdist", specifier = ">=3.8.0" }, + { name = "pyupgrade", specifier = ">=3.21.2" }, { name = "radon", specifier = ">=6.0.1" }, - { name = "ruff", specifier = ">=0.12.3" }, - { name = "types-cachetools", specifier = ">=6.2" }, - { name = "types-cffi", specifier = ">=2.0" }, - { name = "types-click", specifier = ">=7.1" }, - { name = "types-defusedxml", specifier = ">=0.7" }, - { name = "types-docker", specifier = ">=7.1" }, + { name = "ruff", specifier = ">=0.16.0" }, + { name = "rumdl", specifier = ">=0.2.45" }, + { name = "types-cachetools", specifier = ">=7.0.0.20260713" }, + { name = "types-cffi", specifier = ">=2.0.0.20260518" }, + { name = "types-click", specifier = ">=7.1.8" }, + { name = "types-defusedxml", specifier = ">=0.7.0.20260504" }, + { name = "types-docker", specifier = ">=7.2.0.20260728" }, { name = "types-flask", specifier = ">=1.1.6" }, - { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", specifier = ">=4.0" }, - { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", specifier = ">=7" }, - { name = "types-psycopg2", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", specifier = ">=0.6" }, - { name = "types-pyopenssl", specifier = ">=24.1" }, - { name = "types-python-dateutil", specifier = ">=2.9" }, - { name = "types-pyyaml", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", specifier = ">=4.6" }, - { name = "types-requests", specifier = ">=2.32.4" }, - { name = "types-setuptools", specifier = ">=80.9" }, - { name = "types-tabulate", specifier = ">=0.10" }, - { name = "types-toml", specifier = ">=0.10.8.20240310" }, - { name = "vulture", specifier = ">=2.13" }, -] - -[[package]] -name = "flext-oracle-wms" -version = "0.12.0rc0" -source = { editable = "flext-oracle-wms" } -dependencies = [ - { name = "flext-api" }, - { name = "flext-cli" }, - { name = "flext-core" }, - { name = "pydantic" }, - { name = "pydantic-core" }, - { name = "pydantic-settings" }, - { name = "python-dotenv" }, -] - -[package.optional-dependencies] -dev = [ - { name = "autoflake" }, - { name = "bandit" }, - { name = "black" }, - { name = "blacken-docs" }, - { name = "codespell" }, - { name = "deptry" }, - { name = "django-stubs" }, - { name = "factory-boy" }, - { name = "faker" }, - { name = "hypothesis" }, - { name = "isort" }, - { name = "matplotlib-stubs" }, - { name = "mkdocs" }, - { name = "mkdocs-awesome-pages-plugin" }, - { name = "mkdocs-encryptcontent-plugin" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-get-deps" }, - { name = "mkdocs-git-revision-date-localized-plugin" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-macros-plugin" }, - { name = "mkdocs-material" }, - { name = "mkdocs-material-extensions" }, - { name = "mkdocs-mermaid2-plugin" }, - { name = "mkdocs-minify-plugin" }, - { name = "mkdocs-print-site-plugin" }, - { name = "mkdocs-redirects" }, - { name = "mkdocs-section-index" }, - { name = "mkdocs-versioning" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "pip-audit" }, - { name = "pre-commit" }, - { name = "pylint" }, - { name = "pyrefly" }, - { name = "pytest" }, - { name = "pytest-benchmark" }, - { name = "pytest-clarity" }, - { name = "pytest-codeblocks" }, - { name = "pytest-cov" }, - { name = "pytest-deadfixtures" }, - { name = "pytest-env" }, - { name = "pytest-markdown-docs" }, - { name = "pytest-mock" }, - { name = "pytest-randomly" }, - { name = "pytest-sugar" }, - { name = "pytest-timeout" }, - { name = "pytest-xdist" }, - { name = "pyupgrade" }, - { name = "radon" }, - { name = "ruff" }, - { name = "types-cachetools" }, - { name = "types-cffi" }, - { name = "types-click" }, - { name = "types-defusedxml" }, - { name = "types-docker" }, - { name = "types-flask" }, - { name = "types-jsonschema" }, - { name = "types-ldap3" }, - { name = "types-paramiko" }, - { name = "types-protobuf" }, - { name = "types-psutil" }, - { name = "types-psycopg2" }, - { name = "types-pyasn1" }, - { name = "types-pyopenssl" }, - { name = "types-python-dateutil" }, - { name = "types-pyyaml" }, - { name = "types-redis" }, - { name = "types-requests" }, - { name = "types-setuptools" }, - { name = "types-tabulate" }, - { name = "types-toml" }, - { name = "vulture" }, - { name = "yamlfix" }, + { name = "types-jsonschema", specifier = ">=4.26.0.20260518" }, + { name = "types-ldap3", specifier = ">=2.9.13.20260518" }, + { name = "types-paramiko", specifier = ">=5.0.0.20260724" }, + { name = "types-protobuf", specifier = ">=7.34.1.20260518" }, + { name = "types-psutil", specifier = ">=7.2.2.20260518" }, + { name = "types-psycopg2", specifier = ">=2.9.21.20260724" }, + { name = "types-pyasn1", specifier = ">=0.6.0.20260724" }, + { name = "types-pyopenssl", specifier = ">=24.1.0.20240722" }, + { name = "types-python-dateutil", specifier = ">=2.9.0.20260716" }, + { name = "types-pyyaml", specifier = ">=6.0.12.20260724" }, + { name = "types-redis", specifier = ">=4.6.0.20241004" }, + { name = "types-requests", specifier = ">=2.33.0.20260712" }, + { name = "types-setuptools", specifier = ">=83.0.0.20260724" }, + { name = "types-tabulate", specifier = ">=0.10.0.20260508" }, + { name = "types-toml", specifier = ">=0.10.8.20260518" }, + { name = "vulture", specifier = ">=2.16" }, + { name = "yamlfix", specifier = ">=1.19.1" }, +] + +[[package]] +name = "flext-ldap" +version = "0.12.0rc0" +source = { editable = "flext-ldap" } +dependencies = [ + { name = "cryptography" }, + { name = "flext-cli" }, + { name = "flext-core" }, + { name = "flext-ldif" }, + { name = "ldap3" }, + { name = "pydantic" }, + { name = "pydantic-core" }, + { name = "pydantic-settings" }, + { name = "structlog" }, ] [package.dev-dependencies] @@ -6565,6 +4164,7 @@ dev = [ { name = "types-defusedxml" }, { name = "types-docker" }, { name = "types-flask" }, + { name = "types-jsonschema" }, { name = "types-ldap3" }, { name = "types-paramiko" }, { name = "types-protobuf" }, @@ -6580,92 +4180,21 @@ dev = [ { name = "types-tabulate" }, { name = "types-toml" }, { name = "vulture" }, + { name = "yamlfix" }, ] [package.metadata] requires-dist = [ - { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, - { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, - { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, - { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, - { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, - { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, - { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, - { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, - { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, - { name = "flext-api", editable = "flext-api" }, + { name = "cryptography", specifier = ">=47.0.0" }, { name = "flext-cli", editable = "flext-cli" }, { name = "flext-core", editable = "flext-core" }, - { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, - { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, - { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, - { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, - { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, - { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, - { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, - { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, + { name = "flext-ldif", editable = "flext-ldif" }, + { name = "ldap3", specifier = ">=2.10.2rc4" }, { name = "pydantic", specifier = ">=2.13.3" }, { name = "pydantic-core", specifier = ">=2.46.3" }, { name = "pydantic-settings", specifier = ">=2.14.0" }, - { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, - { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, - { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, - { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, - { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, - { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, - { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, - { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, - { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, - { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, - { name = "python-dotenv", specifier = ">=1.2.2" }, - { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, - { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, - { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, - { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, - { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, - { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, - { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, - { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, - { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, - { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, - { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, - { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, - { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, - { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, - { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, + { name = "structlog", specifier = ">=25.5.0" }, ] -provides-extras = ["dev"] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] @@ -6727,6 +4256,7 @@ dev = [ { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, @@ -6742,22 +4272,22 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] -name = "flext-plugin" +name = "flext-ldif" version = "0.12.0rc0" -source = { editable = "flext-plugin" } +source = { editable = "flext-ldif" } dependencies = [ - { name = "anyio" }, + { name = "colorlog" }, { name = "flext-cli" }, { name = "flext-core" }, - { name = "jsonschema" }, - { name = "psutil" }, + { name = "ldap3" }, { name = "pydantic" }, { name = "pydantic-core" }, { name = "pydantic-settings" }, - { name = "watchdog" }, + { name = "structlog" }, ] [package.dev-dependencies] @@ -6843,15 +4373,14 @@ dev = [ [package.metadata] requires-dist = [ - { name = "anyio", specifier = ">=4.13.0" }, + { name = "colorlog", specifier = ">=6.10.1" }, { name = "flext-cli", editable = "flext-cli" }, { name = "flext-core", editable = "flext-core" }, - { name = "jsonschema", specifier = ">=4.26.0" }, - { name = "psutil", specifier = ">=7.2.2" }, + { name = "ldap3", specifier = ">=2.10.2rc4" }, { name = "pydantic", specifier = ">=2.13.3" }, { name = "pydantic-core", specifier = ">=2.46.3" }, { name = "pydantic-settings", specifier = ">=2.14.0" }, - { name = "watchdog", specifier = ">=4.0.0,<6" }, + { name = "structlog", specifier = ">=25.5.0" }, ] [package.metadata.requires-dev] @@ -6934,32 +4463,35 @@ dev = [ ] [[package]] -name = "flext-quality" +name = "flext-meltano" version = "0.12.0rc0" -source = { editable = "flext-quality" } +source = { editable = "flext-meltano" } dependencies = [ - { name = "aiohttp" }, - { name = "click" }, + { name = "alembic" }, + { name = "dbt-adapters" }, + { name = "dbt-common" }, + { name = "dbt-core" }, + { name = "duckdb" }, { name = "fastapi" }, - { name = "fastmcp" }, - { name = "flext-api" }, { name = "flext-cli" }, { name = "flext-core" }, - { name = "flext-infra" }, - { name = "flext-web" }, - { name = "gitpython" }, { name = "httpx" }, - { name = "libcst" }, - { name = "mypy" }, + { name = "injectable" }, + { name = "jinja2" }, + { name = "meltano" }, + { name = "pandas" }, + { name = "prometheus-client" }, { name = "pydantic" }, { name = "pydantic-core" }, { name = "pydantic-settings" }, - { name = "pyright" }, + { name = "python-dotenv" }, { name = "pyyaml" }, { name = "referencing" }, - { name = "rich" }, - { name = "schedule" }, - { name = "typer" }, + { name = "requests" }, + { name = "setuptools" }, + { name = "singer-sdk" }, + { name = "sqlalchemy" }, + { name = "structlog" }, { name = "uvicorn" }, { name = "wrapt" }, ] @@ -7002,6 +4534,7 @@ dev = [ { name = "mkdocstrings-python" }, { name = "pip-audit" }, { name = "pre-commit" }, + { name = "psycopg2" }, { name = "pylint" }, { name = "pyrefly" }, { name = "pytest" }, @@ -7019,8 +4552,7 @@ dev = [ { name = "pytest-xdist" }, { name = "pyupgrade" }, { name = "radon" }, - { name = "refurb" }, - { name = "rope" }, + { name = "redis" }, { name = "ruff" }, { name = "types-cachetools" }, { name = "types-cffi" }, @@ -7049,100 +4581,103 @@ dev = [ [package.metadata] requires-dist = [ - { name = "aiohttp", specifier = ">=3.13.5" }, - { name = "click", specifier = ">=8.3.3,<8.4" }, + { name = "alembic", specifier = ">=1.18.4" }, + { name = "dbt-adapters", specifier = ">=1.24.4" }, + { name = "dbt-common", specifier = ">=1.38.0" }, + { name = "dbt-core", specifier = ">=1.12.0,<1.13" }, + { name = "duckdb", specifier = ">=1.5.2" }, { name = "fastapi", specifier = ">=0.136.1" }, - { name = "fastmcp", specifier = ">=3.4.4" }, - { name = "flext-api", editable = "flext-api" }, { name = "flext-cli", editable = "flext-cli" }, { name = "flext-core", editable = "flext-core" }, - { name = "flext-infra", editable = "flext-infra" }, - { name = "flext-web", editable = "flext-web" }, - { name = "gitpython", specifier = ">=3.1.49" }, { name = "httpx", specifier = ">=0.28.1" }, - { name = "libcst", specifier = ">=1.8.6" }, - { name = "mypy", specifier = ">=1.20.2" }, + { name = "injectable", specifier = ">=4.0.1" }, + { name = "jinja2", specifier = ">=3.1.6" }, + { name = "meltano", specifier = ">=4.2.1" }, + { name = "pandas", specifier = ">=3.0.2" }, + { name = "prometheus-client", specifier = ">=0.25.0" }, { name = "pydantic", specifier = ">=2.13.3" }, { name = "pydantic-core", specifier = ">=2.46.3" }, - { name = "pydantic-settings", specifier = ">=2.14.2" }, - { name = "pyright", specifier = ">=1.1.411" }, + { name = "pydantic-settings", specifier = ">=2.14.0" }, + { name = "python-dotenv", specifier = ">=1.2.2" }, { name = "pyyaml", specifier = ">=6.0.3" }, { name = "referencing", specifier = ">=0.37.0" }, - { name = "rich", specifier = ">=14,<15" }, - { name = "schedule", specifier = ">=1.2.2" }, - { name = "typer", specifier = ">=0.25.1" }, - { name = "uvicorn", specifier = ">=0.51.0" }, + { name = "requests", specifier = ">=2.33.1" }, + { name = "setuptools", specifier = ">=82.0.1" }, + { name = "singer-sdk", specifier = ">=0.53.7" }, + { name = "sqlalchemy", specifier = ">=2.0.49" }, + { name = "structlog", specifier = ">=25.5.0" }, + { name = "uvicorn", specifier = ">=0.46.0" }, { name = "wrapt", specifier = ">=2.1.2" }, ] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ - { name = "autoflake", specifier = ">=2.3.3" }, + { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, { name = "blacken-docs", specifier = ">=1.19" }, { name = "codespell", specifier = ">=2.3" }, { name = "deptry", specifier = ">=0.23" }, - { name = "django-stubs", specifier = ">=6.0.6" }, - { name = "factory-boy", specifier = ">=3.3.3" }, - { name = "faker", specifier = ">=40.36.0" }, + { name = "django-stubs", specifier = ">=5.2.2" }, + { name = "factory-boy", specifier = ">=3.3.1" }, + { name = "faker", specifier = ">=37.4" }, { name = "flext-tests", editable = "flext-tests" }, { name = "hypothesis", specifier = ">=6.125" }, { name = "isort", specifier = ">=6.0.1" }, { name = "matplotlib-stubs", specifier = ">=0.3" }, - { name = "mkdocs", specifier = ">=1.6.1" }, + { name = "mkdocs", specifier = ">=1.6" }, { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.9" }, { name = "mkdocs-encryptcontent-plugin", specifier = ">=2" }, { name = "mkdocs-exclude", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", specifier = ">=0.2.2" }, + { name = "mkdocs-get-deps", specifier = ">=0.2" }, { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.2" }, { name = "mkdocs-literate-nav", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", specifier = ">=1.5.0" }, + { name = "mkdocs-macros-plugin", specifier = ">=1" }, { name = "mkdocs-material", specifier = ">=9.5" }, { name = "mkdocs-material-extensions", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", specifier = ">=1.2.3" }, - { name = "mkdocs-minify-plugin", specifier = ">=0.8.0" }, + { name = "mkdocs-mermaid2-plugin", specifier = ">=1.1" }, + { name = "mkdocs-minify-plugin", specifier = ">=0.7" }, { name = "mkdocs-print-site-plugin", specifier = ">=0.8" }, { name = "mkdocs-redirects", specifier = ">=1.2" }, { name = "mkdocs-section-index", specifier = ">=0.3.12" }, { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, - { name = "mkdocstrings-python", specifier = ">=2.0.5" }, - { name = "pip-audit", specifier = ">=2.10.1" }, + { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, + { name = "psycopg2", specifier = ">=2.9.12" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest-benchmark", specifier = ">=5.2.3" }, + { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", specifier = ">=0.18.0" }, + { name = "pytest-codeblocks", specifier = ">=0.17.0" }, { name = "pytest-cov", specifier = ">=6.2" }, { name = "pytest-deadfixtures", specifier = ">=2.2.1" }, { name = "pytest-env", specifier = ">=1.1.5" }, { name = "pytest-markdown-docs", specifier = ">=0.9.2" }, - { name = "pytest-mock", specifier = ">=3.15.1" }, + { name = "pytest-mock", specifier = ">=3.14" }, { name = "pytest-randomly", specifier = ">=3.16" }, { name = "pytest-sugar", specifier = ">=1" }, { name = "pytest-timeout", specifier = ">=2.4" }, { name = "pytest-xdist", specifier = ">=3.8" }, - { name = "pyupgrade", specifier = ">=3.21.2" }, + { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, - { name = "refurb", specifier = ">=2" }, - { name = "rope", specifier = ">=1.11" }, + { name = "redis", specifier = ">=7.4.0" }, { name = "ruff", specifier = ">=0.12.3" }, { name = "types-cachetools", specifier = ">=6.2" }, - { name = "types-cffi", specifier = ">=2.0.0.20260518" }, + { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, { name = "types-jsonschema", specifier = ">=4.26" }, - { name = "types-ldap3", specifier = ">=2.9.13.20260518" }, + { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", specifier = ">=7.2.2.20260518" }, - { name = "types-psycopg2", specifier = ">=2.9.21.20260724" }, + { name = "types-psutil", specifier = ">=7" }, + { name = "types-psycopg2", specifier = ">=2.9.21.20260422" }, { name = "types-pyasn1", specifier = ">=0.6" }, { name = "types-pyopenssl", specifier = ">=24.1" }, { name = "types-python-dateutil", specifier = ">=2.9" }, @@ -7151,99 +4686,32 @@ dev = [ { name = "types-requests", specifier = ">=2.32.4" }, { name = "types-setuptools", specifier = ">=80.9" }, { name = "types-tabulate", specifier = ">=0.10" }, - { name = "types-toml", specifier = ">=0.10.8.20260518" }, + { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] -name = "flext-tap-ldap" +name = "flext-observability" version = "0.12.0rc0" -source = { editable = "flext-tap-ldap" } +source = { editable = "flext-observability" } dependencies = [ + { name = "flask" }, { name = "flext-cli" }, - { name = "flext-core" }, - { name = "flext-ldap" }, - { name = "flext-meltano" }, + { name = "flext-core" }, + { name = "opentelemetry-api" }, + { name = "opentelemetry-exporter-otlp-proto-grpc" }, + { name = "opentelemetry-exporter-prometheus" }, + { name = "opentelemetry-sdk" }, + { name = "prometheus-client" }, + { name = "psutil" }, { name = "pydantic" }, { name = "pydantic-core" }, -] - -[package.optional-dependencies] -dev = [ - { name = "autoflake" }, - { name = "bandit" }, - { name = "black" }, - { name = "blacken-docs" }, - { name = "codespell" }, - { name = "deptry" }, - { name = "django-stubs" }, - { name = "factory-boy" }, - { name = "faker" }, - { name = "hypothesis" }, - { name = "isort" }, - { name = "matplotlib-stubs" }, - { name = "mkdocs" }, - { name = "mkdocs-awesome-pages-plugin" }, - { name = "mkdocs-encryptcontent-plugin" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-get-deps" }, - { name = "mkdocs-git-revision-date-localized-plugin" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-macros-plugin" }, - { name = "mkdocs-material" }, - { name = "mkdocs-material-extensions" }, - { name = "mkdocs-mermaid2-plugin" }, - { name = "mkdocs-minify-plugin" }, - { name = "mkdocs-print-site-plugin" }, - { name = "mkdocs-redirects" }, - { name = "mkdocs-section-index" }, - { name = "mkdocs-versioning" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "pip-audit" }, - { name = "pre-commit" }, - { name = "pylint" }, - { name = "pyrefly" }, - { name = "pytest" }, - { name = "pytest-benchmark" }, - { name = "pytest-clarity" }, - { name = "pytest-codeblocks" }, - { name = "pytest-cov" }, - { name = "pytest-deadfixtures" }, - { name = "pytest-env" }, - { name = "pytest-markdown-docs" }, - { name = "pytest-mock" }, - { name = "pytest-randomly" }, - { name = "pytest-sugar" }, - { name = "pytest-timeout" }, - { name = "pytest-xdist" }, - { name = "pyupgrade" }, - { name = "radon" }, - { name = "ruff" }, - { name = "types-cachetools" }, - { name = "types-cffi" }, - { name = "types-click" }, - { name = "types-defusedxml" }, - { name = "types-docker" }, - { name = "types-flask" }, - { name = "types-jsonschema" }, - { name = "types-ldap3" }, - { name = "types-paramiko" }, - { name = "types-protobuf" }, - { name = "types-psutil" }, - { name = "types-psycopg2" }, - { name = "types-pyasn1" }, - { name = "types-pyopenssl" }, - { name = "types-python-dateutil" }, - { name = "types-pyyaml" }, - { name = "types-redis" }, - { name = "types-requests" }, - { name = "types-setuptools" }, - { name = "types-tabulate" }, - { name = "types-toml" }, - { name = "vulture" }, - { name = "yamlfix" }, + { name = "pydantic-settings" }, + { name = "rich" }, + { name = "starlette" }, + { name = "structlog" }, + { name = "typer" }, ] [package.dev-dependencies] @@ -7308,6 +4776,7 @@ dev = [ { name = "types-defusedxml" }, { name = "types-docker" }, { name = "types-flask" }, + { name = "types-jsonschema" }, { name = "types-ldap3" }, { name = "types-paramiko" }, { name = "types-protobuf" }, @@ -7323,91 +4792,28 @@ dev = [ { name = "types-tabulate" }, { name = "types-toml" }, { name = "vulture" }, + { name = "yamlfix" }, ] [package.metadata] requires-dist = [ - { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, - { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, - { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, - { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, - { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, - { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, - { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, - { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, - { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, + { name = "flask", specifier = ">=3.1.3" }, { name = "flext-cli", editable = "flext-cli" }, { name = "flext-core", editable = "flext-core" }, - { name = "flext-ldap", editable = "flext-ldap" }, - { name = "flext-meltano", editable = "flext-meltano" }, - { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, - { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, - { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, - { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, - { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, - { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, - { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, - { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, + { name = "opentelemetry-api", specifier = ">=1.41.1" }, + { name = "opentelemetry-exporter-otlp-proto-grpc", specifier = ">=1.41.1" }, + { name = "opentelemetry-exporter-prometheus", specifier = ">=0.62b1" }, + { name = "opentelemetry-sdk", specifier = ">=1.41.1" }, + { name = "prometheus-client", specifier = ">=0.25.0" }, + { name = "psutil", specifier = ">=7.2.2" }, { name = "pydantic", specifier = ">=2.13.3" }, { name = "pydantic-core", specifier = ">=2.46.3" }, - { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, - { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, - { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, - { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, - { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, - { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, - { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, - { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, - { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, - { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, - { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, - { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, - { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, - { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, - { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, - { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, - { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, - { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, - { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, - { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, - { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, - { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, - { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, - { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, - { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, + { name = "pydantic-settings", specifier = ">=2.14.0" }, + { name = "rich", specifier = ">=14,<15" }, + { name = "starlette", specifier = ">=1.0.0" }, + { name = "structlog", specifier = ">=25.5.0" }, + { name = "typer", specifier = ">=0.25.1" }, ] -provides-extras = ["dev"] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] @@ -7469,6 +4875,7 @@ dev = [ { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, @@ -7484,22 +4891,32 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] -name = "flext-tap-ldif" +name = "flext-oracle-oic" version = "0.12.0rc0" -source = { editable = "flext-tap-ldif" } +source = { editable = "flext-oracle-oic" } dependencies = [ + { name = "flext-api" }, + { name = "flext-auth" }, + { name = "flext-cli" }, { name = "flext-core" }, - { name = "flext-ldif" }, - { name = "flext-meltano" }, - { name = "flext-observability" }, + { name = "httpx" }, { name = "pydantic" }, { name = "pydantic-core" }, + { name = "pydantic-settings" }, + { name = "requests" }, + { name = "tenacity" }, + { name = "typer" }, + { name = "urllib3" }, ] -[package.optional-dependencies] +[package.dev-dependencies] +codegen = [ + { name = "flext-infra" }, +] dev = [ { name = "autoflake" }, { name = "bandit" }, @@ -7510,6 +4927,7 @@ dev = [ { name = "django-stubs" }, { name = "factory-boy" }, { name = "faker" }, + { name = "flext-tests" }, { name = "hypothesis" }, { name = "isort" }, { name = "matplotlib-stubs" }, @@ -7576,6 +4994,115 @@ dev = [ { name = "yamlfix" }, ] +[package.metadata] +requires-dist = [ + { name = "flext-api", editable = "flext-api" }, + { name = "flext-auth", editable = "flext-auth" }, + { name = "flext-cli", editable = "flext-cli" }, + { name = "flext-core", editable = "flext-core" }, + { name = "httpx", specifier = ">=0.28.1" }, + { name = "pydantic", specifier = ">=2.13.3" }, + { name = "pydantic-core", specifier = ">=2.46.3" }, + { name = "pydantic-settings", specifier = ">=2.14.0" }, + { name = "requests", specifier = ">=2.33.1" }, + { name = "tenacity", specifier = ">=9.1.4" }, + { name = "typer", specifier = ">=0.25.1" }, + { name = "urllib3", specifier = ">=2.6.3" }, +] + +[package.metadata.requires-dev] +codegen = [{ name = "flext-infra", editable = "flext-infra" }] +dev = [ + { name = "autoflake", specifier = ">=2.3.1" }, + { name = "bandit", specifier = ">=1.8" }, + { name = "black", specifier = ">=25.1" }, + { name = "blacken-docs", specifier = ">=1.19" }, + { name = "codespell", specifier = ">=2.3" }, + { name = "deptry", specifier = ">=0.23" }, + { name = "django-stubs", specifier = ">=5.2.2" }, + { name = "factory-boy", specifier = ">=3.3.1" }, + { name = "faker", specifier = ">=37.4" }, + { name = "flext-tests", editable = "flext-tests" }, + { name = "hypothesis", specifier = ">=6.125" }, + { name = "isort", specifier = ">=6.0.1" }, + { name = "matplotlib-stubs", specifier = ">=0.3" }, + { name = "mkdocs", specifier = ">=1.6" }, + { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.9" }, + { name = "mkdocs-encryptcontent-plugin", specifier = ">=2" }, + { name = "mkdocs-exclude", specifier = ">=1.0.2" }, + { name = "mkdocs-get-deps", specifier = ">=0.2" }, + { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.2" }, + { name = "mkdocs-literate-nav", specifier = ">=0.6" }, + { name = "mkdocs-macros-plugin", specifier = ">=1" }, + { name = "mkdocs-material", specifier = ">=9.5" }, + { name = "mkdocs-material-extensions", specifier = ">=1.3.1" }, + { name = "mkdocs-mermaid2-plugin", specifier = ">=1.1" }, + { name = "mkdocs-minify-plugin", specifier = ">=0.7" }, + { name = "mkdocs-print-site-plugin", specifier = ">=0.8" }, + { name = "mkdocs-redirects", specifier = ">=1.2" }, + { name = "mkdocs-section-index", specifier = ">=0.3.12" }, + { name = "mkdocs-versioning", specifier = ">=0.2" }, + { name = "mkdocstrings", specifier = ">=0.24" }, + { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "pip-audit", specifier = ">=2.7.3" }, + { name = "pre-commit", specifier = ">=4.6.0" }, + { name = "pylint", specifier = ">=3.3" }, + { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pytest", specifier = ">=8.4" }, + { name = "pytest-benchmark", specifier = ">=5.1" }, + { name = "pytest-clarity", specifier = ">=1.0.1" }, + { name = "pytest-codeblocks", specifier = ">=0.17.0" }, + { name = "pytest-cov", specifier = ">=6.2" }, + { name = "pytest-deadfixtures", specifier = ">=2.2.1" }, + { name = "pytest-env", specifier = ">=1.1.5" }, + { name = "pytest-markdown-docs", specifier = ">=0.9.2" }, + { name = "pytest-mock", specifier = ">=3.14" }, + { name = "pytest-randomly", specifier = ">=3.16" }, + { name = "pytest-sugar", specifier = ">=1" }, + { name = "pytest-timeout", specifier = ">=2.4" }, + { name = "pytest-xdist", specifier = ">=3.8" }, + { name = "pyupgrade", specifier = ">=3.19" }, + { name = "radon", specifier = ">=6.0.1" }, + { name = "ruff", specifier = ">=0.12.3" }, + { name = "types-cachetools", specifier = ">=6.2" }, + { name = "types-cffi", specifier = ">=2.0" }, + { name = "types-click", specifier = ">=7.1" }, + { name = "types-defusedxml", specifier = ">=0.7" }, + { name = "types-docker", specifier = ">=7.1" }, + { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-jsonschema", specifier = ">=4.26" }, + { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, + { name = "types-paramiko", specifier = ">=4.0" }, + { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, + { name = "types-psutil", specifier = ">=7" }, + { name = "types-psycopg2", specifier = ">=2.9.21.20250718" }, + { name = "types-pyasn1", specifier = ">=0.6" }, + { name = "types-pyopenssl", specifier = ">=24.1" }, + { name = "types-python-dateutil", specifier = ">=2.9" }, + { name = "types-pyyaml", specifier = ">=6.0.12.20260518" }, + { name = "types-redis", specifier = ">=4.6" }, + { name = "types-requests", specifier = ">=2.32.4" }, + { name = "types-setuptools", specifier = ">=80.9" }, + { name = "types-tabulate", specifier = ">=0.10" }, + { name = "types-toml", specifier = ">=0.10.8.20240310" }, + { name = "vulture", specifier = ">=2.13" }, + { name = "yamlfix", specifier = ">=1.19.1,<2" }, +] + +[[package]] +name = "flext-oracle-wms" +version = "0.12.0rc0" +source = { editable = "flext-oracle-wms" } +dependencies = [ + { name = "flext-api" }, + { name = "flext-cli" }, + { name = "flext-core" }, + { name = "pydantic" }, + { name = "pydantic-core" }, + { name = "pydantic-settings" }, + { name = "python-dotenv" }, +] + [package.dev-dependencies] codegen = [ { name = "flext-infra" }, @@ -7638,6 +5165,7 @@ dev = [ { name = "types-defusedxml" }, { name = "types-docker" }, { name = "types-flask" }, + { name = "types-jsonschema" }, { name = "types-ldap3" }, { name = "types-paramiko" }, { name = "types-protobuf" }, @@ -7653,91 +5181,19 @@ dev = [ { name = "types-tabulate" }, { name = "types-toml" }, { name = "vulture" }, + { name = "yamlfix" }, ] [package.metadata] requires-dist = [ - { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, - { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, - { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, - { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, - { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, - { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, - { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, - { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, - { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, + { name = "flext-api", editable = "flext-api" }, + { name = "flext-cli", editable = "flext-cli" }, { name = "flext-core", editable = "flext-core" }, - { name = "flext-ldif", editable = "flext-ldif" }, - { name = "flext-meltano", editable = "flext-meltano" }, - { name = "flext-observability", editable = "flext-observability" }, - { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, - { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, - { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, - { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, - { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, - { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, - { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, - { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, { name = "pydantic", specifier = ">=2.13.3" }, { name = "pydantic-core", specifier = ">=2.46.3" }, - { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, - { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, - { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, - { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, - { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, - { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, - { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, - { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, - { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, - { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, - { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, - { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, - { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, - { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, - { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, - { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, - { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, - { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, - { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, - { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, - { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, - { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, - { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, - { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, - { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, + { name = "pydantic-settings", specifier = ">=2.14.0" }, + { name = "python-dotenv", specifier = ">=1.2.2" }, ] -provides-extras = ["dev"] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] @@ -7799,6 +5255,7 @@ dev = [ { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, @@ -7814,27 +5271,29 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] -name = "flext-tap-oracle" +name = "flext-plugin" version = "0.12.0rc0" -source = { editable = "flext-tap-oracle" } +source = { editable = "flext-plugin" } dependencies = [ - { name = "fastapi" }, + { name = "anyio" }, + { name = "flext-cli" }, { name = "flext-core" }, - { name = "flext-db-oracle" }, - { name = "flext-meltano" }, - { name = "flext-observability" }, - { name = "prometheus-client" }, + { name = "jsonschema" }, + { name = "psutil" }, { name = "pydantic" }, { name = "pydantic-core" }, - { name = "setuptools" }, - { name = "singer-sdk" }, - { name = "uvicorn" }, + { name = "pydantic-settings" }, + { name = "watchdog" }, ] -[package.optional-dependencies] +[package.dev-dependencies] +codegen = [ + { name = "flext-infra" }, +] dev = [ { name = "autoflake" }, { name = "bandit" }, @@ -7845,6 +5304,7 @@ dev = [ { name = "django-stubs" }, { name = "factory-boy" }, { name = "faker" }, + { name = "flext-tests" }, { name = "hypothesis" }, { name = "isort" }, { name = "matplotlib-stubs" }, @@ -7911,6 +5371,129 @@ dev = [ { name = "yamlfix" }, ] +[package.metadata] +requires-dist = [ + { name = "anyio", specifier = ">=4.13.0" }, + { name = "flext-cli", editable = "flext-cli" }, + { name = "flext-core", editable = "flext-core" }, + { name = "jsonschema", specifier = ">=4.26.0" }, + { name = "psutil", specifier = ">=7.2.2" }, + { name = "pydantic", specifier = ">=2.13.3" }, + { name = "pydantic-core", specifier = ">=2.46.3" }, + { name = "pydantic-settings", specifier = ">=2.14.0" }, + { name = "watchdog", specifier = ">=4.0.0,<6" }, +] + +[package.metadata.requires-dev] +codegen = [{ name = "flext-infra", editable = "flext-infra" }] +dev = [ + { name = "autoflake", specifier = ">=2.3.1" }, + { name = "bandit", specifier = ">=1.8" }, + { name = "black", specifier = ">=25.1" }, + { name = "blacken-docs", specifier = ">=1.19" }, + { name = "codespell", specifier = ">=2.3" }, + { name = "deptry", specifier = ">=0.23" }, + { name = "django-stubs", specifier = ">=5.2.2" }, + { name = "factory-boy", specifier = ">=3.3.1" }, + { name = "faker", specifier = ">=37.4" }, + { name = "flext-tests", editable = "flext-tests" }, + { name = "hypothesis", specifier = ">=6.125" }, + { name = "isort", specifier = ">=6.0.1" }, + { name = "matplotlib-stubs", specifier = ">=0.3" }, + { name = "mkdocs", specifier = ">=1.6" }, + { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.9" }, + { name = "mkdocs-encryptcontent-plugin", specifier = ">=2" }, + { name = "mkdocs-exclude", specifier = ">=1.0.2" }, + { name = "mkdocs-get-deps", specifier = ">=0.2" }, + { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.2" }, + { name = "mkdocs-literate-nav", specifier = ">=0.6" }, + { name = "mkdocs-macros-plugin", specifier = ">=1" }, + { name = "mkdocs-material", specifier = ">=9.5" }, + { name = "mkdocs-material-extensions", specifier = ">=1.3.1" }, + { name = "mkdocs-mermaid2-plugin", specifier = ">=1.1" }, + { name = "mkdocs-minify-plugin", specifier = ">=0.7" }, + { name = "mkdocs-print-site-plugin", specifier = ">=0.8" }, + { name = "mkdocs-redirects", specifier = ">=1.2" }, + { name = "mkdocs-section-index", specifier = ">=0.3.12" }, + { name = "mkdocs-versioning", specifier = ">=0.2" }, + { name = "mkdocstrings", specifier = ">=0.24" }, + { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "pip-audit", specifier = ">=2.7.3" }, + { name = "pre-commit", specifier = ">=4.6.0" }, + { name = "pylint", specifier = ">=3.3" }, + { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pytest", specifier = ">=8.4" }, + { name = "pytest-benchmark", specifier = ">=5.1" }, + { name = "pytest-clarity", specifier = ">=1.0.1" }, + { name = "pytest-codeblocks", specifier = ">=0.17.0" }, + { name = "pytest-cov", specifier = ">=6.2" }, + { name = "pytest-deadfixtures", specifier = ">=2.2.1" }, + { name = "pytest-env", specifier = ">=1.1.5" }, + { name = "pytest-markdown-docs", specifier = ">=0.9.2" }, + { name = "pytest-mock", specifier = ">=3.14" }, + { name = "pytest-randomly", specifier = ">=3.16" }, + { name = "pytest-sugar", specifier = ">=1" }, + { name = "pytest-timeout", specifier = ">=2.4" }, + { name = "pytest-xdist", specifier = ">=3.8" }, + { name = "pyupgrade", specifier = ">=3.19" }, + { name = "radon", specifier = ">=6.0.1" }, + { name = "ruff", specifier = ">=0.12.3" }, + { name = "types-cachetools", specifier = ">=6.2" }, + { name = "types-cffi", specifier = ">=2.0" }, + { name = "types-click", specifier = ">=7.1" }, + { name = "types-defusedxml", specifier = ">=0.7" }, + { name = "types-docker", specifier = ">=7.1" }, + { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-jsonschema", specifier = ">=4.26" }, + { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, + { name = "types-paramiko", specifier = ">=4.0" }, + { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, + { name = "types-psutil", specifier = ">=7" }, + { name = "types-psycopg2", specifier = ">=2.9.21.20250718" }, + { name = "types-pyasn1", specifier = ">=0.6" }, + { name = "types-pyopenssl", specifier = ">=24.1" }, + { name = "types-python-dateutil", specifier = ">=2.9" }, + { name = "types-pyyaml", specifier = ">=6.0.12.20260518" }, + { name = "types-redis", specifier = ">=4.6" }, + { name = "types-requests", specifier = ">=2.32.4" }, + { name = "types-setuptools", specifier = ">=80.9" }, + { name = "types-tabulate", specifier = ">=0.10" }, + { name = "types-toml", specifier = ">=0.10.8.20240310" }, + { name = "vulture", specifier = ">=2.13" }, + { name = "yamlfix", specifier = ">=1.19.1,<2" }, +] + +[[package]] +name = "flext-quality" +version = "0.12.0rc0" +source = { editable = "flext-quality" } +dependencies = [ + { name = "aiohttp" }, + { name = "click" }, + { name = "fastapi" }, + { name = "fastmcp" }, + { name = "flext-api" }, + { name = "flext-cli" }, + { name = "flext-core" }, + { name = "flext-infra" }, + { name = "flext-web" }, + { name = "gitpython" }, + { name = "httpx" }, + { name = "libcst" }, + { name = "mypy" }, + { name = "pydantic" }, + { name = "pydantic-core" }, + { name = "pydantic-settings" }, + { name = "pyright" }, + { name = "pyyaml" }, + { name = "referencing" }, + { name = "rich" }, + { name = "schedule" }, + { name = "typer" }, + { name = "uvicorn" }, + { name = "wrapt" }, +] + [package.dev-dependencies] codegen = [ { name = "flext-infra" }, @@ -7966,6 +5549,8 @@ dev = [ { name = "pytest-xdist" }, { name = "pyupgrade" }, { name = "radon" }, + { name = "refurb" }, + { name = "rope" }, { name = "ruff" }, { name = "types-cachetools" }, { name = "types-cffi" }, @@ -7973,6 +5558,7 @@ dev = [ { name = "types-defusedxml" }, { name = "types-docker" }, { name = "types-flask" }, + { name = "types-jsonschema" }, { name = "types-ldap3" }, { name = "types-paramiko" }, { name = "types-protobuf" }, @@ -7988,191 +5574,135 @@ dev = [ { name = "types-tabulate" }, { name = "types-toml" }, { name = "vulture" }, + { name = "yamlfix" }, ] [package.metadata] requires-dist = [ - { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, - { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, - { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, - { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, - { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, - { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, - { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, - { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, - { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, + { name = "aiohttp", specifier = ">=3.13.5" }, + { name = "click", specifier = ">=8.3.3,<8.4" }, { name = "fastapi", specifier = ">=0.136.1" }, + { name = "fastmcp", specifier = ">=3.4.4" }, + { name = "flext-api", editable = "flext-api" }, + { name = "flext-cli", editable = "flext-cli" }, { name = "flext-core", editable = "flext-core" }, - { name = "flext-db-oracle", editable = "flext-db-oracle" }, - { name = "flext-meltano", editable = "flext-meltano" }, - { name = "flext-observability", editable = "flext-observability" }, - { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, - { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, - { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, - { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, - { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, - { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, - { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, - { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, - { name = "prometheus-client", specifier = ">=0.25.0" }, + { name = "flext-infra", editable = "flext-infra" }, + { name = "flext-web", editable = "flext-web" }, + { name = "gitpython", specifier = ">=3.1.49" }, + { name = "httpx", specifier = ">=0.28.1" }, + { name = "libcst", specifier = ">=1.8.6" }, + { name = "mypy", specifier = ">=1.20.2" }, { name = "pydantic", specifier = ">=2.13.3" }, { name = "pydantic-core", specifier = ">=2.46.3" }, - { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, - { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, - { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, - { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, - { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, - { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, - { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, - { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, - { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, - { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, - { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, - { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, - { name = "setuptools", specifier = ">=82.0.1" }, - { name = "singer-sdk", specifier = ">=0.53.7" }, - { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, - { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, - { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, - { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, - { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, - { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, - { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, - { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, - { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, - { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, - { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, - { name = "uvicorn", specifier = ">=0.46.0" }, - { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, - { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, + { name = "pydantic-settings", specifier = ">=2.14.2" }, + { name = "pyright", specifier = ">=1.1.411" }, + { name = "pyyaml", specifier = ">=6.0.3" }, + { name = "referencing", specifier = ">=0.37.0" }, + { name = "rich", specifier = ">=14,<15" }, + { name = "schedule", specifier = ">=1.2.2" }, + { name = "typer", specifier = ">=0.25.1" }, + { name = "uvicorn", specifier = ">=0.51.0" }, + { name = "wrapt", specifier = ">=2.1.2" }, ] -provides-extras = ["dev"] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ - { name = "autoflake", specifier = ">=2.3.1" }, + { name = "autoflake", specifier = ">=2.3.3" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, { name = "blacken-docs", specifier = ">=1.19" }, { name = "codespell", specifier = ">=2.3" }, { name = "deptry", specifier = ">=0.23" }, - { name = "django-stubs", specifier = ">=5.2.2" }, - { name = "factory-boy", specifier = ">=3.3.1" }, - { name = "faker", specifier = ">=37.4" }, + { name = "django-stubs", specifier = ">=6.0.6" }, + { name = "factory-boy", specifier = ">=3.3.3" }, + { name = "faker", specifier = ">=40.36.0" }, { name = "flext-tests", editable = "flext-tests" }, { name = "hypothesis", specifier = ">=6.125" }, { name = "isort", specifier = ">=6.0.1" }, { name = "matplotlib-stubs", specifier = ">=0.3" }, - { name = "mkdocs", specifier = ">=1.6" }, + { name = "mkdocs", specifier = ">=1.6.1" }, { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.9" }, { name = "mkdocs-encryptcontent-plugin", specifier = ">=2" }, { name = "mkdocs-exclude", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", specifier = ">=0.2" }, + { name = "mkdocs-get-deps", specifier = ">=0.2.2" }, { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.2" }, { name = "mkdocs-literate-nav", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", specifier = ">=1" }, + { name = "mkdocs-macros-plugin", specifier = ">=1.5.0" }, { name = "mkdocs-material", specifier = ">=9.5" }, { name = "mkdocs-material-extensions", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", specifier = ">=0.7" }, + { name = "mkdocs-mermaid2-plugin", specifier = ">=1.2.3" }, + { name = "mkdocs-minify-plugin", specifier = ">=0.8.0" }, { name = "mkdocs-print-site-plugin", specifier = ">=0.8" }, { name = "mkdocs-redirects", specifier = ">=1.2" }, { name = "mkdocs-section-index", specifier = ">=0.3.12" }, { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, - { name = "mkdocstrings-python", specifier = ">=1.7" }, - { name = "pip-audit", specifier = ">=2.7.3" }, + { name = "mkdocstrings-python", specifier = ">=2.0.5" }, + { name = "pip-audit", specifier = ">=2.10.1" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest-benchmark", specifier = ">=5.1" }, + { name = "pytest-benchmark", specifier = ">=5.2.3" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", specifier = ">=0.17.0" }, + { name = "pytest-codeblocks", specifier = ">=0.18.0" }, { name = "pytest-cov", specifier = ">=6.2" }, { name = "pytest-deadfixtures", specifier = ">=2.2.1" }, { name = "pytest-env", specifier = ">=1.1.5" }, { name = "pytest-markdown-docs", specifier = ">=0.9.2" }, - { name = "pytest-mock", specifier = ">=3.14" }, + { name = "pytest-mock", specifier = ">=3.15.1" }, { name = "pytest-randomly", specifier = ">=3.16" }, { name = "pytest-sugar", specifier = ">=1" }, { name = "pytest-timeout", specifier = ">=2.4" }, { name = "pytest-xdist", specifier = ">=3.8" }, - { name = "pyupgrade", specifier = ">=3.19" }, + { name = "pyupgrade", specifier = ">=3.21.2" }, { name = "radon", specifier = ">=6.0.1" }, + { name = "refurb", specifier = ">=2" }, + { name = "rope", specifier = ">=1.11" }, { name = "ruff", specifier = ">=0.12.3" }, { name = "types-cachetools", specifier = ">=6.2" }, - { name = "types-cffi", specifier = ">=2.0" }, + { name = "types-cffi", specifier = ">=2.0.0.20260518" }, { name = "types-click", specifier = ">=7.1" }, { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, - { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, + { name = "types-jsonschema", specifier = ">=4.26" }, + { name = "types-ldap3", specifier = ">=2.9.13.20260518" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", specifier = ">=7" }, - { name = "types-psycopg2", specifier = ">=2.9.21.20250718" }, + { name = "types-psutil", specifier = ">=7.2.2.20260518" }, + { name = "types-psycopg2", specifier = ">=2.9.21.20260724" }, { name = "types-pyasn1", specifier = ">=0.6" }, { name = "types-pyopenssl", specifier = ">=24.1" }, { name = "types-python-dateutil", specifier = ">=2.9" }, { name = "types-pyyaml", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", specifier = ">=4.6" }, + { name = "types-redis", specifier = ">=4.6.0.20241004" }, { name = "types-requests", specifier = ">=2.32.4" }, { name = "types-setuptools", specifier = ">=80.9" }, { name = "types-tabulate", specifier = ">=0.10" }, - { name = "types-toml", specifier = ">=0.10.8.20240310" }, + { name = "types-toml", specifier = ">=0.10.8.20260518" }, { name = "vulture", specifier = ">=2.13" }, + { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] -name = "flext-tap-oracle-oic" +name = "flext-tap-ldap" version = "0.12.0rc0" -source = { editable = "flext-tap-oracle-oic" } +source = { editable = "flext-tap-ldap" } dependencies = [ - { name = "flext-api" }, { name = "flext-cli" }, { name = "flext-core" }, + { name = "flext-ldap" }, { name = "flext-meltano" }, - { name = "flext-oracle-oic" }, { name = "pydantic" }, { name = "pydantic-core" }, - { name = "pydantic-settings" }, - { name = "requests" }, ] -[package.optional-dependencies] +[package.dev-dependencies] +codegen = [ + { name = "flext-infra" }, +] dev = [ { name = "autoflake" }, { name = "bandit" }, @@ -8183,6 +5713,7 @@ dev = [ { name = "django-stubs" }, { name = "factory-boy" }, { name = "faker" }, + { name = "flext-tests" }, { name = "hypothesis" }, { name = "isort" }, { name = "matplotlib-stubs" }, @@ -8249,6 +5780,108 @@ dev = [ { name = "yamlfix" }, ] +[package.metadata] +requires-dist = [ + { name = "flext-cli", editable = "flext-cli" }, + { name = "flext-core", editable = "flext-core" }, + { name = "flext-ldap", editable = "flext-ldap" }, + { name = "flext-meltano", editable = "flext-meltano" }, + { name = "pydantic", specifier = ">=2.13.3" }, + { name = "pydantic-core", specifier = ">=2.46.3" }, +] + +[package.metadata.requires-dev] +codegen = [{ name = "flext-infra", editable = "flext-infra" }] +dev = [ + { name = "autoflake", specifier = ">=2.3.1" }, + { name = "bandit", specifier = ">=1.8" }, + { name = "black", specifier = ">=25.1" }, + { name = "blacken-docs", specifier = ">=1.19" }, + { name = "codespell", specifier = ">=2.3" }, + { name = "deptry", specifier = ">=0.23" }, + { name = "django-stubs", specifier = ">=5.2.2" }, + { name = "factory-boy", specifier = ">=3.3.1" }, + { name = "faker", specifier = ">=37.4" }, + { name = "flext-tests", editable = "flext-tests" }, + { name = "hypothesis", specifier = ">=6.125" }, + { name = "isort", specifier = ">=6.0.1" }, + { name = "matplotlib-stubs", specifier = ">=0.3" }, + { name = "mkdocs", specifier = ">=1.6" }, + { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.9" }, + { name = "mkdocs-encryptcontent-plugin", specifier = ">=2" }, + { name = "mkdocs-exclude", specifier = ">=1.0.2" }, + { name = "mkdocs-get-deps", specifier = ">=0.2" }, + { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.2" }, + { name = "mkdocs-literate-nav", specifier = ">=0.6" }, + { name = "mkdocs-macros-plugin", specifier = ">=1" }, + { name = "mkdocs-material", specifier = ">=9.5" }, + { name = "mkdocs-material-extensions", specifier = ">=1.3.1" }, + { name = "mkdocs-mermaid2-plugin", specifier = ">=1.1" }, + { name = "mkdocs-minify-plugin", specifier = ">=0.7" }, + { name = "mkdocs-print-site-plugin", specifier = ">=0.8" }, + { name = "mkdocs-redirects", specifier = ">=1.2" }, + { name = "mkdocs-section-index", specifier = ">=0.3.12" }, + { name = "mkdocs-versioning", specifier = ">=0.2" }, + { name = "mkdocstrings", specifier = ">=0.24" }, + { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "pip-audit", specifier = ">=2.7.3" }, + { name = "pre-commit", specifier = ">=4.6.0" }, + { name = "pylint", specifier = ">=3.3" }, + { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pytest", specifier = ">=8.4" }, + { name = "pytest-benchmark", specifier = ">=5.1" }, + { name = "pytest-clarity", specifier = ">=1.0.1" }, + { name = "pytest-codeblocks", specifier = ">=0.17.0" }, + { name = "pytest-cov", specifier = ">=6.2" }, + { name = "pytest-deadfixtures", specifier = ">=2.2.1" }, + { name = "pytest-env", specifier = ">=1.1.5" }, + { name = "pytest-markdown-docs", specifier = ">=0.9.2" }, + { name = "pytest-mock", specifier = ">=3.14" }, + { name = "pytest-randomly", specifier = ">=3.16" }, + { name = "pytest-sugar", specifier = ">=1" }, + { name = "pytest-timeout", specifier = ">=2.4" }, + { name = "pytest-xdist", specifier = ">=3.8" }, + { name = "pyupgrade", specifier = ">=3.19" }, + { name = "radon", specifier = ">=6.0.1" }, + { name = "ruff", specifier = ">=0.12.3" }, + { name = "types-cachetools", specifier = ">=6.2" }, + { name = "types-cffi", specifier = ">=2.0" }, + { name = "types-click", specifier = ">=7.1" }, + { name = "types-defusedxml", specifier = ">=0.7" }, + { name = "types-docker", specifier = ">=7.1" }, + { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-jsonschema", specifier = ">=4.26" }, + { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, + { name = "types-paramiko", specifier = ">=4.0" }, + { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, + { name = "types-psutil", specifier = ">=7" }, + { name = "types-psycopg2", specifier = ">=2.9.21.20250718" }, + { name = "types-pyasn1", specifier = ">=0.6" }, + { name = "types-pyopenssl", specifier = ">=24.1" }, + { name = "types-python-dateutil", specifier = ">=2.9" }, + { name = "types-pyyaml", specifier = ">=6.0.12.20260518" }, + { name = "types-redis", specifier = ">=4.6" }, + { name = "types-requests", specifier = ">=2.32.4" }, + { name = "types-setuptools", specifier = ">=80.9" }, + { name = "types-tabulate", specifier = ">=0.10" }, + { name = "types-toml", specifier = ">=0.10.8.20240310" }, + { name = "vulture", specifier = ">=2.13" }, + { name = "yamlfix", specifier = ">=1.19.1,<2" }, +] + +[[package]] +name = "flext-tap-ldif" +version = "0.12.0rc0" +source = { editable = "flext-tap-ldif" } +dependencies = [ + { name = "flext-core" }, + { name = "flext-ldif" }, + { name = "flext-meltano" }, + { name = "flext-observability" }, + { name = "pydantic" }, + { name = "pydantic-core" }, +] + [package.dev-dependencies] codegen = [ { name = "flext-infra" }, @@ -8311,6 +5944,7 @@ dev = [ { name = "types-defusedxml" }, { name = "types-docker" }, { name = "types-flask" }, + { name = "types-jsonschema" }, { name = "types-ldap3" }, { name = "types-paramiko" }, { name = "types-protobuf" }, @@ -8326,94 +5960,18 @@ dev = [ { name = "types-tabulate" }, { name = "types-toml" }, { name = "vulture" }, + { name = "yamlfix" }, ] [package.metadata] requires-dist = [ - { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, - { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, - { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, - { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, - { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, - { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, - { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, - { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, - { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, - { name = "flext-api", editable = "flext-api" }, - { name = "flext-cli", editable = "flext-cli" }, { name = "flext-core", editable = "flext-core" }, + { name = "flext-ldif", editable = "flext-ldif" }, { name = "flext-meltano", editable = "flext-meltano" }, - { name = "flext-oracle-oic", editable = "flext-oracle-oic" }, - { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, - { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, - { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, - { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, - { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, - { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, - { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, - { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, + { name = "flext-observability", editable = "flext-observability" }, { name = "pydantic", specifier = ">=2.13.3" }, { name = "pydantic-core", specifier = ">=2.46.3" }, - { name = "pydantic-settings", specifier = ">=2.14.0" }, - { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, - { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, - { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, - { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, - { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, - { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, - { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, - { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, - { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, - { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, - { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, - { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "requests", specifier = ">=2.33.1" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, - { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, - { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, - { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, - { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, - { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, - { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, - { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, - { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, - { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, - { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, - { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, - { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, - { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, ] -provides-extras = ["dev"] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] @@ -8475,6 +6033,7 @@ dev = [ { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, @@ -8490,24 +6049,31 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] -name = "flext-tap-oracle-wms" +name = "flext-tap-oracle" version = "0.12.0rc0" -source = { editable = "flext-tap-oracle-wms" } +source = { editable = "flext-tap-oracle" } dependencies = [ - { name = "flext-cli" }, + { name = "fastapi" }, { name = "flext-core" }, + { name = "flext-db-oracle" }, { name = "flext-meltano" }, - { name = "flext-oracle-wms" }, + { name = "flext-observability" }, + { name = "prometheus-client" }, { name = "pydantic" }, { name = "pydantic-core" }, - { name = "pydantic-settings" }, - { name = "requests" }, + { name = "setuptools" }, + { name = "singer-sdk" }, + { name = "uvicorn" }, ] -[package.optional-dependencies] +[package.dev-dependencies] +codegen = [ + { name = "flext-infra" }, +] dev = [ { name = "autoflake" }, { name = "bandit" }, @@ -8518,6 +6084,7 @@ dev = [ { name = "django-stubs" }, { name = "factory-boy" }, { name = "faker" }, + { name = "flext-tests" }, { name = "hypothesis" }, { name = "isort" }, { name = "matplotlib-stubs" }, @@ -8584,6 +6151,116 @@ dev = [ { name = "yamlfix" }, ] +[package.metadata] +requires-dist = [ + { name = "fastapi", specifier = ">=0.136.1" }, + { name = "flext-core", editable = "flext-core" }, + { name = "flext-db-oracle", editable = "flext-db-oracle" }, + { name = "flext-meltano", editable = "flext-meltano" }, + { name = "flext-observability", editable = "flext-observability" }, + { name = "prometheus-client", specifier = ">=0.25.0" }, + { name = "pydantic", specifier = ">=2.13.3" }, + { name = "pydantic-core", specifier = ">=2.46.3" }, + { name = "setuptools", specifier = ">=82.0.1" }, + { name = "singer-sdk", specifier = ">=0.53.7" }, + { name = "uvicorn", specifier = ">=0.46.0" }, +] + +[package.metadata.requires-dev] +codegen = [{ name = "flext-infra", editable = "flext-infra" }] +dev = [ + { name = "autoflake", specifier = ">=2.3.1" }, + { name = "bandit", specifier = ">=1.8" }, + { name = "black", specifier = ">=25.1" }, + { name = "blacken-docs", specifier = ">=1.19" }, + { name = "codespell", specifier = ">=2.3" }, + { name = "deptry", specifier = ">=0.23" }, + { name = "django-stubs", specifier = ">=5.2.2" }, + { name = "factory-boy", specifier = ">=3.3.1" }, + { name = "faker", specifier = ">=37.4" }, + { name = "flext-tests", editable = "flext-tests" }, + { name = "hypothesis", specifier = ">=6.125" }, + { name = "isort", specifier = ">=6.0.1" }, + { name = "matplotlib-stubs", specifier = ">=0.3" }, + { name = "mkdocs", specifier = ">=1.6" }, + { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.9" }, + { name = "mkdocs-encryptcontent-plugin", specifier = ">=2" }, + { name = "mkdocs-exclude", specifier = ">=1.0.2" }, + { name = "mkdocs-get-deps", specifier = ">=0.2" }, + { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.2" }, + { name = "mkdocs-literate-nav", specifier = ">=0.6" }, + { name = "mkdocs-macros-plugin", specifier = ">=1" }, + { name = "mkdocs-material", specifier = ">=9.5" }, + { name = "mkdocs-material-extensions", specifier = ">=1.3.1" }, + { name = "mkdocs-mermaid2-plugin", specifier = ">=1.1" }, + { name = "mkdocs-minify-plugin", specifier = ">=0.7" }, + { name = "mkdocs-print-site-plugin", specifier = ">=0.8" }, + { name = "mkdocs-redirects", specifier = ">=1.2" }, + { name = "mkdocs-section-index", specifier = ">=0.3.12" }, + { name = "mkdocs-versioning", specifier = ">=0.2" }, + { name = "mkdocstrings", specifier = ">=0.24" }, + { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "pip-audit", specifier = ">=2.7.3" }, + { name = "pre-commit", specifier = ">=4.6.0" }, + { name = "pylint", specifier = ">=3.3" }, + { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pytest", specifier = ">=8.4" }, + { name = "pytest-benchmark", specifier = ">=5.1" }, + { name = "pytest-clarity", specifier = ">=1.0.1" }, + { name = "pytest-codeblocks", specifier = ">=0.17.0" }, + { name = "pytest-cov", specifier = ">=6.2" }, + { name = "pytest-deadfixtures", specifier = ">=2.2.1" }, + { name = "pytest-env", specifier = ">=1.1.5" }, + { name = "pytest-markdown-docs", specifier = ">=0.9.2" }, + { name = "pytest-mock", specifier = ">=3.14" }, + { name = "pytest-randomly", specifier = ">=3.16" }, + { name = "pytest-sugar", specifier = ">=1" }, + { name = "pytest-timeout", specifier = ">=2.4" }, + { name = "pytest-xdist", specifier = ">=3.8" }, + { name = "pyupgrade", specifier = ">=3.19" }, + { name = "radon", specifier = ">=6.0.1" }, + { name = "ruff", specifier = ">=0.12.3" }, + { name = "types-cachetools", specifier = ">=6.2" }, + { name = "types-cffi", specifier = ">=2.0" }, + { name = "types-click", specifier = ">=7.1" }, + { name = "types-defusedxml", specifier = ">=0.7" }, + { name = "types-docker", specifier = ">=7.1" }, + { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-jsonschema", specifier = ">=4.26" }, + { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, + { name = "types-paramiko", specifier = ">=4.0" }, + { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, + { name = "types-psutil", specifier = ">=7" }, + { name = "types-psycopg2", specifier = ">=2.9.21.20250718" }, + { name = "types-pyasn1", specifier = ">=0.6" }, + { name = "types-pyopenssl", specifier = ">=24.1" }, + { name = "types-python-dateutil", specifier = ">=2.9" }, + { name = "types-pyyaml", specifier = ">=6.0.12.20260518" }, + { name = "types-redis", specifier = ">=4.6" }, + { name = "types-requests", specifier = ">=2.32.4" }, + { name = "types-setuptools", specifier = ">=80.9" }, + { name = "types-tabulate", specifier = ">=0.10" }, + { name = "types-toml", specifier = ">=0.10.8.20240310" }, + { name = "vulture", specifier = ">=2.13" }, + { name = "yamlfix", specifier = ">=1.19.1,<2" }, +] + +[[package]] +name = "flext-tap-oracle-oic" +version = "0.12.0rc0" +source = { editable = "flext-tap-oracle-oic" } +dependencies = [ + { name = "flext-api" }, + { name = "flext-cli" }, + { name = "flext-core" }, + { name = "flext-meltano" }, + { name = "flext-oracle-oic" }, + { name = "pydantic" }, + { name = "pydantic-core" }, + { name = "pydantic-settings" }, + { name = "requests" }, +] + [package.dev-dependencies] codegen = [ { name = "flext-infra" }, @@ -8646,6 +6323,7 @@ dev = [ { name = "types-defusedxml" }, { name = "types-docker" }, { name = "types-flask" }, + { name = "types-jsonschema" }, { name = "types-ldap3" }, { name = "types-paramiko" }, { name = "types-protobuf" }, @@ -8661,93 +6339,21 @@ dev = [ { name = "types-tabulate" }, { name = "types-toml" }, { name = "vulture" }, + { name = "yamlfix" }, ] [package.metadata] requires-dist = [ - { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, - { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, - { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, - { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, - { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, - { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, - { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, - { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, - { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, + { name = "flext-api", editable = "flext-api" }, { name = "flext-cli", editable = "flext-cli" }, { name = "flext-core", editable = "flext-core" }, { name = "flext-meltano", editable = "flext-meltano" }, - { name = "flext-oracle-wms", editable = "flext-oracle-wms" }, - { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, - { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, - { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, - { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, - { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, - { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, - { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, - { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, + { name = "flext-oracle-oic", editable = "flext-oracle-oic" }, { name = "pydantic", specifier = ">=2.13.3" }, { name = "pydantic-core", specifier = ">=2.46.3" }, { name = "pydantic-settings", specifier = ">=2.14.0" }, - { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, - { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, - { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, - { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, - { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, - { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, - { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, - { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, - { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, - { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, - { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, - { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, { name = "requests", specifier = ">=2.33.1" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, - { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, - { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, - { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, - { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, - { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, - { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, - { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, - { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, - { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, - { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, - { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, - { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, - { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, ] -provides-extras = ["dev"] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] @@ -8809,6 +6415,7 @@ dev = [ { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, @@ -8824,94 +6431,22 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] -name = "flext-target-ldap" +name = "flext-tap-oracle-wms" version = "0.12.0rc0" -source = { editable = "flext-target-ldap" } +source = { editable = "flext-tap-oracle-wms" } dependencies = [ { name = "flext-cli" }, { name = "flext-core" }, - { name = "flext-ldap" }, { name = "flext-meltano" }, -] - -[package.optional-dependencies] -dev = [ - { name = "autoflake" }, - { name = "bandit" }, - { name = "black" }, - { name = "blacken-docs" }, - { name = "codespell" }, - { name = "deptry" }, - { name = "django-stubs" }, - { name = "factory-boy" }, - { name = "faker" }, - { name = "hypothesis" }, - { name = "isort" }, - { name = "matplotlib-stubs" }, - { name = "mkdocs" }, - { name = "mkdocs-awesome-pages-plugin" }, - { name = "mkdocs-encryptcontent-plugin" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-get-deps" }, - { name = "mkdocs-git-revision-date-localized-plugin" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-macros-plugin" }, - { name = "mkdocs-material" }, - { name = "mkdocs-material-extensions" }, - { name = "mkdocs-mermaid2-plugin" }, - { name = "mkdocs-minify-plugin" }, - { name = "mkdocs-print-site-plugin" }, - { name = "mkdocs-redirects" }, - { name = "mkdocs-section-index" }, - { name = "mkdocs-versioning" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "pip-audit" }, - { name = "pre-commit" }, - { name = "pylint" }, - { name = "pyrefly" }, - { name = "pytest" }, - { name = "pytest-benchmark" }, - { name = "pytest-clarity" }, - { name = "pytest-codeblocks" }, - { name = "pytest-cov" }, - { name = "pytest-deadfixtures" }, - { name = "pytest-env" }, - { name = "pytest-markdown-docs" }, - { name = "pytest-mock" }, - { name = "pytest-randomly" }, - { name = "pytest-sugar" }, - { name = "pytest-timeout" }, - { name = "pytest-xdist" }, - { name = "pyupgrade" }, - { name = "radon" }, - { name = "ruff" }, - { name = "types-cachetools" }, - { name = "types-cffi" }, - { name = "types-click" }, - { name = "types-defusedxml" }, - { name = "types-docker" }, - { name = "types-flask" }, - { name = "types-jsonschema" }, - { name = "types-ldap3" }, - { name = "types-paramiko" }, - { name = "types-protobuf" }, - { name = "types-psutil" }, - { name = "types-psycopg2" }, - { name = "types-pyasn1" }, - { name = "types-pyopenssl" }, - { name = "types-python-dateutil" }, - { name = "types-pyyaml" }, - { name = "types-redis" }, - { name = "types-requests" }, - { name = "types-setuptools" }, - { name = "types-tabulate" }, - { name = "types-toml" }, - { name = "vulture" }, - { name = "yamlfix" }, + { name = "flext-oracle-wms" }, + { name = "pydantic" }, + { name = "pydantic-core" }, + { name = "pydantic-settings" }, + { name = "requests" }, ] [package.dev-dependencies] @@ -8928,7 +6463,6 @@ dev = [ { name = "django-stubs" }, { name = "factory-boy" }, { name = "faker" }, - { name = "flext-cli" }, { name = "flext-tests" }, { name = "hypothesis" }, { name = "isort" }, @@ -8977,6 +6511,7 @@ dev = [ { name = "types-defusedxml" }, { name = "types-docker" }, { name = "types-flask" }, + { name = "types-jsonschema" }, { name = "types-ldap3" }, { name = "types-paramiko" }, { name = "types-protobuf" }, @@ -8991,90 +6526,21 @@ dev = [ { name = "types-setuptools" }, { name = "types-tabulate" }, { name = "types-toml" }, - { name = "vulture" }, -] - -[package.metadata] -requires-dist = [ - { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, - { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, - { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, - { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, - { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, - { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, - { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, - { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, - { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, - { name = "flext-cli", editable = "flext-cli" }, - { name = "flext-core", editable = "flext-core" }, - { name = "flext-ldap", editable = "flext-ldap" }, - { name = "flext-meltano", editable = "flext-meltano" }, - { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, - { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, - { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, - { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, - { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, - { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, - { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, - { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, - { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, - { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, - { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, - { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, - { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, - { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, - { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, - { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, - { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, - { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, - { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, - { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, - { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, - { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, - { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, - { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, - { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, - { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, - { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, - { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, - { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, - { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, - { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, - { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, - { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, + { name = "vulture" }, + { name = "yamlfix" }, +] + +[package.metadata] +requires-dist = [ + { name = "flext-cli", editable = "flext-cli" }, + { name = "flext-core", editable = "flext-core" }, + { name = "flext-meltano", editable = "flext-meltano" }, + { name = "flext-oracle-wms", editable = "flext-oracle-wms" }, + { name = "pydantic", specifier = ">=2.13.3" }, + { name = "pydantic-core", specifier = ">=2.46.3" }, + { name = "pydantic-settings", specifier = ">=2.14.0" }, + { name = "requests", specifier = ">=2.33.1" }, ] -provides-extras = ["dev"] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] @@ -9088,7 +6554,6 @@ dev = [ { name = "django-stubs", specifier = ">=5.2.2" }, { name = "factory-boy", specifier = ">=3.3.1" }, { name = "faker", specifier = ">=37.4" }, - { name = "flext-cli", editable = "flext-cli" }, { name = "flext-tests", editable = "flext-tests" }, { name = "hypothesis", specifier = ">=6.125" }, { name = "isort", specifier = ">=6.0.1" }, @@ -9137,6 +6602,7 @@ dev = [ { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, @@ -9152,97 +6618,18 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] -name = "flext-target-ldif" +name = "flext-target-ldap" version = "0.12.0rc0" -source = { editable = "flext-target-ldif" } +source = { editable = "flext-target-ldap" } dependencies = [ + { name = "flext-cli" }, { name = "flext-core" }, - { name = "flext-ldif" }, + { name = "flext-ldap" }, { name = "flext-meltano" }, - { name = "flext-observability" }, - { name = "pydantic" }, - { name = "pydantic-core" }, - { name = "pydantic-settings" }, -] - -[package.optional-dependencies] -dev = [ - { name = "autoflake" }, - { name = "bandit" }, - { name = "black" }, - { name = "blacken-docs" }, - { name = "codespell" }, - { name = "deptry" }, - { name = "django-stubs" }, - { name = "factory-boy" }, - { name = "faker" }, - { name = "hypothesis" }, - { name = "isort" }, - { name = "matplotlib-stubs" }, - { name = "mkdocs" }, - { name = "mkdocs-awesome-pages-plugin" }, - { name = "mkdocs-encryptcontent-plugin" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-get-deps" }, - { name = "mkdocs-git-revision-date-localized-plugin" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-macros-plugin" }, - { name = "mkdocs-material" }, - { name = "mkdocs-material-extensions" }, - { name = "mkdocs-mermaid2-plugin" }, - { name = "mkdocs-minify-plugin" }, - { name = "mkdocs-print-site-plugin" }, - { name = "mkdocs-redirects" }, - { name = "mkdocs-section-index" }, - { name = "mkdocs-versioning" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "pip-audit" }, - { name = "pre-commit" }, - { name = "pylint" }, - { name = "pyrefly" }, - { name = "pytest" }, - { name = "pytest-benchmark" }, - { name = "pytest-clarity" }, - { name = "pytest-codeblocks" }, - { name = "pytest-cov" }, - { name = "pytest-deadfixtures" }, - { name = "pytest-env" }, - { name = "pytest-markdown-docs" }, - { name = "pytest-mock" }, - { name = "pytest-randomly" }, - { name = "pytest-sugar" }, - { name = "pytest-timeout" }, - { name = "pytest-xdist" }, - { name = "pyupgrade" }, - { name = "radon" }, - { name = "ruff" }, - { name = "types-cachetools" }, - { name = "types-cffi" }, - { name = "types-click" }, - { name = "types-defusedxml" }, - { name = "types-docker" }, - { name = "types-flask" }, - { name = "types-jsonschema" }, - { name = "types-ldap3" }, - { name = "types-paramiko" }, - { name = "types-protobuf" }, - { name = "types-psutil" }, - { name = "types-psycopg2" }, - { name = "types-pyasn1" }, - { name = "types-pyopenssl" }, - { name = "types-python-dateutil" }, - { name = "types-pyyaml" }, - { name = "types-redis" }, - { name = "types-requests" }, - { name = "types-setuptools" }, - { name = "types-tabulate" }, - { name = "types-toml" }, - { name = "vulture" }, - { name = "yamlfix" }, ] [package.dev-dependencies] @@ -9259,6 +6646,7 @@ dev = [ { name = "django-stubs" }, { name = "factory-boy" }, { name = "faker" }, + { name = "flext-cli" }, { name = "flext-tests" }, { name = "hypothesis" }, { name = "isort" }, @@ -9307,6 +6695,7 @@ dev = [ { name = "types-defusedxml" }, { name = "types-docker" }, { name = "types-flask" }, + { name = "types-jsonschema" }, { name = "types-ldap3" }, { name = "types-paramiko" }, { name = "types-protobuf" }, @@ -9322,92 +6711,16 @@ dev = [ { name = "types-tabulate" }, { name = "types-toml" }, { name = "vulture" }, + { name = "yamlfix" }, ] [package.metadata] requires-dist = [ - { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, - { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, - { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, - { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, - { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, - { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, - { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, - { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, - { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, + { name = "flext-cli", editable = "flext-cli" }, { name = "flext-core", editable = "flext-core" }, - { name = "flext-ldif", editable = "flext-ldif" }, + { name = "flext-ldap", editable = "flext-ldap" }, { name = "flext-meltano", editable = "flext-meltano" }, - { name = "flext-observability", editable = "flext-observability" }, - { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, - { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, - { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, - { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, - { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, - { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, - { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, - { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, - { name = "pydantic", specifier = ">=2.13.3" }, - { name = "pydantic-core", specifier = ">=2.46.3" }, - { name = "pydantic-settings", specifier = ">=2.14.0" }, - { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, - { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, - { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, - { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, - { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, - { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, - { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, - { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, - { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, - { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, - { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, - { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, - { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, - { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, - { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, - { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, - { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, - { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, - { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, - { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, - { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, - { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, - { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, - { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, - { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, ] -provides-extras = ["dev"] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] @@ -9421,6 +6734,7 @@ dev = [ { name = "django-stubs", specifier = ">=5.2.2" }, { name = "factory-boy", specifier = ">=3.3.1" }, { name = "faker", specifier = ">=37.4" }, + { name = "flext-cli", editable = "flext-cli" }, { name = "flext-tests", editable = "flext-tests" }, { name = "hypothesis", specifier = ">=6.125" }, { name = "isort", specifier = ">=6.0.1" }, @@ -9469,6 +6783,7 @@ dev = [ { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, @@ -9484,26 +6799,27 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] -name = "flext-target-oracle" +name = "flext-target-ldif" version = "0.12.0rc0" -source = { editable = "flext-target-oracle" } +source = { editable = "flext-target-ldif" } dependencies = [ - { name = "click" }, - { name = "flext-cli" }, { name = "flext-core" }, - { name = "flext-db-oracle" }, + { name = "flext-ldif" }, { name = "flext-meltano" }, + { name = "flext-observability" }, { name = "pydantic" }, { name = "pydantic-core" }, { name = "pydantic-settings" }, - { name = "pyyaml" }, - { name = "rich" }, ] -[package.optional-dependencies] +[package.dev-dependencies] +codegen = [ + { name = "flext-infra" }, +] dev = [ { name = "autoflake" }, { name = "bandit" }, @@ -9514,6 +6830,7 @@ dev = [ { name = "django-stubs" }, { name = "factory-boy" }, { name = "faker" }, + { name = "flext-tests" }, { name = "hypothesis" }, { name = "isort" }, { name = "matplotlib-stubs" }, @@ -9580,6 +6897,113 @@ dev = [ { name = "yamlfix" }, ] +[package.metadata] +requires-dist = [ + { name = "flext-core", editable = "flext-core" }, + { name = "flext-ldif", editable = "flext-ldif" }, + { name = "flext-meltano", editable = "flext-meltano" }, + { name = "flext-observability", editable = "flext-observability" }, + { name = "pydantic", specifier = ">=2.13.3" }, + { name = "pydantic-core", specifier = ">=2.46.3" }, + { name = "pydantic-settings", specifier = ">=2.14.0" }, +] + +[package.metadata.requires-dev] +codegen = [{ name = "flext-infra", editable = "flext-infra" }] +dev = [ + { name = "autoflake", specifier = ">=2.3.1" }, + { name = "bandit", specifier = ">=1.8" }, + { name = "black", specifier = ">=25.1" }, + { name = "blacken-docs", specifier = ">=1.19" }, + { name = "codespell", specifier = ">=2.3" }, + { name = "deptry", specifier = ">=0.23" }, + { name = "django-stubs", specifier = ">=5.2.2" }, + { name = "factory-boy", specifier = ">=3.3.1" }, + { name = "faker", specifier = ">=37.4" }, + { name = "flext-tests", editable = "flext-tests" }, + { name = "hypothesis", specifier = ">=6.125" }, + { name = "isort", specifier = ">=6.0.1" }, + { name = "matplotlib-stubs", specifier = ">=0.3" }, + { name = "mkdocs", specifier = ">=1.6" }, + { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.9" }, + { name = "mkdocs-encryptcontent-plugin", specifier = ">=2" }, + { name = "mkdocs-exclude", specifier = ">=1.0.2" }, + { name = "mkdocs-get-deps", specifier = ">=0.2" }, + { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.2" }, + { name = "mkdocs-literate-nav", specifier = ">=0.6" }, + { name = "mkdocs-macros-plugin", specifier = ">=1" }, + { name = "mkdocs-material", specifier = ">=9.5" }, + { name = "mkdocs-material-extensions", specifier = ">=1.3.1" }, + { name = "mkdocs-mermaid2-plugin", specifier = ">=1.1" }, + { name = "mkdocs-minify-plugin", specifier = ">=0.7" }, + { name = "mkdocs-print-site-plugin", specifier = ">=0.8" }, + { name = "mkdocs-redirects", specifier = ">=1.2" }, + { name = "mkdocs-section-index", specifier = ">=0.3.12" }, + { name = "mkdocs-versioning", specifier = ">=0.2" }, + { name = "mkdocstrings", specifier = ">=0.24" }, + { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "pip-audit", specifier = ">=2.7.3" }, + { name = "pre-commit", specifier = ">=4.6.0" }, + { name = "pylint", specifier = ">=3.3" }, + { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pytest", specifier = ">=8.4" }, + { name = "pytest-benchmark", specifier = ">=5.1" }, + { name = "pytest-clarity", specifier = ">=1.0.1" }, + { name = "pytest-codeblocks", specifier = ">=0.17.0" }, + { name = "pytest-cov", specifier = ">=6.2" }, + { name = "pytest-deadfixtures", specifier = ">=2.2.1" }, + { name = "pytest-env", specifier = ">=1.1.5" }, + { name = "pytest-markdown-docs", specifier = ">=0.9.2" }, + { name = "pytest-mock", specifier = ">=3.14" }, + { name = "pytest-randomly", specifier = ">=3.16" }, + { name = "pytest-sugar", specifier = ">=1" }, + { name = "pytest-timeout", specifier = ">=2.4" }, + { name = "pytest-xdist", specifier = ">=3.8" }, + { name = "pyupgrade", specifier = ">=3.19" }, + { name = "radon", specifier = ">=6.0.1" }, + { name = "ruff", specifier = ">=0.12.3" }, + { name = "types-cachetools", specifier = ">=6.2" }, + { name = "types-cffi", specifier = ">=2.0" }, + { name = "types-click", specifier = ">=7.1" }, + { name = "types-defusedxml", specifier = ">=0.7" }, + { name = "types-docker", specifier = ">=7.1" }, + { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-jsonschema", specifier = ">=4.26" }, + { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, + { name = "types-paramiko", specifier = ">=4.0" }, + { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, + { name = "types-psutil", specifier = ">=7" }, + { name = "types-psycopg2", specifier = ">=2.9.21.20250718" }, + { name = "types-pyasn1", specifier = ">=0.6" }, + { name = "types-pyopenssl", specifier = ">=24.1" }, + { name = "types-python-dateutil", specifier = ">=2.9" }, + { name = "types-pyyaml", specifier = ">=6.0.12.20260518" }, + { name = "types-redis", specifier = ">=4.6" }, + { name = "types-requests", specifier = ">=2.32.4" }, + { name = "types-setuptools", specifier = ">=80.9" }, + { name = "types-tabulate", specifier = ">=0.10" }, + { name = "types-toml", specifier = ">=0.10.8.20240310" }, + { name = "vulture", specifier = ">=2.13" }, + { name = "yamlfix", specifier = ">=1.19.1,<2" }, +] + +[[package]] +name = "flext-target-oracle" +version = "0.12.0rc0" +source = { editable = "flext-target-oracle" } +dependencies = [ + { name = "click" }, + { name = "flext-cli" }, + { name = "flext-core" }, + { name = "flext-db-oracle" }, + { name = "flext-meltano" }, + { name = "pydantic" }, + { name = "pydantic-core" }, + { name = "pydantic-settings" }, + { name = "pyyaml" }, + { name = "rich" }, +] + [package.dev-dependencies] codegen = [ { name = "flext-infra" }, @@ -9642,6 +7066,7 @@ dev = [ { name = "types-defusedxml" }, { name = "types-docker" }, { name = "types-flask" }, + { name = "types-jsonschema" }, { name = "types-ldap3" }, { name = "types-paramiko" }, { name = "types-protobuf" }, @@ -9657,95 +7082,22 @@ dev = [ { name = "types-tabulate" }, { name = "types-toml" }, { name = "vulture" }, + { name = "yamlfix" }, ] [package.metadata] requires-dist = [ - { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, - { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, - { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, - { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, { name = "click", specifier = ">=8.3.3" }, - { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, - { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, - { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, - { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, - { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, { name = "flext-cli", editable = "flext-cli" }, { name = "flext-core", editable = "flext-core" }, { name = "flext-db-oracle", editable = "flext-db-oracle" }, { name = "flext-meltano", editable = "flext-meltano" }, - { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, - { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, - { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, - { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, - { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, - { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, - { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, - { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, { name = "pydantic", specifier = ">=2.13.3" }, { name = "pydantic-core", specifier = ">=2.46.3" }, { name = "pydantic-settings", specifier = ">=2.14.0" }, - { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, - { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, - { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, - { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, - { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, - { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, - { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, - { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, - { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, - { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, - { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, { name = "pyyaml", specifier = ">=6.0.3" }, - { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, { name = "rich", specifier = ">=14,<15" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, - { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, - { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, - { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, - { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, - { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, - { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, - { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, - { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, - { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, - { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, - { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, - { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, - { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, ] -provides-extras = ["dev"] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] @@ -9807,6 +7159,7 @@ dev = [ { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, @@ -9822,6 +7175,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -9844,83 +7198,6 @@ dependencies = [ { name = "urllib3" }, ] -[package.optional-dependencies] -dev = [ - { name = "autoflake" }, - { name = "bandit" }, - { name = "black" }, - { name = "blacken-docs" }, - { name = "codespell" }, - { name = "deptry" }, - { name = "django-stubs" }, - { name = "factory-boy" }, - { name = "faker" }, - { name = "hypothesis" }, - { name = "isort" }, - { name = "matplotlib-stubs" }, - { name = "mkdocs" }, - { name = "mkdocs-awesome-pages-plugin" }, - { name = "mkdocs-encryptcontent-plugin" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-get-deps" }, - { name = "mkdocs-git-revision-date-localized-plugin" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-macros-plugin" }, - { name = "mkdocs-material" }, - { name = "mkdocs-material-extensions" }, - { name = "mkdocs-mermaid2-plugin" }, - { name = "mkdocs-minify-plugin" }, - { name = "mkdocs-print-site-plugin" }, - { name = "mkdocs-redirects" }, - { name = "mkdocs-section-index" }, - { name = "mkdocs-versioning" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "pip-audit" }, - { name = "pre-commit" }, - { name = "pylint" }, - { name = "pyrefly" }, - { name = "pytest" }, - { name = "pytest-benchmark" }, - { name = "pytest-clarity" }, - { name = "pytest-codeblocks" }, - { name = "pytest-cov" }, - { name = "pytest-deadfixtures" }, - { name = "pytest-env" }, - { name = "pytest-markdown-docs" }, - { name = "pytest-mock" }, - { name = "pytest-randomly" }, - { name = "pytest-sugar" }, - { name = "pytest-timeout" }, - { name = "pytest-xdist" }, - { name = "pyupgrade" }, - { name = "radon" }, - { name = "ruff" }, - { name = "types-cachetools" }, - { name = "types-cffi" }, - { name = "types-click" }, - { name = "types-defusedxml" }, - { name = "types-docker" }, - { name = "types-flask" }, - { name = "types-jsonschema" }, - { name = "types-ldap3" }, - { name = "types-paramiko" }, - { name = "types-protobuf" }, - { name = "types-psutil" }, - { name = "types-psycopg2" }, - { name = "types-pyasn1" }, - { name = "types-pyopenssl" }, - { name = "types-python-dateutil" }, - { name = "types-pyyaml" }, - { name = "types-redis" }, - { name = "types-requests" }, - { name = "types-setuptools" }, - { name = "types-tabulate" }, - { name = "types-toml" }, - { name = "vulture" }, - { name = "yamlfix" }, -] - [package.dev-dependencies] codegen = [ { name = "flext-infra" }, @@ -9983,6 +7260,7 @@ dev = [ { name = "types-defusedxml" }, { name = "types-docker" }, { name = "types-flask" }, + { name = "types-jsonschema" }, { name = "types-ldap3" }, { name = "types-paramiko" }, { name = "types-protobuf" }, @@ -9998,98 +7276,25 @@ dev = [ { name = "types-tabulate" }, { name = "types-toml" }, { name = "vulture" }, + { name = "yamlfix" }, ] [package.metadata] requires-dist = [ - { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, - { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, - { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, - { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, - { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, - { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, - { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, - { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, - { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, { name = "flext-api", editable = "flext-api" }, - { name = "flext-cli", editable = "flext-cli" }, - { name = "flext-core", editable = "flext-core" }, - { name = "flext-db-oracle", editable = "flext-db-oracle" }, - { name = "flext-meltano", editable = "flext-meltano" }, - { name = "flext-observability", editable = "flext-observability" }, - { name = "flext-oracle-oic", editable = "flext-oracle-oic" }, - { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, - { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, - { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, - { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, - { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, - { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, - { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, - { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, + { name = "flext-cli", editable = "flext-cli" }, + { name = "flext-core", editable = "flext-core" }, + { name = "flext-db-oracle", editable = "flext-db-oracle" }, + { name = "flext-meltano", editable = "flext-meltano" }, + { name = "flext-observability", editable = "flext-observability" }, + { name = "flext-oracle-oic", editable = "flext-oracle-oic" }, { name = "pydantic", specifier = ">=2.13.3" }, { name = "pydantic-core", specifier = ">=2.46.3" }, { name = "pydantic-settings", specifier = ">=2.14.0" }, - { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, - { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, - { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, - { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, - { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, - { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, - { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, - { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, - { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, - { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, - { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, - { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, { name = "requests", specifier = ">=2.33.1" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, { name = "singer-sdk", specifier = ">=0.53.7" }, - { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, - { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, - { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, - { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, - { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, - { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, - { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, - { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, - { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, - { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, - { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, { name = "urllib3", specifier = ">=2.6.3" }, - { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, - { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, ] -provides-extras = ["dev"] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] @@ -10151,6 +7356,7 @@ dev = [ { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, @@ -10166,6 +7372,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -10185,83 +7392,6 @@ dependencies = [ { name = "sqlalchemy" }, ] -[package.optional-dependencies] -dev = [ - { name = "autoflake" }, - { name = "bandit" }, - { name = "black" }, - { name = "blacken-docs" }, - { name = "codespell" }, - { name = "deptry" }, - { name = "django-stubs" }, - { name = "factory-boy" }, - { name = "faker" }, - { name = "hypothesis" }, - { name = "isort" }, - { name = "matplotlib-stubs" }, - { name = "mkdocs" }, - { name = "mkdocs-awesome-pages-plugin" }, - { name = "mkdocs-encryptcontent-plugin" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-get-deps" }, - { name = "mkdocs-git-revision-date-localized-plugin" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-macros-plugin" }, - { name = "mkdocs-material" }, - { name = "mkdocs-material-extensions" }, - { name = "mkdocs-mermaid2-plugin" }, - { name = "mkdocs-minify-plugin" }, - { name = "mkdocs-print-site-plugin" }, - { name = "mkdocs-redirects" }, - { name = "mkdocs-section-index" }, - { name = "mkdocs-versioning" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "pip-audit" }, - { name = "pre-commit" }, - { name = "pylint" }, - { name = "pyrefly" }, - { name = "pytest" }, - { name = "pytest-benchmark" }, - { name = "pytest-clarity" }, - { name = "pytest-codeblocks" }, - { name = "pytest-cov" }, - { name = "pytest-deadfixtures" }, - { name = "pytest-env" }, - { name = "pytest-markdown-docs" }, - { name = "pytest-mock" }, - { name = "pytest-randomly" }, - { name = "pytest-sugar" }, - { name = "pytest-timeout" }, - { name = "pytest-xdist" }, - { name = "pyupgrade" }, - { name = "radon" }, - { name = "ruff" }, - { name = "types-cachetools" }, - { name = "types-cffi" }, - { name = "types-click" }, - { name = "types-defusedxml" }, - { name = "types-docker" }, - { name = "types-flask" }, - { name = "types-jsonschema" }, - { name = "types-ldap3" }, - { name = "types-paramiko" }, - { name = "types-protobuf" }, - { name = "types-psutil" }, - { name = "types-psycopg2" }, - { name = "types-pyasn1" }, - { name = "types-pyopenssl" }, - { name = "types-python-dateutil" }, - { name = "types-pyyaml" }, - { name = "types-redis" }, - { name = "types-requests" }, - { name = "types-setuptools" }, - { name = "types-tabulate" }, - { name = "types-toml" }, - { name = "vulture" }, - { name = "yamlfix" }, -] - [package.dev-dependencies] codegen = [ { name = "flext-infra" }, @@ -10324,6 +7454,7 @@ dev = [ { name = "types-defusedxml" }, { name = "types-docker" }, { name = "types-flask" }, + { name = "types-jsonschema" }, { name = "types-ldap3" }, { name = "types-paramiko" }, { name = "types-protobuf" }, @@ -10339,95 +7470,22 @@ dev = [ { name = "types-tabulate" }, { name = "types-toml" }, { name = "vulture" }, + { name = "yamlfix" }, ] [package.metadata] requires-dist = [ - { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, - { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, - { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, - { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, - { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, - { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, - { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, - { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, - { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, { name = "flext-cli", editable = "flext-cli" }, { name = "flext-core", editable = "flext-core" }, { name = "flext-db-oracle", editable = "flext-db-oracle" }, { name = "flext-meltano", editable = "flext-meltano" }, { name = "flext-observability", editable = "flext-observability" }, { name = "flext-oracle-wms", editable = "flext-oracle-wms" }, - { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, - { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, - { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, - { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, - { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, - { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, - { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, - { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, { name = "pydantic", specifier = ">=2.13.3" }, { name = "pydantic-core", specifier = ">=2.46.3" }, { name = "pydantic-settings", specifier = ">=2.14.0" }, - { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, - { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, - { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, - { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, - { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, - { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, - { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, - { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, - { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, - { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, - { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, - { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, { name = "sqlalchemy", specifier = ">=2.0.49" }, - { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, - { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, - { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, - { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, - { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, - { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, - { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, - { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, - { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, - { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, - { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, - { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, - { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, ] -provides-extras = ["dev"] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] @@ -10489,6 +7547,7 @@ dev = [ { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, @@ -10504,6 +7563,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -10526,88 +7586,11 @@ dependencies = [ { name = "pytest-env" }, { name = "pytest-mock" }, { name = "pytest-randomly" }, - { name = "pytest-reportlog" }, - { name = "pytest-sugar" }, - { name = "pytest-timeout" }, - { name = "pytest-xdist" }, - { name = "python-on-whales" }, -] - -[package.optional-dependencies] -dev = [ - { name = "autoflake" }, - { name = "bandit" }, - { name = "black" }, - { name = "blacken-docs" }, - { name = "codespell" }, - { name = "deptry" }, - { name = "django-stubs" }, - { name = "factory-boy" }, - { name = "faker" }, - { name = "hypothesis" }, - { name = "isort" }, - { name = "matplotlib-stubs" }, - { name = "mkdocs" }, - { name = "mkdocs-awesome-pages-plugin" }, - { name = "mkdocs-encryptcontent-plugin" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-get-deps" }, - { name = "mkdocs-git-revision-date-localized-plugin" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-macros-plugin" }, - { name = "mkdocs-material" }, - { name = "mkdocs-material-extensions" }, - { name = "mkdocs-mermaid2-plugin" }, - { name = "mkdocs-minify-plugin" }, - { name = "mkdocs-print-site-plugin" }, - { name = "mkdocs-redirects" }, - { name = "mkdocs-section-index" }, - { name = "mkdocs-versioning" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "pip-audit" }, - { name = "pre-commit" }, - { name = "pylint" }, - { name = "pyrefly" }, - { name = "pytest" }, - { name = "pytest-benchmark" }, - { name = "pytest-clarity" }, - { name = "pytest-codeblocks" }, - { name = "pytest-cov" }, - { name = "pytest-deadfixtures" }, - { name = "pytest-env" }, - { name = "pytest-markdown-docs" }, - { name = "pytest-mock" }, - { name = "pytest-randomly" }, + { name = "pytest-reportlog" }, { name = "pytest-sugar" }, { name = "pytest-timeout" }, { name = "pytest-xdist" }, - { name = "pyupgrade" }, - { name = "radon" }, - { name = "ruff" }, - { name = "types-cachetools" }, - { name = "types-cffi" }, - { name = "types-click" }, - { name = "types-defusedxml" }, - { name = "types-docker" }, - { name = "types-flask" }, - { name = "types-jsonschema" }, - { name = "types-ldap3" }, - { name = "types-paramiko" }, - { name = "types-protobuf" }, - { name = "types-psutil" }, - { name = "types-psycopg2" }, - { name = "types-pyasn1" }, - { name = "types-pyopenssl" }, - { name = "types-python-dateutil" }, - { name = "types-pyyaml" }, - { name = "types-redis" }, - { name = "types-requests" }, - { name = "types-setuptools" }, - { name = "types-tabulate" }, - { name = "types-toml" }, - { name = "vulture" }, - { name = "yamlfix" }, + { name = "python-on-whales" }, ] [package.dev-dependencies] @@ -10694,101 +7677,27 @@ dev = [ [package.metadata] requires-dist = [ - { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, - { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, - { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, - { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, - { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, - { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, - { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, { name = "docker", specifier = ">=7.1" }, { name = "factory-boy", specifier = ">=3.3.3" }, - { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, { name = "faker", specifier = ">=40.15.0" }, - { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, { name = "flext-cli", editable = "flext-cli" }, { name = "flext-core", editable = "flext-core" }, { name = "flext-infra", editable = "flext-infra" }, { name = "hypothesis", specifier = ">=6.152.4" }, - { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, - { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, - { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, - { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, - { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, - { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, - { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, - { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, - { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, - { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, { name = "pytest", specifier = ">=9.0.3" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.2.3" }, - { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, - { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, { name = "pytest-cov", specifier = ">=7.1.0" }, - { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, { name = "pytest-deadfixtures", specifier = ">=3.1.0" }, - { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, { name = "pytest-env", specifier = ">=1.6.0" }, - { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, { name = "pytest-mock", specifier = ">=3.15.1" }, - { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, { name = "pytest-randomly", specifier = ">=4.1.0" }, - { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, { name = "pytest-reportlog", specifier = ">=1.0.0" }, { name = "pytest-sugar", specifier = ">=1.1.1" }, - { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, { name = "pytest-timeout", specifier = ">=2.4.0" }, - { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, { name = "pytest-xdist", specifier = ">=3.8.0" }, - { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, { name = "python-on-whales", specifier = ">=0.7" }, - { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, - { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, - { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, - { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, - { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, - { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, - { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, - { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, - { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, - { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, - { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, - { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, - { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, - { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, - { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, ] -provides-extras = ["dev"] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] @@ -10886,83 +7795,6 @@ dependencies = [ { name = "uvicorn" }, ] -[package.optional-dependencies] -dev = [ - { name = "autoflake" }, - { name = "bandit" }, - { name = "black" }, - { name = "blacken-docs" }, - { name = "codespell" }, - { name = "deptry" }, - { name = "django-stubs" }, - { name = "factory-boy" }, - { name = "faker" }, - { name = "hypothesis" }, - { name = "isort" }, - { name = "matplotlib-stubs" }, - { name = "mkdocs" }, - { name = "mkdocs-awesome-pages-plugin" }, - { name = "mkdocs-encryptcontent-plugin" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-get-deps" }, - { name = "mkdocs-git-revision-date-localized-plugin" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-macros-plugin" }, - { name = "mkdocs-material" }, - { name = "mkdocs-material-extensions" }, - { name = "mkdocs-mermaid2-plugin" }, - { name = "mkdocs-minify-plugin" }, - { name = "mkdocs-print-site-plugin" }, - { name = "mkdocs-redirects" }, - { name = "mkdocs-section-index" }, - { name = "mkdocs-versioning" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "pip-audit" }, - { name = "pre-commit" }, - { name = "pylint" }, - { name = "pyrefly" }, - { name = "pytest" }, - { name = "pytest-benchmark" }, - { name = "pytest-clarity" }, - { name = "pytest-codeblocks" }, - { name = "pytest-cov" }, - { name = "pytest-deadfixtures" }, - { name = "pytest-env" }, - { name = "pytest-markdown-docs" }, - { name = "pytest-mock" }, - { name = "pytest-randomly" }, - { name = "pytest-sugar" }, - { name = "pytest-timeout" }, - { name = "pytest-xdist" }, - { name = "pyupgrade" }, - { name = "radon" }, - { name = "ruff" }, - { name = "types-cachetools" }, - { name = "types-cffi" }, - { name = "types-click" }, - { name = "types-defusedxml" }, - { name = "types-docker" }, - { name = "types-flask" }, - { name = "types-jsonschema" }, - { name = "types-ldap3" }, - { name = "types-paramiko" }, - { name = "types-protobuf" }, - { name = "types-psutil" }, - { name = "types-psycopg2" }, - { name = "types-pyasn1" }, - { name = "types-pyopenssl" }, - { name = "types-python-dateutil" }, - { name = "types-pyyaml" }, - { name = "types-redis" }, - { name = "types-requests" }, - { name = "types-setuptools" }, - { name = "types-tabulate" }, - { name = "types-toml" }, - { name = "vulture" }, - { name = "yamlfix" }, -] - [package.dev-dependencies] codegen = [ { name = "flext-infra" }, @@ -11046,90 +7878,16 @@ dev = [ [package.metadata] requires-dist = [ - { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, - { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, - { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, - { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, - { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, - { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, - { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, - { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, - { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, { name = "fastapi", specifier = ">=0.136.1" }, { name = "flask", specifier = ">=3.1.3" }, { name = "flext-cli", editable = "flext-cli" }, { name = "flext-core", editable = "flext-core" }, - { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, - { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, - { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, - { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, - { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, - { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, - { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, - { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, { name = "pydantic", specifier = ">=2.13.3" }, { name = "pydantic-core", specifier = ">=2.46.3" }, { name = "pydantic-settings", specifier = ">=2.14.0" }, - { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, - { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, - { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, - { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, - { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, - { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, - { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, - { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, - { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, - { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, - { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, - { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, { name = "requests", specifier = ">=2.33.1" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, - { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, - { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, - { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, - { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, - { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, - { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, - { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, - { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, - { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, - { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, - { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, { name = "uvicorn", specifier = ">=0.46.0" }, - { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, - { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, ] -provides-extras = ["dev"] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] @@ -14484,17 +11242,17 @@ wheels = [ [[package]] name = "rumdl" -version = "0.2.44" +version = "0.2.45" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b6/2f/066de2350551300f1349cf4c0c740215d3bcb573d86a9c75a2d7c18f39d9/rumdl-0.2.44.tar.gz", hash = "sha256:28f30a734a973ed4192b8d55421266a3bc3b085b906f6bac7d52a1d74544276d", size = 3011868, upload-time = "2026-07-28T09:30:09.593Z" } +sdist = { url = "https://files.pythonhosted.org/packages/c8/fa/9df7db6f63b56af38c8968226a14cf4a359557553990c7bb999d672b8f5a/rumdl-0.2.45.tar.gz", hash = "sha256:fe1bfe70b1ea6e923bc0bc20c915c0c073545df24f7af9d9012146dc7b16cdbc", size = 3017283, upload-time = "2026-07-28T18:58:32.767Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/29/e7/1289038c9b3fe8a97339cba8a08c3886c3bf8232fb0472318a380e986e4a/rumdl-0.2.44-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:f23ae009057d4038ad573d5bfbfba462ddf8a85ee77b52c681bc0e5167ab60f7", size = 6213023, upload-time = "2026-07-28T09:30:00.831Z" }, - { url = "https://files.pythonhosted.org/packages/f2/98/80e3b0663bb2a12f4d459bcaaac44b7c0ba4d38054f8f72415c24b62f2a6/rumdl-0.2.44-py3-none-macosx_11_0_arm64.whl", hash = "sha256:7a44775771d6b4e454edd30fc6ba41be79b0c4ad68e2963393ac17d5be22cdbc", size = 5866780, upload-time = "2026-07-28T09:29:53.405Z" }, - { url = "https://files.pythonhosted.org/packages/ba/ff/77597bc208f92d884eceda704f6b95dbebb08ef5de3a24348d715ed6774e/rumdl-0.2.44-py3-none-manylinux_2_28_aarch64.whl", hash = "sha256:847aa72f039d9eea19138f2a0909f934691ed65af628a8346aae02484f7aef20", size = 6004041, upload-time = "2026-07-28T09:29:56.222Z" }, - { url = "https://files.pythonhosted.org/packages/e5/61/7f9958174c5b969a6a5e94e676364fffcd6fee53e5eef2e98c36d91dfc7a/rumdl-0.2.44-py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:82e113db86949cadf5ff39c2ce303265340ea9e333dcd80259c44207b4f495f0", size = 6402942, upload-time = "2026-07-28T09:30:05.268Z" }, - { url = "https://files.pythonhosted.org/packages/e2/45/72f6eea3c2e7a49a3c68c000b1e5651eb1647258f1bdb85bc10ac0040eb9/rumdl-0.2.44-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:b2281ca3cc2b3f8d281a0211705efc3fa6c899ff21609f454f4d0103a841967e", size = 5996416, upload-time = "2026-07-28T09:29:58.47Z" }, - { url = "https://files.pythonhosted.org/packages/10/6d/44ee4c326a46622bdee41d1054b326f9e358148d5968b6e1e2eeeca17ee1/rumdl-0.2.44-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:8eff5af07526d72c4ad07fc1e077c85d9908f4f811163d686b1169346b404971", size = 6383035, upload-time = "2026-07-28T09:30:07.38Z" }, - { url = "https://files.pythonhosted.org/packages/c0/ed/bece77ce85b6a780c2fb96c59fbb9ca4f5eb022e6132e2a8642345288cdc/rumdl-0.2.44-py3-none-win_amd64.whl", hash = "sha256:2e92def4e6e7a10321238bbdcbd6f89092004919594a78621dcdf070590b2c0c", size = 6334097, upload-time = "2026-07-28T09:30:03.078Z" }, + { url = "https://files.pythonhosted.org/packages/a6/71/5f8baf4899e071f25be61f9ea21dbbe9181e7b71e2947ca0400802b280eb/rumdl-0.2.45-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:88a816acfe3692dd5d3c3051cff7ed826d93e93c5763cc423215a56d99a743e9", size = 6206492, upload-time = "2026-07-28T18:58:22.953Z" }, + { url = "https://files.pythonhosted.org/packages/6a/08/bd631669bcdbd4c2c8f0becba65443b19fa3f3d48b03e8624c33804304fe/rumdl-0.2.45-py3-none-macosx_11_0_arm64.whl", hash = "sha256:7161110046d73a9d527e022e4753a55aacf2837a014281a96cf7ff41b1e10ed8", size = 5875130, upload-time = "2026-07-28T18:58:15.272Z" }, + { url = "https://files.pythonhosted.org/packages/9b/9e/fb2af9472e6c72b4b2c9457e46492d7ae4dd2715afb62504200f9106451e/rumdl-0.2.45-py3-none-manylinux_2_28_aarch64.whl", hash = "sha256:dc6362b4f397f7372e32b34a299a0adebb9a668c19e8692be7df259d0aeda8a1", size = 6006588, upload-time = "2026-07-28T18:58:18.186Z" }, + { url = "https://files.pythonhosted.org/packages/bb/89/5828447a33c0fafd354ddfe97a39d3cfb4c7a0ca55069011d76dfb3bc65c/rumdl-0.2.45-py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:d2b94e5fff1aa7302a18b2b911988b6c2f0ad7818761b566512b825109c3228b", size = 6403062, upload-time = "2026-07-28T18:58:27.839Z" }, + { url = "https://files.pythonhosted.org/packages/0e/11/dca4300bc74b54218a7709bcb44e8ac349f740e973faae796baffead4d7f/rumdl-0.2.45-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:b18ee5612c7c50d58f0fcdb62488a8b12ee41c4e3f410f66bb65ae65167155a4", size = 5996885, upload-time = "2026-07-28T18:58:20.531Z" }, + { url = "https://files.pythonhosted.org/packages/c1/43/af6648d1441d8477df98782fe61076ccf1c3ddaa83040e4d5142f0c5a81e/rumdl-0.2.45-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:764f9906b52f4e241cdfa38933914e14bf21334df6d3eb34b4ae3ee2d3db616f", size = 6384319, upload-time = "2026-07-28T18:58:30.552Z" }, + { url = "https://files.pythonhosted.org/packages/74/a2/f71103e93c1ae5ee741ae3418f5e698fc850dff0b5cce3b4fdb5c9ee4e92/rumdl-0.2.45-py3-none-win_amd64.whl", hash = "sha256:b7ef2c42ce82ee6c24dd6cb09446ceca255ebb499f32bbc03d21c71d97549b27", size = 6321097, upload-time = "2026-07-28T18:58:25.4Z" }, ] [[package]] @@ -15199,16 +11957,15 @@ wheels = [ [[package]] name = "types-docker" -version = "7.2.0.20260724" +version = "7.2.0.20260728" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "types-paramiko" }, { name = "types-requests" }, { name = "urllib3" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/3a/60/d87ba2c61c566aca8186d38986e65688918b1efa3ed509155ff9015694b6/types_docker-7.2.0.20260724.tar.gz", hash = "sha256:adc0fef7f9eed6dd83394b76828e514dbd427afece0d6a5498e9a3a398436705", size = 36358, upload-time = "2026-07-24T05:00:27.984Z" } +sdist = { url = "https://files.pythonhosted.org/packages/00/f9/7792217bb55b523f409e8699b41d849345fe673e7aae254e5402c8b6c391/types_docker-7.2.0.20260728.tar.gz", hash = "sha256:eeb780deddb000d3be7584cca16b02fc7f68b135b0039977be13c121861db197", size = 36538, upload-time = "2026-07-28T04:52:14.199Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a2/16/d8ec05a2e8924e57cb1a400e21115cbb62822ad622fd41dc4f8683199e40/types_docker-7.2.0.20260724-py3-none-any.whl", hash = "sha256:9ab8a6c08861e02bafc9225b9ac385e3b9c094289373b0be37f5ab530fb07fd3", size = 51100, upload-time = "2026-07-24T05:00:26.917Z" }, + { url = "https://files.pythonhosted.org/packages/96/0b/733f7fb323bbf4394f69b7c6485b6b7d373c301261c26af08ad72bcfa456/types_docker-7.2.0.20260728-py3-none-any.whl", hash = "sha256:f8d7a80dbc12cb7d794bf22d42f7bb1545db6226ee204dc685812a4695ac9a23", size = 51168, upload-time = "2026-07-28T04:52:13.201Z" }, ] [[package]] From 6720ec8d982470ddaaf66aa05a1e164dea696c89 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Wed, 29 Jul 2026 11:03:12 -0300 Subject: [PATCH 004/165] chore(workspace): advance codegen diagnostics --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index f09bcf6f7..97e40d6dc 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit f09bcf6f7dd044e458b0e24af0766e85a92da2cd +Subproject commit 97e40d6dc8491205be593c8ffeae390bee77093a From 2163ed346a7276199736028dfbd83904c194ca42 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Wed, 29 Jul 2026 11:11:45 -0300 Subject: [PATCH 005/165] chore(workspace): advance archive lint policy --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index 97e40d6dc..d3e129257 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 97e40d6dc8491205be593c8ffeae390bee77093a +Subproject commit d3e129257a2034f026bf0b4dcda436b779fd77f4 From f00b2eadf08169f13bf65c4d58d9ca0bd4d2a63b Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Wed, 29 Jul 2026 11:42:39 -0300 Subject: [PATCH 006/165] chore(workspace): absorb generated 0.12 dev baseline --- .github/workflows/ci-matrix.yml | 83 ++++++ .github/workflows/ci.yml | 25 +- .gitignore | 24 +- .mise.toml | 16 +- .python-version | 2 +- .vscode/settings.json | 1 - Makefile | 412 ++++++++++++++++++------- custom.mk | 5 +- pyproject.toml | 511 ++++++++++++++++---------------- uv.lock | 489 ++++++++++++------------------ 10 files changed, 858 insertions(+), 710 deletions(-) create mode 100644 .github/workflows/ci-matrix.yml diff --git a/.github/workflows/ci-matrix.yml b/.github/workflows/ci-matrix.yml new file mode 100644 index 000000000..3aaf1143b --- /dev/null +++ b/.github/workflows/ci-matrix.yml @@ -0,0 +1,83 @@ +# Generated by `flext-infra codegen conform` for flext. +# Multi-environment CI base: proves the project bootstrap and canonical Make +# verbs work identically across distros, macOS, and Windows. The CI invokes +# the project's own Make surface; it never reimplements bootstrap. +--- +name: ci-matrix + +on: + push: + branches: [0.12.0-dev] + pull_request: + branches: [0.12.0-dev] + workflow_dispatch: {} + +permissions: + contents: read + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + distro-matrix: + # Clean-machine proof per distro: build the distro image (which runs the + # full project bootstrap at image-build time), then smoke the verb surface + # inside the built container. + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + distro: [ubuntu, debian, fedora, alpine, arch] + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + - name: Build ${{ matrix.distro }} image + run: >- + docker build + -f ci/docker/${{ matrix.distro }}.Dockerfile + -t ci-matrix-${{ matrix.distro }} + . + - name: Bootstrap + verb smoke (${{ matrix.distro }}) + run: | + docker run --rm ci-matrix-${{ matrix.distro }} make help + docker run --rm ci-matrix-${{ matrix.distro }} make check + + macos: + runs-on: macos-latest + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + - name: Setup Python + uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 + with: + python-version: "3.13" + - name: Install uv + uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0 + with: + enable-cache: true + - name: Install declared toolchain + uses: jdx/mise-action@dba19683ed58901619b14f395a24841710cb4925 # v4.1.0 + - name: Bootstrap + run: make setup + - name: Verb surface + run: make help + + windows: + runs-on: windows-latest + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + - name: Setup Python + uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 + with: + python-version: "3.13" + - name: Install uv + uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0 + with: + enable-cache: true + - name: Install declared toolchain + uses: jdx/mise-action@dba19683ed58901619b14f395a24841710cb4925 # v4.1.0 + - name: Bootstrap + shell: bash + run: make setup + - name: Verb surface + shell: bash + run: make help diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 800ee4061..f8fd0377b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,10 +1,13 @@ +# Generated by flext_infra codegen for flext — DO NOT EDIT name: CI on: pull_request: + branches: + - 0.12.0-dev push: branches: - - main + - 0.12.0-dev workflow_dispatch: permissions: @@ -17,31 +20,29 @@ jobs: timeout-minutes: 60 steps: - name: Checkout - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: submodules: recursive fetch-depth: 0 - name: Setup Python - uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 + uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: python-version: "3.13" - name: Install uv - uses: astral-sh/setup-uv@e58605a9b6da7c637471fab8847a5e5a6b8df081 # v5 + uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0 with: enable-cache: true - - name: Boot (blocking) - run: make boot + - name: Install declared toolchain + uses: jdx/mise-action@dba19683ed58901619b14f395a24841710cb4925 # v4.1.0 + + - name: Setup (blocking) + run: make setup - name: Check (blocking) run: make check - - name: Test (advisory) - continue-on-error: true + - name: Test (blocking) run: make test - - - name: Val (advisory) - continue-on-error: true - run: make val diff --git a/.gitignore b/.gitignore index 7d0367f72..f6f53300a 100644 --- a/.gitignore +++ b/.gitignore @@ -27,7 +27,7 @@ !.agents/** .agents/skills/*/report.json -# Workspace manifest (superproject root only) +# Workspace topology manifest !/config/workspace.yaml # Dispatcher-based command surface (Make SSOT) @@ -37,12 +37,10 @@ scripts/*.py scripts/*.sh scripts/*.md +scripts/maintenance/ !scripts/dispatch.py !scripts/__init__.py -# Workspace maintenance tooling (superproject root only) -scripts/maintenance/ - # TRACK: Beads team config; keep Dolt data, runtime state, and JSONL exports local. !.beads/ .beads/* @@ -50,11 +48,13 @@ scripts/maintenance/ # Python configuration !pyproject.toml +!uv.lock !.taplo.toml !pyrefly.toml !poetry.lock !uv.lock !ruff-shared.toml +!uv.lock # mise toolchain pinning !.mise.toml @@ -80,10 +80,8 @@ scripts/maintenance/ # Git configuration !.gitignore -!.gitattributes - -# Submodule catalog (superproject root only) !.gitmodules +!.gitattributes # direnv environment (no secrets — venv activation only) !.envrc @@ -94,9 +92,6 @@ scripts/maintenance/ !.env.example !.env.template -# Member contents allowlist (superproject root only) -!flext-*/** - # WHITELIST: Contents Inside Allowed Directories !docker/** !docs/** @@ -110,6 +105,9 @@ scripts/maintenance/ !.claude/** !.claude-plugin/** +# Workspace member contents +!flext-*/** + # BLOCK: AI/Agent Local Data (NEVER track these) .claude/* !.agents/skills/ @@ -303,17 +301,15 @@ secrets.yml # --- workspace-migrate: required ignores (auto-managed) --- !base.mk -# Beads/Dolt coordination state (superproject root only) +# FINAL BEADS TRACKING POLICY !.beads/ .beads/* .beads/.* !.beads/config.yaml .beads/proxieddb/ .dolt/ -.beads-credential-key - -# FINAL BEADS TRACKING POLICY *.db +.beads-credential-key .worktrees/ legado/ diff --git a/.mise.toml b/.mise.toml index 5c0bde06c..4e0e8ee2d 100644 --- a/.mise.toml +++ b/.mise.toml @@ -1,14 +1,14 @@ # Generated by `flext-infra codegen conform`. -# NOTE: mise carries ONLY language runtimes (python, uv) as exact fleet-wide -# pins from the config SSOT (Infra.codegen.toolchain). Linters/type-checkers -# come exclusively from the locked dependency groups (pyproject dev group), -# installed into the workspace .venv by uv; gates invoke them via python -m, -# so mise never pins linter tools. +# NOTE: mise carries the Python runtime and native tools from the config SSOT. +# Python dependencies and uv are resolved by the caller-provided environment. [tools] -python = "3.13.11" -uv = "0.11.29" -# Deploy toolchain (single source: Infra.codegen.toolchain in codegen.yaml). +python = "3.13" +# Native toolchain (single source: Infra.codegen.toolchain in codegen.yaml). kubectl = "1.32.0" helm = "3.19.4" kind = "0.31.0" +taplo = "0.10.0" +ast-grep = "0.45.0" +gitleaks = "8.30.1" +tokei = "14.0.0" diff --git a/.python-version b/.python-version index 2c45fe3a7..24ee5b1be 100644 --- a/.python-version +++ b/.python-version @@ -1 +1 @@ -3.13.11 +3.13 diff --git a/.vscode/settings.json b/.vscode/settings.json index 1739258e4..a490ff736 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -213,7 +213,6 @@ "python-envs.workspaceSearchPaths": [ "./.venv", "./*/.venv", - "./apps/*/.venv", "./flext-api/.venv", "./flext-auth/.venv", "./flext-cli/.venv", diff --git a/Makefile b/Makefile index cf09e2fe1..f68062a08 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,7 @@ +# @flext-managed: continuous +# @flext-regenerate: make codegen WHAT=apply APPLY=Y +# @flext-ssot: flext-infra/config/codegen.yaml + flext-infra/src/flext_infra/templates/project/base/Makefile.j2 +# @flext-maintenance: do not edit generated projections; edit the SSOT and regenerate # flext — generated project interface. # Managed by flext-infra codegen conform for new and existing repositories. @@ -13,18 +17,41 @@ UV_LINK_MODE := copy APPLY ?= N ARGS ?= +CHECK_GATES ?= +FAIL_FAST ?= 0 +FILE ?= +FIX ?= 0 +MATCH ?= +PROJECT ?= PROJECTS ?= +BASE ?= +BRANCH ?= +# Public selector documented by base.mk. Forwarded to the test recipe so a +# focused run stays inside the canonical Make surface instead of forcing a +# loose pytest invocation. +PYTEST_ARGS ?= +PYTEST_TARGETS ?= $(PROJECT_ROOT)/tests +PYTEST_DIAG_ARGS ?= -rA --durations=0 --tb=long --showlocals +PYTEST_REPORT_ARGS ?= -ra --durations=25 --durations-min=0.001 --tb=short +PYTEST_REPORTS_DIR ?= .reports/tests WHAT ?= PROJECT_ROOT := $(shell pwd -P) -PUBLIC_VERBS := help setup deps build check test format run status docs clean release codegen -# A workspace root orchestrates its members, so its lint and type scope is the -# union of every member's source and tests. Members are expanded from the -# manifest SSOT, never listed by hand, and the paths stay existence-filtered so -# a member without one of the trees cannot break the gate. -WORKSPACE_CHECK_PATHS := $(wildcard $(PROJECT_ROOT)/flext-api/src) $(wildcard $(PROJECT_ROOT)/flext-api/tests) $(wildcard $(PROJECT_ROOT)/flext-auth/src) $(wildcard $(PROJECT_ROOT)/flext-auth/tests) $(wildcard $(PROJECT_ROOT)/flext-cli/src) $(wildcard $(PROJECT_ROOT)/flext-cli/tests) $(wildcard $(PROJECT_ROOT)/flext-core/src) $(wildcard $(PROJECT_ROOT)/flext-core/tests) $(wildcard $(PROJECT_ROOT)/flext-db-oracle/src) $(wildcard $(PROJECT_ROOT)/flext-db-oracle/tests) $(wildcard $(PROJECT_ROOT)/flext-dbt-ldap/src) $(wildcard $(PROJECT_ROOT)/flext-dbt-ldap/tests) $(wildcard $(PROJECT_ROOT)/flext-dbt-ldif/src) $(wildcard $(PROJECT_ROOT)/flext-dbt-ldif/tests) $(wildcard $(PROJECT_ROOT)/flext-dbt-oracle/src) $(wildcard $(PROJECT_ROOT)/flext-dbt-oracle/tests) $(wildcard $(PROJECT_ROOT)/flext-dbt-oracle-wms/src) $(wildcard $(PROJECT_ROOT)/flext-dbt-oracle-wms/tests) $(wildcard $(PROJECT_ROOT)/flext-grpc/src) $(wildcard $(PROJECT_ROOT)/flext-grpc/tests) $(wildcard $(PROJECT_ROOT)/flext-infra/src) $(wildcard $(PROJECT_ROOT)/flext-infra/tests) $(wildcard $(PROJECT_ROOT)/flext-ldap/src) $(wildcard $(PROJECT_ROOT)/flext-ldap/tests) $(wildcard $(PROJECT_ROOT)/flext-ldif/src) $(wildcard $(PROJECT_ROOT)/flext-ldif/tests) $(wildcard $(PROJECT_ROOT)/flext-meltano/src) $(wildcard $(PROJECT_ROOT)/flext-meltano/tests) $(wildcard $(PROJECT_ROOT)/flext-observability/src) $(wildcard $(PROJECT_ROOT)/flext-observability/tests) $(wildcard $(PROJECT_ROOT)/flext-oracle-oic/src) $(wildcard $(PROJECT_ROOT)/flext-oracle-oic/tests) $(wildcard $(PROJECT_ROOT)/flext-oracle-wms/src) $(wildcard $(PROJECT_ROOT)/flext-oracle-wms/tests) $(wildcard $(PROJECT_ROOT)/flext-plugin/src) $(wildcard $(PROJECT_ROOT)/flext-plugin/tests) $(wildcard $(PROJECT_ROOT)/flext-quality/src) $(wildcard $(PROJECT_ROOT)/flext-quality/tests) $(wildcard $(PROJECT_ROOT)/flext-tap-ldap/src) $(wildcard $(PROJECT_ROOT)/flext-tap-ldap/tests) $(wildcard $(PROJECT_ROOT)/flext-tap-ldif/src) $(wildcard $(PROJECT_ROOT)/flext-tap-ldif/tests) $(wildcard $(PROJECT_ROOT)/flext-tap-oracle/src) $(wildcard $(PROJECT_ROOT)/flext-tap-oracle/tests) $(wildcard $(PROJECT_ROOT)/flext-tap-oracle-oic/src) $(wildcard $(PROJECT_ROOT)/flext-tap-oracle-oic/tests) $(wildcard $(PROJECT_ROOT)/flext-tap-oracle-wms/src) $(wildcard $(PROJECT_ROOT)/flext-tap-oracle-wms/tests) $(wildcard $(PROJECT_ROOT)/flext-target-ldap/src) $(wildcard $(PROJECT_ROOT)/flext-target-ldap/tests) $(wildcard $(PROJECT_ROOT)/flext-target-ldif/src) $(wildcard $(PROJECT_ROOT)/flext-target-ldif/tests) $(wildcard $(PROJECT_ROOT)/flext-target-oracle/src) $(wildcard $(PROJECT_ROOT)/flext-target-oracle/tests) $(wildcard $(PROJECT_ROOT)/flext-target-oracle-oic/src) $(wildcard $(PROJECT_ROOT)/flext-target-oracle-oic/tests) $(wildcard $(PROJECT_ROOT)/flext-target-oracle-wms/src) $(wildcard $(PROJECT_ROOT)/flext-target-oracle-wms/tests) $(wildcard $(PROJECT_ROOT)/flext-tests/src) $(wildcard $(PROJECT_ROOT)/flext-tests/tests) $(wildcard $(PROJECT_ROOT)/flext-web/src) $(wildcard $(PROJECT_ROOT)/flext-web/tests) -RUFF_PATHS := $(PROJECT_ROOT)/src $(PROJECT_ROOT)/tests $(WORKSPACE_CHECK_PATHS) -MYPY_PATHS := $(PROJECT_ROOT)/src $(PROJECT_ROOT)/tests $(WORKSPACE_CHECK_PATHS) +SELF_MAKEFILE := $(abspath $(firstword $(MAKEFILE_LIST))) +MAKEFILE_ROOT := $(patsubst %/,%,$(dir $(SELF_MAKEFILE))) +WORKSPACE ?= $(PROJECT_ROOT) +PUBLIC_VERBS := help setup deps build check test fmt run status docs clean release codegen worktree +CHECK_GATES_ALLOWED := lint format pyrefly mypy pyright security markdown smells +CHECK_GATES_DEFAULT := lint format pyrefly mypy pyright security markdown smells +DOCS_PHASES := generate fix audit build validate +SERIALIZED_VERBS := check test codegen +SERIALIZED_TARGETS := _serialized_check _serialized_test _serialized_codegen +RUFF_PATHS := $(PROJECT_ROOT)/src $(PROJECT_ROOT)/tests +MYPY_PATHS := $(PROJECT_ROOT)/src $(PROJECT_ROOT)/tests +UV ?= uv +UV_REQUESTED := $(UV) +CALLER_PATH := $(PATH) +CALLER_VIRTUAL_ENV := $(patsubst %/,%,$(VIRTUAL_ENV)) # === MYPY RESOURCE LIMIT === # mro-0ftd.3.11: every Mypy process inherits validated memory and time caps. @@ -37,18 +64,18 @@ export MYPY_MEMORY_LIMIT_MB MYPY_TIMEOUT_SECONDS _DEFAULT_help := usage -_DEFAULT_setup := environment _DEFAULT_deps := check _DEFAULT_build := artifacts _DEFAULT_check := all _DEFAULT_test := all -_DEFAULT_format := check +_DEFAULT_fmt := check _DEFAULT_run := default _DEFAULT_status := diagnostics _DEFAULT_docs := check _DEFAULT_clean := generated _DEFAULT_release := status _DEFAULT_codegen := check +_DEFAULT_worktree := list ifneq ($(filter $(MAKE_PROFILE),workspace-root workspace-member standalone),$(MAKE_PROFILE)) @@ -72,10 +99,41 @@ RUNTIME_ROOT := $(PROJECT_ROOT) endif RUNTIME_VENV := $(RUNTIME_ROOT)/.venv +FLEXT_INFRA_RUNTIME_ROOT := $(if $(filter $(MAKEFILE_ROOT),$(PROJECT_ROOT)),$(RUNTIME_ROOT),$(MAKEFILE_ROOT)) +ifeq ($(OS),Windows_NT) +RUNTIME_BIN := $(RUNTIME_VENV)/Scripts +RUNTIME_PYTHON := $(RUNTIME_BIN)/python.exe +FLEXT_INFRA_RUNTIME_PYTHON := $(FLEXT_INFRA_RUNTIME_ROOT)/.venv/Scripts/python.exe +NORMALIZED_CALLER_PATH := $(shell cygpath --path "$(CALLER_PATH)" 2>/dev/null) +NORMALIZED_CALLER_VIRTUAL_ENV := $(shell cygpath --unix "$(CALLER_VIRTUAL_ENV)" 2>/dev/null) +CALLER_VIRTUAL_ENV_BIN := $(NORMALIZED_CALLER_VIRTUAL_ENV)/Scripts +else +RUNTIME_BIN := $(RUNTIME_VENV)/bin +RUNTIME_PYTHON := $(RUNTIME_BIN)/python +FLEXT_INFRA_RUNTIME_PYTHON := $(FLEXT_INFRA_RUNTIME_ROOT)/.venv/bin/python +NORMALIZED_CALLER_PATH := $(CALLER_PATH) +NORMALIZED_CALLER_VIRTUAL_ENV := $(CALLER_VIRTUAL_ENV) +CALLER_VIRTUAL_ENV_BIN := $(NORMALIZED_CALLER_VIRTUAL_ENV)/bin +endif +SANITIZED_CALLER_PATH := $(NORMALIZED_CALLER_PATH) +ifneq ($(strip $(NORMALIZED_CALLER_VIRTUAL_ENV)),) +SANITIZED_CALLER_PATH := $(subst $(CALLER_VIRTUAL_ENV_BIN):,,$(SANITIZED_CALLER_PATH)) +SANITIZED_CALLER_PATH := $(subst :$(CALLER_VIRTUAL_ENV_BIN),,$(SANITIZED_CALLER_PATH)) +ifeq ($(SANITIZED_CALLER_PATH),$(CALLER_VIRTUAL_ENV_BIN)) +SANITIZED_CALLER_PATH := +endif +endif +RESOLVED_UV := $(shell PATH="$(SANITIZED_CALLER_PATH)" command -v "$(UV_REQUESTED)" 2>/dev/null) +ifeq ($(strip $(RESOLVED_UV)),) +$(error Required uv executable not found: $(UV_REQUESTED)) +endif +override UV := $(RESOLVED_UV) +override FLEXT_INFRA_PYTHON := $(FLEXT_INFRA_RUNTIME_PYTHON) override UV_PROJECT := $(RUNTIME_ROOT) override UV_PROJECT_ENVIRONMENT := $(RUNTIME_VENV) override VIRTUAL_ENV := $(RUNTIME_VENV) -export UV_PROJECT UV_PROJECT_ENVIRONMENT VIRTUAL_ENV +override PATH := $(RUNTIME_BIN):$(SANITIZED_CALLER_PATH) +export FLEXT_INFRA_PYTHON UV UV_PROJECT UV_PROJECT_ENVIRONMENT VIRTUAL_ENV PATH ifeq ($(MAKE_PROFILE),workspace-root) CODEGEN_SCOPE := all @@ -89,58 +147,84 @@ endif # `flext-infra workspace orchestrate` primitive (verb allowlist + CLI group come # from the constants SSOT, never hardcoded here). Members and standalone projects # run the gate locally. FAIL_FAST forwards the stop-on-first-failure policy. -WORKSPACE_ORCHESTRATE := $(UV_RUN) python -m flext_infra workspace orchestrate +WORKSPACE_ORCHESTRATE = $(UV_RUN) python -m flext_infra workspace orchestrate +REQUESTED_PROJECTS := $(strip $(if $(PROJECT),$(PROJECT),$(PROJECTS))) +FILE_MEMBER := $(firstword $(foreach member,$(WORKSPACE_MEMBERS),$(if $(filter $(member)/%,$(FILE)),$(member)))) +FILE_PROJECT := $(if $(strip $(FILE_MEMBER)),$(FILE_MEMBER),.) +FILE_RELATIVE := $(if $(filter .,$(FILE_PROJECT)),$(FILE),$(patsubst $(FILE_PROJECT)/%,%,$(FILE))) +DEFAULT_PROJECTS := $(WORKSPACE_MEMBERS) . +SELECTED_PROJECTS := $(if $(strip $(FILE)),$(FILE_PROJECT),$(if $(strip $(REQUESTED_PROJECTS)),$(REQUESTED_PROJECTS),$(DEFAULT_PROJECTS))) +WORKSPACE_PROJECT_ARGS := $(foreach project,$(SELECTED_PROJECTS),--projects $(project)) +WORKSPACE_CHECK_ARGS := $(if $(strip $(CHECK_GATES)),--make-arg "CHECK_GATES=$(strip $(CHECK_GATES))") +WORKSPACE_TEST_ARGS := $(if $(strip $(FILE)),--make-arg "FILE=$(FILE_RELATIVE)") $(if $(strip $(MATCH)),--make-arg "MATCH=$(MATCH)") $(if $(strip $(PYTEST_ARGS)),--make-arg "PYTEST_ARGS=$(strip $(PYTEST_ARGS))") +DOCS_PROJECT_ARGS := $(foreach project,$(REQUESTED_PROJECTS),--projects $(project)) ORCHESTRATED_VERBS := build check clean docs scan test val -UV_RUN := uv run --project "$(RUNTIME_ROOT)" --no-sync +UV_RUN := env -u PYTHONPATH -u MYPYPATH $(UV) run --project "$(RUNTIME_ROOT)" --no-sync +PROJECT_INFRA_PYTHONPATH ?= $(MAKEFILE_ROOT)/src +PROJECT_FLEXT_INFRA := test -x "$(FLEXT_INFRA_PYTHON)" || { printf 'ERROR: FLEXT_INFRA_PYTHON must name an executable managed Python\n' >&2; exit 2; }; env -u PYTHONPATH -u MYPYPATH -u VIRTUAL_ENV -u UV_PROJECT -u UV_PROJECT_ENVIRONMENT PATH="$(dir $(FLEXT_INFRA_PYTHON)):$(SANITIZED_CALLER_PATH)" PYTHONPATH="$(PROJECT_INFRA_PYTHONPATH)" $(FLEXT_INFRA_PYTHON) -m flext_infra # mro-j47u (codex): scaffold dev tools live in the validated optional dev # profile; a fresh project must create its lock before later check-mode locks. UV_SYNC_FLAGS := --all-packages --all-extras --all-groups +ifneq ($(strip $(PROJECT)),) +ifneq ($(strip $(PROJECTS)),) +$(error ERROR: Cannot use PROJECT and PROJECTS together) +endif +endif + -# The custom Make surface is the single extension point for every profile: it -# carries the project's own commands, WHATs and hooks. Its name comes from the -# constants SSOT, so there is no per-profile variant and no second surface. -include custom.mk _BUILTIN_HANDLERS := \ _builtin_help_usage \ - _builtin_setup_environment \ _builtin_deps_check \ _builtin_deps_lock \ _builtin_deps_upgrade \ _builtin_build_artifacts \ _builtin_check_all \ _builtin_test_all \ - _builtin_format_check \ - _builtin_format_apply \ + _builtin_fmt_check \ + _builtin_fmt_apply \ _builtin_run_default \ _builtin_status_diagnostics \ _builtin_docs_check \ - _builtin_clean_generated \ + _builtin_docs_all \ +_builtin_docs_generate \ +_builtin_docs_fix \ +_builtin_docs_audit \ +_builtin_docs_build \ +_builtin_docs_validate \ +_builtin_clean_generated \ _builtin_release_status \ _builtin_codegen_check \ - _builtin_codegen_apply + _builtin_codegen_apply \ + _builtin_worktree_list \ + _builtin_worktree_add \ + _builtin_worktree_update \ + _builtin_worktree_remove + +SELF_MAKE := $(MAKE) --no-print-directory -f "$(SELF_MAKEFILE)" define _dispatch @what="$(strip $(WHAT))"; \ - if [ -z "$$what" ]; then what="$(_DEFAULT_$@)"; fi; \ + if [ -z "$$what" ]; then what="$(_DEFAULT_$(1))"; fi; \ case "$$what" in \ *[!a-z0-9_-]*|'') printf 'ERROR: invalid WHAT selector %s\n' "$$what" >&2; exit 2 ;; \ esac; \ - builtin="_builtin_$@_$$what"; \ - custom="_custom_$@_$$what"; \ - for hook in "pre-$@" "pre-$@-$$what"; do \ - $(MAKE) --no-print-directory -q "$$hook" >/dev/null 2>&1; rc=$$?; \ - if [ "$$rc" -ne 2 ]; then $(MAKE) --no-print-directory "$$hook" || exit $$?; fi; \ + builtin="_builtin_$(1)_$$what"; \ + custom="_custom_$(1)_$$what"; \ + for hook in "pre-$(1)" "pre-$(1)-$$what"; do \ + $(SELF_MAKE) -q "$$hook" >/dev/null 2>&1; rc=$$?; \ + if [ "$$rc" -ne 2 ]; then $(SELF_MAKE) "$$hook" || exit $$?; fi; \ done; \ case " $(_BUILTIN_HANDLERS) " in \ - *" $$builtin "*) $(MAKE) --no-print-directory "$$builtin" || exit $$? ;; \ - *) $(MAKE) --no-print-directory "$$custom" || exit $$? ;; \ + *" $$builtin "*) $(SELF_MAKE) "$$builtin" || exit $$? ;; \ + *) $(SELF_MAKE) "$$custom" || exit $$? ;; \ esac; \ - for hook in "post-$@-$$what" "post-$@"; do \ - $(MAKE) --no-print-directory -q "$$hook" >/dev/null 2>&1; rc=$$?; \ - if [ "$$rc" -ne 2 ]; then $(MAKE) --no-print-directory "$$hook" || exit $$?; fi; \ + for hook in "post-$(1)-$$what" "post-$(1)"; do \ + $(SELF_MAKE) -q "$$hook" >/dev/null 2>&1; rc=$$?; \ + if [ "$$rc" -ne 2 ]; then $(SELF_MAKE) "$$hook" || exit $$?; fi; \ done endef @@ -153,55 +237,114 @@ endef define _run_for_selected_projects @set -eu; \ - selected="$(strip $(PROJECTS))"; \ + selected="$(strip $(if $(PROJECT),$(PROJECT),$(PROJECTS)))"; \ if [ -z "$$selected" ]; then selected="."; fi; \ for project in $$selected; do \ case " $(ALLOWED_PROJECTS) " in \ *" $$project "*) ;; \ *) printf 'ERROR: undeclared project %s\n' "$$project" >&2; exit 2 ;; \ esac; \ - uv lock --project "$(PROJECT_ROOT)/$$project" $(1); \ + $(UV) lock --project "$(PROJECT_ROOT)/$$project" $(1); \ done endef -.PHONY: $(PUBLIC_VERBS) $(_BUILTIN_HANDLERS) +.PHONY: $(PUBLIC_VERBS) $(SERIALIZED_TARGETS) $(_BUILTIN_HANDLERS) + +$(filter-out setup $(SERIALIZED_VERBS),$(PUBLIC_VERBS)): + $(call _dispatch,$@) + + +check: _builtin_require_environment + @$(PROJECT_FLEXT_INFRA) workspace serialize-make --workspace "$(PROJECT_ROOT)" --makefile "$(SELF_MAKEFILE)" --verb "check" + +_serialized_check: + $(call _dispatch,check) + + +test: _builtin_require_environment + @$(PROJECT_FLEXT_INFRA) workspace serialize-make --workspace "$(PROJECT_ROOT)" --makefile "$(SELF_MAKEFILE)" --verb "test" + +_serialized_test: + $(call _dispatch,test) + + +codegen: _builtin_require_environment + @$(PROJECT_FLEXT_INFRA) workspace serialize-make --workspace "$(PROJECT_ROOT)" --makefile "$(SELF_MAKEFILE)" --verb "codegen" + +_serialized_codegen: + $(call _dispatch,codegen) + -$(PUBLIC_VERBS): - $(call _dispatch) + +setup: + @if [ -n "$(strip $(WHAT))" ]; then printf 'ERROR: setup does not accept WHAT\n' >&2; exit 2; fi + @$(SELF_MAKE) _builtin_setup_environment _builtin_help_usage: - @printf '%s\n' 'flext [workspace-root]' '' + @printf '%s\n' 'flext [workspace-root]' ''; + + + @printf ' %-10s WHAT=%s\n' 'help' 'usage'; + + + + @printf ' %-10s\n' 'setup'; + + + + @printf ' %-10s WHAT=%s\n' 'deps' 'check'; + + + + @printf ' %-10s WHAT=%s\n' 'build' 'artifacts'; + + + + @printf ' %-10s WHAT=%s\n' 'check' 'all'; + + + + @printf ' %-10s WHAT=%s\n' 'test' 'all'; + + - @printf ' %-10s WHAT=%s\n' 'help' 'usage' + @printf ' %-10s WHAT=%s APPLY=Y\n' 'fmt' 'check'; - @printf ' %-10s WHAT=%s\n' 'setup' 'environment' - @printf ' %-10s WHAT=%s\n' 'deps' 'check' - @printf ' %-10s WHAT=%s\n' 'build' 'artifacts' + @printf ' %-10s WHAT=%s\n' 'run' 'default'; - @printf ' %-10s WHAT=%s\n' 'check' 'all' - @printf ' %-10s WHAT=%s\n' 'test' 'all' - @printf ' %-10s WHAT=%s APPLY=Y\n' 'format' 'check' + @printf ' %-10s WHAT=%s\n' 'status' 'diagnostics'; - @printf ' %-10s WHAT=%s\n' 'run' 'default' - @printf ' %-10s WHAT=%s\n' 'status' 'diagnostics' - @printf ' %-10s WHAT=%s\n' 'docs' 'check' + @printf ' %-10s WHAT=%s\n' 'docs' 'check'; - @printf ' %-10s WHAT=%s\n' 'clean' 'generated' - @printf ' %-10s WHAT=%s\n' 'release' 'status' - @printf ' %-10s WHAT=%s APPLY=Y\n' 'codegen' 'check' + @printf ' %-10s WHAT=%s\n' 'clean' 'generated'; - @printf '\n%s\n' 'Custom hooks (custom.mk):' - @printf ' %s\n' 'Define pre-, post-, pre--, post--' - @printf ' %s\n' 'in custom.mk to run extra steps at the start or end of any verb,' - @printf ' %s\n' 'for all or some WHATs. Add _custom__ to define a new WHAT.' + + + @printf ' %-10s WHAT=%s\n' 'release' 'status'; + + + + @printf ' %-10s WHAT=%s APPLY=Y\n' 'codegen' 'check'; + + + + @printf ' %-10s WHAT=%s\n' 'worktree' 'list'; + + + @printf ' %-10s %s\n' 'WORKSPACE' 'target repository (default: current project)'; + @printf ' %-10s %s\n' 'BASE' 'required for worktree add/update'; + @printf '\n%s\n' 'Custom hooks (custom.mk):'; + @printf ' %s\n' 'Define pre-, post-, pre--, post--'; + @printf ' %s\n' 'in custom.mk to run extra steps at the start or end of any verb,'; + @printf ' %s\n' 'for all or some WHATs. Add _custom__ to define a new WHAT.'; @if [ -f custom.mk ]; then \ hooks=$$(grep -oE '^(pre|post)-[a-z][a-z0-9-]*|^_custom_[a-z][a-z0-9_-]*' custom.mk 2>/dev/null | sort -u); \ if [ -n "$$hooks" ]; then \ @@ -210,115 +353,172 @@ _builtin_help_usage: fi; \ fi -# A project owns the sources it declares: setup initialises every declared -# submodule at its recorded gitlink and attaches its HEAD to the branch declared -# in .gitmodules (the topology SSOT), so a freshly cloned repository or worktree -# is self-contained and needs no state outside itself. The step is profile -# independent, is a no-op when the project declares no submodules, and is -# idempotent: re-running it converges without moving work. A member branch that -# already exists at another commit carries unmerged work: it is reported, never -# moved. +# A project owns the sources it declares. Setup makes the tree exactly what the +# manifest declares, using nothing outside the tree: every declared submodule is +# initialised recursively at its recorded gitlink and placed on the branch +# declared in .gitmodules. It is a no-op when the project declares no +# submodules, and it converges on re-run. It never moves a branch that holds +# work the superproject does not record: that is an error, never a warning, so +# setup can never report success over a tree that is not what it declares. _builtin_setup_submodules: @set -eu; \ if [ ! -f "$(PROJECT_ROOT)/.gitmodules" ]; then exit 0; fi; \ git -C "$(PROJECT_ROOT)" submodule sync --recursive --quiet; \ git -C "$(PROJECT_ROOT)" submodule update --init --recursive; \ git -C "$(PROJECT_ROOT)" submodule foreach --recursive --quiet ' \ - branch=$$(git config -f "$$toplevel/.gitmodules" "submodule.$$name.branch" 2>/dev/null || true); \ + branch=$$(git config -f "$$toplevel/.gitmodules" --get --default "" "submodule.$$name.branch"); \ if [ -z "$$branch" ]; then exit 0; fi; \ - head=$$(git rev-parse HEAD); \ - if git rev-parse --verify --quiet "refs/heads/$$branch" >/dev/null 2>&1; then \ - if [ "$$(git rev-parse "refs/heads/$$branch")" = "$$head" ]; then \ - git checkout --quiet "$$branch"; \ - else \ - printf "WARNING: %s branch %s holds unmerged work; left at gitlink %s\\n" "$$name" "$$branch" "$$head" >&2; \ - fi; \ - else \ + if ! git rev-parse --verify --quiet "refs/heads/$$branch" >/dev/null; then \ git checkout --quiet -b "$$branch"; \ + elif [ "$$(git rev-parse "refs/heads/$$branch")" = "$$(git rev-parse HEAD)" ]; then \ + git checkout --quiet "$$branch"; \ + else \ + printf "ERROR: %s: branch %s is at %s but the superproject records %s\n" "$$name" "$$branch" "$$(git rev-parse --short "refs/heads/$$branch")" "$$(git rev-parse --short HEAD)" >&2; \ + printf "Reconcile that branch with the recorded gitlink, then re-run setup\n" >&2; \ + exit 1; \ fi' +_builtin_require_environment: + @if [ ! -x "$(RUNTIME_PYTHON)" ]; then \ + printf 'ERROR: missing environment interpreter %s; make setup creates it\n' "$(RUNTIME_PYTHON)" >&2; \ + exit 2; \ + fi + ifeq ($(MAKE_PROFILE),workspace-root) _builtin_setup_environment: _builtin_setup_submodules - @uv sync --project "$(PROJECT_ROOT)" $(UV_SYNC_FLAGS) - @uv pip install --python "$(PROJECT_ROOT)/.venv/bin/python" --no-deps --editable "$(PROJECT_ROOT)" --link-mode "$(UV_LINK_MODE)" - @set -eu; for member in $(WORKSPACE_MEMBERS); do \ - uv pip install --python "$(PROJECT_ROOT)/.venv/bin/python" --no-deps --editable "$(PROJECT_ROOT)/$$member" --link-mode "$(UV_LINK_MODE)"; \ - done - @uv pip check --python "$(PROJECT_ROOT)/.venv/bin/python" + @$(UV) venv --clear "$(RUNTIME_VENV)" + @$(UV) sync --project "$(PROJECT_ROOT)" $(UV_SYNC_FLAGS) --link-mode "$(UV_LINK_MODE)" + @$(UV) pip check --python "$(RUNTIME_VENV)" else ifeq ($(MAKE_PROFILE),workspace-member) ifeq ($(ATTACHED_MEMBER),Y) _builtin_setup_environment: _builtin_setup_submodules - @$(MAKE) --no-print-directory -C "$(RUNTIME_ROOT)" setup WHAT=environment + @$(SELF_MAKE) -C "$(RUNTIME_ROOT)" _builtin_setup_environment else _builtin_setup_environment: _builtin_setup_submodules - @uv sync --project "$(PROJECT_ROOT)" $(UV_SYNC_FLAGS) + @$(UV) venv --clear "$(RUNTIME_VENV)" + @$(UV) sync --project "$(PROJECT_ROOT)" $(UV_SYNC_FLAGS) --link-mode "$(UV_LINK_MODE)" endif else _builtin_setup_environment: _builtin_setup_submodules - @uv sync --project "$(PROJECT_ROOT)" $(UV_SYNC_FLAGS) + @$(UV) venv --clear "$(RUNTIME_VENV)" + @$(UV) sync --project "$(PROJECT_ROOT)" $(UV_SYNC_FLAGS) --link-mode "$(UV_LINK_MODE)" endif -_builtin_deps_check: +_builtin_deps_check: _builtin_require_environment $(call _run_for_selected_projects,--check) _builtin_deps_lock: $(call _require_apply) $(call _run_for_selected_projects,) -_builtin_deps_upgrade: +_builtin_deps_upgrade: _builtin_require_environment $(call _require_apply) $(call _run_for_selected_projects,--upgrade) + @set -eu; \ + selected="$(strip $(PROJECTS))"; \ + if [ -z "$$selected" ]; then selected="."; fi; \ + set --; \ + for project in $$selected; do set -- "$$@" --projects "$$project"; done; \ + $(PROJECT_FLEXT_INFRA) deps modernize --workspace "$(PROJECT_ROOT)" \ + --apply --rewrite-constraints --skip-check "$$@" + $(call _run_for_selected_projects,) _builtin_build_artifacts: - @$(WORKSPACE_ORCHESTRATE) --verb build $(if $(filter 1,$(FAIL_FAST)),--fail-fast) + @$(WORKSPACE_ORCHESTRATE) --verb build $(WORKSPACE_PROJECT_ARGS) $(if $(filter 1,$(FAIL_FAST)),--fail-fast) -_builtin_check_all: - @$(WORKSPACE_ORCHESTRATE) --verb check $(if $(filter 1,$(FAIL_FAST)),--fail-fast) +_builtin_check_all: _builtin_require_environment + @$(WORKSPACE_ORCHESTRATE) --verb check $(WORKSPACE_PROJECT_ARGS) $(WORKSPACE_CHECK_ARGS) $(if $(filter 1,$(FAIL_FAST)),--fail-fast) -_builtin_test_all: - @$(WORKSPACE_ORCHESTRATE) --verb test $(if $(filter 1,$(FAIL_FAST)),--fail-fast) +_builtin_test_all: _builtin_require_environment + @$(WORKSPACE_ORCHESTRATE) --verb test $(WORKSPACE_PROJECT_ARGS) $(WORKSPACE_TEST_ARGS) $(if $(filter 1,$(FAIL_FAST)),--fail-fast) -_builtin_format_check: +_builtin_fmt_check: _builtin_require_environment @$(UV_RUN) ruff check --no-fix $(RUFF_PATHS) @$(UV_RUN) ruff format --check $(RUFF_PATHS) -_builtin_format_apply: +_builtin_fmt_apply: _builtin_require_environment $(call _require_apply) @$(UV_RUN) ruff check --fix $(RUFF_PATHS) @$(UV_RUN) ruff format $(RUFF_PATHS) -_builtin_run_default: +_builtin_run_default: _builtin_require_environment @$(UV_RUN) $(PROJECT_NAME) $(ARGS) -_builtin_status_diagnostics: +_builtin_status_diagnostics: _builtin_require_environment @printf 'profile=%s\nattached=%s\nproject=%s\nruntime=%s\n' \ '$(MAKE_PROFILE)' '$(ATTACHED_MEMBER)' '$(PROJECT_ROOT)' '$(RUNTIME_ROOT)' - @uv --version - @uv lock --project "$(PROJECT_ROOT)" --check - @if [ -x "$(RUNTIME_ROOT)/.venv/bin/python" ]; then \ - uv pip check --python "$(RUNTIME_ROOT)/.venv/bin/python"; \ + @$(UV) --version + @$(UV) lock --project "$(PROJECT_ROOT)" --check + @if [ -x "$(RUNTIME_PYTHON)" ]; then \ + $(UV) pip check --python "$(RUNTIME_VENV)"; \ fi @git -C "$(PROJECT_ROOT)" status --short - _builtin_docs_check: - @$(WORKSPACE_ORCHESTRATE) --verb docs $(if $(filter 1,$(FAIL_FAST)),--fail-fast) + @set -eu; \ + for phase in $(DOCS_PHASES); do \ + case "$$phase" in generate|fix) mode=--check ;; *) mode= ;; esac; \ + $(PROJECT_FLEXT_INFRA) docs "$$phase" --workspace "$(PROJECT_ROOT)" $$mode $(DOCS_PROJECT_ARGS); \ + done -_builtin_clean_generated: +_builtin_docs_all: + $(call _require_apply) + @set -eu; \ + for phase in $(DOCS_PHASES); do \ + case "$$phase" in generate|fix) mode=--apply ;; *) mode= ;; esac; \ + $(PROJECT_FLEXT_INFRA) docs "$$phase" --workspace "$(PROJECT_ROOT)" $$mode $(DOCS_PROJECT_ARGS); \ + done + +_builtin_docs_generate: $(call _require_apply) - @$(WORKSPACE_ORCHESTRATE) --verb clean $(if $(filter 1,$(FAIL_FAST)),--fail-fast) + @$(PROJECT_FLEXT_INFRA) docs generate --workspace "$(PROJECT_ROOT)" --apply $(DOCS_PROJECT_ARGS) + +_builtin_docs_fix: + $(call _require_apply) + @$(PROJECT_FLEXT_INFRA) docs fix --workspace "$(PROJECT_ROOT)" --apply $(DOCS_PROJECT_ARGS) + +_builtin_docs_audit: + @$(PROJECT_FLEXT_INFRA) docs audit --workspace "$(PROJECT_ROOT)" $(DOCS_PROJECT_ARGS) +_builtin_docs_build: + @$(PROJECT_FLEXT_INFRA) docs build --workspace "$(PROJECT_ROOT)" $(DOCS_PROJECT_ARGS) -_builtin_release_status: - @uv lock --project "$(PROJECT_ROOT)" --check +_builtin_docs_validate: + @$(PROJECT_FLEXT_INFRA) docs validate --workspace "$(PROJECT_ROOT)" $(DOCS_PROJECT_ARGS) + +_builtin_clean_generated: + $(call _require_apply) + @find "$(PROJECT_ROOT)" -type d \ + \( -name __pycache__ -o -name .mypy_cache -o -name .pytest_cache -o -name .ruff_cache \) \ + -prune -exec rm -rf {} + + @rm -rf "$(PROJECT_ROOT)/build" "$(PROJECT_ROOT)/dist" "$(PROJECT_ROOT)/htmlcov" + @rm -f "$(PROJECT_ROOT)/.coverage" + +_builtin_release_status: _builtin_require_environment + @$(UV) lock --project "$(PROJECT_ROOT)" --check @git -C "$(PROJECT_ROOT)" diff --quiet @git -C "$(PROJECT_ROOT)" diff --cached --quiet -_builtin_codegen_check: - @$(UV_RUN) python -m flext_infra codegen conform --root "$(PROJECT_ROOT)" --scope "$(CODEGEN_SCOPE)" --mode check +_builtin_codegen_check: _builtin_require_environment + @$(PROJECT_FLEXT_INFRA) codegen conform --root "$(PROJECT_ROOT)" --scope "$(CODEGEN_SCOPE)" --mode check + +_builtin_codegen_apply: _builtin_require_environment + $(call _require_apply) + @$(PROJECT_FLEXT_INFRA) codegen conform --root "$(PROJECT_ROOT)" --scope "$(CODEGEN_SCOPE)" --mode apply + +_builtin_worktree_list: + @$(PROJECT_FLEXT_INFRA) workspace worktree --workspace "$(WORKSPACE)" --operation list + +_builtin_worktree_add: + $(call _require_apply) + @$(PROJECT_FLEXT_INFRA) workspace worktree --workspace "$(WORKSPACE)" --operation add --branch "$(BRANCH)" --base "$(BASE)" --apply + +_builtin_worktree_update: + $(call _require_apply) + @$(PROJECT_FLEXT_INFRA) workspace worktree --workspace "$(WORKSPACE)" --operation update --branch "$(BRANCH)" --base "$(BASE)" --apply -_builtin_codegen_apply: +_builtin_worktree_remove: $(call _require_apply) - @$(UV_RUN) python -m flext_infra codegen conform --root "$(PROJECT_ROOT)" --scope "$(CODEGEN_SCOPE)" --mode apply + @$(PROJECT_FLEXT_INFRA) workspace worktree --workspace "$(WORKSPACE)" --operation remove --branch "$(BRANCH)" --apply diff --git a/custom.mk b/custom.mk index e2a92a302..e5ff307dd 100644 --- a/custom.mk +++ b/custom.mk @@ -267,7 +267,7 @@ workspace-dependabot-apply: ## dependabot-merge + merge result into main # passed explicitly. .PHONY: gen mod sync up stubs constraints \ - fmt format lint types pyrefly mypy pyright scan markdown loc-cap \ + format lint types pyrefly mypy pyright scan markdown loc-cap \ boundary cqrs check-coordination silent-failure go docker_standardization pol pyre \ save tag push rel pr project workspace @@ -291,9 +291,6 @@ constraints: ## Rewrite dependency constraints (dry-run; APPLY=Y to execute) $(Q)$(MAKE) --no-print-directory build WHAT=constraints $(MAKE_SELECTION_ARGS) # check / quality -fmt: ## Run formatting gates (dry-run; APPLY=Y to fix) - $(Q)$(MAKE) --no-print-directory check WHAT=fmt $(MAKE_SELECTION_ARGS) - lint: ## Run default lint/type gates $(Q)$(MAKE) --no-print-directory check WHAT=lint $(MAKE_SELECTION_ARGS) diff --git a/pyproject.toml b/pyproject.toml index aea6a6015..b2008c6c1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,91 +1,97 @@ +# @flext-managed: continuous +# @flext-regenerate: make deps WHAT=upgrade APPLY=Y +# @flext-ssot: flext-infra/src/flext_infra/_constants/deps.py +# @flext-maintenance: do not edit managed sections; edit the SSOT # [MANAGED] FLEXT pyproject standardization # Sections with [MANAGED] are enforced by flext_infra.deps.modernizer. -# Run `make mod` to regenerate all managed pyproject sections. # Sections with [CUSTOM] are project-specific extension points. # [MANAGED] build system [build-system] build-backend = "hatchling.build" -requires = [ "hatchling" ] +requires = ["hatchling"] [dependency-groups] -codegen = [ "flext-infra" ] +codegen = ["flext-infra"] dev = [ - "autoflake>=2.3.1", - "bandit>=1.8", - "black>=25.1", - "blacken-docs>=1.19", - "code-review-graph[all,embeddings]==2.3.6", - "codespell>=2.3", - "deptry>=0.23", - "django-stubs>=6.0.6", - "factory-boy>=3.3.1", - "faker>=37.4", - "flext-tests", - "hypothesis>=6.157.2", - "isort>=8.0.1", - "matplotlib-stubs>=0.3", - "mkdocs>=1.6", - "mkdocs-awesome-pages-plugin>=2.9", - "mkdocs-encryptcontent-plugin>=2", - "mkdocs-exclude>=1.0.2", - "mkdocs-get-deps>=0.2", - "mkdocs-git-revision-date-localized-plugin>=1.2", - "mkdocs-literate-nav>=0.6", - "mkdocs-macros-plugin>=1", - "mkdocs-material>=9.5", - "mkdocs-material-extensions>=1.3.1", - "mkdocs-mermaid2-plugin>=1.1", - "mkdocs-minify-plugin>=0.7", - "mkdocs-print-site-plugin>=0.8", - "mkdocs-redirects>=1.2", - "mkdocs-section-index>=0.3.12", - "mkdocs-versioning>=0.2", - "mkdocstrings>=0.24", - "mkdocstrings-python>=1.7", - "pip-audit>=2.10.1", - "pre-commit>=4.6.0", - "pylint>=3.3", - "pyrefly>=1.1.1", - "pytest>=8.4", - "pytest-benchmark>=5.1", - "pytest-clarity>=1.0.1", - "pytest-codeblocks>=0.17.0", - "pytest-cov>=6.2", - "pytest-deadfixtures>=2.2.1", - "pytest-env>=1.1.5", - "pytest-markdown-docs>=0.9.2", - "pytest-mock>=3.14", - "pytest-randomly>=3.16", - "pytest-sugar>=1", - "pytest-timeout>=2.4", - "pytest-xdist>=3.8", - "pyupgrade>=3.19", - "radon>=6.0.1", - "ruff>=0.12.3", - "types-cachetools>=6.2", - "types-cffi>=2.0", - "types-click>=7.1", - "types-defusedxml>=0.7", - "types-docker>=7.2.0.20260720", - "types-flask>=1.1.6", - "types-jsonschema>=4.26", - "types-ldap3>=2.9.13.20250622", - "types-paramiko>=4.0", - "types-protobuf>=6.30.2.20250703", - "types-psutil>=7", - "types-psycopg2>=2.9.21.20250718", - "types-pyasn1>=0.6", - "types-pyopenssl>=24.1", - "types-python-dateutil>=2.9", - "types-pyyaml>=6.0.12.20260518", - "types-redis>=4.6", - "types-requests>=2.32.4", - "types-setuptools>=80.9", - "types-tabulate>=0.10", - "types-toml>=0.10.8.20260518", - "vulture>=2.13", - "yamlfix>=1.19.1,<2", + "actionlint-py>=1.7.12.24", + "autoflake>=2.3.1", + "bandit>=1.8", + "black>=25.1", + "blacken-docs>=1.19", + "code-review-graph[all,embeddings]==2.3.6", + "codespell>=2.3", + "deptry>=0.23", + "django-stubs>=6.0.6", + "factory-boy>=3.3.1", + "faker>=37.4", + "flext-tests", + "hypothesis>=6.157.2", + "isort>=8.0.1", + "matplotlib-stubs>=0.3", + "mkdocs>=1.6", + "mkdocs-awesome-pages-plugin>=2.9", + "mkdocs-encryptcontent-plugin>=2", + "mkdocs-exclude>=1.0.2", + "mkdocs-get-deps>=0.2", + "mkdocs-git-revision-date-localized-plugin>=1.2", + "mkdocs-literate-nav>=0.6", + "mkdocs-macros-plugin>=1", + "mkdocs-material>=9.5", + "mkdocs-material-extensions>=1.3.1", + "mkdocs-mermaid2-plugin>=1.1", + "mkdocs-minify-plugin>=0.7", + "mkdocs-print-site-plugin>=0.8", + "mkdocs-redirects>=1.2", + "mkdocs-section-index>=0.3.12", + "mkdocs-versioning>=0.2", + "mkdocstrings>=0.24", + "mkdocstrings-python>=1.7", + "mypy>=2.3.0", + "pip-audit>=2.10.1", + "pre-commit>=4.6.0", + "pylint>=3.3", + "pyrefly>=1.1.1", + "pyright>=1.1.411", + "pytest>=8.4", + "pytest-benchmark>=5.1", + "pytest-clarity>=1.0.1", + "pytest-codeblocks>=0.17.0", + "pytest-cov>=6.2", + "pytest-deadfixtures>=2.2.1", + "pytest-env>=1.1.5", + "pytest-markdown-docs>=0.9.2", + "pytest-mock>=3.14", + "pytest-randomly>=3.16", + "pytest-sugar>=1", + "pytest-timeout>=2.4", + "pytest-xdist>=3.8", + "pyupgrade>=3.19", + "radon>=6.0.1", + "ruff>=0.12.3", + "types-cachetools>=6.2", + "types-cffi>=2.0", + "types-click>=7.1", + "types-defusedxml>=0.7", + "types-docker>=7.2.0.20260720", + "types-flask>=1.1.6", + "types-jsonschema>=4.26", + "types-ldap3>=2.9.13.20250622", + "types-paramiko>=4.0", + "types-protobuf>=6.30.2.20250703", + "types-psutil>=7", + "types-psycopg2>=2.9.21.20250718", + "types-pyasn1>=0.6", + "types-pyopenssl>=24.1", + "types-python-dateutil>=2.9", + "types-pyyaml>=6.0.12.20260518", + "types-redis>=4.6", + "types-requests>=2.32.4", + "types-setuptools>=80.9", + "types-tabulate>=0.10", + "types-toml>=0.10.8.20260518", + "vulture>=2.13", + "yamlfix>=1.19.1,<2", ] workspace = [ "flext-api", @@ -140,7 +146,7 @@ dependencies = [ "pydantic>=2.13.3", ] description = "FLEXT - Enterprise Data Integration Platform - Workspace Manager" -keywords = [ "coordination", "enterprise", "flext", "typed", "workspace" ] +keywords = ["coordination", "enterprise", "flext", "typed", "workspace"] license = "MIT" name = "flext" readme = "README.md" @@ -157,79 +163,6 @@ name = "FLEXT Team" # [MANAGED] consolidated development dependencies [project.optional-dependencies] -dev = [ - "autoflake>=2.3.1", - "bandit>=1.9.4", - "black>=26.5.1", - "blacken-docs>=1.20.0", - "codespell>=2.3", - "deptry>=0.23", - "django-stubs>=6.0.6", - "factory-boy>=3.3.1", - "faker>=37.4", - "hypothesis>=6.157.2", - "isort>=8.0.1", - "matplotlib-stubs>=0.3", - "mkdocs-awesome-pages-plugin>=2.9", - "mkdocs-encryptcontent-plugin>=2", - "mkdocs-exclude>=1.0.2", - "mkdocs-get-deps>=0.2", - "mkdocs-git-revision-date-localized-plugin>=1.2", - "mkdocs-literate-nav>=0.6", - "mkdocs-macros-plugin>=1", - "mkdocs-material-extensions>=1.3.1", - "mkdocs-material>=9.5", - "mkdocs-mermaid2-plugin>=1.1", - "mkdocs-minify-plugin>=0.7", - "mkdocs-print-site-plugin>=0.8", - "mkdocs-redirects>=1.2", - "mkdocs-section-index>=0.3.12", - "mkdocs-versioning>=0.2", - "mkdocs>=1.6", - "mkdocstrings-python>=2.0.5", - "mkdocstrings>=0.24", - "pip-audit>=2.10.1", - "pre-commit>=4.6.0", - "pylint>=3.3", - "pyrefly>=1.1.1,<1.2.0", - "pytest-benchmark>=5.2.3", - "pytest-clarity>=1.0.1", - "pytest-codeblocks>=0.17.0", - "pytest-cov>=6.2", - "pytest-deadfixtures>=2.2.1", - "pytest-env>=1.1.5", - "pytest-markdown-docs>=0.9.2", - "pytest-mock>=3.14", - "pytest-randomly>=3.16", - "pytest-sugar>=1", - "pytest-timeout>=2.4", - "pytest-xdist>=3.8", - "pytest>=8.4", - "pyupgrade>=3.19", - "radon>=6.0.1", - "ruff>=0.12.3", - "types-cachetools>=6.2", - "types-cffi>=2.0", - "types-click>=7.1", - "types-defusedxml>=0.7", - "types-docker>=7.2.0.20260720", - "types-flask>=1.1.6", - "types-ldap3>=2.9.13.20250622", - "types-paramiko>=4.0", - "types-protobuf>=6.30.2.20250703", - "types-psutil>=7.2.2.20260518", - "types-psycopg2>=2.9.21.20250718", - "types-pyasn1>=0.6", - "types-pyopenssl>=24.1", - "types-python-dateutil>=2.9.0.20260716", - "types-pyyaml>=6.0.12.20260518", - "types-redis>=4.6", - "types-requests>=2.32.4", - "types-setuptools>=80.9", - "types-tabulate>=0.10", - "types-toml>=0.10.8.20260518", - "vulture>=2.13", -] [project.scripts] flext-dev = "flext.dev:main" @@ -248,14 +181,19 @@ ignore-words-list = "crate,nd" # [MANAGED] coverage [tool.coverage.report] -exclude_also = [ "if TYPE_CHECKING:", "if _t.TYPE_CHECKING:", "if typing.TYPE_CHECKING:" ] +exclude_also = [ + "if TYPE_CHECKING:", + "if _t.TYPE_CHECKING:", + "if typing.TYPE_CHECKING:", +] fail_under = 45 precision = 2 show_missing = true skip_covered = false [tool.coverage.run] -omit = [ "*/dependency_injector/providers.pyx" ] +omit = ["*/dependency_injector/providers.pyx"] +source = ["src"] # [MANAGED] deptry [tool.deptry] @@ -293,7 +231,7 @@ known_first_party = [ "flext_tests", "flext_web", ] -pep621_dev_dependency_groups = [ "dev" ] +pep621_dev_dependency_groups = ["dev"] [tool.flext.docs] exclude_docs = [ @@ -353,10 +291,10 @@ extra_checks = true follow_imports = "normal" ignore_missing_imports = true local_partial_types = true -mypy_path = [ ".", "src" ] +mypy_path = [".", "src"] namespace_packages = true no_implicit_reexport = true -plugins = [ "pydantic.mypy", "returns.contrib.mypy.returns_plugin" ] +plugins = ["pydantic.mypy", "returns.contrib.mypy.returns_plugin"] python_version = "3.13" strict_equality = true warn_redundant_casts = true @@ -365,12 +303,12 @@ warn_unreachable = true warn_unused_ignores = true [[tool.mypy.overrides]] -disable_error_code = [ "arg-type" ] -module = [ "*.cli" ] +disable_error_code = ["arg-type"] +module = ["*.cli"] [[tool.mypy.overrides]] -disable_error_code = [ "unreachable" ] -module = [ "dcdoc._utilities._charts._matplotlib_renderer._renders_spec" ] +disable_error_code = ["unreachable"] +module = ["dcdoc._utilities._charts._matplotlib_renderer._renders_spec"] # [MANAGED] pydantic-mypy [tool.pydantic-mypy] @@ -398,12 +336,47 @@ project-excludes = [ "typings/**", "vendor/**", ] -project-includes = [ "examples/**/*.py*", "scripts/**/*.py*", "src/**/*.py*", "tests/**/*.py*" ] -python-interpreter-path = "./.venv/bin/python" +project-includes = [ + "examples/**/*.py*", + "scripts/**/*.py*", + "src/**/*.py*", + "tests/**/*.py*", +] python-version = "3.13" search-path = [ - ".", - "src", + ".", + "flext-api/src", + "flext-auth/src", + "flext-cli/src", + "flext-core/src", + "flext-db-oracle/src", + "flext-dbt-ldap/src", + "flext-dbt-ldif/src", + "flext-dbt-oracle-wms/src", + "flext-dbt-oracle/src", + "flext-grpc/src", + "flext-infra/src", + "flext-ldap/src", + "flext-ldif/src", + "flext-meltano/src", + "flext-observability/src", + "flext-oracle-oic/src", + "flext-oracle-wms/src", + "flext-plugin/src", + "flext-quality/src", + "flext-tap-ldap/src", + "flext-tap-ldif/src", + "flext-tap-oracle-oic/src", + "flext-tap-oracle-wms/src", + "flext-tap-oracle/src", + "flext-target-ldap/src", + "flext-target-ldif/src", + "flext-target-oracle-oic/src", + "flext-target-oracle-wms/src", + "flext-target-oracle/src", + "flext-tests/src", + "flext-web/src", + "src", ] use-ignore-files = false @@ -521,7 +494,7 @@ exclude = [ ".venv", "vendor", ] -extraPaths = [ ".", "src" ] +extraPaths = [".", "src"] include = [ "examples", "flext-api/examples", @@ -639,6 +612,8 @@ reportUnusedFunction = "error" reportUnusedImport = "error" reportUnusedVariable = "error" typeCheckingMode = "strict" +venv = ".venv" +venvPath = "." [[tool.pyright.executionEnvironments]] extraPaths = [".", "src"] @@ -728,7 +703,7 @@ reportUnusedImport = "none" root = "tests" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-api", "flext-api/src"] reportArgumentType = "none" reportAssignmentType = "none" reportAttributeAccessIssue = "none" @@ -746,7 +721,7 @@ reportUnusedImport = "none" root = "flext-api/examples" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-api/src"] reportAssignmentType = "none" reportAttributeAccessIssue = "none" reportGeneralTypeIssues = "none" @@ -763,7 +738,7 @@ reportUnusedImport = "none" root = "flext-api/src" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-api", "flext-api/src"] reportArgumentType = "none" reportAssignmentType = "none" reportAttributeAccessIssue = "none" @@ -781,7 +756,7 @@ reportUnusedImport = "none" root = "flext-api/tests" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-auth", "flext-auth/src"] reportArgumentType = "none" reportAssignmentType = "none" reportAttributeAccessIssue = "none" @@ -799,7 +774,7 @@ reportUnusedImport = "none" root = "flext-auth/examples" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-auth/src"] reportAssignmentType = "none" reportAttributeAccessIssue = "none" reportGeneralTypeIssues = "none" @@ -816,7 +791,7 @@ reportUnusedImport = "none" root = "flext-auth/src" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-auth", "flext-auth/src"] reportArgumentType = "none" reportAssignmentType = "none" reportAttributeAccessIssue = "none" @@ -834,7 +809,7 @@ reportUnusedImport = "none" root = "flext-auth/tests" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-cli", "flext-cli/src"] reportArgumentType = "none" reportAssignmentType = "none" reportAttributeAccessIssue = "none" @@ -852,7 +827,7 @@ reportUnusedImport = "none" root = "flext-cli/examples" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-cli/src"] reportAssignmentType = "none" reportAttributeAccessIssue = "none" reportGeneralTypeIssues = "none" @@ -869,7 +844,7 @@ reportUnusedImport = "none" root = "flext-cli/src" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-cli", "flext-cli/src"] reportArgumentType = "none" reportAssignmentType = "none" reportAttributeAccessIssue = "none" @@ -887,7 +862,7 @@ reportUnusedImport = "none" root = "flext-cli/tests" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-core", "flext-core/src"] reportArgumentType = "none" reportAssignmentType = "none" reportAttributeAccessIssue = "none" @@ -905,7 +880,7 @@ reportUnusedImport = "none" root = "flext-core/examples" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-core", "flext-core/src"] reportArgumentType = "none" reportAssignmentType = "none" reportAttributeAccessIssue = "none" @@ -923,7 +898,7 @@ reportUnusedImport = "none" root = "flext-core/scripts" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-core/src"] reportAssignmentType = "none" reportAttributeAccessIssue = "none" reportGeneralTypeIssues = "none" @@ -940,7 +915,7 @@ reportUnusedImport = "none" root = "flext-core/src" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-core", "flext-core/src"] reportArgumentType = "none" reportAssignmentType = "none" reportAttributeAccessIssue = "none" @@ -958,7 +933,7 @@ reportUnusedImport = "none" root = "flext-core/tests" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-db-oracle", "flext-db-oracle/src"] reportArgumentType = "none" reportAssignmentType = "none" reportAttributeAccessIssue = "none" @@ -976,7 +951,7 @@ reportUnusedImport = "none" root = "flext-db-oracle/examples" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-db-oracle/src"] reportAssignmentType = "none" reportAttributeAccessIssue = "none" reportGeneralTypeIssues = "none" @@ -993,7 +968,7 @@ reportUnusedImport = "none" root = "flext-db-oracle/src" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-db-oracle", "flext-db-oracle/src"] reportArgumentType = "none" reportAssignmentType = "none" reportAttributeAccessIssue = "none" @@ -1011,7 +986,7 @@ reportUnusedImport = "none" root = "flext-db-oracle/tests" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-dbt-ldap/src"] reportAssignmentType = "none" reportAttributeAccessIssue = "none" reportGeneralTypeIssues = "none" @@ -1028,7 +1003,7 @@ reportUnusedImport = "none" root = "flext-dbt-ldap/src" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-dbt-ldap", "flext-dbt-ldap/src"] reportArgumentType = "none" reportAssignmentType = "none" reportAttributeAccessIssue = "none" @@ -1046,7 +1021,7 @@ reportUnusedImport = "none" root = "flext-dbt-ldap/tests" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-dbt-ldif/src"] reportAssignmentType = "none" reportAttributeAccessIssue = "none" reportGeneralTypeIssues = "none" @@ -1063,7 +1038,7 @@ reportUnusedImport = "none" root = "flext-dbt-ldif/src" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-dbt-ldif", "flext-dbt-ldif/src"] reportArgumentType = "none" reportAssignmentType = "none" reportAttributeAccessIssue = "none" @@ -1081,7 +1056,7 @@ reportUnusedImport = "none" root = "flext-dbt-ldif/tests" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-dbt-oracle/src"] reportAssignmentType = "none" reportAttributeAccessIssue = "none" reportGeneralTypeIssues = "none" @@ -1098,7 +1073,7 @@ reportUnusedImport = "none" root = "flext-dbt-oracle/src" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-dbt-oracle", "flext-dbt-oracle/src"] reportArgumentType = "none" reportAssignmentType = "none" reportAttributeAccessIssue = "none" @@ -1116,7 +1091,7 @@ reportUnusedImport = "none" root = "flext-dbt-oracle/tests" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-dbt-oracle-wms/src"] reportAssignmentType = "none" reportAttributeAccessIssue = "none" reportGeneralTypeIssues = "none" @@ -1133,7 +1108,7 @@ reportUnusedImport = "none" root = "flext-dbt-oracle-wms/src" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-dbt-oracle-wms", "flext-dbt-oracle-wms/src"] reportArgumentType = "none" reportAssignmentType = "none" reportAttributeAccessIssue = "none" @@ -1151,7 +1126,7 @@ reportUnusedImport = "none" root = "flext-dbt-oracle-wms/tests" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-grpc", "flext-grpc/src"] reportAssignmentType = "none" reportAttributeAccessIssue = "none" reportGeneralTypeIssues = "none" @@ -1167,7 +1142,7 @@ reportUnusedImport = "none" root = "flext-grpc/architecture" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-grpc", "flext-grpc/src"] reportArgumentType = "none" reportAssignmentType = "none" reportAttributeAccessIssue = "none" @@ -1185,7 +1160,7 @@ reportUnusedImport = "none" root = "flext-grpc/examples" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-grpc/src"] reportAssignmentType = "none" reportAttributeAccessIssue = "none" reportGeneralTypeIssues = "none" @@ -1202,7 +1177,7 @@ reportUnusedImport = "none" root = "flext-grpc/src" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-grpc", "flext-grpc/src"] reportArgumentType = "none" reportAssignmentType = "none" reportAttributeAccessIssue = "none" @@ -1220,7 +1195,7 @@ reportUnusedImport = "none" root = "flext-grpc/tests" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-infra/src"] reportAssignmentType = "none" reportAttributeAccessIssue = "none" reportGeneralTypeIssues = "none" @@ -1236,7 +1211,7 @@ reportUnusedImport = "none" root = "flext-infra/src/flext_infra/_utilities/rope_patch" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-infra/src"] reportAssignmentType = "none" reportAttributeAccessIssue = "none" reportGeneralTypeIssues = "none" @@ -1253,7 +1228,7 @@ reportUnusedImport = "none" root = "flext-infra/src" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-infra", "flext-infra/src"] reportArgumentType = "none" reportAssignmentType = "none" reportAttributeAccessIssue = "none" @@ -1271,7 +1246,7 @@ reportUnusedImport = "none" root = "flext-infra/tests" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-ldap/src"] reportAssignmentType = "none" reportAttributeAccessIssue = "none" reportGeneralTypeIssues = "none" @@ -1288,7 +1263,7 @@ reportUnusedImport = "none" root = "flext-ldap/src" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-ldap", "flext-ldap/src"] reportArgumentType = "none" reportAssignmentType = "none" reportAttributeAccessIssue = "none" @@ -1306,7 +1281,7 @@ reportUnusedImport = "none" root = "flext-ldap/tests" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-ldif", "flext-ldif/src"] reportArgumentType = "none" reportAssignmentType = "none" reportAttributeAccessIssue = "none" @@ -1324,7 +1299,7 @@ reportUnusedImport = "none" root = "flext-ldif/examples" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-ldif/src"] reportAssignmentType = "none" reportAttributeAccessIssue = "none" reportGeneralTypeIssues = "none" @@ -1341,7 +1316,7 @@ reportUnusedImport = "none" root = "flext-ldif/src" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-ldif", "flext-ldif/src"] reportArgumentType = "none" reportAssignmentType = "none" reportAttributeAccessIssue = "none" @@ -1359,7 +1334,7 @@ reportUnusedImport = "none" root = "flext-ldif/tests" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-meltano", "flext-meltano/src"] reportArgumentType = "none" reportAssignmentType = "none" reportAttributeAccessIssue = "none" @@ -1377,7 +1352,7 @@ reportUnusedImport = "none" root = "flext-meltano/examples" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-meltano/src"] reportAssignmentType = "none" reportAttributeAccessIssue = "none" reportGeneralTypeIssues = "none" @@ -1394,7 +1369,7 @@ reportUnusedImport = "none" root = "flext-meltano/src" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-meltano", "flext-meltano/src"] reportArgumentType = "none" reportAssignmentType = "none" reportAttributeAccessIssue = "none" @@ -1412,7 +1387,7 @@ reportUnusedImport = "none" root = "flext-meltano/tests" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-observability", "flext-observability/src"] reportArgumentType = "none" reportAssignmentType = "none" reportAttributeAccessIssue = "none" @@ -1430,7 +1405,7 @@ reportUnusedImport = "none" root = "flext-observability/examples" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-observability", "flext-observability/src"] reportAssignmentType = "none" reportAttributeAccessIssue = "none" reportGeneralTypeIssues = "none" @@ -1446,7 +1421,7 @@ reportUnusedImport = "none" root = "flext-observability/legado" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-observability/src"] reportAssignmentType = "none" reportAttributeAccessIssue = "none" reportGeneralTypeIssues = "none" @@ -1463,7 +1438,7 @@ reportUnusedImport = "none" root = "flext-observability/src" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-observability", "flext-observability/src"] reportArgumentType = "none" reportAssignmentType = "none" reportAttributeAccessIssue = "none" @@ -1481,7 +1456,7 @@ reportUnusedImport = "none" root = "flext-observability/tests" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-oracle-oic/src"] reportAssignmentType = "none" reportAttributeAccessIssue = "none" reportGeneralTypeIssues = "none" @@ -1498,7 +1473,7 @@ reportUnusedImport = "none" root = "flext-oracle-oic/src" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-oracle-oic", "flext-oracle-oic/src"] reportArgumentType = "none" reportAssignmentType = "none" reportAttributeAccessIssue = "none" @@ -1516,7 +1491,7 @@ reportUnusedImport = "none" root = "flext-oracle-oic/tests" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-oracle-wms", "flext-oracle-wms/src"] reportArgumentType = "none" reportAssignmentType = "none" reportAttributeAccessIssue = "none" @@ -1534,7 +1509,7 @@ reportUnusedImport = "none" root = "flext-oracle-wms/examples" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-oracle-wms/src"] reportAssignmentType = "none" reportAttributeAccessIssue = "none" reportGeneralTypeIssues = "none" @@ -1551,7 +1526,7 @@ reportUnusedImport = "none" root = "flext-oracle-wms/src" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-oracle-wms", "flext-oracle-wms/src"] reportArgumentType = "none" reportAssignmentType = "none" reportAttributeAccessIssue = "none" @@ -1569,7 +1544,7 @@ reportUnusedImport = "none" root = "flext-oracle-wms/tests" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-plugin", "flext-plugin/src"] reportArgumentType = "none" reportAssignmentType = "none" reportAttributeAccessIssue = "none" @@ -1587,7 +1562,7 @@ reportUnusedImport = "none" root = "flext-plugin/examples" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-plugin/src"] reportAssignmentType = "none" reportAttributeAccessIssue = "none" reportGeneralTypeIssues = "none" @@ -1604,7 +1579,7 @@ reportUnusedImport = "none" root = "flext-plugin/src" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-plugin", "flext-plugin/src"] reportArgumentType = "none" reportAssignmentType = "none" reportAttributeAccessIssue = "none" @@ -1622,7 +1597,7 @@ reportUnusedImport = "none" root = "flext-plugin/tests" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-quality/src"] reportAssignmentType = "none" reportAttributeAccessIssue = "none" reportGeneralTypeIssues = "none" @@ -1639,7 +1614,7 @@ reportUnusedImport = "none" root = "flext-quality/src" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-quality", "flext-quality/src"] reportArgumentType = "none" reportAssignmentType = "none" reportAttributeAccessIssue = "none" @@ -1657,7 +1632,7 @@ reportUnusedImport = "none" root = "flext-quality/tests" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-tap-ldap/src"] reportAssignmentType = "none" reportAttributeAccessIssue = "none" reportGeneralTypeIssues = "none" @@ -1674,7 +1649,7 @@ reportUnusedImport = "none" root = "flext-tap-ldap/src" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-tap-ldap", "flext-tap-ldap/src"] reportArgumentType = "none" reportAssignmentType = "none" reportAttributeAccessIssue = "none" @@ -1692,7 +1667,7 @@ reportUnusedImport = "none" root = "flext-tap-ldap/tests" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-tap-ldif/src"] reportAssignmentType = "none" reportAttributeAccessIssue = "none" reportGeneralTypeIssues = "none" @@ -1709,7 +1684,7 @@ reportUnusedImport = "none" root = "flext-tap-ldif/src" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-tap-ldif", "flext-tap-ldif/src"] reportArgumentType = "none" reportAssignmentType = "none" reportAttributeAccessIssue = "none" @@ -1727,7 +1702,7 @@ reportUnusedImport = "none" root = "flext-tap-ldif/tests" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-tap-oracle/src"] reportAssignmentType = "none" reportAttributeAccessIssue = "none" reportGeneralTypeIssues = "none" @@ -1744,7 +1719,7 @@ reportUnusedImport = "none" root = "flext-tap-oracle/src" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-tap-oracle", "flext-tap-oracle/src"] reportArgumentType = "none" reportAssignmentType = "none" reportAttributeAccessIssue = "none" @@ -1762,7 +1737,7 @@ reportUnusedImport = "none" root = "flext-tap-oracle/tests" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-tap-oracle-oic/src"] reportAssignmentType = "none" reportAttributeAccessIssue = "none" reportGeneralTypeIssues = "none" @@ -1779,7 +1754,7 @@ reportUnusedImport = "none" root = "flext-tap-oracle-oic/src" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-tap-oracle-oic", "flext-tap-oracle-oic/src"] reportArgumentType = "none" reportAssignmentType = "none" reportAttributeAccessIssue = "none" @@ -1797,7 +1772,7 @@ reportUnusedImport = "none" root = "flext-tap-oracle-oic/tests" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-tap-oracle-wms", "flext-tap-oracle-wms/src"] reportArgumentType = "none" reportAssignmentType = "none" reportAttributeAccessIssue = "none" @@ -1815,7 +1790,7 @@ reportUnusedImport = "none" root = "flext-tap-oracle-wms/examples" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-tap-oracle-wms/src"] reportAssignmentType = "none" reportAttributeAccessIssue = "none" reportGeneralTypeIssues = "none" @@ -1832,7 +1807,7 @@ reportUnusedImport = "none" root = "flext-tap-oracle-wms/src" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-tap-oracle-wms", "flext-tap-oracle-wms/src"] reportArgumentType = "none" reportAssignmentType = "none" reportAttributeAccessIssue = "none" @@ -1850,7 +1825,7 @@ reportUnusedImport = "none" root = "flext-tap-oracle-wms/tests" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-target-ldap/src"] reportAssignmentType = "none" reportAttributeAccessIssue = "none" reportGeneralTypeIssues = "none" @@ -1867,7 +1842,7 @@ reportUnusedImport = "none" root = "flext-target-ldap/src" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-target-ldap", "flext-target-ldap/src"] reportArgumentType = "none" reportAssignmentType = "none" reportAttributeAccessIssue = "none" @@ -1885,7 +1860,7 @@ reportUnusedImport = "none" root = "flext-target-ldap/tests" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-target-ldif/src"] reportAssignmentType = "none" reportAttributeAccessIssue = "none" reportGeneralTypeIssues = "none" @@ -1902,7 +1877,7 @@ reportUnusedImport = "none" root = "flext-target-ldif/src" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-target-ldif", "flext-target-ldif/src"] reportArgumentType = "none" reportAssignmentType = "none" reportAttributeAccessIssue = "none" @@ -1920,7 +1895,7 @@ reportUnusedImport = "none" root = "flext-target-ldif/tests" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-target-oracle", "flext-target-oracle/src"] reportArgumentType = "none" reportAssignmentType = "none" reportAttributeAccessIssue = "none" @@ -1938,7 +1913,7 @@ reportUnusedImport = "none" root = "flext-target-oracle/examples" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-target-oracle/src"] reportAssignmentType = "none" reportAttributeAccessIssue = "none" reportGeneralTypeIssues = "none" @@ -1955,7 +1930,7 @@ reportUnusedImport = "none" root = "flext-target-oracle/src" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-target-oracle", "flext-target-oracle/src"] reportArgumentType = "none" reportAssignmentType = "none" reportAttributeAccessIssue = "none" @@ -1973,7 +1948,7 @@ reportUnusedImport = "none" root = "flext-target-oracle/tests" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-target-oracle-oic/src"] reportAssignmentType = "none" reportAttributeAccessIssue = "none" reportGeneralTypeIssues = "none" @@ -1990,7 +1965,7 @@ reportUnusedImport = "none" root = "flext-target-oracle-oic/src" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-target-oracle-oic", "flext-target-oracle-oic/src"] reportArgumentType = "none" reportAssignmentType = "none" reportAttributeAccessIssue = "none" @@ -2008,7 +1983,7 @@ reportUnusedImport = "none" root = "flext-target-oracle-oic/tests" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-target-oracle-wms", "flext-target-oracle-wms/src"] reportArgumentType = "none" reportAssignmentType = "none" reportAttributeAccessIssue = "none" @@ -2026,7 +2001,7 @@ reportUnusedImport = "none" root = "flext-target-oracle-wms/examples" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-target-oracle-wms/src"] reportAssignmentType = "none" reportAttributeAccessIssue = "none" reportGeneralTypeIssues = "none" @@ -2043,7 +2018,7 @@ reportUnusedImport = "none" root = "flext-target-oracle-wms/src" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-target-oracle-wms", "flext-target-oracle-wms/src"] reportArgumentType = "none" reportAssignmentType = "none" reportAttributeAccessIssue = "none" @@ -2061,7 +2036,7 @@ reportUnusedImport = "none" root = "flext-target-oracle-wms/tests" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-tests/src"] reportAssignmentType = "none" reportAttributeAccessIssue = "none" reportGeneralTypeIssues = "none" @@ -2078,7 +2053,7 @@ reportUnusedImport = "none" root = "flext-tests/src" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-tests", "flext-tests/src"] reportArgumentType = "none" reportAssignmentType = "none" reportAttributeAccessIssue = "none" @@ -2096,7 +2071,7 @@ reportUnusedImport = "none" root = "flext-tests/tests" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-web", "flext-web/src"] reportArgumentType = "none" reportAssignmentType = "none" reportAttributeAccessIssue = "none" @@ -2114,7 +2089,7 @@ reportUnusedImport = "none" root = "flext-web/examples" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-web/src"] reportAssignmentType = "none" reportAttributeAccessIssue = "none" reportGeneralTypeIssues = "none" @@ -2131,7 +2106,7 @@ reportUnusedImport = "none" root = "flext-web/src" [[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] +extraPaths = ["flext-web", "flext-web/src"] reportArgumentType = "none" reportAssignmentType = "none" reportAttributeAccessIssue = "none" @@ -2147,9 +2122,20 @@ reportUnknownParameterType = "none" reportUnknownVariableType = "none" reportUnusedImport = "none" root = "flext-web/tests" + +# [MANAGED] pytest [tool.pytest.ini_options] -addopts = [ "--durations=10", "--markdown-docs", "--strict-markers", "--timeout=10" ] -filterwarnings = [ "error", "module::flext_core._constants.enforcement.FlextMroViolation" ] +addopts = [ + "--durations=10", + "--markdown-docs", + "--session-timeout=60", + "--strict-markers", + "--timeout=10", +] +filterwarnings = [ + "error", + "module::flext_core._constants.enforcement.FlextMroViolation", +] markers = [ "docker: tests requiring Docker", "e2e: end-to-end integration tests", @@ -2163,14 +2149,15 @@ markers = [ "unit: unit tests", ] minversion = "8.0" -python_classes = [ "Test*" ] -python_files = [ "*_test.py", "*_tests.py", "test_*.py" ] -testpaths = [ ".", "docs", "examples", "scripts", "src", "tests" ] +python_classes = ["Test*"] +python_files = ["*_test.py", "*_tests.py", "test_*.py"] +testpaths = [".", "docs", "examples", "scripts", "src", "tests"] # [MANAGED] ruff [tool.ruff] exclude = [ "**/__pyrefly_virtual__/**", + ".archive", ".git", ".mypy_cache", ".pytest_cache", @@ -2189,11 +2176,11 @@ exclude = [ ] fix = false line-length = 88 -namespace-packages = [ "examples", "scripts", "tests" ] +namespace-packages = ["examples", "scripts", "tests"] preview = true respect-gitignore = true show-fixes = true -src = [ "examples", "scripts", "src", "tests" ] +src = ["examples", "scripts", "src", "tests"] target-version = "py313" [tool.ruff.format] @@ -2263,7 +2250,7 @@ ignore = [ "unnecessary-placeholder", "unsorted-imports", ] -select = [ "ALL" ] +select = ["ALL"] [tool.ruff.lint.flake8-tidy-imports.banned-api.argparse] msg = "Use cli.register_result_command + Pydantic model from flext_cli." @@ -2317,8 +2304,8 @@ known-first-party = [ split-on-trailing-comma = false [tool.ruff.lint.per-file-ignores] -"**/.vulture_whitelist.py" = [ "ALL" ] -"**/*_pb2*.py" = [ "ALL" ] +"**/.vulture_whitelist.py" = ["ALL"] +"**/*_pb2*.py" = ["ALL"] "**/__init__.py" = [ "any-type", "builtin-import-shadowing", @@ -2341,18 +2328,16 @@ split-on-trailing-comma = false "undocumented-public-function", "undocumented-public-method", ] -"scripts/cmd/**/*.py" = [ "invalid-module-name" ] +"scripts/cmd/**/*.py" = ["invalid-module-name"] # [MANAGED] tomlsort [tool.tomlsort] all = true in_place = true -sort_first = [ "build-system", "dependency-groups", "project", "tool" ] +sort_first = ["build-system", "dependency-groups", "project", "tool"] [tool.uv] -constraint-dependencies = [ "uv==0.11.32" ] link-mode = "copy" -required-version = "==0.11.32" [tool.uv.sources.flext-api] workspace = true @@ -2483,9 +2468,9 @@ members = [ ] [tool.vulture] -exclude = [ "*/_protocols/*" ] +exclude = ["*/_protocols/*"] min_confidence = 100 -paths = [ "src" ] +paths = ["src"] verbose = false # [MANAGED] yamlfix diff --git a/uv.lock b/uv.lock index 7f87e84e6..51a1e2b1c 100644 --- a/uv.lock +++ b/uv.lock @@ -42,7 +42,6 @@ members = [ "flext-tests", "flext-web", ] -constraints = [{ name = "uv", specifier = "==0.11.32" }] [[package]] name = "actionlint-py" @@ -1414,86 +1413,12 @@ dependencies = [ { name = "pydantic" }, ] -[package.optional-dependencies] -dev = [ - { name = "autoflake" }, - { name = "bandit" }, - { name = "black" }, - { name = "blacken-docs" }, - { name = "codespell" }, - { name = "deptry" }, - { name = "django-stubs" }, - { name = "factory-boy" }, - { name = "faker" }, - { name = "hypothesis" }, - { name = "isort" }, - { name = "matplotlib-stubs" }, - { name = "mkdocs" }, - { name = "mkdocs-awesome-pages-plugin" }, - { name = "mkdocs-encryptcontent-plugin" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-get-deps" }, - { name = "mkdocs-git-revision-date-localized-plugin" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-macros-plugin" }, - { name = "mkdocs-material" }, - { name = "mkdocs-material-extensions" }, - { name = "mkdocs-mermaid2-plugin" }, - { name = "mkdocs-minify-plugin" }, - { name = "mkdocs-print-site-plugin" }, - { name = "mkdocs-redirects" }, - { name = "mkdocs-section-index" }, - { name = "mkdocs-versioning" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "pip-audit" }, - { name = "pre-commit" }, - { name = "pylint" }, - { name = "pyrefly" }, - { name = "pytest" }, - { name = "pytest-benchmark" }, - { name = "pytest-clarity" }, - { name = "pytest-codeblocks" }, - { name = "pytest-cov" }, - { name = "pytest-deadfixtures" }, - { name = "pytest-env" }, - { name = "pytest-markdown-docs" }, - { name = "pytest-mock" }, - { name = "pytest-randomly" }, - { name = "pytest-sugar" }, - { name = "pytest-timeout" }, - { name = "pytest-xdist" }, - { name = "pyupgrade" }, - { name = "radon" }, - { name = "ruff" }, - { name = "types-cachetools" }, - { name = "types-cffi" }, - { name = "types-click" }, - { name = "types-defusedxml" }, - { name = "types-docker" }, - { name = "types-flask" }, - { name = "types-ldap3" }, - { name = "types-paramiko" }, - { name = "types-protobuf" }, - { name = "types-psutil" }, - { name = "types-psycopg2" }, - { name = "types-pyasn1" }, - { name = "types-pyopenssl" }, - { name = "types-python-dateutil" }, - { name = "types-pyyaml" }, - { name = "types-redis" }, - { name = "types-requests" }, - { name = "types-setuptools" }, - { name = "types-tabulate" }, - { name = "types-toml" }, - { name = "vulture" }, -] - [package.dev-dependencies] codegen = [ { name = "flext-infra" }, ] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -1526,10 +1451,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -1606,88 +1533,17 @@ workspace = [ [package.metadata] requires-dist = [ - { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, - { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.9.4" }, - { name = "black", marker = "extra == 'dev'", specifier = ">=26.5.1" }, - { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.20.0" }, - { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, - { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, - { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=6.0.6" }, - { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, - { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, { name = "flext-core", editable = "flext-core" }, { name = "flext-infra", editable = "flext-infra" }, { name = "flext-tests", editable = "flext-tests" }, - { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.157.2" }, { name = "importlib-resources", specifier = ">=7.1.0" }, - { name = "isort", marker = "extra == 'dev'", specifier = ">=8.0.1" }, - { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, - { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, - { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, - { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, - { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=2.0.5" }, - { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.10.1" }, - { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, { name = "pydantic", specifier = ">=2.13.3" }, - { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, - { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, - { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.2.3" }, - { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, - { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, - { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, - { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, - { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, - { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, - { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, - { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, - { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, - { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, - { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.2.0.20260720" }, - { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, - { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, - { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7.2.2.20260518" }, - { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, - { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9.0.20260716" }, - { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, - { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, - { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, - { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, - { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20260518" }, - { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, -] -provides-extras = ["dev"] +] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -1720,10 +1576,12 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.10.1" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -1824,6 +1682,7 @@ codegen = [ { name = "flext-infra" }, ] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -1855,10 +1714,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -1921,6 +1782,7 @@ requires-dist = [ [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -1952,10 +1814,12 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -2012,88 +1876,12 @@ dependencies = [ { name = "pyjwt" }, ] -[package.optional-dependencies] -dev = [ - { name = "autoflake" }, - { name = "bandit" }, - { name = "black" }, - { name = "blacken-docs" }, - { name = "codespell" }, - { name = "deptry" }, - { name = "django-stubs" }, - { name = "factory-boy" }, - { name = "faker" }, - { name = "hypothesis" }, - { name = "isort" }, - { name = "matplotlib-stubs" }, - { name = "mkdocs" }, - { name = "mkdocs-awesome-pages-plugin" }, - { name = "mkdocs-encryptcontent-plugin" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-get-deps" }, - { name = "mkdocs-git-revision-date-localized-plugin" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-macros-plugin" }, - { name = "mkdocs-material" }, - { name = "mkdocs-material-extensions" }, - { name = "mkdocs-mermaid2-plugin" }, - { name = "mkdocs-minify-plugin" }, - { name = "mkdocs-print-site-plugin" }, - { name = "mkdocs-redirects" }, - { name = "mkdocs-section-index" }, - { name = "mkdocs-versioning" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "pip-audit" }, - { name = "pre-commit" }, - { name = "pylint" }, - { name = "pyrefly" }, - { name = "pytest" }, - { name = "pytest-benchmark" }, - { name = "pytest-clarity" }, - { name = "pytest-codeblocks" }, - { name = "pytest-cov" }, - { name = "pytest-deadfixtures" }, - { name = "pytest-env" }, - { name = "pytest-markdown-docs" }, - { name = "pytest-mock" }, - { name = "pytest-randomly" }, - { name = "pytest-sugar" }, - { name = "pytest-timeout" }, - { name = "pytest-xdist" }, - { name = "pyupgrade" }, - { name = "radon" }, - { name = "ruff" }, - { name = "types-cachetools" }, - { name = "types-cffi" }, - { name = "types-click" }, - { name = "types-defusedxml" }, - { name = "types-docker" }, - { name = "types-flask" }, - { name = "types-jsonschema" }, - { name = "types-ldap3" }, - { name = "types-paramiko" }, - { name = "types-protobuf" }, - { name = "types-psutil" }, - { name = "types-psycopg2" }, - { name = "types-pyasn1" }, - { name = "types-pyopenssl" }, - { name = "types-python-dateutil" }, - { name = "types-pyyaml" }, - { name = "types-redis" }, - { name = "types-requests" }, - { name = "types-setuptools" }, - { name = "types-tabulate" }, - { name = "types-toml" }, - { name = "vulture" }, - { name = "yamlfix" }, -] - [package.dev-dependencies] codegen = [ { name = "flext-infra" }, ] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -2125,10 +1913,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -2151,6 +1941,7 @@ dev = [ { name = "types-defusedxml" }, { name = "types-docker" }, { name = "types-flask" }, + { name = "types-jsonschema" }, { name = "types-ldap3" }, { name = "types-paramiko" }, { name = "types-protobuf" }, @@ -2166,97 +1957,25 @@ dev = [ { name = "types-tabulate" }, { name = "types-toml" }, { name = "vulture" }, + { name = "yamlfix" }, ] [package.metadata] requires-dist = [ - { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, - { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, { name = "bcrypt", specifier = ">=5.0.0" }, - { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, - { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, - { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, { name = "cryptography", specifier = ">=47.0.0" }, - { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, - { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, - { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, - { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, { name = "flext-api", editable = "flext-api" }, { name = "flext-core", editable = "flext-core" }, - { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, - { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, - { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, - { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, - { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, - { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, - { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, - { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, { name = "pydantic", specifier = ">=2.13.3" }, { name = "pydantic-core", specifier = ">=2.46.3" }, { name = "pydantic-settings", specifier = ">=2.14.0" }, { name = "pyjwt", specifier = ">=2.12.1" }, - { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, - { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, - { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, - { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, - { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, - { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, - { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, - { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, - { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, - { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, - { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, - { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, - { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, - { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, - { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, - { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, - { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, - { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, - { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, - { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, - { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, - { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, - { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, - { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, - { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, -] -provides-extras = ["dev"] +] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -2288,10 +2007,12 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -2314,6 +2035,7 @@ dev = [ { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, @@ -2329,6 +2051,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -2363,6 +2086,7 @@ codegen = [ { name = "flext-infra" }, ] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -2394,11 +2118,13 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "psutil" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -2468,6 +2194,7 @@ requires-dist = [ [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -2499,11 +2226,13 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "psutil", specifier = ">=7.2.2" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -2578,6 +2307,7 @@ codegen = [ { name = "flext-infra" }, ] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -2619,6 +2349,7 @@ dev = [ { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -2688,6 +2419,7 @@ requires-dist = [ [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -2729,6 +2461,7 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -2789,6 +2522,7 @@ codegen = [ { name = "flext-infra" }, ] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -2820,10 +2554,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -2878,6 +2614,7 @@ requires-dist = [ [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -2909,10 +2646,12 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -2973,6 +2712,7 @@ codegen = [ { name = "flext-infra" }, ] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -3005,10 +2745,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -3064,6 +2806,7 @@ requires-dist = [ [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -3096,10 +2839,12 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -3158,6 +2903,7 @@ codegen = [ { name = "flext-infra" }, ] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -3189,10 +2935,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -3246,6 +2994,7 @@ requires-dist = [ [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -3277,10 +3026,12 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -3340,6 +3091,7 @@ codegen = [ { name = "flext-infra" }, ] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -3371,10 +3123,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -3429,6 +3183,7 @@ requires-dist = [ [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -3460,10 +3215,12 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -3523,6 +3280,7 @@ codegen = [ { name = "flext-infra" }, ] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -3554,10 +3312,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -3612,6 +3372,7 @@ requires-dist = [ [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -3643,10 +3404,12 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -3711,6 +3474,7 @@ codegen = [ { name = "flext-infra" }, ] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -3742,10 +3506,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -3805,6 +3571,7 @@ requires-dist = [ [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -3836,10 +3603,12 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -4107,6 +3876,7 @@ codegen = [ { name = "flext-infra" }, ] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -4138,10 +3908,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -4199,6 +3971,7 @@ requires-dist = [ [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -4230,10 +4003,12 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -4295,6 +4070,7 @@ codegen = [ { name = "flext-infra" }, ] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -4326,10 +4102,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -4386,6 +4164,7 @@ requires-dist = [ [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -4417,10 +4196,12 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -4501,6 +4282,7 @@ codegen = [ { name = "flext-infra" }, ] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -4532,11 +4314,13 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "psycopg2" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -4613,6 +4397,7 @@ requires-dist = [ [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -4644,11 +4429,13 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "psycopg2", specifier = ">=2.9.12" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -4719,6 +4506,7 @@ codegen = [ { name = "flext-infra" }, ] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -4750,10 +4538,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -4818,6 +4608,7 @@ requires-dist = [ [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -4849,10 +4640,12 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -4918,6 +4711,7 @@ codegen = [ { name = "flext-infra" }, ] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -4949,10 +4743,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -5013,6 +4809,7 @@ requires-dist = [ [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -5044,10 +4841,12 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -5108,6 +4907,7 @@ codegen = [ { name = "flext-infra" }, ] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -5139,10 +4939,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -5198,6 +5000,7 @@ requires-dist = [ [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -5229,10 +5032,12 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -5295,6 +5100,7 @@ codegen = [ { name = "flext-infra" }, ] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -5326,10 +5132,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -5387,6 +5195,7 @@ requires-dist = [ [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -5418,10 +5227,12 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -5499,6 +5310,7 @@ codegen = [ { name = "flext-infra" }, ] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -5530,10 +5342,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -5608,6 +5422,7 @@ requires-dist = [ [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.3" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -5639,10 +5454,12 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=2.0.5" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.10.1" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.2.3" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -5704,6 +5521,7 @@ codegen = [ { name = "flext-infra" }, ] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -5735,10 +5553,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -5793,6 +5613,7 @@ requires-dist = [ [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -5824,10 +5645,12 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -5887,6 +5710,7 @@ codegen = [ { name = "flext-infra" }, ] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -5918,10 +5742,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -5976,6 +5802,7 @@ requires-dist = [ [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -6007,10 +5834,12 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -6075,6 +5904,7 @@ codegen = [ { name = "flext-infra" }, ] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -6106,10 +5936,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -6169,6 +6001,7 @@ requires-dist = [ [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -6200,10 +6033,12 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -6266,6 +6101,7 @@ codegen = [ { name = "flext-infra" }, ] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -6297,10 +6133,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -6358,6 +6196,7 @@ requires-dist = [ [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -6389,10 +6228,12 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -6454,6 +6295,7 @@ codegen = [ { name = "flext-infra" }, ] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -6485,10 +6327,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -6545,6 +6389,7 @@ requires-dist = [ [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -6576,10 +6421,12 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -6637,6 +6484,7 @@ codegen = [ { name = "flext-infra" }, ] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -6669,10 +6517,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -6725,6 +6575,7 @@ requires-dist = [ [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -6757,10 +6608,12 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -6821,6 +6674,7 @@ codegen = [ { name = "flext-infra" }, ] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -6852,10 +6706,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -6911,6 +6767,7 @@ requires-dist = [ [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -6942,10 +6799,12 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -7009,6 +6868,7 @@ codegen = [ { name = "flext-infra" }, ] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -7040,10 +6900,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -7102,6 +6964,7 @@ requires-dist = [ [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -7133,10 +6996,12 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -7203,6 +7068,7 @@ codegen = [ { name = "flext-infra" }, ] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -7234,10 +7100,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -7299,6 +7167,7 @@ requires-dist = [ [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -7330,10 +7199,12 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -7397,6 +7268,7 @@ codegen = [ { name = "flext-infra" }, ] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -7428,10 +7300,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -7490,6 +7364,7 @@ requires-dist = [ [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -7521,10 +7396,12 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -7598,6 +7475,7 @@ codegen = [ { name = "flext-infra" }, ] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -7634,6 +7512,7 @@ dev = [ { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -7702,6 +7581,7 @@ requires-dist = [ [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -7738,6 +7618,7 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -7800,6 +7681,7 @@ codegen = [ { name = "flext-infra" }, ] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -7831,10 +7713,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -7892,6 +7776,7 @@ requires-dist = [ [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -7923,10 +7808,12 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, From 14cd128719fc2733a6844a59c89ec195e976e4e3 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Wed, 29 Jul 2026 17:36:44 -0300 Subject: [PATCH 007/165] chore(conform): apply managed workspace projections --- .gitignore | 17 +++ .gitmodules | 62 +++++++++ .pre-commit-config.yaml | 2 +- Makefile | 181 ++++++++++++++++++++++---- ci/docker/alpine.Dockerfile | 21 +++ ci/docker/arch.Dockerfile | 23 ++++ ci/docker/debian.Dockerfile | 24 ++++ ci/docker/fedora.Dockerfile | 23 ++++ ci/docker/ubuntu.Dockerfile | 24 ++++ pyproject.toml | 249 ++++++++++++++++++------------------ 10 files changed, 476 insertions(+), 150 deletions(-) create mode 100644 ci/docker/alpine.Dockerfile create mode 100644 ci/docker/arch.Dockerfile create mode 100644 ci/docker/debian.Dockerfile create mode 100644 ci/docker/fedora.Dockerfile create mode 100644 ci/docker/ubuntu.Dockerfile diff --git a/.gitignore b/.gitignore index f6f53300a..275ac3e5d 100644 --- a/.gitignore +++ b/.gitignore @@ -362,3 +362,20 @@ skill-create-output/ .debug-journal.md .mcp.json CLAUDE.local.md + +# Tracked managed artifacts +!ci/ +!ci/docker/ +!ci/docker/alpine.Dockerfile +!ci/docker/arch.Dockerfile +!ci/docker/debian.Dockerfile +!ci/docker/fedora.Dockerfile +!ci/docker/ubuntu.Dockerfile +!.github/workflows/ +!.github/workflows/ci-matrix.yml +!.github/workflows/ci.yml +!.vscode/settings.json +!LICENSE +!config/ +!config/workspace.yaml +!custom.mk diff --git a/.gitmodules b/.gitmodules index ce9feb5c7..efc2f7e9a 100644 --- a/.gitmodules +++ b/.gitmodules @@ -2,153 +2,215 @@ path = flext-api url = https://github.com/flext-sh/flext-api.git branch = 0.12.0-dev + flext-classification = managed + flext-managed = true [submodule "flext-auth"] path = flext-auth url = https://github.com/flext-sh/flext-auth.git branch = 0.12.0-dev + flext-classification = managed + flext-managed = true [submodule "flext-cli"] path = flext-cli url = https://github.com/flext-sh/flext-cli.git branch = 0.12.0-dev + flext-classification = managed + flext-managed = true [submodule "flext-core"] path = flext-core url = https://github.com/flext-sh/flext-core.git branch = 0.12.0-dev + flext-classification = managed + flext-managed = true [submodule "flext-db-oracle"] path = flext-db-oracle url = https://github.com/flext-sh/flext-db-oracle.git branch = 0.12.0-dev + flext-classification = managed + flext-managed = true [submodule "flext-dbt-ldap"] path = flext-dbt-ldap url = https://github.com/flext-sh/flext-dbt-ldap.git branch = 0.12.0-dev + flext-classification = managed + flext-managed = true [submodule "flext-dbt-ldif"] path = flext-dbt-ldif url = https://github.com/flext-sh/flext-dbt-ldif.git branch = 0.12.0-dev + flext-classification = managed + flext-managed = true [submodule "flext-dbt-oracle"] path = flext-dbt-oracle url = https://github.com/flext-sh/flext-dbt-oracle.git branch = 0.12.0-dev + flext-classification = managed + flext-managed = true [submodule "flext-dbt-oracle-wms"] path = flext-dbt-oracle-wms url = https://github.com/flext-sh/flext-dbt-oracle-wms.git branch = 0.12.0-dev + flext-classification = managed + flext-managed = true [submodule "flext-grpc"] path = flext-grpc url = https://github.com/flext-sh/flext-grpc.git branch = 0.12.0-dev + flext-classification = managed + flext-managed = true [submodule "flext-infra"] path = flext-infra url = https://github.com/flext-sh/flext-infra.git branch = 0.12.0-dev + flext-classification = managed + flext-managed = true [submodule "flext-ldap"] path = flext-ldap url = https://github.com/flext-sh/flext-ldap.git branch = 0.12.0-dev + flext-classification = managed + flext-managed = true [submodule "flext-ldif"] path = flext-ldif url = https://github.com/flext-sh/flext-ldif.git branch = 0.12.0-dev + flext-classification = managed + flext-managed = true [submodule "flext-meltano"] path = flext-meltano url = https://github.com/flext-sh/flext-meltano.git branch = 0.12.0-dev + flext-classification = managed + flext-managed = true [submodule "flext-observability"] path = flext-observability url = https://github.com/flext-sh/flext-observability.git branch = 0.12.0-dev + flext-classification = managed + flext-managed = true [submodule "flext-oracle-oic"] path = flext-oracle-oic url = https://github.com/flext-sh/flext-oracle-oic.git branch = 0.12.0-dev + flext-classification = managed + flext-managed = true [submodule "flext-oracle-wms"] path = flext-oracle-wms url = https://github.com/flext-sh/flext-oracle-wms.git branch = 0.12.0-dev + flext-classification = managed + flext-managed = true [submodule "flext-plugin"] path = flext-plugin url = https://github.com/flext-sh/flext-plugin.git branch = 0.12.0-dev + flext-classification = managed + flext-managed = true [submodule "flext-quality"] path = flext-quality url = https://github.com/flext-sh/flext-quality.git branch = 0.12.0-dev + flext-classification = managed + flext-managed = true [submodule "flext-tap-ldap"] path = flext-tap-ldap url = https://github.com/flext-sh/flext-tap-ldap.git branch = 0.12.0-dev + flext-classification = managed + flext-managed = true [submodule "flext-tap-ldif"] path = flext-tap-ldif url = https://github.com/flext-sh/flext-tap-ldif.git branch = 0.12.0-dev + flext-classification = managed + flext-managed = true [submodule "flext-tap-oracle"] path = flext-tap-oracle url = https://github.com/flext-sh/flext-tap-oracle.git branch = 0.12.0-dev + flext-classification = managed + flext-managed = true [submodule "flext-tap-oracle-oic"] path = flext-tap-oracle-oic url = https://github.com/flext-sh/flext-tap-oracle-oic.git branch = 0.12.0-dev + flext-classification = managed + flext-managed = true [submodule "flext-tap-oracle-wms"] path = flext-tap-oracle-wms url = https://github.com/flext-sh/flext-tap-oracle-wms.git branch = 0.12.0-dev + flext-classification = managed + flext-managed = true [submodule "flext-target-ldap"] path = flext-target-ldap url = https://github.com/flext-sh/flext-target-ldap.git branch = 0.12.0-dev + flext-classification = managed + flext-managed = true [submodule "flext-target-ldif"] path = flext-target-ldif url = https://github.com/flext-sh/flext-target-ldif.git branch = 0.12.0-dev + flext-classification = managed + flext-managed = true [submodule "flext-target-oracle"] path = flext-target-oracle url = https://github.com/flext-sh/flext-target-oracle.git branch = 0.12.0-dev + flext-classification = managed + flext-managed = true [submodule "flext-target-oracle-oic"] path = flext-target-oracle-oic url = https://github.com/flext-sh/flext-target-oracle-oic.git branch = 0.12.0-dev + flext-classification = managed + flext-managed = true [submodule "flext-target-oracle-wms"] path = flext-target-oracle-wms url = https://github.com/flext-sh/flext-target-oracle-wms.git branch = 0.12.0-dev + flext-classification = managed + flext-managed = true [submodule "flext-tests"] path = flext-tests url = https://github.com/flext-sh/flext-tests.git branch = 0.12.0-dev + flext-classification = managed + flext-managed = true [submodule "flext-web"] path = flext-web url = https://github.com/flext-sh/flext-web.git branch = 0.12.0-dev + flext-classification = managed + flext-managed = true diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index e49116bb5..3f94e3797 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -2,7 +2,7 @@ # # Every hook routes through the canonical `uv run --all-packages python -m flext_infra` # workspace monopoly; no standalone scripts and no bare tool invocations -# (AGENTS.md §5 Make Contract). +# (AGENTS.md `Build & Test`). # Enable locally with `pre-commit install` from the workspace root. repos: - repo: local diff --git a/Makefile b/Makefile index f68062a08..da5236476 100644 --- a/Makefile +++ b/Makefile @@ -52,6 +52,9 @@ UV ?= uv UV_REQUESTED := $(UV) CALLER_PATH := $(PATH) CALLER_VIRTUAL_ENV := $(patsubst %/,%,$(VIRTUAL_ENV)) +FLEXT_INFRA_BOOTSTRAP_REQUIREMENT := flext-infra @ git+https://github.com/flext-sh/flext-infra.git@0.12.0-dev +FLEXT_INFRA_BOOTSTRAP_TOOL_ARGS := --with "pyrefly>=1.1.1" --with "ruff>=0.15.12" +FLEXT_INFRA_SOURCE_ROOT_REL := flext-infra # === MYPY RESOURCE LIMIT === # mro-0ftd.3.11: every Mypy process inherits validated memory and time caps. @@ -135,6 +138,14 @@ override VIRTUAL_ENV := $(RUNTIME_VENV) override PATH := $(RUNTIME_BIN):$(SANITIZED_CALLER_PATH) export FLEXT_INFRA_PYTHON UV UV_PROJECT UV_PROJECT_ENVIRONMENT VIRTUAL_ENV PATH +ifneq ($(strip $(FLEXT_INFRA_SOURCE_ROOT_REL)),) +FLEXT_INFRA_SOURCE_ROOT := $(abspath $(PROJECT_ROOT)/$(FLEXT_INFRA_SOURCE_ROOT_REL)) +FLEXT_INFRA_BOOTSTRAP := env -u PYTHONPATH -u MYPYPATH -u VIRTUAL_ENV -u UV_PROJECT -u UV_PROJECT_ENVIRONMENT PATH="$(SANITIZED_CALLER_PATH)" $(UV) run --no-project --with-editable "$(FLEXT_INFRA_SOURCE_ROOT)" $(FLEXT_INFRA_BOOTSTRAP_TOOL_ARGS) python -m flext_infra +else +FLEXT_INFRA_SOURCE_ROOT := +FLEXT_INFRA_BOOTSTRAP := env -u PYTHONPATH -u MYPYPATH -u VIRTUAL_ENV -u UV_PROJECT -u UV_PROJECT_ENVIRONMENT PATH="$(SANITIZED_CALLER_PATH)" $(UV) run --no-project --with "$(FLEXT_INFRA_BOOTSTRAP_REQUIREMENT)" $(FLEXT_INFRA_BOOTSTRAP_TOOL_ARGS) python -m flext_infra +endif + ifeq ($(MAKE_PROFILE),workspace-root) CODEGEN_SCOPE := all ALLOWED_PROJECTS := . $(WORKSPACE_MEMBERS) @@ -199,6 +210,7 @@ _builtin_clean_generated \ _builtin_release_status \ _builtin_codegen_check \ _builtin_codegen_apply \ + _builtin_codegen_init \ _builtin_worktree_list \ _builtin_worktree_add \ _builtin_worktree_update \ @@ -353,30 +365,140 @@ _builtin_help_usage: fi; \ fi -# A project owns the sources it declares. Setup makes the tree exactly what the -# manifest declares, using nothing outside the tree: every declared submodule is -# initialised recursively at its recorded gitlink and placed on the branch -# declared in .gitmodules. It is a no-op when the project declares no -# submodules, and it converges on re-run. It never moves a branch that holds -# work the superproject does not record: that is an error, never a warning, so -# setup can never report success over a tree that is not what it declares. +# A project owns the sources declared by its manifest. The generated setup +# reconciler validates every initialized checkout before mutation, initializes +# only missing modules, and preserves declared branches that fix forward beyond +# the recorded gitlink. +.PHONY: _builtin_setup_submodules + _builtin_setup_submodules: @set -eu; \ - if [ ! -f "$(PROJECT_ROOT)/.gitmodules" ]; then exit 0; fi; \ - git -C "$(PROJECT_ROOT)" submodule sync --recursive --quiet; \ - git -C "$(PROJECT_ROOT)" submodule update --init --recursive; \ - git -C "$(PROJECT_ROOT)" submodule foreach --recursive --quiet ' \ - branch=$$(git config -f "$$toplevel/.gitmodules" --get --default "" "submodule.$$name.branch"); \ - if [ -z "$$branch" ]; then exit 0; fi; \ - if ! git rev-parse --verify --quiet "refs/heads/$$branch" >/dev/null; then \ - git checkout --quiet -b "$$branch"; \ - elif [ "$$(git rev-parse "refs/heads/$$branch")" = "$$(git rev-parse HEAD)" ]; then \ - git checkout --quiet "$$branch"; \ - else \ - printf "ERROR: %s: branch %s is at %s but the superproject records %s\n" "$$name" "$$branch" "$$(git rev-parse --short "refs/heads/$$branch")" "$$(git rev-parse --short HEAD)" >&2; \ - printf "Reconcile that branch with the recorded gitlink, then re-run setup\n" >&2; \ - exit 1; \ - fi' + root="$(PROJECT_ROOT)"; \ + selected="$(REQUESTED_PROJECTS)"; \ + if [ ! -f "$$root/.gitmodules" ]; then exit 0; fi; \ + setup_selected() { \ + candidate="$$1"; \ + if [ -z "$$selected" ]; then return 0; fi; \ + for project in $$selected; do \ + if [ "$$project" = "." ]; then continue; fi; \ + case "$$project" in \ + "$$candidate"|"$$candidate"/*) return 0 ;; \ + esac; \ + done; \ + return 1; \ + }; \ + preflight_managed_submodules() { \ + superproject="$$1"; \ + if [ ! -f "$$superproject/.gitmodules" ]; then return 0; fi; \ + git -C "$$superproject" config -f .gitmodules --get-regexp '^submodule\..*\.path$$' 2>/dev/null | \ + while IFS=' ' read -r path_key child_path; do \ + if [ "$$superproject" = "$$root" ] && ! setup_selected "$$child_path"; then continue; fi; \ + prefix=$${path_key%.path}; \ + managed=$$(git -C "$$superproject" config -f .gitmodules --bool --get --default false "$$prefix.flext-managed"); \ + if [ "$$managed" != true ]; then continue; fi; \ + state=$$(git -C "$$superproject" submodule status -- "$$child_path"); \ + case "$$state" in -*) continue ;; esac; \ + checkout="$$superproject/$$child_path"; \ + displaypath=$${checkout#"$$root"/}; \ + sha1=$$(git -C "$$superproject" rev-parse "HEAD:$$child_path"); \ + branch=$$(git -C "$$superproject" config -f .gitmodules --get --default "" "$$prefix.branch"); \ + current=$$(git -C "$$checkout" branch --show-current); \ + if [ -z "$$branch" ]; then \ + if [ -n "$$current" ]; then \ + printf "ERROR: %s: branch %s is checked out but .gitmodules declares no branch\n" "$$displaypath" "$$current" >&2; \ + exit 1; \ + fi; \ + elif [ "$$branch" = "." ]; then \ + branch=$$(git -C "$$superproject" branch --show-current); \ + if [ -z "$$branch" ]; then \ + printf "ERROR: %s: branch = . requires its superproject on a named branch\n" "$$displaypath" >&2; \ + exit 1; \ + fi; \ + fi; \ + if [ -n "$$branch" ]; then \ + git check-ref-format --branch "$$branch" >/dev/null || { \ + printf "ERROR: %s: invalid declared branch %s\n" "$$displaypath" "$$branch" >&2; \ + exit 1; \ + }; \ + fi; \ + if [ -n "$$current" ] && [ "$$current" != "$$branch" ]; then \ + printf "ERROR: %s: conflicting branch %s; expected %s\n" "$$displaypath" "$$current" "$$branch" >&2; \ + exit 1; \ + fi; \ + if [ -z "$$current" ] && [ "$$(git -C "$$checkout" rev-parse HEAD)" != "$$sha1" ]; then \ + printf "ERROR: %s: detached HEAD diverges from recorded gitlink %s\n" "$$displaypath" "$$(git -C "$$checkout" rev-parse --short "$$sha1")" >&2; \ + exit 1; \ + fi; \ + if [ -n "$$current" ] && ! git -C "$$checkout" merge-base --is-ancestor "$$sha1" HEAD; then \ + printf "ERROR: %s: branch %s diverges from recorded gitlink %s\n" "$$displaypath" "$$branch" "$$(git -C "$$checkout" rev-parse --short "$$sha1")" >&2; \ + exit 1; \ + fi; \ + preflight_managed_submodules "$$checkout"; \ + done; \ + }; \ + initialize_declared_submodules() { \ + superproject="$$1"; \ + if [ ! -f "$$superproject/.gitmodules" ]; then return 0; fi; \ + git -C "$$superproject" config -f .gitmodules --get-regexp '^submodule\..*\.path$$' 2>/dev/null | \ + while IFS=' ' read -r path_key child_path; do \ + if [ "$$superproject" = "$$root" ] && ! setup_selected "$$child_path"; then continue; fi; \ + prefix=$${path_key%.path}; \ + managed=$$(git -C "$$superproject" config -f .gitmodules --bool --get --default false "$$prefix.flext-managed"); \ + if [ "$$managed" != true ]; then continue; fi; \ + git -C "$$superproject" submodule sync --quiet -- "$$child_path"; \ + state=$$(git -C "$$superproject" submodule status -- "$$child_path"); \ + case "$$state" in \ + -*) git -C "$$superproject" submodule update --init -- "$$child_path" ;; \ + esac; \ + initialize_declared_submodules "$$superproject/$$child_path"; \ + done; \ + }; \ + reconcile_managed_submodules() { \ + superproject="$$1"; \ + if [ ! -f "$$superproject/.gitmodules" ]; then return 0; fi; \ + git -C "$$superproject" config -f .gitmodules --get-regexp '^submodule\..*\.path$$' 2>/dev/null | \ + while IFS=' ' read -r path_key child_path; do \ + if [ "$$superproject" = "$$root" ] && ! setup_selected "$$child_path"; then continue; fi; \ + prefix=$${path_key%.path}; \ + managed=$$(git -C "$$superproject" config -f .gitmodules --bool --get --default false "$$prefix.flext-managed"); \ + if [ "$$managed" != true ]; then continue; fi; \ + checkout="$$superproject/$$child_path"; \ + displaypath=$${checkout#"$$root"/}; \ + sha1=$$(git -C "$$superproject" rev-parse "HEAD:$$child_path"); \ + branch=$$(git -C "$$superproject" config -f .gitmodules --get --default "" "$$prefix.branch"); \ + if [ -n "$$branch" ]; then \ + if [ "$$branch" = "." ]; then \ + branch=$$(git -C "$$superproject" branch --show-current); \ + if [ -z "$$branch" ]; then \ + printf "ERROR: %s: branch = . requires its superproject on a named branch\n" "$$displaypath" >&2; \ + exit 1; \ + fi; \ + fi; \ + git check-ref-format --branch "$$branch" >/dev/null || { \ + printf "ERROR: %s: invalid declared branch %s\n" "$$displaypath" "$$branch" >&2; \ + exit 1; \ + }; \ + current=$$(git -C "$$checkout" branch --show-current); \ + if [ "$$current" = "$$branch" ]; then \ + :; \ + elif [ -n "$$current" ]; then \ + printf "ERROR: %s: conflicting branch %s; expected %s\n" "$$displaypath" "$$current" "$$branch" >&2; \ + exit 1; \ + elif ! git -C "$$checkout" rev-parse --verify --quiet "refs/heads/$$branch" >/dev/null; then \ + git -C "$$checkout" checkout --quiet -b "$$branch"; \ + elif git -C "$$checkout" merge-base --is-ancestor "$$sha1" "refs/heads/$$branch"; then \ + git -C "$$checkout" checkout --quiet "$$branch"; \ + else \ + printf "ERROR: %s: branch %s diverges from recorded gitlink %s\n" "$$displaypath" "$$branch" "$$(git -C "$$checkout" rev-parse --short "$$sha1")" >&2; \ + exit 1; \ + fi; \ + fi; \ + reconcile_managed_submodules "$$checkout"; \ + done; \ + }; \ + preflight_managed_submodules "$$root"; \ + initialize_declared_submodules "$$root"; \ + reconcile_managed_submodules "$$root" _builtin_require_environment: @if [ ! -x "$(RUNTIME_PYTHON)" ]; then \ @@ -384,22 +506,25 @@ _builtin_require_environment: exit 2; \ fi +_builtin_setup_conform: _builtin_setup_submodules + @$(FLEXT_INFRA_BOOTSTRAP) codegen conform --root "$(PROJECT_ROOT)" --scope "$(CODEGEN_SCOPE)" --mode apply + ifeq ($(MAKE_PROFILE),workspace-root) -_builtin_setup_environment: _builtin_setup_submodules +_builtin_setup_environment: _builtin_setup_conform @$(UV) venv --clear "$(RUNTIME_VENV)" @$(UV) sync --project "$(PROJECT_ROOT)" $(UV_SYNC_FLAGS) --link-mode "$(UV_LINK_MODE)" @$(UV) pip check --python "$(RUNTIME_VENV)" else ifeq ($(MAKE_PROFILE),workspace-member) ifeq ($(ATTACHED_MEMBER),Y) -_builtin_setup_environment: _builtin_setup_submodules +_builtin_setup_environment: _builtin_setup_conform @$(SELF_MAKE) -C "$(RUNTIME_ROOT)" _builtin_setup_environment else -_builtin_setup_environment: _builtin_setup_submodules +_builtin_setup_environment: _builtin_setup_conform @$(UV) venv --clear "$(RUNTIME_VENV)" @$(UV) sync --project "$(PROJECT_ROOT)" $(UV_SYNC_FLAGS) --link-mode "$(UV_LINK_MODE)" endif else -_builtin_setup_environment: _builtin_setup_submodules +_builtin_setup_environment: _builtin_setup_conform @$(UV) venv --clear "$(RUNTIME_VENV)" @$(UV) sync --project "$(PROJECT_ROOT)" $(UV_SYNC_FLAGS) --link-mode "$(UV_LINK_MODE)" endif @@ -508,6 +633,10 @@ _builtin_codegen_apply: _builtin_require_environment $(call _require_apply) @$(PROJECT_FLEXT_INFRA) codegen conform --root "$(PROJECT_ROOT)" --scope "$(CODEGEN_SCOPE)" --mode apply +_builtin_codegen_init: _builtin_require_environment + $(call _require_apply) + @$(PROJECT_FLEXT_INFRA) codegen init --workspace "$(PROJECT_ROOT)" --apply + _builtin_worktree_list: @$(PROJECT_FLEXT_INFRA) workspace worktree --workspace "$(WORKSPACE)" --operation list diff --git a/ci/docker/alpine.Dockerfile b/ci/docker/alpine.Dockerfile new file mode 100644 index 000000000..9866535b6 --- /dev/null +++ b/ci/docker/alpine.Dockerfile @@ -0,0 +1,21 @@ +# Generated by `flext-infra codegen conform` for flext. +# Clean-machine proof: project bootstrap + canonical make verbs on Alpine +# (musl, POSIX /bin/sh at runtime; bash installed for the project scripts). +FROM alpine:3.21 + +RUN apk add --no-cache \ + bash ca-certificates coreutils curl git make build-base nodejs util-linux-misc + +# uv is an environment-provided executable, intentionally without a project +# patch pin. It installs the declared Python family before canonical bootstrap. +RUN curl -LsSf https://astral.sh/uv/install.sh \ + | env UV_UNMANAGED_INSTALL=/usr/local/bin sh +RUN uv python install 3.13 + +WORKDIR /workspace +COPY . . + +RUN make setup + +ENTRYPOINT [] +CMD ["/bin/bash", "-lc", "make help"] diff --git a/ci/docker/arch.Dockerfile b/ci/docker/arch.Dockerfile new file mode 100644 index 000000000..c2afdef14 --- /dev/null +++ b/ci/docker/arch.Dockerfile @@ -0,0 +1,23 @@ +# Generated by `flext-infra codegen conform` for flext. +# Clean-machine proof: project bootstrap + canonical make verbs on Arch Linux. +FROM archlinux:base + +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +RUN pacman -Syu --noconfirm --needed \ + bash ca-certificates curl git make base-devel \ + && pacman -Scc --noconfirm + +# uv is an environment-provided executable, intentionally without a project +# patch pin. It installs the declared Python family before canonical bootstrap. +RUN curl -LsSf https://astral.sh/uv/install.sh \ + | env UV_UNMANAGED_INSTALL=/usr/local/bin sh +RUN uv python install 3.13 + +WORKDIR /workspace +COPY . . + +RUN make setup + +ENTRYPOINT [] +CMD ["make", "help"] diff --git a/ci/docker/debian.Dockerfile b/ci/docker/debian.Dockerfile new file mode 100644 index 000000000..f4d3afaf3 --- /dev/null +++ b/ci/docker/debian.Dockerfile @@ -0,0 +1,24 @@ +# Generated by `flext-infra codegen conform` for flext. +# Clean-machine proof: project bootstrap + canonical make verbs on Debian. +FROM debian:bookworm-slim + +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + bash ca-certificates curl git make build-essential \ + && rm -rf /var/lib/apt/lists/* + +# uv is an environment-provided executable, intentionally without a project +# patch pin. It installs the declared Python family before canonical bootstrap. +RUN curl -LsSf https://astral.sh/uv/install.sh \ + | env UV_UNMANAGED_INSTALL=/usr/local/bin sh +RUN uv python install 3.13 + +WORKDIR /workspace +COPY . . + +RUN make setup + +ENTRYPOINT [] +CMD ["make", "help"] diff --git a/ci/docker/fedora.Dockerfile b/ci/docker/fedora.Dockerfile new file mode 100644 index 000000000..04833eb1f --- /dev/null +++ b/ci/docker/fedora.Dockerfile @@ -0,0 +1,23 @@ +# Generated by `flext-infra codegen conform` for flext. +# Clean-machine proof: project bootstrap + canonical make verbs on Fedora. +FROM fedora:41 + +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +RUN dnf install -y \ + bash ca-certificates curl git make gcc gcc-c++ libatomic \ + && dnf clean all + +# uv is an environment-provided executable, intentionally without a project +# patch pin. It installs the declared Python family before canonical bootstrap. +RUN curl -LsSf https://astral.sh/uv/install.sh \ + | env UV_UNMANAGED_INSTALL=/usr/local/bin sh +RUN uv python install 3.13 + +WORKDIR /workspace +COPY . . + +RUN make setup + +ENTRYPOINT [] +CMD ["make", "help"] diff --git a/ci/docker/ubuntu.Dockerfile b/ci/docker/ubuntu.Dockerfile new file mode 100644 index 000000000..f85590514 --- /dev/null +++ b/ci/docker/ubuntu.Dockerfile @@ -0,0 +1,24 @@ +# Generated by `flext-infra codegen conform` for flext. +# Clean-machine proof: project bootstrap + canonical make verbs on Ubuntu. +FROM ubuntu:24.04 + +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + bash ca-certificates curl git make build-essential \ + && rm -rf /var/lib/apt/lists/* + +# uv is an environment-provided executable, intentionally without a project +# patch pin. It installs the declared Python family before canonical bootstrap. +RUN curl -LsSf https://astral.sh/uv/install.sh \ + | env UV_UNMANAGED_INSTALL=/usr/local/bin sh +RUN uv python install 3.13 + +WORKDIR /workspace +COPY . . + +RUN make setup + +ENTRYPOINT [] +CMD ["make", "help"] diff --git a/pyproject.toml b/pyproject.toml index b2008c6c1..4184493a8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,127 +6,6 @@ # Sections with [MANAGED] are enforced by flext_infra.deps.modernizer. # Sections with [CUSTOM] are project-specific extension points. -# [MANAGED] build system -[build-system] -build-backend = "hatchling.build" -requires = ["hatchling"] - -[dependency-groups] -codegen = ["flext-infra"] -dev = [ - "actionlint-py>=1.7.12.24", - "autoflake>=2.3.1", - "bandit>=1.8", - "black>=25.1", - "blacken-docs>=1.19", - "code-review-graph[all,embeddings]==2.3.6", - "codespell>=2.3", - "deptry>=0.23", - "django-stubs>=6.0.6", - "factory-boy>=3.3.1", - "faker>=37.4", - "flext-tests", - "hypothesis>=6.157.2", - "isort>=8.0.1", - "matplotlib-stubs>=0.3", - "mkdocs>=1.6", - "mkdocs-awesome-pages-plugin>=2.9", - "mkdocs-encryptcontent-plugin>=2", - "mkdocs-exclude>=1.0.2", - "mkdocs-get-deps>=0.2", - "mkdocs-git-revision-date-localized-plugin>=1.2", - "mkdocs-literate-nav>=0.6", - "mkdocs-macros-plugin>=1", - "mkdocs-material>=9.5", - "mkdocs-material-extensions>=1.3.1", - "mkdocs-mermaid2-plugin>=1.1", - "mkdocs-minify-plugin>=0.7", - "mkdocs-print-site-plugin>=0.8", - "mkdocs-redirects>=1.2", - "mkdocs-section-index>=0.3.12", - "mkdocs-versioning>=0.2", - "mkdocstrings>=0.24", - "mkdocstrings-python>=1.7", - "mypy>=2.3.0", - "pip-audit>=2.10.1", - "pre-commit>=4.6.0", - "pylint>=3.3", - "pyrefly>=1.1.1", - "pyright>=1.1.411", - "pytest>=8.4", - "pytest-benchmark>=5.1", - "pytest-clarity>=1.0.1", - "pytest-codeblocks>=0.17.0", - "pytest-cov>=6.2", - "pytest-deadfixtures>=2.2.1", - "pytest-env>=1.1.5", - "pytest-markdown-docs>=0.9.2", - "pytest-mock>=3.14", - "pytest-randomly>=3.16", - "pytest-sugar>=1", - "pytest-timeout>=2.4", - "pytest-xdist>=3.8", - "pyupgrade>=3.19", - "radon>=6.0.1", - "ruff>=0.12.3", - "types-cachetools>=6.2", - "types-cffi>=2.0", - "types-click>=7.1", - "types-defusedxml>=0.7", - "types-docker>=7.2.0.20260720", - "types-flask>=1.1.6", - "types-jsonschema>=4.26", - "types-ldap3>=2.9.13.20250622", - "types-paramiko>=4.0", - "types-protobuf>=6.30.2.20250703", - "types-psutil>=7", - "types-psycopg2>=2.9.21.20250718", - "types-pyasn1>=0.6", - "types-pyopenssl>=24.1", - "types-python-dateutil>=2.9", - "types-pyyaml>=6.0.12.20260518", - "types-redis>=4.6", - "types-requests>=2.32.4", - "types-setuptools>=80.9", - "types-tabulate>=0.10", - "types-toml>=0.10.8.20260518", - "vulture>=2.13", - "yamlfix>=1.19.1,<2", -] -workspace = [ - "flext-api", - "flext-auth", - "flext-cli", - "flext-core", - "flext-db-oracle", - "flext-dbt-ldap", - "flext-dbt-ldif", - "flext-dbt-oracle", - "flext-dbt-oracle-wms", - "flext-grpc", - "flext-infra", - "flext-ldap", - "flext-ldif", - "flext-meltano", - "flext-observability", - "flext-oracle-oic", - "flext-oracle-wms", - "flext-plugin", - "flext-quality", - "flext-tap-ldap", - "flext-tap-ldif", - "flext-tap-oracle", - "flext-tap-oracle-oic", - "flext-tap-oracle-wms", - "flext-target-ldap", - "flext-target-ldif", - "flext-target-oracle", - "flext-target-oracle-oic", - "flext-target-oracle-wms", - "flext-tests", - "flext-web", -] - # [CUSTOM] project metadata [project] classifiers = [ @@ -174,6 +53,11 @@ Documentation = "https://docs.flext.sh" Homepage = "https://github.com/flext-sh/flext" Repository = "https://github.com/flext-sh/flext" +# [MANAGED] build system +[build-system] +build-backend = "hatchling.build" +requires = ["hatchling"] + # [MANAGED] codespell [tool.codespell] check-filenames = true @@ -2126,11 +2010,14 @@ root = "flext-web/tests" # [MANAGED] pytest [tool.pytest.ini_options] addopts = [ + "--benchmark-disable", + "--dist=worksteal", "--durations=10", "--markdown-docs", - "--session-timeout=60", + "--session-timeout=300", "--strict-markers", - "--timeout=10", + "--timeout=30", + "-n=4", ] filterwarnings = [ "error", @@ -2480,3 +2367,119 @@ line_length = 88 preserve_quotes = true section_whitelines = 1 whitelines = 1 + +[dependency-groups] +codegen = ["flext-infra"] +dev = [ + "actionlint-py>=1.7.12.24", + "autoflake>=2.3.1", + "bandit>=1.8", + "black>=25.1", + "blacken-docs>=1.19", + "code-review-graph[all,embeddings]==2.3.6", + "codespell>=2.3", + "deptry>=0.23", + "django-stubs>=6.0.6", + "factory-boy>=3.3.1", + "faker>=37.4", + "flext-tests", + "hypothesis>=6.157.2", + "isort>=8.0.1", + "matplotlib-stubs>=0.3", + "mkdocs>=1.6", + "mkdocs-awesome-pages-plugin>=2.9", + "mkdocs-encryptcontent-plugin>=2", + "mkdocs-exclude>=1.0.2", + "mkdocs-get-deps>=0.2", + "mkdocs-git-revision-date-localized-plugin>=1.2", + "mkdocs-literate-nav>=0.6", + "mkdocs-macros-plugin>=1", + "mkdocs-material>=9.5", + "mkdocs-material-extensions>=1.3.1", + "mkdocs-mermaid2-plugin>=1.1", + "mkdocs-minify-plugin>=0.7", + "mkdocs-print-site-plugin>=0.8", + "mkdocs-redirects>=1.2", + "mkdocs-section-index>=0.3.12", + "mkdocs-versioning>=0.2", + "mkdocstrings>=0.24", + "mkdocstrings-python>=1.7", + "mypy>=2.3.0", + "pip-audit>=2.10.1", + "pre-commit>=4.6.0", + "pylint>=3.3", + "pyrefly>=1.1.1", + "pyright>=1.1.411", + "pytest>=8.4", + "pytest-benchmark>=5.1", + "pytest-clarity>=1.0.1", + "pytest-codeblocks>=0.17.0", + "pytest-cov>=6.2", + "pytest-deadfixtures>=2.2.1", + "pytest-env>=1.1.5", + "pytest-markdown-docs>=0.9.2", + "pytest-mock>=3.14", + "pytest-randomly>=3.16", + "pytest-sugar>=1", + "pytest-timeout>=2.4", + "pytest-xdist>=3.8", + "pyupgrade>=3.19", + "radon>=6.0.1", + "ruff>=0.12.3", + "types-cachetools>=6.2", + "types-cffi>=2.0", + "types-click>=7.1", + "types-defusedxml>=0.7", + "types-docker>=7.2.0.20260720", + "types-flask>=1.1.6", + "types-jsonschema>=4.26", + "types-ldap3>=2.9.13.20250622", + "types-paramiko>=4.0", + "types-protobuf>=6.30.2.20250703", + "types-psutil>=7", + "types-psycopg2>=2.9.21.20250718", + "types-pyasn1>=0.6", + "types-pyopenssl>=24.1", + "types-python-dateutil>=2.9", + "types-pyyaml>=6.0.12.20260518", + "types-redis>=4.6", + "types-requests>=2.32.4", + "types-setuptools>=80.9", + "types-tabulate>=0.10", + "types-toml>=0.10.8.20260518", + "vulture>=2.13", + "yamlfix>=1.19.1,<2", +] +workspace = [ + "flext-api", + "flext-auth", + "flext-cli", + "flext-core", + "flext-db-oracle", + "flext-dbt-ldap", + "flext-dbt-ldif", + "flext-dbt-oracle", + "flext-dbt-oracle-wms", + "flext-grpc", + "flext-infra", + "flext-ldap", + "flext-ldif", + "flext-meltano", + "flext-observability", + "flext-oracle-oic", + "flext-oracle-wms", + "flext-plugin", + "flext-quality", + "flext-tap-ldap", + "flext-tap-ldif", + "flext-tap-oracle", + "flext-tap-oracle-oic", + "flext-tap-oracle-wms", + "flext-target-ldap", + "flext-target-ldif", + "flext-target-oracle", + "flext-target-oracle-oic", + "flext-target-oracle-wms", + "flext-tests", + "flext-web", +] From e0d1334f8ee375bb8ff548f7e69e1da14287b216 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Wed, 29 Jul 2026 18:41:37 -0300 Subject: [PATCH 008/165] chore(workspace): publish 0.12.0-dev member gitlink baseline --- flext-api | 2 +- flext-auth | 2 +- flext-cli | 2 +- flext-core | 2 +- flext-db-oracle | 2 +- flext-dbt-ldap | 2 +- flext-dbt-ldif | 2 +- flext-dbt-oracle | 2 +- flext-dbt-oracle-wms | 2 +- flext-grpc | 2 +- flext-infra | 2 +- flext-ldap | 2 +- flext-ldif | 2 +- flext-meltano | 2 +- flext-observability | 2 +- flext-oracle-oic | 2 +- flext-oracle-wms | 2 +- flext-plugin | 2 +- flext-quality | 2 +- flext-tap-ldap | 2 +- flext-tap-ldif | 2 +- flext-tap-oracle | 2 +- flext-tap-oracle-oic | 2 +- flext-tap-oracle-wms | 2 +- flext-target-ldap | 2 +- flext-target-ldif | 2 +- flext-target-oracle | 2 +- flext-target-oracle-oic | 2 +- flext-target-oracle-wms | 2 +- flext-tests | 2 +- flext-web | 2 +- 31 files changed, 31 insertions(+), 31 deletions(-) diff --git a/flext-api b/flext-api index c02ceccd2..2fccf41fb 160000 --- a/flext-api +++ b/flext-api @@ -1 +1 @@ -Subproject commit c02ceccd2f9226357f24572b9d9a7614274aa672 +Subproject commit 2fccf41fbfa112ce74a4d214085c893ab592564e diff --git a/flext-auth b/flext-auth index 44e9971e9..5c8e751f7 160000 --- a/flext-auth +++ b/flext-auth @@ -1 +1 @@ -Subproject commit 44e9971e943558c415020ab3ee01d89318436176 +Subproject commit 5c8e751f72ecebfb8a7b3fad683651955ebc1481 diff --git a/flext-cli b/flext-cli index cbe851dcf..644e19775 160000 --- a/flext-cli +++ b/flext-cli @@ -1 +1 @@ -Subproject commit cbe851dcf23408489e1e1c0301245bf3dba68b4f +Subproject commit 644e197758974aa88b03782e6f18e9d689907d44 diff --git a/flext-core b/flext-core index 4cf57b608..0f0c90c18 160000 --- a/flext-core +++ b/flext-core @@ -1 +1 @@ -Subproject commit 4cf57b608a0d4d56bd4a820336c7ef0433cf9105 +Subproject commit 0f0c90c182ae78724797a3696cbd98a501b01b0d diff --git a/flext-db-oracle b/flext-db-oracle index dadbcb3b8..3a76d3fe0 160000 --- a/flext-db-oracle +++ b/flext-db-oracle @@ -1 +1 @@ -Subproject commit dadbcb3b82192d1972d4f1841c0c7c8c70b55061 +Subproject commit 3a76d3fe078d968c3c60ca3bda238d2150f98195 diff --git a/flext-dbt-ldap b/flext-dbt-ldap index 95db12e1e..2f43537ab 160000 --- a/flext-dbt-ldap +++ b/flext-dbt-ldap @@ -1 +1 @@ -Subproject commit 95db12e1e55c7261575713809381df9446ff489a +Subproject commit 2f43537ab628f5a71b05e142081bdc57a3e28181 diff --git a/flext-dbt-ldif b/flext-dbt-ldif index b2f74657b..f0a80613c 160000 --- a/flext-dbt-ldif +++ b/flext-dbt-ldif @@ -1 +1 @@ -Subproject commit b2f74657b2434c461b68bb51313833bd679fee9c +Subproject commit f0a80613cd718e295c49a17f723a8e8a00d9b25d diff --git a/flext-dbt-oracle b/flext-dbt-oracle index 7fbb8012f..e4ae4c1b5 160000 --- a/flext-dbt-oracle +++ b/flext-dbt-oracle @@ -1 +1 @@ -Subproject commit 7fbb8012fa697fcbf5b8229767294cdd9f3ca5a5 +Subproject commit e4ae4c1b5c4914c6cebc77474eee7dc16f8d6d6d diff --git a/flext-dbt-oracle-wms b/flext-dbt-oracle-wms index 5d55c890d..f031370d8 160000 --- a/flext-dbt-oracle-wms +++ b/flext-dbt-oracle-wms @@ -1 +1 @@ -Subproject commit 5d55c890defe200affad3e149b2e1ac641e49b92 +Subproject commit f031370d8c309d01a0cfb4a31aaeffc7a5df4312 diff --git a/flext-grpc b/flext-grpc index cc8537d3c..8564c63dc 160000 --- a/flext-grpc +++ b/flext-grpc @@ -1 +1 @@ -Subproject commit cc8537d3c732ec5108f84d606678bcdccf4e3c6f +Subproject commit 8564c63dcdbcd32fdc3b8c08ac5fe1b254263857 diff --git a/flext-infra b/flext-infra index d3e129257..b50d431a3 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit d3e129257a2034f026bf0b4dcda436b779fd77f4 +Subproject commit b50d431a3b95d75358a96988189c5366ea7581a0 diff --git a/flext-ldap b/flext-ldap index ebbed59c4..fb470ba60 160000 --- a/flext-ldap +++ b/flext-ldap @@ -1 +1 @@ -Subproject commit ebbed59c4f79ad6a3d1992c0cd3d86e9b322380d +Subproject commit fb470ba605ab02839b7501bad77ed0a55fc87f92 diff --git a/flext-ldif b/flext-ldif index e5b5be397..926cf8989 160000 --- a/flext-ldif +++ b/flext-ldif @@ -1 +1 @@ -Subproject commit e5b5be3973c4428afa7949179ca087d9fb78cfed +Subproject commit 926cf89896861f68feeaa4fb2c2f8c8c80752edc diff --git a/flext-meltano b/flext-meltano index 761317c00..2272bb5db 160000 --- a/flext-meltano +++ b/flext-meltano @@ -1 +1 @@ -Subproject commit 761317c00607b5ae6357c1d7174cee075495893a +Subproject commit 2272bb5db4fc05b92ad9af081a06802a5d72592e diff --git a/flext-observability b/flext-observability index 666ab447a..ed089dc12 160000 --- a/flext-observability +++ b/flext-observability @@ -1 +1 @@ -Subproject commit 666ab447a9a112338a564bf0962dab1e4f6f5c96 +Subproject commit ed089dc12f1428a596de17a038e93a4d01b781a2 diff --git a/flext-oracle-oic b/flext-oracle-oic index 6e67d6d94..9bed1a1e6 160000 --- a/flext-oracle-oic +++ b/flext-oracle-oic @@ -1 +1 @@ -Subproject commit 6e67d6d940f860c30a3fe6d1a9ccc4b2c03da338 +Subproject commit 9bed1a1e69c312f840d14296c4ca717db91f56e8 diff --git a/flext-oracle-wms b/flext-oracle-wms index 9e1bf17d8..5ce711f6a 160000 --- a/flext-oracle-wms +++ b/flext-oracle-wms @@ -1 +1 @@ -Subproject commit 9e1bf17d865b06db813a24df54225390df2e17c1 +Subproject commit 5ce711f6a91fd1451bb2adb5be3d1f84efc47a4e diff --git a/flext-plugin b/flext-plugin index 78f7d9dc5..5a30a1f98 160000 --- a/flext-plugin +++ b/flext-plugin @@ -1 +1 @@ -Subproject commit 78f7d9dc5e8fe6b2f22bd536e1f399e52c517c80 +Subproject commit 5a30a1f9819f90dee8fc54bd38ade3bbd60663d6 diff --git a/flext-quality b/flext-quality index 0150ba9ec..23adcd52a 160000 --- a/flext-quality +++ b/flext-quality @@ -1 +1 @@ -Subproject commit 0150ba9ecf30326ea910b54547d6c5218ce3e195 +Subproject commit 23adcd52a1800209137b113e6809187f82eca6c3 diff --git a/flext-tap-ldap b/flext-tap-ldap index 9c224693b..3d677d57d 160000 --- a/flext-tap-ldap +++ b/flext-tap-ldap @@ -1 +1 @@ -Subproject commit 9c224693b7f5caca8a34a1a0b7d969d7ca11c9c5 +Subproject commit 3d677d57d4dd0473ed5ea0168240d7bd948cc454 diff --git a/flext-tap-ldif b/flext-tap-ldif index 1fe94ab7f..24d884acc 160000 --- a/flext-tap-ldif +++ b/flext-tap-ldif @@ -1 +1 @@ -Subproject commit 1fe94ab7f4e184924faca098274bef6fd143e675 +Subproject commit 24d884accd9cca72f6beeb9c44d3bf5592e9edc7 diff --git a/flext-tap-oracle b/flext-tap-oracle index 9c6623dca..939ae2a33 160000 --- a/flext-tap-oracle +++ b/flext-tap-oracle @@ -1 +1 @@ -Subproject commit 9c6623dcafb3c2a606599c32a6f7303b9881a373 +Subproject commit 939ae2a337d2a77bc5709bb0566c9410eef245c2 diff --git a/flext-tap-oracle-oic b/flext-tap-oracle-oic index ba89ff439..3dd5d1c61 160000 --- a/flext-tap-oracle-oic +++ b/flext-tap-oracle-oic @@ -1 +1 @@ -Subproject commit ba89ff439b5d868b8dc2c565a4f1be025b2c0fa8 +Subproject commit 3dd5d1c6119306aa54cb44d6ff8568bf04346580 diff --git a/flext-tap-oracle-wms b/flext-tap-oracle-wms index d7d47c4ea..2d835231d 160000 --- a/flext-tap-oracle-wms +++ b/flext-tap-oracle-wms @@ -1 +1 @@ -Subproject commit d7d47c4ea3ede94b3ec2f28c29b65cb4d912ef97 +Subproject commit 2d835231ddf5a2bfd0ac92cc684bf4d73038f137 diff --git a/flext-target-ldap b/flext-target-ldap index 49e8cd2db..9658cc711 160000 --- a/flext-target-ldap +++ b/flext-target-ldap @@ -1 +1 @@ -Subproject commit 49e8cd2db389cb02bd2f898c0fa651b3f1fb2f8e +Subproject commit 9658cc711c3a10d0d2310b246d69e5a92a5ac70e diff --git a/flext-target-ldif b/flext-target-ldif index 8076272c8..dad09b98c 160000 --- a/flext-target-ldif +++ b/flext-target-ldif @@ -1 +1 @@ -Subproject commit 8076272c829c35944a001e0a094694d92ca46bfe +Subproject commit dad09b98ca41a132c98a33952f25b2e7538fde73 diff --git a/flext-target-oracle b/flext-target-oracle index 02e26386a..c3b646ca3 160000 --- a/flext-target-oracle +++ b/flext-target-oracle @@ -1 +1 @@ -Subproject commit 02e26386aad49a75d45bf5adb761236a036a554d +Subproject commit c3b646ca36895a92ab036b6d0ac1d6e7d6554548 diff --git a/flext-target-oracle-oic b/flext-target-oracle-oic index b891a91e4..f7b089749 160000 --- a/flext-target-oracle-oic +++ b/flext-target-oracle-oic @@ -1 +1 @@ -Subproject commit b891a91e4f48fb2aa08433988f0bdc0cf554fb22 +Subproject commit f7b08974952acf23b9e5fbd801e60dca3f6ef65d diff --git a/flext-target-oracle-wms b/flext-target-oracle-wms index 8959600e2..51b94f1df 160000 --- a/flext-target-oracle-wms +++ b/flext-target-oracle-wms @@ -1 +1 @@ -Subproject commit 8959600e28ac6e63dfcadc095bab72e7f89af674 +Subproject commit 51b94f1dfaa34f4a08dae97c5920305906655576 diff --git a/flext-tests b/flext-tests index 2de7a0204..c3c97592c 160000 --- a/flext-tests +++ b/flext-tests @@ -1 +1 @@ -Subproject commit 2de7a0204ef587716e076370d079c60e48da7945 +Subproject commit c3c97592c17db0805ae7c53053024c958903e0d3 diff --git a/flext-web b/flext-web index f37d3da05..3e604c0f6 160000 --- a/flext-web +++ b/flext-web @@ -1 +1 @@ -Subproject commit f37d3da05ef9fb55aa119c4b19490da5dc1a6bdd +Subproject commit 3e604c0f63975af8af48d444dd59b8da8e0b556d From eca0da85db1baa72577de943968019465c6422a4 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Wed, 29 Jul 2026 18:55:15 -0300 Subject: [PATCH 009/165] chore(deps): advance flext-cli, flext-core, flext-infra pointers on 0.12.0-dev Pulls in: - flext-cli pyproject fix (remove duplicated project metadata) - flext-core result construction mixin return-type fix - flext-infra docs-scope standalone-project fix --- .agents/commands/flext-law.md | 17 +- .agents/prompts/continuation-monopoly.md | 5 +- .agents/provider.toml | 1 - .agents/skills/flext-context-routing/SKILL.md | 37 +- .../skills/flext-inviolable-rules/SKILL.md | 96 -- .agents/skills/flext-law/SKILL.md | 136 +-- .../flext-aggressive-scale-refactor.prompt.md | 5 +- ...t-jsonvalue-session-continuation.prompt.md | 7 +- AGENTS.md | 167 +-- ...beads-governance-reorganization-handoff.md | 1049 +++++++++++++++++ ...governance-beads-execution-continuation.md | 853 ++++++++++++++ 11 files changed, 2017 insertions(+), 356 deletions(-) delete mode 100644 .agents/skills/flext-inviolable-rules/SKILL.md create mode 100644 docs/superpowers/plans/2026-07-29-flext-beads-governance-reorganization-handoff.md create mode 100644 docs/superpowers/plans/2026-07-29-flext-governance-beads-execution-continuation.md diff --git a/.agents/commands/flext-law.md b/.agents/commands/flext-law.md index 4ef53d2b2..7272f0d45 100644 --- a/.agents/commands/flext-law.md +++ b/.agents/commands/flext-law.md @@ -1,9 +1,14 @@ # FLEXT session router -Read `.agents/skills/flext-context-routing/SKILL.md` first. It is the sole -always-loaded FLEXT skill and selects the applicable entries from -`surfaces.on_demand` in `.agents/provider.toml`. +Compose these exact authorities in order: -Load `.agents/skills/flext-law/SKILL.md` for FLEXT-law work and -`.agents/skills/flext-inviolable-rules/SKILL.md` for governance. Do not eagerly -load undeclared local surfaces. +1. `~/.agents/skills/inviolable-rules/SKILL.md` +2. `~/.agents/skills/make-check/SKILL.md` +3. `.agents/skills/flext-context-routing/SKILL.md` +4. `.agents/skills/flext-law/SKILL.md` +5. `~/.agents/skills/verification-loop/SKILL.md` at each completion boundary + +The three global skills own generic execution governance. FLEXT owns the local +`flext-law` domain delta. AI Hub may distribute these surfaces but may not +redefine either owner. Fail closed when an exact path is missing; never resolve +an identically named skill from another catalog or branch. diff --git a/.agents/prompts/continuation-monopoly.md b/.agents/prompts/continuation-monopoly.md index 225477010..cb5d4fd06 100644 --- a/.agents/prompts/continuation-monopoly.md +++ b/.agents/prompts/continuation-monopoly.md @@ -12,7 +12,10 @@ Read, in order: 2. `/home/marlonsc/.agents/UNIVERSAL_CORE.md` 3. `/home/marlonsc/flext/AGENTS.md` 4. `/home/marlonsc/flext/.agents/skills/flext-law/SKILL.md` -5. `/home/marlonsc/flext/.agents/skills/flext-inviolable-rules/SKILL.md` +5. `/home/marlonsc/.agents/skills/inviolable-rules/SKILL.md` +6. `/home/marlonsc/.agents/skills/make-check/SKILL.md` +7. `/home/marlonsc/.agents/skills/verification-loop/SKILL.md` + ## Operating contract diff --git a/.agents/provider.toml b/.agents/provider.toml index bf9f50d7e..0ad2d8d90 100644 --- a/.agents/provider.toml +++ b/.agents/provider.toml @@ -13,5 +13,4 @@ always = [ ] on_demand = [ ".agents/skills/flext-law/SKILL.md", - ".agents/skills/flext-inviolable-rules/SKILL.md", ] diff --git a/.agents/skills/flext-context-routing/SKILL.md b/.agents/skills/flext-context-routing/SKILL.md index 26d772336..78effbf2d 100644 --- a/.agents/skills/flext-context-routing/SKILL.md +++ b/.agents/skills/flext-context-routing/SKILL.md @@ -1,25 +1,32 @@ --- name: flext-context-routing -description: Route FLEXT Python repository and workspace tasks after flext-core dependency detection. Use for FLEXT workspace detection, local skill selection, MRO facade work, governance, imports, or shared test fixtures. +description: Route FLEXT repositories through global execution skills and the branch-matched local flext-law domain delta after flext-core dependency detection. --- # FLEXT Context Routing -Read this skill first. It is the sole always-loaded local FLEXT surface and -selects only the on-demand law needed for the current task. +This is the sole always-loaded local FLEXT surface. It selects the exact +branch-matched FLEXT law without duplicating universal execution governance. -## Routing +## Required composition -- Load `flext-law` for FLEXT implementation, review, migration, refactoring, - validation, generated surfaces, or architecture work. -- Load `flext-inviolable-rules` for governance, Beads coordination, shared - worktree safety, completion gates, evidence, handoff, commit, or closure. -- Load both when FLEXT-law work also changes repository state. +1. Read `~/.agents/skills/inviolable-rules/SKILL.md`. +2. Before build, generation, docs, checks, tests, or diagnosis, read + `~/.agents/skills/make-check/SKILL.md`. +3. For every FLEXT task, read the exact local + `.agents/skills/flext-law/SKILL.md`. +4. At every completion boundary, read + `~/.agents/skills/verification-loop/SKILL.md`. -## Workspace Rules +Fail closed if a required file is absent. Never resolve `flext-law` by an +unqualified catalog name, from `main`, or from another checkout. -- Preserve facade direction `c -> t -> p -> m -> u`. -- Reverse imports are declaration-only and must remain under `TYPE_CHECKING`. -- `flext-tests` owns generic fixtures; do not create package-local duplicates. -- Do not load a local skill that is absent from `surfaces.on_demand` in - `.agents/provider.toml`. +## Detection and scope + +- Activate when the workspace provider marker or dependency graph contains + `flext-core`. +- In workspace mode, use the active workspace root and its checked-out law. +- In standalone mode, use the FLEXT root law pinned to the same branch or + release; never fall back to `main`. +- Load only local surfaces declared in `.agents/provider.toml`. Global skills + remain owned by `~/.agents` and are not copied into the local provider. diff --git a/.agents/skills/flext-inviolable-rules/SKILL.md b/.agents/skills/flext-inviolable-rules/SKILL.md deleted file mode 100644 index 1ed3010be..000000000 --- a/.agents/skills/flext-inviolable-rules/SKILL.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -name: flext-inviolable-rules -description: "Enforce FLEXT's fail-closed task-completion rules: healthy environment, required root-Make quality gates, manual QA, Bead evidence, and no broken WIP." ---- - -# FLEXT Inviolable Rules - -## Before mutation - -1. Read root `AGENTS.md` and `bd show --json`. -2. Inspect `git status` at the root and affected submodule. Treat all existing - changes as provenance owned by someone unless the live Bead proves yours. -3. Identify the public surface to manually exercise and the exact root-Make - gates that will prove the task complete. - -## Mandatory three-boundary completion gate - -Any edit or automated adjustment (sync, codegen, auto-fix, or upstream merge) is -code and must remain an atomic in-lane correction. At each boundary, from the -applicable workspace root, run fresh canonical evidence: - -```bash -make check CHECK_GATES=lint,format,pyrefly -make check PROJECT= CHECK_GATES=pyright,mypy -make test PROJECT= -``` - -The affected-project commands cover every changed project and affected -consumer. Each boundary also requires real public-surface QA and generator / -consumer idempotence when generated outputs are involved. - -1. **Final worker lane:** after the final lane edit or automated adjustment. -2. **Updated worker lane:** before review, non-destructively merge the latest - target HEAD into the lane, then rerun all gates and QA. This is worker - pre-merge evidence. -3. **Original target:** after orchestrator integration, rerun all gates and QA - on the target branch. This is post-integration evidence and cannot be claimed - before integration. - -Use supported narrower Make targets only as iteration evidence, never to evade a -required gate. Never invoke bare `pytest`, `ruff`, `pyrefly`, `pyright`, `mypy`, -or `uv` as a bypass. - -## Fail closed - -- A non-zero required gate means the task remains open. -- Inconclusive, timeout-without-verdict, zero-project, partial-scope, or - stale-HEAD evidence is not green and blocks review or integration. -- Do not reduce coverage, add a suppression, skip a test, or call a baseline - failure harmless without current command evidence and an owning linked Bead. -- If the environment is broken, fix it forward in the task or create one - narrow `discovered-from` blocker; do not close the implementation as done. -- If an automated adjustment (sync, codegen, auto-fix, upstream merge) is - part of the task, validate it through the same root-Make gates and record - evidence in the Bead before closing. -- Manually use the changed public surface. Record the observed behavior, - command, cwd, exit code, and decisive output in the Bead. -- A test pinned to a config-owned value that breaks on a legitimate - config/settings change is a TEST DEFECT, never a reason to freeze config: - fix the test to read the SSOT or the generator round-trip (P0 — - cosmos-main-hr9e). This applies to all test tiers, markdown examples, and - docstring snippets validated by the pytest plugin. - -## Continuous green checkpoints - -- Keep checkpoints short and complete. After every state-changing stage, append - the current status, orientation, owned paths, remaining scope, and exact - command evidence to the Bead; never defer Beads metadata or evidence until - handoff. -- Resolve ordinary uncertainty from evidence and continue. Do not accumulate - hypothesis loops or leave completed, validated work only in the local tree. -- A checkpoint is green only after every applicable canonical root-Make gate - passes with zero lint errors and its manual public-surface check is recorded. - Never commit or push a red, partial, or incompletely evidenced checkpoint. -- When push authority exists, stage explicit owned paths, commit the completed - green checkpoint, and immediately fast-forward push the worker branch. Workers - never rebase, force-push, merge, or promote main; reviewed promotion belongs to - the orchestrator. -- Send the orchestrator a concise progress heartbeat at least every five minutes - while work remains active, naming the stage, latest evidence, next action, and - any changed risk or blocker. Reporting never pauses execution. -- Before any critical decision, stop, record the pending decision, options, and - consequences in the Bead, and ask the operator one precise confirmation - question. The minimum critical set is destructive or irreversible action, - competing public-contract or architecture outcomes, security or privacy, - production/release/main promotion, authority conflict, and material scope or - acceptance change. Never infer critical intent. - -## Handoff and landing - -Before a handoff, report the active Bead, changed paths, preserved concurrent -paths, manual-QA outcome, full required gate results, and the next exact -root-Make command. Without push authority, stop before committing or pushing and -record the blocker. With authority, do not hand off completed local WIP: land the -green checkpoint through an explicit-path commit and immediate fast-forward push, -then append the commit SHA and push evidence to the Bead. diff --git a/.agents/skills/flext-law/SKILL.md b/.agents/skills/flext-law/SKILL.md index 8bdb51c5b..f80ea3caf 100644 --- a/.agents/skills/flext-law/SKILL.md +++ b/.agents/skills/flext-law/SKILL.md @@ -1,102 +1,64 @@ --- name: flext-law -description: Apply the mandatory FLEXT engineering law for every implementation, review, migration, refactor, validation, or instruction-surface change. +description: Apply the FLEXT-only architecture, workspace, generation, import, and fleet delta over canonical global execution governance. --- # FLEXT Law -## Authority and scope +## Composition -1. Read root `AGENTS.md` before touching FLEXT files. -2. Treat the live Bead, validated configuration, public contract, and current - worktree as authority. Archives, backups, prior plans, and `0.20.0-dev` are - evidence only unless current project law explicitly adopts them. -3. Claim the owning Bead before mutation. Preserve concurrent work and fix - forward only: never reset, restore, clean, stash, rebase, or normalize - shared work. -4. Change one canonical owner, update its consumers in the same cycle, and - remove superseded paths. Do not add shims, aliases, fallbacks, suppression, - or old-plus-new coexistence. +This repository is the sole owner of the skill named `flext-law`. AI Hub +projects it but does not author it. Generic conduct, lane safety, evidence, +Make-command selection, and completion gates remain owned by: -## Engineering law +- `~/.agents/skills/inviolable-rules/SKILL.md` +- `~/.agents/skills/make-check/SKILL.md` +- `~/.agents/skills/verification-loop/SKILL.md` -- Follow Python 3.13, Clean Architecture, MRO composition, dependency - direction, typed public contracts, Pydantic v2, SSOT, YAGNI, DRY, SOLID, and - dependency injection as defined by root `AGENTS.md`. -- Declarations are data; behavior belongs in focused utilities, services, - facades, bases, or CLI layers. -- Generated files and deployed projections are outputs, never source owners. - Change their canonical generator/configuration and regenerate through the - root Make surface. -- Lint, type, and tooling exception lists (ruff `per-file-ignores`, mypy - `disabled-error-codes`, and equivalents) are code-generated from the - flext-infra codegen SSOT (`flext-infra/config/tooling.yaml`), never - hand-added to a consumer `pyproject.toml`. A required exception that the - SSOT lacks is a change to that SSOT plus a regenerate, not a local edit. -- Never silence a lint, type error, or gate to make it pass: no `noqa`, - `type: ignore`, per-file-ignore, or config carve-out added by an agent on - its own authority. Fix the flagged code at its canonical owner. If a - finding is a genuine false positive, stop and get explicit operator - approval before adding any suppression, then encode it in the codegen SSOT. -- Tests validate public behavior. Use existing fixture topology and imports; - do not create parallel test or configuration paths. -- **P0 — Tests validate config/settings changes by construction.** Tests - validate config/settings CONTRACTS, never frozen values: any expected value - that config owns (versions, verbs, paths, URLs, profiles, defaults) is read - from the same SSOT production reads (codegen.yaml/tooling.yaml/models) or - proven via generator round-trip. A test that breaks on a legitimate - config/settings change is a test defect; fix the test, never freeze the - configuration. Golden files pin STRUCTURE only and are regenerated via the - canonical make verb. This rule applies to all test tiers, markdown examples, - and docstring snippets validated by the pytest plugin (operator law - 2026-07-24, cosmos-main-hr9e). +Read those skills and root `AGENTS.md`; this file adds only FLEXT domain law. -## Automated adjustments and synchronization +## Architecture and imports -- Any automated adjustment — sync, codegen round-trip, auto-fix, or upstream - merge — is a code change and must pass the same gates as a manual change. -- Before claiming an automated adjustment is done, run the affected root-Make - gates (`make check` and `make test` for the touched projects) and record the - exact command, exit code, and decisive output in the owning Bead. -- Automated adjustments must be atomic within the lane: one coherent commit or - an explicit pathspec-bound set of commits, never open-ended `fixes` commits - that accumulate unrelated changes. -- Before merging the lane into the original branch (e.g. `0.12.0-dev`), run a - pre-merge validation of the whole lane against the current target: `make - check` and `make test` for every affected project. Do not merge if any gate - is red; fix forward inside the lane and re-validate. -- A merge from upstream/external into the lane must also be validated in the - lane context before it is considered absorbed. +- Dependency direction is `flext-core <- consumers`. `flext-infra` owns build, + conform, codegen, and policy; it is never a runtime dependency. +- Facades compose in strict order `c -> t -> p -> m -> u`, with operational + `r/e/x/h/d/s`. Reverse imports are `TYPE_CHECKING`-only. +- Each package has one thin `api.py` MRO facade and one simple generated root + `__init__.py` with automatic lazy public exports. Custom import routers, + eager alternatives, compatibility aliases, and duplicate facades are + forbidden. +- Service exposure follows the canonical short alias: `base.py` imports `s` + from `flext_core`, the package root lazily re-exports `s`, and consumers use + `from import s`. Never rename it to `core_s` or substitute an + alternative service-base import. +- Declaration layers are pure data. Behavior belongs in utilities, services, + bases, facades, or CLI layers. Owned data crosses boundaries through typed + Pydantic v2 models and project `t.*`/`p.*` contracts. -## Green checkpoint protocol +## Sources, generation, and commands -- Work in short, complete checkpoints. After every state-changing stage, update - the Bead with current status, orientation, owned paths, remaining scope, and - exact evidence; Beads stays continuous execution truth, not an end-of-task - summary. -- Resolve ordinary uncertainty promptly from current evidence. Do not accumulate - speculative hypotheses or validated local WIP while a checkpoint can be - completed and landed. -- A green checkpoint requires every applicable canonical root-Make gate to pass, - including zero lint errors. A red, partial, or incompletely evidenced state is - never committed or pushed as a checkpoint. -- Once a checkpoint is green and push authority exists, commit only explicit - owned paths and immediately fast-forward push the current worker branch. Do - not rebase, force-push, merge, or promote the main branch; reviewed promotion - remains orchestrator work. -- While work is active, send the orchestrator a concise progress heartbeat at - least every five minutes without pausing execution. Include the current stage, - latest evidence, next action, and any changed risk or blocker. -- At every critical decision point, stop before acting, record the pending - decision, options, and consequences in the Bead, and ask the operator one - precise confirmation question. Critical decisions include destructive or - irreversible actions, competing public-contract or architecture outcomes, - security or privacy choices, production/release/main promotion, authority - conflicts, and material scope or acceptance changes. Never infer critical - intent; evidence-resolve ordinary uncertainty without unnecessary interruption. +- `config/*.yaml`, typed settings, schemas, and generator policy are the SSOT. + Change the owner, regenerate every projection, and remove the superseded + implementation in the same cutover. +- Generated facets, root imports, managed `pyproject.toml` sections, Make + surfaces, CI, and documentation are never hand-edited at consumers. Their + canonical owner is `flext-infra` plus explicit `config/` overlays. +- Run setup, conform, codegen, docs, checks, tests, WAZA, and publication only + through the active workspace root Make dispatcher. A missing or broken verb + is repaired generically in `flext-infra`, then reused by workspace and + standalone projects; it is never bypassed. +- `flext-tests` owns reusable fixtures and behavior helpers. Packages consume + them through public facades rather than creating local copies. -## Completion discipline +## Fleet boundary -Use `.agents/skills/flext-inviolable-rules/SKILL.md` for every task closure. -No task succeeds while the affected environment is broken, a required gate is -failing, or the work is left as unowned WIP. +- First-party FLEXT members and standalone repositories consume the same + branch-matched law, Make control plane, and generated conventions. +- Third-party forks and content-only repositories are not FLEXT members: do + not mutate, lint, generate, or manage them. Required interaction is declared + as typed metadata or a bounded `config/` overlay. +- Workspace and standalone CI are generated once by `flext-infra conform`. + Exceptions are configuration overlays, never duplicate pipelines or custom + implementations. +- Historical branches, archives, generated outputs, and other worktrees are + evidence only. The active branch-matched canonical sources define behavior. diff --git a/.github/prompts/flext-aggressive-scale-refactor.prompt.md b/.github/prompts/flext-aggressive-scale-refactor.prompt.md index 9d35d8577..2ff693e39 100644 --- a/.github/prompts/flext-aggressive-scale-refactor.prompt.md +++ b/.github/prompts/flext-aggressive-scale-refactor.prompt.md @@ -33,7 +33,10 @@ Authoritative references, in mandatory load order: 10. [FLEXT Strict Typing](../../.agents/skills/flext-strict-typing/SKILL.md) 11. [FLEXT Patterns](../../.agents/skills/flext-patterns/SKILL.md) 12. [Testing Patterns](../../.agents/skills/testing-patterns/SKILL.md) -13. [FLEXT Quality Gates](../../.agents/skills/flext-inviolable-rules/SKILL.md) +13. [Global Inviolable Rules](/home/marlonsc/.agents/skills/inviolable-rules/SKILL.md) +14. [Global Make Check](/home/marlonsc/.agents/skills/make-check/SKILL.md) +15. [Global Verification Loop](/home/marlonsc/.agents/skills/verification-loop/SKILL.md) + Mandatory operating rules: diff --git a/.github/prompts/flext-strict-jsonvalue-session-continuation.prompt.md b/.github/prompts/flext-strict-jsonvalue-session-continuation.prompt.md index 23fc1ab73..0220a4c53 100644 --- a/.github/prompts/flext-strict-jsonvalue-session-continuation.prompt.md +++ b/.github/prompts/flext-strict-jsonvalue-session-continuation.prompt.md @@ -19,8 +19,11 @@ Mandatory load order: 8. [Pydantic v2 Patterns](../../.agents/skills/pydantic-v2-patterns/SKILL.md) 9. [FLEXT Strict Typing](../../.agents/skills/flext-strict-typing/SKILL.md) 10. [FLEXT Patterns](../../.agents/skills/flext-patterns/SKILL.md) -11. [FLEXT Quality Gates](../../.agents/skills/flext-inviolable-rules/SKILL.md) -12. [Testing Patterns](../../.agents/skills/testing-patterns/SKILL.md) when tests are touched +11. [Global Inviolable Rules](/home/marlonsc/.agents/skills/inviolable-rules/SKILL.md) +12. [Global Make Check](/home/marlonsc/.agents/skills/make-check/SKILL.md) +13. [Global Verification Loop](/home/marlonsc/.agents/skills/verification-loop/SKILL.md) + +14. [Testing Patterns](../../.agents/skills/testing-patterns/SKILL.md) when tests are touched Session recovery protocol: diff --git a/AGENTS.md b/AGENTS.md index 632971f44..ac6b05746 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -172,72 +172,26 @@ never allowed to hardcode, freeze, or implicitly assume the values that exist to -This file provides instructions and context for AI coding agents working on this project. +## Canonical Governance Composition -## Mandatory Governance Bootstrap +The newest operator instruction has highest authority. Below it, FLEXT composes +four non-competing layers: -Before any mutation, read in order: +| Layer | Canonical owner | Permitted content | +| --- | --- | --- | +| Global | `~/.agents/UNIVERSAL_CORE.md` and global `inviolable-rules`, `make-check`, and `verification-loop` skills | universal conduct, execution safety, command selection, evidence, and completion | +| FLEXT | this root file and `.agents/skills/flext-law/SKILL.md` | FLEXT architecture, imports, MRO/lazy exports, workspace Make control plane, generation, and fleet boundaries | +| Scope | the nearest member or standalone `AGENTS.md` | only narrower domain facts, public surfaces, and explicit exclusions | +| Execution | the active Bead | current intent, ownership, dependencies, phase, evidence, and stop condition | -1. The newest operator request. -2. `~/.agents/UNIVERSAL_CORE.md`. -3. `~/.agents/skills/inviolable-rules/SKILL.md`. -4. `~/.agents/skills/flext-law/SKILL.md`. -5. This file, the active Bead, and the current durable plan. +AI Hub distributes and validates managed projections; it does not become the +authority for global or FLEXT law. The local provider exposes the exact +branch-matched `.agents/skills/flext-law/SKILL.md`. A scoped file may strengthen +its parents but may not copy, weaken, rename, or replace them. -### Intent Card - -For every multi-step task, record before acting: - -- exact requested outcome; -- active workspace/worktree and branch; -- active parent and child Beads; -- current phase and observable stop condition; -- preserved WIP and concurrent writers; -- in-scope paths and explicit exclusions; -- required project-scoped and workspace-wide gates. - -Delegation and compaction must preserve this card verbatim. A new plan, traceback, -subagent result, or status request may not silently replace the operator's outcome. - -### Exclusive Operational Ownership - -- One coordinator owns the requested project outcome through integration, validation, and closure. -- Subagents receive disjoint, bounded scopes; they do not redefine acceptance, sequence, or completion. -- Do not start overlapping mutation teams for the same phase. -- A worker result, status report, locally green file, or elapsed time does not release ownership. -- Verify every delegated path and claim against the live worktree before accepting it. - -### Continuous-Green Completion Contract - -The project must never be declared complete or left between tasks in a task-created -broken or partial state. Before completing every task: - -1. The environment/bootstrap remains functional. -2. Global Ruff lint and format pass through the root Make dispatcher. -3. Global Pyrefly passes through the root Make dispatcher. -4. Pyright and memory-capped Mypy pass for every changed project and affected consumer. -5. Pytest passes for every changed project and affected integration surface. -6. Relevant workspace validation and real public-surface behavior pass. -7. Generated outputs are owner-driven and idempotent. -8. Beads contains exact commands, exit codes, decisive output, blockers, and remaining scope. - -Project-scoped gates are iteration evidence, not substitutes for the final global Ruff, -format, and Pyrefly baseline. No task closes with red imports, broken generation, -uncollected tests, unvalidated WIP, or a workaround masking the defect. - -### Fix-Forward Worktree Law - -- The active worktree root is the execution root; never assume `/home/marlonsc/flext` is the mutation target when - another worktree was selected. -- Preserve all existing root and submodule WIP. Never reset, restore, checkout, clean, stash, or overwrite unknown - changes. -- Re-read mutable files before editing and commit only explicit owned paths when Git authority is granted. -- Generated files change only through their canonical generator, config, schema, policy, or template owner. -- Status is a checkpoint, not a stopping condition. Continue until the intent card's observable stop condition holds or - one precise operator decision is required. - -For the lane contract that governs light-worker execution, see -[`docs/ways-of-working/worker-lane-contract.md`](docs/ways-of-working/worker-lane-contract.md). +Before FLEXT work, follow `.agents/commands/flext-law.md`. Missing, ambiguous, +or branch-mismatched authority fails closed; never fall back to `main`, a +historical branch, another worktree, or a same-named catalog entry. ## Issue Tracking with bd (beads) @@ -429,8 +383,10 @@ Each submodule's `AGENTS.md` links back to this file. Which link to follow depen Always pin `` to the SAME branch/release the package is built from (e.g. `0.12.0-dev`, or the release tag), never `main`/`master` — the governance law is versioned with the code. -Precedence is unchanged in both modes: this root law + the AI-HUB managed Universal Agent Law block override -submodule-local notes; the submodule file only *adds* domain specifics. +Composition is identical in both modes: global authority → this branch-matched +root and its local `flext-law` → the member's scope-only delta → the active +Bead. AI Hub only projects the managed sections. A member file adds domain +specifics and exclusions; it never copies or replaces either parent. ## Where to Look @@ -478,89 +434,6 @@ Python strictly `>=3.13,<3.14`. override with `make check WHAT=mypy MYPY_MEMORY_LIMIT_MB=8192`. Docs CI needs `uv sync --all-packages --all-groups --all-extras` for dev tools. -## Inviolable Delivery Governance - -These rules are mandatory for every FLEXT task. They strengthen the universal -law; no project-local instruction, Bead note, historical plan, agent, or -concurrent work may weaken them. - -### Healthy environment is a completion condition - -- Never close, defer as complete, hand off as complete, commit as complete, or - claim success while the affected project is broken or left in unowned WIP. - A task remains `in_progress` until it is fixed forward or blocked by an - explicit external dependency recorded in its Bead. -- Before closing an implementation task, manually exercise the changed public - surface: Make/CLI for workspace behavior, a minimal import/driver for a - library, or the applicable service/UI surface. Static gates alone do not - satisfy completion. -- Validate after the final edit, not merely before it. Any post-validation - edit invalidates prior green evidence. -- Do not lower coverage, suppress diagnostics, skip gates, or replace root - Make commands with direct tools to obtain a green result. Fix forward. - -### Required Python quality gates - -Run every command from the active workspace/worktree root using `make` only. - -1. **Global environment gates, after every implementation task:** - - ```bash - make check CHECK_GATES=lint,pyrefly - - ``` - - Ruff and Pyrefly must be healthy for the workspace. Existing debt is not a - reason to close new work: either resolve it in the owning Bead or keep the - current task open with a precise, linked blocker. -2. **Changed-scope gates, after every implementation task:** - - ```bash - make check PROJECT= CHECK_GATES=pyright,mypy - make test PROJECT= - ``` - - Use the narrowest supported root-Make target first, then widen to the - affected project when package boundaries, generated files, shared fixtures, - configuration, or public facades changed. -3. **Final task gate:** repeat the global Ruff/Pyrefly command and all - changed-scope Pyright, mypy, and pytest commands after the final change. - Record command, cwd, exit code, and decisive output in the owning Bead. - -If a required gate cannot run because the environment itself is broken, stop -.the task, preserve the worktree, create or update one narrow Bead for the -environment failure, and do not report the implementation as complete. - -### Tests must validate config and settings changes (P0) - -Tests are consumers of the config/settings SSOT, not frozen copies of it. -Any expected value owned by config or settings (versions, paths, URLs, verbs, -profiles, allowed lists, timeouts) must be read from the same source production -uses or proven through a generator round-trip. - -- A test that breaks on a legitimate config change is a test defect. -- Golden files and snapshots may pin structure only; they are regenerated via -the canonical make verb when config-driven values change. -- This rule applies to unit, integration, and e2e tests, plus markdown examples -and docstring snippets validated by the pytest plugin. - -See `docs/standards/testing.md` and `docs/standards/development.md` for the -detailed contract. - -### State ownership and handoff - -- Claim the live Bead before mutations. Beads are the sole task tracker; - `.beads/issues.jsonl` is never edited by hand. -- Re-read `bd show --json`, `git status`, and relevant submodule status - before a handoff or closure. Existing changes are provenance: do not reset, - restore, clean, stash, normalize, or silently include them. -- Use explicit-path atomic commits only when the user authorizes commits. - Never use `git add -A`, amend, force-push, or push without explicit - authorization. -- Handoffs must name changed paths, unresolved paths, exact validation status, - manual-QA result, active Bead, and the next root-Make command. A handoff is - not permission to leave an otherwise fixable broken environment behind. - ## Architecture Overview **Facade layering (strict order `c -> t -> p -> m -> u`)** composed via MRO from `flext-core`: diff --git a/docs/superpowers/plans/2026-07-29-flext-beads-governance-reorganization-handoff.md b/docs/superpowers/plans/2026-07-29-flext-beads-governance-reorganization-handoff.md new file mode 100644 index 000000000..1d6164a03 --- /dev/null +++ b/docs/superpowers/plans/2026-07-29-flext-beads-governance-reorganization-handoff.md @@ -0,0 +1,1049 @@ +# FLEXT 0.12.0-dev Governance, Beads, Documentation, and Fleet Convergence + +| Field | Value | +| --- | --- | +| Status | **Approved and executing** | +| Program key | `flext-012-conform-beads-docs` | +| Canonical integration branch | `0.12.0-dev` | +| Canonical workspace | Active root worktree for `flext` | +| Reused program umbrella | `mro-z89e` | +| Technical engine | `mro-wkii.17` | +| Root + 31 certification cohort | `mro-z89e.1`–`mro-z89e.32` | +| Stabilization/readiness | `mro-p68a` | +| Release boundary | `mro-e9j0` (tracked, not authorized for publication or promotion by this plan) | +| Primary execution truth | Beads, synchronized through its Dolt remote | +| Universal authority | `~/.agents` | +| FLEXT domain authority | The versioned FLEXT root governance on `0.12.0-dev` | +| Distribution owner | AI Hub, driven by canonical config, models, and templates | + +This document is the durable execution handoff for the program. It replaces +earlier draft assumptions attached to this path, including the obsolete +requirements to pin Beads to an older schema-incompatible release, downgrade a +schema, use a noncanonical multi-branch hierarchy, or treat planning as the +terminal outcome. The operator has approved the plan and started the program. +Every session resumes from the live Beads graph and this contract; neither a +chat transcript nor an agent's memory is an execution authority. + +## 1. Program outcome + +The program establishes one canonical FLEXT control plane that works, without +project-specific bypasses, in all of these environments: + +- the FLEXT superproject workspace; +- every first-party FLEXT subproject when dispatched from the workspace; +- every first-party FLEXT subproject when cloned and used standalone; +- external workspaces that consume the published FLEXT conventions; +- AI Hub distribution of universal and project governance; +- documentation generation, validation, publication, and WAZA conformance; +- Beads provisioning, namespace selection, graph governance, and durable + multi-session execution; +- strict Python public surfaces, including generated simple `__init__.py` + modules, automated lazy public exports, and lazy MRO/OO facades. + +The canonical owner is changed once, all consumers are migrated atomically, and +the superseded implementation is removed in the same delivery cycle. A passing +special case is not success. Success means the generic owner supports every +declared topology and every affected consumer is proven through its canonical +Make surface. + +## 2. Intent card + +### Requested outcome + +Reorganize FLEXT governance, Beads, documentation, generated project surfaces, +and fleet rollout into a self-directing program whose Beads remain sufficient +for execution across agents and sessions. The first priority is the governance +foundation: global law, FLEXT law, local scope law, and canonical AI Hub +propagation. + +### Active workspace and branch + +All FLEXT source work uses the active root workspace/worktree and branch +`0.12.0-dev`. Every slice begins by refreshing that branch with a fast-forward +pull and integrating live shared work fix-forward. Work is never based on +`main`, `0.20.0-dev`, an unrelated feature branch, or a historical worktree. + +### Active Beads + +The program does not create another umbrella epic. It reuses `mro-z89e` as the +approved program umbrella and coordinates four existing, non-competing +authorities: + +- `mro-wkii.17` owns the typed technical engine and provider cutover; +- `mro-z89e` owns program governance and rollout, while its existing + `.1`–`.32` cohort owns certification for the FLEXT root plus 31 governed + projects; +- `mro-p68a` owns stabilization and readiness evidence; +- `mro-e9j0` owns the release boundary, but this approved program does not + authorize a tag, artifact publication, release, or production promotion. + +The program key `flext-012-conform-beads-docs` is recorded as shared metadata on +the participating epics and leaves. Existing Bead identities are preserved +whenever they still represent one valid intent. Re-parenting and dependency +corrections are preferred over duplicate creation. + +### Current phase + +Phase P0 is governance convergence. No later phase may redefine global, FLEXT, +or local authority while P0 is unresolved. + +### Observable stop condition + +The program stops only when: + +1. the three-layer governance contract is canonical and propagated; +2. the live Beads graph matches the graph in this document and passes hygiene; +3. setup, conform, generation, documentation, and checks work generically from + the root Make dispatcher in workspace and standalone modes; +4. the documentation intake is exhausted one source file at a time; +5. all first-party FLEXT projects have been rolled out and validated; +6. external consumers have explicit callback Beads and validated integration; +7. every required commit is fast-forward pushed on `0.12.0-dev`; +8. readiness evidence is handed to `mro-p68a` and the unauthorized release + boundary is left explicitly gated in `mro-e9j0`; +9. Beads records the exact final evidence and contains no unowned program WIP. + +### Preserved work + +All dirty, untracked, committed, and concurrent work in the active root and its +first-party subprojects is input to fix-forward integration. It is never reset, +restored, cleaned, stashed, overwritten, or blamed. Mutable files are re-read +immediately before editing, and each commit contains explicit owned paths. + +### Explicit exclusions + +- Third-party fork submodules are topology references, not FLEXT-managed + projects. FLEXT automation must not mutate, lint, format, generate, configure, + commit, or push them. +- Fork participation is declared in `config/` only when a FLEXT tool needs a + bounded reference to them. Such configuration may exclude them from scans or + describe a read-only integration edge; it may not duplicate tool behavior. +- Dolt and GitHub-owned technical refs are not normalized as development + branches. +- Historical plans, archives, backups, caches, generated projections, and tool + homes are evidence, not live authority. +- Files and WIP owned by the parallel documentation feature lane are excluded + from Bead/feature/branch/worktree/PR reassociation and from source mutation in + the current reorganization slice. This durable plan, P0 governance, FLEXT + governance skills, and their AI Hub propagation remain in scope. The + documenter lane continues independently and consumes only landed canonical + behavior. + +## 3. Inviolable execution rules + +1. Work is root-cause, source-first, and fix-forward. +2. Beads is the execution truth for scope, status, dependencies, evidence, and + resumption. +3. One Bead represents one reviewable, independently green slice that fits + within a session with margin. +4. One implementation Bead owns one repository, one branch, and one worktree. +5. The orchestrator owns semantic Beads operations, sequencing, integration, + acceptance, and closure. Workers implement bounded, disjoint slices. +6. No old-and-new coexistence, fallback, shim, compatibility route, suppression, + hardcode, duplicated generator, or hand-edited projection survives a cutover. +7. Config, settings, schemas, and generators own configurable facts. Tests and + examples consume those owners; they never freeze today's values. +8. All setup, conform, code generation, documentation, formatting, linting, + typing, testing, and validation run through the root Make dispatcher. +9. A missing or broken canonical Make verb is repaired at its FLEXT Infra owner + before work continues; it is never bypassed with a direct tool command. +10. Every source commit is small, explicit-path, rebased by integration through + fast-forward pull rather than history rewriting, and pushed immediately. +11. No force push, amend, destructive checkout, reset, clean, or stash is part + of this program. +12. All code, comments, docstrings, templates, generated documentation, ADRs, + skills, and Bead execution contracts are written in English. + +## 4. P0 — canonical governance foundation + +P0 is the mandatory first delivery. Its purpose is to remove duplicated law and +make authority resolution deterministic in a workspace, a standalone project, +and an external consumer. + +### 4.1 Three-layer authority model + +Governance has exactly three composable layers: + +1. **Universal layer — `~/.agents`.** This is the sole universal authority for + inviolable engineering rules and reusable global skills. AI Hub distributes + and configures this layer but does not compete with it. +2. **FLEXT layer — root `AGENTS.md` and FLEXT routing skills.** This layer adds + only FLEXT domain architecture, canonical Make commands, facade rules, + project topology, required gates, and stricter delivery constraints. It + imports or composes universal skills; it does not copy their implementation. +3. **Scope layer — project or directory `AGENTS.md`.** This layer adds only + domain-specific scope, public surfaces, canonical owners, and additional + acceptance requirements. It points to the FLEXT layer and never republishes + either universal or FLEXT law. + +The newest explicit operator instruction remains supreme. Below it, universal +law is resolved before the FLEXT overlay, and the FLEXT overlay is resolved +before local additions. A lower layer may strengthen a rule for its scope but +may not weaken, shadow, fork, or restate a higher-layer implementation. + +### 4.2 FLEXT governance skills + +The governance skills on `0.12.0-dev` are reorganized around composition: + +- global `inviolable-rules`, `make-check`, and `verification-loop` remain the + reusable fail-closed execution, command-selection, evidence, and completion + contracts; +- FLEXT is the sole semantic owner of the versioned project-local + `.agents/skills/flext-law/SKILL.md`; AI Hub may project it but may not author + or duplicate it in the global catalog; +- project `flext-context-routing` detects FLEXT context and selects the exact + global generic paths plus the exact branch-matched local `flext-law`; +- the duplicated local `flext-inviolable-rules` implementation is removed; +- the duplicate AI Hub/global `flext-law` projection is removed by the AI Hub + owner, leaving no unqualified same-name alternative; +- detailed FLEXT architecture remains in the concise versioned FLEXT delta and + canonical references, never copied into generic global skills; +- generated skill projections carry ownership markers and are changed only at + the AI Hub or FLEXT generator source that owns them. + +Before mutation, search resolves the existing owner, provider manifest, +consumers, generated projections, and overlap. A skill with a canonical +equivalent is consolidated into that equivalent rather than forked. The final +surface has one owner per rule and one routing path per context. + +### 4.3 Canonical `AGENTS.md` forms + +AI Hub owns templates for three generated forms: + +#### FLEXT workspace root + +The root form contains: + +- the managed universal import or managed universal block, with provenance and + an integrity marker; +- the FLEXT domain overlay; +- workspace topology and root Make dispatch rules; +- Beads and fix-forward delivery contracts; +- links to canonical ADRs and standards. + +#### First-party FLEXT member + +The member form contains: + +- a generated pointer to the workspace root when used inside the superproject; +- a version-pinned pointer to the root governance on the same branch or release + when used standalone; +- only the member's domain scope, owners, and additional gates; +- no copied universal block and no copied FLEXT architecture chapter. + +The standalone pointer is pinned to the same branch or tag as the package. It +must never silently resolve to `main`. + +#### Non-FLEXT project or external consumer + +The external form contains: + +- the managed universal layer; +- its own project overlay; +- an explicit dependency or integration link to published FLEXT conventions + only when the project actually consumes FLEXT; +- no implication that FLEXT owns unrelated project governance. + +All three forms are generated from typed configuration and templates. Managed +regions are idempotent, local overlay regions are preserved, and the generator +fails closed on ambiguous ownership or an unrecognized layout. + +### 4.4 AI Hub propagation + +AI Hub delivers the governance model through its canonical inventory, typed +models, templates, and deployment service: + +1. inventory classifies every known project as universal-only, FLEXT root, + first-party FLEXT member, external FLEXT consumer, independent project, or + excluded third-party fork; +2. typed config selects an `AGENTS.md` profile and the permitted local overlay; +3. a single generator renders managed agent instructions and skill routing; +4. conform detects drift without mutating excluded repositories; +5. publication updates all declared projects deterministically; +6. a second generation produces no diff; +7. WAZA validates authority, links, skill metadata, examples, and publication + readiness through Make. + +AI Hub may distribute `~/.agents`, but the distributed universal content remains +owned by `~/.agents`. FLEXT owns FLEXT semantics. Scope projects own only their +local additions. Template conditionals select profiles; they do not duplicate +full governance implementations. + +### 4.5 P0 acceptance + +P0 is complete only when: + +- the canonical owner of every governance rule and skill is documented; +- duplicate FLEXT governance skill implementations are consolidated; +- all three `AGENTS.md` profiles are generated from one canonical mechanism; +- AI Hub inventory classifies every targeted project and every excluded fork; +- workspace and standalone FLEXT resolution select the same versioned law; +- generated output is idempotent; +- `make docs` performs the complete project documentation pipeline, including + WAZA and executable snippet validation; +- root Make checks pass for every changed repository; +- the Bead contains exact commands, working directories, exit codes, decisive + output, generated-path evidence, and manual resolution QA; +- each repository commit is pushed before the next repository rollout begins. + +## 5. Beads runtime and schema policy + +The program uses the newest schema-compatible official upstream `bd`, managed by +mise and the canonical environment setup. At planning time, the observed usable +binary was built from upstream main commit +`423afdcb2813e36b2bc4c96b07e0fc3516a34495` and operated with schema version 61. +That observation is evidence for resumption, not a permanent product constant. + +The following policies are binding: + +- release `1.1.2` is not selected merely because it is a numbered release; it + does not own the current schema requirement; +- the Dolt schema is never downgraded to accommodate an older executable; +- schema skew is never ignored; +- setup resolves the configured official upstream selector, verifies that the + executable understands the live schema, and exposes it through mise, direnv, + the project virtual environment, and Make; +- tests validate selector resolution, provenance, capability, and + schema-compatible behavior from typed config; they do not assert the observed + commit SHA or current schema number as a frozen literal; +- Beads is provisioned automatically for superprojects with first-party + submodules and for explicitly configured independent projects; +- the default Beads namespace is derived from the canonical project name; +- a config overlay may map an existing exceptional namespace, but may not + implement a second provisioning path; +- `.beads/issues.jsonl` is a passive export, never a sync or mutation protocol; +- Dolt pull precedes semantic graph mutation and Dolt push follows each + validated semantic batch. + +## 6. Canonical Beads graph + +### 6.1 Program topology + +The program uses existing authorities rather than nesting every concern under a +new umbrella: + +```text +P0 governance: global law -> FLEXT overlay -> scope overlay + \-> AI Hub canonical propagation + +mro-z89e [reused program umbrella and rollout authority] + -> P0 governance and documentation program coordination + -> existing .1-.32 certification cohort + -> integrated root + 31 certification + +mro-wkii.17 [technical engine tracked by the program] + -> typed topology and capabilities + -> conform, Make, toolchain, CI, and tracker projection + -> provider cutover and fixed point + +mro-p68a [stabilization and readiness] + -> compatibility and operational readiness evidence + +mro-e9j0 [release boundary] + -> consumes engine, certification, readiness, and convergence evidence + -> no publication, tag, or promotion without a later explicit operator order +``` + +`mro-wkii.17` and `mro-z89e` are not competing owners. The first produces the +provider contract; the second coordinates the program and certifies adoption +through its existing project-control cohort. `mro-p68a` certifies readiness. +`mro-e9j0` preserves release mechanics and the formal decision boundary without +authorizing release execution. + +### 6.2 Technical engine — `mro-wkii.17` + +`mro-wkii.17` is normalized as the technical epic: + +> **FLEXT 0.12 Generated Repository Control Plane — typed topology, conform, +> Make, managed toolchain, CI, tracker integration, and zero-legacy cutover** + +Its provider scope ends at a landed and tested internal contract on +`0.12.0-dev`; root + 31 rollout evidence remains outside it. + +| Existing Bead | Exclusive technical responsibility | +| --- | --- | +| `mro-wkii.17.35` | Typed topology/capability manifest and schema | +| `mro-wkii.17.41` | Bounded technical subepic for repository roles, conform surfaces, and tracker integration | +| `mro-wkii.17.36` | Canonical dispatcher and help contract | +| `mro-wkii.17.37` | Config-owned test runtime and performance | +| `mro-wkii.17.37.6` | Managed isolated environment and executable resolution, only under `.37` | +| `mro-wkii.17.42` | Strict repeatable CLI normalization | +| `mro-wkii.17.43` | Root-local dispatch, locking, and worktree behavior | + +After the live duplicate audit, `mro-wkii.17.41` owns only these missing +technical slices: + +1. restrictive typed repository-role classifier; +2. Beads/mise/direnv project projection consuming the AI Hub-provisioned tool; +3. generated operational surfaces, linked to existing Make, CI, provenance, and + setup owners rather than duplicating them; +4. workspace/member/standalone/external/fork topology and overlay matrix; +5. provider cutover, removal of legacy routes, real-consumer proof, and + second-apply fixed point. + +Existing setup and surface Beads, including `mro-d9d5.2`, `mro-to59`, +`mro-shxw`, `mro-pd8f.1`, `mro-pd8f.2`, `mro-jk1p`, `mro-sw2l.1`, +`mro-e9j0.7`, `mro-johh`, `mro-ydhf.1`, `mro-fi91`, `mro-bqt3.2`, +`mro-mwx1.1`, and `mro-re80.10`, are tracked or made exact dependencies after +live intent verification. No `.17.41` child reimplements an active owner. + +### 6.3 Program rollout and certification — `mro-z89e` + +`mro-z89e` is retained as: + +> **FLEXT 0.12.0-dev — Canonical Governance, Conform, Documentation, and Fleet +> Convergence** + +It is the reused program umbrella and rollout authority, not a second technical +engine. Its existing `.1`–`.32` cohort remains the root + 31 certification +surface. `mro-z89e.2` remains the `flext-infra` certification control and tracks +the technical result of `mro-wkii.17`. + +The existing 32 controls are preserved; another project-control cohort is not +created: + +| Control | Governed project | +| --- | --- | +| `mro-z89e.1` | FLEXT root | +| `mro-z89e.2` | `flext-infra` | +| `mro-z89e.3` | `flext-api` | +| `mro-z89e.4` | `flext-auth` | +| `mro-z89e.5` | `flext-cli` | +| `mro-z89e.6` | `flext-core` | +| `mro-z89e.7` | `flext-db-oracle` | +| `mro-z89e.8` | `flext-dbt-ldap` | +| `mro-z89e.9` | `flext-dbt-ldif` | +| `mro-z89e.10` | `flext-dbt-oracle` | +| `mro-z89e.11` | `flext-dbt-oracle-wms` | +| `mro-z89e.12` | `flext-grpc` | +| `mro-z89e.13` | `flext-ldap` | +| `mro-z89e.14` | `flext-ldif` | +| `mro-z89e.15` | `flext-meltano` | +| `mro-z89e.16` | `flext-observability` | +| `mro-z89e.17` | `flext-oracle-oic` | +| `mro-z89e.18` | `flext-oracle-wms` | +| `mro-z89e.19` | `flext-plugin` | +| `mro-z89e.20` | `flext-quality` | +| `mro-z89e.21` | `flext-tap-ldap` | +| `mro-z89e.22` | `flext-tap-ldif` | +| `mro-z89e.23` | `flext-tap-oracle` | +| `mro-z89e.24` | `flext-tap-oracle-oic` | +| `mro-z89e.25` | `flext-tap-oracle-wms` | +| `mro-z89e.26` | `flext-target-ldap` | +| `mro-z89e.27` | `flext-target-ldif` | +| `mro-z89e.28` | `flext-target-oracle` | +| `mro-z89e.29` | `flext-target-oracle-oic` | +| `mro-z89e.30` | `flext-target-oracle-wms` | +| `mro-z89e.31` | `flext-tests` | +| `mro-z89e.32` | `flext-web` | + +Each control is an inventory and certification owner. It records project +identity, namespace, remote, path, `0.12.0-dev` branch, repository role, Beads +ledger owner, overlay justification, immutable exclusions, generated surface +state, provider prerequisites, bounded defect children, first and second apply, +Make gates, real-consumer QA, and Git/PR/Dolt evidence. The control does not +become a mega implementation lane. + +### 6.4 Readiness and release boundary + +`mro-p68a` remains the stabilization/readiness program. It aggregates provider, +integration, compatibility, and operational evidence without owning publication +or consumer-side mutations. `mro-p68a.42` is reused as the bounded +rollout-readiness and callback aggregator when its live contract still matches; +`mro-p68a.38.1` remains the read-only compatibility registry and +`mro-p68a.38.2` remains provider compatibility documentation. + +`mro-e9j0` remains the release-boundary epic. Its existing technical children +retain version/tag SSOT, trusted workflow, multi-platform CI, runtime-cycle +removal, public bootstrap, and branch/worktree/gitlink convergence ownership. +This plan may reconcile their descriptions and dependencies, but it may not +publish an RC, create a tag, change a production release, or promote anything. +Those actions require a later explicit operator authorization. + +### 6.5 Existing Bead disposition + +| Existing Bead or range | Approved disposition | +| --- | --- | +| `mro-wkii.17` | Retain and normalize as the technical engine epic. | +| `mro-wkii.17.41` | Normalize as the bounded repository-role/conform/tracker technical subepic. | +| `mro-z89e` | Retain as the reused program umbrella and rollout authority. | +| `mro-z89e.1`–`.32` | Retain as the existing root + 31 certification controls. | +| `mro-z89e.2.1` | Move to `mro-whri` when its live intent confirms lazy MRO work. | +| `mro-whri` | Reuse as the strict architecture, code-generation, lazy-export, and MRO owner after overlap reconciliation. | +| `mro-1o6t` | Retain as documentation/governance; use matching governance leaves for P0 without mutating parallel feature-documentation WIP. | +| `mro-1o6t.1` and matching live children | Reuse for P0 where intent matches; split FLEXT and AI Hub implementation by repository. | +| `mro-p68a` and `mro-p68a.42` | Retain for readiness and callback aggregation. | +| `mro-e9j0` and `mro-e9j0.6` | Retain as release and convergence boundaries; do not execute publication or promotion. | +| `mro-bqt3`, `mro-whri`, `mro-xpdh` | Retain as distinct CI/validation, architecture, and test-architecture programs. | + +After live content absorption, the intended consolidation candidates are: + +| Origin | Canonical survivor or result | +| --- | --- | +| `mro-wkii.17.39`, `mro-5qfa` | Repository-role classifier under `mro-wkii.17.41` | +| `mro-y2c6` | `mro-jk1p` | +| `mro-ydhf.33` | `mro-z89e.32` | +| `mro-qr7g` | Provider owner `mro-fi91`, with rollout proof in `.1`–`.32` | +| `mro-p68a.34`, `mro-qb4y.8.4` | Generated-surfaces/provider-cutover slices under `mro-wkii.17.41` | +| `mro-wkii.17.33` | Split uniquely between `mro-e9j0.6` and `mro-bqt3` | + +After destination-ledger verification, the intended reassociations are: + +| Bead | Canonical destination | +| --- | --- | +| `mro-z89e.2.1` | `mro-whri`, when its live intent confirms strict lazy MRO/facade work | +| `mro-ydhf.1.1` | `mro-wkii.17.37`, when its live intent confirms test-runtime/performance ownership | +| `mro-re80.7` | AI Hub tracker execution, retaining a FLEXT callback for the provider contract | +| `mro-eznu` | Cosmos Main tracker, retaining only the FLEXT provider defect in FLEXT | +| `ai-hub-6doo.6` | AI Hub ledger; it is never imported into the FLEXT hierarchy | + +A cross-tracker reassociation preserves content and notes when supported, +removes invalid local dependency rows, recreates only valid destination-ledger +relationships, and closes the source with an exact moved-to callback. It does +not move consumer implementation into FLEXT or provider implementation into a +consumer. + +The former `0.20` routes `mro-377y`, `mro-jnm1`, and `mro-sltx` are historical +evidence only. Still-valid acceptance is absorbed into the `0.12.0-dev` owner, +then the duplicate implementation route is retired. No source work, branch +promotion, or validation runs on `0.20.0-dev`. + +`mro-pd8f` is not superseded wholesale: gitlink/baseline scope belongs with the +convergence cohort, `.1`/`.2` setup scope belongs with the engine, and the +parent drains only after every unique child has an owner. + +Historical candidate IDs are not removal authority by themselves. Before +superseding an issue, the orchestrator reads its live title, description, +status, parent, dependencies, comments, assignee, and evidence. Two issues are +duplicates only when they have the same canonical owner, outcome, affected +consumers, and acceptance boundary. A duplicate is linked to the survivor, +annotated with the consolidation reason and evidence preserved, then superseded +through `bd`; it is never physically deleted. + +### 6.6 External callbacks + +Known consumer-side callbacks are revalidated and reused: + +| Consumer | Known callback Bead | +| --- | --- | +| AI Hub | `ai-hub-raur.7.3` | +| Cosmos Main | `cosmos-main-rysa.2` | +| Cosmos Docgen | `bd-bky5.5` | +| MCB | `mcb-o96i.9.1` | + +FLEXT provides the exact `0.12.0-dev` provider commit or an already-authorized +immutable artifact identity, compatibility notes, and the canonical consumer +validation contract. The consumer returns its Bead, commit, command, working +directory, exit status, decisive output, validated identity, and any discovered +provider defect. Cross-tracker coordination uses notes and callbacks, not +invented local dependency types or direct consumer mutation. + +### 6.7 Dependency semantics + +The graph uses relationships consistently: + +- parent/child means decomposition of the same outcome; +- blocks means the target cannot start or complete before the dependency; +- tracks means an epic or certification control consumes another Bead's + independently owned result; +- discovered-from records provenance, not sequencing; +- related records useful non-blocking context; +- native supersede records canonical consolidation; +- external callback links connect a FLEXT capability to consumer-owned rollout + work without transferring ownership of the consumer. + +An epic is an aggregate and cannot be claimed as an implementation lane. Ready +work consists of leaf Beads whose blockers are resolved. + +## 7. Autonomous Bead contract + +Every executable leaf Bead is complete enough for a new worker with no chat +history. It contains these fields: + +### Identity and ownership + +- stable semantic key and concise outcome title; +- type, priority, parent epic, and relationship provenance; +- owning repository, canonical branch, dedicated worktree, and assignee; +- canonical implementation owner and all affected consumers. + +### Reality and scope + +- current observed behavior with dated evidence; +- the divergence from the canonical contract; +- exact in-scope paths or generated surfaces; +- explicit exclusions, especially third-party forks and unrelated WIP; +- concurrent writers, shared mutable files, and integration risk. + +### Design and cutover + +- root cause; +- source-of-truth file, model, schema, config, template, or generator; +- target architecture and dependency direction; +- consumer inventory; +- atomic migration order: create canonical support, migrate all consumers with + structural search, remove the superseded implementation, regenerate, and + validate; +- rollback is fix-forward through a new correction, never reintroduction of the + old path. + +### Acceptance and evidence + +- observable behavior acceptance; +- exact canonical Make commands and expected scope; +- manual public-surface QA; +- idempotence proof when generation is involved; +- required documentation and ADR updates in the same change; +- commit and push evidence; +- command, working directory, exit status, decisive output, and bounded scope + for each gate. + +### Resume capsule + +The last comment or structured note records: + +- phase and last completed atomic step; +- live branch/worktree and last pushed commit; +- files changed and files currently dirty; +- last green and red Make commands; +- exact blocker, if one exists; +- next single action and its stop condition; +- dependency changes or decisions made during the session. + +The resume capsule is updated before delegation, compaction, interruption, or +handoff. It transfers context; it never replaces evidence or changes the +approved intent. + +### 7.1 Mandatory lane inventory and reassociation + +Before semantic reorganization or implementation resumes, the orchestrator +builds a live, bounded inventory from canonical Git, Beads, and GitHub state. +Every active or dirty unit must resolve this chain: + +```text +Bead <-> feature outcome <-> repository <-> 0.12.0-dev base + <-> implementation branch <-> worktree <-> owned paths/WIP + <-> commits <-> remote branch <-> PR and CI, when a PR exists +``` + +The inventory records: + +| Field | Required meaning | +| --- | --- | +| Bead | One executable leaf with live owner, phase, and stop condition | +| Feature | The single behavior or governance outcome represented by the Bead | +| Repository | One owning Git repository; cross-repository work is split into callbacks | +| Base | Current remote `0.12.0-dev` SHA used for the lane | +| Branch | One implementation branch mapped to the Bead, or direct authorized integration work | +| Worktree | One real path containing that branch and no second mutation lane | +| Owned paths | Exact files/generated surfaces the lane may change | +| Preserved WIP | Dirty and untracked paths, provenance, overlap, and integration treatment | +| Commits | Ordered local SHAs and their explicit path scope | +| Remote | Last confirmed pushed SHA and ahead/behind relation | +| PR/CI | PR identity, review state, checks, and merge relation when applicable | +| Next action | One canonical command or mutation with an observable result | + +Reassociation is mandatory when any part is missing or contradictory. The +orchestrator does not infer ownership from a branch name alone and does not +create a new lane merely because old WIP exists. It re-reads the feature, +preserves every hunk, associates it with the matching live Bead, and either +continues that lane or creates one bounded discovered-from leaf. Duplicate +branches/worktrees are drained through fix-forward integration, not deletion or +history rewriting. + +An `in_progress` Bead without one live feature, branch/worktree, owner, and next +action is normalized before new implementation starts. A branch or worktree +with relevant WIP and no Bead is associated with the canonical survivor before +the WIP is touched. A PR and its commits remain evidence of the same feature; +they never become a competing tracker. + +`mro-e9j0.6` is the canonical live registry for this branch/worktree/PR/WIP +convergence. It records the complete association matrix and drains duplicate or +detached lanes without taking semantic ownership away from the feature Bead. +`mro-re80` remains the reusable worktree-lifecycle capability owner. Candidate +duplicates such as `mro-p68a.37` and `mro-l078` are superseded only after their +unique content and evidence have been copied into `mro-e9j0.6` or the matching +feature Bead. + +### 7.2 Parallel documentation feature exclusion + +The already active parallel documentation feature is deliberately outside the +reassociation and source-mutation boundary of this slice. Its Beads, branch, +worktree, PR, commits, and dirty paths are inventoried as preserved concurrent +state but are not re-parented, superseded, claimed, rewritten, or folded into a +new implementation lane here. + +This exclusion does not remove these items from the approved program: + +- this durable handoff document; +- P0 governance authority; +- FLEXT governance skills; +- the canonical `AGENTS.md` profiles; +- AI Hub propagation of governance; +- documentation standards and later intake/rollout work after the parallel + feature lands or provides an explicit callback. + +The documenter may audit landed behavior continuously, but it does not perform +semantic Beads mutation and it does not edit files owned by an active technical +lane. + +### 7.3 Lane roles and serialization + +| Lane role | Ownership | +| --- | --- | +| Tracker orchestrator | Singular owner of graph mutation, reassociation, deduplication, evidence review, and closure | +| AI Hub governance/tooling callback | Universal distribution and managed-tool provisioning in the AI Hub repository | +| FLEXT governance lane | Versioned FLEXT overlay, routing skills, and root/member governance contracts | +| Technical engine lane | One bounded `mro-wkii.17` or `.17.41` implementation leaf | +| Certification lane | One `mro-z89e.1`–`.32` project control and its bounded defect child | +| Documenter | Standing read/audit lane aligned with landed behavior; no semantic tracker mutation | +| Governance/CI helper | Read-only or disjoint generated-CI analysis; no closure authority | + +Only one project mutation slice is executed at a time. Read-only dependency, +AST, CRG, MCP, governance, and documentation audits may assist concurrently, +but two workers do not edit the same repository, feature, generated owner, or +phase. The next project starts only after the current project is green, +committed, pushed, and evidenced. + +## 8. Generic setup and conform control plane + +`make setup` is repaired at the FLEXT Infra owner as a generic capability, not a +workspace-specific patch. It must: + +- detect root workspace, first-party member, standalone clone, external + consumer, and excluded fork from canonical config and repository reality; +- provision Python, mise tools, direnv, virtual environments, Beads, and managed + root surfaces without product-specific shell branches; +- derive project identity and Beads namespace from typed topology; +- permit only bounded config overlays for truly independent projects or legacy + namespace mapping; +- avoid scanning, linting, generating, or mutating excluded fork repositories; +- generate workspace and standalone CI from one FLEXT Infra conform owner; +- preserve explicit project overlays without duplicating common CI behavior; +- operate idempotently and explain its selected topology through a canonical + Make diagnostic; +- work from external workspaces without assuming a hardcoded FLEXT filesystem + path. + +The root Make dispatcher is the only execution surface for setup, conform, +generation, docs, checks, and tests. Missing diagnostics are added as Make +verbs or `WHAT=` modes at the canonical owner and covered before being used as +evidence. + +## 9. Strict generated Python surfaces + +Generated Python package roots use one canonical strict pattern: + +- `__init__.py` is simple, uniform, and generated; +- public exports are derived automatically from the canonical API/export model; +- imports are lazy and preserve the required MRO/OO facade composition; +- a package's `base.py` imports the short facade aliases from its upstream owner + and re-exports the package surface; +- the root package exports from `base.py` lazily; +- a short canonical alias such as `s` remains `s`; aliases such as `core_s` are + prohibited; +- alternative, custom, eager, compatibility, and bypass import routes are + migrated and removed; +- higher-to-lower facade imports follow the canonical layer order, while reverse + type relationships remain type-checking-only; +- all consumers are found and migrated with AST-based structural search; +- the generated result is validated for import behavior, public API, MRO, + performance-relevant laziness, and idempotence. + +The generator, not each generated module, owns this change. Generated files are +never hand-edited. + +## 10. Documentation intake and publication + +### 10.1 Scratch intake + +The Markdown source collection is moved out of `~/Downloads` into a unique +scratch directory outside every Git worktree. The misspelled `~/Donwloads` is +not treated as an alternate authority. The move is performed through a +canonical Make docs-intake mode so it is reproducible, bounded, and recorded. + +The planning inventory observed 73 Markdown files: 32 apparently FLEXT-related, +13 associated with nonmember external or fork projects, and 28 research or +reference files. These counts are a discovery snapshot. The canonical intake +verb re-inventories the live source before moving it and records provenance in +the owning Bead without turning scratch metadata into project authority. + +Scratch characteristics: + +- absolute location outside the workspace and every subproject; +- a unique program/date segment; +- source name, intake classification, and disposition metadata; +- no automatic publication; +- no mutation of external/fork repositories; +- retention until every file has a recorded disposition. + +### 10.2 One source file at a time + +Each intake file is evaluated independently: + +1. identify its claims and intended project; +2. verify useful claims against current code, config, ADRs, and public behavior; +3. reject stale, duplicated, noncanonical, or unsupported claims; +4. assign accepted knowledge to its canonical owner; +5. update the relevant README, ADR, standard, skill reference, API documentation, + Python docstring, example, or publication page in the same project slice; +6. run the complete project documentation pipeline; +7. record disposition and evidence in the Bead; +8. commit and push that project before advancing. + +A scratch document is evidence, never an owner. Content is not copied wholesale, +and one file is not used to justify a fleet-wide claim. + +### 10.3 Documentation standard + +The documentation program establishes: + +- answer-first READMEs with supported setup and real public examples; +- ADRs for durable decisions, with supersession links and no duplicate decision + owner; +- compact routing skills that link to canonical references; +- strict English docstrings for public behavior and non-obvious invariants; +- executable Markdown and docstring snippets that consume config/settings SSOT; +- a project-wide terminology, heading, link, code-fence, and provenance style; +- one publication layout conforming to FLEXT and WAZA requirements; +- docs generated only from canonical code/config/schema owners; +- removal or supersession of stale documentation in the same slice. + +`make docs` always runs the complete documentation pipeline for the selected +project. It builds, checks links, validates snippets and docstrings, validates +ADRs and skills, runs WAZA, checks publication shape, and detects generated +drift. Narrow `WHAT=` diagnostics may exist for iteration, but they never replace +the final unqualified `make docs`. + +## 11. Execution waves + +### Wave P0 — governance authority and propagation + +1. Record the program key on the existing participating epics and create or + reuse two repository-specific P0 leaves: FLEXT governance and AI Hub + propagation. +2. Resolve current global, FLEXT, and local governance owners and consumers. +3. Consolidate FLEXT governance skills over global skills. +4. Implement the three canonical `AGENTS.md` profiles. +5. Implement AI Hub typed inventory, templates, generation, and conform. +6. Propagate, prove idempotence, run complete docs and quality gates, commit, and + push each repository. + +### Wave P1 — Beads runtime, lane reality, and schema health + +1. Make setup select and verify the latest official schema-compatible `bd`. +2. Normalize namespace and provisioning behavior for workspace and standalone + projects. +3. Inventory every Bead, feature, branch, worktree, PR, commit, remote SHA, and + dirty path participating in the program. +4. Reassociate every active unit into a one-Bead/one-feature/one-repository + lane, preserving the parallel documentation feature exclusion. +5. Re-audit claims, issue types, parents, dependencies, callbacks, schema, Dolt + health, ready work, and blocked work with the live runtime. + +### Wave P2 — semantic graph convergence + +1. Normalize `mro-wkii.17` as the technical engine and `.17.41` as its bounded + topology/conform/tracker subepic. +2. Preserve `mro-z89e` as the program umbrella and preserve all 32 existing + certification controls. +3. Preserve `mro-p68a` readiness and `mro-e9j0` release-boundary ownership. +4. Add only verified tracks/blocks/related/callback relationships. +5. Move or supersede candidates only after complete content absorption. +6. Enrich every executable leaf with the autonomous contract and resume capsule. +7. Run tracker hygiene and Dolt push after each semantic batch. + +### Wave P3 — technical engine + +1. Complete `mro-wkii.17.35` typed topology and capability classification. +2. Implement the restrictive repository-role classifier under `.17.41`. +3. Implement Beads/mise/direnv projection after P1 runtime health. +4. Repair `make setup`, conform, dispatcher, generated Make surfaces, CI, and + managed documentation at their existing owners. +5. Validate the workspace/member/standalone/external/fork matrix. +6. Perform provider cutover, remove legacy routes, and prove the fixed point. +7. Implement strict generator support for simple roots, lazy exports, short + aliases, and MRO facades under `mro-whri`, then migrate every consumer with + AST and dependency-graph evidence. + +### Wave P4 — root and foundation certification + +Execute and close one control at a time: + +1. `mro-z89e.2` — `flext-infra`; +2. `mro-z89e.1` — FLEXT root; +3. `mro-z89e.6` — `flext-core`; +4. `mro-z89e.5` — `flext-cli`; +5. `mro-z89e.31` — `flext-tests`, including its installed pytest-plugin public + boundary. + +### Wave P5 — platform, domain, and connector certification + +Continue one project at a time in this dependency-aware order: + +1. platform: `.3`, `.4`, `.12`, `.15`, `.16`, `.19`, `.20`, `.32`; +2. domain: `.7`, `.13`, `.14`, `.17`, `.18`; +3. dbt connectors: `.8`–`.11`; +4. taps: `.21`–`.25`; +5. targets: `.26`–`.30`. + +For every control: pull `0.12.0-dev` fast-forward, absorb live WIP, apply the +generated contract plus legitimate overlay, fix all Ruff and Pyrefly findings at +root cause, run changed-scope types and tests, commit explicit paths, push the +project, update/push its superproject gitlink when applicable, and record exact +evidence before advancing. + +### Wave P6 — documentation convergence + +1. Move the source collection into external scratch through Make. +2. Process each file independently. +3. Improve canonical README, ADR, standard, skill, docstring, example, and WAZA + surfaces where evidence supports the change. +4. Run full `make docs` and project quality gates after every project slice. +5. Retain a complete disposition for all intake files. +6. Reconcile with the parallel documentation feature only after its explicit + callback or landing; preserve its ownership until then. + +### Wave P7 — integrated readiness and external callbacks + +1. Link consumer-owned Beads rather than treating external projects as FLEXT + subprojects. +2. Prove the integrated root + 31 first/second-apply fixed point. +3. Aggregate provider and compatibility evidence in `mro-p68a`. +4. Supply an `0.12.0-dev` provider commit or an already-authorized immutable + artifact to consumer callbacks; do not publish a new artifact under this + plan. +5. Validate external workspace use without a hardcoded local path. +6. Record compatibility evidence in both the FLEXT capability Bead and the + consumer callback. + +### Wave P8 — closure and release-boundary handoff + +1. Repeat global workspace gates after the final edit. +2. Prove generation and conform idempotence. +3. Run Beads lint, stale, orphan, dependency, and ready-work audits. +4. Verify all required commits are present remotely and the active branch is not + ahead. +5. Confirm no program-created unowned dirty state remains. +6. Close leaves before their owning technical, certification, documentation, or + readiness epic. +7. Hand the integrated SHA and readiness record to `mro-e9j0` as a gated input. + Leave publication, tagging, RC delivery, and promotion unexecuted until a new + explicit operator authorization. + +## 12. Canonical validation matrix + +Direct invocations of Ruff, Pyrefly, Pyright, Mypy, Pytest, MkDocs, WAZA, uv, +code generators, or conform internals are not accepted as evidence. + +| Purpose | Canonical root command | +| --- | --- | +| Environment and managed tooling | `make setup` | +| Conform and generated root surfaces | `make conform` | +| Python/code generation | `make build WHAT=gen` | +| Complete project documentation and WAZA | `make docs` | +| Global Ruff, format, and Pyrefly | `make check CHECK_GATES=lint,format,pyrefly` | +| Changed-project Pyright and Mypy | `make check PROJECT= CHECK_GATES=pyright,mypy` | +| Changed-project tests | `make test PROJECT=` | +| Integrated workspace behavior | `make val WHAT=workspace` | + +If a listed command is absent or does not provide the required generic behavior, +the first executable slice repairs it at FLEXT Infra and validates that repair. +No alternate command is substituted. + +Validation is performed after the final edit of each slice. A subsequent edit +invalidates earlier evidence. Required evidence includes command, active +worktree, exit code, decisive output, and exact project scope. + +## 13. Git and multi-repository delivery + +- Pull `origin/0.12.0-dev` with fast-forward semantics before each repository + slice and again before integration. +- Integrate all live changes fix-forward. Never report another session's work as + a reason for failure. +- Commit only explicit paths owned by the Bead. +- Push every commit immediately; a local-only commit is not a completed slice. +- When a first-party subproject and the superproject gitlink both change, the + subproject is validated, committed, and pushed first. The superproject then + receives the validated gitlink in its own explicit commit. +- No branch promotion through `main` or `0.20.0-dev` belongs to this program. +- No third-party fork commit or gitlink content is mutated by FLEXT automation. +- Beads Dolt sync and Git source sync are separate protocols; both must be + current at handoff. + +## 14. Required tool-assisted analysis + +Structural refactors use complementary evidence: + +- AST-based structural search locates Python consumers and verifies removal of + obsolete import/export forms; +- code-review graph analysis identifies dependency impact and cross-repository + consumers; +- MCP-backed repository and source inspection supplies bounded canonical context; +- ordinary text search is used for documentation and config inventory; +- every resulting claim is confirmed through a canonical Make verb before it is + accepted as validation evidence. + +Tools accelerate discovery; they do not become alternate mutation, generation, +or validation surfaces. + +## 15. Session resume protocol + +A new orchestrator session resumes in this order: + +1. read the newest operator instruction, universal law, FLEXT law, root + `AGENTS.md`, this document, and the four participating epic authorities; +2. synchronize Beads with the newest configured schema-compatible `bd`; +3. inspect P0 plus `mro-wkii.17`, `mro-z89e`, `mro-p68a`, `mro-e9j0`, their + dependencies, ready leaves, assignees, and resume capsules; +4. inspect the active `0.12.0-dev` worktree, subproject state, remote relation, + and concurrent writers; +5. fast-forward pull without discarding shared work; +6. claim one ready leaf atomically; +7. execute only that leaf to its observable green boundary; +8. validate through Make, perform real public-surface QA, update docs and Bead + evidence, commit explicit paths, and push; +9. update the resume capsule and hand off or close the leaf only when its full + acceptance holds; +10. select the next ready leaf from Beads. + +Status reporting does not pause execution. A session stops early only for one +precise destructive or authority decision that cannot be resolved from canonical +sources; the exact blocker and question are recorded in the active Bead. + +## 16. Definition of done + +This program is done only when the live system, not the plan, demonstrates all +of the following: + +- universal, FLEXT, and scope governance resolve through one deterministic + layered contract; +- AI Hub canonically propagates every managed governance surface; +- FLEXT governance skills contain no duplicated global implementation; +- `AGENTS.md` works in workspace, standalone, and external profiles; +- the latest configured official `bd` works with the live schema through the + managed environment; +- the Beads graph is normalized, dependency-correct, hygienic, and independently + resumable; +- program umbrella, technical engine, root + 31 certification cohort, + documentation, readiness, and release-boundary ownership remain + non-competing and dependency-correct; +- every active lane has an evidenced + Bead/feature/repository/branch/worktree/WIP/commit/remote/PR mapping; +- `make setup`, conform, code generation, docs, checks, tests, and workspace + validation work generically; +- strict simple package roots, lazy exports, short aliases, and MRO facades are + generated and all consumers are migrated; +- every documentation source has an evidenced disposition; +- READMEs, ADRs, standards, skills, docstrings, examples, and WAZA publication + surfaces agree with runtime reality; +- all first-party projects are green and pushed on `0.12.0-dev`; +- external consumers have validated callback evidence; +- excluded third-party forks remain unmodified; +- generated output is idempotent; +- the workspace has no program-created broken or unowned WIP; +- all final evidence is in Beads; +- the engine, certification, documentation, and readiness authorities close + only after their own children, while `mro-e9j0` remains at the explicitly + unauthorized release boundary until the operator separately authorizes + publication or promotion. diff --git a/docs/superpowers/plans/2026-07-29-flext-governance-beads-execution-continuation.md b/docs/superpowers/plans/2026-07-29-flext-governance-beads-execution-continuation.md new file mode 100644 index 000000000..eae1dfb75 --- /dev/null +++ b/docs/superpowers/plans/2026-07-29-flext-governance-beads-execution-continuation.md @@ -0,0 +1,853 @@ +# FLEXT 0.12.0-dev Governance and Beads Execution Continuation + +| Field | Current value | +| --- | --- | +| Status | Paused only for an operator-requested session transfer | +| Date | 2026-07-29 | +| Program | `flext-012-conform-beads-docs` | +| Program epic | `mro-z89e` | +| Active P0 epic | `mro-1o6t.1` | +| Active FLEXT leaf | `mro-1o6t.1.1` | +| Lane registry | `mro-e9j0.6` | +| Integration branch | `0.12.0-dev` | +| Active FLEXT worktree | `/home/marlonsc/flext/.worktrees/flext-0.12.0-dev` | +| AI Hub callback | `ai-hub-t449.10`, blocked by active `ai-hub-t449.2.4` | +| Durable program plan | `docs/superpowers/plans/2026-07-29-flext-beads-governance-reorganization-handoff.md` | +| This handoff | `docs/superpowers/plans/2026-07-29-flext-governance-beads-execution-continuation.md` | + +This file is the authoritative session-transfer checkpoint for the execution +state described below. It does not replace Beads or the durable program plan. +The next session must verify mutable state before acting, update the active Bead +after every state-changing slice, and continue from the first unfinished action +rather than restarting the audit. + +## 1. Exact operator outcome + +The approved program must: + +1. establish a deterministic governance composition: + operator instruction -> global generic law -> branch-matched FLEXT law -> + scope-only delta -> active Bead; +2. keep FLEXT as the sole semantic owner of FLEXT domain behavior and have AI + Hub distribute, configure, and validate it without competing with it; +3. repair generic FLEXT Infra setup, conform, codegen, Make, CI, Beads, WAZA, + documentation, strict lazy exports, and MRO/facade generation at their + canonical owners; +4. propagate the same generated contract to the FLEXT workspace, all 31 + first-party members, standalone clones, and declared external consumers; +5. inventory and durably associate every relevant Bead, feature, repository, + branch, worktree, WIP, commit, remote branch, PR, and CI state; +6. preserve and absorb all useful dirty, staged, committed, detached, remote, + and concurrent work fix-forward; +7. use only `0.12.0-dev` as the FLEXT integration line and make it the ancestry + base of every retained FLEXT branch, excluding GitHub technical refs and + Dolt refs; +8. process future Markdown evidence from external scratch one file at a time, + improve canonical README/ADR/skills/docs/docstrings, and validate complete + documentation through `make docs`; +9. deliver small green explicit-path commits and fast-forward push each commit; +10. leave third-party forks, content-only repositories, and the parallel + feature-documentation content lane unmodified. + +The immediate P0 slice is governance, not the documentation-content rewrite. +The user explicitly approved execution and later requested this durable +handoff before continuing in another session. + +## 2. Non-negotiable authority and tool rules + +Read these exact authorities before mutation: + +1. newest operator instruction; +2. `/home/marlonsc/.codex/RTK.md`; +3. `~/.agents/UNIVERSAL_CORE.md`; +4. `~/.agents/skills/inviolable-rules/SKILL.md`; +5. `~/.agents/skills/make-check/SKILL.md`; +6. active worktree `AGENTS.md`; +7. active worktree `.agents/skills/flext-context-routing/SKILL.md`; +8. active worktree `.agents/skills/flext-law/SKILL.md`; +9. `~/.agents/skills/verification-loop/SKILL.md`; +10. `mro-z89e`, `mro-1o6t.1`, `mro-1o6t.1.1`, `mro-e9j0.6`, the durable + program plan, and this handoff. + +Binding execution rules: + +- prefix every shell command with `rtk`; +- use Code Review Graph only through the CLI: + `/home/marlonsc/.ai-hub/.venv/bin/code-review-graph`; +- never use the Code Review Graph MCP tools; +- use `ast-grep` structurally for repeated syntax and cutover proof; +- use other MCP sources when useful, but never treat them as validation; +- run setup, conform, generation, docs, build, lint, format, typing, tests, and + validation only through the active root Make dispatcher; +- never invoke Ruff, Pyrefly, Pyright, Mypy, Pytest, WAZA, uv, MkDocs, or + generators directly; +- if a required Make verb is missing or broken, fix it generically in + `flext-infra`; do not route around it; +- use the schema-compatible upstream Beads binary at: + + ```text + /home/marlonsc/.local/share/mise/installs/go-github-com-steveyegge-beads-cmd-bd/423afdcb2813/bin/bd + ``` + +- never use stable `bd` 1.1.2 for this schema, downgrade the schema, or use + `--ignore-schema-skew`; +- use `BEADS_FSCK_TIMEOUT=240s` for Dolt push because the default 30-second + integrity check is too short for this store; +- never reset, restore, clean, stash, rebase published work, force-push, amend, + or discard unknown work; +- never hand-edit generated projections; +- never replace a GitHub PR body while adding the canonical association block; + add a top-level comment that preserves the original body and discussion; +- use explicit-path staging and inspect `git diff --cached --stat` before every + commit. + +## 3. Canonical governance decision + +The final P0 ownership decision is: + +| Layer | Sole owner | Content | +| --- | --- | --- | +| Global | `~/.agents` | Universal Core plus `inviolable-rules`, `make-check`, and `verification-loop` | +| FLEXT | FLEXT branch-matched root | root `AGENTS.md`, `flext-context-routing`, and the local `flext-law` domain delta | +| Scope | nearest member or standalone project | only domain-specific facts, public surfaces, exclusions, and extra acceptance | +| Execution | active Bead | current intent, owner, dependencies, branch/worktree/PR/WIP, evidence, next action, and stop condition | + +There is no global semantic owner for `flext-law`. FLEXT owns exactly: + +```text +.agents/skills/flext-law/SKILL.md +``` + +AI Hub may project that skill after provider discovery, but it may not author a +second global copy. The duplicated local +`.agents/skills/flext-inviolable-rules/SKILL.md` is removed. The router uses +exact global generic paths plus the exact local branch-matched FLEXT law path. +No `flext-workspace-law` rename or compatibility adapter is created. + +## 4. Active FLEXT tree and preserved WIP + +At the last audit: + +```text +worktree: /home/marlonsc/flext/.worktrees/flext-0.12.0-dev +branch: 0.12.0-dev +remote: origin/0.12.0-dev +relation: 0 ahead / 0 behind before any new source commit +base SHA: f00b2eadf08169f13bf65c4d58d9ca0bd4d2a63b +``` + +### 4.1 P0-owned source changes + +The P0 worker changed only these six governance paths: + +| Path | State | Intended result | +| --- | --- | --- | +| `AGENTS.md` | modified | compact global -> FLEXT -> scope -> Bead composition | +| `.agents/commands/flext-law.md` | modified | exact-path authority loading | +| `.agents/provider.toml` | modified | remove local `flext-inviolable-rules` surface | +| `.agents/skills/flext-context-routing/SKILL.md` | modified | exact global generic plus local law routing | +| `.agents/skills/flext-law/SKILL.md` | modified | concise FLEXT-only architecture/import/Make/fleet delta | +| `.agents/skills/flext-inviolable-rules/SKILL.md` | deleted | remove duplicated global execution law | + +Current source diff for these six paths: + +```text +6 files changed, 102 insertions, 352 deletions +``` + +The following plan is also new and modified in the active worktree: + +```text +docs/superpowers/plans/2026-07-29-flext-beads-governance-reorganization-handoff.md +``` + +It contained 1,031 lines at the first consolidated review; re-read the live +file because subsequent authority corrections added content. It merges: + +- the earlier governance/Beads/documentation plan; +- `/home/marlonsc/flext/FLEXT_0_12_BEADS_LANE_REORGANIZATION_PLAN.md`; +- the approved P0 governance model; +- the root + 31 controls; +- the autonomous Bead contract; +- Bead/feature/branch/worktree/PR/commit/WIP association; +- external callbacks; +- documentation scratch intake; +- Make-only validation; +- the parallel documentation-feature exclusion. + +The plan was corrected after generation to state that: + +- `mro-z89e` is the reused program umbrella and rollout authority; +- `mro-z89e.1` through `.32` are the certification cohort; +- FLEXT owns the local `flext-law`; +- no global duplicate `flext-law` is retained; +- `mro-e9j0.6` is the canonical live lane registry. + +### 4.2 Unrelated root WIP that must remain untouched + +These paths were dirty before or independently of the P0 worker: + +```text +.gitignore +.gitmodules +Makefile +pyproject.toml +ci/ +all 31 FLEXT member gitlinks +``` + +Do not include them in the P0 governance commit unless a live Bead and exact +owner prove they belong to the same completed slice. + +### 4.3 Direct consumers still requiring classification + +The last text inventory found active references to the removed local skill in: + +```text +.agents/prompts/continuation-monopoly.md +.github/prompts/flext-aggressive-scale-refactor.prompt.md +.github/prompts/flext-strict-jsonvalue-session-continuation.prompt.md +docs/GOVERNANCE.md +docs/standards/development.md +docs/standards/testing.md +docs/ways-of-working/worker-lane-contract.md +``` + +Likely disposition: + +- the `.agents/prompts` and `.github/prompts` references are direct instruction + consumers and should be cut over in `mro-1o6t.1.1` after re-reading live + ownership; +- the four `docs/**` references overlap the reserved parallel documentation + lane and must not be edited in this session without its explicit callback; +- record the reserved documentation consumers in the Bead rather than leaving + their ambiguity undocumented; +- the durable program plan reference was already corrected. + +## 5. Parallel documentation-feature exclusion + +Do not mutate or semantically reorganize documentation content in: + +```text +/home/marlonsc/flext feature/mro-ydhf-docs-local +/home/marlonsc/flext/.worktrees/pr40-docs +/home/marlonsc/flext/.worktrees/mro-p68a-12-2-docs +mro-ydhf.1 +mro-ydhf.1.1 +flext-infra PR 64 +docs/** WIP owned by those lanes +``` + +The durable plan, this handoff, P0 governance, FLEXT skills, the canonical +`AGENTS.md` model, AI Hub propagation, and the generic `make docs` engine remain +in scope. Only feature-documentation content is reserved. + +## 6. Beads state and completed semantic mutations + +### 6.1 Canonical hierarchy + +```text +mro-z89e FLEXT 0.12.0-dev program umbrella +├── mro-z89e.2 FLEXT Infra engine/conform/Beads/CI +├── mro-z89e.1-.32 root + 31 certification controls +└── mro-1o6t living documentation, intake, WAZA, publication + └── mro-1o6t.1 P0 governance and distribution + ├── mro-1o6t.1.1 FLEXT root AGENTS/provider/router/local law + ├── mro-1o6t.1.2 generated member/standalone AGENTS profiles + └── mro-1o6t.1.3 strict declared-artifact/WAZA validation + +mro-wkii.17 typed technical engine tracked by the program +mro-p68a stabilization and readiness +mro-e9j0 release boundary +└── mro-e9j0.6 canonical branch/worktree/PR/WIP registry +``` + +The P0 sequence is: + +```text +mro-1o6t.1.1 -> ai-hub-t449.10 -> mro-1o6t.1.2 -> mro-1o6t.1.3 +``` + +### 6.2 Consolidations already applied + +These semantic consolidations were completed: + +```text +mro-vx2y superseded by mro-1o6t.1 +mro-4o9a.5 superseded by mro-1o6t.1.3 +mro-ww3x superseded by mro-1o6t.1.3 +mro-l078 superseded by mro-e9j0.6 after unique content absorption +mro-p68a.37 superseded by mro-e9j0.6 after unique content absorption +``` + +`mro-wrbd` was not superseded because it has unique Cosmos/AI Hub cross-project +scope. It now tracks `mro-e9j0.6` for its FLEXT portion. `mro-z89e` also tracks +`mro-e9j0.6`. + +### 6.3 P0 Beads already rewritten + +The following were rewritten into autonomous contracts: + +- `mro-z89e`; +- `mro-1o6t`; +- `mro-1o6t.1`; +- `mro-1o6t.1.1`; +- `mro-1o6t.1.2`; +- `mro-1o6t.1.3`. + +`mro-1o6t.1.1` now explicitly retains the local `flext-law` in place and +removes only the local duplicate `flext-inviolable-rules`. Its metadata links +the active integration worktree, the historical PR 39 worktree, PRs +28/29/35/39/47/49, exact owned paths, preserved root WIP, and CLI-only CRG. + +### 6.4 Lane registry batch already pushed to Dolt + +`mro-e9j0.6` was retitled: + +> Register and converge every live FLEXT branch, worktree, PR, and WIP onto +> 0.12.0-dev + +Its current notes include: + +- 24 root worktrees; +- 27 local branches; +- 11 useful remote refs; +- 49 superproject PRs; +- 18 open FLEXT-organization PRs; +- canonical mappings for P0, engine, baseline/gitlinks, setup, provider, + package/plugin, external provenance, release history, and detached snapshots; +- explicit documentation exclusion; +- exact open-PR mappings; +- the supersession reasoning for `mro-l078` and `mro-p68a.37`. + +That semantic batch was pushed successfully using: + +```text +cwd: /home/marlonsc/flext/.worktrees/flext-0.12.0-dev +command: rtk env BEADS_FSCK_TIMEOUT=240s PATH=:... bd dolt push --json +exit: 0 +decisive output: Push complete. +``` + +The default 30-second push attempt exited 1 before publication because its +pre-push `fsck` timed out. The retry did not ignore integrity; it gave the same +integrity check enough time. + +### 6.5 Root feature association batch already pushed to Dolt + +These Beads received real branch/worktree/SHA/PR/WIP mappings and were then +pushed to Dolt: + +```text +mro-1o6t.1.1 +mro-z89e.2 +mro-pd8f +mro-pd8f.3 +mro-shxw +mro-9fdx +mro-gvjs +mro-jk1p +mro-sw2l.1 +mro-0tvv.1 +mro-p68a +``` + +Important mappings include: + +- `mro-z89e.2` -> + `/home/marlonsc/.worktrees/flext-infra-mro-z89e-conform-beads`, + `feature/mro-z89e-conform-beads`, `e0adbfc4`; +- `mro-pd8f` -> published-baseline lane plus detached snapshots `3705362f` + and `b42a24a9`; +- `mro-shxw` -> current-base `fix/mro-shxw-superproject` survivor plus old + nested-WIP source lane; +- `mro-pd8f.3` -> projection-only remainder after governance semantics move to + `mro-1o6t.1.1`; +- `mro-jk1p` -> package lane, integration evidence lane, and clean provider + evidence; +- `mro-0tvv.1` -> obsolete wrong-base root PR 48; +- `mro-p68a` -> historical PRs 36/37/38/46 and residual conform-owned WIP. + +### 6.6 Final interrupted batch: applied, not yet Dolt-pushed + +The operator interrupted the long command to request this handoff. A live +post-interruption audit proved that all 13 intended Bead updates completed +before interruption: + +| Bead | Repository / PR | Current mapping | +| --- | --- | --- | +| `mro-wkii.17.37.2` | `flext-infra#67` | lazy CLI lane `d02ae363`, CRG CLI-only | +| `mro-e9j0.6.4` | `flext-infra#47` | remote-only 0.12 -> 0.20 convergence | +| `mro-e9j0.6.3` | `flext-tests#9` | typings-import worktree `894a7773` | +| `mro-e9j0.7` | `flext-infra#69` | v2 dependency-DAG survivor `2fce1800` | +| `mro-wkii.17.41` | `flext-infra#68` | conform topology worktree `b6e05562`, CRG CLI-only | +| `mro-e9j0.6.1` | `flext-core#339` | UCLI worktree plus main/0.20/async WIP worktrees | +| `mro-e9j0.5.1` | `flext-cli#48` | file-iteration worktree `8962a559` | +| `mro-e9j0.4.1` | `flext-tests#6` | pytest shard v2 worktree `be6f5641` | +| `mro-wkii.17.39` | `flext-infra#65` | gitlink identity worktree `86bf73ed`; status corrected to `in_progress` | +| `mro-e9j0.6.5` | API/Auth/gRPC PRs | remote-only heads and full URLs | +| `mro-e9j0.6.7` | `flext-db-oracle#38` | remote-only head `3a76d3fe` | +| `mro-wfc8` | `flext-web#32` | feature owner, remote-only head `36c5ba2b` | +| `mro-e9j0.6.11` | `flext-web#32` | convergence control linked back to `mro-wfc8` | + +This final 13-Bead batch has **not** received a subsequent `bd dolt push`. +The next session must push it before performing more Beads mutations. + +### 6.7 Bead content still requiring correction + +`mro-e9j0.6` was created before the newest operator rule and its description or +acceptance still contains the phrase `CRG/MCP`. Update future execution wording +to: + +```text +ast-grep + Code Review Graph CLI + other bounded MCP source inspection +``` + +Do not delete historical notes that truthfully record old MCP timeouts; append +an explicit superseding route correction. + +## 7. GitHub PR association state + +No GitHub write occurred in this session. No reciprocal comment was posted and +no PR was closed. The three root PRs remain open. + +### 7.1 Root PRs requiring immediate reciprocal comments + +| PR | Head | Canonical association | Required action | +| --- | --- | --- | --- | +| `flext#47` | `a74ea78a`, base `main` | evidence for `mro-1o6t.1.1`, exact duplicate of #49 | add canonical comment, then close as duplicate | +| `flext#49` | same branch/SHA, base `0.12.0-dev` | evidence for `mro-1o6t.1.1`; superseded by the short current-base P0 implementation | add canonical comment, then close as superseded/evidence-only | +| `flext#48` | `5bfd2238`, branch built on 0.20 | historical closed `mro-0tvv.1`; 466-file wrong-base PR | add canonical comment, then close without merge | + +PRs 47 and 49 have the same remote head and SHA. PR 47 retains 19 unresolved +CodeRabbit threads over 16 paths; closing it must preserve the discussion as +evidence. Neither tree is valid merge input. + +Use the GitHub connector to: + +1. add a top-level comment with Program, Bead, Epic, base, branch, SHA, + worktree state, WIP classification, disposition, and next action; +2. close the PR through the connector; +3. never replace the original PR body; +4. record the final PR state in the matching Bead and Dolt-push it. + +### 7.2 Other open FLEXT PR mappings + +| PR | Bead | +| --- | --- | +| `flext-infra#67` | `mro-wkii.17.37.2` | +| `flext-infra#47` | `mro-e9j0.6.4` | +| `flext-tests#9` | `mro-e9j0.6.3` | +| `flext-infra#69` | `mro-e9j0.7` | +| `flext-infra#68` | `mro-wkii.17.41` | +| `flext-core#339` | `mro-e9j0.6.1` | +| `flext-cli#48` | `mro-e9j0.5.1` | +| `flext-infra#64` | reserved docs `mro-ydhf.1.1`; do not reorganize | +| `flext-grpc#37` | `mro-e9j0.6.5` | +| `flext-db-oracle#38` | `mro-e9j0.6.7` | +| `flext-api#38` | `mro-e9j0.6.5` | +| `flext-auth#36` | `mro-e9j0.6.5` | +| `flext-tests#6` | `mro-e9j0.4.1` | +| `flext-infra#65` | `mro-wkii.17.39` | +| `flext-web#32` | feature `mro-wfc8`; convergence `mro-e9j0.6.11` | + +Add reciprocal comments to PRs that currently lack the Bead. Preserve existing +correct associations and bodies. A historical or merged PR is evidence, never +an active lane. + +## 8. Root worktree and branch inventory + +The root inventory found 24 worktrees: + +| Worktree or branch | Owner / disposition | +| --- | --- | +| `.worktrees/flext-0.12.0-dev` | active P0 integration; split GOV from unrelated technical WIP | +| `/home/marlonsc/flext` | reserved docs content; non-doc WIP still needs technical owners | +| `cycle/mro-458l-provider-manifest` | clean historical candidate after P0 absorption proof | +| detached `ac899064` Cosmos snapshot | external consumer callback; never invent FLEXT ownership | +| detached `3705362f` | current-base fleet snapshot -> `mro-pd8f`/`mro-e9j0.6` | +| detached `a0447e18` | conform/CI/provider snapshot -> `mro-z89e.2`/`mro-bqt3` | +| detached `b42a24a9` | competing current-base fleet snapshot -> `mro-pd8f` | +| `fix/mro-shxw-superproject` | current-base `mro-shxw` survivor | +| `bugfix/mro-0tvv-1-backup-disabled` | closed Bead / obsolete PR 48 evidence | +| `bugfix/mro-9fdx-pr-booleans` | `mro-9fdx` | +| `bugfix/mro-gvjs-make-routing-output` | `mro-gvjs`, multi-consumer WIP | +| `bugfix/mro-jk1p-package-plugin` | `mro-jk1p` package lane | +| `integration/mro-jk1p-pr66` | `mro-jk1p` integration evidence | +| `bugfix/mro-jk1p-provider-repair` | clean `mro-jk1p` evidence | +| `agent/mro-p68a-12-1-inventory` | clean lane with nonexistent inferred child; reassign administratively | +| `agent/mro-p68a-12-2-docs` | reserved documentation content | +| `bugfix/mro-pd8f-3-provider-sgconfig` | projection-only remainder after P0 owner cutover | +| `bugfix/mro-pd8f-published-baseline` | `mro-pd8f`, divergent dirty baseline | +| `bugfix/mro-shxw-setup-submodules` | old `mro-shxw` WIP source | +| `feature/mro-sw2l-1-external-provenance` | `mro-sw2l.1` | +| `pr38-release` | merged release evidence; residual GEN -> conform | +| `pr39-governance` | merged governance evidence; residual GEN -> conform | +| `pr40-docs` | reserved docs history; residual GEN -> conform | +| `provider-sgconfig-owner` | overlapping intake; not a second provider owner | + +Local branches without their own worktree include: + +```text +0.10.0-dev +0.11.0-dev +0.20.0-dev +c16 +feature/mro-ydhf-docs +main +snapshot/cosmos-main-wvsc-pr-route--20260727-ac89906 +snapshot/flext-0.12.0-dev--20260727-9271369 +``` + +Do not delete any branch or worktree from this list during the first +continuation slice. Cleanup requires remote reachability proof, path-level WIP +classification, `mro-re80`, and the safe-delete workflow. + +## 9. AI Hub callback state + +AI Hub remains the required universal distributor, but no new writer should +overlap its active lane. + +### 9.1 Active lane + +```text +Bead: ai-hub-t449.2.4 +status: in_progress +assignee: Codex +branch: feature/governance-skills-docs-convergence +worktree: /home/marlonsc/.ai-hub/.worktrees/governance-skills-docs-convergence +HEAD: 561a4449 +remote relation: ahead 4 +dirty paths: 12 +last canonical state: static Make gates green; make test red with 21/1222 failures +``` + +This lane overlaps `ai-hub-t449.10` only in: + +```text +src/ai_hub/services/validate_agent_law_surface.py +tests/unit/test_aihub_validate_agent_law_surface.py +``` + +Its 12 dirty paths at the audit were: + +```text +src/ai_hub/services/_model_catalog.py +src/ai_hub/services/agent_work.py +src/ai_hub/services/model_availability.py +src/ai_hub/services/validate_agent_law_surface.py +src/ai_hub/services/worktree_create.py +tests/unit/test_aihub_gateway_static_catalog.py +tests/unit/test_aihub_generate_codex_assets.py +tests/unit/test_aihub_go7o_6_1_incident_fallback.py +tests/unit/test_aihub_go7o_6_1_variant_probe.py +tests/unit/test_aihub_model_availability_state.py +tests/unit/test_aihub_validate_agent_law_surface.py +tests/unit/test_opencode_permission_policy.py +``` + +It does not yet fix global AGENTS distribution, the global duplicate +`flext-law`, provider topology, or WAZA discovery. + +### 9.2 Reserved P0 distribution lane + +```text +Bead: ai-hub-t449.10 +status: open, blocked by ai-hub-t449.2.4 +branch: bugfix/ai-hub-t449-10-universal-landing-law +worktree: /home/marlonsc/.ai-hub/.worktrees/bugfix/ai-hub-t449-10-universal-landing-law +HEAD/remote: 22a76449 +dirty paths: 14 +relation to origin/dev at audit: 14 ahead / 7 behind +``` + +Its 14 dirty paths at the audit were: + +```text +config/governance.yaml +docs/agent-law-full.md +src/ai_hub/_constants/workspace.py +src/ai_hub/_models/_config/governance.py +src/ai_hub/_models/cli.py +src/ai_hub/_protocols/cli.py +src/ai_hub/services/_ssot_relink_parts/__init__.py +src/ai_hub/services/_ssot_relink_parts/driver.py +src/ai_hub/services/generate_workspace_config.py +src/ai_hub/services/ssot_relink.py +src/ai_hub/services/validate_agent_law_surface.py +templates/workspace/CLAUDE.md +tests/unit/test_aihub_generate_workspace_config.py +tests/unit/test_aihub_validate_agent_law_surface.py +``` + +Its metadata is contradictory and must be corrected after re-reading: + +```text +integration_branch=dev +integration_target=main # stale/incorrect for the implementation PR +merge_state=reconciled # false while dirty and behind dev +``` + +Retain `development_ref=dev` and the configured production boundary `main`, but +do not claim reconciliation. Add `flext_integration_target=0.12.0-dev` for the +provider callback instead of using a generic conflicting integration target. + +### 9.3 Unresolved universal/distribution defects + +At the audit: + +- `~/.agents/AGENTS.md` was a symlink to dirty AI Hub main `AGENTS.md`, making + uncommitted project WIP globally live; +- `~/.agents/skills` was a symlink to AI Hub `skills/`; +- AI Hub `skills/flext-law/SKILL.md` remained globally active and duplicated + FLEXT ownership; +- provider topology used static `${HOME}/flext`, `recurse_submodules: false`, + and only root plus nine FLEXT entries instead of deriving all 31 from the + FLEXT topology SSOT; +- provider link validation rejected any Git-tracked `.agents` destination; +- WAZA required `/skills` even when provider surfaces live under + `.agents/skills`; +- `ssot_relink` copied `.waza.yaml` fleet-wide instead of consuming declared + provider surfaces. + +Canonical AI Hub sequencing: + +1. finish `ai-hub-t449.2.4` green and land it to `dev`; +2. preserve and reconcile the dirty main `AGENTS.md` as input, never discard it; +3. claim and refresh `ai-hub-t449.10`; +4. absorb the two overlapping files; +5. finish source -> projection, remove the global `flext-law`, make provider + discovery dynamic, allow exact declared Git-tracked links, and make WAZA + consume provider surfaces; +6. use `ai-hub-t449.3` only if unique source/projection scope remains; +7. use `ai-hub-t449.6` as the final distribution/idempotence proof. + +No AI Hub source mutation was performed by this session. Before the read-only +audit, `ai-hub-t449.10` metadata was linked to `mro-z89e`, +`mro-1o6t.1`, and `mro-1o6t.1.1`; that is the same metadata record whose +contradictory integration fields are listed above. No subsequent AI Hub Beads +batch was Dolt-pushed by this session. + +## 10. Analysis and validation evidence + +### 10.1 Structural and graph analysis + +Text inventory: + +```text +command: rtk rg -n --hidden ... 'flext-inviolable-rules|...' +cwd: /home/marlonsc/flext/.worktrees/flext-0.12.0-dev +exit: 0 +result: eight stale direct documentation/prompt references identified +``` + +Ast-grep: + +```text +command: rtk ast-grep scan --config flext-infra/src/flext_infra/codemod/sgconfig.yml --rule flext-infra/src/flext_infra/codemod/rules/hardcoded-ssot-literal.yml .agents .github AGENTS.md +cwd: /home/marlonsc/flext/.worktrees/flext-0.12.0-dev +exit: 0 +result: no structural hardcoded-SSOT finding in the changed instruction surfaces +``` + +Code Review Graph CLI: + +```text +binary: /home/marlonsc/.ai-hub/.venv/bin/code-review-graph +status: 84,437 nodes, 227,685 edges, 5,767 files +built branch: 0.12.0-dev +built commit: 98e4a36d69c2 +detect-changes base: origin/0.12.0-dev +result: 41 changed files, zero changed code symbols, zero flows, risk 0.00 +``` + +The zero graph risk reflects documentation/config/gitlink changes, not a +completion claim. CRG is analysis only. + +### 10.2 Make validation + +No final Make validation has run after the P0 file edits. Therefore: + +- no `make setup` health claim exists; +- no `make docs` or WAZA claim exists; +- no Ruff, format, or Pyrefly claim exists; +- no affected Pyright/Mypy/Pytest claim exists; +- no provider-loading or standalone-routing QA claim exists; +- no generated fixed-point claim exists. + +Do not call this slice green before fresh final Make evidence. + +### 10.3 Git source publication + +No P0 source commit was created and no Git source push occurred. The active +branch is still aligned with `origin/0.12.0-dev` at the old base, with all P0 +changes uncommitted. The durable plan and this continuation handoff are +untracked until an explicit validated commit includes them. + +### 10.4 GitHub publication + +No GitHub comment, PR close, PR body update, merge, review, or new PR occurred. + +### 10.5 Dolt publication frontier + +- the lane-registry/supersession batch was pushed; +- the root-feature association batch was pushed; +- the final 13-Bead open-PR mapping batch was applied but not pushed; +- AI Hub Beads were not pushed by this session after the read-only audit. + +## 11. Exact continuation order + +The next session should execute these bounded slices in order. + +### Slice A — recover and publish the pending tracker batch + +1. Re-read this handoff and the live Beads. +2. Verify the 13 metadata mappings in section 6.6 still exist. +3. Run the FLEXT Dolt push with `BEADS_FSCK_TIMEOUT=240s`. +4. Re-read `mro-e9j0.6`; append the CLI-only CRG correction. +5. Update `mro-e9j0.6` with push evidence and the next action. + +### Slice B — finish reciprocal root PR association + +1. Re-read root PRs 47, 48, and 49 through the GitHub connector. +2. Add canonical association comments without replacing bodies. +3. Close 47 as duplicate, 49 as superseded evidence, and 48 as wrong-base + redundant evidence. +4. Re-read final PR states. +5. Update `mro-1o6t.1.1`, `mro-0tvv.1`, and `mro-e9j0.6`. +6. Dolt-push the semantic batch. + +### Slice C — complete the FLEXT P0 source cutover + +1. Fast-forward refresh `0.12.0-dev` without discarding WIP. +2. Re-read the six P0 paths and the three direct prompt consumers. +3. Update in-scope prompt references to exact global generic skills and local + FLEXT law. +4. Leave reserved `docs/**` content untouched and record the callback. +5. Audit every reference through `rg`, ast-grep, and CRG CLI. +6. Review the complete P0 diff and the durable plan for contradictions. + +### Slice D — canonical Make proof and source publication + +1. Run `make help` from the active root to confirm exact verbs. +2. Run the supported `make setup`. If it is absent or broken, repair the + generic FLEXT Infra owner; do not substitute another setup path. +3. Run complete `make docs`; it must include WAZA and executable documentation. +4. Run global lint/format/Pyrefly and affected Pyright/Mypy/Pytest through Make. +5. Exercise real provider loading and branch-matched workspace/standalone + routing through a canonical Make or documented public CLI surface. +6. Prove generation or conform fixed point if the owner declares these files + generated. +7. Re-run every gate after the final edit. +8. Stage only the explicit P0 and plan/handoff paths. +9. Inspect the cached diff and commit. +10. Fast-forward push `0.12.0-dev` immediately. +11. Record SHA, push, commands, cwd, exit codes, decisive outputs, preserved + WIP, and next action in `mro-1o6t.1.1`; Dolt-push. + +### Slice E — AI Hub propagation + +1. Do not overlap `ai-hub-t449.2.4`. +2. Verify whether its 21 test failures are green and whether it landed to + `dev`. +3. Correct `ai-hub-t449.10` metadata only after re-reading live state. +4. Claim and reconcile its preserved lane. +5. Complete the global source/projection, provider-discovery, global duplicate + removal, declared-link, and WAZA cutover. +6. Validate only through AI Hub Make commands, commit/push, open the correct PR + to `dev`, and record reciprocal FLEXT callback evidence. +7. Continue with `mro-1o6t.1.2` and `.1.3` only after the AI Hub owner lands. + +## 12. Copy-paste continuation prompt + +Copy the following prompt into the next session: + +```text +Continue the approved FLEXT 0.12.0-dev governance, Beads, PR, worktree, and AI +Hub propagation program. Do not restart planning and do not infer state from +chat memory. + +First read completely, in order: +1. /home/marlonsc/.codex/RTK.md +2. ~/.agents/UNIVERSAL_CORE.md +3. ~/.agents/skills/inviolable-rules/SKILL.md +4. ~/.agents/skills/make-check/SKILL.md +5. /home/marlonsc/flext/.worktrees/flext-0.12.0-dev/AGENTS.md +6. the local flext-context-routing and flext-law skills in that worktree +7. ~/.agents/skills/verification-loop/SKILL.md +8. /home/marlonsc/flext/.worktrees/flext-0.12.0-dev/docs/superpowers/plans/2026-07-29-flext-beads-governance-reorganization-handoff.md +9. /home/marlonsc/flext/.worktrees/flext-0.12.0-dev/docs/superpowers/plans/2026-07-29-flext-governance-beads-execution-continuation.md +10. live Beads mro-z89e, mro-1o6t.1, mro-1o6t.1.1, and mro-e9j0.6. + +Execution root: +/home/marlonsc/flext/.worktrees/flext-0.12.0-dev +Integration branch: +0.12.0-dev +Program: +flext-012-conform-beads-docs +Active leaf: +mro-1o6t.1.1 +Lane registry: +mro-e9j0.6 + +Use the schema-compatible bd binary built from upstream SHA +423afdcb2813e36b2bc4c96b07e0fc3516a34495. Never use bd 1.1.2, downgrade the +schema, or use --ignore-schema-skew. Prefix every shell command with rtk. +Code Review Graph is CLI-only via +/home/marlonsc/.ai-hub/.venv/bin/code-review-graph; never use CRG MCP. Use +ast-grep structurally. Use Make only for setup, conform, generation, docs, +checks, types, tests, WAZA, and validation. + +Preserve all dirty/staged/untracked/concurrent WIP. Never reset, restore, clean, +stash, amend, rebase published work, force-push, hand-edit generated files, or +blame another lane. Do not touch the parallel documentation-feature content in +feature/mro-ydhf-docs-local, pr40-docs, mro-p68a-12-2-docs, mro-ydhf.1/.1.1, +flext-infra PR64, or their docs/** paths. + +The P0 governance source cutover is already implemented but unvalidated and +uncommitted: root AGENTS, provider, command, router, local flext-law, and +deletion of local flext-inviolable-rules. FLEXT owns the local flext-law; +global authority owns only inviolable-rules, make-check, and +verification-loop. Do not create flext-workspace-law or retain a global +flext-law duplicate. + +The final interrupted Beads batch did apply all 13 open-PR metadata mappings but +has not been Dolt-pushed. Start by verifying and pushing it with +BEADS_FSCK_TIMEOUT=240s. Then append the CRG CLI-only correction to +mro-e9j0.6. + +No GitHub writes have occurred. Add reciprocal top-level association comments +without replacing PR bodies, then close flext#47 as a duplicate, flext#49 as +superseded evidence, and flext#48 as a wrong-base redundant PR. Record final +states in Beads and Dolt-push. + +Next finish the three in-scope direct prompt consumers of the removed local +skill, preserve the reserved docs consumers, audit with rg/ast-grep/CRG CLI, +run the complete canonical Make validation after the final edit, commit only +explicit owned paths, fast-forward push 0.12.0-dev immediately, and record exact +evidence in mro-1o6t.1.1. + +AI Hub callback ai-hub-t449.10 is preserved and blocked by active +ai-hub-t449.2.4. Do not start an overlapping AI Hub writer. Re-audit it after +.2.4 is green and landed, then complete global source/projection, remove the +global duplicate flext-law, derive all FLEXT providers dynamically, permit only +exact declared Git-tracked links, and make WAZA consume provider surfaces. + +Continue until the current bounded P0 slice is validated, committed, pushed, +reciprocally linked, and evidenced. If a genuine destructive or authority +decision appears, record it in the Bead and ask one precise question; otherwise +fix forward. +``` + +## 13. Session-transfer stop state + +The previous session intentionally stops at this checkpoint because the +operator requested a new-session continuation artifact. This is not a green, +committed, pushed, or completed P0 claim. + +The next observable action is: + +```text +verify the 13 final Bead mappings, then push the pending FLEXT Dolt batch with +BEADS_FSCK_TIMEOUT=240s +``` From 6420238021a38cb1f5de1423ccae6977111506d7 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Wed, 29 Jul 2026 19:03:24 -0300 Subject: [PATCH 010/165] chore(deps): advance flext-cli, flext-core, flext-infra pointers on 0.12.0-dev Pulls in: - flext-cli pyproject fix (remove duplicated project metadata) - flext-core result construction mixin return-type fix - flext-infra docs-scope standalone-project fix --- flext-cli | 2 +- flext-core | 2 +- flext-infra | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/flext-cli b/flext-cli index 644e19775..248bb4188 160000 --- a/flext-cli +++ b/flext-cli @@ -1 +1 @@ -Subproject commit 644e197758974aa88b03782e6f18e9d689907d44 +Subproject commit 248bb4188b3a7b8e84053d221c4736cb4f2670ae diff --git a/flext-core b/flext-core index 0f0c90c18..c0097c997 160000 --- a/flext-core +++ b/flext-core @@ -1 +1 @@ -Subproject commit 0f0c90c182ae78724797a3696cbd98a501b01b0d +Subproject commit c0097c9972da5ce2c27bcfd94c44ff624ca17ef7 diff --git a/flext-infra b/flext-infra index b50d431a3..022b01239 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit b50d431a3b95d75358a96988189c5366ea7581a0 +Subproject commit 022b0123953467eb073d570a980e7ab9c77b5dfb From 8881aec928301a5ad2a5798f44e4808e5cc7115e Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Wed, 29 Jul 2026 19:13:44 -0300 Subject: [PATCH 011/165] fix(deps): advance flext-infra pointer to uv-parse-safe pyproject.toml --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index b50d431a3..caf0cc293 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit b50d431a3b95d75358a96988189c5366ea7581a0 +Subproject commit caf0cc29321b7a3939b38d3013244819ed9c29f3 From 05714e347e853444ee719e6219446820357b4740 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Wed, 29 Jul 2026 19:18:49 -0300 Subject: [PATCH 012/165] fix(deps): advance flext-infra pointer to uv-parse-safe pyproject.toml --- flext-infra | 2 +- uv.lock | 66 +++++++++++++++++++++++------------------------------ 2 files changed, 30 insertions(+), 38 deletions(-) diff --git a/flext-infra b/flext-infra index 022b01239..caf0cc293 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 022b0123953467eb073d570a980e7ab9c77b5dfb +Subproject commit caf0cc29321b7a3939b38d3013244819ed9c29f3 diff --git a/uv.lock b/uv.lock index 51a1e2b1c..3fb26370b 100644 --- a/uv.lock +++ b/uv.lock @@ -763,7 +763,7 @@ name = "cuda-bindings" version = "13.3.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "cuda-pathfinder" }, + { name = "cuda-pathfinder", marker = "sys_platform != 'emscripten' and sys_platform != 'win32'" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/cc/6e/2394f8163360f8391f8f1b7e72d300a82724edb81a7b7084c799fbd4c91f/cuda_bindings-13.3.1-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9efb21c1ee64981e184b9e0ba5eb3179e5ba3d4b51665a6cb52b8ef3d01a7cbf", size = 5920504, upload-time = "2026-05-29T23:11:56.883Z" }, @@ -788,43 +788,43 @@ wheels = [ [package.optional-dependencies] cublas = [ - { name = "nvidia-cublas", marker = "platform_machine == 'aarch64' or platform_machine == 'x86_64'" }, - { name = "nvidia-cuda-nvrtc", marker = "platform_machine == 'aarch64' or platform_machine == 'x86_64'" }, + { name = "nvidia-cublas", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux')" }, + { name = "nvidia-cuda-nvrtc", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux')" }, ] cudart = [ - { name = "nvidia-cuda-runtime", marker = "platform_machine == 'aarch64' or platform_machine == 'x86_64'" }, + { name = "nvidia-cuda-runtime", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux')" }, ] cufft = [ - { name = "nvidia-cufft", marker = "platform_machine == 'aarch64' or platform_machine == 'x86_64'" }, - { name = "nvidia-nvjitlink", marker = "platform_machine == 'aarch64' or platform_machine == 'x86_64'" }, + { name = "nvidia-cufft", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux')" }, + { name = "nvidia-nvjitlink", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux')" }, ] cufile = [ - { name = "nvidia-cufile", marker = "platform_machine == 'aarch64' or platform_machine == 'x86_64'" }, + { name = "nvidia-cufile", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux')" }, ] cupti = [ - { name = "nvidia-cuda-cupti", marker = "platform_machine == 'aarch64' or platform_machine == 'x86_64'" }, + { name = "nvidia-cuda-cupti", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux')" }, ] curand = [ - { name = "nvidia-curand", marker = "platform_machine == 'aarch64' or platform_machine == 'x86_64'" }, + { name = "nvidia-curand", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux')" }, ] cusolver = [ - { name = "nvidia-cublas", marker = "platform_machine == 'aarch64' or platform_machine == 'x86_64'" }, - { name = "nvidia-cusolver", marker = "platform_machine == 'aarch64' or platform_machine == 'x86_64'" }, - { name = "nvidia-cusparse", marker = "platform_machine == 'aarch64' or platform_machine == 'x86_64'" }, - { name = "nvidia-nvjitlink", marker = "platform_machine == 'aarch64' or platform_machine == 'x86_64'" }, + { name = "nvidia-cublas", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux')" }, + { name = "nvidia-cusolver", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux')" }, + { name = "nvidia-cusparse", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux')" }, + { name = "nvidia-nvjitlink", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux')" }, ] cusparse = [ - { name = "nvidia-cusparse", marker = "platform_machine == 'aarch64' or platform_machine == 'x86_64'" }, - { name = "nvidia-nvjitlink", marker = "platform_machine == 'aarch64' or platform_machine == 'x86_64'" }, + { name = "nvidia-cusparse", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux')" }, + { name = "nvidia-nvjitlink", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux')" }, ] nvjitlink = [ - { name = "nvidia-nvjitlink", marker = "platform_machine == 'aarch64' or platform_machine == 'x86_64'" }, + { name = "nvidia-nvjitlink", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux')" }, ] nvrtc = [ - { name = "nvidia-cuda-nvrtc", marker = "platform_machine == 'aarch64' or platform_machine == 'x86_64'" }, + { name = "nvidia-cuda-nvrtc", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux')" }, ] nvtx = [ - { name = "nvidia-nvtx", marker = "platform_machine == 'aarch64' or platform_machine == 'x86_64'" }, + { name = "nvidia-nvtx", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux')" }, ] [[package]] @@ -2086,7 +2086,6 @@ codegen = [ { name = "flext-infra" }, ] dev = [ - { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -2118,13 +2117,11 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, - { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "psutil" }, { name = "pylint" }, { name = "pyrefly" }, - { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -2194,7 +2191,6 @@ requires-dist = [ [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ - { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -2226,13 +2222,11 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, - { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "psutil", specifier = ">=7.2.2" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, - { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -2307,7 +2301,6 @@ codegen = [ { name = "flext-infra" }, ] dev = [ - { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -2349,7 +2342,6 @@ dev = [ { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, - { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -2419,7 +2411,6 @@ requires-dist = [ [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ - { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -2461,7 +2452,6 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, - { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -8003,7 +7993,9 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/9b/ff/a620267401db30a50cc8450ee90730e2d4a85658c055c0e760d4ed47fb13/greenlet-3.5.3-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:c8d87c2134d871df96ecdea9cec7cbaab286dadab0f56476e57aaf9e8ac11550", size = 287609, upload-time = "2026-06-26T18:21:14.724Z" }, { url = "https://files.pythonhosted.org/packages/d6/fa/5401ac78021c826a25b6dde0c705e0a8f29b617509f9185a31dac15fbe1b/greenlet-3.5.3-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a2d185dd1621757e70c3861cceffd5317ab4e7ed7eb09c82994828468527ade5", size = 607435, upload-time = "2026-06-26T19:07:11.412Z" }, { url = "https://files.pythonhosted.org/packages/e9/76/1dc144a2e56e65d36405078ed774224375ea520a1870a6e46e08bb4ac7bf/greenlet-3.5.3-cp313-cp313-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:1c514a468149bf8fbbab874188a3535cd8a48a3e353eb53a3d424296f8dbacd3", size = 619787, upload-time = "2026-06-26T19:10:08.396Z" }, + { url = "https://files.pythonhosted.org/packages/57/61/2f5b1adf256d039f5dab8005de8d3d7ad2b0070a3219c0e036b3fbfeb440/greenlet-3.5.3-cp313-cp313-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:9ad04dd75458c6300b047c61b8639092433d205a25a14e310d6582a480efcca1", size = 625580, upload-time = "2026-06-26T19:24:18.344Z" }, { url = "https://files.pythonhosted.org/packages/bf/87/c298cee62df1de4ad7fec32abda73526cff347fd143a6ed4ac369246668a/greenlet-3.5.3-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:915f887cf2682b66419b879423a2e072634aa7b7dce6f3ada4957cfced3f1e9a", size = 616786, upload-time = "2026-06-26T18:32:19.128Z" }, + { url = "https://files.pythonhosted.org/packages/3e/d9/ab7fc9e543e44d6879b0a6ef9a4b2188940fd180cc65d6f646883ddf7201/greenlet-3.5.3-cp313-cp313-manylinux_2_39_riscv64.whl", hash = "sha256:afaabdd554cd7ae9bbb3ca070b0d7fdfd207dbf1d16865f7233837709d354bda", size = 427933, upload-time = "2026-06-26T19:25:38.219Z" }, { url = "https://files.pythonhosted.org/packages/9e/2e/e6f009885ed0705ccf33fe0583c117cfd03cde77e31a596dd5785a30762b/greenlet-3.5.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:766cfd421c13e450feb340cd472a3ed9957d438727b7b4593ad7c76c5d2b0deb", size = 1574316, upload-time = "2026-06-26T19:09:04.273Z" }, { url = "https://files.pythonhosted.org/packages/ef/fe/43fd110b01e40da0adb7c90ac7ea744bef2d43dca00de5095fd2351c2a68/greenlet-3.5.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:2ecda9ec22edf38fa389369eaed8c3d37c05f3c54e69f69438dbb2cc1de1458b", size = 1638614, upload-time = "2026-06-26T18:31:46.297Z" }, { url = "https://files.pythonhosted.org/packages/0f/7c/062447147a61f8b4337b156fe70d32a165fcf2f89d7ca6255e572806705c/greenlet-3.5.3-cp313-cp313-win_amd64.whl", hash = "sha256:c82304750f057167ff60d188df1d0cc1764ce9567eadf03e6a7443bcedd0b30b", size = 239850, upload-time = "2026-06-26T18:21:54.613Z" }, @@ -9427,7 +9419,7 @@ name = "nvidia-cublas" version = "13.1.1.3" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "nvidia-cuda-nvrtc" }, + { name = "nvidia-cuda-nvrtc", marker = "sys_platform != 'emscripten' and sys_platform != 'win32'" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/a7/a1/0bd24ee8c8d03adac032fd2909426a00c88f8c57961b1277ded97f91119f/nvidia_cublas-13.1.1.3-py3-none-manylinux_2_27_aarch64.whl", hash = "sha256:b7a210458267ac818974c53038fbec2e969d5c99f305ab15c72522fa9f001dd5", size = 542848918, upload-time = "2026-04-08T18:46:22.985Z" }, @@ -9466,7 +9458,7 @@ name = "nvidia-cudnn-cu13" version = "9.20.0.48" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "nvidia-cublas" }, + { name = "nvidia-cublas", marker = "sys_platform != 'emscripten' and sys_platform != 'win32'" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/56/c5/83384d846b2fd17c44bd499b36c75a45ed4f095fbbb2252294e89cea5c5c/nvidia_cudnn_cu13-9.20.0.48-py3-none-manylinux_2_27_aarch64.whl", hash = "sha256:e31454ae00094b0c55319d9d15b6fa2fc50a9e1c0f5c8c80fb75258234e731e1", size = 444574296, upload-time = "2026-03-09T19:28:27.751Z" }, @@ -9478,7 +9470,7 @@ name = "nvidia-cufft" version = "12.0.0.61" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "nvidia-nvjitlink" }, + { name = "nvidia-nvjitlink", marker = "sys_platform != 'emscripten' and sys_platform != 'win32'" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/8b/ae/f417a75c0259e85c1d2f83ca4e960289a5f814ed0cea74d18c353d3e989d/nvidia_cufft-12.0.0.61-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:2708c852ef8cd89d1d2068bdbece0aa188813a0c934db3779b9b1faa8442e5f5", size = 214053554, upload-time = "2025-09-04T08:31:38.196Z" }, @@ -9508,9 +9500,9 @@ name = "nvidia-cusolver" version = "12.0.4.66" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "nvidia-cublas" }, - { name = "nvidia-cusparse" }, - { name = "nvidia-nvjitlink" }, + { name = "nvidia-cublas", marker = "sys_platform != 'emscripten' and sys_platform != 'win32'" }, + { name = "nvidia-cusparse", marker = "sys_platform != 'emscripten' and sys_platform != 'win32'" }, + { name = "nvidia-nvjitlink", marker = "sys_platform != 'emscripten' and sys_platform != 'win32'" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/c8/c3/b30c9e935fc01e3da443ec0116ed1b2a009bb867f5324d3f2d7e533e776b/nvidia_cusolver-12.0.4.66-py3-none-manylinux_2_27_aarch64.whl", hash = "sha256:02c2457eaa9e39de20f880f4bd8820e6a1cfb9f9a34f820eb12a155aa5bc92d2", size = 223467760, upload-time = "2025-09-04T08:33:04.222Z" }, @@ -9522,7 +9514,7 @@ name = "nvidia-cusparse" version = "12.6.3.3" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "nvidia-nvjitlink" }, + { name = "nvidia-nvjitlink", marker = "sys_platform != 'emscripten' and sys_platform != 'win32'" }, ] wheels = [ { url = "https://files.pythonhosted.org/packages/f8/94/5c26f33738ae35276672f12615a64bd008ed5be6d1ebcb23579285d960a9/nvidia_cusparse-12.6.3.3-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:80bcc4662f23f1054ee334a15c72b8940402975e0eab63178fc7e670aa59472c", size = 162155568, upload-time = "2025-09-04T08:33:42.864Z" }, @@ -11235,8 +11227,8 @@ name = "secretstorage" version = "3.5.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "cryptography" }, - { name = "jeepney" }, + { name = "cryptography", marker = "sys_platform != 'emscripten' and sys_platform != 'win32'" }, + { name = "jeepney", marker = "sys_platform != 'emscripten' and sys_platform != 'win32'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/1c/03/e834bcd866f2f8a49a85eaff47340affa3bfa391ee9912a952a1faa68c7b/secretstorage-3.5.0.tar.gz", hash = "sha256:f04b8e4689cbce351744d5537bf6b1329c6fc68f91fa666f60a380edddcd11be", size = 19884, upload-time = "2025-11-23T19:02:53.191Z" } wheels = [ From dfb914e35701c2571f2dd12a4eee55eff4d9e368 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Wed, 29 Jul 2026 19:23:08 -0300 Subject: [PATCH 013/165] fix(deps): advance flext-tests pointer for discovery aliases --- flext-tests | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-tests b/flext-tests index c3c97592c..511dc8628 160000 --- a/flext-tests +++ b/flext-tests @@ -1 +1 @@ -Subproject commit c3c97592c17db0805ae7c53053024c958903e0d3 +Subproject commit 511dc86287b45d9747534321843e7f65870a876a From 59a8a8e9c9fc4371b100882372179e6ca65df4f3 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Wed, 29 Jul 2026 21:22:17 -0300 Subject: [PATCH 014/165] fixes --- .beads/config.yaml | 4 + .github/workflows/ci-matrix.yml | 83 +++ .github/workflows/ci.yml | 25 +- .github/workflows/release.yml | 4 +- AGENTS.md | 13 +- ...beads-governance-reorganization-handoff.md | 314 +++++++++ ...-generic-make-setup-ai-hub-continuation.md | 321 +++++++++ flext-api | 2 +- flext-auth | 2 +- flext-cli | 2 +- flext-core | 2 +- flext-db-oracle | 2 +- flext-dbt-ldap | 2 +- flext-dbt-ldif | 2 +- flext-dbt-oracle | 2 +- flext-dbt-oracle-wms | 2 +- flext-grpc | 2 +- flext-infra | 2 +- flext-ldap | 2 +- flext-ldif | 2 +- flext-meltano | 2 +- flext-observability | 2 +- flext-oracle-oic | 2 +- flext-oracle-wms | 2 +- flext-plugin | 2 +- flext-quality | 2 +- flext-tap-ldap | 2 +- flext-tap-ldif | 2 +- flext-tap-oracle | 2 +- flext-tap-oracle-oic | 2 +- flext-tap-oracle-wms | 2 +- flext-target-ldap | 2 +- flext-target-ldif | 2 +- flext-target-oracle | 2 +- flext-target-oracle-oic | 2 +- flext-target-oracle-wms | 2 +- flext-tests | 2 +- flext-web | 2 +- tests/unit/libs/versioning_tests.py | 1 - uv.lock | 636 ++++++------------ 40 files changed, 992 insertions(+), 471 deletions(-) create mode 100644 .github/workflows/ci-matrix.yml create mode 100644 docs/superpowers/plans/2026-07-29-flext-beads-governance-reorganization-handoff.md create mode 100644 docs/superpowers/plans/2026-07-29-p0-generic-make-setup-ai-hub-continuation.md diff --git a/.beads/config.yaml b/.beads/config.yaml index be1f2d0a3..c26f21544 100644 --- a/.beads/config.yaml +++ b/.beads/config.yaml @@ -18,6 +18,10 @@ dolt: database: mro auto-commit: off +# Shared-server backups are explicit to avoid a backup sync on every bd command. +backup: + enabled: false + # Enable JSON output by default # json: false diff --git a/.github/workflows/ci-matrix.yml b/.github/workflows/ci-matrix.yml new file mode 100644 index 000000000..3aaf1143b --- /dev/null +++ b/.github/workflows/ci-matrix.yml @@ -0,0 +1,83 @@ +# Generated by `flext-infra codegen conform` for flext. +# Multi-environment CI base: proves the project bootstrap and canonical Make +# verbs work identically across distros, macOS, and Windows. The CI invokes +# the project's own Make surface; it never reimplements bootstrap. +--- +name: ci-matrix + +on: + push: + branches: [0.12.0-dev] + pull_request: + branches: [0.12.0-dev] + workflow_dispatch: {} + +permissions: + contents: read + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + distro-matrix: + # Clean-machine proof per distro: build the distro image (which runs the + # full project bootstrap at image-build time), then smoke the verb surface + # inside the built container. + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + distro: [ubuntu, debian, fedora, alpine, arch] + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + - name: Build ${{ matrix.distro }} image + run: >- + docker build + -f ci/docker/${{ matrix.distro }}.Dockerfile + -t ci-matrix-${{ matrix.distro }} + . + - name: Bootstrap + verb smoke (${{ matrix.distro }}) + run: | + docker run --rm ci-matrix-${{ matrix.distro }} make help + docker run --rm ci-matrix-${{ matrix.distro }} make check + + macos: + runs-on: macos-latest + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + - name: Setup Python + uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 + with: + python-version: "3.13" + - name: Install uv + uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0 + with: + enable-cache: true + - name: Install declared toolchain + uses: jdx/mise-action@dba19683ed58901619b14f395a24841710cb4925 # v4.1.0 + - name: Bootstrap + run: make setup + - name: Verb surface + run: make help + + windows: + runs-on: windows-latest + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + - name: Setup Python + uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 + with: + python-version: "3.13" + - name: Install uv + uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0 + with: + enable-cache: true + - name: Install declared toolchain + uses: jdx/mise-action@dba19683ed58901619b14f395a24841710cb4925 # v4.1.0 + - name: Bootstrap + shell: bash + run: make setup + - name: Verb surface + shell: bash + run: make help diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 800ee4061..f8fd0377b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,10 +1,13 @@ +# Generated by flext_infra codegen for flext — DO NOT EDIT name: CI on: pull_request: + branches: + - 0.12.0-dev push: branches: - - main + - 0.12.0-dev workflow_dispatch: permissions: @@ -17,31 +20,29 @@ jobs: timeout-minutes: 60 steps: - name: Checkout - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: submodules: recursive fetch-depth: 0 - name: Setup Python - uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 + uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: python-version: "3.13" - name: Install uv - uses: astral-sh/setup-uv@e58605a9b6da7c637471fab8847a5e5a6b8df081 # v5 + uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0 with: enable-cache: true - - name: Boot (blocking) - run: make boot + - name: Install declared toolchain + uses: jdx/mise-action@dba19683ed58901619b14f395a24841710cb4925 # v4.1.0 + + - name: Setup (blocking) + run: make setup - name: Check (blocking) run: make check - - name: Test (advisory) - continue-on-error: true + - name: Test (blocking) run: make test - - - name: Val (advisory) - continue-on-error: true - run: make val diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5eaf252d3..c29fdfbcc 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -115,8 +115,8 @@ jobs: sudo apt-get update sudo apt-get install -y libldap2-dev libsasl2-dev libssl-dev - - name: Boot workspace - run: make boot + - name: Setup workspace + run: make setup - name: Run release pipeline shell: bash diff --git a/AGENTS.md b/AGENTS.md index 34c1f61f3..dc5c7f701 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -113,7 +113,18 @@ never allowed to hardcode, freeze, or implicitly assume the values that exist to rerun through it) — never a reason to route around it. Shared mutable tool state (e.g. Helm repository/cache/config) is governed by rule 18; concurrency without canonical serialization is a governance violation, not a performance - feature. + feature. **This binds DIAGNOSIS and VALIDATION exactly as it binds mutation.** + Establishing a fact about the workspace — which verbs exist, whether a gate + passes, whether two generated files agree, how a tool behaves — is itself a + validation action and MUST run through the canonical verb or the documented + CLI reading the SSOT. Ad-hoc `make -n`, `md5sum`/`diff` sweeps over generated + files, `grep` over a generated projection to infer a contract, and throwaway + reproduction scripts under `/tmp` are PROHIBITED as evidence: they read a + projection instead of its source, they are not reproducible by anyone else, + and they silently drift from the SSOT. When the fact you need has no canonical + command, that absence is the defect: add the verb/WHAT (or the CLI subcommand) + at its owner, land it with a test, and obtain the fact through it. Evidence + produced outside the canonical surface does not count as evidence. 18. **Helm is never parallelized.** Helm invocations (`dependency build/update`, `package`, `lint`, `template`, `repo *`, `registry *`, `push`, `pull`) always run serialized through the canonical Helm lock — no thread/process fan-out, diff --git a/docs/superpowers/plans/2026-07-29-flext-beads-governance-reorganization-handoff.md b/docs/superpowers/plans/2026-07-29-flext-beads-governance-reorganization-handoff.md new file mode 100644 index 000000000..e5c32ca91 --- /dev/null +++ b/docs/superpowers/plans/2026-07-29-flext-beads-governance-reorganization-handoff.md @@ -0,0 +1,314 @@ +# FLEXT Beads Governance Reorganization — Autonomous Handoff Plan + +> Status: intentionally not executed by the author of this handoff. +> This document preserves the original Beads-only plan so another orchestrator +> can execute it after the P0 `bd`/Mise hotfix. Live execution state, evidence, +> dependencies, and closure must be recorded in Beads, not maintained here. + +## Outcome + +Reorganize the FLEXT Beads graph into one precise, resumable, multi-session +control plane whose issues alone tell any agent: + +- what FLEXT owns and what AI Hub merely distributes; +- which canonical owner must change; +- which internal and external projects consume the change; +- which divergence or overlay each consumer needs; +- which GitFlow branch, pull request, commit, validation phase, and promotion + state belongs to the work; +- what was proved, what remains, and the exact next action. + +This lane changes Beads semantics only. It does not implement source, +configuration, workflow, Make, CI, documentation, branch, pull request, or +worktree changes. Those mutations belong to implementation Beads created or +linked by this reorganization. + +## Root Epic Theme and Authority + +Canonical epic theme: + +`FLEXT — Generated, self-contained conformity for workspaces, standalone projects, and external references` + +The root program must remain in the FLEXT ledger. `flext-infra` owns generic +FLEXT build and delivery behavior: Make, conform, generated project roots, +Mise, direnv, `.envrc`, workspace/standalone classification, Beads +provisioning, developer tools, formatting, linting, type gates, CI generation, +and release propagation. `flext-core` and `flext-cli` remain the SSOT for their +respective runtime and CLI domains. AI Hub owns only universal agent law, +skills, orchestration, discovery, and distribution; it must never duplicate a +FLEXT implementation. + +Use `mro-z89e` as the candidate surviving FLEXT control-program epic and +`mro-z89e.2` as the candidate `flext-infra` engine lane. Confirm both against +the live `bd 1.1.2` ledger before changing them. If live evidence identifies a +newer canonical survivor, preserve history by superseding these candidates +into that survivor rather than creating a parallel program. + +## Preconditions + +Execution starts only after all of the following are true: + +1. The canonical executable is upstream `github:gastownhall/beads` release + `1.1.2`, provisioned through the FLEXT Mise/setup contract. +2. The FLEXT ledger is recovered into the supported shared-Dolt schema with + prefix `mro`; the old embedded or development-schema ledger is retained as + a verified backup, not used as live authority. +3. `bd doctor`, `bd status`, and a backup sync succeed on the live ledger. +4. The executor captures the current root epic, all descendants, duplicate + candidates, dependency edges, external references, open branches, pull + requests, worktrees, and active assignees before the first mutation. +5. Concurrent implementation agents have bounded ownership. This lane may + update semantic Beads content, but must not steal an active implementation + issue or rewrite evidence produced by its worker. + +If any precondition fails, create or update one P0 recovery Bead and stop the +graph mutation. Do not use schema-skew bypasses, JSONL as the sync protocol, an +embedded database, or a custom Beads build. + +## Inviolable Graph Rules + +1. One outcome has one owner. Duplicate epics are superseded, never left as + competing active authorities. +2. History is preserved. “Remove” means `bd supersede` or a documented merge + into a survivor; no issue history is physically deleted. +3. Parent/child expresses decomposition. `blocks` expresses executable order. + `discovered-from` preserves provenance. Cross-project references that cannot + be represented as valid Dolt dependencies are reciprocal typed references + in both Beads, never illegal cross-database edges. +4. A Bead may not be active without an observable outcome, owner repository, + priority, issue type, acceptance contract, validation route, next action, + and stop condition. +5. No Bead may claim a branch, PR, commit, release, project status, or gate + result that was not verified from the real surface. Unknown data is recorded + as unresolved with the exact discovery command. +6. GitFlow is explicit: + `feature/*`, `bugfix/*`, or `hotfix/*` → validation on `develop` → + application of the same validated artifact to production. A new commit after + validation returns the issue to the validation phase. +7. Every branch and PR is related to exactly one implementation Bead. Every + implementation Bead records its branch, base, target, PR URL/number, head + SHA, validation SHA, and promotion status. +8. FLEXT-managed first-party projects are exhaustive checklist entries. + Third-party forks, mirrors, vendored trees, and content-only submodules are + explicitly excluded and must not receive FLEXT mutations or quality gates. +9. Divergences are represented as config-owned overlays, with an owner, + rationale, affected projects, validation, and removal condition. Duplicate + behavior outside the canonical generator is forbidden. +10. Warnings are defects. No warning is waived, suppressed, or converted into + a non-blocking note when it indicates a root-cause problem. + +## Target Graph + +The target is a small hierarchy with explicit execution order: + +| Level | Canonical responsibility | Required content | +| --- | --- | --- | +| Root program epic | FLEXT 0.12.0 development-to-production conformity | Scope, authority boundaries, global definition of done, fleet register, release sequence | +| Engine epic/lane | `flext-infra` generators and canonical Make surface | SSOT owners, generated projections, RED/GREEN/surface contracts, affected consumers | +| Domain owner links | `flext-core` and `flext-cli` changes required by the engine | Typed API/CLI contracts without duplicated infrastructure | +| Internal rollout epic | Every first-party FLEXT repository and workspace | One child/register entry per project, divergence, branch/PR/SHA, gates, status | +| External rollout epic | Independent consumers outside the FLEXT workspace | Reciprocal Bead reference, overlay, compatibility contract, branch/PR/SHA, validation | +| GitFlow promotion epic | Validated development artifact promoted unchanged | develop validation, production application, rollback evidence, release closure | +| Governance/audit lane | Staleness, duplicate ownership, broken references | Re-runnable graph checks and exact remediation | + +The existing `mro-wkii.17.41` topology/conform feature and `mro-d9d5` +idempotent `make setup` bug are implementation authorities to link beneath the +engine lane, not duplicate. Re-read their live fields and descendants before +deciding whether they remain children, blockers, or discovered implementation +work. + +## Consolidation Ledger + +The following identifiers came from the pre-hotfix audit and are candidates, +not permission to mutate blindly. Resolve their current `mro-*` IDs, status, +parents, children, dependencies, and notes with `bd 1.1.2` first. + +| Candidate | Intended action | Preservation rule | +| --- | --- | --- | +| `rysa`, `ek42`, `47r7` | Consolidate competing conform/generation epics into the surviving FLEXT engine epic | Move unique children and evidence first; supersede only after no unique scope remains | +| `m8xq.8` | Split the portion that invades generic conform ownership from its project-specific remainder | Keep domain-specific work under its original owner; link generic work to the engine | +| `zl4a.5`, `zl4a.5.1` | Re-parent Make/resolver defects out of the AWX/Teleport program | Preserve discovery provenance and link the consumer impact back to AWX/Teleport | +| `ai-hub-67xi` | Already reported superseded by `ai-hub-raur.7.4` | Verify only; do not repeat the mutation | +| timeout duplicates | Already reported consolidated into `ai-hub-7lyn.3.1.7.6` | Verify survivor contains every unique acceptance condition | +| `ai-hub-t449.10` | Reported owner of universal governance contract | Keep universal law there; link FLEXT, do not copy FLEXT implementation details into it | +| `raur.1` | Candidate surviving workspace-state execution slice | Absorb valid intent from `tael`, `mb90`, and `o13c` only after confirming they are truly duplicate or obsolete | +| `tael`, `mb90`, `o13c` | Candidate superseded workspace contracts | Preserve any unique consumer/evidence; remove obsolete “same branch for every submodule” assumptions | +| `5u5z` | Candidate owner for external dependencies | Verify authority, then move only external-consumer relationships | +| `qtka` | Candidate owner for GitFlow validation | Verify authority, then centralize validation/promotion semantics without owning implementations | +| `raur` | Candidate historical incident owner | Retain incident evidence only; no live implementation ownership | + +For every candidate, the executor records a before/after graph snapshot and a +reason. A survivor must receive unique description, design, acceptance, +dependencies, evidence, and links before the duplicate is superseded. + +## Required Content of Every Executable Bead + +Each active epic and implementation Bead must be self-sufficient and contain: + +1. **Identity:** outcome-oriented title; repository/database namespace; issue + type; priority; assignee or explicit unassigned owner. +2. **Problem reality:** current observed behavior, exact divergence, canonical + expected behavior, and why the gap matters. +3. **Authority:** canonical config/schema/generator/API owner; generated + projections and consumers; explicit no-duplicate/no-customization rule. +4. **Scope:** included projects, paths, surfaces, branches, and explicit + exclusions, especially third-party repositories. +5. **Topology classification:** workspace root, attached first-party member, + independent standalone project, external consumer, or excluded content-only + dependency. +6. **Execution contract:** ordered small slices, one Bead/branch/worktree/PR per + independently mergeable change; root-Make commands; RED→GREEN→real-surface + evidence expected from the implementation worker. +7. **GitFlow state:** branch class, branch name, base, target, PR, head SHA, + validated SHA, develop result, production result, and whether a later commit + invalidated validation. +8. **Dependencies:** parent, blockers, provenance, related external Beads, and + why each relation exists. +9. **Fleet checklist:** one row per affected internal and external project, + with divergence/overlay, status, branch/PR/SHA, gate evidence, and next + action. +10. **Evidence ledger:** command, cwd, timestamp, exit code, decisive output, + tested scope, generated-idempotence result, and real-surface artifact. +11. **Resume token:** last completed atomic action, live blocker, exact next + command, mutable files/Beads to re-read, and stop condition. +12. **Closure:** proof that no required project is missing, every dependency is + resolved, the validated artifact reached the intended environment, and all + reciprocal references agree. + +## Internal Project Register + +Derive the authoritative list from `config/workspace.yaml` and the live git +topology; never freeze a remembered list as SSOT. The root epic must contain a +generated-at-a-point-in-time execution register for: + +- the FLEXT superproject/workspace root; +- `flext-core`, `flext-cli`, `flext-infra`, and `flext-tests`; +- every first-party platform, domain, Singer tap/target, and dbt member declared + by the workspace SSOT; +- every independent first-party FLEXT project discovered by AI Hub that is not + attached to the workspace. + +Each row records classification, repository namespace, owning Bead, +development branch, GitFlow branch/PR, current SHA, conformity/setup status, +manual divergence, config overlay, required gates, and production application +status. A row may only be marked complete from repository-specific evidence. + +Submodules that are third-party forks, mirrors, vendored sources, or content +references appear in an exclusion register with the reason and the config +owner that prevents conform, lint, format, setup, CI, and release mutation. + +## External Consumer Register + +For every independent project that consumes FLEXT infrastructure: + +1. Create or identify an implementation Bead in that project's own Dolt + database. +2. Add a reciprocal reference from the FLEXT rollout Bead to the external Bead + and back, including repository, database namespace, issue ID, relation type, + and expected artifact/version. +3. Record whether the project is standalone, an external workspace, or an + excluded third-party source. +4. Record its divergence and config overlay; an overlay is allowed only when + automatic topology inference cannot express the legitimate difference. +5. Record branch, base, target, PR, head SHA, validated SHA, required Make + gates, `make setup` result, and promotion status. +6. Never use unsupported cross-database dependency edges. Reciprocal references + plus an orchestrator validation Bead are the coordination mechanism. + +The rollout epic cannot close while any external register row has an unknown +owner, missing reciprocal reference, unvalidated overlay, or unverified +production state. + +## Execution Waves + +### Wave 0 — Recover and Freeze the Semantic Baseline + +Back up and validate the shared-Dolt ledger; inventory the complete graph and +active writers; resolve all candidate aliases after schema recovery; attach the +before-state evidence to the root program. No graph mutation occurs until this +baseline is reproducible. + +### Wave 1 — Establish the Single FLEXT Program + +Enrich the surviving root and engine epics with authority, topology, +exclusions, GitFlow, fleet registers, evidence, resume token, and closure +contract. Link—not copy—the universal AI Hub governance Bead and the canonical +`flext-core`/`flext-cli` domain owners. + +### Wave 2 — Consolidate and Re-parent + +Process one duplicate family at a time. Move unique children and relations, +merge unique semantic content, validate that no active work became orphaned, +then supersede the empty duplicate. Re-parent misplaced Make/conform/resolver +defects to the engine and preserve consumer-impact links to their former +programs. + +### Wave 3 — Build the Internal Rollout Register + +Enumerate every first-party project from the topology SSOT. Create or enrich one +project-control Bead per repository that has actual rollout work. Attach +branch/PR/SHA and manual-divergence state. Link all controls to the engine +artifact and order them by blockers, not by arbitrary repository order. + +### Wave 4 — Build Reciprocal External Controls + +Discover independent consumers through AI Hub. Create or enrich their local +Beads, add reciprocal references, classify legitimate overlays, and create one +FLEXT orchestration/control row for each. Explicitly exclude third-party +repositories. + +### Wave 5 — Normalize GitFlow and Promotion Reality + +For each implementation lane, verify branch class and real remote state. +Represent the order as implementation → develop validation → production +application of the exact validated SHA/artifact. Create missing validation or +promotion Beads only when the work is genuinely absent; never create ceremony +duplicates. + +### Wave 6 — Validate and Synchronize + +Run the supported Beads integrity, lint, stale/orphan, cycle, blocked/ready, +epic-status, Dolt status, backup, and remote sync surfaces. Re-read every +modified Bead after sync. Verify reciprocal external references and every +branch/PR/SHA claim. Attach exact evidence and leave one unambiguous next action +for any intentionally open lane. + +## Validation Contract + +The reorganization is accepted only when all conditions are binary true: + +- one active FLEXT root program and one active generic infrastructure engine + own the declared scope; +- all duplicate candidates are either proven distinct or superseded with their + unique history preserved; +- no active implementation issue is orphaned, cyclic, multiply owned, or + missing an executable next action; +- every first-party internal project has an explicit rollout or explicit + not-applicable row; +- every independent external consumer has reciprocal Bead references and its + own local execution issue; +- every third-party fork/content-only source is excluded from mutation and + gates; +- every implementation lane records GitFlow branch, PR, head/validated SHA, + develop validation, and production application state; +- every warning discovered by supported Beads diagnostics has a root-cause + correction or an active blocking Bead; +- the shared-Dolt database validates, is backed up, synchronized, and re-read + successfully using canonical `bd 1.1.2`; +- another agent can resume any open lane using only its Bead and linked + authorities, without reconstructing intent from chat history. + +## Stop Condition + +Stop immediately when the live Beads graph satisfies the validation contract, +the shared-Dolt remote is synchronized, and every open Bead contains an exact +resume token. Do not proceed into implementation, branch mutation, PR changes, +worktree cleanup, or source/config edits from this lane. + +## Handoff Starting Point + +The P0 `bd`/Mise failure interrupted this plan before semantic execution. +Historical audit data identified the candidates above, but the supported +`bd 1.1.2` ledger must be recovered and queried again before they are acted +upon. Treat current live Beads data as authoritative after recovery; treat this +document and old checkpoints as intent and provenance only. diff --git a/docs/superpowers/plans/2026-07-29-p0-generic-make-setup-ai-hub-continuation.md b/docs/superpowers/plans/2026-07-29-p0-generic-make-setup-ai-hub-continuation.md new file mode 100644 index 000000000..6aa0bb825 --- /dev/null +++ b/docs/superpowers/plans/2026-07-29-p0-generic-make-setup-ai-hub-continuation.md @@ -0,0 +1,321 @@ +# Continuation Prompt — P0 Generic `make setup`, AI Hub/FLEXT Ownership + +Continue the active P0 hotfix. Do not restart discovery from zero and do not +silently narrow the operator contract. + +## Operator outcome + +Make `make setup` sufficient to bootstrap and repair any managed cloned project: + +- workspace or standalone; +- internal or external; +- workspace members automatically initialized from typed topology and installed + into the workspace `.venv` as editable packages; +- third-party forks and `content_only` Gitlinks never initialized, mutated, + formatted, linted, conformed, or gated; +- complete config-owned development toolchain provisioned through Mise, including + canonical upstream Beads where policy enables it; +- idempotent repair of missing/stale generated files, managed checkouts, tools, + virtual environment, and installed packages; +- a healthy second run must be fast, produce zero Git drift, preserve the existing + `.venv`, and avoid reinstalling unchanged packages. + +The newest ownership clarification is **AI Hub**: + +- AI Hub is the universal authority for binary installation and distribution. +- FLEXT owns FLEXT-domain generated setup behavior through + `flext-infra` config/schema/models/conform/templates. +- Do not create two installers, two catalogs, or two `.mise.toml` writers. +- First prove the exact boundary from live sources and existing Beads; then change + the canonical owner(s) in separate atomic lanes if both repositories need edits. + +## Mandatory authority and tools + +Before mutation, read completely: + +1. `/home/marlonsc/.agents/UNIVERSAL_CORE.md` +2. `/home/marlonsc/.agents/skills/inviolable-rules/SKILL.md` +3. `/home/marlonsc/.agents/skills/flext-law/SKILL.md` +4. `/home/marlonsc/flext/AGENTS.md` +5. `/home/marlonsc/.ai-hub/AGENTS.md` before any AI Hub mutation +6. active Beads and this handoff + +Use: + +- `ast-grep` for structural discovery and repeated rewrites; +- Code Review Graph **only through the CLI** + `/home/marlonsc/flext/.venv/bin/code-review-graph`; +- LSP/MCP may be used, but never the Code Review Graph MCP; +- canonical root `make` verbs for setup, generation, tests, formatting, lint, + static analysis, types, and validation; +- `rtk` prefix for shell commands. + +Never reset, restore, checkout away, clean, stash, rebase, force-push, or overwrite +unknown WIP. Never hand-edit generated projections. Never use +`--ignore-schema-skew`. + +## Active FLEXT lane + +- Repository: `flext-sh/flext-infra` +- Worktree: + `/home/marlonsc/flext/.worktrees/mro-z89e-2-2-bd-mise` +- Branch: `hotfix/mro-z89e-2-2-bd-mise-1-1-2` +- HEAD/base: + `a5db193922000e76e036931cae857e073115ffc1` + (`origin/0.12.0-dev`) +- Active Bead: `mro-z89e.2.2` +- Parent: `mro-z89e.2` +- Related: `mro-d9d5`, `mro-wkii.17.41` + +Run first: + +```bash +rtk bd show mro-z89e.2.2 --json +rtk git status --short --branch +rtk git diff -- \ + tests/unit/basemk/test_renderer.py \ + tests/unit/codegen/test_codegen_catalog_extensions.py \ + tests/unit/codegen/test_codegen_make_environment.py \ + tests/unit/workspace/test_sync_environment.py +``` + +Current lane state: only the four test files above are intentionally modified. +No production code has been changed. + +## Existing RED evidence + +All commands ran from the active FLEXT lane through root Make: + +1. `make test FILE=tests/unit/codegen/test_codegen_catalog_extensions.py MATCH=immutable` + - exit `2` + - failed because `beads_version` is `latest`, not an immutable release selector + - report: `.reports/tests/20260729T184810Z-2533649` +2. `make test FILE=tests/unit/codegen/test_codegen_make_environment.py MATCH=generated_setup_is_self_contained` + - exit `2` + - generated Make lacks Mise installation + - report: `.reports/tests/20260729T185406Z-2570963` +3. `make test FILE=tests/unit/workspace/test_sync_environment.py MATCH=conform_is_the_only_mise_writer` + - exit `2` + - legacy `sync_mise_toml` is still a duplicate writer + - report: `.reports/tests/20260729T185456Z-2574664` +4. `make test FILE=tests/unit/basemk/test_renderer.py MATCH=bootstrap_setup_is_self_contained` + - exit `2` + - standalone bootstrap lacks Mise installation + - report: `.reports/tests/20260729T185550Z-2581866` + +These are legitimate RED tests. Re-read them before extending them. Config-owned +versions must not be hardcoded in tests; derive expectations from the same typed +SSOT or prove generator/consumer round trips. + +## Known canonical sources and defects + +FLEXT: + +- `config/codegen.yaml` + - `beads_version: latest` + - typed toolchain and Make profiles are the canonical FLEXT codegen SSOT. +- `src/flext_infra/templates/project/base/.mise.toml.j2` + - generated selector already uses + `github:gastownhall/beads` conditionally. +- `src/flext_infra/templates/project/base/Makefile.j2` + - current setup runs submodule reconciliation, conform, `uv venv --clear`, + `uv sync`, and `uv pip check`; + - it does not run Mise; + - clearing `.venv` on every run violates repair/idempotence/fast-path. +- `src/flext_infra/templates/makefile_bootstrap.mk.j2` + - standalone bootstrap also clears `.venv` and lacks Mise. +- `src/flext_infra/environment.py` + - `sync_environment_files` calls both `.envrc` and legacy `.mise.toml` + synchronization; + - `sync_mise_toml`, `render_mise_toml`, `merge_custom_mise_toml`, and + `mise_tool_selectors` duplicate conform ownership. +- Legacy callers: + - `src/flext_infra/workspace/_sync_artifacts.py` + - `src/flext_infra/workspace/_migrator_artifacts.py` +- Legacy template: + - `src/flext_infra/templates/workspace_mise.toml.j2` + +AI Hub: + +- `src/ai_hub/services/workspace_base/environment.py` + delegates environment generation to + `u.AiHub.sync_environment_files`, implemented by FLEXT. +- `src/ai_hub/services/workspace_base/distribution.py` + owns universal governed-workspace distribution/orchestration. +- `src/ai_hub/services/install.py`, + `src/ai_hub/services/install_packages.py`, and + `src/ai_hub/services/ensure_venv.py` + own universal AI Hub installation behavior. +- `config/tools.yaml`, `config/products.yaml`, and `config/workspaces.yaml` + are typed AI Hub policy inputs. +- AI Hub currently has tests that expect its workspace distribution to write + `.mise.toml` through the FLEXT legacy sync route: + `tests/unit/test_aihub_distribute_workspace_base.py`. + +Do not assume the correct cutover. Prove whether AI Hub should distribute a +config/catalog input consumed by conform, or whether FLEXT project-local selectors +remain wholly FLEXT-owned while AI Hub owns only installation/runtime. The final +design must have one owner per fact and no runtime dependency on an unavailable +local AI Hub clone in a virgin external project. + +## AI Hub tracker and dirty state + +Relevant read-only Beads found: + +- `ai-hub-iwqv.1.1` + - P0, in progress; + - standalone `make setup` loses `ai-hub` before `hooks-runtime`. +- `ai-hub-qtka.1` + - P0 delivery adoption of Beads through Mise; + - currently blocked by `ai-hub-t2p6`. +- `ai-hub-t2p6` + - records upstream compatibility: + stable official `v1.1.2` supports schema through v53, while the live ledger is + schema v61; official upstream HEAD is currently schema-compatible. + +The operator nevertheless explicitly requires official `1.1.2` and recovery of +all Beads databases into shared Dolt mode. Therefore: + +- never let `1.1.2` write schema v61 with `--ignore-schema-skew`; +- preserve immutable backups; +- export with the schema-compatible current binary and import into a fresh + official-1.1.2-compatible database when executing recovery; +- do not restore a v61 physical backup into v53; +- keep database recovery as an explicit, evidenced stage after the setup owner is + fixed. + +Current `/home/marlonsc/.ai-hub` checkout is dirty on `main`: + +- modified `AGENTS.md`; +- untracked `.beads/dolt-backup-state.json`; +- untracked `.beads/dolt-backup.json`; +- untracked `session-ses_0521.md`. + +These paths are foreign WIP. Do not mutate AI Hub on this checkout. If AI Hub code +must change, update/claim the correct AI Hub Bead, create a dedicated branch and +worktree from the configured development ref, and preserve these paths. + +## Required test contract before production code + +Complete RED coverage for: + +1. Virgin standalone: + `make setup` exits `0`, provisions selectors/tools, creates a valid `.venv`, + syncs all groups/extras, and imports the project. +2. Virgin workspace: + root topology is conformed before submodule selection; only typed managed + Gitlinks initialize; all managed packages appear as editable installations; + content-only Gitlinks stay untouched. +3. Repair: + a missing/stale managed checkout, generated selector, tool, or installed venv + package is repaired by the next `make setup` without destructive Git actions. +4. Fast healthy rerun: + two consecutive runs exit `0`; the second has zero Git drift, does not execute + `venv --clear`, does not reinstall unchanged packages, and has recorded timing. +5. Ownership: + conform is the sole FLEXT `.mise.toml` writer and official Beads is selected + only where topology policy enables it. + +Prefer extending these existing fixtures/tests: + +- `tests/unit/codegen/test_codegen_make_environment.py` +- `tests/unit/codegen/test_codegen_setup_submodules.py` +- `tests/unit/codegen/test_workspace_root_setup_submodules.py` +- `tests/unit/workspace/test_workspace_root_make_contract.py` +- `tests/unit/workspace/test_sync_environment.py` +- `tests/unit/basemk/test_renderer.py` +- existing uv workspace/editable-plan tests + +Before implementing, remove positive expectations for `venv --clear`, add +forbidden assertions, add a fake Mise executable to isolated command fixtures, +and add the two-phase ordering contract: + +```text +root conform -> managed Gitlinks -> full conform -> mise install -> uv sync -> validation +``` + +Run every RED through `make test FILE=... MATCH=...`; record exact report +directories in the Bead. + +## Likely complete implementation shape + +Validate this against live code and background audit evidence before editing: + +1. Bootstrap canonical `flext-infra` without requiring the target `.venv`. +2. Conform only the root topology projection first when needed, so a virgin + workspace obtains typed Gitlink ownership markers. +3. Initialize/reconcile only managed first-party Gitlinks. +4. Conform root and managed members fully. +5. Install the generated project-local Mise selectors idempotently. +6. Run `uv sync` against the workspace root with all packages, groups, and extras, + or against the standalone project. +7. Run environment/package validation. +8. Never clear a healthy `.venv`; let `uv sync` create or repair it. +9. Use a canonical fingerprint/state comparison only if measured profiling proves + conform dominates the second run; do not add brittle timestamp stamps. +10. Remove the legacy duplicate `.mise.toml` writer and migrate every consumer in + the same cycle. + +## Fleet and exclusions + +Prior read-only inventory found 39 managed repositories: + +- FLEXT workspace root plus 31 members; +- `cosmos-main` plus 2 managed members; +- four standalone roots: + `.ai-hub`, `cosmos-docgen`, `algar-oud-mig`, + `gruponos-meltano-native`. + +Fourteen Gitlinks are immutable exclusions: + +- ten `cosmos-main` `content_only` entries; +- four vendored/data submodules under `cosmos-docgen`. + +Do not claim fleet completion from samples. After the hotfix is reviewed and +published, run rollout serially, one root/worktree/branch at a time, recording +exact command, cwd, exit, duration, Git drift, editable-package proof, and excluded +Gitlink proof. + +## Validation and landing + +After final edits, run from the active FLEXT lane: + +```bash +rtk make setup +rtk make setup +rtk make check CHECK_GATES=lint,format,pyrefly +rtk make check CHECK_GATES=pyright,mypy +rtk make test +rtk make codegen WHAT=check +``` + +Use narrower `FILE=`/`MATCH=` checks while iterating, but do not use them to evade +the final gates. Exercise real local Git clone fixtures with real `make setup`, +actual `uv`, editable-install metadata, and measured second-run timing. Prove +generated fixed point after the last edit. + +Before each commit: + +```bash +rtk git log --oneline -20 +rtk git log -5 -- +rtk git diff --cached --stat +``` + +Stage only explicit owned paths. Commit one complete green increment, push the +worker branch fast-forward, update the Bead with SHA/evidence, and open/update the +linked PR. Do not merge or promote `main` without explicit operator confirmation. +Because this is a multi-file P0 refactor, obtain a high-rigor read-only review +against the live diff and scenario evidence before declaring completion. + +## Immediate next action + +1. Re-read both repositories and relevant Beads. +2. Collect or reproduce the AI Hub/FLEXT ownership audit. +3. Complete the missing RED tests without production edits. +4. Run each RED through root Make and append evidence to `mro-z89e.2.2`. +5. Implement the smallest complete owner cutover. + +Stop only when the actual observable setup problem is solved and all declared +gates, real surfaces, rollout evidence, tracker sync, commit/push, and review are +complete. diff --git a/flext-api b/flext-api index 848c4eb96..1c3d565fd 160000 --- a/flext-api +++ b/flext-api @@ -1 +1 @@ -Subproject commit 848c4eb966605613f3fd7a4ac93c2c0de98548d6 +Subproject commit 1c3d565fd3a13400c4062d08b007296bb108e695 diff --git a/flext-auth b/flext-auth index 21a0cb71e..916e11064 160000 --- a/flext-auth +++ b/flext-auth @@ -1 +1 @@ -Subproject commit 21a0cb71e9b38b7ccdc90380a5c5346ed7e38fd1 +Subproject commit 916e110645e5c0dcdf97d8808dfc5162bb71514e diff --git a/flext-cli b/flext-cli index fb822a58c..71e260a1b 160000 --- a/flext-cli +++ b/flext-cli @@ -1 +1 @@ -Subproject commit fb822a58ce3be837d59e3b163cf88698acf30265 +Subproject commit 71e260a1b8f53b4468d4b12fdf973bd7ea5fd535 diff --git a/flext-core b/flext-core index 0ff9e108d..7ac0a7760 160000 --- a/flext-core +++ b/flext-core @@ -1 +1 @@ -Subproject commit 0ff9e108dd59d0a983df1e87a4ef5125d9ab3526 +Subproject commit 7ac0a7760aca45c8ddbc990addd7be9c08c9b04d diff --git a/flext-db-oracle b/flext-db-oracle index eddd58c30..80c780e83 160000 --- a/flext-db-oracle +++ b/flext-db-oracle @@ -1 +1 @@ -Subproject commit eddd58c30511924344894a067987e37b53215a3e +Subproject commit 80c780e8356aee91fd281d802484a43403596662 diff --git a/flext-dbt-ldap b/flext-dbt-ldap index 982a1abeb..e6b68b2ae 160000 --- a/flext-dbt-ldap +++ b/flext-dbt-ldap @@ -1 +1 @@ -Subproject commit 982a1abebed8577d00cee4d5532f6c9a13930a87 +Subproject commit e6b68b2ae6d39f5f3b0897a4a293b9ce76f41694 diff --git a/flext-dbt-ldif b/flext-dbt-ldif index e8b3765a4..df07a9974 160000 --- a/flext-dbt-ldif +++ b/flext-dbt-ldif @@ -1 +1 @@ -Subproject commit e8b3765a4f6bfb916156c17d068d7133b4184f7a +Subproject commit df07a99740133c558a6fa78ea688e8c93e88c57a diff --git a/flext-dbt-oracle b/flext-dbt-oracle index 3f91a3116..6a51c3ad1 160000 --- a/flext-dbt-oracle +++ b/flext-dbt-oracle @@ -1 +1 @@ -Subproject commit 3f91a3116f48c42c84d1dbb2ce6b82bcc45fc3ca +Subproject commit 6a51c3ad104ca5fbe9a48cf09304d5069021d869 diff --git a/flext-dbt-oracle-wms b/flext-dbt-oracle-wms index bb4dd99ab..c6dd42c48 160000 --- a/flext-dbt-oracle-wms +++ b/flext-dbt-oracle-wms @@ -1 +1 @@ -Subproject commit bb4dd99ab4fc681c91c5458f0389016c8a95a75d +Subproject commit c6dd42c48820f390c645fbdd85c1ac6e56b9699b diff --git a/flext-grpc b/flext-grpc index 06b12b0f2..7ab013edd 160000 --- a/flext-grpc +++ b/flext-grpc @@ -1 +1 @@ -Subproject commit 06b12b0f25058fe8b106b9e6bbd41e8513f966ae +Subproject commit 7ab013edd330a04f1c38518b35bc38493f121d92 diff --git a/flext-infra b/flext-infra index de0f3cf82..0ccea7f89 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit de0f3cf82ee4eca05753b85dc8e961b899aa313e +Subproject commit 0ccea7f89d9cc8190a0d37c4a6a1b885293ed303 diff --git a/flext-ldap b/flext-ldap index 76016b2ae..ddc913729 160000 --- a/flext-ldap +++ b/flext-ldap @@ -1 +1 @@ -Subproject commit 76016b2aed278789c72a2f3f77dfc7b3ce2d660c +Subproject commit ddc91372930fed6b4cba237738ad8db6f4d7b9b9 diff --git a/flext-ldif b/flext-ldif index 9487bae78..f426bbba8 160000 --- a/flext-ldif +++ b/flext-ldif @@ -1 +1 @@ -Subproject commit 9487bae780e7ae22ccbd800cc262e67d66b38868 +Subproject commit f426bbba894111c8f2d12de26388263a491701b1 diff --git a/flext-meltano b/flext-meltano index 2727a8482..59262ff3b 160000 --- a/flext-meltano +++ b/flext-meltano @@ -1 +1 @@ -Subproject commit 2727a8482f2806b88c404c1c7b241a9aade804c6 +Subproject commit 59262ff3b5ee4bf0ead396b26e722870e4a00641 diff --git a/flext-observability b/flext-observability index 54aecadd1..616175836 160000 --- a/flext-observability +++ b/flext-observability @@ -1 +1 @@ -Subproject commit 54aecadd18a51b178bddd94fe3dbf8df23b85c5b +Subproject commit 61617583620e3ba137e7d81f875fdcdb3ff74448 diff --git a/flext-oracle-oic b/flext-oracle-oic index ed430573d..d7b6107b5 160000 --- a/flext-oracle-oic +++ b/flext-oracle-oic @@ -1 +1 @@ -Subproject commit ed430573dc0ebd1591d54e955d35782d5a8670e7 +Subproject commit d7b6107b5fcc6d294d99e447410c0ef5363340b6 diff --git a/flext-oracle-wms b/flext-oracle-wms index 189af9ea6..13a1c7d8f 160000 --- a/flext-oracle-wms +++ b/flext-oracle-wms @@ -1 +1 @@ -Subproject commit 189af9ea6fb7f4015d3a495caa0e9153b8b119ab +Subproject commit 13a1c7d8fcbfc3360ffa6d0107eb172283aad903 diff --git a/flext-plugin b/flext-plugin index f9130c977..cbb7a6506 160000 --- a/flext-plugin +++ b/flext-plugin @@ -1 +1 @@ -Subproject commit f9130c9775ef135543677d2e937065f3223960e1 +Subproject commit cbb7a650627da50ac6e0d664f6b67b6d47dd8c9f diff --git a/flext-quality b/flext-quality index f9768370b..e43a87b5c 160000 --- a/flext-quality +++ b/flext-quality @@ -1 +1 @@ -Subproject commit f9768370b378eb5febaaf978d90913c6bc6610aa +Subproject commit e43a87b5cb10a154c5e09701ee38042ba2ffe184 diff --git a/flext-tap-ldap b/flext-tap-ldap index f703e8b7c..bd32bd357 160000 --- a/flext-tap-ldap +++ b/flext-tap-ldap @@ -1 +1 @@ -Subproject commit f703e8b7ccc12c9728cbf5ae39babd066504d1c7 +Subproject commit bd32bd357a8838c2dd5f0b3b1f4c59cdc81f4cd2 diff --git a/flext-tap-ldif b/flext-tap-ldif index e685a6f3f..86b636b15 160000 --- a/flext-tap-ldif +++ b/flext-tap-ldif @@ -1 +1 @@ -Subproject commit e685a6f3f8d4015697745c921565e2b89a655968 +Subproject commit 86b636b15c5f601a79f225505be1297e83b0e1c2 diff --git a/flext-tap-oracle b/flext-tap-oracle index 482217b09..ee8e67852 160000 --- a/flext-tap-oracle +++ b/flext-tap-oracle @@ -1 +1 @@ -Subproject commit 482217b099977ce9d801af66fd84cb5f010b77bc +Subproject commit ee8e67852c63eee46e3e9f1d95bc341c396866c6 diff --git a/flext-tap-oracle-oic b/flext-tap-oracle-oic index ff5c2f76c..b8d7c929b 160000 --- a/flext-tap-oracle-oic +++ b/flext-tap-oracle-oic @@ -1 +1 @@ -Subproject commit ff5c2f76c310b78ce73731c594c99345c06aaafe +Subproject commit b8d7c929bb35443bcb810d97cb8f27eefd5d772e diff --git a/flext-tap-oracle-wms b/flext-tap-oracle-wms index b423eab89..3d45e0179 160000 --- a/flext-tap-oracle-wms +++ b/flext-tap-oracle-wms @@ -1 +1 @@ -Subproject commit b423eab897fe58b2f081a7d0e36b7798173f8489 +Subproject commit 3d45e01797536812ef0558a721480a0073cb950f diff --git a/flext-target-ldap b/flext-target-ldap index 905324658..627987ed0 160000 --- a/flext-target-ldap +++ b/flext-target-ldap @@ -1 +1 @@ -Subproject commit 905324658bf2dbf5b3930f2ec84fe8994c268504 +Subproject commit 627987ed078f0460cb2cec94c059e64c394f3408 diff --git a/flext-target-ldif b/flext-target-ldif index d06b139a6..3b6134a1b 160000 --- a/flext-target-ldif +++ b/flext-target-ldif @@ -1 +1 @@ -Subproject commit d06b139a65b0ec67d704115e99b8356f1bbc5a32 +Subproject commit 3b6134a1b76ea317c366b42be6aaefed20601526 diff --git a/flext-target-oracle b/flext-target-oracle index 3db6dc8a4..d7589a685 160000 --- a/flext-target-oracle +++ b/flext-target-oracle @@ -1 +1 @@ -Subproject commit 3db6dc8a46b194e7998ff466e0335d67c922310e +Subproject commit d7589a685822cf3f19e6f026c39ef7c75a37aeba diff --git a/flext-target-oracle-oic b/flext-target-oracle-oic index dfd3a8fd1..e9169f837 160000 --- a/flext-target-oracle-oic +++ b/flext-target-oracle-oic @@ -1 +1 @@ -Subproject commit dfd3a8fd13d29b1ade930f9aa8cffb32532852be +Subproject commit e9169f837831550ba201c0244981073c8f560a1f diff --git a/flext-target-oracle-wms b/flext-target-oracle-wms index 54e559dc7..c336a59af 160000 --- a/flext-target-oracle-wms +++ b/flext-target-oracle-wms @@ -1 +1 @@ -Subproject commit 54e559dc7a63e1acc4c90d38c507b600325be923 +Subproject commit c336a59af06e063d3e62d696bae99ad9769467cb diff --git a/flext-tests b/flext-tests index b0e4230bb..3c1bf6807 160000 --- a/flext-tests +++ b/flext-tests @@ -1 +1 @@ -Subproject commit b0e4230bb1b977cb4e404a88b725ee83cf7f992e +Subproject commit 3c1bf6807c6a8236dafaf94e00f2d76e73e66e06 diff --git a/flext-web b/flext-web index d23d889c5..834a2093b 160000 --- a/flext-web +++ b/flext-web @@ -1 +1 @@ -Subproject commit d23d889c5c3d3df22247714ad50ccba456f8d850 +Subproject commit 834a2093ba3285e1640584baa4fd751fc69272b3 diff --git a/tests/unit/libs/versioning_tests.py b/tests/unit/libs/versioning_tests.py index 5a13978b1..35163e6d4 100644 --- a/tests/unit/libs/versioning_tests.py +++ b/tests/unit/libs/versioning_tests.py @@ -8,7 +8,6 @@ from typing import TYPE_CHECKING from flext_tests import tm - from tests.infra.constants import c from tests.infra.utilities import u diff --git a/uv.lock b/uv.lock index 9b502d3b0..7b6c95412 100644 --- a/uv.lock +++ b/uv.lock @@ -44,6 +44,12 @@ members = [ ] constraints = [{ name = "uv", specifier = "==0.11.32" }] +[[package]] +name = "actionlint-py" +version = "1.7.12.24" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6f/0b/3f29683dfbe94208fb5c3806806a6ef419972892e25c3c4f95198f68c978/actionlint_py-1.7.12.24.tar.gz", hash = "sha256:7571b0724fde79b2572b98b2b53792c470249d4db29951b57fc49b9cd3eaf11e", size = 12071, upload-time = "2026-03-31T06:21:35.015Z" } + [[package]] name = "agate" version = "1.9.1" @@ -1231,15 +1237,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/de/15/545e2b6cf2e3be84bc1ed85613edd75b8aea69807a71c26f4ca6a9258e82/email_validator-2.3.0-py3-none-any.whl", hash = "sha256:80f13f623413e6b197ae73bb10bf4eb0908faf509ad8362c5edeb0be7fd450b4", size = 35604, upload-time = "2025-08-26T13:09:05.858Z" }, ] -[[package]] -name = "et-xmlfile" -version = "2.0.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d3/38/af70d7ab1ae9d4da450eeec1fa3918940a5fafb9055e934af8d6eb0c2313/et_xmlfile-2.0.0.tar.gz", hash = "sha256:dab3f4764309081ce75662649be815c4c9081e88f0837825f90fd28317d4da54", size = 17234, upload-time = "2024-10-25T17:25:40.039Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c1/8b/5fe2cc11fee489817272089c4203e679c63b570a5aaeb18d852ae3cbba6a/et_xmlfile-2.0.0-py3-none-any.whl", hash = "sha256:7a91720bc756843502c3b7504c77b8fe44217c85c537d85037f0f536151b2caa", size = 18059, upload-time = "2024-10-25T17:25:39.051Z" }, -] - [[package]] name = "exceptiongroup" version = "1.3.1" @@ -1372,11 +1369,11 @@ server = [ [[package]] name = "filelock" -version = "3.31.0" +version = "3.32.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/4a/9f/994e80905542b748eb5b9f36d71458f0aea51a7be0fcb52ad959787dc1b7/filelock-3.31.0.tar.gz", hash = "sha256:c188cbc4307c18894c5424fa73f97ea7fa127ddf62192487546da3a214d0a381", size = 180931, upload-time = "2026-07-18T05:53:29.262Z" } +sdist = { url = "https://files.pythonhosted.org/packages/c0/80/8232b582c4b318b817cf1274ba74976b07b34d35ef439b3eb948f98645a1/filelock-3.32.0.tar.gz", hash = "sha256:7be2ad23a14607ccc71808e68fe30848aeace7058ace17852f68e2a68e310402", size = 213757, upload-time = "2026-07-21T13:17:42.898Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/5b/4a/e213905d3b8ad3d35d14fc056b36134a274e7f6a1050e94428b5be10a94c/filelock-3.31.0-py3-none-any.whl", hash = "sha256:739b73e580fe88bb78d830aeddbc492519ece3d97ac8368de13a2032c61010c1", size = 96080, upload-time = "2026-07-18T05:53:27.732Z" }, + { url = "https://files.pythonhosted.org/packages/06/79/b4c714bef36bc4ec2beeae1e0c124f0223888cd8c6feb1cdc56038116920/filelock-3.32.0-py3-none-any.whl", hash = "sha256:d396bea984af47333ef05e50eae7eff88c84256de6112aea0ec48a233c064fe3", size = 97732, upload-time = "2026-07-21T13:17:41.55Z" }, ] [[package]] @@ -2331,30 +2328,8 @@ dev = [ [[package]] name = "flext-cli" -version = "0.12.0rc0" +version = "0.12.0.dev0" source = { editable = "flext-cli" } -dependencies = [ - { name = "cachetools" }, - { name = "click" }, - { name = "defusedxml" }, - { name = "flext-core" }, - { name = "jinja2" }, - { name = "jsonschema" }, - { name = "openpyxl" }, - { name = "pluggy" }, - { name = "prompt-toolkit" }, - { name = "pydantic" }, - { name = "pydantic-core" }, - { name = "pydantic-settings" }, - { name = "python-docx" }, - { name = "python-pptx" }, - { name = "pyyaml" }, - { name = "rich" }, - { name = "ruamel-yaml" }, - { name = "tabulate" }, - { name = "tomlkit" }, - { name = "typer" }, -] [package.optional-dependencies] dev = [ @@ -2367,6 +2342,7 @@ dev = [ { name = "django-stubs" }, { name = "factory-boy" }, { name = "faker" }, + { name = "flext-tests" }, { name = "hypothesis" }, { name = "isort" }, { name = "matplotlib-stubs" }, @@ -2390,6 +2366,7 @@ dev = [ { name = "mkdocstrings-python" }, { name = "pip-audit" }, { name = "pre-commit" }, + { name = "psutil" }, { name = "pylint" }, { name = "pyrefly" }, { name = "pytest" }, @@ -2416,6 +2393,7 @@ dev = [ { name = "types-flask" }, { name = "types-jsonschema" }, { name = "types-ldap3" }, + { name = "types-openpyxl" }, { name = "types-paramiko" }, { name = "types-protobuf" }, { name = "types-psutil" }, @@ -2437,83 +2415,19 @@ dev = [ codegen = [ { name = "flext-infra" }, ] -dev = [ - { name = "autoflake" }, - { name = "bandit" }, - { name = "black" }, - { name = "blacken-docs" }, - { name = "codespell" }, - { name = "deptry" }, - { name = "django-stubs" }, - { name = "factory-boy" }, - { name = "faker" }, - { name = "flext-tests" }, - { name = "hypothesis" }, - { name = "isort" }, - { name = "matplotlib-stubs" }, - { name = "mkdocs" }, - { name = "mkdocs-awesome-pages-plugin" }, - { name = "mkdocs-encryptcontent-plugin" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-get-deps" }, - { name = "mkdocs-git-revision-date-localized-plugin" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-macros-plugin" }, - { name = "mkdocs-material" }, - { name = "mkdocs-material-extensions" }, - { name = "mkdocs-mermaid2-plugin" }, - { name = "mkdocs-minify-plugin" }, - { name = "mkdocs-print-site-plugin" }, - { name = "mkdocs-redirects" }, - { name = "mkdocs-section-index" }, - { name = "mkdocs-versioning" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "pip-audit" }, - { name = "pre-commit" }, - { name = "psutil" }, - { name = "pylint" }, - { name = "pyrefly" }, - { name = "pytest" }, - { name = "pytest-benchmark" }, - { name = "pytest-clarity" }, - { name = "pytest-codeblocks" }, - { name = "pytest-cov" }, - { name = "pytest-deadfixtures" }, - { name = "pytest-env" }, - { name = "pytest-markdown-docs" }, - { name = "pytest-mock" }, - { name = "pytest-randomly" }, - { name = "pytest-sugar" }, - { name = "pytest-timeout" }, - { name = "pytest-xdist" }, - { name = "pyupgrade" }, - { name = "radon" }, - { name = "ruff" }, - { name = "types-cachetools" }, - { name = "types-cffi" }, - { name = "types-click" }, - { name = "types-defusedxml" }, - { name = "types-docker" }, - { name = "types-flask" }, - { name = "types-jsonschema" }, - { name = "types-ldap3" }, - { name = "types-openpyxl" }, - { name = "types-paramiko" }, - { name = "types-protobuf" }, - { name = "types-psutil" }, - { name = "types-psycopg2" }, - { name = "types-pyasn1" }, - { name = "types-pyopenssl" }, - { name = "types-python-dateutil" }, - { name = "types-pyyaml" }, - { name = "types-redis" }, - { name = "types-requests" }, - { name = "types-setuptools" }, - { name = "types-tabulate" }, - { name = "types-toml" }, - { name = "vulture" }, - { name = "yamlfix" }, +dependencies = [ + { name = "click" }, + { name = "flext-core" }, + { name = "pluggy" }, + { name = "prompt-toolkit" }, + { name = "pydantic" }, + { name = "pydantic-core" }, + { name = "pydantic-settings" }, + { name = "pyyaml" }, + { name = "rich" }, + { name = "tabulate" }, + { name = "tomlkit" }, + { name = "typer" }, ] [package.metadata] @@ -2522,19 +2436,14 @@ requires-dist = [ { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, - { name = "cachetools", specifier = ">=6.2,<7.0" }, - { name = "click", specifier = ">=8.3.3" }, { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, - { name = "defusedxml", specifier = ">=0.7.1" }, { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, - { name = "flext-core", editable = "flext-core" }, + { name = "flext-tests", marker = "extra == 'dev'", editable = "flext-tests" }, { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "jinja2", specifier = ">=3.1.6" }, - { name = "jsonschema", specifier = ">=4.26.0" }, { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, @@ -2554,14 +2463,9 @@ requires-dist = [ { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, - { name = "openpyxl", specifier = ">=3.1.5" }, { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, - { name = "pluggy", specifier = ">=1.6.0" }, { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, - { name = "prompt-toolkit", specifier = ">=3.0.52" }, - { name = "pydantic", specifier = ">=2.13.3" }, - { name = "pydantic-core", specifier = ">=2.46.3" }, - { name = "pydantic-settings", specifier = ">=2.14.0" }, + { name = "psutil", marker = "extra == 'dev'", specifier = ">=7.2.2" }, { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, @@ -2577,17 +2481,9 @@ requires-dist = [ { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, - { name = "python-docx", specifier = ">=1.1.2" }, - { name = "python-pptx", specifier = ">=1.0.2" }, { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, - { name = "pyyaml", specifier = ">=6.0.3" }, { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "rich", specifier = ">=14,<15" }, - { name = "ruamel-yaml", specifier = ">=0.18.16" }, { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, - { name = "tabulate", specifier = ">=0.10.0" }, - { name = "tomlkit", specifier = ">=0.14.0" }, - { name = "typer", specifier = ">=0.25.1" }, { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, @@ -2596,6 +2492,7 @@ requires-dist = [ { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, + { name = "types-openpyxl", marker = "extra == 'dev'", specifier = ">=3.1.5.20260518" }, { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, @@ -2616,83 +2513,19 @@ provides-extras = ["dev"] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] -dev = [ - { name = "autoflake", specifier = ">=2.3.1" }, - { name = "bandit", specifier = ">=1.8" }, - { name = "black", specifier = ">=25.1" }, - { name = "blacken-docs", specifier = ">=1.19" }, - { name = "codespell", specifier = ">=2.3" }, - { name = "deptry", specifier = ">=0.23" }, - { name = "django-stubs", specifier = ">=5.2.2" }, - { name = "factory-boy", specifier = ">=3.3.1" }, - { name = "faker", specifier = ">=37.4" }, - { name = "flext-tests", editable = "flext-tests" }, - { name = "hypothesis", specifier = ">=6.125" }, - { name = "isort", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", specifier = ">=0.3" }, - { name = "mkdocs", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", specifier = ">=2" }, - { name = "mkdocs-exclude", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", specifier = ">=1" }, - { name = "mkdocs-material", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", specifier = ">=0.8" }, - { name = "mkdocs-redirects", specifier = ">=1.2" }, - { name = "mkdocs-section-index", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", specifier = ">=0.2" }, - { name = "mkdocstrings", specifier = ">=0.24" }, - { name = "mkdocstrings-python", specifier = ">=1.7" }, - { name = "pip-audit", specifier = ">=2.7.3" }, - { name = "pre-commit", specifier = ">=4.6.0" }, - { name = "psutil", specifier = ">=7.2.2" }, - { name = "pylint", specifier = ">=3.3" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", specifier = ">=8.4" }, - { name = "pytest-benchmark", specifier = ">=5.1" }, - { name = "pytest-clarity", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", specifier = ">=0.17.0" }, - { name = "pytest-cov", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", specifier = ">=2.2.1" }, - { name = "pytest-env", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", specifier = ">=0.9.2" }, - { name = "pytest-mock", specifier = ">=3.14" }, - { name = "pytest-randomly", specifier = ">=3.16" }, - { name = "pytest-sugar", specifier = ">=1" }, - { name = "pytest-timeout", specifier = ">=2.4" }, - { name = "pytest-xdist", specifier = ">=3.8" }, - { name = "pyupgrade", specifier = ">=3.19" }, - { name = "radon", specifier = ">=6.0.1" }, - { name = "ruff", specifier = ">=0.12.3" }, - { name = "types-cachetools", specifier = ">=6.2" }, - { name = "types-cffi", specifier = ">=2.0" }, - { name = "types-click", specifier = ">=7.1" }, - { name = "types-defusedxml", specifier = ">=0.7" }, - { name = "types-docker", specifier = ">=7.1" }, - { name = "types-flask", specifier = ">=1.1.6" }, - { name = "types-jsonschema", specifier = ">=4.26" }, - { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, - { name = "types-openpyxl", specifier = ">=3.1.5.20260518" }, - { name = "types-paramiko", specifier = ">=4.0" }, - { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", specifier = ">=7" }, - { name = "types-psycopg2", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", specifier = ">=0.6" }, - { name = "types-pyopenssl", specifier = ">=24.1" }, - { name = "types-python-dateutil", specifier = ">=2.9" }, - { name = "types-pyyaml", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", specifier = ">=4.6" }, - { name = "types-requests", specifier = ">=2.32.4" }, - { name = "types-setuptools", specifier = ">=80.9" }, - { name = "types-tabulate", specifier = ">=0.10" }, - { name = "types-toml", specifier = ">=0.10.8.20240310" }, - { name = "vulture", specifier = ">=2.13" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, +dependencies = [ + { name = "click", specifier = ">=8.3.3" }, + { name = "flext-core", editable = "flext-core" }, + { name = "pluggy", specifier = ">=1.6.0" }, + { name = "prompt-toolkit", specifier = ">=3.0.52" }, + { name = "pydantic", specifier = ">=2.13.3" }, + { name = "pydantic-core", specifier = ">=2.46.3" }, + { name = "pydantic-settings", specifier = ">=2.14.0" }, + { name = "pyyaml", specifier = ">=6.0.3" }, + { name = "rich", specifier = ">=14,<14.4" }, + { name = "tabulate", specifier = ">=0.10.0" }, + { name = "tomlkit", specifier = ">=0.14.0" }, + { name = "typer", specifier = ">=0.25.1" }, ] [[package]] @@ -4918,6 +4751,7 @@ version = "0.12.0rc0" source = { editable = "flext-infra" } dependencies = [ { name = "defusedxml" }, + { name = "filelock" }, { name = "flext-cli" }, { name = "flext-core" }, { name = "gitpython" }, @@ -4928,11 +4762,14 @@ dependencies = [ { name = "mkdocs-section-index" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "pyrefly" }, { name = "rope" }, + { name = "ruff" }, ] [package.dev-dependencies] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -4964,10 +4801,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -4984,6 +4823,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -5012,95 +4852,102 @@ dev = [ [package.metadata] requires-dist = [ { name = "defusedxml", specifier = ">=0.7.1" }, + { name = "filelock", specifier = ">=3.32.0" }, { name = "flext-cli", editable = "flext-cli" }, { name = "flext-core", editable = "flext-core" }, - { name = "gitpython", specifier = ">=3.1.49" }, + { name = "gitpython", specifier = ">=3.1.57" }, { name = "libcst", specifier = ">=1.8.6" }, { name = "mkdocs", specifier = ">=1.6.1" }, { name = "mkdocs-exclude", specifier = ">=1.0.2" }, - { name = "mkdocs-material", specifier = ">=9.7.6" }, + { name = "mkdocs-material", specifier = ">=9.7.7" }, { name = "mkdocs-section-index", specifier = ">=0.3.12" }, - { name = "mkdocstrings", specifier = ">=1.0.4" }, - { name = "mkdocstrings-python", specifier = ">=2.0.3" }, + { name = "mkdocstrings", specifier = ">=1.0.6" }, + { name = "mkdocstrings-python", specifier = ">=2.0.5" }, + { name = "pyrefly", specifier = ">=1.1.1" }, { name = "rope", specifier = ">=1.14.0" }, + { name = "ruff", specifier = ">=0.16.0" }, ] [package.metadata.requires-dev] dev = [ - { name = "autoflake", specifier = ">=2.3.1" }, - { name = "bandit", specifier = ">=1.8" }, - { name = "black", specifier = ">=25.1" }, - { name = "blacken-docs", specifier = ">=1.19" }, - { name = "codespell", specifier = ">=2.3" }, - { name = "deptry", specifier = ">=0.23" }, - { name = "django-stubs", specifier = ">=5.2.2" }, - { name = "factory-boy", specifier = ">=3.3.1" }, - { name = "faker", specifier = ">=37.4" }, + { name = "actionlint-py", specifier = ">=1.7.12.24" }, + { name = "autoflake", specifier = ">=2.3.3" }, + { name = "bandit", specifier = ">=1.9.4" }, + { name = "black", specifier = ">=26.5.1" }, + { name = "blacken-docs", specifier = ">=1.20.0" }, + { name = "codespell", specifier = ">=2.4.3" }, + { name = "deptry", specifier = ">=0.25.1" }, + { name = "django-stubs", specifier = ">=6.0.7" }, + { name = "factory-boy", specifier = ">=3.3.3" }, + { name = "faker", specifier = ">=40.36.0" }, { name = "flext-tests", editable = "flext-tests" }, - { name = "hypothesis", specifier = ">=6.125" }, - { name = "isort", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", specifier = ">=0.3" }, - { name = "mkdocs", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", specifier = ">=2" }, + { name = "hypothesis", specifier = ">=6.163.0" }, + { name = "isort", specifier = ">=8.0.1" }, + { name = "matplotlib-stubs", specifier = ">=0.3.11" }, + { name = "mkdocs", specifier = ">=1.6.1" }, + { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.10.1" }, + { name = "mkdocs-encryptcontent-plugin", specifier = ">=3.1.0" }, { name = "mkdocs-exclude", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", specifier = ">=1" }, - { name = "mkdocs-material", specifier = ">=9.5" }, + { name = "mkdocs-get-deps", specifier = ">=0.2.2" }, + { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.5.3" }, + { name = "mkdocs-literate-nav", specifier = ">=0.6.3" }, + { name = "mkdocs-macros-plugin", specifier = ">=1.5.0" }, + { name = "mkdocs-material", specifier = ">=9.7.7" }, { name = "mkdocs-material-extensions", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", specifier = ">=0.8" }, - { name = "mkdocs-redirects", specifier = ">=1.2" }, + { name = "mkdocs-mermaid2-plugin", specifier = ">=1.2.3" }, + { name = "mkdocs-minify-plugin", specifier = ">=0.8.0" }, + { name = "mkdocs-print-site-plugin", specifier = ">=2.8" }, + { name = "mkdocs-redirects", specifier = ">=1.2.3" }, { name = "mkdocs-section-index", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", specifier = ">=0.2" }, - { name = "mkdocstrings", specifier = ">=0.24" }, - { name = "mkdocstrings-python", specifier = ">=1.7" }, - { name = "pip-audit", specifier = ">=2.7.3" }, - { name = "pre-commit", specifier = ">=4.6.0" }, - { name = "pylint", specifier = ">=3.3" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", specifier = ">=8.4" }, - { name = "pytest-benchmark", specifier = ">=5.1" }, + { name = "mkdocs-versioning", specifier = ">=0.4.0" }, + { name = "mkdocstrings", specifier = ">=1.0.6" }, + { name = "mkdocstrings-python", specifier = ">=2.0.5" }, + { name = "mypy", specifier = ">=2.3.0" }, + { name = "pip-audit", specifier = ">=2.10.1" }, + { name = "pre-commit", specifier = ">=4.6.1" }, + { name = "pylint", specifier = ">=4.0.6" }, + { name = "pyrefly", specifier = ">=1.1.1" }, + { name = "pyright", specifier = ">=1.1.411" }, + { name = "pytest", specifier = ">=9.1.1" }, + { name = "pytest-benchmark", specifier = ">=5.2.3" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", specifier = ">=0.17.0" }, - { name = "pytest-cov", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", specifier = ">=2.2.1" }, - { name = "pytest-env", specifier = ">=1.1.5" }, + { name = "pytest-codeblocks", specifier = ">=0.18.0" }, + { name = "pytest-cov", specifier = ">=7.1.0" }, + { name = "pytest-deadfixtures", specifier = ">=3.1.0" }, + { name = "pytest-env", specifier = ">=1.7.0" }, { name = "pytest-markdown-docs", specifier = ">=0.9.2" }, - { name = "pytest-mock", specifier = ">=3.14" }, - { name = "pytest-randomly", specifier = ">=3.16" }, - { name = "pytest-sugar", specifier = ">=1" }, - { name = "pytest-timeout", specifier = ">=2.4" }, - { name = "pytest-xdist", specifier = ">=3.8" }, - { name = "pyupgrade", specifier = ">=3.19" }, + { name = "pytest-mock", specifier = ">=3.15.1" }, + { name = "pytest-randomly", specifier = ">=4.1.0" }, + { name = "pytest-sugar", specifier = ">=1.1.1" }, + { name = "pytest-timeout", specifier = ">=2.4.0" }, + { name = "pytest-xdist", specifier = ">=3.8.0" }, + { name = "pyupgrade", specifier = ">=3.21.2" }, { name = "radon", specifier = ">=6.0.1" }, - { name = "ruff", specifier = ">=0.12.3" }, - { name = "types-cachetools", specifier = ">=6.2" }, - { name = "types-cffi", specifier = ">=2.0" }, - { name = "types-click", specifier = ">=7.1" }, - { name = "types-defusedxml", specifier = ">=0.7" }, - { name = "types-docker", specifier = ">=7.1" }, + { name = "ruff", specifier = ">=0.16.0" }, + { name = "rumdl", specifier = ">=0.2.45" }, + { name = "types-cachetools", specifier = ">=7.0.0.20260713" }, + { name = "types-cffi", specifier = ">=2.0.0.20260518" }, + { name = "types-click", specifier = ">=7.1.8" }, + { name = "types-defusedxml", specifier = ">=0.7.0.20260504" }, + { name = "types-docker", specifier = ">=7.2.0.20260728" }, { name = "types-flask", specifier = ">=1.1.6" }, - { name = "types-jsonschema", specifier = ">=4.26" }, - { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", specifier = ">=4.0" }, - { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", specifier = ">=7" }, - { name = "types-psycopg2", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", specifier = ">=0.6" }, - { name = "types-pyopenssl", specifier = ">=24.1" }, - { name = "types-python-dateutil", specifier = ">=2.9" }, - { name = "types-pyyaml", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", specifier = ">=4.6" }, - { name = "types-requests", specifier = ">=2.32.4" }, - { name = "types-setuptools", specifier = ">=80.9" }, - { name = "types-tabulate", specifier = ">=0.10" }, - { name = "types-toml", specifier = ">=0.10.8.20240310" }, - { name = "vulture", specifier = ">=2.13" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, + { name = "types-jsonschema", specifier = ">=4.26.0.20260518" }, + { name = "types-ldap3", specifier = ">=2.9.13.20260518" }, + { name = "types-paramiko", specifier = ">=5.0.0.20260724" }, + { name = "types-protobuf", specifier = ">=7.34.1.20260518" }, + { name = "types-psutil", specifier = ">=7.2.2.20260518" }, + { name = "types-psycopg2", specifier = ">=2.9.21.20260724" }, + { name = "types-pyasn1", specifier = ">=0.6.0.20260724" }, + { name = "types-pyopenssl", specifier = ">=24.1.0.20240722" }, + { name = "types-python-dateutil", specifier = ">=2.9.0.20260716" }, + { name = "types-pyyaml", specifier = ">=6.0.12.20260724" }, + { name = "types-redis", specifier = ">=4.6.0.20241004" }, + { name = "types-requests", specifier = ">=2.33.0.20260712" }, + { name = "types-setuptools", specifier = ">=83.0.0.20260724" }, + { name = "types-tabulate", specifier = ">=0.10.0.20260508" }, + { name = "types-toml", specifier = ">=0.10.8.20260518" }, + { name = "vulture", specifier = ">=2.16" }, + { name = "yamlfix", specifier = ">=1.19.1" }, ] [[package]] @@ -6391,7 +6238,7 @@ requires-dist = [ { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "rich", specifier = ">=14,<15" }, + { name = "rich", specifier = ">=14,<14.4" }, { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, { name = "starlette", specifier = ">=1.0.0" }, { name = "structlog", specifier = ">=25.5.0" }, @@ -7497,7 +7344,7 @@ requires-dist = [ { name = "pyright", specifier = ">=1.1.411" }, { name = "pyyaml", specifier = ">=6.0.3" }, { name = "referencing", specifier = ">=0.37.0" }, - { name = "rich", specifier = ">=14,<15" }, + { name = "rich", specifier = ">=14,<14.4" }, { name = "schedule", specifier = ">=1.2.2" }, { name = "typer", specifier = ">=0.25.1" }, { name = "uvicorn", specifier = ">=0.51.0" }, @@ -10148,7 +9995,7 @@ requires-dist = [ { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, { name = "pyyaml", specifier = ">=6.0.3" }, { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "rich", specifier = ">=14,<15" }, + { name = "rich", specifier = ">=14,<14.4" }, { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, @@ -11732,14 +11579,14 @@ wheels = [ [[package]] name = "gitpython" -version = "3.1.52" +version = "3.1.57" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "gitdb" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/e5/fd/df0bafa4eb5ea2f51e1adee9f7a94c8e62c5d180e65117045dfca3439c8a/gitpython-3.1.52.tar.gz", hash = "sha256:de0a8ad86274c6e75ae8b37dd055ba68f19818c813108642263227b20775b48e", size = 223726, upload-time = "2026-07-16T03:15:59.599Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ba/0d/132ed135c871b6bf91adf16a0e43797cd535b81d4973b5d09291c54fc5ee/gitpython-3.1.57.tar.gz", hash = "sha256:c493ec57c0ef6b19743798b6a5af859c71814b524e7e6f97baa2f8e658961488", size = 225898, upload-time = "2026-07-26T07:33:26.351Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/8d/90/04dff7c1e176bb1c3011ef1647393d368790da710d8dde1cdcfad301f45a/gitpython-3.1.52-py3-none-any.whl", hash = "sha256:79a36ee1f83523214a3f72d56cf1c4e490d577dc61af77e43dfe5862bd9da01a", size = 215366, upload-time = "2026-07-16T03:15:58.239Z" }, + { url = "https://files.pythonhosted.org/packages/41/6e/2139de986d9c7c3ac86f1f8be43858ce90bdfe2f7175e6c80c650ba15242/gitpython-3.1.57-py3-none-any.whl", hash = "sha256:4ccf7d73c10f5c9e76043fbb2675ac5a1b3ff5b41e648f56bcbed5f63792ecaf", size = 217151, upload-time = "2026-07-26T07:33:24.838Z" }, ] [[package]] @@ -11947,31 +11794,33 @@ wheels = [ [[package]] name = "hypothesis" -version = "6.161.2" +version = "6.163.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "sortedcontainers" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f7/5b/98162d7cf48866e18b59d12e975229af411575a20d9a75c303345cc3380b/hypothesis-6.161.2.tar.gz", hash = "sha256:e25f1e6f8a2ea4cadfeaeba18cb8676e5510f52fefd5c9bc165e3eb81e1ef497", size = 486148, upload-time = "2026-07-24T06:43:23.774Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/89/8f/a565e6ab67de327eee310ef306d715d8f5143e729835450715dde121e912/hypothesis-6.161.2-cp310-abi3-macosx_10_12_x86_64.whl", hash = "sha256:c61b868484dbcd9d2d6d25662f60fa2cee464d18061315efd997efe721250f14", size = 766523, upload-time = "2026-07-24T06:42:57.381Z" }, - { url = "https://files.pythonhosted.org/packages/92/d7/5deb1e38c8c253c879bec75a95fe0ff01d60366d7bd33c59012a8d23a8a1/hypothesis-6.161.2-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:b22012a92b8d2f70f7e7a6a4761166b920edf92900de458d6c9d272057dd48d8", size = 762160, upload-time = "2026-07-24T06:42:21.945Z" }, - { url = "https://files.pythonhosted.org/packages/dd/21/1f03b88df69b9b22429ad608c7a4778e01e9bb10656142e0426dbf0865eb/hypothesis-6.161.2-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d59687ed88b290e450505d71a5950422d39791dbaf48a4159b876634976e7898", size = 1091358, upload-time = "2026-07-24T06:42:03.947Z" }, - { url = "https://files.pythonhosted.org/packages/70/9f/5c761fdb60ed5c547b6803620822bca14486fda32d785a31416f1bbab970/hypothesis-6.161.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7af888ad7fe38c33112fde21756621b0d8f69167bbb01a5d66569aa90d6c692c", size = 1140836, upload-time = "2026-07-24T06:43:22.104Z" }, - { url = "https://files.pythonhosted.org/packages/1e/d5/1eb85756989ea885c325442ef2ebe5bd7347cbd4f99a907c384d10b343e5/hypothesis-6.161.2-cp310-abi3-manylinux_2_31_riscv64.whl", hash = "sha256:9bd07a407addd5a9318305bc3cf78215662c6970b699a2df610955bf41750abc", size = 1096169, upload-time = "2026-07-24T06:42:09.992Z" }, - { url = "https://files.pythonhosted.org/packages/08/0e/c65f8c76f4d9d54203cbe5df6cf33e9b918629150b526d5df0ca5350b9fe/hypothesis-6.161.2-cp310-abi3-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:140e154d7317e8fcb538a8ff1c7b8ee52b67c9ab53647078e11cb950d2264c11", size = 1132927, upload-time = "2026-07-24T06:42:49.536Z" }, - { url = "https://files.pythonhosted.org/packages/37/da/be099e47ec288a8ce7a9030c47882166694b62c0fcd5d468f46559333848/hypothesis-6.161.2-cp310-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:febed60ec1ce744040f8f1e94a994a567a61b3f4bd82be4c3883b93ac76ec58a", size = 1265174, upload-time = "2026-07-24T06:42:34.36Z" }, - { url = "https://files.pythonhosted.org/packages/fa/7c/e591135729eee9dd84cf68a539612ee9571b449f7a32ed9070802ccae4c4/hypothesis-6.161.2-cp310-abi3-musllinux_1_2_riscv64.whl", hash = "sha256:d01840d49772e3a29117b936dd5b71c13a9a82b39a739ac49f228af9601c40e8", size = 1265785, upload-time = "2026-07-24T06:42:18.135Z" }, - { url = "https://files.pythonhosted.org/packages/d1/e3/67a5f389fa1be4f4a68b3c65c15f3273d4fb5910cbc4c99754260ae52112/hypothesis-6.161.2-cp310-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:4179f4db70daec64dc43d3fa9b23851d78791ca5d84605b3794df2dfc3150c61", size = 1307846, upload-time = "2026-07-24T06:43:05.511Z" }, - { url = "https://files.pythonhosted.org/packages/4c/d8/45ffe9a9f069853fabb7b91fe72d46f9b2f08508550f87f3567fd1d46775/hypothesis-6.161.2-cp310-abi3-win32.whl", hash = "sha256:fabc7595dd1e0c66936e9777843dbef3c2e3f31983a669bda6b635909878176e", size = 652400, upload-time = "2026-07-24T06:42:54.175Z" }, - { url = "https://files.pythonhosted.org/packages/6a/14/81af65ce429671ee4e4b9fb6924a02564dd9e430c543da9ac9449dd07042/hypothesis-6.161.2-cp310-abi3-win_amd64.whl", hash = "sha256:425a35e9240761a2e71743424b193fd799dfa3117bad21982bbe8110637256b2", size = 658534, upload-time = "2026-07-24T06:43:10.538Z" }, - { url = "https://files.pythonhosted.org/packages/8e/98/3d4849d78b7eeafac335d55a8cbc647602eca41cce9fe5b99f28025d6f3b/hypothesis-6.161.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:c77580949be61ce4b946f8dfba38ed652ce28deb6302167550f85720f08c1864", size = 767990, upload-time = "2026-07-24T06:42:43.432Z" }, - { url = "https://files.pythonhosted.org/packages/50/eb/096d58e24d727a69e3ad3fb3887f4b3750d0e41287bb3a6ebfb9f20b6b8d/hypothesis-6.161.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ed59ea708743da8e91f975d3848d2ed0a46548d833c8703b53fa854bbb8f3ebd", size = 759677, upload-time = "2026-07-24T06:42:07.612Z" }, - { url = "https://files.pythonhosted.org/packages/e3/11/511ff00654fdc9a52316e1a772cecc6ef0a0c24f1138a20aeab2f632ae5b/hypothesis-6.161.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:73fa1136acb5f554c6b958f8a9d33b2d7f6816909ccf07b22e17351df9bec146", size = 1090072, upload-time = "2026-07-24T06:43:03.917Z" }, - { url = "https://files.pythonhosted.org/packages/99/b8/2c833554fb3ba22d2841888b3409b634d6059420d1f5269f7cf3294358ed/hypothesis-6.161.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:584b1d91b5f3fa200b35bc0533e30e9fea81c852bb150eedbf0a7fc46d7639be", size = 1140009, upload-time = "2026-07-24T06:42:58.975Z" }, - { url = "https://files.pythonhosted.org/packages/35/36/c351c14155225b6290ce94fbd5610a690231312d5aa2121ad436888e3dfe/hypothesis-6.161.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e1f3d2f1b8324259cc1a149286b8856ed07447f9f28f1338452eec73708cd7e5", size = 1263030, upload-time = "2026-07-24T06:42:23.475Z" }, - { url = "https://files.pythonhosted.org/packages/13/f7/1dcbafa23a2fc07aede597e0c9ea2093378a1c05a858dfbbb3627a1a7e11/hypothesis-6.161.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:c1c6c7d30c9aaa11b3e79c40a9a7ac1f559fce44853292d5383c0b1d11623658", size = 1306906, upload-time = "2026-07-24T06:42:06.2Z" }, - { url = "https://files.pythonhosted.org/packages/26/93/371966030a92748fcdef978f4ecfd69aa7b0d92e4bcdc398f5938941ef2c/hypothesis-6.161.2-cp313-cp313-win_amd64.whl", hash = "sha256:176d4f1a58f808891eec2a448889a24522002cb952df99c6fe4ab150f81a0eae", size = 655650, upload-time = "2026-07-24T06:42:51.08Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/61/08/4cbfa0327e9df00f57fc67f91847add2f0dd6c23408935273b095ee9a9f1/hypothesis-6.163.0.tar.gz", hash = "sha256:520480d4bd3a17557616c25923640953e360332c89d012fffcebd69857e674a9", size = 490145, upload-time = "2026-07-28T07:16:46.026Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/89/b1/3eea7a422de342bd0095a9672c3e03fe0466e4561a55499a1e01b4a9f098/hypothesis-6.163.0-cp310-abi3-macosx_10_12_x86_64.whl", hash = "sha256:331906cb029b6b360b8ebac3ec00c3cfa720037fe2efb294a503a1979c9a9a8f", size = 769898, upload-time = "2026-07-28T07:15:19.323Z" }, + { url = "https://files.pythonhosted.org/packages/bc/24/45b5c948c76c16ecf1e4ad1ca4a4a3fce55b3317ee172bc8230ff2956ae1/hypothesis-6.163.0-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:b4ad2134405d5345434c22dea96bbc12c85abcfc3c253a8063dbc9ff01164555", size = 765438, upload-time = "2026-07-28T07:16:04.69Z" }, + { url = "https://files.pythonhosted.org/packages/0f/72/7725039a75b3679dc445a169026b11860a0e67a600c4ffed49a42040a000/hypothesis-6.163.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50073f8e63c1e7d3403899755657a990d8bba7b5b5bff66b1c56796d4969bb28", size = 1094699, upload-time = "2026-07-28T07:15:56.668Z" }, + { url = "https://files.pythonhosted.org/packages/dd/fa/bcfa3879f303a302ec6e5f4d35b583924867a0821b42fa275f440f3b8dab/hypothesis-6.163.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8c5d1e6bad47edf6fb1d7406cf6d67314ac08325c63a49550d782a4596ea302b", size = 1123315, upload-time = "2026-07-28T07:16:40.381Z" }, + { url = "https://files.pythonhosted.org/packages/5f/7f/e7fe2f0658db5182bb1d4b266d17f8f81cf3db82eeba27677ddfea13ac09/hypothesis-6.163.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ec3b709508ccd835d8ded1db025b7800618f2289a22a6bfd4927da5f4eb33c", size = 1144220, upload-time = "2026-07-28T07:15:20.617Z" }, + { url = "https://files.pythonhosted.org/packages/90/14/c26f93a4693bfd83d7ba14b7043d986458026f6635d1b157bc2f1c56a59e/hypothesis-6.163.0-cp310-abi3-manylinux_2_31_riscv64.whl", hash = "sha256:7cb3d927360fe73f9a06d646e6082237142ee39c24679c7133d22bf06dd03b45", size = 1099527, upload-time = "2026-07-28T07:16:17.955Z" }, + { url = "https://files.pythonhosted.org/packages/ea/f5/4c1dde28d2e18e169dd6c471ef4bcf12abf3c6a3f4a1744bdabdbdf411ba/hypothesis-6.163.0-cp310-abi3-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3f3cceb4720a39127622fbf3bcebe1775b894372c53b5edddfdef10bbdeef9ec", size = 1136272, upload-time = "2026-07-28T07:16:38.182Z" }, + { url = "https://files.pythonhosted.org/packages/3a/5b/54153509ed42cc17e1b65efe34a0c781f42fb04c902dc5f25486c537ec88/hypothesis-6.163.0-cp310-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:59f5fdb8addb44c17520a60d50542d9db6ceba577bbf54efefa9c10ee20be140", size = 1268518, upload-time = "2026-07-28T07:15:42.991Z" }, + { url = "https://files.pythonhosted.org/packages/81/86/f86f0d15d91b9cbff3546c1b8891950b2b08c0527e7494133fb2180e1b8b/hypothesis-6.163.0-cp310-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:f1fe222f50a1898e87a1e7323ab35f9e956278efabe4dd55a1342808206d05ad", size = 1396357, upload-time = "2026-07-28T07:15:26.696Z" }, + { url = "https://files.pythonhosted.org/packages/46/3a/c096b6b272f15e17e8e65c6ccfb2e1d167456ff5bbd9db33dca3185199f6/hypothesis-6.163.0-cp310-abi3-musllinux_1_2_riscv64.whl", hash = "sha256:56ed585baab75cb98462c57ca88bbdc6a9d935a14118dd572fb476c3ecec2a06", size = 1269128, upload-time = "2026-07-28T07:16:11.902Z" }, + { url = "https://files.pythonhosted.org/packages/bb/9f/0807445874b3083a22c9a14a0ffc31bd0060ef3b408ce4cb31c20779cdf8/hypothesis-6.163.0-cp310-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:2849c23b2e0fe2eef4c1ec336b01eac7ad7397c49fca43c264f59ec1e6046eac", size = 1311189, upload-time = "2026-07-28T07:16:08.545Z" }, + { url = "https://files.pythonhosted.org/packages/d6/de/3319aa8fcffd1641defc1c5eea1ad646a33d1b62528ef487a89752bc8079/hypothesis-6.163.0-cp310-abi3-win32.whl", hash = "sha256:b2ddcdaf6691101e06dc4a5add7b8c8fdf1e68daba599255a281f3f3550d3331", size = 655743, upload-time = "2026-07-28T07:16:30.966Z" }, + { url = "https://files.pythonhosted.org/packages/8e/48/36bc72910451e6e88b75e59a6ddbf0db34ff61a3b11c9439801dfd5fec20/hypothesis-6.163.0-cp310-abi3-win_amd64.whl", hash = "sha256:4ab0dadc09c537d4ac57e564039dfe7daf09c98375306d54bfc0fd6c218efcca", size = 661902, upload-time = "2026-07-28T07:16:34.407Z" }, + { url = "https://files.pythonhosted.org/packages/58/69/c474a3fa1c33d9a6e059e820221275d9c60eb10085f6164212c291856157/hypothesis-6.163.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:a16ebce774755a7a652bd44c62101dc914372ed1a98935969624848c9627b4a4", size = 771335, upload-time = "2026-07-28T07:15:14.988Z" }, + { url = "https://files.pythonhosted.org/packages/54/27/8951688de58314780ba0af5bf2675709009dcc1fb568d244f2a03c4de8e9/hypothesis-6.163.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:40dfab6fe6a02a80abef81aebf88e53cd529e3f2f6ba3486b674a67b1f4a3512", size = 763020, upload-time = "2026-07-28T07:15:25.218Z" }, + { url = "https://files.pythonhosted.org/packages/8b/d7/9eb7451400507f4b5c972c81c2bc57d0009597ea37295519a9645963a50e/hypothesis-6.163.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f28ad27193c1fbcfb52ef2ee63d2b721563525089e80962b4268b306dac45507", size = 1093415, upload-time = "2026-07-28T07:16:27.408Z" }, + { url = "https://files.pythonhosted.org/packages/24/cc/c12c780676c7a4a4051d05e7b278a94bf1bb496ef31882881160f16866c9/hypothesis-6.163.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8aac96db8a6c7ee43aba2ee0d3c43893da1fb7c38ed54790c1be2b6d8fd87b96", size = 1143356, upload-time = "2026-07-28T07:16:01.571Z" }, + { url = "https://files.pythonhosted.org/packages/4b/c1/61c5ebdb77a3f259803e60a12f56de35f8b6d641a6219f798dcfa69dece3/hypothesis-6.163.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:9d23f0f3a14bb6e6f99c793d340196dba4af95ba25bfcab624d1794f540f5e27", size = 1266375, upload-time = "2026-07-28T07:15:11.353Z" }, + { url = "https://files.pythonhosted.org/packages/a2/53/f3a89b4d21d89098d1dec749632aa0fece04f5d17a9e7e91c7f10596d55a/hypothesis-6.163.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b123b4995a7612f1130e2b2362c9a5d0568df887bf7e7bdb45c23af8cd5423c9", size = 1310257, upload-time = "2026-07-28T07:16:42.213Z" }, + { url = "https://files.pythonhosted.org/packages/06/e7/88e71c4cec0df68aa7a2fb251083c544f30697bd90fb4b1ed19de493ab81/hypothesis-6.163.0-cp313-cp313-win_amd64.whl", hash = "sha256:b268211e625cd550e361fc387bf1db5deb1e9cae0ce4041116f0a0aafeef7c06", size = 658983, upload-time = "2026-07-28T07:16:10.289Z" }, ] [[package]] @@ -12459,32 +12308,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0c/29/0348de65b8cc732daa3e33e67806420b2ae89bdce2b04af740289c5c6c8c/loguru-0.7.3-py3-none-any.whl", hash = "sha256:31a33c10c8e1e10422bfd431aeb5d351c7cf7fa671e3c4df004162264b28220c", size = 61595, upload-time = "2024-12-06T11:20:54.538Z" }, ] -[[package]] -name = "lxml" -version = "6.1.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/05/3b/aab6728cae887456f409b4d75e8a01856e4f04bd510de38052a47768b680/lxml-6.1.1.tar.gz", hash = "sha256:ba96ae44888e0185281e937633a743ea90d5a196c6000f82565ebb0580012d40", size = 4197430, upload-time = "2026-05-18T19:19:06.424Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a5/eb/7e6f37c5584ccbb2ff267f56fd0339016938c1c8684cfefab9b33ffc2f36/lxml-6.1.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:68a9198d0fc122d14bb76837de9aa80cf84caed990b5b237f532ed87d3706736", size = 8559780, upload-time = "2026-05-18T19:17:57.661Z" }, - { url = "https://files.pythonhosted.org/packages/a1/36/587c2521cf23a2cd6c9c22108aa7528f683a1f195ed7ccd23a4b1786ad36/lxml-6.1.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:7d47866cb32fb503450b6edc9df355d10dc49836af2e89901bd6ac6b0896d9d9", size = 4618006, upload-time = "2026-05-18T19:18:04.452Z" }, - { url = "https://files.pythonhosted.org/packages/6e/ca/ab7bfe2bf4c972af5e7878262845ead3a24a929a9b04bc11c7c1ece6c82a/lxml-6.1.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:eb7c9811bfaa8b1ed5ed319f5d370dfbcaa59d52ea64be2a5a85e18195930354", size = 4924139, upload-time = "2026-05-18T19:19:04.873Z" }, - { url = "https://files.pythonhosted.org/packages/6b/55/a0c72851dfee5ecc689f949723a73dea457758912542cb955b108eaf0d8f/lxml-6.1.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:762ff394d5bd56da0cf034a23dcce4e13923f15321a2adfa2ac00201dc6d3fca", size = 5082329, upload-time = "2026-05-18T19:19:09.728Z" }, - { url = "https://files.pythonhosted.org/packages/f0/b6/0608f7d61a3b96cc67e5648a3d906e31a5082093e10e7be65b3886289938/lxml-6.1.1-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a088f287f7d8275a33c07f2cac6c50b9319309a0200a39e7e75d80c707723099", size = 4993564, upload-time = "2026-05-18T19:19:13.608Z" }, - { url = "https://files.pythonhosted.org/packages/4c/66/ae227524b066d29d55bf0b453d93d2d793c40218657d643dcbbca13b8faf/lxml-6.1.1-cp313-cp313-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e902da4b04e6b52e5893900d4b8ab46068f75f3561f01bf1080957f9fd932ed6", size = 5613467, upload-time = "2026-05-18T19:19:16.228Z" }, - { url = "https://files.pythonhosted.org/packages/a6/76/dbe4a00b50385e40194231dcfe5a12c059de7cf90e89c83407d2b085b719/lxml-6.1.1-cp313-cp313-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1d4962d4c66bf830a7e59ed6cfc17d148149898a3aefa8ec6e59763e6e3ed085", size = 5228304, upload-time = "2026-05-18T19:19:19.354Z" }, - { url = "https://files.pythonhosted.org/packages/1c/01/00b1b8442ed2041793336868ba0b9ea4b13d7da7c085c6404c207a63bf79/lxml-6.1.1-cp313-cp313-manylinux_2_28_i686.whl", hash = "sha256:581d4c8ae690a6609e64862dd6b7c2489635c2d13907fc2b20f2bc200ff1d21e", size = 5341607, upload-time = "2026-05-18T19:19:22.297Z" }, - { url = "https://files.pythonhosted.org/packages/63/36/1ad29931e9a4638bb707869f01d423a6c815f82152138d1a40dfcfde2b95/lxml-6.1.1-cp313-cp313-manylinux_2_31_armv7l.whl", hash = "sha256:876e1ff5930ed8bf295ec5ef9a8155e9b6b1876bbf1deed8b3a8069311875a8f", size = 4700168, upload-time = "2026-05-18T19:19:25.133Z" }, - { url = "https://files.pythonhosted.org/packages/3c/d1/a9536cecf9be18a0dc72d32bead283a2332d1ffebd2dd3ac70ce444686e5/lxml-6.1.1-cp313-cp313-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:9eb9b5a968f6e0f6d640092a567e14529ff8cea2e29d00da6f78a79fa49f013c", size = 5232487, upload-time = "2026-05-18T19:19:28.603Z" }, - { url = "https://files.pythonhosted.org/packages/0e/77/b4fb1e03bf5d130e879214d3100092e386418807fb74dd0adc4b0a48f351/lxml-6.1.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:aa49e06d94aba782c6a02eecb7e507969e7e7a41b267f1b359bb35585f295d5b", size = 5044231, upload-time = "2026-05-18T19:18:42.246Z" }, - { url = "https://files.pythonhosted.org/packages/26/4c/d00daeeb0a5530c4028a9232aa1b93db3ef4ed2158c116ea73c79a9765b3/lxml-6.1.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:70cdfd80589d59e43e18005dd7244e8895e93db8ab6a620b7e23df5445a4e3d2", size = 4769450, upload-time = "2026-05-18T19:18:48.013Z" }, - { url = "https://files.pythonhosted.org/packages/ed/6a/715a3a8d156ce42f29cf014706f5410c2ff3b02267774110fc23266409fe/lxml-6.1.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:aad9aa39483ed8ec44d6d2e59e5b98a0d80676ef0d92f44bfc374836111f62f5", size = 5635874, upload-time = "2026-05-18T19:18:51.914Z" }, - { url = "https://files.pythonhosted.org/packages/45/37/0544bc21dde2a88f3a17b504e6fc79c0e01d25a33c2f6079724e9e72b9c7/lxml-6.1.1-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:d49514be2f28d895c38cf9d2b72d7b9a07d00314519f456c0b50b53cfcf4c785", size = 5223987, upload-time = "2026-05-18T19:18:59.715Z" }, - { url = "https://files.pythonhosted.org/packages/4d/f8/f6a5e8185bcb28c2befae3d31f8e3df3b811cb0f47746517a81279fcafe1/lxml-6.1.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:47402e62c52ff5988c1e8c6c63177f5708bccf48e366dea4e3dcf1e645e04947", size = 5250276, upload-time = "2026-05-18T19:19:03.834Z" }, - { url = "https://files.pythonhosted.org/packages/c7/f2/1a2b9f1b7a49d45495369be7ef9ad05b262930f2eab3e3145706fca8083f/lxml-6.1.1-cp313-cp313-win32.whl", hash = "sha256:3483644525531e1d5762b0c44a8e18b6efba321b6dcf8a8952de10b037618bca", size = 3596903, upload-time = "2026-05-18T19:17:29.863Z" }, - { url = "https://files.pythonhosted.org/packages/e6/99/f4ffb024f238eec2131aaa09f3278fb6129cf892741bf68e1fc1afb8c100/lxml-6.1.1-cp313-cp313-win_amd64.whl", hash = "sha256:a10bd2fd62e8ce916ececb342f348f190724a098c1faa056fdfb2a22ad5e8660", size = 3995869, upload-time = "2026-05-18T19:18:02.596Z" }, - { url = "https://files.pythonhosted.org/packages/d1/53/70eb8c5c6037f27448f1e3c54ebede9545a801ae63f0a7254afca4fe8e45/lxml-6.1.1-cp313-cp313-win_arm64.whl", hash = "sha256:424aa57aca0897eb922aef34395bd1289b3b6f04e6bae20ea123c0c7e333cffc", size = 3658490, upload-time = "2026-05-19T19:22:53.846Z" }, -] - [[package]] name = "maison" version = "2.0.2" @@ -13381,18 +13204,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/12/cf/03675d8bd8ecbf4445504d8071adab19f5f993676795708e36402ab38263/openapi_pydantic-0.5.1-py3-none-any.whl", hash = "sha256:a3a09ef4586f5bd760a8df7f43028b60cafb6d9f61de2acba9574766255ab146", size = 96381, upload-time = "2025-01-08T19:29:25.275Z" }, ] -[[package]] -name = "openpyxl" -version = "3.1.5" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "et-xmlfile" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/3d/f9/88d94a75de065ea32619465d2f77b29a0469500e99012523b91cc4141cd1/openpyxl-3.1.5.tar.gz", hash = "sha256:cf0e3cf56142039133628b5acffe8ef0c12bc902d2aadd3e0fe5878dc08d1050", size = 186464, upload-time = "2024-06-28T14:03:44.161Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c0/da/977ded879c29cbd04de313843e76868e6e13408a94ed6b987245dc7c8506/openpyxl-3.1.5-py2.py3-none-any.whl", hash = "sha256:5282c12b107bffeef825f4617dc029afaf41d0ea60823bbb665ef3079dc79de2", size = 250910, upload-time = "2024-06-28T14:03:41.161Z" }, -] - [[package]] name = "opentelemetry-api" version = "1.44.0" @@ -13753,7 +13564,7 @@ wheels = [ [[package]] name = "pre-commit" -version = "4.6.0" +version = "4.6.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "cfgv" }, @@ -13762,9 +13573,9 @@ dependencies = [ { name = "pyyaml" }, { name = "virtualenv" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/8e/22/2de9408ac81acbb8a7d05d4cc064a152ccf33b3d480ebe0cd292153db239/pre_commit-4.6.0.tar.gz", hash = "sha256:718d2208cef53fdc38206e40524a6d4d9576d103eb16f0fec11c875e7716e9d9", size = 198525, upload-time = "2026-04-21T20:31:41.613Z" } +sdist = { url = "https://files.pythonhosted.org/packages/25/3a/ddb78f32a0814e66b18a099377a106a2dcdce92d86a034d69d65df9b256e/pre_commit-4.6.1.tar.gz", hash = "sha256:03e809865c7d178b9979d06c761fcbfe6808fdaded8581a745bb110e52050421", size = 198646, upload-time = "2026-07-21T20:56:58.225Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/80/6e/4b28b62ecb6aae56769c34a8ff1d661473ec1e9519e2d5f8b2c150086b26/pre_commit-4.6.0-py2.py3-none-any.whl", hash = "sha256:e2cf246f7299edcabcf15f9b0571fdce06058527f0a06535068a86d38089f29b", size = 226472, upload-time = "2026-04-21T20:31:40.092Z" }, + { url = "https://files.pythonhosted.org/packages/fb/49/bc925106abcdac498074f2cbe6137e94e09f418dd2b7775df5b577dc0313/pre_commit-4.6.1-py2.py3-none-any.whl", hash = "sha256:0e3b2942510d1fb34eec167a3ec57331bf8442122f1153a9fb8b58f5c49b2717", size = 226186, upload-time = "2026-07-21T20:56:57.064Z" }, ] [[package]] @@ -14321,15 +14132,15 @@ wheels = [ [[package]] name = "pytest-env" -version = "1.6.0" +version = "1.7.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pytest" }, { name = "python-dotenv" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/ff/69/4db1c30625af0621df8dbe73797b38b6d1b04e15d021dd5d26a6d297f78c/pytest_env-1.6.0.tar.gz", hash = "sha256:ac02d6fba16af54d61e311dd70a3c61024a4e966881ea844affc3c8f0bf207d3", size = 16163, upload-time = "2026-03-12T22:39:43.78Z" } +sdist = { url = "https://files.pythonhosted.org/packages/65/49/08ee056f9cc655e437abcf2ae399884844b623223476ae6a77244131db03/pytest_env-1.7.0.tar.gz", hash = "sha256:0c1dc1101fb8d3ab3611e8f8d657ba06c3c0c167fc85c90457e5b27f2508f43e", size = 16408, upload-time = "2026-07-21T13:09:21.834Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/27/16/ad52f56b96d851a2bcfdc1e754c3531341885bd7177a128c13ff2ca72ab4/pytest_env-1.6.0-py3-none-any.whl", hash = "sha256:1e7f8a62215e5885835daaed694de8657c908505b964ec8097a7ce77b403d9a3", size = 10400, upload-time = "2026-03-12T22:39:41.887Z" }, + { url = "https://files.pythonhosted.org/packages/3e/fc/9f2975c41d41bf5bd9a7d0fc03085ec20052b456b079df53828ae4a1b100/pytest_env-1.7.0-py3-none-any.whl", hash = "sha256:9ee0f1fe859d23fcdb533fe2909a404b3b133d02674a56df275bbe4df4eb104b", size = 10263, upload-time = "2026-07-21T13:09:20.677Z" }, ] [[package]] @@ -14453,19 +14264,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/9d/ae/84bc0d2440c95772272bb6f4b3d09ccf08b2898fce89b3d4f969a9fc74e9/python_discovery-1.4.4-py3-none-any.whl", hash = "sha256:abebe9120b43453b68c908acfb1e72a19d1a959ed2cb620ad38fc57d08056dbe", size = 34181, upload-time = "2026-07-08T23:06:49.402Z" }, ] -[[package]] -name = "python-docx" -version = "1.2.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "lxml" }, - { name = "typing-extensions" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/a9/f7/eddfe33871520adab45aaa1a71f0402a2252050c14c7e3009446c8f4701c/python_docx-1.2.0.tar.gz", hash = "sha256:7bc9d7b7d8a69c9c02ca09216118c86552704edc23bac179283f2e38f86220ce", size = 5723256, upload-time = "2025-06-16T20:46:27.921Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d0/00/1e03a4989fa5795da308cd774f05b704ace555a70f9bf9d3be057b680bcf/python_docx-1.2.0-py3-none-any.whl", hash = "sha256:3fd478f3250fbbbfd3b94fe1e985955737c145627498896a8a6bf81f4baf66c7", size = 252987, upload-time = "2025-06-16T20:46:22.506Z" }, -] - [[package]] name = "python-dotenv" version = "1.2.2" @@ -14497,21 +14295,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/a9/cb/5049e041a1d0e6f6cb6ac8737a8215fb4e67cb147f140ef31e67361dc61a/python_on_whales-0.81.0-py3-none-any.whl", hash = "sha256:6d5f81f56d0f95fd311a7cce29a01a1a60841074e4936000dc5f2dc9a7ffafac", size = 119240, upload-time = "2026-03-09T14:17:42.195Z" }, ] -[[package]] -name = "python-pptx" -version = "1.0.2" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "lxml" }, - { name = "pillow" }, - { name = "typing-extensions" }, - { name = "xlsxwriter" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/52/a9/0c0db8d37b2b8a645666f7fd8accea4c6224e013c42b1d5c17c93590cd06/python_pptx-1.0.2.tar.gz", hash = "sha256:479a8af0eaf0f0d76b6f00b0887732874ad2e3188230315290cd1f9dd9cc7095", size = 10109297, upload-time = "2024-08-07T17:33:37.772Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d9/4f/00be2196329ebbff56ce564aa94efb0fbc828d00de250b1980de1a34ab49/python_pptx-1.0.2-py3-none-any.whl", hash = "sha256:160838e0b8565a8b1f67947675886e9fea18aa5e795db7ae531606d68e785cba", size = 472788, upload-time = "2024-08-07T17:33:28.192Z" }, -] - [[package]] name = "python-slugify" version = "8.0.4" @@ -14886,27 +14669,42 @@ wheels = [ [[package]] name = "ruff" -version = "0.15.22" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/3a/06/ae069393fc66e8ff33036d4b368003833bf6e88ccf182e17e7a2f1c754fd/ruff-0.15.22.tar.gz", hash = "sha256:3f15175b1fb580126f58285a5dae6b2ea89000136d980c64499211f116b54809", size = 4785063, upload-time = "2026-07-16T15:14:13.244Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/23/18/ee54b7ae1e121be7a28ea6da4b67564ebb0530e183a54415ab7e3bcd2c4e/ruff-0.15.22-py3-none-linux_armv6l.whl", hash = "sha256:44423e73493737f5e7c5b41d475483898ff37afcdae38bc3da5085e29af1c2d8", size = 10781258, upload-time = "2026-07-16T15:13:19.452Z" }, - { url = "https://files.pythonhosted.org/packages/2f/d2/2520cb14761ddbeaf57642a76942fc36adcbdbe53b4532241995f6fc485c/ruff-0.15.22-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:b82c6482946e9eda7ff2e091d25b8bad3f718684e1916d41bd56873cee05b697", size = 10999477, upload-time = "2026-07-16T15:13:23.318Z" }, - { url = "https://files.pythonhosted.org/packages/c9/10/74e53572aa758dfaa678c2a2646b5c5515d884b7ca56be4d2ce03ca4b560/ruff-0.15.22-py3-none-macosx_11_0_arm64.whl", hash = "sha256:11c1c715af53a09f714e011106bffc419751ec8232fcb5da42173284ea3fec6f", size = 10466716, upload-time = "2026-07-16T15:13:26.162Z" }, - { url = "https://files.pythonhosted.org/packages/1e/cc/44eaaf0844e028182f2d0a8f2190d0f359159aed0a9e5ab861d892f1ae2a/ruff-0.15.22-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:742a29cf29bddb7c8327895d6a10e0e6c5b38a96dd407af9b5d0857f809c0576", size = 10892644, upload-time = "2026-07-16T15:13:29.229Z" }, - { url = "https://files.pythonhosted.org/packages/9f/21/8edf559014d2b0f82beea19cfb713993ad802ccda16868769979c6090a84/ruff-0.15.22-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:72af58b951b0ae395935ae79763dc349bc0eb706319d28f7a33ad2cfb3cfc178", size = 10576719, upload-time = "2026-07-16T15:13:32.35Z" }, - { url = "https://files.pythonhosted.org/packages/bf/1e/3a13abd392a3b50b62e5938a831f9ab6e588358cacad5c18545b716d2182/ruff-0.15.22-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:62d425005c1835eb24e2ee4161cb90e8db263415f4a71c8c72c33abaa6c0c224", size = 11376494, upload-time = "2026-07-16T15:13:35.958Z" }, - { url = "https://files.pythonhosted.org/packages/bf/3e/422d3d95bcf04dd78e1aeac22184d4f9a8fb2c01865d39d44618484a0317/ruff-0.15.22-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e8b9b3f8779a4f08c969defc3c8c35abffaa757e601ed5ae66d6d1db6519969a", size = 12208370, upload-time = "2026-07-16T15:13:39.185Z" }, - { url = "https://files.pythonhosted.org/packages/1e/91/5d065a0e0a02bf4813f5119ad278462eed081d2b832eb7c021ade0ec9e65/ruff-0.15.22-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1e0dd1b2e4d3d585f897a0d137cbf4eaf6223bef4e8ce34d6bb12556c5f9249e", size = 11581098, upload-time = "2026-07-16T15:13:42.132Z" }, - { url = "https://files.pythonhosted.org/packages/f6/f9/a0d4871d12fae702eb1f41b686caf05f1f8b124dc6db6f784f53d74918fa/ruff-0.15.22-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:365523eb91d9224e1bcb03b022fbf0facb8f9e23792a2c53d9d4b3924bdbdebb", size = 11399422, upload-time = "2026-07-16T15:13:45.2Z" }, - { url = "https://files.pythonhosted.org/packages/18/80/c843a5176cddbceb0b7e8dd41cf9993490796c1c469348d384f5a5c13c56/ruff-0.15.22-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:fabfd168afdf29fee5be98b831efa9683c94d7c5a3b58b9ce5a2e38444589a74", size = 11381683, upload-time = "2026-07-16T15:13:48.46Z" }, - { url = "https://files.pythonhosted.org/packages/d4/00/8485de0ae92239438a36cfc51350db9b9e85c9ebdfaea91b18e422706662/ruff-0.15.22-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:225dbf095a87f1d9f90f5fd7924d2613ee452a75a4308c63a8f50f761787aa7c", size = 10850295, upload-time = "2026-07-16T15:13:51.655Z" }, - { url = "https://files.pythonhosted.org/packages/fa/91/24977ec2ec72eaf15e4394ace2959fdff2dd1e14f03e005e838023407169/ruff-0.15.22-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:1877d63b9d24ed278744f1523fd11b85540566d54641f97c566d7d9dc5ca5296", size = 10579640, upload-time = "2026-07-16T15:13:54.79Z" }, - { url = "https://files.pythonhosted.org/packages/9c/47/9b51216951974df1f263ac19da550d34252e0ed7218c25f10c5ef9ed7517/ruff-0.15.22-py3-none-musllinux_1_2_i686.whl", hash = "sha256:a1606c510bd7215680d32efab38965f7cdec3ef69f5170a3f4791404ffdd5262", size = 11105077, upload-time = "2026-07-16T15:13:57.915Z" }, - { url = "https://files.pythonhosted.org/packages/c2/47/20e9d4a3b8016778acea5fc32bb50d35d207500a17ddb529ffa6996feef8/ruff-0.15.22-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:630479b18625f5ffc373f77603a22a9f8ac0acd7ff0501178b5db28ec71e9c64", size = 11490980, upload-time = "2026-07-16T15:14:01.032Z" }, - { url = "https://files.pythonhosted.org/packages/4d/76/3f72d8fc38c1cb77b38c56a70da9d0c17700cc1cc50f9649c9d3c8f5ba71/ruff-0.15.22-py3-none-win32.whl", hash = "sha256:e5ba0e4a13fd14abbed2a77b517a3911290c6c6c59ef67784328d1668fab76cf", size = 10789165, upload-time = "2026-07-16T15:14:04.16Z" }, - { url = "https://files.pythonhosted.org/packages/cb/46/4965251734c2b6fcdca1b1b187d20bcac3af0ee5b083b89c910bb961ce3a/ruff-0.15.22-py3-none-win_amd64.whl", hash = "sha256:9be63ba1eb936acd2d1342fb8337c356353706fce233b2a15a09a97037e6acde", size = 11938297, upload-time = "2026-07-16T15:14:07.316Z" }, - { url = "https://files.pythonhosted.org/packages/57/c9/e69b1ff4c8b69093ef08b8919ab767af0569666865b39c30a8795d88d3c6/ruff-0.15.22-py3-none-win_arm64.whl", hash = "sha256:e1168075b72158510839f250027659cdd78476f40507dd517892304c41318661", size = 11298172, upload-time = "2026-07-16T15:14:10.51Z" }, +version = "0.16.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/4d/94/1e5e4967626faf12fa56999cd6222dff6992ceb086ad7945756baf70c7a7/ruff-0.16.0.tar.gz", hash = "sha256:e460aafd5495ec89efaa6ced2e4a9a581116451e1c88b9d37ef497e0f8e93982", size = 4790557, upload-time = "2026-07-23T19:11:30.981Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4b/81/1c8818fee7ce1a04cd7d1b3172e0a8f8e4f1dc4feb7fc390e16daa8af323/ruff-0.16.0-py3-none-linux_armv6l.whl", hash = "sha256:e5115729eb08c585e5121978ba5d5b60caeae394ce21b9fb5e6cd33a1c6c9b1e", size = 10754633, upload-time = "2026-07-23T19:10:46.415Z" }, + { url = "https://files.pythonhosted.org/packages/23/df/beaf59c09d68db84304d555f188b276a77132a5d5b0b67a5c762aa143628/ruff-0.16.0-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:3c954b1d580bfa035b41654f7858cc7e71d5fc3ac5b723dd62bd9133830ed522", size = 10969164, upload-time = "2026-07-23T19:10:50.271Z" }, + { url = "https://files.pythonhosted.org/packages/42/ce/741cd197496a1abbf51352710fd15ed995d2a2be87189c1da26a450d6e83/ruff-0.16.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:e01c21d10eb1b29f47b7454e1f4056db9a3f0260c646aa88457c610291db9f81", size = 10488846, upload-time = "2026-07-23T19:10:52.639Z" }, + { url = "https://files.pythonhosted.org/packages/52/2a/a2db8e88cade358f5cdcb05674a917751074109315d014eb6352d9a893f7/ruff-0.16.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6e364e5ed22ed8dc05082fd78e35308618260907ac2d3c1d637b2e682415b6c9", size = 10889729, upload-time = "2026-07-23T19:10:54.89Z" }, + { url = "https://files.pythonhosted.org/packages/42/65/62a771694ebd63029dc953e27dbad40e1588bd4860ff9fe881018fddaa49/ruff-0.16.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d327b8fc113a1d4421a04f3839d3752057c8dd1ee320223a6f3f52d04ada462a", size = 10568275, upload-time = "2026-07-23T19:10:56.993Z" }, + { url = "https://files.pythonhosted.org/packages/3f/e2/ced249fe8af5f086c5c58cc21cc3356d50f32f7401c5df87050c999620a7/ruff-0.16.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9b50c55e263103586b3dcf5f73d479eb8cb5fdb6098fec59a62891dab653717", size = 11385112, upload-time = "2026-07-23T19:10:59.615Z" }, + { url = "https://files.pythonhosted.org/packages/87/0b/05154977a8fd69eeb6c103271f55403bfd8711f5c0f8ed07489d95a504e7/ruff-0.16.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0ff4a79ce3ec0172f3241943835de1c4cb4e2dcd07f0f8c2d02603dbbbee4b17", size = 12207008, upload-time = "2026-07-23T19:11:02.154Z" }, + { url = "https://files.pythonhosted.org/packages/fb/29/98225831a3a1eab0e02f4acc6ca6559a98611dcc68b6965ff4b7234627c1/ruff-0.16.0-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e95c448fca1fb2a18372a9440926c5a6ee789639bb975c72e7ae6d0b04218ab4", size = 11650842, upload-time = "2026-07-23T19:11:04.557Z" }, + { url = "https://files.pythonhosted.org/packages/91/66/6bd3cf90500653d55dc0ffc8507aa8300bd49d0214b2e8cb4d3fef2943ba/ruff-0.16.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f11a8d11010301d0a398a2fdef67691feca7294da6aef55e2150e8fa2cd520b", size = 11400718, upload-time = "2026-07-23T19:11:09.233Z" }, + { url = "https://files.pythonhosted.org/packages/8e/a2/a54eb4eae05d66364050a5d3b8a9c5ef88196531b3cbe7109d873f87f819/ruff-0.16.0-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:48044c678e9cb8698246c99b14aaccfa6601dea7379eb48a6f8f73f7a6d86cd0", size = 11426177, upload-time = "2026-07-23T19:11:11.994Z" }, + { url = "https://files.pythonhosted.org/packages/1a/be/16e3eea4b2a478a496919f5e36f17c4559e54620bd3bbac5d6affa068006/ruff-0.16.0-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:7aa0959bad8eb8bef50340154fc9b58678dae31fa4293afa38b44b6e552c0213", size = 10856126, upload-time = "2026-07-23T19:11:14.221Z" }, + { url = "https://files.pythonhosted.org/packages/a2/84/252eb8b868a16eec7257c14f504f77537e734b2d69c762e639e588e304a3/ruff-0.16.0-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:28ea2b7df8ebf7f9da6b7d47b230ab48f387c0a29be3b474c4d0740e197bb9af", size = 10571208, upload-time = "2026-07-23T19:11:16.378Z" }, + { url = "https://files.pythonhosted.org/packages/21/09/817a482f542f7570cbb4554b26e896610c7114f539b1d9e2d2145bf6bef6/ruff-0.16.0-py3-none-musllinux_1_2_i686.whl", hash = "sha256:33a3dfac8c35f81498dea9181bccc2f4c4bc8f1521a1dd9406e77643e0f0fb09", size = 11063329, upload-time = "2026-07-23T19:11:19.173Z" }, + { url = "https://files.pythonhosted.org/packages/2e/23/9403c180ca1cb9b1f7335f5c3e5305c09d49ea5b345196682a36028bde4a/ruff-0.16.0-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:a5237a0bda500d30d81b8e07a6973a5cbc772864cbf746ae2f4e8a2e01c9f4ed", size = 11489751, upload-time = "2026-07-23T19:11:21.74Z" }, + { url = "https://files.pythonhosted.org/packages/b2/1d/1b2ef7bcde851c78d7f17f1cca13fd6dc695fc4b3d6197941e72cae5b132/ruff-0.16.0-py3-none-win32.whl", hash = "sha256:7fab76fa065c873f41ff744347c6e77bcc3dfec4bcc754dc26b63d23c0f7f5fb", size = 10785885, upload-time = "2026-07-23T19:11:23.947Z" }, + { url = "https://files.pythonhosted.org/packages/b2/a3/d5e4ef7a56be3f928ffb90b94c25ba7d3cb9c7fe0736aeaaedf361770712/ruff-0.16.0-py3-none-win_amd64.whl", hash = "sha256:429c117f022bf481fabd9d551e7a3952b24c65e6ef44337ea09d90bebef14472", size = 11923141, upload-time = "2026-07-23T19:11:26.409Z" }, + { url = "https://files.pythonhosted.org/packages/cb/9a/8415f2657cbe200f41a4531ccededf135505a92d4a012229121f885b26f9/ruff-0.16.0-py3-none-win_arm64.whl", hash = "sha256:14296fedcd2705c77ab8235439278bbb38f285cf7da5528b00b3e330c3d4872d", size = 11273407, upload-time = "2026-07-23T19:11:28.705Z" }, +] + +[[package]] +name = "rumdl" +version = "0.2.46" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/54/3b/194f66a79e1a2d74b2e6f278f958ce3b80135b13c395114dc9fcd2ce6993/rumdl-0.2.46.tar.gz", hash = "sha256:99036f4268f4fad4915ff603618d36ba62aa585374f60b2d55bbfe0f10680bd3", size = 3034309, upload-time = "2026-07-29T21:33:24.575Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/32/7f/01f3e6a9217e6d1a5882f43cfdadaa5832895485276edbf395d69370f1e0/rumdl-0.2.46-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:9954f53219b63f434613b7f66cba98c8b08bfea2ee544b184b1af78348ed94ac", size = 6239220, upload-time = "2026-07-29T21:33:17.048Z" }, + { url = "https://files.pythonhosted.org/packages/f9/b7/57e92263f1fe44737eafa3c02d4b211f837d97a689ef7e9da757ff263192/rumdl-0.2.46-py3-none-macosx_11_0_arm64.whl", hash = "sha256:8f28d90e1ca6bdbbb3b20f66333a6aeb120699d01f41d1685c026b15064aac84", size = 5884922, upload-time = "2026-07-29T21:33:10.465Z" }, + { url = "https://files.pythonhosted.org/packages/84/c7/9e9a9eae876c631a1df63d352841858056ae45381d31daaa70c595c13a1d/rumdl-0.2.46-py3-none-manylinux_2_28_aarch64.whl", hash = "sha256:5580ff36a95030c83e103c652e0e36f565e6ab117599ba45a3fff7d6ad5a2d79", size = 6015338, upload-time = "2026-07-29T21:33:12.974Z" }, + { url = "https://files.pythonhosted.org/packages/f4/82/8a14a86290ce859b9a821bf36a73253ab9301015431dbe90f819a27d932d/rumdl-0.2.46-py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:65f16f4902a3748fffa2948264cd8ef31e258b3ae4cb294b448c8ed5882fe259", size = 6422204, upload-time = "2026-07-29T21:33:20.956Z" }, + { url = "https://files.pythonhosted.org/packages/e1/d7/454efa369dcc2343710a49e50f69b7679fe0378024042045ead20015f55b/rumdl-0.2.46-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:9337b2a16d2a8c7a53f0a26c1d6af9ac6f21713eb2a86e754327ed497ebcf6a4", size = 6014307, upload-time = "2026-07-29T21:33:14.991Z" }, + { url = "https://files.pythonhosted.org/packages/68/7d/a3443db44cd3a2337e82fb656f763eb77682ca3752d82e44a9805dd15d60/rumdl-0.2.46-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:b44fa1c0bb27b59c22714b7ff01894b6127a3ae5827caf2add291846cee37e66", size = 6406369, upload-time = "2026-07-29T21:33:22.795Z" }, + { url = "https://files.pythonhosted.org/packages/2d/5d/5e95e629a2e47f0b2d524f3d9b79488fcb5593a0af539133b1798ed32079/rumdl-0.2.46-py3-none-win_amd64.whl", hash = "sha256:5757fb0211377ab8b87490a77dd9dc9079ee13170017c53ff842acd79fb11857", size = 6339300, upload-time = "2026-07-29T21:33:18.865Z" }, ] [[package]] @@ -15611,16 +15409,15 @@ wheels = [ [[package]] name = "types-docker" -version = "7.2.0.20260724" +version = "7.2.0.20260728" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "types-paramiko" }, { name = "types-requests" }, { name = "urllib3" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/3a/60/d87ba2c61c566aca8186d38986e65688918b1efa3ed509155ff9015694b6/types_docker-7.2.0.20260724.tar.gz", hash = "sha256:adc0fef7f9eed6dd83394b76828e514dbd427afece0d6a5498e9a3a398436705", size = 36358, upload-time = "2026-07-24T05:00:27.984Z" } +sdist = { url = "https://files.pythonhosted.org/packages/00/f9/7792217bb55b523f409e8699b41d849345fe673e7aae254e5402c8b6c391/types_docker-7.2.0.20260728.tar.gz", hash = "sha256:eeb780deddb000d3be7584cca16b02fc7f68b135b0039977be13c121861db197", size = 36538, upload-time = "2026-07-28T04:52:14.199Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a2/16/d8ec05a2e8924e57cb1a400e21115cbb62822ad622fd41dc4f8683199e40/types_docker-7.2.0.20260724-py3-none-any.whl", hash = "sha256:9ab8a6c08861e02bafc9225b9ac385e3b9c094289373b0be37f5ab530fb07fd3", size = 51100, upload-time = "2026-07-24T05:00:26.917Z" }, + { url = "https://files.pythonhosted.org/packages/96/0b/733f7fb323bbf4394f69b7c6485b6b7d373c301261c26af08ad72bcfa456/types_docker-7.2.0.20260728-py3-none-any.whl", hash = "sha256:f8d7a80dbc12cb7d794bf22d42f7bb1545db6226ee204dc685812a4695ac9a23", size = 51168, upload-time = "2026-07-28T04:52:13.201Z" }, ] [[package]] @@ -15693,14 +15490,14 @@ wheels = [ [[package]] name = "types-paramiko" -version = "5.0.0.20260617" +version = "5.0.0.20260724" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "cryptography" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/de/89/902652d7b62bb7cd2b73c7f08c8fd03945c223c3814022f0ad305e1018b9/types_paramiko-5.0.0.20260617.tar.gz", hash = "sha256:50a5b0dc68b39d30097cb7d93b4915dbbc97ed740ea633bd492be25ca1f25df4", size = 28474, upload-time = "2026-06-17T06:56:52.955Z" } +sdist = { url = "https://files.pythonhosted.org/packages/66/c2/445549ed6f0944352f2b91d88d16bbdc3993a4d6dbbedb81c557b3cad85a/types_paramiko-5.0.0.20260724.tar.gz", hash = "sha256:37e7f3f2196cf187c89649ad836621c675bc318369d80fa78051507a4ae770c9", size = 28548, upload-time = "2026-07-24T04:59:59.889Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/50/4d/eab89decb4201dfff665a3b92088f384ff1e165bf6caa447509733bc1bc6/types_paramiko-5.0.0.20260617-py3-none-any.whl", hash = "sha256:83d87c396405666524441710ec59e693bca8b19021861456ac0a2401327812f8", size = 37123, upload-time = "2026-06-17T06:56:51.81Z" }, + { url = "https://files.pythonhosted.org/packages/4c/16/fca52784f979821e2205ff514322d0e83452536acc4807a79ddb2085bbb2/types_paramiko-5.0.0.20260724-py3-none-any.whl", hash = "sha256:40c7083803a5a28ab7a8d2fe4cd9b7746d0a03538598582ce68f60967a2ad272", size = 37125, upload-time = "2026-07-24T04:59:58.955Z" }, ] [[package]] @@ -15732,11 +15529,11 @@ wheels = [ [[package]] name = "types-pyasn1" -version = "0.6.0.20260408" +version = "0.6.0.20260724" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/58/c0/02f897fc8543f64fa6b1ca6a30d388e37c4ec2f761f469a2d9a29b89cdef/types_pyasn1-0.6.0.20260408.tar.gz", hash = "sha256:32dc90927adbe504fd2eee83ae30cf5ef934e5db0d1d94886071fed47eb50c8c", size = 17312, upload-time = "2026-04-08T04:27:16.874Z" } +sdist = { url = "https://files.pythonhosted.org/packages/24/ba/a3be5620ec108bfb21481a7796a3c352e627969fa67db6a033cdaeacd117/types_pyasn1-0.6.0.20260724.tar.gz", hash = "sha256:00b9324c1ce8167ec1dc503018cc7d4f190f5770dd3e9a365e897e290e0532db", size = 17373, upload-time = "2026-07-24T04:57:47.402Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e1/a5/473e06d5aaec3730aab5a9d40c2044e673c927412c24bd7f3fa0df7e95d3/types_pyasn1-0.6.0.20260408-py3-none-any.whl", hash = "sha256:ee7fbd98bce61193c5d4f8f7812fa53cddc5b8cc5ceb9fcda6eea539947c6d6b", size = 24044, upload-time = "2026-04-08T04:27:16.002Z" }, + { url = "https://files.pythonhosted.org/packages/ce/ab/9936badd94cfbfb73d2ec83409e203fee44fc83a744e09a8779b37042f45/types_pyasn1-0.6.0.20260724-py3-none-any.whl", hash = "sha256:487987e4492ce2e1ba6f0048f025165383c49d5d16a345ae5dfe7d44045b7910", size = 24054, upload-time = "2026-07-24T04:57:46.482Z" }, ] [[package]] @@ -15763,11 +15560,11 @@ wheels = [ [[package]] name = "types-pyyaml" -version = "6.0.12.20260518" +version = "6.0.12.20260724" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b8/83/4a1afc3fbfcf5b8d46fc390cd95ed6b0dc9010a265f4e9f46314efffa37a/types_pyyaml-6.0.12.20260518.tar.gz", hash = "sha256:d917f83fb38462550338c1297faedd860b3ec83912b96b1e3d73255f7473e466", size = 17850, upload-time = "2026-05-18T06:01:58.675Z" } +sdist = { url = "https://files.pythonhosted.org/packages/3f/6f/a28f44bcd56bebed42b028a2894c79853e2f5e6b5279e633cb3f287a05e7/types_pyyaml-6.0.12.20260724.tar.gz", hash = "sha256:3c1ce1bb73cd5ec02e90390c2b1f00e810d241d8825fd73ff359696839271b6b", size = 17893, upload-time = "2026-07-24T04:58:43.453Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/06/a2/c01db32be2ae7d6a1689972f3c492b149ee4e164b12fdfd9f64b50888215/types_pyyaml-6.0.12.20260518-py3-none-any.whl", hash = "sha256:d2150f75a231c9fe9c7463bd29487d93e60bac90400287351384bc2284eba7cd", size = 20312, upload-time = "2026-05-18T06:01:57.368Z" }, + { url = "https://files.pythonhosted.org/packages/8b/42/0337fefc615e20ee55d1c8f71b774a9b2b734a04669139c20753b27a2a3a/types_pyyaml-6.0.12.20260724-py3-none-any.whl", hash = "sha256:d57db930a4b2efbc57cf430ec8882765d246929432fa253092f383902329a453", size = 20312, upload-time = "2026-07-24T04:58:42.486Z" }, ] [[package]] @@ -15797,11 +15594,11 @@ wheels = [ [[package]] name = "types-setuptools" -version = "83.0.0.20260716" +version = "83.0.0.20260724" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/fe/fa/deb7066a472bb23d28205a9dde66caef317db4b0f2ce612068c5d45a9f87/types_setuptools-83.0.0.20260716.tar.gz", hash = "sha256:a36ad71a57919b80db314e6104478ee75376a34abea88ba0f3d28db4d10006d7", size = 45672, upload-time = "2026-07-16T04:47:56.484Z" } +sdist = { url = "https://files.pythonhosted.org/packages/9d/8c/e069673eb23a7a8242f6e28184ef6911849b2667a61b3bf298d86b807f33/types_setuptools-83.0.0.20260724.tar.gz", hash = "sha256:fe2801176b667f1e8209f8571b0839ca6c34318d743825aeacf3f29970c8d46f", size = 45746, upload-time = "2026-07-24T04:57:55.054Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e3/f9/b89c50c1f482b2b4e038a845c23a3b3fdfd735199634d2452b8951a8629b/types_setuptools-83.0.0.20260716-py3-none-any.whl", hash = "sha256:77315e9a921ced0c7cbef803d7cf06db8e60e9df5661955ee4ce3d1a1675e0dc", size = 68767, upload-time = "2026-07-16T04:47:55.484Z" }, + { url = "https://files.pythonhosted.org/packages/f3/5d/5c32313e6eb7298944ca0fad6486157e8ed549760a25598cddb8ac7e08c6/types_setuptools-83.0.0.20260724-py3-none-any.whl", hash = "sha256:eed1a91e1ed9d8ec9f3e71908e5bb17272e41e0852d37d1485ecd9cd33165e1a", size = 68758, upload-time = "2026-07-24T04:57:53.976Z" }, ] [[package]] @@ -16136,15 +15933,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6e/d2/6317eb6d4554855bbf12d61857774af34747bf88a42c19bf306de67e2fa3/wrapt-2.2.2-py3-none-any.whl", hash = "sha256:5bad217350f19ce99ca5b5e71d406765ea86fe541628426772b657375ee1c048", size = 61460, upload-time = "2026-06-20T23:49:42.966Z" }, ] -[[package]] -name = "xlsxwriter" -version = "3.2.9" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/46/2c/c06ef49dc36e7954e55b802a8b231770d286a9758b3d936bd1e04ce5ba88/xlsxwriter-3.2.9.tar.gz", hash = "sha256:254b1c37a368c444eac6e2f867405cc9e461b0ed97a3233b2ac1e574efb4140c", size = 215940, upload-time = "2025-09-16T00:16:21.63Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/3a/0c/3662f4a66880196a590b202f0db82d919dd2f89e99a27fadef91c4a33d41/xlsxwriter-3.2.9-py3-none-any.whl", hash = "sha256:9a5db42bc5dff014806c58a20b9eae7322a134abb6fce3c92c181bfb275ec5b3", size = 175315, upload-time = "2025-09-16T00:16:20.108Z" }, -] - [[package]] name = "yamlfix" version = "1.19.1" From 56e1b95f84e8e6f9b148cdc1f75754f9b59eb8f1 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Wed, 29 Jul 2026 21:25:05 -0300 Subject: [PATCH 015/165] fixes --- flext-infra | 2 +- flext-tests | 2 +- flext-web | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/flext-infra b/flext-infra index 0ccea7f89..b22626d3e 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 0ccea7f89d9cc8190a0d37c4a6a1b885293ed303 +Subproject commit b22626d3e947293063b9fd3cd1e7d92f0b17a3bb diff --git a/flext-tests b/flext-tests index 3c1bf6807..b875f9b2c 160000 --- a/flext-tests +++ b/flext-tests @@ -1 +1 @@ -Subproject commit 3c1bf6807c6a8236dafaf94e00f2d76e73e66e06 +Subproject commit b875f9b2cf35671c6edafb8a06e72e0472c14029 diff --git a/flext-web b/flext-web index 834a2093b..35e2c635e 160000 --- a/flext-web +++ b/flext-web @@ -1 +1 @@ -Subproject commit 834a2093ba3285e1640584baa4fd751fc69272b3 +Subproject commit 35e2c635e0ea5e23507d6bd17ce2aa13913fced8 From 17bd724a094395f65fbf1c6e43294aeafcc30299 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Wed, 29 Jul 2026 21:38:13 -0300 Subject: [PATCH 016/165] fixes --- flext-api | 2 +- flext-auth | 2 +- flext-cli | 2 +- flext-core | 2 +- flext-db-oracle | 2 +- flext-dbt-ldap | 2 +- flext-dbt-ldif | 2 +- flext-dbt-oracle | 2 +- flext-dbt-oracle-wms | 2 +- flext-grpc | 2 +- flext-infra | 2 +- flext-ldap | 2 +- flext-ldif | 2 +- flext-meltano | 2 +- flext-observability | 2 +- flext-oracle-oic | 2 +- flext-oracle-wms | 2 +- flext-plugin | 2 +- flext-quality | 2 +- flext-tap-ldap | 2 +- flext-tap-ldif | 2 +- flext-tap-oracle | 2 +- flext-tap-oracle-oic | 2 +- flext-tap-oracle-wms | 2 +- flext-target-ldap | 2 +- flext-target-ldif | 2 +- flext-target-oracle | 2 +- flext-target-oracle-oic | 2 +- flext-target-oracle-wms | 2 +- flext-tests | 2 +- flext-web | 2 +- 31 files changed, 31 insertions(+), 31 deletions(-) diff --git a/flext-api b/flext-api index 2fccf41fb..1c3d565fd 160000 --- a/flext-api +++ b/flext-api @@ -1 +1 @@ -Subproject commit 2fccf41fbfa112ce74a4d214085c893ab592564e +Subproject commit 1c3d565fd3a13400c4062d08b007296bb108e695 diff --git a/flext-auth b/flext-auth index 5c8e751f7..916e11064 160000 --- a/flext-auth +++ b/flext-auth @@ -1 +1 @@ -Subproject commit 5c8e751f72ecebfb8a7b3fad683651955ebc1481 +Subproject commit 916e110645e5c0dcdf97d8808dfc5162bb71514e diff --git a/flext-cli b/flext-cli index 644e19775..99ef09d52 160000 --- a/flext-cli +++ b/flext-cli @@ -1 +1 @@ -Subproject commit 644e197758974aa88b03782e6f18e9d689907d44 +Subproject commit 99ef09d5219049e714472d5f8734c1a19792299a diff --git a/flext-core b/flext-core index 0f0c90c18..6080da18d 160000 --- a/flext-core +++ b/flext-core @@ -1 +1 @@ -Subproject commit 0f0c90c182ae78724797a3696cbd98a501b01b0d +Subproject commit 6080da18d385553cb11f3ad5fdc16408bc73b8cc diff --git a/flext-db-oracle b/flext-db-oracle index 3a76d3fe0..80c780e83 160000 --- a/flext-db-oracle +++ b/flext-db-oracle @@ -1 +1 @@ -Subproject commit 3a76d3fe078d968c3c60ca3bda238d2150f98195 +Subproject commit 80c780e8356aee91fd281d802484a43403596662 diff --git a/flext-dbt-ldap b/flext-dbt-ldap index 2f43537ab..e6b68b2ae 160000 --- a/flext-dbt-ldap +++ b/flext-dbt-ldap @@ -1 +1 @@ -Subproject commit 2f43537ab628f5a71b05e142081bdc57a3e28181 +Subproject commit e6b68b2ae6d39f5f3b0897a4a293b9ce76f41694 diff --git a/flext-dbt-ldif b/flext-dbt-ldif index f0a80613c..df07a9974 160000 --- a/flext-dbt-ldif +++ b/flext-dbt-ldif @@ -1 +1 @@ -Subproject commit f0a80613cd718e295c49a17f723a8e8a00d9b25d +Subproject commit df07a99740133c558a6fa78ea688e8c93e88c57a diff --git a/flext-dbt-oracle b/flext-dbt-oracle index e4ae4c1b5..6a51c3ad1 160000 --- a/flext-dbt-oracle +++ b/flext-dbt-oracle @@ -1 +1 @@ -Subproject commit e4ae4c1b5c4914c6cebc77474eee7dc16f8d6d6d +Subproject commit 6a51c3ad104ca5fbe9a48cf09304d5069021d869 diff --git a/flext-dbt-oracle-wms b/flext-dbt-oracle-wms index f031370d8..c6dd42c48 160000 --- a/flext-dbt-oracle-wms +++ b/flext-dbt-oracle-wms @@ -1 +1 @@ -Subproject commit f031370d8c309d01a0cfb4a31aaeffc7a5df4312 +Subproject commit c6dd42c48820f390c645fbdd85c1ac6e56b9699b diff --git a/flext-grpc b/flext-grpc index 8564c63dc..7ab013edd 160000 --- a/flext-grpc +++ b/flext-grpc @@ -1 +1 @@ -Subproject commit 8564c63dcdbcd32fdc3b8c08ac5fe1b254263857 +Subproject commit 7ab013edd330a04f1c38518b35bc38493f121d92 diff --git a/flext-infra b/flext-infra index caf0cc293..b22626d3e 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit caf0cc29321b7a3939b38d3013244819ed9c29f3 +Subproject commit b22626d3e947293063b9fd3cd1e7d92f0b17a3bb diff --git a/flext-ldap b/flext-ldap index fb470ba60..ddc913729 160000 --- a/flext-ldap +++ b/flext-ldap @@ -1 +1 @@ -Subproject commit fb470ba605ab02839b7501bad77ed0a55fc87f92 +Subproject commit ddc91372930fed6b4cba237738ad8db6f4d7b9b9 diff --git a/flext-ldif b/flext-ldif index 926cf8989..f426bbba8 160000 --- a/flext-ldif +++ b/flext-ldif @@ -1 +1 @@ -Subproject commit 926cf89896861f68feeaa4fb2c2f8c8c80752edc +Subproject commit f426bbba894111c8f2d12de26388263a491701b1 diff --git a/flext-meltano b/flext-meltano index 2272bb5db..59262ff3b 160000 --- a/flext-meltano +++ b/flext-meltano @@ -1 +1 @@ -Subproject commit 2272bb5db4fc05b92ad9af081a06802a5d72592e +Subproject commit 59262ff3b5ee4bf0ead396b26e722870e4a00641 diff --git a/flext-observability b/flext-observability index ed089dc12..616175836 160000 --- a/flext-observability +++ b/flext-observability @@ -1 +1 @@ -Subproject commit ed089dc12f1428a596de17a038e93a4d01b781a2 +Subproject commit 61617583620e3ba137e7d81f875fdcdb3ff74448 diff --git a/flext-oracle-oic b/flext-oracle-oic index 9bed1a1e6..d7b6107b5 160000 --- a/flext-oracle-oic +++ b/flext-oracle-oic @@ -1 +1 @@ -Subproject commit 9bed1a1e69c312f840d14296c4ca717db91f56e8 +Subproject commit d7b6107b5fcc6d294d99e447410c0ef5363340b6 diff --git a/flext-oracle-wms b/flext-oracle-wms index 5ce711f6a..13a1c7d8f 160000 --- a/flext-oracle-wms +++ b/flext-oracle-wms @@ -1 +1 @@ -Subproject commit 5ce711f6a91fd1451bb2adb5be3d1f84efc47a4e +Subproject commit 13a1c7d8fcbfc3360ffa6d0107eb172283aad903 diff --git a/flext-plugin b/flext-plugin index 5a30a1f98..cbb7a6506 160000 --- a/flext-plugin +++ b/flext-plugin @@ -1 +1 @@ -Subproject commit 5a30a1f9819f90dee8fc54bd38ade3bbd60663d6 +Subproject commit cbb7a650627da50ac6e0d664f6b67b6d47dd8c9f diff --git a/flext-quality b/flext-quality index 23adcd52a..733876315 160000 --- a/flext-quality +++ b/flext-quality @@ -1 +1 @@ -Subproject commit 23adcd52a1800209137b113e6809187f82eca6c3 +Subproject commit 733876315cef1d765fbcfb44dca9c62327849bf1 diff --git a/flext-tap-ldap b/flext-tap-ldap index 3d677d57d..bd32bd357 160000 --- a/flext-tap-ldap +++ b/flext-tap-ldap @@ -1 +1 @@ -Subproject commit 3d677d57d4dd0473ed5ea0168240d7bd948cc454 +Subproject commit bd32bd357a8838c2dd5f0b3b1f4c59cdc81f4cd2 diff --git a/flext-tap-ldif b/flext-tap-ldif index 24d884acc..86b636b15 160000 --- a/flext-tap-ldif +++ b/flext-tap-ldif @@ -1 +1 @@ -Subproject commit 24d884accd9cca72f6beeb9c44d3bf5592e9edc7 +Subproject commit 86b636b15c5f601a79f225505be1297e83b0e1c2 diff --git a/flext-tap-oracle b/flext-tap-oracle index 939ae2a33..ee8e67852 160000 --- a/flext-tap-oracle +++ b/flext-tap-oracle @@ -1 +1 @@ -Subproject commit 939ae2a337d2a77bc5709bb0566c9410eef245c2 +Subproject commit ee8e67852c63eee46e3e9f1d95bc341c396866c6 diff --git a/flext-tap-oracle-oic b/flext-tap-oracle-oic index 3dd5d1c61..b8d7c929b 160000 --- a/flext-tap-oracle-oic +++ b/flext-tap-oracle-oic @@ -1 +1 @@ -Subproject commit 3dd5d1c6119306aa54cb44d6ff8568bf04346580 +Subproject commit b8d7c929bb35443bcb810d97cb8f27eefd5d772e diff --git a/flext-tap-oracle-wms b/flext-tap-oracle-wms index 2d835231d..3d45e0179 160000 --- a/flext-tap-oracle-wms +++ b/flext-tap-oracle-wms @@ -1 +1 @@ -Subproject commit 2d835231ddf5a2bfd0ac92cc684bf4d73038f137 +Subproject commit 3d45e01797536812ef0558a721480a0073cb950f diff --git a/flext-target-ldap b/flext-target-ldap index 9658cc711..627987ed0 160000 --- a/flext-target-ldap +++ b/flext-target-ldap @@ -1 +1 @@ -Subproject commit 9658cc711c3a10d0d2310b246d69e5a92a5ac70e +Subproject commit 627987ed078f0460cb2cec94c059e64c394f3408 diff --git a/flext-target-ldif b/flext-target-ldif index dad09b98c..3b6134a1b 160000 --- a/flext-target-ldif +++ b/flext-target-ldif @@ -1 +1 @@ -Subproject commit dad09b98ca41a132c98a33952f25b2e7538fde73 +Subproject commit 3b6134a1b76ea317c366b42be6aaefed20601526 diff --git a/flext-target-oracle b/flext-target-oracle index c3b646ca3..d7589a685 160000 --- a/flext-target-oracle +++ b/flext-target-oracle @@ -1 +1 @@ -Subproject commit c3b646ca36895a92ab036b6d0ac1d6e7d6554548 +Subproject commit d7589a685822cf3f19e6f026c39ef7c75a37aeba diff --git a/flext-target-oracle-oic b/flext-target-oracle-oic index f7b089749..e9169f837 160000 --- a/flext-target-oracle-oic +++ b/flext-target-oracle-oic @@ -1 +1 @@ -Subproject commit f7b08974952acf23b9e5fbd801e60dca3f6ef65d +Subproject commit e9169f837831550ba201c0244981073c8f560a1f diff --git a/flext-target-oracle-wms b/flext-target-oracle-wms index 51b94f1df..c336a59af 160000 --- a/flext-target-oracle-wms +++ b/flext-target-oracle-wms @@ -1 +1 @@ -Subproject commit 51b94f1dfaa34f4a08dae97c5920305906655576 +Subproject commit c336a59af06e063d3e62d696bae99ad9769467cb diff --git a/flext-tests b/flext-tests index c3c97592c..b875f9b2c 160000 --- a/flext-tests +++ b/flext-tests @@ -1 +1 @@ -Subproject commit c3c97592c17db0805ae7c53053024c958903e0d3 +Subproject commit b875f9b2cf35671c6edafb8a06e72e0472c14029 diff --git a/flext-web b/flext-web index 3e604c0f6..35e2c635e 160000 --- a/flext-web +++ b/flext-web @@ -1 +1 @@ -Subproject commit 3e604c0f63975af8af48d444dd59b8da8e0b556d +Subproject commit 35e2c635e0ea5e23507d6bd17ce2aa13913fced8 From 0a05918153e49ebf5eb6a549d1729a28073af7af Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Wed, 29 Jul 2026 21:39:18 -0300 Subject: [PATCH 017/165] fixes --- uv.lock | 6089 ++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 4660 insertions(+), 1429 deletions(-) diff --git a/uv.lock b/uv.lock index 51a1e2b1c..3f530956f 100644 --- a/uv.lock +++ b/uv.lock @@ -1677,12 +1677,88 @@ dependencies = [ { name = "websockets" }, ] +[package.optional-dependencies] +dev = [ + { name = "autoflake" }, + { name = "bandit" }, + { name = "black" }, + { name = "blacken-docs" }, + { name = "codespell" }, + { name = "deptry" }, + { name = "django-stubs" }, + { name = "factory-boy" }, + { name = "faker" }, + { name = "hypothesis" }, + { name = "isort" }, + { name = "matplotlib-stubs" }, + { name = "mkdocs" }, + { name = "mkdocs-awesome-pages-plugin" }, + { name = "mkdocs-encryptcontent-plugin" }, + { name = "mkdocs-exclude" }, + { name = "mkdocs-get-deps" }, + { name = "mkdocs-git-revision-date-localized-plugin" }, + { name = "mkdocs-literate-nav" }, + { name = "mkdocs-macros-plugin" }, + { name = "mkdocs-material" }, + { name = "mkdocs-material-extensions" }, + { name = "mkdocs-mermaid2-plugin" }, + { name = "mkdocs-minify-plugin" }, + { name = "mkdocs-print-site-plugin" }, + { name = "mkdocs-redirects" }, + { name = "mkdocs-section-index" }, + { name = "mkdocs-versioning" }, + { name = "mkdocstrings" }, + { name = "mkdocstrings-python" }, + { name = "pip-audit" }, + { name = "pre-commit" }, + { name = "pylint" }, + { name = "pyrefly" }, + { name = "pytest" }, + { name = "pytest-benchmark" }, + { name = "pytest-clarity" }, + { name = "pytest-codeblocks" }, + { name = "pytest-cov" }, + { name = "pytest-deadfixtures" }, + { name = "pytest-env" }, + { name = "pytest-markdown-docs" }, + { name = "pytest-mock" }, + { name = "pytest-randomly" }, + { name = "pytest-sugar" }, + { name = "pytest-timeout" }, + { name = "pytest-xdist" }, + { name = "pyupgrade" }, + { name = "radon" }, + { name = "ruff" }, + { name = "types-cachetools" }, + { name = "types-cffi" }, + { name = "types-click" }, + { name = "types-defusedxml" }, + { name = "types-docker" }, + { name = "types-flask" }, + { name = "types-jsonschema" }, + { name = "types-ldap3" }, + { name = "types-paramiko" }, + { name = "types-protobuf" }, + { name = "types-psutil" }, + { name = "types-psycopg2" }, + { name = "types-pyasn1" }, + { name = "types-pyopenssl" }, + { name = "types-python-dateutil" }, + { name = "types-pyyaml" }, + { name = "types-redis" }, + { name = "types-requests" }, + { name = "types-setuptools" }, + { name = "types-tabulate" }, + { name = "types-toml" }, + { name = "vulture" }, + { name = "yamlfix" }, +] + [package.dev-dependencies] codegen = [ { name = "flext-infra" }, ] dev = [ - { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -1714,12 +1790,10 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, - { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, - { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -1763,26 +1837,99 @@ dev = [ [package.metadata] requires-dist = [ + { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, + { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, + { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, + { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, { name = "cbor2", specifier = ">=6.0.1" }, + { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, + { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, + { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, + { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, + { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, { name = "fastapi", specifier = ">=0.136.1" }, { name = "flext-core", editable = "flext-core" }, { name = "flext-web", editable = "flext-web" }, { name = "gql", specifier = ">=4.0.0" }, { name = "httpx", specifier = ">=0.28.1" }, { name = "httpx-sse", specifier = ">=0.4.3" }, + { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, + { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, + { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, + { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, + { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, + { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, + { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, + { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, + { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, + { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, + { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, + { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, + { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, + { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, + { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, + { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, + { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, + { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, + { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, + { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, + { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, { name = "msgpack", specifier = ">=1.1.2" }, { name = "orjson", specifier = ">=3.11.8" }, + { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, + { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, { name = "pydantic", specifier = ">=2.13.3" }, { name = "pydantic-core", specifier = ">=2.46.3" }, { name = "pydantic-settings", specifier = ">=2.14.0" }, + { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, + { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, + { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, + { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, + { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, + { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, + { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, + { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, + { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, + { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, + { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, + { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, + { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, + { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, + { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, + { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, + { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, + { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, + { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, + { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, + { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, + { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, + { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, + { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, + { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, + { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, + { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, + { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, + { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, + { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, + { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, + { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, + { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, + { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, + { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, + { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, + { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, + { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, + { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, { name = "typing-extensions", specifier = ">=4.15.0" }, + { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, { name = "websockets", specifier = ">=16.0" }, + { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, ] +provides-extras = ["dev"] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ - { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -1814,12 +1961,10 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, - { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, - { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -2086,7 +2231,6 @@ codegen = [ { name = "flext-infra" }, ] dev = [ - { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -2118,13 +2262,11 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, - { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "psutil" }, { name = "pylint" }, { name = "pyrefly" }, - { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -2194,7 +2336,6 @@ requires-dist = [ [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ - { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -2226,13 +2367,11 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, - { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "psutil", specifier = ">=7.2.2" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, - { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -2307,7 +2446,6 @@ codegen = [ { name = "flext-infra" }, ] dev = [ - { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -2349,7 +2487,6 @@ dev = [ { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, - { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -2419,7 +2556,6 @@ requires-dist = [ [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ - { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -2461,7 +2597,6 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, - { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -2517,12 +2652,8 @@ dependencies = [ { name = "sqlalchemy" }, ] -[package.dev-dependencies] -codegen = [ - { name = "flext-infra" }, -] +[package.optional-dependencies] dev = [ - { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -2532,7 +2663,6 @@ dev = [ { name = "django-stubs" }, { name = "factory-boy" }, { name = "faker" }, - { name = "flext-tests" }, { name = "hypothesis" }, { name = "isort" }, { name = "matplotlib-stubs" }, @@ -2554,12 +2684,10 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, - { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, - { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -2601,118 +2729,11 @@ dev = [ { name = "yamlfix" }, ] -[package.metadata] -requires-dist = [ - { name = "flext-cli", editable = "flext-cli" }, - { name = "flext-core", editable = "flext-core" }, - { name = "oracledb", specifier = ">=3.4.2" }, - { name = "pydantic", specifier = ">=2.13.3" }, - { name = "pydantic-core", specifier = ">=2.46.3" }, - { name = "sqlalchemy", specifier = ">=2.0.49" }, -] - -[package.metadata.requires-dev] -codegen = [{ name = "flext-infra", editable = "flext-infra" }] -dev = [ - { name = "actionlint-py", specifier = ">=1.7.12.24" }, - { name = "autoflake", specifier = ">=2.3.1" }, - { name = "bandit", specifier = ">=1.8" }, - { name = "black", specifier = ">=25.1" }, - { name = "blacken-docs", specifier = ">=1.19" }, - { name = "codespell", specifier = ">=2.3" }, - { name = "deptry", specifier = ">=0.23" }, - { name = "django-stubs", specifier = ">=5.2.2" }, - { name = "factory-boy", specifier = ">=3.3.1" }, - { name = "faker", specifier = ">=37.4" }, - { name = "flext-tests", editable = "flext-tests" }, - { name = "hypothesis", specifier = ">=6.125" }, - { name = "isort", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", specifier = ">=0.3" }, - { name = "mkdocs", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", specifier = ">=2" }, - { name = "mkdocs-exclude", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", specifier = ">=1" }, - { name = "mkdocs-material", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", specifier = ">=0.8" }, - { name = "mkdocs-redirects", specifier = ">=1.2" }, - { name = "mkdocs-section-index", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", specifier = ">=0.2" }, - { name = "mkdocstrings", specifier = ">=0.24" }, - { name = "mkdocstrings-python", specifier = ">=1.7" }, - { name = "mypy", specifier = ">=2.3.0" }, - { name = "pip-audit", specifier = ">=2.7.3" }, - { name = "pre-commit", specifier = ">=4.6.0" }, - { name = "pylint", specifier = ">=3.3" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, - { name = "pyright", specifier = ">=1.1.411" }, - { name = "pytest", specifier = ">=8.4" }, - { name = "pytest-benchmark", specifier = ">=5.1" }, - { name = "pytest-clarity", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", specifier = ">=0.17.0" }, - { name = "pytest-cov", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", specifier = ">=2.2.1" }, - { name = "pytest-env", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", specifier = ">=0.9.2" }, - { name = "pytest-mock", specifier = ">=3.14" }, - { name = "pytest-randomly", specifier = ">=3.16" }, - { name = "pytest-sugar", specifier = ">=1" }, - { name = "pytest-timeout", specifier = ">=2.4" }, - { name = "pytest-xdist", specifier = ">=3.8" }, - { name = "pyupgrade", specifier = ">=3.19" }, - { name = "radon", specifier = ">=6.0.1" }, - { name = "ruff", specifier = ">=0.12.3" }, - { name = "types-cachetools", specifier = ">=6.2" }, - { name = "types-cffi", specifier = ">=2.0" }, - { name = "types-click", specifier = ">=7.1" }, - { name = "types-defusedxml", specifier = ">=0.7" }, - { name = "types-docker", specifier = ">=7.1" }, - { name = "types-flask", specifier = ">=1.1.6" }, - { name = "types-jsonschema", specifier = ">=4.26" }, - { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", specifier = ">=4.0" }, - { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", specifier = ">=7" }, - { name = "types-psycopg2", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", specifier = ">=0.6" }, - { name = "types-pyopenssl", specifier = ">=24.1" }, - { name = "types-python-dateutil", specifier = ">=2.9" }, - { name = "types-pyyaml", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", specifier = ">=4.6" }, - { name = "types-requests", specifier = ">=2.32.4" }, - { name = "types-setuptools", specifier = ">=80.9" }, - { name = "types-tabulate", specifier = ">=0.10" }, - { name = "types-toml", specifier = ">=0.10.8.20240310" }, - { name = "vulture", specifier = ">=2.13" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, -] - -[[package]] -name = "flext-dbt-ldap" -version = "0.12.0rc0" -source = { editable = "flext-dbt-ldap" } -dependencies = [ - { name = "flext-cli" }, - { name = "flext-core" }, - { name = "flext-ldap" }, - { name = "flext-ldif" }, - { name = "flext-meltano" }, - { name = "pydantic" }, - { name = "pydantic-core" }, -] - [package.dev-dependencies] codegen = [ { name = "flext-infra" }, ] dev = [ - { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -2722,7 +2743,6 @@ dev = [ { name = "django-stubs" }, { name = "factory-boy" }, { name = "faker" }, - { name = "flext-cli" }, { name = "flext-tests" }, { name = "hypothesis" }, { name = "isort" }, @@ -2745,12 +2765,10 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, - { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, - { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -2773,7 +2791,6 @@ dev = [ { name = "types-defusedxml" }, { name = "types-docker" }, { name = "types-flask" }, - { name = "types-jsonschema" }, { name = "types-ldap3" }, { name = "types-paramiko" }, { name = "types-protobuf" }, @@ -2789,24 +2806,95 @@ dev = [ { name = "types-tabulate" }, { name = "types-toml" }, { name = "vulture" }, - { name = "yamlfix" }, ] [package.metadata] requires-dist = [ + { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, + { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, + { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, + { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, + { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, + { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, + { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, + { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, + { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, { name = "flext-cli", editable = "flext-cli" }, { name = "flext-core", editable = "flext-core" }, - { name = "flext-ldap", editable = "flext-ldap" }, - { name = "flext-ldif", editable = "flext-ldif" }, - { name = "flext-meltano", editable = "flext-meltano" }, + { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, + { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, + { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, + { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, + { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, + { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, + { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, + { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, + { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, + { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, + { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, + { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, + { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, + { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, + { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, + { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, + { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, + { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, + { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, + { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, + { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, + { name = "oracledb", specifier = ">=3.4.2" }, + { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, + { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, { name = "pydantic", specifier = ">=2.13.3" }, { name = "pydantic-core", specifier = ">=2.46.3" }, -] + { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, + { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, + { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, + { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, + { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, + { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, + { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, + { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, + { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, + { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, + { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, + { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, + { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, + { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, + { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, + { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, + { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, + { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, + { name = "sqlalchemy", specifier = ">=2.0.49" }, + { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, + { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, + { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, + { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, + { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, + { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, + { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, + { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, + { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, + { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, + { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, + { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, + { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, + { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, + { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, + { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, + { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, + { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, + { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, + { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, + { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, + { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, + { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, +] +provides-extras = ["dev"] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ - { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -2816,7 +2904,6 @@ dev = [ { name = "django-stubs", specifier = ">=5.2.2" }, { name = "factory-boy", specifier = ">=3.3.1" }, { name = "faker", specifier = ">=37.4" }, - { name = "flext-cli", editable = "flext-cli" }, { name = "flext-tests", editable = "flext-tests" }, { name = "hypothesis", specifier = ">=6.125" }, { name = "isort", specifier = ">=6.0.1" }, @@ -2839,12 +2926,10 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, - { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, - { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -2867,7 +2952,6 @@ dev = [ { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, - { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, @@ -2883,27 +2967,24 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] -name = "flext-dbt-ldif" +name = "flext-dbt-ldap" version = "0.12.0rc0" -source = { editable = "flext-dbt-ldif" } +source = { editable = "flext-dbt-ldap" } dependencies = [ + { name = "flext-cli" }, { name = "flext-core" }, + { name = "flext-ldap" }, { name = "flext-ldif" }, { name = "flext-meltano" }, { name = "pydantic" }, { name = "pydantic-core" }, ] -[package.dev-dependencies] -codegen = [ - { name = "flext-infra" }, -] +[package.optional-dependencies] dev = [ - { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -2913,7 +2994,6 @@ dev = [ { name = "django-stubs" }, { name = "factory-boy" }, { name = "faker" }, - { name = "flext-tests" }, { name = "hypothesis" }, { name = "isort" }, { name = "matplotlib-stubs" }, @@ -2935,12 +3015,10 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, - { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, - { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -2982,116 +3060,11 @@ dev = [ { name = "yamlfix" }, ] -[package.metadata] -requires-dist = [ - { name = "flext-core", editable = "flext-core" }, - { name = "flext-ldif", editable = "flext-ldif" }, - { name = "flext-meltano", editable = "flext-meltano" }, - { name = "pydantic", specifier = ">=2.13.3" }, - { name = "pydantic-core", specifier = ">=2.46.3" }, +[package.dev-dependencies] +codegen = [ + { name = "flext-infra" }, ] - -[package.metadata.requires-dev] -codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ - { name = "actionlint-py", specifier = ">=1.7.12.24" }, - { name = "autoflake", specifier = ">=2.3.1" }, - { name = "bandit", specifier = ">=1.8" }, - { name = "black", specifier = ">=25.1" }, - { name = "blacken-docs", specifier = ">=1.19" }, - { name = "codespell", specifier = ">=2.3" }, - { name = "deptry", specifier = ">=0.23" }, - { name = "django-stubs", specifier = ">=5.2.2" }, - { name = "factory-boy", specifier = ">=3.3.1" }, - { name = "faker", specifier = ">=37.4" }, - { name = "flext-tests", editable = "flext-tests" }, - { name = "hypothesis", specifier = ">=6.125" }, - { name = "isort", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", specifier = ">=0.3" }, - { name = "mkdocs", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", specifier = ">=2" }, - { name = "mkdocs-exclude", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", specifier = ">=1" }, - { name = "mkdocs-material", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", specifier = ">=0.8" }, - { name = "mkdocs-redirects", specifier = ">=1.2" }, - { name = "mkdocs-section-index", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", specifier = ">=0.2" }, - { name = "mkdocstrings", specifier = ">=0.24" }, - { name = "mkdocstrings-python", specifier = ">=1.7" }, - { name = "mypy", specifier = ">=2.3.0" }, - { name = "pip-audit", specifier = ">=2.7.3" }, - { name = "pre-commit", specifier = ">=4.6.0" }, - { name = "pylint", specifier = ">=3.3" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, - { name = "pyright", specifier = ">=1.1.411" }, - { name = "pytest", specifier = ">=8.4" }, - { name = "pytest-benchmark", specifier = ">=5.1" }, - { name = "pytest-clarity", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", specifier = ">=0.17.0" }, - { name = "pytest-cov", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", specifier = ">=2.2.1" }, - { name = "pytest-env", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", specifier = ">=0.9.2" }, - { name = "pytest-mock", specifier = ">=3.14" }, - { name = "pytest-randomly", specifier = ">=3.16" }, - { name = "pytest-sugar", specifier = ">=1" }, - { name = "pytest-timeout", specifier = ">=2.4" }, - { name = "pytest-xdist", specifier = ">=3.8" }, - { name = "pyupgrade", specifier = ">=3.19" }, - { name = "radon", specifier = ">=6.0.1" }, - { name = "ruff", specifier = ">=0.12.3" }, - { name = "types-cachetools", specifier = ">=6.2" }, - { name = "types-cffi", specifier = ">=2.0" }, - { name = "types-click", specifier = ">=7.1" }, - { name = "types-defusedxml", specifier = ">=0.7" }, - { name = "types-docker", specifier = ">=7.1" }, - { name = "types-flask", specifier = ">=1.1.6" }, - { name = "types-jsonschema", specifier = ">=4.26" }, - { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", specifier = ">=4.0" }, - { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", specifier = ">=7" }, - { name = "types-psycopg2", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", specifier = ">=0.6" }, - { name = "types-pyopenssl", specifier = ">=24.1" }, - { name = "types-python-dateutil", specifier = ">=2.9" }, - { name = "types-pyyaml", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", specifier = ">=4.6" }, - { name = "types-requests", specifier = ">=2.32.4" }, - { name = "types-setuptools", specifier = ">=80.9" }, - { name = "types-tabulate", specifier = ">=0.10" }, - { name = "types-toml", specifier = ">=0.10.8.20240310" }, - { name = "vulture", specifier = ">=2.13" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, -] - -[[package]] -name = "flext-dbt-oracle" -version = "0.12.0rc0" -source = { editable = "flext-dbt-oracle" } -dependencies = [ - { name = "dbt-common" }, - { name = "flext-core" }, - { name = "flext-db-oracle" }, - { name = "flext-meltano" }, - { name = "pydantic" }, - { name = "pydantic-core" }, -] - -[package.dev-dependencies] -codegen = [ - { name = "flext-infra" }, -] -dev = [ - { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -3101,6 +3074,7 @@ dev = [ { name = "django-stubs" }, { name = "factory-boy" }, { name = "faker" }, + { name = "flext-cli" }, { name = "flext-tests" }, { name = "hypothesis" }, { name = "isort" }, @@ -3123,12 +3097,10 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, - { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, - { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -3151,7 +3123,6 @@ dev = [ { name = "types-defusedxml" }, { name = "types-docker" }, { name = "types-flask" }, - { name = "types-jsonschema" }, { name = "types-ldap3" }, { name = "types-paramiko" }, { name = "types-protobuf" }, @@ -3167,23 +3138,96 @@ dev = [ { name = "types-tabulate" }, { name = "types-toml" }, { name = "vulture" }, - { name = "yamlfix" }, ] [package.metadata] requires-dist = [ - { name = "dbt-common", specifier = ">=1.38.0" }, + { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, + { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, + { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, + { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, + { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, + { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, + { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, + { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, + { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, + { name = "flext-cli", editable = "flext-cli" }, { name = "flext-core", editable = "flext-core" }, - { name = "flext-db-oracle", editable = "flext-db-oracle" }, + { name = "flext-ldap", editable = "flext-ldap" }, + { name = "flext-ldif", editable = "flext-ldif" }, { name = "flext-meltano", editable = "flext-meltano" }, + { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, + { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, + { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, + { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, + { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, + { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, + { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, + { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, + { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, + { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, + { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, + { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, + { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, + { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, + { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, + { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, + { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, + { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, + { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, + { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, + { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, + { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, + { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, { name = "pydantic", specifier = ">=2.13.3" }, { name = "pydantic-core", specifier = ">=2.46.3" }, -] + { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, + { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, + { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, + { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, + { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, + { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, + { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, + { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, + { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, + { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, + { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, + { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, + { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, + { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, + { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, + { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, + { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, + { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, + { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, + { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, + { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, + { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, + { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, + { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, + { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, + { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, + { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, + { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, + { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, + { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, + { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, + { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, + { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, + { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, + { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, + { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, + { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, + { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, + { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, + { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, + { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, +] +provides-extras = ["dev"] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ - { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -3193,6 +3237,7 @@ dev = [ { name = "django-stubs", specifier = ">=5.2.2" }, { name = "factory-boy", specifier = ">=3.3.1" }, { name = "faker", specifier = ">=37.4" }, + { name = "flext-cli", editable = "flext-cli" }, { name = "flext-tests", editable = "flext-tests" }, { name = "hypothesis", specifier = ">=6.125" }, { name = "isort", specifier = ">=6.0.1" }, @@ -3215,12 +3260,10 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, - { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, - { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -3243,7 +3286,6 @@ dev = [ { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, - { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, @@ -3259,28 +3301,102 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] -name = "flext-dbt-oracle-wms" +name = "flext-dbt-ldif" version = "0.12.0rc0" -source = { editable = "flext-dbt-oracle-wms" } +source = { editable = "flext-dbt-ldif" } dependencies = [ - { name = "click" }, { name = "flext-core" }, + { name = "flext-ldif" }, { name = "flext-meltano" }, - { name = "flext-oracle-wms" }, { name = "pydantic" }, { name = "pydantic-core" }, ] +[package.optional-dependencies] +dev = [ + { name = "autoflake" }, + { name = "bandit" }, + { name = "black" }, + { name = "blacken-docs" }, + { name = "codespell" }, + { name = "deptry" }, + { name = "django-stubs" }, + { name = "factory-boy" }, + { name = "faker" }, + { name = "hypothesis" }, + { name = "isort" }, + { name = "matplotlib-stubs" }, + { name = "mkdocs" }, + { name = "mkdocs-awesome-pages-plugin" }, + { name = "mkdocs-encryptcontent-plugin" }, + { name = "mkdocs-exclude" }, + { name = "mkdocs-get-deps" }, + { name = "mkdocs-git-revision-date-localized-plugin" }, + { name = "mkdocs-literate-nav" }, + { name = "mkdocs-macros-plugin" }, + { name = "mkdocs-material" }, + { name = "mkdocs-material-extensions" }, + { name = "mkdocs-mermaid2-plugin" }, + { name = "mkdocs-minify-plugin" }, + { name = "mkdocs-print-site-plugin" }, + { name = "mkdocs-redirects" }, + { name = "mkdocs-section-index" }, + { name = "mkdocs-versioning" }, + { name = "mkdocstrings" }, + { name = "mkdocstrings-python" }, + { name = "pip-audit" }, + { name = "pre-commit" }, + { name = "pylint" }, + { name = "pyrefly" }, + { name = "pytest" }, + { name = "pytest-benchmark" }, + { name = "pytest-clarity" }, + { name = "pytest-codeblocks" }, + { name = "pytest-cov" }, + { name = "pytest-deadfixtures" }, + { name = "pytest-env" }, + { name = "pytest-markdown-docs" }, + { name = "pytest-mock" }, + { name = "pytest-randomly" }, + { name = "pytest-sugar" }, + { name = "pytest-timeout" }, + { name = "pytest-xdist" }, + { name = "pyupgrade" }, + { name = "radon" }, + { name = "ruff" }, + { name = "types-cachetools" }, + { name = "types-cffi" }, + { name = "types-click" }, + { name = "types-defusedxml" }, + { name = "types-docker" }, + { name = "types-flask" }, + { name = "types-jsonschema" }, + { name = "types-ldap3" }, + { name = "types-paramiko" }, + { name = "types-protobuf" }, + { name = "types-psutil" }, + { name = "types-psycopg2" }, + { name = "types-pyasn1" }, + { name = "types-pyopenssl" }, + { name = "types-python-dateutil" }, + { name = "types-pyyaml" }, + { name = "types-redis" }, + { name = "types-requests" }, + { name = "types-setuptools" }, + { name = "types-tabulate" }, + { name = "types-toml" }, + { name = "vulture" }, + { name = "yamlfix" }, +] + [package.dev-dependencies] codegen = [ { name = "flext-infra" }, ] dev = [ - { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -3312,12 +3428,10 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, - { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, - { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -3340,7 +3454,6 @@ dev = [ { name = "types-defusedxml" }, { name = "types-docker" }, { name = "types-flask" }, - { name = "types-jsonschema" }, { name = "types-ldap3" }, { name = "types-paramiko" }, { name = "types-protobuf" }, @@ -3356,23 +3469,94 @@ dev = [ { name = "types-tabulate" }, { name = "types-toml" }, { name = "vulture" }, - { name = "yamlfix" }, ] [package.metadata] requires-dist = [ - { name = "click", specifier = ">=8.3.3" }, + { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, + { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, + { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, + { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, + { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, + { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, + { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, + { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, + { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, { name = "flext-core", editable = "flext-core" }, + { name = "flext-ldif", editable = "flext-ldif" }, { name = "flext-meltano", editable = "flext-meltano" }, - { name = "flext-oracle-wms", editable = "flext-oracle-wms" }, + { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, + { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, + { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, + { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, + { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, + { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, + { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, + { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, + { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, + { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, + { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, + { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, + { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, + { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, + { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, + { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, + { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, + { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, + { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, + { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, + { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, + { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, + { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, { name = "pydantic", specifier = ">=2.13.3" }, { name = "pydantic-core", specifier = ">=2.46.3" }, -] + { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, + { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, + { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, + { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, + { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, + { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, + { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, + { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, + { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, + { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, + { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, + { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, + { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, + { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, + { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, + { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, + { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, + { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, + { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, + { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, + { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, + { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, + { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, + { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, + { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, + { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, + { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, + { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, + { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, + { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, + { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, + { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, + { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, + { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, + { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, + { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, + { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, + { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, + { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, + { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, + { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, +] +provides-extras = ["dev"] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ - { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -3404,12 +3588,10 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, - { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, - { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -3432,7 +3614,6 @@ dev = [ { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, - { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, @@ -3448,33 +3629,23 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] -name = "flext-grpc" +name = "flext-dbt-oracle" version = "0.12.0rc0" -source = { editable = "flext-grpc" } +source = { editable = "flext-dbt-oracle" } dependencies = [ - { name = "flext-cli" }, + { name = "dbt-common" }, { name = "flext-core" }, - { name = "grpcio" }, - { name = "grpcio-tools" }, - { name = "prometheus-client" }, - { name = "protobuf" }, - { name = "psutil" }, + { name = "flext-db-oracle" }, + { name = "flext-meltano" }, { name = "pydantic" }, { name = "pydantic-core" }, - { name = "pydantic-settings" }, - { name = "sqlalchemy" }, ] -[package.dev-dependencies] -codegen = [ - { name = "flext-infra" }, -] +[package.optional-dependencies] dev = [ - { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -3484,7 +3655,6 @@ dev = [ { name = "django-stubs" }, { name = "factory-boy" }, { name = "faker" }, - { name = "flext-tests" }, { name = "hypothesis" }, { name = "isort" }, { name = "matplotlib-stubs" }, @@ -3506,12 +3676,10 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, - { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, - { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -3553,26 +3721,173 @@ dev = [ { name = "yamlfix" }, ] -[package.metadata] -requires-dist = [ - { name = "flext-cli", editable = "flext-cli" }, - { name = "flext-core", editable = "flext-core" }, - { name = "grpcio", specifier = ">=1.80.0" }, - { name = "grpcio-tools", specifier = ">=1.80.0" }, - { name = "prometheus-client", specifier = ">=0.25.0" }, - { name = "protobuf", specifier = ">=6.33.6" }, - { name = "psutil", specifier = ">=7.2.2" }, - { name = "pydantic", specifier = ">=2.13.3" }, - { name = "pydantic-core", specifier = ">=2.46.3" }, - { name = "pydantic-settings", specifier = ">=2.14.0" }, - { name = "sqlalchemy", specifier = ">=2.0.49" }, +[package.dev-dependencies] +codegen = [ + { name = "flext-infra" }, ] - -[package.metadata.requires-dev] -codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ - { name = "actionlint-py", specifier = ">=1.7.12.24" }, - { name = "autoflake", specifier = ">=2.3.1" }, + { name = "autoflake" }, + { name = "bandit" }, + { name = "black" }, + { name = "blacken-docs" }, + { name = "codespell" }, + { name = "deptry" }, + { name = "django-stubs" }, + { name = "factory-boy" }, + { name = "faker" }, + { name = "flext-tests" }, + { name = "hypothesis" }, + { name = "isort" }, + { name = "matplotlib-stubs" }, + { name = "mkdocs" }, + { name = "mkdocs-awesome-pages-plugin" }, + { name = "mkdocs-encryptcontent-plugin" }, + { name = "mkdocs-exclude" }, + { name = "mkdocs-get-deps" }, + { name = "mkdocs-git-revision-date-localized-plugin" }, + { name = "mkdocs-literate-nav" }, + { name = "mkdocs-macros-plugin" }, + { name = "mkdocs-material" }, + { name = "mkdocs-material-extensions" }, + { name = "mkdocs-mermaid2-plugin" }, + { name = "mkdocs-minify-plugin" }, + { name = "mkdocs-print-site-plugin" }, + { name = "mkdocs-redirects" }, + { name = "mkdocs-section-index" }, + { name = "mkdocs-versioning" }, + { name = "mkdocstrings" }, + { name = "mkdocstrings-python" }, + { name = "pip-audit" }, + { name = "pre-commit" }, + { name = "pylint" }, + { name = "pyrefly" }, + { name = "pytest" }, + { name = "pytest-benchmark" }, + { name = "pytest-clarity" }, + { name = "pytest-codeblocks" }, + { name = "pytest-cov" }, + { name = "pytest-deadfixtures" }, + { name = "pytest-env" }, + { name = "pytest-markdown-docs" }, + { name = "pytest-mock" }, + { name = "pytest-randomly" }, + { name = "pytest-sugar" }, + { name = "pytest-timeout" }, + { name = "pytest-xdist" }, + { name = "pyupgrade" }, + { name = "radon" }, + { name = "ruff" }, + { name = "types-cachetools" }, + { name = "types-cffi" }, + { name = "types-click" }, + { name = "types-defusedxml" }, + { name = "types-docker" }, + { name = "types-flask" }, + { name = "types-ldap3" }, + { name = "types-paramiko" }, + { name = "types-protobuf" }, + { name = "types-psutil" }, + { name = "types-psycopg2" }, + { name = "types-pyasn1" }, + { name = "types-pyopenssl" }, + { name = "types-python-dateutil" }, + { name = "types-pyyaml" }, + { name = "types-redis" }, + { name = "types-requests" }, + { name = "types-setuptools" }, + { name = "types-tabulate" }, + { name = "types-toml" }, + { name = "vulture" }, +] + +[package.metadata] +requires-dist = [ + { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, + { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, + { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, + { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, + { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, + { name = "dbt-common", specifier = ">=1.38.0" }, + { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, + { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, + { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, + { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, + { name = "flext-core", editable = "flext-core" }, + { name = "flext-db-oracle", editable = "flext-db-oracle" }, + { name = "flext-meltano", editable = "flext-meltano" }, + { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, + { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, + { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, + { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, + { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, + { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, + { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, + { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, + { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, + { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, + { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, + { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, + { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, + { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, + { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, + { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, + { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, + { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, + { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, + { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, + { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, + { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, + { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, + { name = "pydantic", specifier = ">=2.13.3" }, + { name = "pydantic-core", specifier = ">=2.46.3" }, + { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, + { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, + { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, + { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, + { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, + { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, + { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, + { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, + { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, + { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, + { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, + { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, + { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, + { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, + { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, + { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, + { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, + { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, + { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, + { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, + { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, + { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, + { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, + { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, + { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, + { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, + { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, + { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, + { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, + { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, + { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, + { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, + { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, + { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, + { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, + { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, + { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, + { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, + { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, + { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, + { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, +] +provides-extras = ["dev"] + +[package.metadata.requires-dev] +codegen = [{ name = "flext-infra", editable = "flext-infra" }] +dev = [ + { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, { name = "blacken-docs", specifier = ">=1.19" }, @@ -3603,12 +3918,10 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, - { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, - { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -3631,7 +3944,6 @@ dev = [ { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, - { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, @@ -3647,34 +3959,23 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] -name = "flext-infra" +name = "flext-dbt-oracle-wms" version = "0.12.0rc0" -source = { editable = "flext-infra" } +source = { editable = "flext-dbt-oracle-wms" } dependencies = [ - { name = "defusedxml" }, - { name = "filelock" }, - { name = "flext-cli" }, + { name = "click" }, { name = "flext-core" }, - { name = "gitpython" }, - { name = "libcst" }, - { name = "mkdocs" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-material" }, - { name = "mkdocs-section-index" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "pyrefly" }, - { name = "rope" }, - { name = "ruff" }, + { name = "flext-meltano" }, + { name = "flext-oracle-wms" }, + { name = "pydantic" }, + { name = "pydantic-core" }, ] -[package.dev-dependencies] +[package.optional-dependencies] dev = [ - { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -3684,7 +3985,6 @@ dev = [ { name = "django-stubs" }, { name = "factory-boy" }, { name = "faker" }, - { name = "flext-tests" }, { name = "hypothesis" }, { name = "isort" }, { name = "matplotlib-stubs" }, @@ -3706,12 +4006,10 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, - { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, - { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -3728,7 +4026,6 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, - { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -3754,129 +4051,11 @@ dev = [ { name = "yamlfix" }, ] -[package.metadata] -requires-dist = [ - { name = "defusedxml", specifier = ">=0.7.1" }, - { name = "filelock", specifier = ">=3.32.0" }, - { name = "flext-cli", editable = "flext-cli" }, - { name = "flext-core", editable = "flext-core" }, - { name = "gitpython", specifier = ">=3.1.57" }, - { name = "libcst", specifier = ">=1.8.6" }, - { name = "mkdocs", specifier = ">=1.6.1" }, - { name = "mkdocs-exclude", specifier = ">=1.0.2" }, - { name = "mkdocs-material", specifier = ">=9.7.7" }, - { name = "mkdocs-section-index", specifier = ">=0.3.12" }, - { name = "mkdocstrings", specifier = ">=1.0.6" }, - { name = "mkdocstrings-python", specifier = ">=2.0.5" }, - { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "rope", specifier = ">=1.14.0" }, - { name = "ruff", specifier = ">=0.16.0" }, -] - -[package.metadata.requires-dev] -dev = [ - { name = "actionlint-py", specifier = ">=1.7.12.24" }, - { name = "autoflake", specifier = ">=2.3.3" }, - { name = "bandit", specifier = ">=1.9.4" }, - { name = "black", specifier = ">=26.5.1" }, - { name = "blacken-docs", specifier = ">=1.20.0" }, - { name = "codespell", specifier = ">=2.4.3" }, - { name = "deptry", specifier = ">=0.25.1" }, - { name = "django-stubs", specifier = ">=6.0.7" }, - { name = "factory-boy", specifier = ">=3.3.3" }, - { name = "faker", specifier = ">=40.36.0" }, - { name = "flext-tests", editable = "flext-tests" }, - { name = "hypothesis", specifier = ">=6.163.0" }, - { name = "isort", specifier = ">=8.0.1" }, - { name = "matplotlib-stubs", specifier = ">=0.3.11" }, - { name = "mkdocs", specifier = ">=1.6.1" }, - { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.10.1" }, - { name = "mkdocs-encryptcontent-plugin", specifier = ">=3.1.0" }, - { name = "mkdocs-exclude", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", specifier = ">=0.2.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.5.3" }, - { name = "mkdocs-literate-nav", specifier = ">=0.6.3" }, - { name = "mkdocs-macros-plugin", specifier = ">=1.5.0" }, - { name = "mkdocs-material", specifier = ">=9.7.7" }, - { name = "mkdocs-material-extensions", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", specifier = ">=1.2.3" }, - { name = "mkdocs-minify-plugin", specifier = ">=0.8.0" }, - { name = "mkdocs-print-site-plugin", specifier = ">=2.8" }, - { name = "mkdocs-redirects", specifier = ">=1.2.3" }, - { name = "mkdocs-section-index", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", specifier = ">=0.4.0" }, - { name = "mkdocstrings", specifier = ">=1.0.6" }, - { name = "mkdocstrings-python", specifier = ">=2.0.5" }, - { name = "mypy", specifier = ">=2.3.0" }, - { name = "pip-audit", specifier = ">=2.10.1" }, - { name = "pre-commit", specifier = ">=4.6.1" }, - { name = "pylint", specifier = ">=4.0.6" }, - { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyright", specifier = ">=1.1.411" }, - { name = "pytest", specifier = ">=9.1.1" }, - { name = "pytest-benchmark", specifier = ">=5.2.3" }, - { name = "pytest-clarity", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", specifier = ">=0.18.0" }, - { name = "pytest-cov", specifier = ">=7.1.0" }, - { name = "pytest-deadfixtures", specifier = ">=3.1.0" }, - { name = "pytest-env", specifier = ">=1.7.0" }, - { name = "pytest-markdown-docs", specifier = ">=0.9.2" }, - { name = "pytest-mock", specifier = ">=3.15.1" }, - { name = "pytest-randomly", specifier = ">=4.1.0" }, - { name = "pytest-sugar", specifier = ">=1.1.1" }, - { name = "pytest-timeout", specifier = ">=2.4.0" }, - { name = "pytest-xdist", specifier = ">=3.8.0" }, - { name = "pyupgrade", specifier = ">=3.21.2" }, - { name = "radon", specifier = ">=6.0.1" }, - { name = "ruff", specifier = ">=0.16.0" }, - { name = "rumdl", specifier = ">=0.2.45" }, - { name = "types-cachetools", specifier = ">=7.0.0.20260713" }, - { name = "types-cffi", specifier = ">=2.0.0.20260518" }, - { name = "types-click", specifier = ">=7.1.8" }, - { name = "types-defusedxml", specifier = ">=0.7.0.20260504" }, - { name = "types-docker", specifier = ">=7.2.0.20260728" }, - { name = "types-flask", specifier = ">=1.1.6" }, - { name = "types-jsonschema", specifier = ">=4.26.0.20260518" }, - { name = "types-ldap3", specifier = ">=2.9.13.20260518" }, - { name = "types-paramiko", specifier = ">=5.0.0.20260724" }, - { name = "types-protobuf", specifier = ">=7.34.1.20260518" }, - { name = "types-psutil", specifier = ">=7.2.2.20260518" }, - { name = "types-psycopg2", specifier = ">=2.9.21.20260724" }, - { name = "types-pyasn1", specifier = ">=0.6.0.20260724" }, - { name = "types-pyopenssl", specifier = ">=24.1.0.20240722" }, - { name = "types-python-dateutil", specifier = ">=2.9.0.20260716" }, - { name = "types-pyyaml", specifier = ">=6.0.12.20260724" }, - { name = "types-redis", specifier = ">=4.6.0.20241004" }, - { name = "types-requests", specifier = ">=2.33.0.20260712" }, - { name = "types-setuptools", specifier = ">=83.0.0.20260724" }, - { name = "types-tabulate", specifier = ">=0.10.0.20260508" }, - { name = "types-toml", specifier = ">=0.10.8.20260518" }, - { name = "vulture", specifier = ">=2.16" }, - { name = "yamlfix", specifier = ">=1.19.1" }, -] - -[[package]] -name = "flext-ldap" -version = "0.12.0rc0" -source = { editable = "flext-ldap" } -dependencies = [ - { name = "cryptography" }, - { name = "flext-cli" }, - { name = "flext-core" }, - { name = "flext-ldif" }, - { name = "ldap3" }, - { name = "pydantic" }, - { name = "pydantic-core" }, - { name = "pydantic-settings" }, - { name = "structlog" }, -] - [package.dev-dependencies] codegen = [ { name = "flext-infra" }, ] dev = [ - { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -3908,12 +4087,10 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, - { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, - { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -3936,7 +4113,6 @@ dev = [ { name = "types-defusedxml" }, { name = "types-docker" }, { name = "types-flask" }, - { name = "types-jsonschema" }, { name = "types-ldap3" }, { name = "types-paramiko" }, { name = "types-protobuf" }, @@ -3952,26 +4128,95 @@ dev = [ { name = "types-tabulate" }, { name = "types-toml" }, { name = "vulture" }, - { name = "yamlfix" }, ] [package.metadata] requires-dist = [ - { name = "cryptography", specifier = ">=47.0.0" }, - { name = "flext-cli", editable = "flext-cli" }, + { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, + { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, + { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, + { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, + { name = "click", specifier = ">=8.3.3" }, + { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, + { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, + { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, + { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, + { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, { name = "flext-core", editable = "flext-core" }, - { name = "flext-ldif", editable = "flext-ldif" }, - { name = "ldap3", specifier = ">=2.10.2rc4" }, + { name = "flext-meltano", editable = "flext-meltano" }, + { name = "flext-oracle-wms", editable = "flext-oracle-wms" }, + { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, + { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, + { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, + { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, + { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, + { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, + { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, + { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, + { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, + { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, + { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, + { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, + { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, + { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, + { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, + { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, + { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, + { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, + { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, + { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, + { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, + { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, + { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, { name = "pydantic", specifier = ">=2.13.3" }, { name = "pydantic-core", specifier = ">=2.46.3" }, - { name = "pydantic-settings", specifier = ">=2.14.0" }, - { name = "structlog", specifier = ">=25.5.0" }, -] + { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, + { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, + { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, + { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, + { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, + { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, + { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, + { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, + { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, + { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, + { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, + { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, + { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, + { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, + { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, + { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, + { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, + { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, + { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, + { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, + { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, + { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, + { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, + { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, + { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, + { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, + { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, + { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, + { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, + { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, + { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, + { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, + { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, + { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, + { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, + { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, + { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, + { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, + { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, + { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, + { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, +] +provides-extras = ["dev"] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ - { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -4003,12 +4248,10 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, - { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, - { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -4031,7 +4274,6 @@ dev = [ { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, - { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, @@ -4047,30 +4289,28 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] -name = "flext-ldif" +name = "flext-grpc" version = "0.12.0rc0" -source = { editable = "flext-ldif" } +source = { editable = "flext-grpc" } dependencies = [ - { name = "colorlog" }, { name = "flext-cli" }, { name = "flext-core" }, - { name = "ldap3" }, + { name = "grpcio" }, + { name = "grpcio-tools" }, + { name = "prometheus-client" }, + { name = "protobuf" }, + { name = "psutil" }, { name = "pydantic" }, { name = "pydantic-core" }, { name = "pydantic-settings" }, - { name = "structlog" }, + { name = "sqlalchemy" }, ] -[package.dev-dependencies] -codegen = [ - { name = "flext-infra" }, -] +[package.optional-dependencies] dev = [ - { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -4080,7 +4320,6 @@ dev = [ { name = "django-stubs" }, { name = "factory-boy" }, { name = "faker" }, - { name = "flext-tests" }, { name = "hypothesis" }, { name = "isort" }, { name = "matplotlib-stubs" }, @@ -4102,12 +4341,10 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, - { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, - { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -4149,140 +4386,11 @@ dev = [ { name = "yamlfix" }, ] -[package.metadata] -requires-dist = [ - { name = "colorlog", specifier = ">=6.10.1" }, - { name = "flext-cli", editable = "flext-cli" }, - { name = "flext-core", editable = "flext-core" }, - { name = "ldap3", specifier = ">=2.10.2rc4" }, - { name = "pydantic", specifier = ">=2.13.3" }, - { name = "pydantic-core", specifier = ">=2.46.3" }, - { name = "pydantic-settings", specifier = ">=2.14.0" }, - { name = "structlog", specifier = ">=25.5.0" }, -] - -[package.metadata.requires-dev] -codegen = [{ name = "flext-infra", editable = "flext-infra" }] -dev = [ - { name = "actionlint-py", specifier = ">=1.7.12.24" }, - { name = "autoflake", specifier = ">=2.3.1" }, - { name = "bandit", specifier = ">=1.8" }, - { name = "black", specifier = ">=25.1" }, - { name = "blacken-docs", specifier = ">=1.19" }, - { name = "codespell", specifier = ">=2.3" }, - { name = "deptry", specifier = ">=0.23" }, - { name = "django-stubs", specifier = ">=5.2.2" }, - { name = "factory-boy", specifier = ">=3.3.1" }, - { name = "faker", specifier = ">=37.4" }, - { name = "flext-tests", editable = "flext-tests" }, - { name = "hypothesis", specifier = ">=6.125" }, - { name = "isort", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", specifier = ">=0.3" }, - { name = "mkdocs", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", specifier = ">=2" }, - { name = "mkdocs-exclude", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", specifier = ">=1" }, - { name = "mkdocs-material", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", specifier = ">=0.8" }, - { name = "mkdocs-redirects", specifier = ">=1.2" }, - { name = "mkdocs-section-index", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", specifier = ">=0.2" }, - { name = "mkdocstrings", specifier = ">=0.24" }, - { name = "mkdocstrings-python", specifier = ">=1.7" }, - { name = "mypy", specifier = ">=2.3.0" }, - { name = "pip-audit", specifier = ">=2.7.3" }, - { name = "pre-commit", specifier = ">=4.6.0" }, - { name = "pylint", specifier = ">=3.3" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, - { name = "pyright", specifier = ">=1.1.411" }, - { name = "pytest", specifier = ">=8.4" }, - { name = "pytest-benchmark", specifier = ">=5.1" }, - { name = "pytest-clarity", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", specifier = ">=0.17.0" }, - { name = "pytest-cov", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", specifier = ">=2.2.1" }, - { name = "pytest-env", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", specifier = ">=0.9.2" }, - { name = "pytest-mock", specifier = ">=3.14" }, - { name = "pytest-randomly", specifier = ">=3.16" }, - { name = "pytest-sugar", specifier = ">=1" }, - { name = "pytest-timeout", specifier = ">=2.4" }, - { name = "pytest-xdist", specifier = ">=3.8" }, - { name = "pyupgrade", specifier = ">=3.19" }, - { name = "radon", specifier = ">=6.0.1" }, - { name = "ruff", specifier = ">=0.12.3" }, - { name = "types-cachetools", specifier = ">=6.2" }, - { name = "types-cffi", specifier = ">=2.0" }, - { name = "types-click", specifier = ">=7.1" }, - { name = "types-defusedxml", specifier = ">=0.7" }, - { name = "types-docker", specifier = ">=7.1" }, - { name = "types-flask", specifier = ">=1.1.6" }, - { name = "types-jsonschema", specifier = ">=4.26" }, - { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", specifier = ">=4.0" }, - { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", specifier = ">=7" }, - { name = "types-psycopg2", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", specifier = ">=0.6" }, - { name = "types-pyopenssl", specifier = ">=24.1" }, - { name = "types-python-dateutil", specifier = ">=2.9" }, - { name = "types-pyyaml", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", specifier = ">=4.6" }, - { name = "types-requests", specifier = ">=2.32.4" }, - { name = "types-setuptools", specifier = ">=80.9" }, - { name = "types-tabulate", specifier = ">=0.10" }, - { name = "types-toml", specifier = ">=0.10.8.20240310" }, - { name = "vulture", specifier = ">=2.13" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, -] - -[[package]] -name = "flext-meltano" -version = "0.12.0rc0" -source = { editable = "flext-meltano" } -dependencies = [ - { name = "alembic" }, - { name = "dbt-adapters" }, - { name = "dbt-common" }, - { name = "dbt-core" }, - { name = "duckdb" }, - { name = "fastapi" }, - { name = "flext-cli" }, - { name = "flext-core" }, - { name = "httpx" }, - { name = "injectable" }, - { name = "jinja2" }, - { name = "meltano" }, - { name = "pandas" }, - { name = "prometheus-client" }, - { name = "pydantic" }, - { name = "pydantic-core" }, - { name = "pydantic-settings" }, - { name = "python-dotenv" }, - { name = "pyyaml" }, - { name = "referencing" }, - { name = "requests" }, - { name = "setuptools" }, - { name = "singer-sdk" }, - { name = "sqlalchemy" }, - { name = "structlog" }, - { name = "uvicorn" }, - { name = "wrapt" }, -] - [package.dev-dependencies] codegen = [ { name = "flext-infra" }, ] dev = [ - { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -4314,13 +4422,10 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, - { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, - { name = "psycopg2" }, { name = "pylint" }, { name = "pyrefly" }, - { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -4336,7 +4441,6 @@ dev = [ { name = "pytest-xdist" }, { name = "pyupgrade" }, { name = "radon" }, - { name = "redis" }, { name = "ruff" }, { name = "types-cachetools" }, { name = "types-cffi" }, @@ -4344,7 +4448,6 @@ dev = [ { name = "types-defusedxml" }, { name = "types-docker" }, { name = "types-flask" }, - { name = "types-jsonschema" }, { name = "types-ldap3" }, { name = "types-paramiko" }, { name = "types-protobuf" }, @@ -4360,44 +4463,100 @@ dev = [ { name = "types-tabulate" }, { name = "types-toml" }, { name = "vulture" }, - { name = "yamlfix" }, ] [package.metadata] requires-dist = [ - { name = "alembic", specifier = ">=1.18.4" }, - { name = "dbt-adapters", specifier = ">=1.24.4" }, - { name = "dbt-common", specifier = ">=1.38.0" }, - { name = "dbt-core", specifier = ">=1.12.0,<1.13" }, - { name = "duckdb", specifier = ">=1.5.2" }, - { name = "fastapi", specifier = ">=0.136.1" }, + { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, + { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, + { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, + { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, + { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, + { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, + { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, + { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, + { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, { name = "flext-cli", editable = "flext-cli" }, { name = "flext-core", editable = "flext-core" }, - { name = "httpx", specifier = ">=0.28.1" }, - { name = "injectable", specifier = ">=4.0.1" }, - { name = "jinja2", specifier = ">=3.1.6" }, - { name = "meltano", specifier = ">=4.2.1" }, - { name = "pandas", specifier = ">=3.0.2" }, + { name = "grpcio", specifier = ">=1.80.0" }, + { name = "grpcio-tools", specifier = ">=1.80.0" }, + { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, + { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, + { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, + { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, + { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, + { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, + { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, + { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, + { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, + { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, + { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, + { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, + { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, + { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, + { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, + { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, + { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, + { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, + { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, + { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, + { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, + { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, + { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, { name = "prometheus-client", specifier = ">=0.25.0" }, + { name = "protobuf", specifier = ">=6.33.6" }, + { name = "psutil", specifier = ">=7.2.2" }, { name = "pydantic", specifier = ">=2.13.3" }, { name = "pydantic-core", specifier = ">=2.46.3" }, { name = "pydantic-settings", specifier = ">=2.14.0" }, - { name = "python-dotenv", specifier = ">=1.2.2" }, - { name = "pyyaml", specifier = ">=6.0.3" }, - { name = "referencing", specifier = ">=0.37.0" }, - { name = "requests", specifier = ">=2.33.1" }, - { name = "setuptools", specifier = ">=82.0.1" }, - { name = "singer-sdk", specifier = ">=0.53.7" }, + { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, + { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, + { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, + { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, + { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, + { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, + { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, + { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, + { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, + { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, + { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, + { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, + { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, + { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, + { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, + { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, + { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, + { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, { name = "sqlalchemy", specifier = ">=2.0.49" }, - { name = "structlog", specifier = ">=25.5.0" }, - { name = "uvicorn", specifier = ">=0.46.0" }, - { name = "wrapt", specifier = ">=2.1.2" }, -] + { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, + { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, + { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, + { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, + { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, + { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, + { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, + { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, + { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, + { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, + { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, + { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, + { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, + { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, + { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, + { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, + { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, + { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, + { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, + { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, + { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, + { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, + { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, +] +provides-extras = ["dev"] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ - { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -4429,13 +4588,10 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, - { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, - { name = "psycopg2", specifier = ">=2.9.12" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, - { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -4451,7 +4607,6 @@ dev = [ { name = "pytest-xdist", specifier = ">=3.8" }, { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, - { name = "redis", specifier = ">=7.4.0" }, { name = "ruff", specifier = ">=0.12.3" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, @@ -4459,52 +4614,46 @@ dev = [ { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, - { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, { name = "types-psutil", specifier = ">=7" }, - { name = "types-psycopg2", specifier = ">=2.9.21.20260422" }, + { name = "types-psycopg2", specifier = ">=2.9.21.20250718" }, { name = "types-pyasn1", specifier = ">=0.6" }, { name = "types-pyopenssl", specifier = ">=24.1" }, { name = "types-python-dateutil", specifier = ">=2.9" }, { name = "types-pyyaml", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", specifier = ">=4.6.0.20241004" }, + { name = "types-redis", specifier = ">=4.6" }, { name = "types-requests", specifier = ">=2.32.4" }, { name = "types-setuptools", specifier = ">=80.9" }, { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] -name = "flext-observability" +name = "flext-infra" version = "0.12.0rc0" -source = { editable = "flext-observability" } +source = { editable = "flext-infra" } dependencies = [ - { name = "flask" }, + { name = "defusedxml" }, + { name = "filelock" }, { name = "flext-cli" }, { name = "flext-core" }, - { name = "opentelemetry-api" }, - { name = "opentelemetry-exporter-otlp-proto-grpc" }, - { name = "opentelemetry-exporter-prometheus" }, - { name = "opentelemetry-sdk" }, - { name = "prometheus-client" }, - { name = "psutil" }, - { name = "pydantic" }, - { name = "pydantic-core" }, - { name = "pydantic-settings" }, - { name = "rich" }, - { name = "starlette" }, - { name = "structlog" }, - { name = "typer" }, + { name = "gitpython" }, + { name = "libcst" }, + { name = "mkdocs" }, + { name = "mkdocs-exclude" }, + { name = "mkdocs-material" }, + { name = "mkdocs-section-index" }, + { name = "mkdocstrings" }, + { name = "mkdocstrings-python" }, + { name = "pyrefly" }, + { name = "rope" }, + { name = "ruff" }, ] [package.dev-dependencies] -codegen = [ - { name = "flext-infra" }, -] dev = [ { name = "actionlint-py" }, { name = "autoflake" }, @@ -4560,6 +4709,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -4587,32 +4737,2292 @@ dev = [ [package.metadata] requires-dist = [ - { name = "flask", specifier = ">=3.1.3" }, + { name = "defusedxml", specifier = ">=0.7.1" }, + { name = "filelock", specifier = ">=3.32.0" }, { name = "flext-cli", editable = "flext-cli" }, { name = "flext-core", editable = "flext-core" }, - { name = "opentelemetry-api", specifier = ">=1.41.1" }, - { name = "opentelemetry-exporter-otlp-proto-grpc", specifier = ">=1.41.1" }, - { name = "opentelemetry-exporter-prometheus", specifier = ">=0.62b1" }, - { name = "opentelemetry-sdk", specifier = ">=1.41.1" }, - { name = "prometheus-client", specifier = ">=0.25.0" }, - { name = "psutil", specifier = ">=7.2.2" }, - { name = "pydantic", specifier = ">=2.13.3" }, - { name = "pydantic-core", specifier = ">=2.46.3" }, - { name = "pydantic-settings", specifier = ">=2.14.0" }, - { name = "rich", specifier = ">=14,<15" }, - { name = "starlette", specifier = ">=1.0.0" }, - { name = "structlog", specifier = ">=25.5.0" }, - { name = "typer", specifier = ">=0.25.1" }, -] - -[package.metadata.requires-dev] -codegen = [{ name = "flext-infra", editable = "flext-infra" }] -dev = [ - { name = "actionlint-py", specifier = ">=1.7.12.24" }, - { name = "autoflake", specifier = ">=2.3.1" }, - { name = "bandit", specifier = ">=1.8" }, - { name = "black", specifier = ">=25.1" }, - { name = "blacken-docs", specifier = ">=1.19" }, + { name = "gitpython", specifier = ">=3.1.57" }, + { name = "libcst", specifier = ">=1.8.6" }, + { name = "mkdocs", specifier = ">=1.6.1" }, + { name = "mkdocs-exclude", specifier = ">=1.0.2" }, + { name = "mkdocs-material", specifier = ">=9.7.7" }, + { name = "mkdocs-section-index", specifier = ">=0.3.12" }, + { name = "mkdocstrings", specifier = ">=1.0.6" }, + { name = "mkdocstrings-python", specifier = ">=2.0.5" }, + { name = "pyrefly", specifier = ">=1.1.1" }, + { name = "rope", specifier = ">=1.14.0" }, + { name = "ruff", specifier = ">=0.16.0" }, +] + +[package.metadata.requires-dev] +dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, + { name = "autoflake", specifier = ">=2.3.3" }, + { name = "bandit", specifier = ">=1.9.4" }, + { name = "black", specifier = ">=26.5.1" }, + { name = "blacken-docs", specifier = ">=1.20.0" }, + { name = "codespell", specifier = ">=2.4.3" }, + { name = "deptry", specifier = ">=0.25.1" }, + { name = "django-stubs", specifier = ">=6.0.7" }, + { name = "factory-boy", specifier = ">=3.3.3" }, + { name = "faker", specifier = ">=40.36.0" }, + { name = "flext-tests", editable = "flext-tests" }, + { name = "hypothesis", specifier = ">=6.163.0" }, + { name = "isort", specifier = ">=8.0.1" }, + { name = "matplotlib-stubs", specifier = ">=0.3.11" }, + { name = "mkdocs", specifier = ">=1.6.1" }, + { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.10.1" }, + { name = "mkdocs-encryptcontent-plugin", specifier = ">=3.1.0" }, + { name = "mkdocs-exclude", specifier = ">=1.0.2" }, + { name = "mkdocs-get-deps", specifier = ">=0.2.2" }, + { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.5.3" }, + { name = "mkdocs-literate-nav", specifier = ">=0.6.3" }, + { name = "mkdocs-macros-plugin", specifier = ">=1.5.0" }, + { name = "mkdocs-material", specifier = ">=9.7.7" }, + { name = "mkdocs-material-extensions", specifier = ">=1.3.1" }, + { name = "mkdocs-mermaid2-plugin", specifier = ">=1.2.3" }, + { name = "mkdocs-minify-plugin", specifier = ">=0.8.0" }, + { name = "mkdocs-print-site-plugin", specifier = ">=2.8" }, + { name = "mkdocs-redirects", specifier = ">=1.2.3" }, + { name = "mkdocs-section-index", specifier = ">=0.3.12" }, + { name = "mkdocs-versioning", specifier = ">=0.4.0" }, + { name = "mkdocstrings", specifier = ">=1.0.6" }, + { name = "mkdocstrings-python", specifier = ">=2.0.5" }, + { name = "mypy", specifier = ">=2.3.0" }, + { name = "pip-audit", specifier = ">=2.10.1" }, + { name = "pre-commit", specifier = ">=4.6.1" }, + { name = "pylint", specifier = ">=4.0.6" }, + { name = "pyrefly", specifier = ">=1.1.1" }, + { name = "pyright", specifier = ">=1.1.411" }, + { name = "pytest", specifier = ">=9.1.1" }, + { name = "pytest-benchmark", specifier = ">=5.2.3" }, + { name = "pytest-clarity", specifier = ">=1.0.1" }, + { name = "pytest-codeblocks", specifier = ">=0.18.0" }, + { name = "pytest-cov", specifier = ">=7.1.0" }, + { name = "pytest-deadfixtures", specifier = ">=3.1.0" }, + { name = "pytest-env", specifier = ">=1.7.0" }, + { name = "pytest-markdown-docs", specifier = ">=0.9.2" }, + { name = "pytest-mock", specifier = ">=3.15.1" }, + { name = "pytest-randomly", specifier = ">=4.1.0" }, + { name = "pytest-sugar", specifier = ">=1.1.1" }, + { name = "pytest-timeout", specifier = ">=2.4.0" }, + { name = "pytest-xdist", specifier = ">=3.8.0" }, + { name = "pyupgrade", specifier = ">=3.21.2" }, + { name = "radon", specifier = ">=6.0.1" }, + { name = "ruff", specifier = ">=0.16.0" }, + { name = "rumdl", specifier = ">=0.2.45" }, + { name = "types-cachetools", specifier = ">=7.0.0.20260713" }, + { name = "types-cffi", specifier = ">=2.0.0.20260518" }, + { name = "types-click", specifier = ">=7.1.8" }, + { name = "types-defusedxml", specifier = ">=0.7.0.20260504" }, + { name = "types-docker", specifier = ">=7.2.0.20260728" }, + { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-jsonschema", specifier = ">=4.26.0.20260518" }, + { name = "types-ldap3", specifier = ">=2.9.13.20260518" }, + { name = "types-paramiko", specifier = ">=5.0.0.20260724" }, + { name = "types-protobuf", specifier = ">=7.34.1.20260518" }, + { name = "types-psutil", specifier = ">=7.2.2.20260518" }, + { name = "types-psycopg2", specifier = ">=2.9.21.20260724" }, + { name = "types-pyasn1", specifier = ">=0.6.0.20260724" }, + { name = "types-pyopenssl", specifier = ">=24.1.0.20240722" }, + { name = "types-python-dateutil", specifier = ">=2.9.0.20260716" }, + { name = "types-pyyaml", specifier = ">=6.0.12.20260724" }, + { name = "types-redis", specifier = ">=4.6.0.20241004" }, + { name = "types-requests", specifier = ">=2.33.0.20260712" }, + { name = "types-setuptools", specifier = ">=83.0.0.20260724" }, + { name = "types-tabulate", specifier = ">=0.10.0.20260508" }, + { name = "types-toml", specifier = ">=0.10.8.20260518" }, + { name = "vulture", specifier = ">=2.16" }, + { name = "yamlfix", specifier = ">=1.19.1" }, +] + +[[package]] +name = "flext-ldap" +version = "0.12.0rc0" +source = { editable = "flext-ldap" } +dependencies = [ + { name = "cryptography" }, + { name = "flext-cli" }, + { name = "flext-core" }, + { name = "flext-ldif" }, + { name = "ldap3" }, + { name = "pydantic" }, + { name = "pydantic-core" }, + { name = "pydantic-settings" }, + { name = "structlog" }, +] + +[package.optional-dependencies] +dev = [ + { name = "autoflake" }, + { name = "bandit" }, + { name = "black" }, + { name = "blacken-docs" }, + { name = "codespell" }, + { name = "deptry" }, + { name = "django-stubs" }, + { name = "factory-boy" }, + { name = "faker" }, + { name = "hypothesis" }, + { name = "isort" }, + { name = "matplotlib-stubs" }, + { name = "mkdocs" }, + { name = "mkdocs-awesome-pages-plugin" }, + { name = "mkdocs-encryptcontent-plugin" }, + { name = "mkdocs-exclude" }, + { name = "mkdocs-get-deps" }, + { name = "mkdocs-git-revision-date-localized-plugin" }, + { name = "mkdocs-literate-nav" }, + { name = "mkdocs-macros-plugin" }, + { name = "mkdocs-material" }, + { name = "mkdocs-material-extensions" }, + { name = "mkdocs-mermaid2-plugin" }, + { name = "mkdocs-minify-plugin" }, + { name = "mkdocs-print-site-plugin" }, + { name = "mkdocs-redirects" }, + { name = "mkdocs-section-index" }, + { name = "mkdocs-versioning" }, + { name = "mkdocstrings" }, + { name = "mkdocstrings-python" }, + { name = "pip-audit" }, + { name = "pre-commit" }, + { name = "pylint" }, + { name = "pyrefly" }, + { name = "pytest" }, + { name = "pytest-benchmark" }, + { name = "pytest-clarity" }, + { name = "pytest-codeblocks" }, + { name = "pytest-cov" }, + { name = "pytest-deadfixtures" }, + { name = "pytest-env" }, + { name = "pytest-markdown-docs" }, + { name = "pytest-mock" }, + { name = "pytest-randomly" }, + { name = "pytest-sugar" }, + { name = "pytest-timeout" }, + { name = "pytest-xdist" }, + { name = "pyupgrade" }, + { name = "radon" }, + { name = "ruff" }, + { name = "types-cachetools" }, + { name = "types-cffi" }, + { name = "types-click" }, + { name = "types-defusedxml" }, + { name = "types-docker" }, + { name = "types-flask" }, + { name = "types-jsonschema" }, + { name = "types-ldap3" }, + { name = "types-paramiko" }, + { name = "types-protobuf" }, + { name = "types-psutil" }, + { name = "types-psycopg2" }, + { name = "types-pyasn1" }, + { name = "types-pyopenssl" }, + { name = "types-python-dateutil" }, + { name = "types-pyyaml" }, + { name = "types-redis" }, + { name = "types-requests" }, + { name = "types-setuptools" }, + { name = "types-tabulate" }, + { name = "types-toml" }, + { name = "vulture" }, + { name = "yamlfix" }, +] + +[package.dev-dependencies] +codegen = [ + { name = "flext-infra" }, +] +dev = [ + { name = "autoflake" }, + { name = "bandit" }, + { name = "black" }, + { name = "blacken-docs" }, + { name = "codespell" }, + { name = "deptry" }, + { name = "django-stubs" }, + { name = "factory-boy" }, + { name = "faker" }, + { name = "flext-tests" }, + { name = "hypothesis" }, + { name = "isort" }, + { name = "matplotlib-stubs" }, + { name = "mkdocs" }, + { name = "mkdocs-awesome-pages-plugin" }, + { name = "mkdocs-encryptcontent-plugin" }, + { name = "mkdocs-exclude" }, + { name = "mkdocs-get-deps" }, + { name = "mkdocs-git-revision-date-localized-plugin" }, + { name = "mkdocs-literate-nav" }, + { name = "mkdocs-macros-plugin" }, + { name = "mkdocs-material" }, + { name = "mkdocs-material-extensions" }, + { name = "mkdocs-mermaid2-plugin" }, + { name = "mkdocs-minify-plugin" }, + { name = "mkdocs-print-site-plugin" }, + { name = "mkdocs-redirects" }, + { name = "mkdocs-section-index" }, + { name = "mkdocs-versioning" }, + { name = "mkdocstrings" }, + { name = "mkdocstrings-python" }, + { name = "pip-audit" }, + { name = "pre-commit" }, + { name = "pylint" }, + { name = "pyrefly" }, + { name = "pytest" }, + { name = "pytest-benchmark" }, + { name = "pytest-clarity" }, + { name = "pytest-codeblocks" }, + { name = "pytest-cov" }, + { name = "pytest-deadfixtures" }, + { name = "pytest-env" }, + { name = "pytest-markdown-docs" }, + { name = "pytest-mock" }, + { name = "pytest-randomly" }, + { name = "pytest-sugar" }, + { name = "pytest-timeout" }, + { name = "pytest-xdist" }, + { name = "pyupgrade" }, + { name = "radon" }, + { name = "ruff" }, + { name = "types-cachetools" }, + { name = "types-cffi" }, + { name = "types-click" }, + { name = "types-defusedxml" }, + { name = "types-docker" }, + { name = "types-flask" }, + { name = "types-ldap3" }, + { name = "types-paramiko" }, + { name = "types-protobuf" }, + { name = "types-psutil" }, + { name = "types-psycopg2" }, + { name = "types-pyasn1" }, + { name = "types-pyopenssl" }, + { name = "types-python-dateutil" }, + { name = "types-pyyaml" }, + { name = "types-redis" }, + { name = "types-requests" }, + { name = "types-setuptools" }, + { name = "types-tabulate" }, + { name = "types-toml" }, + { name = "vulture" }, +] + +[package.metadata] +requires-dist = [ + { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, + { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, + { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, + { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, + { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, + { name = "cryptography", specifier = ">=47.0.0" }, + { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, + { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, + { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, + { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, + { name = "flext-cli", editable = "flext-cli" }, + { name = "flext-core", editable = "flext-core" }, + { name = "flext-ldif", editable = "flext-ldif" }, + { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, + { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, + { name = "ldap3", specifier = ">=2.10.2rc4" }, + { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, + { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, + { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, + { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, + { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, + { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, + { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, + { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, + { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, + { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, + { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, + { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, + { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, + { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, + { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, + { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, + { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, + { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, + { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, + { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, + { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, + { name = "pydantic", specifier = ">=2.13.3" }, + { name = "pydantic-core", specifier = ">=2.46.3" }, + { name = "pydantic-settings", specifier = ">=2.14.0" }, + { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, + { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, + { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, + { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, + { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, + { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, + { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, + { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, + { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, + { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, + { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, + { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, + { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, + { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, + { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, + { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, + { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, + { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, + { name = "structlog", specifier = ">=25.5.0" }, + { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, + { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, + { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, + { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, + { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, + { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, + { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, + { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, + { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, + { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, + { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, + { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, + { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, + { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, + { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, + { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, + { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, + { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, + { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, + { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, + { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, + { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, + { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, +] +provides-extras = ["dev"] + +[package.metadata.requires-dev] +codegen = [{ name = "flext-infra", editable = "flext-infra" }] +dev = [ + { name = "autoflake", specifier = ">=2.3.1" }, + { name = "bandit", specifier = ">=1.8" }, + { name = "black", specifier = ">=25.1" }, + { name = "blacken-docs", specifier = ">=1.19" }, + { name = "codespell", specifier = ">=2.3" }, + { name = "deptry", specifier = ">=0.23" }, + { name = "django-stubs", specifier = ">=5.2.2" }, + { name = "factory-boy", specifier = ">=3.3.1" }, + { name = "faker", specifier = ">=37.4" }, + { name = "flext-tests", editable = "flext-tests" }, + { name = "hypothesis", specifier = ">=6.125" }, + { name = "isort", specifier = ">=6.0.1" }, + { name = "matplotlib-stubs", specifier = ">=0.3" }, + { name = "mkdocs", specifier = ">=1.6" }, + { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.9" }, + { name = "mkdocs-encryptcontent-plugin", specifier = ">=2" }, + { name = "mkdocs-exclude", specifier = ">=1.0.2" }, + { name = "mkdocs-get-deps", specifier = ">=0.2" }, + { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.2" }, + { name = "mkdocs-literate-nav", specifier = ">=0.6" }, + { name = "mkdocs-macros-plugin", specifier = ">=1" }, + { name = "mkdocs-material", specifier = ">=9.5" }, + { name = "mkdocs-material-extensions", specifier = ">=1.3.1" }, + { name = "mkdocs-mermaid2-plugin", specifier = ">=1.1" }, + { name = "mkdocs-minify-plugin", specifier = ">=0.7" }, + { name = "mkdocs-print-site-plugin", specifier = ">=0.8" }, + { name = "mkdocs-redirects", specifier = ">=1.2" }, + { name = "mkdocs-section-index", specifier = ">=0.3.12" }, + { name = "mkdocs-versioning", specifier = ">=0.2" }, + { name = "mkdocstrings", specifier = ">=0.24" }, + { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "pip-audit", specifier = ">=2.7.3" }, + { name = "pre-commit", specifier = ">=4.6.0" }, + { name = "pylint", specifier = ">=3.3" }, + { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pytest", specifier = ">=8.4" }, + { name = "pytest-benchmark", specifier = ">=5.1" }, + { name = "pytest-clarity", specifier = ">=1.0.1" }, + { name = "pytest-codeblocks", specifier = ">=0.17.0" }, + { name = "pytest-cov", specifier = ">=6.2" }, + { name = "pytest-deadfixtures", specifier = ">=2.2.1" }, + { name = "pytest-env", specifier = ">=1.1.5" }, + { name = "pytest-markdown-docs", specifier = ">=0.9.2" }, + { name = "pytest-mock", specifier = ">=3.14" }, + { name = "pytest-randomly", specifier = ">=3.16" }, + { name = "pytest-sugar", specifier = ">=1" }, + { name = "pytest-timeout", specifier = ">=2.4" }, + { name = "pytest-xdist", specifier = ">=3.8" }, + { name = "pyupgrade", specifier = ">=3.19" }, + { name = "radon", specifier = ">=6.0.1" }, + { name = "ruff", specifier = ">=0.12.3" }, + { name = "types-cachetools", specifier = ">=6.2" }, + { name = "types-cffi", specifier = ">=2.0" }, + { name = "types-click", specifier = ">=7.1" }, + { name = "types-defusedxml", specifier = ">=0.7" }, + { name = "types-docker", specifier = ">=7.1" }, + { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, + { name = "types-paramiko", specifier = ">=4.0" }, + { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, + { name = "types-psutil", specifier = ">=7" }, + { name = "types-psycopg2", specifier = ">=2.9.21.20250718" }, + { name = "types-pyasn1", specifier = ">=0.6" }, + { name = "types-pyopenssl", specifier = ">=24.1" }, + { name = "types-python-dateutil", specifier = ">=2.9" }, + { name = "types-pyyaml", specifier = ">=6.0.12.20260518" }, + { name = "types-redis", specifier = ">=4.6" }, + { name = "types-requests", specifier = ">=2.32.4" }, + { name = "types-setuptools", specifier = ">=80.9" }, + { name = "types-tabulate", specifier = ">=0.10" }, + { name = "types-toml", specifier = ">=0.10.8.20240310" }, + { name = "vulture", specifier = ">=2.13" }, +] + +[[package]] +name = "flext-ldif" +version = "0.12.0rc0" +source = { editable = "flext-ldif" } +dependencies = [ + { name = "colorlog" }, + { name = "flext-cli" }, + { name = "flext-core" }, + { name = "ldap3" }, + { name = "pydantic" }, + { name = "pydantic-core" }, + { name = "pydantic-settings" }, + { name = "structlog" }, +] + +[package.optional-dependencies] +dev = [ + { name = "autoflake" }, + { name = "bandit" }, + { name = "black" }, + { name = "blacken-docs" }, + { name = "codespell" }, + { name = "deptry" }, + { name = "django-stubs" }, + { name = "factory-boy" }, + { name = "faker" }, + { name = "hypothesis" }, + { name = "isort" }, + { name = "matplotlib-stubs" }, + { name = "mkdocs" }, + { name = "mkdocs-awesome-pages-plugin" }, + { name = "mkdocs-encryptcontent-plugin" }, + { name = "mkdocs-exclude" }, + { name = "mkdocs-get-deps" }, + { name = "mkdocs-git-revision-date-localized-plugin" }, + { name = "mkdocs-literate-nav" }, + { name = "mkdocs-macros-plugin" }, + { name = "mkdocs-material" }, + { name = "mkdocs-material-extensions" }, + { name = "mkdocs-mermaid2-plugin" }, + { name = "mkdocs-minify-plugin" }, + { name = "mkdocs-print-site-plugin" }, + { name = "mkdocs-redirects" }, + { name = "mkdocs-section-index" }, + { name = "mkdocs-versioning" }, + { name = "mkdocstrings" }, + { name = "mkdocstrings-python" }, + { name = "pip-audit" }, + { name = "pre-commit" }, + { name = "pylint" }, + { name = "pyrefly" }, + { name = "pytest" }, + { name = "pytest-benchmark" }, + { name = "pytest-clarity" }, + { name = "pytest-codeblocks" }, + { name = "pytest-cov" }, + { name = "pytest-deadfixtures" }, + { name = "pytest-env" }, + { name = "pytest-markdown-docs" }, + { name = "pytest-mock" }, + { name = "pytest-randomly" }, + { name = "pytest-sugar" }, + { name = "pytest-timeout" }, + { name = "pytest-xdist" }, + { name = "pyupgrade" }, + { name = "radon" }, + { name = "ruff" }, + { name = "types-cachetools" }, + { name = "types-cffi" }, + { name = "types-click" }, + { name = "types-defusedxml" }, + { name = "types-docker" }, + { name = "types-flask" }, + { name = "types-jsonschema" }, + { name = "types-ldap3" }, + { name = "types-paramiko" }, + { name = "types-protobuf" }, + { name = "types-psutil" }, + { name = "types-psycopg2" }, + { name = "types-pyasn1" }, + { name = "types-pyopenssl" }, + { name = "types-python-dateutil" }, + { name = "types-pyyaml" }, + { name = "types-redis" }, + { name = "types-requests" }, + { name = "types-setuptools" }, + { name = "types-tabulate" }, + { name = "types-toml" }, + { name = "vulture" }, + { name = "yamlfix" }, +] + +[package.dev-dependencies] +codegen = [ + { name = "flext-infra" }, +] +dev = [ + { name = "autoflake" }, + { name = "bandit" }, + { name = "black" }, + { name = "blacken-docs" }, + { name = "codespell" }, + { name = "deptry" }, + { name = "django-stubs" }, + { name = "factory-boy" }, + { name = "faker" }, + { name = "flext-tests" }, + { name = "hypothesis" }, + { name = "isort" }, + { name = "matplotlib-stubs" }, + { name = "mkdocs" }, + { name = "mkdocs-awesome-pages-plugin" }, + { name = "mkdocs-encryptcontent-plugin" }, + { name = "mkdocs-exclude" }, + { name = "mkdocs-get-deps" }, + { name = "mkdocs-git-revision-date-localized-plugin" }, + { name = "mkdocs-literate-nav" }, + { name = "mkdocs-macros-plugin" }, + { name = "mkdocs-material" }, + { name = "mkdocs-material-extensions" }, + { name = "mkdocs-mermaid2-plugin" }, + { name = "mkdocs-minify-plugin" }, + { name = "mkdocs-print-site-plugin" }, + { name = "mkdocs-redirects" }, + { name = "mkdocs-section-index" }, + { name = "mkdocs-versioning" }, + { name = "mkdocstrings" }, + { name = "mkdocstrings-python" }, + { name = "pip-audit" }, + { name = "pre-commit" }, + { name = "pylint" }, + { name = "pyrefly" }, + { name = "pytest" }, + { name = "pytest-benchmark" }, + { name = "pytest-clarity" }, + { name = "pytest-codeblocks" }, + { name = "pytest-cov" }, + { name = "pytest-deadfixtures" }, + { name = "pytest-env" }, + { name = "pytest-markdown-docs" }, + { name = "pytest-mock" }, + { name = "pytest-randomly" }, + { name = "pytest-sugar" }, + { name = "pytest-timeout" }, + { name = "pytest-xdist" }, + { name = "pyupgrade" }, + { name = "radon" }, + { name = "ruff" }, + { name = "types-cachetools" }, + { name = "types-cffi" }, + { name = "types-click" }, + { name = "types-defusedxml" }, + { name = "types-docker" }, + { name = "types-flask" }, + { name = "types-ldap3" }, + { name = "types-paramiko" }, + { name = "types-protobuf" }, + { name = "types-psutil" }, + { name = "types-psycopg2" }, + { name = "types-pyasn1" }, + { name = "types-pyopenssl" }, + { name = "types-python-dateutil" }, + { name = "types-pyyaml" }, + { name = "types-redis" }, + { name = "types-requests" }, + { name = "types-setuptools" }, + { name = "types-tabulate" }, + { name = "types-toml" }, + { name = "vulture" }, +] + +[package.metadata] +requires-dist = [ + { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, + { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, + { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, + { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, + { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, + { name = "colorlog", specifier = ">=6.10.1" }, + { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, + { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, + { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, + { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, + { name = "flext-cli", editable = "flext-cli" }, + { name = "flext-core", editable = "flext-core" }, + { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, + { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, + { name = "ldap3", specifier = ">=2.10.2rc4" }, + { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, + { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, + { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, + { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, + { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, + { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, + { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, + { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, + { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, + { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, + { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, + { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, + { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, + { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, + { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, + { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, + { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, + { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, + { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, + { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, + { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, + { name = "pydantic", specifier = ">=2.13.3" }, + { name = "pydantic-core", specifier = ">=2.46.3" }, + { name = "pydantic-settings", specifier = ">=2.14.0" }, + { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, + { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, + { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, + { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, + { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, + { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, + { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, + { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, + { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, + { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, + { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, + { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, + { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, + { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, + { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, + { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, + { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, + { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, + { name = "structlog", specifier = ">=25.5.0" }, + { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, + { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, + { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, + { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, + { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, + { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, + { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, + { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, + { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, + { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, + { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, + { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, + { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, + { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, + { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, + { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, + { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, + { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, + { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, + { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, + { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, + { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, + { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, +] +provides-extras = ["dev"] + +[package.metadata.requires-dev] +codegen = [{ name = "flext-infra", editable = "flext-infra" }] +dev = [ + { name = "autoflake", specifier = ">=2.3.1" }, + { name = "bandit", specifier = ">=1.8" }, + { name = "black", specifier = ">=25.1" }, + { name = "blacken-docs", specifier = ">=1.19" }, + { name = "codespell", specifier = ">=2.3" }, + { name = "deptry", specifier = ">=0.23" }, + { name = "django-stubs", specifier = ">=5.2.2" }, + { name = "factory-boy", specifier = ">=3.3.1" }, + { name = "faker", specifier = ">=37.4" }, + { name = "flext-tests", editable = "flext-tests" }, + { name = "hypothesis", specifier = ">=6.125" }, + { name = "isort", specifier = ">=6.0.1" }, + { name = "matplotlib-stubs", specifier = ">=0.3" }, + { name = "mkdocs", specifier = ">=1.6" }, + { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.9" }, + { name = "mkdocs-encryptcontent-plugin", specifier = ">=2" }, + { name = "mkdocs-exclude", specifier = ">=1.0.2" }, + { name = "mkdocs-get-deps", specifier = ">=0.2" }, + { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.2" }, + { name = "mkdocs-literate-nav", specifier = ">=0.6" }, + { name = "mkdocs-macros-plugin", specifier = ">=1" }, + { name = "mkdocs-material", specifier = ">=9.5" }, + { name = "mkdocs-material-extensions", specifier = ">=1.3.1" }, + { name = "mkdocs-mermaid2-plugin", specifier = ">=1.1" }, + { name = "mkdocs-minify-plugin", specifier = ">=0.7" }, + { name = "mkdocs-print-site-plugin", specifier = ">=0.8" }, + { name = "mkdocs-redirects", specifier = ">=1.2" }, + { name = "mkdocs-section-index", specifier = ">=0.3.12" }, + { name = "mkdocs-versioning", specifier = ">=0.2" }, + { name = "mkdocstrings", specifier = ">=0.24" }, + { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "pip-audit", specifier = ">=2.7.3" }, + { name = "pre-commit", specifier = ">=4.6.0" }, + { name = "pylint", specifier = ">=3.3" }, + { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pytest", specifier = ">=8.4" }, + { name = "pytest-benchmark", specifier = ">=5.1" }, + { name = "pytest-clarity", specifier = ">=1.0.1" }, + { name = "pytest-codeblocks", specifier = ">=0.17.0" }, + { name = "pytest-cov", specifier = ">=6.2" }, + { name = "pytest-deadfixtures", specifier = ">=2.2.1" }, + { name = "pytest-env", specifier = ">=1.1.5" }, + { name = "pytest-markdown-docs", specifier = ">=0.9.2" }, + { name = "pytest-mock", specifier = ">=3.14" }, + { name = "pytest-randomly", specifier = ">=3.16" }, + { name = "pytest-sugar", specifier = ">=1" }, + { name = "pytest-timeout", specifier = ">=2.4" }, + { name = "pytest-xdist", specifier = ">=3.8" }, + { name = "pyupgrade", specifier = ">=3.19" }, + { name = "radon", specifier = ">=6.0.1" }, + { name = "ruff", specifier = ">=0.12.3" }, + { name = "types-cachetools", specifier = ">=6.2" }, + { name = "types-cffi", specifier = ">=2.0" }, + { name = "types-click", specifier = ">=7.1" }, + { name = "types-defusedxml", specifier = ">=0.7" }, + { name = "types-docker", specifier = ">=7.1" }, + { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, + { name = "types-paramiko", specifier = ">=4.0" }, + { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, + { name = "types-psutil", specifier = ">=7" }, + { name = "types-psycopg2", specifier = ">=2.9.21.20250718" }, + { name = "types-pyasn1", specifier = ">=0.6" }, + { name = "types-pyopenssl", specifier = ">=24.1" }, + { name = "types-python-dateutil", specifier = ">=2.9" }, + { name = "types-pyyaml", specifier = ">=6.0.12.20260518" }, + { name = "types-redis", specifier = ">=4.6" }, + { name = "types-requests", specifier = ">=2.32.4" }, + { name = "types-setuptools", specifier = ">=80.9" }, + { name = "types-tabulate", specifier = ">=0.10" }, + { name = "types-toml", specifier = ">=0.10.8.20240310" }, + { name = "vulture", specifier = ">=2.13" }, +] + +[[package]] +name = "flext-meltano" +version = "0.12.0rc0" +source = { editable = "flext-meltano" } +dependencies = [ + { name = "alembic" }, + { name = "dbt-adapters" }, + { name = "dbt-common" }, + { name = "dbt-core" }, + { name = "duckdb" }, + { name = "fastapi" }, + { name = "flext-cli" }, + { name = "flext-core" }, + { name = "httpx" }, + { name = "injectable" }, + { name = "jinja2" }, + { name = "meltano" }, + { name = "pandas" }, + { name = "prometheus-client" }, + { name = "pydantic" }, + { name = "pydantic-core" }, + { name = "pydantic-settings" }, + { name = "python-dotenv" }, + { name = "pyyaml" }, + { name = "referencing" }, + { name = "requests" }, + { name = "setuptools" }, + { name = "singer-sdk" }, + { name = "sqlalchemy" }, + { name = "structlog" }, + { name = "uvicorn" }, + { name = "wrapt" }, +] + +[package.optional-dependencies] +dev = [ + { name = "autoflake" }, + { name = "bandit" }, + { name = "black" }, + { name = "blacken-docs" }, + { name = "codespell" }, + { name = "deptry" }, + { name = "django-stubs" }, + { name = "factory-boy" }, + { name = "faker" }, + { name = "hypothesis" }, + { name = "isort" }, + { name = "matplotlib-stubs" }, + { name = "mkdocs" }, + { name = "mkdocs-awesome-pages-plugin" }, + { name = "mkdocs-encryptcontent-plugin" }, + { name = "mkdocs-exclude" }, + { name = "mkdocs-get-deps" }, + { name = "mkdocs-git-revision-date-localized-plugin" }, + { name = "mkdocs-literate-nav" }, + { name = "mkdocs-macros-plugin" }, + { name = "mkdocs-material" }, + { name = "mkdocs-material-extensions" }, + { name = "mkdocs-mermaid2-plugin" }, + { name = "mkdocs-minify-plugin" }, + { name = "mkdocs-print-site-plugin" }, + { name = "mkdocs-redirects" }, + { name = "mkdocs-section-index" }, + { name = "mkdocs-versioning" }, + { name = "mkdocstrings" }, + { name = "mkdocstrings-python" }, + { name = "pip-audit" }, + { name = "pre-commit" }, + { name = "pylint" }, + { name = "pyrefly" }, + { name = "pytest" }, + { name = "pytest-benchmark" }, + { name = "pytest-clarity" }, + { name = "pytest-codeblocks" }, + { name = "pytest-cov" }, + { name = "pytest-deadfixtures" }, + { name = "pytest-env" }, + { name = "pytest-markdown-docs" }, + { name = "pytest-mock" }, + { name = "pytest-randomly" }, + { name = "pytest-sugar" }, + { name = "pytest-timeout" }, + { name = "pytest-xdist" }, + { name = "pyupgrade" }, + { name = "radon" }, + { name = "ruff" }, + { name = "types-cachetools" }, + { name = "types-cffi" }, + { name = "types-click" }, + { name = "types-defusedxml" }, + { name = "types-docker" }, + { name = "types-flask" }, + { name = "types-jsonschema" }, + { name = "types-ldap3" }, + { name = "types-paramiko" }, + { name = "types-protobuf" }, + { name = "types-psutil" }, + { name = "types-psycopg2" }, + { name = "types-pyasn1" }, + { name = "types-pyopenssl" }, + { name = "types-python-dateutil" }, + { name = "types-pyyaml" }, + { name = "types-redis" }, + { name = "types-requests" }, + { name = "types-setuptools" }, + { name = "types-tabulate" }, + { name = "types-toml" }, + { name = "vulture" }, + { name = "yamlfix" }, +] + +[package.dev-dependencies] +codegen = [ + { name = "flext-infra" }, +] +dev = [ + { name = "autoflake" }, + { name = "bandit" }, + { name = "black" }, + { name = "blacken-docs" }, + { name = "codespell" }, + { name = "deptry" }, + { name = "django-stubs" }, + { name = "factory-boy" }, + { name = "faker" }, + { name = "flext-tests" }, + { name = "hypothesis" }, + { name = "isort" }, + { name = "matplotlib-stubs" }, + { name = "mkdocs" }, + { name = "mkdocs-awesome-pages-plugin" }, + { name = "mkdocs-encryptcontent-plugin" }, + { name = "mkdocs-exclude" }, + { name = "mkdocs-get-deps" }, + { name = "mkdocs-git-revision-date-localized-plugin" }, + { name = "mkdocs-literate-nav" }, + { name = "mkdocs-macros-plugin" }, + { name = "mkdocs-material" }, + { name = "mkdocs-material-extensions" }, + { name = "mkdocs-mermaid2-plugin" }, + { name = "mkdocs-minify-plugin" }, + { name = "mkdocs-print-site-plugin" }, + { name = "mkdocs-redirects" }, + { name = "mkdocs-section-index" }, + { name = "mkdocs-versioning" }, + { name = "mkdocstrings" }, + { name = "mkdocstrings-python" }, + { name = "pip-audit" }, + { name = "pre-commit" }, + { name = "psycopg2" }, + { name = "pylint" }, + { name = "pyrefly" }, + { name = "pytest" }, + { name = "pytest-benchmark" }, + { name = "pytest-clarity" }, + { name = "pytest-codeblocks" }, + { name = "pytest-cov" }, + { name = "pytest-deadfixtures" }, + { name = "pytest-env" }, + { name = "pytest-markdown-docs" }, + { name = "pytest-mock" }, + { name = "pytest-randomly" }, + { name = "pytest-sugar" }, + { name = "pytest-timeout" }, + { name = "pytest-xdist" }, + { name = "pyupgrade" }, + { name = "radon" }, + { name = "redis" }, + { name = "ruff" }, + { name = "types-cachetools" }, + { name = "types-cffi" }, + { name = "types-click" }, + { name = "types-defusedxml" }, + { name = "types-docker" }, + { name = "types-flask" }, + { name = "types-ldap3" }, + { name = "types-paramiko" }, + { name = "types-protobuf" }, + { name = "types-psutil" }, + { name = "types-psycopg2" }, + { name = "types-pyasn1" }, + { name = "types-pyopenssl" }, + { name = "types-python-dateutil" }, + { name = "types-pyyaml" }, + { name = "types-redis" }, + { name = "types-requests" }, + { name = "types-setuptools" }, + { name = "types-tabulate" }, + { name = "types-toml" }, + { name = "vulture" }, +] + +[package.metadata] +requires-dist = [ + { name = "alembic", specifier = ">=1.18.4" }, + { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, + { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, + { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, + { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, + { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, + { name = "dbt-adapters", specifier = ">=1.24.4" }, + { name = "dbt-common", specifier = ">=1.38.0" }, + { name = "dbt-core", specifier = ">=1.12.0,<1.13" }, + { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, + { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, + { name = "duckdb", specifier = ">=1.5.2" }, + { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, + { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, + { name = "fastapi", specifier = ">=0.136.1" }, + { name = "flext-cli", editable = "flext-cli" }, + { name = "flext-core", editable = "flext-core" }, + { name = "httpx", specifier = ">=0.28.1" }, + { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, + { name = "injectable", specifier = ">=4.0.1" }, + { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, + { name = "jinja2", specifier = ">=3.1.6" }, + { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, + { name = "meltano", specifier = ">=4.2.1" }, + { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, + { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, + { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, + { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, + { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, + { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, + { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, + { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, + { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, + { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, + { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, + { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, + { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, + { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, + { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, + { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, + { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, + { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, + { name = "pandas", specifier = ">=3.0.2" }, + { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, + { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, + { name = "prometheus-client", specifier = ">=0.25.0" }, + { name = "pydantic", specifier = ">=2.13.3" }, + { name = "pydantic-core", specifier = ">=2.46.3" }, + { name = "pydantic-settings", specifier = ">=2.14.0" }, + { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, + { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, + { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, + { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, + { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, + { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, + { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, + { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, + { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, + { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, + { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, + { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, + { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, + { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, + { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, + { name = "python-dotenv", specifier = ">=1.2.2" }, + { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, + { name = "pyyaml", specifier = ">=6.0.3" }, + { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, + { name = "referencing", specifier = ">=0.37.0" }, + { name = "requests", specifier = ">=2.33.1" }, + { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, + { name = "setuptools", specifier = ">=82.0.1" }, + { name = "singer-sdk", specifier = ">=0.53.7" }, + { name = "sqlalchemy", specifier = ">=2.0.49" }, + { name = "structlog", specifier = ">=25.5.0" }, + { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, + { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, + { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, + { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, + { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, + { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, + { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, + { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, + { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, + { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, + { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, + { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, + { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, + { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, + { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, + { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, + { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, + { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, + { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, + { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, + { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, + { name = "uvicorn", specifier = ">=0.46.0" }, + { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, + { name = "wrapt", specifier = ">=2.1.2" }, + { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, +] +provides-extras = ["dev"] + +[package.metadata.requires-dev] +codegen = [{ name = "flext-infra", editable = "flext-infra" }] +dev = [ + { name = "autoflake", specifier = ">=2.3.1" }, + { name = "bandit", specifier = ">=1.8" }, + { name = "black", specifier = ">=25.1" }, + { name = "blacken-docs", specifier = ">=1.19" }, + { name = "codespell", specifier = ">=2.3" }, + { name = "deptry", specifier = ">=0.23" }, + { name = "django-stubs", specifier = ">=5.2.2" }, + { name = "factory-boy", specifier = ">=3.3.1" }, + { name = "faker", specifier = ">=37.4" }, + { name = "flext-tests", editable = "flext-tests" }, + { name = "hypothesis", specifier = ">=6.125" }, + { name = "isort", specifier = ">=6.0.1" }, + { name = "matplotlib-stubs", specifier = ">=0.3" }, + { name = "mkdocs", specifier = ">=1.6" }, + { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.9" }, + { name = "mkdocs-encryptcontent-plugin", specifier = ">=2" }, + { name = "mkdocs-exclude", specifier = ">=1.0.2" }, + { name = "mkdocs-get-deps", specifier = ">=0.2" }, + { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.2" }, + { name = "mkdocs-literate-nav", specifier = ">=0.6" }, + { name = "mkdocs-macros-plugin", specifier = ">=1" }, + { name = "mkdocs-material", specifier = ">=9.5" }, + { name = "mkdocs-material-extensions", specifier = ">=1.3.1" }, + { name = "mkdocs-mermaid2-plugin", specifier = ">=1.1" }, + { name = "mkdocs-minify-plugin", specifier = ">=0.7" }, + { name = "mkdocs-print-site-plugin", specifier = ">=0.8" }, + { name = "mkdocs-redirects", specifier = ">=1.2" }, + { name = "mkdocs-section-index", specifier = ">=0.3.12" }, + { name = "mkdocs-versioning", specifier = ">=0.2" }, + { name = "mkdocstrings", specifier = ">=0.24" }, + { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "pip-audit", specifier = ">=2.7.3" }, + { name = "pre-commit", specifier = ">=4.6.0" }, + { name = "psycopg2", specifier = ">=2.9.12" }, + { name = "pylint", specifier = ">=3.3" }, + { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pytest", specifier = ">=8.4" }, + { name = "pytest-benchmark", specifier = ">=5.1" }, + { name = "pytest-clarity", specifier = ">=1.0.1" }, + { name = "pytest-codeblocks", specifier = ">=0.17.0" }, + { name = "pytest-cov", specifier = ">=6.2" }, + { name = "pytest-deadfixtures", specifier = ">=2.2.1" }, + { name = "pytest-env", specifier = ">=1.1.5" }, + { name = "pytest-markdown-docs", specifier = ">=0.9.2" }, + { name = "pytest-mock", specifier = ">=3.14" }, + { name = "pytest-randomly", specifier = ">=3.16" }, + { name = "pytest-sugar", specifier = ">=1" }, + { name = "pytest-timeout", specifier = ">=2.4" }, + { name = "pytest-xdist", specifier = ">=3.8" }, + { name = "pyupgrade", specifier = ">=3.19" }, + { name = "radon", specifier = ">=6.0.1" }, + { name = "redis", specifier = ">=7.4.0" }, + { name = "ruff", specifier = ">=0.12.3" }, + { name = "types-cachetools", specifier = ">=6.2" }, + { name = "types-cffi", specifier = ">=2.0" }, + { name = "types-click", specifier = ">=7.1" }, + { name = "types-defusedxml", specifier = ">=0.7" }, + { name = "types-docker", specifier = ">=7.1" }, + { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, + { name = "types-paramiko", specifier = ">=4.0" }, + { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, + { name = "types-psutil", specifier = ">=7" }, + { name = "types-psycopg2", specifier = ">=2.9.21.20260422" }, + { name = "types-pyasn1", specifier = ">=0.6" }, + { name = "types-pyopenssl", specifier = ">=24.1" }, + { name = "types-python-dateutil", specifier = ">=2.9" }, + { name = "types-pyyaml", specifier = ">=6.0.12.20260518" }, + { name = "types-redis", specifier = ">=4.6.0.20241004" }, + { name = "types-requests", specifier = ">=2.32.4" }, + { name = "types-setuptools", specifier = ">=80.9" }, + { name = "types-tabulate", specifier = ">=0.10" }, + { name = "types-toml", specifier = ">=0.10.8.20240310" }, + { name = "vulture", specifier = ">=2.13" }, +] + +[[package]] +name = "flext-observability" +version = "0.12.0rc0" +source = { editable = "flext-observability" } +dependencies = [ + { name = "flask" }, + { name = "flext-cli" }, + { name = "flext-core" }, + { name = "opentelemetry-api" }, + { name = "opentelemetry-exporter-otlp-proto-grpc" }, + { name = "opentelemetry-exporter-prometheus" }, + { name = "opentelemetry-sdk" }, + { name = "prometheus-client" }, + { name = "psutil" }, + { name = "pydantic" }, + { name = "pydantic-core" }, + { name = "pydantic-settings" }, + { name = "rich" }, + { name = "starlette" }, + { name = "structlog" }, + { name = "typer" }, +] + +[package.optional-dependencies] +dev = [ + { name = "autoflake" }, + { name = "bandit" }, + { name = "black" }, + { name = "blacken-docs" }, + { name = "codespell" }, + { name = "deptry" }, + { name = "django-stubs" }, + { name = "factory-boy" }, + { name = "faker" }, + { name = "hypothesis" }, + { name = "isort" }, + { name = "matplotlib-stubs" }, + { name = "mkdocs" }, + { name = "mkdocs-awesome-pages-plugin" }, + { name = "mkdocs-encryptcontent-plugin" }, + { name = "mkdocs-exclude" }, + { name = "mkdocs-get-deps" }, + { name = "mkdocs-git-revision-date-localized-plugin" }, + { name = "mkdocs-literate-nav" }, + { name = "mkdocs-macros-plugin" }, + { name = "mkdocs-material" }, + { name = "mkdocs-material-extensions" }, + { name = "mkdocs-mermaid2-plugin" }, + { name = "mkdocs-minify-plugin" }, + { name = "mkdocs-print-site-plugin" }, + { name = "mkdocs-redirects" }, + { name = "mkdocs-section-index" }, + { name = "mkdocs-versioning" }, + { name = "mkdocstrings" }, + { name = "mkdocstrings-python" }, + { name = "pip-audit" }, + { name = "pre-commit" }, + { name = "pylint" }, + { name = "pyrefly" }, + { name = "pytest" }, + { name = "pytest-benchmark" }, + { name = "pytest-clarity" }, + { name = "pytest-codeblocks" }, + { name = "pytest-cov" }, + { name = "pytest-deadfixtures" }, + { name = "pytest-env" }, + { name = "pytest-markdown-docs" }, + { name = "pytest-mock" }, + { name = "pytest-randomly" }, + { name = "pytest-sugar" }, + { name = "pytest-timeout" }, + { name = "pytest-xdist" }, + { name = "pyupgrade" }, + { name = "radon" }, + { name = "ruff" }, + { name = "types-cachetools" }, + { name = "types-cffi" }, + { name = "types-click" }, + { name = "types-defusedxml" }, + { name = "types-docker" }, + { name = "types-flask" }, + { name = "types-jsonschema" }, + { name = "types-ldap3" }, + { name = "types-paramiko" }, + { name = "types-protobuf" }, + { name = "types-psutil" }, + { name = "types-psycopg2" }, + { name = "types-pyasn1" }, + { name = "types-pyopenssl" }, + { name = "types-python-dateutil" }, + { name = "types-pyyaml" }, + { name = "types-redis" }, + { name = "types-requests" }, + { name = "types-setuptools" }, + { name = "types-tabulate" }, + { name = "types-toml" }, + { name = "vulture" }, + { name = "yamlfix" }, +] + +[package.dev-dependencies] +codegen = [ + { name = "flext-infra" }, +] +dev = [ + { name = "autoflake" }, + { name = "bandit" }, + { name = "black" }, + { name = "blacken-docs" }, + { name = "codespell" }, + { name = "deptry" }, + { name = "django-stubs" }, + { name = "factory-boy" }, + { name = "faker" }, + { name = "flext-tests" }, + { name = "hypothesis" }, + { name = "isort" }, + { name = "matplotlib-stubs" }, + { name = "mkdocs" }, + { name = "mkdocs-awesome-pages-plugin" }, + { name = "mkdocs-encryptcontent-plugin" }, + { name = "mkdocs-exclude" }, + { name = "mkdocs-get-deps" }, + { name = "mkdocs-git-revision-date-localized-plugin" }, + { name = "mkdocs-literate-nav" }, + { name = "mkdocs-macros-plugin" }, + { name = "mkdocs-material" }, + { name = "mkdocs-material-extensions" }, + { name = "mkdocs-mermaid2-plugin" }, + { name = "mkdocs-minify-plugin" }, + { name = "mkdocs-print-site-plugin" }, + { name = "mkdocs-redirects" }, + { name = "mkdocs-section-index" }, + { name = "mkdocs-versioning" }, + { name = "mkdocstrings" }, + { name = "mkdocstrings-python" }, + { name = "pip-audit" }, + { name = "pre-commit" }, + { name = "pylint" }, + { name = "pyrefly" }, + { name = "pytest" }, + { name = "pytest-benchmark" }, + { name = "pytest-clarity" }, + { name = "pytest-codeblocks" }, + { name = "pytest-cov" }, + { name = "pytest-deadfixtures" }, + { name = "pytest-env" }, + { name = "pytest-markdown-docs" }, + { name = "pytest-mock" }, + { name = "pytest-randomly" }, + { name = "pytest-sugar" }, + { name = "pytest-timeout" }, + { name = "pytest-xdist" }, + { name = "pyupgrade" }, + { name = "radon" }, + { name = "ruff" }, + { name = "types-cachetools" }, + { name = "types-cffi" }, + { name = "types-click" }, + { name = "types-defusedxml" }, + { name = "types-docker" }, + { name = "types-flask" }, + { name = "types-ldap3" }, + { name = "types-paramiko" }, + { name = "types-protobuf" }, + { name = "types-psutil" }, + { name = "types-psycopg2" }, + { name = "types-pyasn1" }, + { name = "types-pyopenssl" }, + { name = "types-python-dateutil" }, + { name = "types-pyyaml" }, + { name = "types-redis" }, + { name = "types-requests" }, + { name = "types-setuptools" }, + { name = "types-tabulate" }, + { name = "types-toml" }, + { name = "vulture" }, +] + +[package.metadata] +requires-dist = [ + { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, + { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, + { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, + { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, + { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, + { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, + { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, + { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, + { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, + { name = "flask", specifier = ">=3.1.3" }, + { name = "flext-cli", editable = "flext-cli" }, + { name = "flext-core", editable = "flext-core" }, + { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, + { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, + { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, + { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, + { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, + { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, + { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, + { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, + { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, + { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, + { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, + { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, + { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, + { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, + { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, + { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, + { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, + { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, + { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, + { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, + { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, + { name = "opentelemetry-api", specifier = ">=1.41.1" }, + { name = "opentelemetry-exporter-otlp-proto-grpc", specifier = ">=1.41.1" }, + { name = "opentelemetry-exporter-prometheus", specifier = ">=0.62b1" }, + { name = "opentelemetry-sdk", specifier = ">=1.41.1" }, + { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, + { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, + { name = "prometheus-client", specifier = ">=0.25.0" }, + { name = "psutil", specifier = ">=7.2.2" }, + { name = "pydantic", specifier = ">=2.13.3" }, + { name = "pydantic-core", specifier = ">=2.46.3" }, + { name = "pydantic-settings", specifier = ">=2.14.0" }, + { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, + { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, + { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, + { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, + { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, + { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, + { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, + { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, + { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, + { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, + { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, + { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, + { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, + { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, + { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, + { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, + { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, + { name = "rich", specifier = ">=14,<14.4" }, + { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, + { name = "starlette", specifier = ">=1.0.0" }, + { name = "structlog", specifier = ">=25.5.0" }, + { name = "typer", specifier = ">=0.25.1" }, + { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, + { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, + { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, + { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, + { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, + { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, + { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, + { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, + { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, + { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, + { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, + { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, + { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, + { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, + { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, + { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, + { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, + { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, + { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, + { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, + { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, + { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, + { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, +] +provides-extras = ["dev"] + +[package.metadata.requires-dev] +codegen = [{ name = "flext-infra", editable = "flext-infra" }] +dev = [ + { name = "autoflake", specifier = ">=2.3.1" }, + { name = "bandit", specifier = ">=1.8" }, + { name = "black", specifier = ">=25.1" }, + { name = "blacken-docs", specifier = ">=1.19" }, + { name = "codespell", specifier = ">=2.3" }, + { name = "deptry", specifier = ">=0.23" }, + { name = "django-stubs", specifier = ">=5.2.2" }, + { name = "factory-boy", specifier = ">=3.3.1" }, + { name = "faker", specifier = ">=37.4" }, + { name = "flext-tests", editable = "flext-tests" }, + { name = "hypothesis", specifier = ">=6.125" }, + { name = "isort", specifier = ">=6.0.1" }, + { name = "matplotlib-stubs", specifier = ">=0.3" }, + { name = "mkdocs", specifier = ">=1.6" }, + { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.9" }, + { name = "mkdocs-encryptcontent-plugin", specifier = ">=2" }, + { name = "mkdocs-exclude", specifier = ">=1.0.2" }, + { name = "mkdocs-get-deps", specifier = ">=0.2" }, + { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.2" }, + { name = "mkdocs-literate-nav", specifier = ">=0.6" }, + { name = "mkdocs-macros-plugin", specifier = ">=1" }, + { name = "mkdocs-material", specifier = ">=9.5" }, + { name = "mkdocs-material-extensions", specifier = ">=1.3.1" }, + { name = "mkdocs-mermaid2-plugin", specifier = ">=1.1" }, + { name = "mkdocs-minify-plugin", specifier = ">=0.7" }, + { name = "mkdocs-print-site-plugin", specifier = ">=0.8" }, + { name = "mkdocs-redirects", specifier = ">=1.2" }, + { name = "mkdocs-section-index", specifier = ">=0.3.12" }, + { name = "mkdocs-versioning", specifier = ">=0.2" }, + { name = "mkdocstrings", specifier = ">=0.24" }, + { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "pip-audit", specifier = ">=2.7.3" }, + { name = "pre-commit", specifier = ">=4.6.0" }, + { name = "pylint", specifier = ">=3.3" }, + { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pytest", specifier = ">=8.4" }, + { name = "pytest-benchmark", specifier = ">=5.1" }, + { name = "pytest-clarity", specifier = ">=1.0.1" }, + { name = "pytest-codeblocks", specifier = ">=0.17.0" }, + { name = "pytest-cov", specifier = ">=6.2" }, + { name = "pytest-deadfixtures", specifier = ">=2.2.1" }, + { name = "pytest-env", specifier = ">=1.1.5" }, + { name = "pytest-markdown-docs", specifier = ">=0.9.2" }, + { name = "pytest-mock", specifier = ">=3.14" }, + { name = "pytest-randomly", specifier = ">=3.16" }, + { name = "pytest-sugar", specifier = ">=1" }, + { name = "pytest-timeout", specifier = ">=2.4" }, + { name = "pytest-xdist", specifier = ">=3.8" }, + { name = "pyupgrade", specifier = ">=3.19" }, + { name = "radon", specifier = ">=6.0.1" }, + { name = "ruff", specifier = ">=0.12.3" }, + { name = "types-cachetools", specifier = ">=6.2" }, + { name = "types-cffi", specifier = ">=2.0" }, + { name = "types-click", specifier = ">=7.1" }, + { name = "types-defusedxml", specifier = ">=0.7" }, + { name = "types-docker", specifier = ">=7.1" }, + { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, + { name = "types-paramiko", specifier = ">=4.0" }, + { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, + { name = "types-psutil", specifier = ">=7" }, + { name = "types-psycopg2", specifier = ">=2.9.21.20250718" }, + { name = "types-pyasn1", specifier = ">=0.6" }, + { name = "types-pyopenssl", specifier = ">=24.1" }, + { name = "types-python-dateutil", specifier = ">=2.9" }, + { name = "types-pyyaml", specifier = ">=6.0.12.20260518" }, + { name = "types-redis", specifier = ">=4.6" }, + { name = "types-requests", specifier = ">=2.32.4" }, + { name = "types-setuptools", specifier = ">=80.9" }, + { name = "types-tabulate", specifier = ">=0.10" }, + { name = "types-toml", specifier = ">=0.10.8.20240310" }, + { name = "vulture", specifier = ">=2.13" }, +] + +[[package]] +name = "flext-oracle-oic" +version = "0.12.0rc0" +source = { editable = "flext-oracle-oic" } +dependencies = [ + { name = "flext-api" }, + { name = "flext-auth" }, + { name = "flext-cli" }, + { name = "flext-core" }, + { name = "httpx" }, + { name = "pydantic" }, + { name = "pydantic-core" }, + { name = "pydantic-settings" }, + { name = "requests" }, + { name = "tenacity" }, + { name = "typer" }, + { name = "urllib3" }, +] + +[package.optional-dependencies] +dev = [ + { name = "autoflake" }, + { name = "bandit" }, + { name = "black" }, + { name = "blacken-docs" }, + { name = "codespell" }, + { name = "deptry" }, + { name = "django-stubs" }, + { name = "factory-boy" }, + { name = "faker" }, + { name = "hypothesis" }, + { name = "isort" }, + { name = "matplotlib-stubs" }, + { name = "mkdocs" }, + { name = "mkdocs-awesome-pages-plugin" }, + { name = "mkdocs-encryptcontent-plugin" }, + { name = "mkdocs-exclude" }, + { name = "mkdocs-get-deps" }, + { name = "mkdocs-git-revision-date-localized-plugin" }, + { name = "mkdocs-literate-nav" }, + { name = "mkdocs-macros-plugin" }, + { name = "mkdocs-material" }, + { name = "mkdocs-material-extensions" }, + { name = "mkdocs-mermaid2-plugin" }, + { name = "mkdocs-minify-plugin" }, + { name = "mkdocs-print-site-plugin" }, + { name = "mkdocs-redirects" }, + { name = "mkdocs-section-index" }, + { name = "mkdocs-versioning" }, + { name = "mkdocstrings" }, + { name = "mkdocstrings-python" }, + { name = "pip-audit" }, + { name = "pre-commit" }, + { name = "pylint" }, + { name = "pyrefly" }, + { name = "pytest" }, + { name = "pytest-benchmark" }, + { name = "pytest-clarity" }, + { name = "pytest-codeblocks" }, + { name = "pytest-cov" }, + { name = "pytest-deadfixtures" }, + { name = "pytest-env" }, + { name = "pytest-markdown-docs" }, + { name = "pytest-mock" }, + { name = "pytest-randomly" }, + { name = "pytest-sugar" }, + { name = "pytest-timeout" }, + { name = "pytest-xdist" }, + { name = "pyupgrade" }, + { name = "radon" }, + { name = "ruff" }, + { name = "types-cachetools" }, + { name = "types-cffi" }, + { name = "types-click" }, + { name = "types-defusedxml" }, + { name = "types-docker" }, + { name = "types-flask" }, + { name = "types-jsonschema" }, + { name = "types-ldap3" }, + { name = "types-paramiko" }, + { name = "types-protobuf" }, + { name = "types-psutil" }, + { name = "types-psycopg2" }, + { name = "types-pyasn1" }, + { name = "types-pyopenssl" }, + { name = "types-python-dateutil" }, + { name = "types-pyyaml" }, + { name = "types-redis" }, + { name = "types-requests" }, + { name = "types-setuptools" }, + { name = "types-tabulate" }, + { name = "types-toml" }, + { name = "vulture" }, + { name = "yamlfix" }, +] + +[package.dev-dependencies] +codegen = [ + { name = "flext-infra" }, +] +dev = [ + { name = "autoflake" }, + { name = "bandit" }, + { name = "black" }, + { name = "blacken-docs" }, + { name = "codespell" }, + { name = "deptry" }, + { name = "django-stubs" }, + { name = "factory-boy" }, + { name = "faker" }, + { name = "flext-tests" }, + { name = "hypothesis" }, + { name = "isort" }, + { name = "matplotlib-stubs" }, + { name = "mkdocs" }, + { name = "mkdocs-awesome-pages-plugin" }, + { name = "mkdocs-encryptcontent-plugin" }, + { name = "mkdocs-exclude" }, + { name = "mkdocs-get-deps" }, + { name = "mkdocs-git-revision-date-localized-plugin" }, + { name = "mkdocs-literate-nav" }, + { name = "mkdocs-macros-plugin" }, + { name = "mkdocs-material" }, + { name = "mkdocs-material-extensions" }, + { name = "mkdocs-mermaid2-plugin" }, + { name = "mkdocs-minify-plugin" }, + { name = "mkdocs-print-site-plugin" }, + { name = "mkdocs-redirects" }, + { name = "mkdocs-section-index" }, + { name = "mkdocs-versioning" }, + { name = "mkdocstrings" }, + { name = "mkdocstrings-python" }, + { name = "pip-audit" }, + { name = "pre-commit" }, + { name = "pylint" }, + { name = "pyrefly" }, + { name = "pytest" }, + { name = "pytest-benchmark" }, + { name = "pytest-clarity" }, + { name = "pytest-codeblocks" }, + { name = "pytest-cov" }, + { name = "pytest-deadfixtures" }, + { name = "pytest-env" }, + { name = "pytest-markdown-docs" }, + { name = "pytest-mock" }, + { name = "pytest-randomly" }, + { name = "pytest-sugar" }, + { name = "pytest-timeout" }, + { name = "pytest-xdist" }, + { name = "pyupgrade" }, + { name = "radon" }, + { name = "ruff" }, + { name = "types-cachetools" }, + { name = "types-cffi" }, + { name = "types-click" }, + { name = "types-defusedxml" }, + { name = "types-docker" }, + { name = "types-flask" }, + { name = "types-ldap3" }, + { name = "types-paramiko" }, + { name = "types-protobuf" }, + { name = "types-psutil" }, + { name = "types-psycopg2" }, + { name = "types-pyasn1" }, + { name = "types-pyopenssl" }, + { name = "types-python-dateutil" }, + { name = "types-pyyaml" }, + { name = "types-redis" }, + { name = "types-requests" }, + { name = "types-setuptools" }, + { name = "types-tabulate" }, + { name = "types-toml" }, + { name = "vulture" }, +] + +[package.metadata] +requires-dist = [ + { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, + { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, + { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, + { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, + { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, + { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, + { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, + { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, + { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, + { name = "flext-api", editable = "flext-api" }, + { name = "flext-auth", editable = "flext-auth" }, + { name = "flext-cli", editable = "flext-cli" }, + { name = "flext-core", editable = "flext-core" }, + { name = "httpx", specifier = ">=0.28.1" }, + { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, + { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, + { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, + { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, + { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, + { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, + { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, + { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, + { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, + { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, + { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, + { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, + { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, + { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, + { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, + { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, + { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, + { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, + { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, + { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, + { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, + { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, + { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, + { name = "pydantic", specifier = ">=2.13.3" }, + { name = "pydantic-core", specifier = ">=2.46.3" }, + { name = "pydantic-settings", specifier = ">=2.14.0" }, + { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, + { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, + { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, + { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, + { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, + { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, + { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, + { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, + { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, + { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, + { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, + { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, + { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, + { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, + { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, + { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, + { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, + { name = "requests", specifier = ">=2.33.1" }, + { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, + { name = "tenacity", specifier = ">=9.1.4" }, + { name = "typer", specifier = ">=0.25.1" }, + { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, + { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, + { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, + { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, + { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, + { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, + { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, + { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, + { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, + { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, + { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, + { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, + { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, + { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, + { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, + { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, + { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, + { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, + { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, + { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, + { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, + { name = "urllib3", specifier = ">=2.6.3" }, + { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, + { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, +] +provides-extras = ["dev"] + +[package.metadata.requires-dev] +codegen = [{ name = "flext-infra", editable = "flext-infra" }] +dev = [ + { name = "autoflake", specifier = ">=2.3.1" }, + { name = "bandit", specifier = ">=1.8" }, + { name = "black", specifier = ">=25.1" }, + { name = "blacken-docs", specifier = ">=1.19" }, + { name = "codespell", specifier = ">=2.3" }, + { name = "deptry", specifier = ">=0.23" }, + { name = "django-stubs", specifier = ">=5.2.2" }, + { name = "factory-boy", specifier = ">=3.3.1" }, + { name = "faker", specifier = ">=37.4" }, + { name = "flext-tests", editable = "flext-tests" }, + { name = "hypothesis", specifier = ">=6.125" }, + { name = "isort", specifier = ">=6.0.1" }, + { name = "matplotlib-stubs", specifier = ">=0.3" }, + { name = "mkdocs", specifier = ">=1.6" }, + { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.9" }, + { name = "mkdocs-encryptcontent-plugin", specifier = ">=2" }, + { name = "mkdocs-exclude", specifier = ">=1.0.2" }, + { name = "mkdocs-get-deps", specifier = ">=0.2" }, + { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.2" }, + { name = "mkdocs-literate-nav", specifier = ">=0.6" }, + { name = "mkdocs-macros-plugin", specifier = ">=1" }, + { name = "mkdocs-material", specifier = ">=9.5" }, + { name = "mkdocs-material-extensions", specifier = ">=1.3.1" }, + { name = "mkdocs-mermaid2-plugin", specifier = ">=1.1" }, + { name = "mkdocs-minify-plugin", specifier = ">=0.7" }, + { name = "mkdocs-print-site-plugin", specifier = ">=0.8" }, + { name = "mkdocs-redirects", specifier = ">=1.2" }, + { name = "mkdocs-section-index", specifier = ">=0.3.12" }, + { name = "mkdocs-versioning", specifier = ">=0.2" }, + { name = "mkdocstrings", specifier = ">=0.24" }, + { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "pip-audit", specifier = ">=2.7.3" }, + { name = "pre-commit", specifier = ">=4.6.0" }, + { name = "pylint", specifier = ">=3.3" }, + { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pytest", specifier = ">=8.4" }, + { name = "pytest-benchmark", specifier = ">=5.1" }, + { name = "pytest-clarity", specifier = ">=1.0.1" }, + { name = "pytest-codeblocks", specifier = ">=0.17.0" }, + { name = "pytest-cov", specifier = ">=6.2" }, + { name = "pytest-deadfixtures", specifier = ">=2.2.1" }, + { name = "pytest-env", specifier = ">=1.1.5" }, + { name = "pytest-markdown-docs", specifier = ">=0.9.2" }, + { name = "pytest-mock", specifier = ">=3.14" }, + { name = "pytest-randomly", specifier = ">=3.16" }, + { name = "pytest-sugar", specifier = ">=1" }, + { name = "pytest-timeout", specifier = ">=2.4" }, + { name = "pytest-xdist", specifier = ">=3.8" }, + { name = "pyupgrade", specifier = ">=3.19" }, + { name = "radon", specifier = ">=6.0.1" }, + { name = "ruff", specifier = ">=0.12.3" }, + { name = "types-cachetools", specifier = ">=6.2" }, + { name = "types-cffi", specifier = ">=2.0" }, + { name = "types-click", specifier = ">=7.1" }, + { name = "types-defusedxml", specifier = ">=0.7" }, + { name = "types-docker", specifier = ">=7.1" }, + { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, + { name = "types-paramiko", specifier = ">=4.0" }, + { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, + { name = "types-psutil", specifier = ">=7" }, + { name = "types-psycopg2", specifier = ">=2.9.21.20250718" }, + { name = "types-pyasn1", specifier = ">=0.6" }, + { name = "types-pyopenssl", specifier = ">=24.1" }, + { name = "types-python-dateutil", specifier = ">=2.9" }, + { name = "types-pyyaml", specifier = ">=6.0.12.20260518" }, + { name = "types-redis", specifier = ">=4.6" }, + { name = "types-requests", specifier = ">=2.32.4" }, + { name = "types-setuptools", specifier = ">=80.9" }, + { name = "types-tabulate", specifier = ">=0.10" }, + { name = "types-toml", specifier = ">=0.10.8.20240310" }, + { name = "vulture", specifier = ">=2.13" }, +] + +[[package]] +name = "flext-oracle-wms" +version = "0.12.0rc0" +source = { editable = "flext-oracle-wms" } +dependencies = [ + { name = "flext-api" }, + { name = "flext-cli" }, + { name = "flext-core" }, + { name = "pydantic" }, + { name = "pydantic-core" }, + { name = "pydantic-settings" }, + { name = "python-dotenv" }, +] + +[package.optional-dependencies] +dev = [ + { name = "autoflake" }, + { name = "bandit" }, + { name = "black" }, + { name = "blacken-docs" }, + { name = "codespell" }, + { name = "deptry" }, + { name = "django-stubs" }, + { name = "factory-boy" }, + { name = "faker" }, + { name = "hypothesis" }, + { name = "isort" }, + { name = "matplotlib-stubs" }, + { name = "mkdocs" }, + { name = "mkdocs-awesome-pages-plugin" }, + { name = "mkdocs-encryptcontent-plugin" }, + { name = "mkdocs-exclude" }, + { name = "mkdocs-get-deps" }, + { name = "mkdocs-git-revision-date-localized-plugin" }, + { name = "mkdocs-literate-nav" }, + { name = "mkdocs-macros-plugin" }, + { name = "mkdocs-material" }, + { name = "mkdocs-material-extensions" }, + { name = "mkdocs-mermaid2-plugin" }, + { name = "mkdocs-minify-plugin" }, + { name = "mkdocs-print-site-plugin" }, + { name = "mkdocs-redirects" }, + { name = "mkdocs-section-index" }, + { name = "mkdocs-versioning" }, + { name = "mkdocstrings" }, + { name = "mkdocstrings-python" }, + { name = "pip-audit" }, + { name = "pre-commit" }, + { name = "pylint" }, + { name = "pyrefly" }, + { name = "pytest" }, + { name = "pytest-benchmark" }, + { name = "pytest-clarity" }, + { name = "pytest-codeblocks" }, + { name = "pytest-cov" }, + { name = "pytest-deadfixtures" }, + { name = "pytest-env" }, + { name = "pytest-markdown-docs" }, + { name = "pytest-mock" }, + { name = "pytest-randomly" }, + { name = "pytest-sugar" }, + { name = "pytest-timeout" }, + { name = "pytest-xdist" }, + { name = "pyupgrade" }, + { name = "radon" }, + { name = "ruff" }, + { name = "types-cachetools" }, + { name = "types-cffi" }, + { name = "types-click" }, + { name = "types-defusedxml" }, + { name = "types-docker" }, + { name = "types-flask" }, + { name = "types-jsonschema" }, + { name = "types-ldap3" }, + { name = "types-paramiko" }, + { name = "types-protobuf" }, + { name = "types-psutil" }, + { name = "types-psycopg2" }, + { name = "types-pyasn1" }, + { name = "types-pyopenssl" }, + { name = "types-python-dateutil" }, + { name = "types-pyyaml" }, + { name = "types-redis" }, + { name = "types-requests" }, + { name = "types-setuptools" }, + { name = "types-tabulate" }, + { name = "types-toml" }, + { name = "vulture" }, + { name = "yamlfix" }, +] + +[package.dev-dependencies] +codegen = [ + { name = "flext-infra" }, +] +dev = [ + { name = "autoflake" }, + { name = "bandit" }, + { name = "black" }, + { name = "blacken-docs" }, + { name = "codespell" }, + { name = "deptry" }, + { name = "django-stubs" }, + { name = "factory-boy" }, + { name = "faker" }, + { name = "flext-tests" }, + { name = "hypothesis" }, + { name = "isort" }, + { name = "matplotlib-stubs" }, + { name = "mkdocs" }, + { name = "mkdocs-awesome-pages-plugin" }, + { name = "mkdocs-encryptcontent-plugin" }, + { name = "mkdocs-exclude" }, + { name = "mkdocs-get-deps" }, + { name = "mkdocs-git-revision-date-localized-plugin" }, + { name = "mkdocs-literate-nav" }, + { name = "mkdocs-macros-plugin" }, + { name = "mkdocs-material" }, + { name = "mkdocs-material-extensions" }, + { name = "mkdocs-mermaid2-plugin" }, + { name = "mkdocs-minify-plugin" }, + { name = "mkdocs-print-site-plugin" }, + { name = "mkdocs-redirects" }, + { name = "mkdocs-section-index" }, + { name = "mkdocs-versioning" }, + { name = "mkdocstrings" }, + { name = "mkdocstrings-python" }, + { name = "pip-audit" }, + { name = "pre-commit" }, + { name = "pylint" }, + { name = "pyrefly" }, + { name = "pytest" }, + { name = "pytest-benchmark" }, + { name = "pytest-clarity" }, + { name = "pytest-codeblocks" }, + { name = "pytest-cov" }, + { name = "pytest-deadfixtures" }, + { name = "pytest-env" }, + { name = "pytest-markdown-docs" }, + { name = "pytest-mock" }, + { name = "pytest-randomly" }, + { name = "pytest-sugar" }, + { name = "pytest-timeout" }, + { name = "pytest-xdist" }, + { name = "pyupgrade" }, + { name = "radon" }, + { name = "ruff" }, + { name = "types-cachetools" }, + { name = "types-cffi" }, + { name = "types-click" }, + { name = "types-defusedxml" }, + { name = "types-docker" }, + { name = "types-flask" }, + { name = "types-ldap3" }, + { name = "types-paramiko" }, + { name = "types-protobuf" }, + { name = "types-psutil" }, + { name = "types-psycopg2" }, + { name = "types-pyasn1" }, + { name = "types-pyopenssl" }, + { name = "types-python-dateutil" }, + { name = "types-pyyaml" }, + { name = "types-redis" }, + { name = "types-requests" }, + { name = "types-setuptools" }, + { name = "types-tabulate" }, + { name = "types-toml" }, + { name = "vulture" }, +] + +[package.metadata] +requires-dist = [ + { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, + { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, + { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, + { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, + { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, + { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, + { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, + { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, + { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, + { name = "flext-api", editable = "flext-api" }, + { name = "flext-cli", editable = "flext-cli" }, + { name = "flext-core", editable = "flext-core" }, + { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, + { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, + { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, + { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, + { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, + { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, + { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, + { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, + { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, + { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, + { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, + { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, + { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, + { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, + { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, + { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, + { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, + { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, + { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, + { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, + { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, + { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, + { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, + { name = "pydantic", specifier = ">=2.13.3" }, + { name = "pydantic-core", specifier = ">=2.46.3" }, + { name = "pydantic-settings", specifier = ">=2.14.0" }, + { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, + { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, + { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, + { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, + { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, + { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, + { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, + { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, + { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, + { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, + { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, + { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, + { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, + { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, + { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, + { name = "python-dotenv", specifier = ">=1.2.2" }, + { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, + { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, + { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, + { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, + { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, + { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, + { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, + { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, + { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, + { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, + { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, + { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, + { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, + { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, + { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, + { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, + { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, + { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, + { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, + { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, + { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, + { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, + { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, + { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, + { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, + { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, +] +provides-extras = ["dev"] + +[package.metadata.requires-dev] +codegen = [{ name = "flext-infra", editable = "flext-infra" }] +dev = [ + { name = "autoflake", specifier = ">=2.3.1" }, + { name = "bandit", specifier = ">=1.8" }, + { name = "black", specifier = ">=25.1" }, + { name = "blacken-docs", specifier = ">=1.19" }, + { name = "codespell", specifier = ">=2.3" }, + { name = "deptry", specifier = ">=0.23" }, + { name = "django-stubs", specifier = ">=5.2.2" }, + { name = "factory-boy", specifier = ">=3.3.1" }, + { name = "faker", specifier = ">=37.4" }, + { name = "flext-tests", editable = "flext-tests" }, + { name = "hypothesis", specifier = ">=6.125" }, + { name = "isort", specifier = ">=6.0.1" }, + { name = "matplotlib-stubs", specifier = ">=0.3" }, + { name = "mkdocs", specifier = ">=1.6" }, + { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.9" }, + { name = "mkdocs-encryptcontent-plugin", specifier = ">=2" }, + { name = "mkdocs-exclude", specifier = ">=1.0.2" }, + { name = "mkdocs-get-deps", specifier = ">=0.2" }, + { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.2" }, + { name = "mkdocs-literate-nav", specifier = ">=0.6" }, + { name = "mkdocs-macros-plugin", specifier = ">=1" }, + { name = "mkdocs-material", specifier = ">=9.5" }, + { name = "mkdocs-material-extensions", specifier = ">=1.3.1" }, + { name = "mkdocs-mermaid2-plugin", specifier = ">=1.1" }, + { name = "mkdocs-minify-plugin", specifier = ">=0.7" }, + { name = "mkdocs-print-site-plugin", specifier = ">=0.8" }, + { name = "mkdocs-redirects", specifier = ">=1.2" }, + { name = "mkdocs-section-index", specifier = ">=0.3.12" }, + { name = "mkdocs-versioning", specifier = ">=0.2" }, + { name = "mkdocstrings", specifier = ">=0.24" }, + { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "pip-audit", specifier = ">=2.7.3" }, + { name = "pre-commit", specifier = ">=4.6.0" }, + { name = "pylint", specifier = ">=3.3" }, + { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pytest", specifier = ">=8.4" }, + { name = "pytest-benchmark", specifier = ">=5.1" }, + { name = "pytest-clarity", specifier = ">=1.0.1" }, + { name = "pytest-codeblocks", specifier = ">=0.17.0" }, + { name = "pytest-cov", specifier = ">=6.2" }, + { name = "pytest-deadfixtures", specifier = ">=2.2.1" }, + { name = "pytest-env", specifier = ">=1.1.5" }, + { name = "pytest-markdown-docs", specifier = ">=0.9.2" }, + { name = "pytest-mock", specifier = ">=3.14" }, + { name = "pytest-randomly", specifier = ">=3.16" }, + { name = "pytest-sugar", specifier = ">=1" }, + { name = "pytest-timeout", specifier = ">=2.4" }, + { name = "pytest-xdist", specifier = ">=3.8" }, + { name = "pyupgrade", specifier = ">=3.19" }, + { name = "radon", specifier = ">=6.0.1" }, + { name = "ruff", specifier = ">=0.12.3" }, + { name = "types-cachetools", specifier = ">=6.2" }, + { name = "types-cffi", specifier = ">=2.0" }, + { name = "types-click", specifier = ">=7.1" }, + { name = "types-defusedxml", specifier = ">=0.7" }, + { name = "types-docker", specifier = ">=7.1" }, + { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, + { name = "types-paramiko", specifier = ">=4.0" }, + { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, + { name = "types-psutil", specifier = ">=7" }, + { name = "types-psycopg2", specifier = ">=2.9.21.20250718" }, + { name = "types-pyasn1", specifier = ">=0.6" }, + { name = "types-pyopenssl", specifier = ">=24.1" }, + { name = "types-python-dateutil", specifier = ">=2.9" }, + { name = "types-pyyaml", specifier = ">=6.0.12.20260518" }, + { name = "types-redis", specifier = ">=4.6" }, + { name = "types-requests", specifier = ">=2.32.4" }, + { name = "types-setuptools", specifier = ">=80.9" }, + { name = "types-tabulate", specifier = ">=0.10" }, + { name = "types-toml", specifier = ">=0.10.8.20240310" }, + { name = "vulture", specifier = ">=2.13" }, +] + +[[package]] +name = "flext-plugin" +version = "0.12.0rc0" +source = { editable = "flext-plugin" } +dependencies = [ + { name = "anyio" }, + { name = "flext-cli" }, + { name = "flext-core" }, + { name = "jsonschema" }, + { name = "psutil" }, + { name = "pydantic" }, + { name = "pydantic-core" }, + { name = "pydantic-settings" }, + { name = "watchdog" }, +] + +[package.dev-dependencies] +codegen = [ + { name = "flext-infra" }, +] +dev = [ + { name = "autoflake" }, + { name = "bandit" }, + { name = "black" }, + { name = "blacken-docs" }, + { name = "codespell" }, + { name = "deptry" }, + { name = "django-stubs" }, + { name = "factory-boy" }, + { name = "faker" }, + { name = "flext-tests" }, + { name = "hypothesis" }, + { name = "isort" }, + { name = "matplotlib-stubs" }, + { name = "mkdocs" }, + { name = "mkdocs-awesome-pages-plugin" }, + { name = "mkdocs-encryptcontent-plugin" }, + { name = "mkdocs-exclude" }, + { name = "mkdocs-get-deps" }, + { name = "mkdocs-git-revision-date-localized-plugin" }, + { name = "mkdocs-literate-nav" }, + { name = "mkdocs-macros-plugin" }, + { name = "mkdocs-material" }, + { name = "mkdocs-material-extensions" }, + { name = "mkdocs-mermaid2-plugin" }, + { name = "mkdocs-minify-plugin" }, + { name = "mkdocs-print-site-plugin" }, + { name = "mkdocs-redirects" }, + { name = "mkdocs-section-index" }, + { name = "mkdocs-versioning" }, + { name = "mkdocstrings" }, + { name = "mkdocstrings-python" }, + { name = "pip-audit" }, + { name = "pre-commit" }, + { name = "pylint" }, + { name = "pyrefly" }, + { name = "pytest" }, + { name = "pytest-benchmark" }, + { name = "pytest-clarity" }, + { name = "pytest-codeblocks" }, + { name = "pytest-cov" }, + { name = "pytest-deadfixtures" }, + { name = "pytest-env" }, + { name = "pytest-markdown-docs" }, + { name = "pytest-mock" }, + { name = "pytest-randomly" }, + { name = "pytest-sugar" }, + { name = "pytest-timeout" }, + { name = "pytest-xdist" }, + { name = "pyupgrade" }, + { name = "radon" }, + { name = "ruff" }, + { name = "types-cachetools" }, + { name = "types-cffi" }, + { name = "types-click" }, + { name = "types-defusedxml" }, + { name = "types-docker" }, + { name = "types-flask" }, + { name = "types-jsonschema" }, + { name = "types-ldap3" }, + { name = "types-paramiko" }, + { name = "types-protobuf" }, + { name = "types-psutil" }, + { name = "types-psycopg2" }, + { name = "types-pyasn1" }, + { name = "types-pyopenssl" }, + { name = "types-python-dateutil" }, + { name = "types-pyyaml" }, + { name = "types-redis" }, + { name = "types-requests" }, + { name = "types-setuptools" }, + { name = "types-tabulate" }, + { name = "types-toml" }, + { name = "vulture" }, + { name = "yamlfix" }, +] + +[package.metadata] +requires-dist = [ + { name = "anyio", specifier = ">=4.13.0" }, + { name = "flext-cli", editable = "flext-cli" }, + { name = "flext-core", editable = "flext-core" }, + { name = "jsonschema", specifier = ">=4.26.0" }, + { name = "psutil", specifier = ">=7.2.2" }, + { name = "pydantic", specifier = ">=2.13.3" }, + { name = "pydantic-core", specifier = ">=2.46.3" }, + { name = "pydantic-settings", specifier = ">=2.14.0" }, + { name = "watchdog", specifier = ">=4.0.0,<6" }, +] + +[package.metadata.requires-dev] +codegen = [{ name = "flext-infra", editable = "flext-infra" }] +dev = [ + { name = "autoflake", specifier = ">=2.3.1" }, + { name = "bandit", specifier = ">=1.8" }, + { name = "black", specifier = ">=25.1" }, + { name = "blacken-docs", specifier = ">=1.19" }, { name = "codespell", specifier = ">=2.3" }, { name = "deptry", specifier = ">=0.23" }, { name = "django-stubs", specifier = ">=5.2.2" }, @@ -4640,12 +7050,10 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, - { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, - { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -4678,32 +7086,332 @@ dev = [ { name = "types-pyopenssl", specifier = ">=24.1" }, { name = "types-python-dateutil", specifier = ">=2.9" }, { name = "types-pyyaml", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", specifier = ">=4.6" }, + { name = "types-redis", specifier = ">=4.6" }, + { name = "types-requests", specifier = ">=2.32.4" }, + { name = "types-setuptools", specifier = ">=80.9" }, + { name = "types-tabulate", specifier = ">=0.10" }, + { name = "types-toml", specifier = ">=0.10.8.20240310" }, + { name = "vulture", specifier = ">=2.13" }, + { name = "yamlfix", specifier = ">=1.19.1,<2" }, +] + +[[package]] +name = "flext-quality" +version = "0.12.0rc0" +source = { editable = "flext-quality" } +dependencies = [ + { name = "aiohttp" }, + { name = "click" }, + { name = "fastapi" }, + { name = "fastmcp" }, + { name = "flext-api" }, + { name = "flext-cli" }, + { name = "flext-core" }, + { name = "flext-infra" }, + { name = "flext-web" }, + { name = "gitpython" }, + { name = "httpx" }, + { name = "libcst" }, + { name = "mypy" }, + { name = "pydantic" }, + { name = "pydantic-core" }, + { name = "pydantic-settings" }, + { name = "pyright" }, + { name = "pyyaml" }, + { name = "referencing" }, + { name = "rich" }, + { name = "schedule" }, + { name = "typer" }, + { name = "uvicorn" }, + { name = "wrapt" }, +] + +[package.dev-dependencies] +codegen = [ + { name = "flext-infra" }, +] +dev = [ + { name = "actionlint-py" }, + { name = "autoflake" }, + { name = "bandit" }, + { name = "black" }, + { name = "blacken-docs" }, + { name = "codespell" }, + { name = "deptry" }, + { name = "django-stubs" }, + { name = "factory-boy" }, + { name = "faker" }, + { name = "flext-tests" }, + { name = "hypothesis" }, + { name = "isort" }, + { name = "matplotlib-stubs" }, + { name = "mkdocs" }, + { name = "mkdocs-awesome-pages-plugin" }, + { name = "mkdocs-encryptcontent-plugin" }, + { name = "mkdocs-exclude" }, + { name = "mkdocs-get-deps" }, + { name = "mkdocs-git-revision-date-localized-plugin" }, + { name = "mkdocs-literate-nav" }, + { name = "mkdocs-macros-plugin" }, + { name = "mkdocs-material" }, + { name = "mkdocs-material-extensions" }, + { name = "mkdocs-mermaid2-plugin" }, + { name = "mkdocs-minify-plugin" }, + { name = "mkdocs-print-site-plugin" }, + { name = "mkdocs-redirects" }, + { name = "mkdocs-section-index" }, + { name = "mkdocs-versioning" }, + { name = "mkdocstrings" }, + { name = "mkdocstrings-python" }, + { name = "mypy" }, + { name = "pip-audit" }, + { name = "pre-commit" }, + { name = "pylint" }, + { name = "pyrefly" }, + { name = "pyright" }, + { name = "pytest" }, + { name = "pytest-benchmark" }, + { name = "pytest-clarity" }, + { name = "pytest-codeblocks" }, + { name = "pytest-cov" }, + { name = "pytest-deadfixtures" }, + { name = "pytest-env" }, + { name = "pytest-markdown-docs" }, + { name = "pytest-mock" }, + { name = "pytest-randomly" }, + { name = "pytest-sugar" }, + { name = "pytest-timeout" }, + { name = "pytest-xdist" }, + { name = "pyupgrade" }, + { name = "radon" }, + { name = "refurb" }, + { name = "rope" }, + { name = "ruff" }, + { name = "types-cachetools" }, + { name = "types-cffi" }, + { name = "types-click" }, + { name = "types-defusedxml" }, + { name = "types-docker" }, + { name = "types-flask" }, + { name = "types-jsonschema" }, + { name = "types-ldap3" }, + { name = "types-paramiko" }, + { name = "types-protobuf" }, + { name = "types-psutil" }, + { name = "types-psycopg2" }, + { name = "types-pyasn1" }, + { name = "types-pyopenssl" }, + { name = "types-python-dateutil" }, + { name = "types-pyyaml" }, + { name = "types-redis" }, + { name = "types-requests" }, + { name = "types-setuptools" }, + { name = "types-tabulate" }, + { name = "types-toml" }, + { name = "vulture" }, + { name = "yamlfix" }, +] + +[package.metadata] +requires-dist = [ + { name = "aiohttp", specifier = ">=3.13.5" }, + { name = "click", specifier = ">=8.3.3,<8.4" }, + { name = "fastapi", specifier = ">=0.136.1" }, + { name = "fastmcp", specifier = ">=3.4.4" }, + { name = "flext-api", editable = "flext-api" }, + { name = "flext-cli", editable = "flext-cli" }, + { name = "flext-core", editable = "flext-core" }, + { name = "flext-infra", editable = "flext-infra" }, + { name = "flext-web", editable = "flext-web" }, + { name = "gitpython", specifier = ">=3.1.49" }, + { name = "httpx", specifier = ">=0.28.1" }, + { name = "libcst", specifier = ">=1.8.6" }, + { name = "mypy", specifier = ">=1.20.2" }, + { name = "pydantic", specifier = ">=2.13.3" }, + { name = "pydantic-core", specifier = ">=2.46.3" }, + { name = "pydantic-settings", specifier = ">=2.14.2" }, + { name = "pyright", specifier = ">=1.1.411" }, + { name = "pyyaml", specifier = ">=6.0.3" }, + { name = "referencing", specifier = ">=0.37.0" }, + { name = "rich", specifier = ">=14,<14.4" }, + { name = "schedule", specifier = ">=1.2.2" }, + { name = "typer", specifier = ">=0.25.1" }, + { name = "uvicorn", specifier = ">=0.51.0" }, + { name = "wrapt", specifier = ">=2.1.2" }, +] + +[package.metadata.requires-dev] +codegen = [{ name = "flext-infra", editable = "flext-infra" }] +dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, + { name = "autoflake", specifier = ">=2.3.3" }, + { name = "bandit", specifier = ">=1.8" }, + { name = "black", specifier = ">=25.1" }, + { name = "blacken-docs", specifier = ">=1.19" }, + { name = "codespell", specifier = ">=2.3" }, + { name = "deptry", specifier = ">=0.23" }, + { name = "django-stubs", specifier = ">=6.0.6" }, + { name = "factory-boy", specifier = ">=3.3.3" }, + { name = "faker", specifier = ">=40.36.0" }, + { name = "flext-tests", editable = "flext-tests" }, + { name = "hypothesis", specifier = ">=6.125" }, + { name = "isort", specifier = ">=6.0.1" }, + { name = "matplotlib-stubs", specifier = ">=0.3" }, + { name = "mkdocs", specifier = ">=1.6.1" }, + { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.9" }, + { name = "mkdocs-encryptcontent-plugin", specifier = ">=2" }, + { name = "mkdocs-exclude", specifier = ">=1.0.2" }, + { name = "mkdocs-get-deps", specifier = ">=0.2.2" }, + { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.2" }, + { name = "mkdocs-literate-nav", specifier = ">=0.6" }, + { name = "mkdocs-macros-plugin", specifier = ">=1.5.0" }, + { name = "mkdocs-material", specifier = ">=9.5" }, + { name = "mkdocs-material-extensions", specifier = ">=1.3.1" }, + { name = "mkdocs-mermaid2-plugin", specifier = ">=1.2.3" }, + { name = "mkdocs-minify-plugin", specifier = ">=0.8.0" }, + { name = "mkdocs-print-site-plugin", specifier = ">=0.8" }, + { name = "mkdocs-redirects", specifier = ">=1.2" }, + { name = "mkdocs-section-index", specifier = ">=0.3.12" }, + { name = "mkdocs-versioning", specifier = ">=0.2" }, + { name = "mkdocstrings", specifier = ">=0.24" }, + { name = "mkdocstrings-python", specifier = ">=2.0.5" }, + { name = "mypy", specifier = ">=2.3.0" }, + { name = "pip-audit", specifier = ">=2.10.1" }, + { name = "pre-commit", specifier = ">=4.6.0" }, + { name = "pylint", specifier = ">=3.3" }, + { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, + { name = "pytest", specifier = ">=8.4" }, + { name = "pytest-benchmark", specifier = ">=5.2.3" }, + { name = "pytest-clarity", specifier = ">=1.0.1" }, + { name = "pytest-codeblocks", specifier = ">=0.18.0" }, + { name = "pytest-cov", specifier = ">=6.2" }, + { name = "pytest-deadfixtures", specifier = ">=2.2.1" }, + { name = "pytest-env", specifier = ">=1.1.5" }, + { name = "pytest-markdown-docs", specifier = ">=0.9.2" }, + { name = "pytest-mock", specifier = ">=3.15.1" }, + { name = "pytest-randomly", specifier = ">=3.16" }, + { name = "pytest-sugar", specifier = ">=1" }, + { name = "pytest-timeout", specifier = ">=2.4" }, + { name = "pytest-xdist", specifier = ">=3.8" }, + { name = "pyupgrade", specifier = ">=3.21.2" }, + { name = "radon", specifier = ">=6.0.1" }, + { name = "refurb", specifier = ">=2" }, + { name = "rope", specifier = ">=1.11" }, + { name = "ruff", specifier = ">=0.12.3" }, + { name = "types-cachetools", specifier = ">=6.2" }, + { name = "types-cffi", specifier = ">=2.0.0.20260518" }, + { name = "types-click", specifier = ">=7.1" }, + { name = "types-defusedxml", specifier = ">=0.7" }, + { name = "types-docker", specifier = ">=7.1" }, + { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-jsonschema", specifier = ">=4.26" }, + { name = "types-ldap3", specifier = ">=2.9.13.20260518" }, + { name = "types-paramiko", specifier = ">=4.0" }, + { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, + { name = "types-psutil", specifier = ">=7.2.2.20260518" }, + { name = "types-psycopg2", specifier = ">=2.9.21.20260724" }, + { name = "types-pyasn1", specifier = ">=0.6" }, + { name = "types-pyopenssl", specifier = ">=24.1" }, + { name = "types-python-dateutil", specifier = ">=2.9" }, + { name = "types-pyyaml", specifier = ">=6.0.12.20260518" }, + { name = "types-redis", specifier = ">=4.6.0.20241004" }, { name = "types-requests", specifier = ">=2.32.4" }, { name = "types-setuptools", specifier = ">=80.9" }, { name = "types-tabulate", specifier = ">=0.10" }, - { name = "types-toml", specifier = ">=0.10.8.20240310" }, + { name = "types-toml", specifier = ">=0.10.8.20260518" }, { name = "vulture", specifier = ">=2.13" }, { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] -name = "flext-oracle-oic" +name = "flext-tap-ldap" version = "0.12.0rc0" -source = { editable = "flext-oracle-oic" } +source = { editable = "flext-tap-ldap" } dependencies = [ - { name = "flext-api" }, - { name = "flext-auth" }, { name = "flext-cli" }, { name = "flext-core" }, - { name = "httpx" }, + { name = "flext-ldap" }, + { name = "flext-meltano" }, { name = "pydantic" }, { name = "pydantic-core" }, - { name = "pydantic-settings" }, - { name = "requests" }, - { name = "tenacity" }, - { name = "typer" }, - { name = "urllib3" }, +] + +[package.optional-dependencies] +dev = [ + { name = "autoflake" }, + { name = "bandit" }, + { name = "black" }, + { name = "blacken-docs" }, + { name = "codespell" }, + { name = "deptry" }, + { name = "django-stubs" }, + { name = "factory-boy" }, + { name = "faker" }, + { name = "hypothesis" }, + { name = "isort" }, + { name = "matplotlib-stubs" }, + { name = "mkdocs" }, + { name = "mkdocs-awesome-pages-plugin" }, + { name = "mkdocs-encryptcontent-plugin" }, + { name = "mkdocs-exclude" }, + { name = "mkdocs-get-deps" }, + { name = "mkdocs-git-revision-date-localized-plugin" }, + { name = "mkdocs-literate-nav" }, + { name = "mkdocs-macros-plugin" }, + { name = "mkdocs-material" }, + { name = "mkdocs-material-extensions" }, + { name = "mkdocs-mermaid2-plugin" }, + { name = "mkdocs-minify-plugin" }, + { name = "mkdocs-print-site-plugin" }, + { name = "mkdocs-redirects" }, + { name = "mkdocs-section-index" }, + { name = "mkdocs-versioning" }, + { name = "mkdocstrings" }, + { name = "mkdocstrings-python" }, + { name = "pip-audit" }, + { name = "pre-commit" }, + { name = "pylint" }, + { name = "pyrefly" }, + { name = "pytest" }, + { name = "pytest-benchmark" }, + { name = "pytest-clarity" }, + { name = "pytest-codeblocks" }, + { name = "pytest-cov" }, + { name = "pytest-deadfixtures" }, + { name = "pytest-env" }, + { name = "pytest-markdown-docs" }, + { name = "pytest-mock" }, + { name = "pytest-randomly" }, + { name = "pytest-sugar" }, + { name = "pytest-timeout" }, + { name = "pytest-xdist" }, + { name = "pyupgrade" }, + { name = "radon" }, + { name = "ruff" }, + { name = "types-cachetools" }, + { name = "types-cffi" }, + { name = "types-click" }, + { name = "types-defusedxml" }, + { name = "types-docker" }, + { name = "types-flask" }, + { name = "types-jsonschema" }, + { name = "types-ldap3" }, + { name = "types-paramiko" }, + { name = "types-protobuf" }, + { name = "types-psutil" }, + { name = "types-psycopg2" }, + { name = "types-pyasn1" }, + { name = "types-pyopenssl" }, + { name = "types-python-dateutil" }, + { name = "types-pyyaml" }, + { name = "types-redis" }, + { name = "types-requests" }, + { name = "types-setuptools" }, + { name = "types-tabulate" }, + { name = "types-toml" }, + { name = "vulture" }, + { name = "yamlfix" }, ] [package.dev-dependencies] @@ -4711,7 +7419,6 @@ codegen = [ { name = "flext-infra" }, ] dev = [ - { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -4743,12 +7450,10 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, - { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, - { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -4771,7 +7476,6 @@ dev = [ { name = "types-defusedxml" }, { name = "types-docker" }, { name = "types-flask" }, - { name = "types-jsonschema" }, { name = "types-ldap3" }, { name = "types-paramiko" }, { name = "types-protobuf" }, @@ -4787,29 +7491,95 @@ dev = [ { name = "types-tabulate" }, { name = "types-toml" }, { name = "vulture" }, - { name = "yamlfix" }, ] [package.metadata] requires-dist = [ - { name = "flext-api", editable = "flext-api" }, - { name = "flext-auth", editable = "flext-auth" }, + { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, + { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, + { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, + { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, + { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, + { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, + { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, + { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, + { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, { name = "flext-cli", editable = "flext-cli" }, { name = "flext-core", editable = "flext-core" }, - { name = "httpx", specifier = ">=0.28.1" }, + { name = "flext-ldap", editable = "flext-ldap" }, + { name = "flext-meltano", editable = "flext-meltano" }, + { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, + { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, + { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, + { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, + { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, + { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, + { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, + { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, + { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, + { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, + { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, + { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, + { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, + { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, + { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, + { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, + { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, + { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, + { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, + { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, + { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, + { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, + { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, { name = "pydantic", specifier = ">=2.13.3" }, { name = "pydantic-core", specifier = ">=2.46.3" }, - { name = "pydantic-settings", specifier = ">=2.14.0" }, - { name = "requests", specifier = ">=2.33.1" }, - { name = "tenacity", specifier = ">=9.1.4" }, - { name = "typer", specifier = ">=0.25.1" }, - { name = "urllib3", specifier = ">=2.6.3" }, -] + { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, + { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, + { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, + { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, + { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, + { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, + { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, + { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, + { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, + { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, + { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, + { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, + { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, + { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, + { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, + { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, + { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, + { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, + { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, + { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, + { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, + { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, + { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, + { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, + { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, + { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, + { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, + { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, + { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, + { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, + { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, + { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, + { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, + { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, + { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, + { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, + { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, + { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, + { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, + { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, + { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, +] +provides-extras = ["dev"] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ - { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -4841,12 +7611,10 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, - { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, - { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -4869,7 +7637,6 @@ dev = [ { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, - { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, @@ -4885,21 +7652,96 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] -name = "flext-oracle-wms" +name = "flext-tap-ldif" version = "0.12.0rc0" -source = { editable = "flext-oracle-wms" } +source = { editable = "flext-tap-ldif" } dependencies = [ - { name = "flext-api" }, - { name = "flext-cli" }, { name = "flext-core" }, + { name = "flext-ldif" }, + { name = "flext-meltano" }, + { name = "flext-observability" }, { name = "pydantic" }, { name = "pydantic-core" }, - { name = "pydantic-settings" }, - { name = "python-dotenv" }, +] + +[package.optional-dependencies] +dev = [ + { name = "autoflake" }, + { name = "bandit" }, + { name = "black" }, + { name = "blacken-docs" }, + { name = "codespell" }, + { name = "deptry" }, + { name = "django-stubs" }, + { name = "factory-boy" }, + { name = "faker" }, + { name = "hypothesis" }, + { name = "isort" }, + { name = "matplotlib-stubs" }, + { name = "mkdocs" }, + { name = "mkdocs-awesome-pages-plugin" }, + { name = "mkdocs-encryptcontent-plugin" }, + { name = "mkdocs-exclude" }, + { name = "mkdocs-get-deps" }, + { name = "mkdocs-git-revision-date-localized-plugin" }, + { name = "mkdocs-literate-nav" }, + { name = "mkdocs-macros-plugin" }, + { name = "mkdocs-material" }, + { name = "mkdocs-material-extensions" }, + { name = "mkdocs-mermaid2-plugin" }, + { name = "mkdocs-minify-plugin" }, + { name = "mkdocs-print-site-plugin" }, + { name = "mkdocs-redirects" }, + { name = "mkdocs-section-index" }, + { name = "mkdocs-versioning" }, + { name = "mkdocstrings" }, + { name = "mkdocstrings-python" }, + { name = "pip-audit" }, + { name = "pre-commit" }, + { name = "pylint" }, + { name = "pyrefly" }, + { name = "pytest" }, + { name = "pytest-benchmark" }, + { name = "pytest-clarity" }, + { name = "pytest-codeblocks" }, + { name = "pytest-cov" }, + { name = "pytest-deadfixtures" }, + { name = "pytest-env" }, + { name = "pytest-markdown-docs" }, + { name = "pytest-mock" }, + { name = "pytest-randomly" }, + { name = "pytest-sugar" }, + { name = "pytest-timeout" }, + { name = "pytest-xdist" }, + { name = "pyupgrade" }, + { name = "radon" }, + { name = "ruff" }, + { name = "types-cachetools" }, + { name = "types-cffi" }, + { name = "types-click" }, + { name = "types-defusedxml" }, + { name = "types-docker" }, + { name = "types-flask" }, + { name = "types-jsonschema" }, + { name = "types-ldap3" }, + { name = "types-paramiko" }, + { name = "types-protobuf" }, + { name = "types-psutil" }, + { name = "types-psycopg2" }, + { name = "types-pyasn1" }, + { name = "types-pyopenssl" }, + { name = "types-python-dateutil" }, + { name = "types-pyyaml" }, + { name = "types-redis" }, + { name = "types-requests" }, + { name = "types-setuptools" }, + { name = "types-tabulate" }, + { name = "types-toml" }, + { name = "vulture" }, + { name = "yamlfix" }, ] [package.dev-dependencies] @@ -4907,7 +7749,6 @@ codegen = [ { name = "flext-infra" }, ] dev = [ - { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -4939,12 +7780,10 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, - { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, - { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -4967,7 +7806,6 @@ dev = [ { name = "types-defusedxml" }, { name = "types-docker" }, { name = "types-flask" }, - { name = "types-jsonschema" }, { name = "types-ldap3" }, { name = "types-paramiko" }, { name = "types-protobuf" }, @@ -4983,24 +7821,95 @@ dev = [ { name = "types-tabulate" }, { name = "types-toml" }, { name = "vulture" }, - { name = "yamlfix" }, ] [package.metadata] requires-dist = [ - { name = "flext-api", editable = "flext-api" }, - { name = "flext-cli", editable = "flext-cli" }, + { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, + { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, + { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, + { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, + { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, + { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, + { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, + { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, + { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, { name = "flext-core", editable = "flext-core" }, + { name = "flext-ldif", editable = "flext-ldif" }, + { name = "flext-meltano", editable = "flext-meltano" }, + { name = "flext-observability", editable = "flext-observability" }, + { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, + { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, + { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, + { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, + { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, + { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, + { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, + { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, + { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, + { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, + { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, + { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, + { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, + { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, + { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, + { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, + { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, + { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, + { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, + { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, + { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, + { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, + { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, { name = "pydantic", specifier = ">=2.13.3" }, { name = "pydantic-core", specifier = ">=2.46.3" }, - { name = "pydantic-settings", specifier = ">=2.14.0" }, - { name = "python-dotenv", specifier = ">=1.2.2" }, -] + { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, + { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, + { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, + { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, + { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, + { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, + { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, + { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, + { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, + { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, + { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, + { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, + { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, + { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, + { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, + { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, + { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, + { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, + { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, + { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, + { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, + { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, + { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, + { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, + { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, + { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, + { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, + { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, + { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, + { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, + { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, + { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, + { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, + { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, + { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, + { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, + { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, + { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, + { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, + { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, + { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, +] +provides-extras = ["dev"] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ - { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -5032,12 +7941,10 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, - { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, - { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -5060,7 +7967,6 @@ dev = [ { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, - { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, @@ -5076,23 +7982,101 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] -name = "flext-plugin" +name = "flext-tap-oracle" version = "0.12.0rc0" -source = { editable = "flext-plugin" } +source = { editable = "flext-tap-oracle" } dependencies = [ - { name = "anyio" }, - { name = "flext-cli" }, + { name = "fastapi" }, { name = "flext-core" }, - { name = "jsonschema" }, - { name = "psutil" }, + { name = "flext-db-oracle" }, + { name = "flext-meltano" }, + { name = "flext-observability" }, + { name = "prometheus-client" }, { name = "pydantic" }, { name = "pydantic-core" }, - { name = "pydantic-settings" }, - { name = "watchdog" }, + { name = "setuptools" }, + { name = "singer-sdk" }, + { name = "uvicorn" }, +] + +[package.optional-dependencies] +dev = [ + { name = "autoflake" }, + { name = "bandit" }, + { name = "black" }, + { name = "blacken-docs" }, + { name = "codespell" }, + { name = "deptry" }, + { name = "django-stubs" }, + { name = "factory-boy" }, + { name = "faker" }, + { name = "hypothesis" }, + { name = "isort" }, + { name = "matplotlib-stubs" }, + { name = "mkdocs" }, + { name = "mkdocs-awesome-pages-plugin" }, + { name = "mkdocs-encryptcontent-plugin" }, + { name = "mkdocs-exclude" }, + { name = "mkdocs-get-deps" }, + { name = "mkdocs-git-revision-date-localized-plugin" }, + { name = "mkdocs-literate-nav" }, + { name = "mkdocs-macros-plugin" }, + { name = "mkdocs-material" }, + { name = "mkdocs-material-extensions" }, + { name = "mkdocs-mermaid2-plugin" }, + { name = "mkdocs-minify-plugin" }, + { name = "mkdocs-print-site-plugin" }, + { name = "mkdocs-redirects" }, + { name = "mkdocs-section-index" }, + { name = "mkdocs-versioning" }, + { name = "mkdocstrings" }, + { name = "mkdocstrings-python" }, + { name = "pip-audit" }, + { name = "pre-commit" }, + { name = "pylint" }, + { name = "pyrefly" }, + { name = "pytest" }, + { name = "pytest-benchmark" }, + { name = "pytest-clarity" }, + { name = "pytest-codeblocks" }, + { name = "pytest-cov" }, + { name = "pytest-deadfixtures" }, + { name = "pytest-env" }, + { name = "pytest-markdown-docs" }, + { name = "pytest-mock" }, + { name = "pytest-randomly" }, + { name = "pytest-sugar" }, + { name = "pytest-timeout" }, + { name = "pytest-xdist" }, + { name = "pyupgrade" }, + { name = "radon" }, + { name = "ruff" }, + { name = "types-cachetools" }, + { name = "types-cffi" }, + { name = "types-click" }, + { name = "types-defusedxml" }, + { name = "types-docker" }, + { name = "types-flask" }, + { name = "types-jsonschema" }, + { name = "types-ldap3" }, + { name = "types-paramiko" }, + { name = "types-protobuf" }, + { name = "types-psutil" }, + { name = "types-psycopg2" }, + { name = "types-pyasn1" }, + { name = "types-pyopenssl" }, + { name = "types-python-dateutil" }, + { name = "types-pyyaml" }, + { name = "types-redis" }, + { name = "types-requests" }, + { name = "types-setuptools" }, + { name = "types-tabulate" }, + { name = "types-toml" }, + { name = "vulture" }, + { name = "yamlfix" }, ] [package.dev-dependencies] @@ -5100,7 +8084,6 @@ codegen = [ { name = "flext-infra" }, ] dev = [ - { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -5132,12 +8115,10 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, - { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, - { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -5160,7 +8141,6 @@ dev = [ { name = "types-defusedxml" }, { name = "types-docker" }, { name = "types-flask" }, - { name = "types-jsonschema" }, { name = "types-ldap3" }, { name = "types-paramiko" }, { name = "types-protobuf" }, @@ -5176,26 +8156,100 @@ dev = [ { name = "types-tabulate" }, { name = "types-toml" }, { name = "vulture" }, - { name = "yamlfix" }, ] [package.metadata] requires-dist = [ - { name = "anyio", specifier = ">=4.13.0" }, - { name = "flext-cli", editable = "flext-cli" }, + { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, + { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, + { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, + { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, + { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, + { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, + { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, + { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, + { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, + { name = "fastapi", specifier = ">=0.136.1" }, { name = "flext-core", editable = "flext-core" }, - { name = "jsonschema", specifier = ">=4.26.0" }, - { name = "psutil", specifier = ">=7.2.2" }, + { name = "flext-db-oracle", editable = "flext-db-oracle" }, + { name = "flext-meltano", editable = "flext-meltano" }, + { name = "flext-observability", editable = "flext-observability" }, + { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, + { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, + { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, + { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, + { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, + { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, + { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, + { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, + { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, + { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, + { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, + { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, + { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, + { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, + { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, + { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, + { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, + { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, + { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, + { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, + { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, + { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, + { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, + { name = "prometheus-client", specifier = ">=0.25.0" }, { name = "pydantic", specifier = ">=2.13.3" }, { name = "pydantic-core", specifier = ">=2.46.3" }, - { name = "pydantic-settings", specifier = ">=2.14.0" }, - { name = "watchdog", specifier = ">=4.0.0,<6" }, + { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, + { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, + { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, + { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, + { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, + { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, + { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, + { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, + { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, + { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, + { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, + { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, + { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, + { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, + { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, + { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, + { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, + { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, + { name = "setuptools", specifier = ">=82.0.1" }, + { name = "singer-sdk", specifier = ">=0.53.7" }, + { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, + { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, + { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, + { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, + { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, + { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, + { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, + { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, + { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, + { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, + { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, + { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, + { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, + { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, + { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, + { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, + { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, + { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, + { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, + { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, + { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, + { name = "uvicorn", specifier = ">=0.46.0" }, + { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, + { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, ] +provides-extras = ["dev"] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ - { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -5227,12 +8281,10 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, - { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, - { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -5255,7 +8307,6 @@ dev = [ { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, - { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, @@ -5271,46 +8322,26 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] -name = "flext-quality" +name = "flext-tap-oracle-oic" version = "0.12.0rc0" -source = { editable = "flext-quality" } +source = { editable = "flext-tap-oracle-oic" } dependencies = [ - { name = "aiohttp" }, - { name = "click" }, - { name = "fastapi" }, - { name = "fastmcp" }, { name = "flext-api" }, { name = "flext-cli" }, { name = "flext-core" }, - { name = "flext-infra" }, - { name = "flext-web" }, - { name = "gitpython" }, - { name = "httpx" }, - { name = "libcst" }, - { name = "mypy" }, + { name = "flext-meltano" }, + { name = "flext-oracle-oic" }, { name = "pydantic" }, { name = "pydantic-core" }, { name = "pydantic-settings" }, - { name = "pyright" }, - { name = "pyyaml" }, - { name = "referencing" }, - { name = "rich" }, - { name = "schedule" }, - { name = "typer" }, - { name = "uvicorn" }, - { name = "wrapt" }, + { name = "requests" }, ] -[package.dev-dependencies] -codegen = [ - { name = "flext-infra" }, -] +[package.optional-dependencies] dev = [ - { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -5320,7 +8351,6 @@ dev = [ { name = "django-stubs" }, { name = "factory-boy" }, { name = "faker" }, - { name = "flext-tests" }, { name = "hypothesis" }, { name = "isort" }, { name = "matplotlib-stubs" }, @@ -5342,12 +8372,10 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, - { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, - { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -5363,8 +8391,6 @@ dev = [ { name = "pytest-xdist" }, { name = "pyupgrade" }, { name = "radon" }, - { name = "refurb" }, - { name = "rope" }, { name = "ruff" }, { name = "types-cachetools" }, { name = "types-cffi" }, @@ -5380,140 +8406,15 @@ dev = [ { name = "types-psycopg2" }, { name = "types-pyasn1" }, { name = "types-pyopenssl" }, - { name = "types-python-dateutil" }, - { name = "types-pyyaml" }, - { name = "types-redis" }, - { name = "types-requests" }, - { name = "types-setuptools" }, - { name = "types-tabulate" }, - { name = "types-toml" }, - { name = "vulture" }, - { name = "yamlfix" }, -] - -[package.metadata] -requires-dist = [ - { name = "aiohttp", specifier = ">=3.13.5" }, - { name = "click", specifier = ">=8.3.3,<8.4" }, - { name = "fastapi", specifier = ">=0.136.1" }, - { name = "fastmcp", specifier = ">=3.4.4" }, - { name = "flext-api", editable = "flext-api" }, - { name = "flext-cli", editable = "flext-cli" }, - { name = "flext-core", editable = "flext-core" }, - { name = "flext-infra", editable = "flext-infra" }, - { name = "flext-web", editable = "flext-web" }, - { name = "gitpython", specifier = ">=3.1.49" }, - { name = "httpx", specifier = ">=0.28.1" }, - { name = "libcst", specifier = ">=1.8.6" }, - { name = "mypy", specifier = ">=1.20.2" }, - { name = "pydantic", specifier = ">=2.13.3" }, - { name = "pydantic-core", specifier = ">=2.46.3" }, - { name = "pydantic-settings", specifier = ">=2.14.2" }, - { name = "pyright", specifier = ">=1.1.411" }, - { name = "pyyaml", specifier = ">=6.0.3" }, - { name = "referencing", specifier = ">=0.37.0" }, - { name = "rich", specifier = ">=14,<15" }, - { name = "schedule", specifier = ">=1.2.2" }, - { name = "typer", specifier = ">=0.25.1" }, - { name = "uvicorn", specifier = ">=0.51.0" }, - { name = "wrapt", specifier = ">=2.1.2" }, -] - -[package.metadata.requires-dev] -codegen = [{ name = "flext-infra", editable = "flext-infra" }] -dev = [ - { name = "actionlint-py", specifier = ">=1.7.12.24" }, - { name = "autoflake", specifier = ">=2.3.3" }, - { name = "bandit", specifier = ">=1.8" }, - { name = "black", specifier = ">=25.1" }, - { name = "blacken-docs", specifier = ">=1.19" }, - { name = "codespell", specifier = ">=2.3" }, - { name = "deptry", specifier = ">=0.23" }, - { name = "django-stubs", specifier = ">=6.0.6" }, - { name = "factory-boy", specifier = ">=3.3.3" }, - { name = "faker", specifier = ">=40.36.0" }, - { name = "flext-tests", editable = "flext-tests" }, - { name = "hypothesis", specifier = ">=6.125" }, - { name = "isort", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", specifier = ">=0.3" }, - { name = "mkdocs", specifier = ">=1.6.1" }, - { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", specifier = ">=2" }, - { name = "mkdocs-exclude", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", specifier = ">=0.2.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", specifier = ">=1.5.0" }, - { name = "mkdocs-material", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", specifier = ">=1.2.3" }, - { name = "mkdocs-minify-plugin", specifier = ">=0.8.0" }, - { name = "mkdocs-print-site-plugin", specifier = ">=0.8" }, - { name = "mkdocs-redirects", specifier = ">=1.2" }, - { name = "mkdocs-section-index", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", specifier = ">=0.2" }, - { name = "mkdocstrings", specifier = ">=0.24" }, - { name = "mkdocstrings-python", specifier = ">=2.0.5" }, - { name = "mypy", specifier = ">=2.3.0" }, - { name = "pip-audit", specifier = ">=2.10.1" }, - { name = "pre-commit", specifier = ">=4.6.0" }, - { name = "pylint", specifier = ">=3.3" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, - { name = "pyright", specifier = ">=1.1.411" }, - { name = "pytest", specifier = ">=8.4" }, - { name = "pytest-benchmark", specifier = ">=5.2.3" }, - { name = "pytest-clarity", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", specifier = ">=0.18.0" }, - { name = "pytest-cov", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", specifier = ">=2.2.1" }, - { name = "pytest-env", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", specifier = ">=0.9.2" }, - { name = "pytest-mock", specifier = ">=3.15.1" }, - { name = "pytest-randomly", specifier = ">=3.16" }, - { name = "pytest-sugar", specifier = ">=1" }, - { name = "pytest-timeout", specifier = ">=2.4" }, - { name = "pytest-xdist", specifier = ">=3.8" }, - { name = "pyupgrade", specifier = ">=3.21.2" }, - { name = "radon", specifier = ">=6.0.1" }, - { name = "refurb", specifier = ">=2" }, - { name = "rope", specifier = ">=1.11" }, - { name = "ruff", specifier = ">=0.12.3" }, - { name = "types-cachetools", specifier = ">=6.2" }, - { name = "types-cffi", specifier = ">=2.0.0.20260518" }, - { name = "types-click", specifier = ">=7.1" }, - { name = "types-defusedxml", specifier = ">=0.7" }, - { name = "types-docker", specifier = ">=7.1" }, - { name = "types-flask", specifier = ">=1.1.6" }, - { name = "types-jsonschema", specifier = ">=4.26" }, - { name = "types-ldap3", specifier = ">=2.9.13.20260518" }, - { name = "types-paramiko", specifier = ">=4.0" }, - { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", specifier = ">=7.2.2.20260518" }, - { name = "types-psycopg2", specifier = ">=2.9.21.20260724" }, - { name = "types-pyasn1", specifier = ">=0.6" }, - { name = "types-pyopenssl", specifier = ">=24.1" }, - { name = "types-python-dateutil", specifier = ">=2.9" }, - { name = "types-pyyaml", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", specifier = ">=4.6.0.20241004" }, - { name = "types-requests", specifier = ">=2.32.4" }, - { name = "types-setuptools", specifier = ">=80.9" }, - { name = "types-tabulate", specifier = ">=0.10" }, - { name = "types-toml", specifier = ">=0.10.8.20260518" }, - { name = "vulture", specifier = ">=2.13" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, -] - -[[package]] -name = "flext-tap-ldap" -version = "0.12.0rc0" -source = { editable = "flext-tap-ldap" } -dependencies = [ - { name = "flext-cli" }, - { name = "flext-core" }, - { name = "flext-ldap" }, - { name = "flext-meltano" }, - { name = "pydantic" }, - { name = "pydantic-core" }, + { name = "types-python-dateutil" }, + { name = "types-pyyaml" }, + { name = "types-redis" }, + { name = "types-requests" }, + { name = "types-setuptools" }, + { name = "types-tabulate" }, + { name = "types-toml" }, + { name = "vulture" }, + { name = "yamlfix" }, ] [package.dev-dependencies] @@ -5521,7 +8422,6 @@ codegen = [ { name = "flext-infra" }, ] dev = [ - { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -5553,12 +8453,10 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, - { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, - { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -5581,7 +8479,6 @@ dev = [ { name = "types-defusedxml" }, { name = "types-docker" }, { name = "types-flask" }, - { name = "types-jsonschema" }, { name = "types-ldap3" }, { name = "types-paramiko" }, { name = "types-protobuf" }, @@ -5597,23 +8494,98 @@ dev = [ { name = "types-tabulate" }, { name = "types-toml" }, { name = "vulture" }, - { name = "yamlfix" }, ] [package.metadata] requires-dist = [ + { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, + { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, + { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, + { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, + { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, + { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, + { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, + { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, + { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, + { name = "flext-api", editable = "flext-api" }, { name = "flext-cli", editable = "flext-cli" }, { name = "flext-core", editable = "flext-core" }, - { name = "flext-ldap", editable = "flext-ldap" }, { name = "flext-meltano", editable = "flext-meltano" }, + { name = "flext-oracle-oic", editable = "flext-oracle-oic" }, + { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, + { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, + { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, + { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, + { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, + { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, + { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, + { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, + { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, + { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, + { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, + { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, + { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, + { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, + { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, + { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, + { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, + { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, + { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, + { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, + { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, + { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, + { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, { name = "pydantic", specifier = ">=2.13.3" }, { name = "pydantic-core", specifier = ">=2.46.3" }, -] + { name = "pydantic-settings", specifier = ">=2.14.0" }, + { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, + { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, + { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, + { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, + { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, + { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, + { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, + { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, + { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, + { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, + { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, + { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, + { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, + { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, + { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, + { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, + { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, + { name = "requests", specifier = ">=2.33.1" }, + { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, + { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, + { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, + { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, + { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, + { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, + { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, + { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, + { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, + { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, + { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, + { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, + { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, + { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, + { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, + { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, + { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, + { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, + { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, + { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, + { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, + { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, + { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, + { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, +] +provides-extras = ["dev"] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ - { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -5645,12 +8617,10 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, - { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, - { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -5673,7 +8643,6 @@ dev = [ { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, - { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, @@ -5689,28 +8658,25 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] -name = "flext-tap-ldif" +name = "flext-tap-oracle-wms" version = "0.12.0rc0" -source = { editable = "flext-tap-ldif" } +source = { editable = "flext-tap-oracle-wms" } dependencies = [ + { name = "flext-cli" }, { name = "flext-core" }, - { name = "flext-ldif" }, { name = "flext-meltano" }, - { name = "flext-observability" }, + { name = "flext-oracle-wms" }, { name = "pydantic" }, { name = "pydantic-core" }, + { name = "pydantic-settings" }, + { name = "requests" }, ] -[package.dev-dependencies] -codegen = [ - { name = "flext-infra" }, -] +[package.optional-dependencies] dev = [ - { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -5720,7 +8686,6 @@ dev = [ { name = "django-stubs" }, { name = "factory-boy" }, { name = "faker" }, - { name = "flext-tests" }, { name = "hypothesis" }, { name = "isort" }, { name = "matplotlib-stubs" }, @@ -5742,12 +8707,10 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, - { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, - { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -5789,122 +8752,11 @@ dev = [ { name = "yamlfix" }, ] -[package.metadata] -requires-dist = [ - { name = "flext-core", editable = "flext-core" }, - { name = "flext-ldif", editable = "flext-ldif" }, - { name = "flext-meltano", editable = "flext-meltano" }, - { name = "flext-observability", editable = "flext-observability" }, - { name = "pydantic", specifier = ">=2.13.3" }, - { name = "pydantic-core", specifier = ">=2.46.3" }, -] - -[package.metadata.requires-dev] -codegen = [{ name = "flext-infra", editable = "flext-infra" }] -dev = [ - { name = "actionlint-py", specifier = ">=1.7.12.24" }, - { name = "autoflake", specifier = ">=2.3.1" }, - { name = "bandit", specifier = ">=1.8" }, - { name = "black", specifier = ">=25.1" }, - { name = "blacken-docs", specifier = ">=1.19" }, - { name = "codespell", specifier = ">=2.3" }, - { name = "deptry", specifier = ">=0.23" }, - { name = "django-stubs", specifier = ">=5.2.2" }, - { name = "factory-boy", specifier = ">=3.3.1" }, - { name = "faker", specifier = ">=37.4" }, - { name = "flext-tests", editable = "flext-tests" }, - { name = "hypothesis", specifier = ">=6.125" }, - { name = "isort", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", specifier = ">=0.3" }, - { name = "mkdocs", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", specifier = ">=2" }, - { name = "mkdocs-exclude", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", specifier = ">=1" }, - { name = "mkdocs-material", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", specifier = ">=0.8" }, - { name = "mkdocs-redirects", specifier = ">=1.2" }, - { name = "mkdocs-section-index", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", specifier = ">=0.2" }, - { name = "mkdocstrings", specifier = ">=0.24" }, - { name = "mkdocstrings-python", specifier = ">=1.7" }, - { name = "mypy", specifier = ">=2.3.0" }, - { name = "pip-audit", specifier = ">=2.7.3" }, - { name = "pre-commit", specifier = ">=4.6.0" }, - { name = "pylint", specifier = ">=3.3" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, - { name = "pyright", specifier = ">=1.1.411" }, - { name = "pytest", specifier = ">=8.4" }, - { name = "pytest-benchmark", specifier = ">=5.1" }, - { name = "pytest-clarity", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", specifier = ">=0.17.0" }, - { name = "pytest-cov", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", specifier = ">=2.2.1" }, - { name = "pytest-env", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", specifier = ">=0.9.2" }, - { name = "pytest-mock", specifier = ">=3.14" }, - { name = "pytest-randomly", specifier = ">=3.16" }, - { name = "pytest-sugar", specifier = ">=1" }, - { name = "pytest-timeout", specifier = ">=2.4" }, - { name = "pytest-xdist", specifier = ">=3.8" }, - { name = "pyupgrade", specifier = ">=3.19" }, - { name = "radon", specifier = ">=6.0.1" }, - { name = "ruff", specifier = ">=0.12.3" }, - { name = "types-cachetools", specifier = ">=6.2" }, - { name = "types-cffi", specifier = ">=2.0" }, - { name = "types-click", specifier = ">=7.1" }, - { name = "types-defusedxml", specifier = ">=0.7" }, - { name = "types-docker", specifier = ">=7.1" }, - { name = "types-flask", specifier = ">=1.1.6" }, - { name = "types-jsonschema", specifier = ">=4.26" }, - { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", specifier = ">=4.0" }, - { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", specifier = ">=7" }, - { name = "types-psycopg2", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", specifier = ">=0.6" }, - { name = "types-pyopenssl", specifier = ">=24.1" }, - { name = "types-python-dateutil", specifier = ">=2.9" }, - { name = "types-pyyaml", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", specifier = ">=4.6" }, - { name = "types-requests", specifier = ">=2.32.4" }, - { name = "types-setuptools", specifier = ">=80.9" }, - { name = "types-tabulate", specifier = ">=0.10" }, - { name = "types-toml", specifier = ">=0.10.8.20240310" }, - { name = "vulture", specifier = ">=2.13" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, -] - -[[package]] -name = "flext-tap-oracle" -version = "0.12.0rc0" -source = { editable = "flext-tap-oracle" } -dependencies = [ - { name = "fastapi" }, - { name = "flext-core" }, - { name = "flext-db-oracle" }, - { name = "flext-meltano" }, - { name = "flext-observability" }, - { name = "prometheus-client" }, - { name = "pydantic" }, - { name = "pydantic-core" }, - { name = "setuptools" }, - { name = "singer-sdk" }, - { name = "uvicorn" }, -] - [package.dev-dependencies] codegen = [ { name = "flext-infra" }, ] dev = [ - { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -5936,12 +8788,10 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, - { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, - { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -5964,7 +8814,6 @@ dev = [ { name = "types-defusedxml" }, { name = "types-docker" }, { name = "types-flask" }, - { name = "types-jsonschema" }, { name = "types-ldap3" }, { name = "types-paramiko" }, { name = "types-protobuf" }, @@ -5980,28 +8829,97 @@ dev = [ { name = "types-tabulate" }, { name = "types-toml" }, { name = "vulture" }, - { name = "yamlfix" }, ] [package.metadata] requires-dist = [ - { name = "fastapi", specifier = ">=0.136.1" }, + { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, + { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, + { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, + { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, + { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, + { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, + { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, + { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, + { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, + { name = "flext-cli", editable = "flext-cli" }, { name = "flext-core", editable = "flext-core" }, - { name = "flext-db-oracle", editable = "flext-db-oracle" }, { name = "flext-meltano", editable = "flext-meltano" }, - { name = "flext-observability", editable = "flext-observability" }, - { name = "prometheus-client", specifier = ">=0.25.0" }, + { name = "flext-oracle-wms", editable = "flext-oracle-wms" }, + { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, + { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, + { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, + { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, + { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, + { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, + { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, + { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, + { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, + { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, + { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, + { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, + { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, + { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, + { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, + { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, + { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, + { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, + { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, + { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, + { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, + { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, + { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, { name = "pydantic", specifier = ">=2.13.3" }, { name = "pydantic-core", specifier = ">=2.46.3" }, - { name = "setuptools", specifier = ">=82.0.1" }, - { name = "singer-sdk", specifier = ">=0.53.7" }, - { name = "uvicorn", specifier = ">=0.46.0" }, -] + { name = "pydantic-settings", specifier = ">=2.14.0" }, + { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, + { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, + { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, + { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, + { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, + { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, + { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, + { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, + { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, + { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, + { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, + { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, + { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, + { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, + { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, + { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, + { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, + { name = "requests", specifier = ">=2.33.1" }, + { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, + { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, + { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, + { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, + { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, + { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, + { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, + { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, + { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, + { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, + { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, + { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, + { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, + { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, + { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, + { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, + { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, + { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, + { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, + { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, + { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, + { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, + { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, + { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, +] +provides-extras = ["dev"] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ - { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -6033,12 +8951,10 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, - { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, - { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -6061,7 +8977,6 @@ dev = [ { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, - { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, @@ -6077,23 +8992,94 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] -name = "flext-tap-oracle-oic" +name = "flext-target-ldap" version = "0.12.0rc0" -source = { editable = "flext-tap-oracle-oic" } +source = { editable = "flext-target-ldap" } dependencies = [ - { name = "flext-api" }, { name = "flext-cli" }, { name = "flext-core" }, + { name = "flext-ldap" }, { name = "flext-meltano" }, - { name = "flext-oracle-oic" }, - { name = "pydantic" }, - { name = "pydantic-core" }, - { name = "pydantic-settings" }, - { name = "requests" }, +] + +[package.optional-dependencies] +dev = [ + { name = "autoflake" }, + { name = "bandit" }, + { name = "black" }, + { name = "blacken-docs" }, + { name = "codespell" }, + { name = "deptry" }, + { name = "django-stubs" }, + { name = "factory-boy" }, + { name = "faker" }, + { name = "hypothesis" }, + { name = "isort" }, + { name = "matplotlib-stubs" }, + { name = "mkdocs" }, + { name = "mkdocs-awesome-pages-plugin" }, + { name = "mkdocs-encryptcontent-plugin" }, + { name = "mkdocs-exclude" }, + { name = "mkdocs-get-deps" }, + { name = "mkdocs-git-revision-date-localized-plugin" }, + { name = "mkdocs-literate-nav" }, + { name = "mkdocs-macros-plugin" }, + { name = "mkdocs-material" }, + { name = "mkdocs-material-extensions" }, + { name = "mkdocs-mermaid2-plugin" }, + { name = "mkdocs-minify-plugin" }, + { name = "mkdocs-print-site-plugin" }, + { name = "mkdocs-redirects" }, + { name = "mkdocs-section-index" }, + { name = "mkdocs-versioning" }, + { name = "mkdocstrings" }, + { name = "mkdocstrings-python" }, + { name = "pip-audit" }, + { name = "pre-commit" }, + { name = "pylint" }, + { name = "pyrefly" }, + { name = "pytest" }, + { name = "pytest-benchmark" }, + { name = "pytest-clarity" }, + { name = "pytest-codeblocks" }, + { name = "pytest-cov" }, + { name = "pytest-deadfixtures" }, + { name = "pytest-env" }, + { name = "pytest-markdown-docs" }, + { name = "pytest-mock" }, + { name = "pytest-randomly" }, + { name = "pytest-sugar" }, + { name = "pytest-timeout" }, + { name = "pytest-xdist" }, + { name = "pyupgrade" }, + { name = "radon" }, + { name = "ruff" }, + { name = "types-cachetools" }, + { name = "types-cffi" }, + { name = "types-click" }, + { name = "types-defusedxml" }, + { name = "types-docker" }, + { name = "types-flask" }, + { name = "types-jsonschema" }, + { name = "types-ldap3" }, + { name = "types-paramiko" }, + { name = "types-protobuf" }, + { name = "types-psutil" }, + { name = "types-psycopg2" }, + { name = "types-pyasn1" }, + { name = "types-pyopenssl" }, + { name = "types-python-dateutil" }, + { name = "types-pyyaml" }, + { name = "types-redis" }, + { name = "types-requests" }, + { name = "types-setuptools" }, + { name = "types-tabulate" }, + { name = "types-toml" }, + { name = "vulture" }, + { name = "yamlfix" }, ] [package.dev-dependencies] @@ -6101,7 +9087,6 @@ codegen = [ { name = "flext-infra" }, ] dev = [ - { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -6111,6 +9096,7 @@ dev = [ { name = "django-stubs" }, { name = "factory-boy" }, { name = "faker" }, + { name = "flext-cli" }, { name = "flext-tests" }, { name = "hypothesis" }, { name = "isort" }, @@ -6133,12 +9119,10 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, - { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, - { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -6161,7 +9145,6 @@ dev = [ { name = "types-defusedxml" }, { name = "types-docker" }, { name = "types-flask" }, - { name = "types-jsonschema" }, { name = "types-ldap3" }, { name = "types-paramiko" }, { name = "types-protobuf" }, @@ -6177,26 +9160,93 @@ dev = [ { name = "types-tabulate" }, { name = "types-toml" }, { name = "vulture" }, - { name = "yamlfix" }, ] [package.metadata] requires-dist = [ - { name = "flext-api", editable = "flext-api" }, + { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, + { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, + { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, + { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, + { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, + { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, + { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, + { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, + { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, { name = "flext-cli", editable = "flext-cli" }, { name = "flext-core", editable = "flext-core" }, + { name = "flext-ldap", editable = "flext-ldap" }, { name = "flext-meltano", editable = "flext-meltano" }, - { name = "flext-oracle-oic", editable = "flext-oracle-oic" }, - { name = "pydantic", specifier = ">=2.13.3" }, - { name = "pydantic-core", specifier = ">=2.46.3" }, - { name = "pydantic-settings", specifier = ">=2.14.0" }, - { name = "requests", specifier = ">=2.33.1" }, -] + { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, + { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, + { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, + { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, + { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, + { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, + { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, + { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, + { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, + { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, + { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, + { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, + { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, + { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, + { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, + { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, + { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, + { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, + { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, + { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, + { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, + { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, + { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, + { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, + { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, + { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, + { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, + { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, + { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, + { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, + { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, + { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, + { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, + { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, + { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, + { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, + { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, + { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, + { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, + { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, + { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, + { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, + { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, + { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, + { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, + { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, + { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, + { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, + { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, + { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, + { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, + { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, + { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, + { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, + { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, + { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, + { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, + { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, + { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, + { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, + { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, + { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, + { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, + { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, +] +provides-extras = ["dev"] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ - { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -6206,6 +9256,7 @@ dev = [ { name = "django-stubs", specifier = ">=5.2.2" }, { name = "factory-boy", specifier = ">=3.3.1" }, { name = "faker", specifier = ">=37.4" }, + { name = "flext-cli", editable = "flext-cli" }, { name = "flext-tests", editable = "flext-tests" }, { name = "hypothesis", specifier = ">=6.125" }, { name = "isort", specifier = ">=6.0.1" }, @@ -6228,12 +9279,10 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, - { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, - { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -6256,7 +9305,6 @@ dev = [ { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, - { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, @@ -6272,30 +9320,24 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] -name = "flext-tap-oracle-wms" +name = "flext-target-ldif" version = "0.12.0rc0" -source = { editable = "flext-tap-oracle-wms" } +source = { editable = "flext-target-ldif" } dependencies = [ - { name = "flext-cli" }, { name = "flext-core" }, + { name = "flext-ldif" }, { name = "flext-meltano" }, - { name = "flext-oracle-wms" }, + { name = "flext-observability" }, { name = "pydantic" }, { name = "pydantic-core" }, { name = "pydantic-settings" }, - { name = "requests" }, ] -[package.dev-dependencies] -codegen = [ - { name = "flext-infra" }, -] +[package.optional-dependencies] dev = [ - { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -6305,7 +9347,6 @@ dev = [ { name = "django-stubs" }, { name = "factory-boy" }, { name = "faker" }, - { name = "flext-tests" }, { name = "hypothesis" }, { name = "isort" }, { name = "matplotlib-stubs" }, @@ -6327,12 +9368,10 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, - { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, - { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -6374,117 +9413,11 @@ dev = [ { name = "yamlfix" }, ] -[package.metadata] -requires-dist = [ - { name = "flext-cli", editable = "flext-cli" }, - { name = "flext-core", editable = "flext-core" }, - { name = "flext-meltano", editable = "flext-meltano" }, - { name = "flext-oracle-wms", editable = "flext-oracle-wms" }, - { name = "pydantic", specifier = ">=2.13.3" }, - { name = "pydantic-core", specifier = ">=2.46.3" }, - { name = "pydantic-settings", specifier = ">=2.14.0" }, - { name = "requests", specifier = ">=2.33.1" }, -] - -[package.metadata.requires-dev] -codegen = [{ name = "flext-infra", editable = "flext-infra" }] -dev = [ - { name = "actionlint-py", specifier = ">=1.7.12.24" }, - { name = "autoflake", specifier = ">=2.3.1" }, - { name = "bandit", specifier = ">=1.8" }, - { name = "black", specifier = ">=25.1" }, - { name = "blacken-docs", specifier = ">=1.19" }, - { name = "codespell", specifier = ">=2.3" }, - { name = "deptry", specifier = ">=0.23" }, - { name = "django-stubs", specifier = ">=5.2.2" }, - { name = "factory-boy", specifier = ">=3.3.1" }, - { name = "faker", specifier = ">=37.4" }, - { name = "flext-tests", editable = "flext-tests" }, - { name = "hypothesis", specifier = ">=6.125" }, - { name = "isort", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", specifier = ">=0.3" }, - { name = "mkdocs", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", specifier = ">=2" }, - { name = "mkdocs-exclude", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", specifier = ">=1" }, - { name = "mkdocs-material", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", specifier = ">=0.8" }, - { name = "mkdocs-redirects", specifier = ">=1.2" }, - { name = "mkdocs-section-index", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", specifier = ">=0.2" }, - { name = "mkdocstrings", specifier = ">=0.24" }, - { name = "mkdocstrings-python", specifier = ">=1.7" }, - { name = "mypy", specifier = ">=2.3.0" }, - { name = "pip-audit", specifier = ">=2.7.3" }, - { name = "pre-commit", specifier = ">=4.6.0" }, - { name = "pylint", specifier = ">=3.3" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, - { name = "pyright", specifier = ">=1.1.411" }, - { name = "pytest", specifier = ">=8.4" }, - { name = "pytest-benchmark", specifier = ">=5.1" }, - { name = "pytest-clarity", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", specifier = ">=0.17.0" }, - { name = "pytest-cov", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", specifier = ">=2.2.1" }, - { name = "pytest-env", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", specifier = ">=0.9.2" }, - { name = "pytest-mock", specifier = ">=3.14" }, - { name = "pytest-randomly", specifier = ">=3.16" }, - { name = "pytest-sugar", specifier = ">=1" }, - { name = "pytest-timeout", specifier = ">=2.4" }, - { name = "pytest-xdist", specifier = ">=3.8" }, - { name = "pyupgrade", specifier = ">=3.19" }, - { name = "radon", specifier = ">=6.0.1" }, - { name = "ruff", specifier = ">=0.12.3" }, - { name = "types-cachetools", specifier = ">=6.2" }, - { name = "types-cffi", specifier = ">=2.0" }, - { name = "types-click", specifier = ">=7.1" }, - { name = "types-defusedxml", specifier = ">=0.7" }, - { name = "types-docker", specifier = ">=7.1" }, - { name = "types-flask", specifier = ">=1.1.6" }, - { name = "types-jsonschema", specifier = ">=4.26" }, - { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", specifier = ">=4.0" }, - { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", specifier = ">=7" }, - { name = "types-psycopg2", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", specifier = ">=0.6" }, - { name = "types-pyopenssl", specifier = ">=24.1" }, - { name = "types-python-dateutil", specifier = ">=2.9" }, - { name = "types-pyyaml", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", specifier = ">=4.6" }, - { name = "types-requests", specifier = ">=2.32.4" }, - { name = "types-setuptools", specifier = ">=80.9" }, - { name = "types-tabulate", specifier = ">=0.10" }, - { name = "types-toml", specifier = ">=0.10.8.20240310" }, - { name = "vulture", specifier = ">=2.13" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, -] - -[[package]] -name = "flext-target-ldap" -version = "0.12.0rc0" -source = { editable = "flext-target-ldap" } -dependencies = [ - { name = "flext-cli" }, - { name = "flext-core" }, - { name = "flext-ldap" }, - { name = "flext-meltano" }, -] - [package.dev-dependencies] codegen = [ { name = "flext-infra" }, ] dev = [ - { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -6494,7 +9427,6 @@ dev = [ { name = "django-stubs" }, { name = "factory-boy" }, { name = "faker" }, - { name = "flext-cli" }, { name = "flext-tests" }, { name = "hypothesis" }, { name = "isort" }, @@ -6517,12 +9449,10 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, - { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, - { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -6545,7 +9475,6 @@ dev = [ { name = "types-defusedxml" }, { name = "types-docker" }, { name = "types-flask" }, - { name = "types-jsonschema" }, { name = "types-ldap3" }, { name = "types-paramiko" }, { name = "types-protobuf" }, @@ -6561,21 +9490,96 @@ dev = [ { name = "types-tabulate" }, { name = "types-toml" }, { name = "vulture" }, - { name = "yamlfix" }, ] [package.metadata] requires-dist = [ - { name = "flext-cli", editable = "flext-cli" }, + { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, + { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, + { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, + { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, + { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, + { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, + { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, + { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, + { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, { name = "flext-core", editable = "flext-core" }, - { name = "flext-ldap", editable = "flext-ldap" }, + { name = "flext-ldif", editable = "flext-ldif" }, { name = "flext-meltano", editable = "flext-meltano" }, -] + { name = "flext-observability", editable = "flext-observability" }, + { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, + { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, + { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, + { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, + { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, + { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, + { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, + { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, + { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, + { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, + { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, + { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, + { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, + { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, + { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, + { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, + { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, + { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, + { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, + { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, + { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, + { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, + { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, + { name = "pydantic", specifier = ">=2.13.3" }, + { name = "pydantic-core", specifier = ">=2.46.3" }, + { name = "pydantic-settings", specifier = ">=2.14.0" }, + { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, + { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, + { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, + { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, + { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, + { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, + { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, + { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, + { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, + { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, + { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, + { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, + { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, + { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, + { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, + { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, + { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, + { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, + { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, + { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, + { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, + { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, + { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, + { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, + { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, + { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, + { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, + { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, + { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, + { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, + { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, + { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, + { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, + { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, + { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, + { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, + { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, + { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, + { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, + { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, + { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, +] +provides-extras = ["dev"] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ - { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -6585,7 +9589,6 @@ dev = [ { name = "django-stubs", specifier = ">=5.2.2" }, { name = "factory-boy", specifier = ">=3.3.1" }, { name = "faker", specifier = ">=37.4" }, - { name = "flext-cli", editable = "flext-cli" }, { name = "flext-tests", editable = "flext-tests" }, { name = "hypothesis", specifier = ">=6.125" }, { name = "isort", specifier = ">=6.0.1" }, @@ -6608,12 +9611,10 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, - { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, - { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -6636,7 +9637,6 @@ dev = [ { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, - { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, @@ -6652,21 +9652,100 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] -name = "flext-target-ldif" +name = "flext-target-oracle" version = "0.12.0rc0" -source = { editable = "flext-target-ldif" } +source = { editable = "flext-target-oracle" } dependencies = [ + { name = "click" }, + { name = "flext-cli" }, { name = "flext-core" }, - { name = "flext-ldif" }, + { name = "flext-db-oracle" }, { name = "flext-meltano" }, - { name = "flext-observability" }, { name = "pydantic" }, { name = "pydantic-core" }, { name = "pydantic-settings" }, + { name = "pyyaml" }, + { name = "rich" }, +] + +[package.optional-dependencies] +dev = [ + { name = "autoflake" }, + { name = "bandit" }, + { name = "black" }, + { name = "blacken-docs" }, + { name = "codespell" }, + { name = "deptry" }, + { name = "django-stubs" }, + { name = "factory-boy" }, + { name = "faker" }, + { name = "hypothesis" }, + { name = "isort" }, + { name = "matplotlib-stubs" }, + { name = "mkdocs" }, + { name = "mkdocs-awesome-pages-plugin" }, + { name = "mkdocs-encryptcontent-plugin" }, + { name = "mkdocs-exclude" }, + { name = "mkdocs-get-deps" }, + { name = "mkdocs-git-revision-date-localized-plugin" }, + { name = "mkdocs-literate-nav" }, + { name = "mkdocs-macros-plugin" }, + { name = "mkdocs-material" }, + { name = "mkdocs-material-extensions" }, + { name = "mkdocs-mermaid2-plugin" }, + { name = "mkdocs-minify-plugin" }, + { name = "mkdocs-print-site-plugin" }, + { name = "mkdocs-redirects" }, + { name = "mkdocs-section-index" }, + { name = "mkdocs-versioning" }, + { name = "mkdocstrings" }, + { name = "mkdocstrings-python" }, + { name = "pip-audit" }, + { name = "pre-commit" }, + { name = "pylint" }, + { name = "pyrefly" }, + { name = "pytest" }, + { name = "pytest-benchmark" }, + { name = "pytest-clarity" }, + { name = "pytest-codeblocks" }, + { name = "pytest-cov" }, + { name = "pytest-deadfixtures" }, + { name = "pytest-env" }, + { name = "pytest-markdown-docs" }, + { name = "pytest-mock" }, + { name = "pytest-randomly" }, + { name = "pytest-sugar" }, + { name = "pytest-timeout" }, + { name = "pytest-xdist" }, + { name = "pyupgrade" }, + { name = "radon" }, + { name = "ruff" }, + { name = "types-cachetools" }, + { name = "types-cffi" }, + { name = "types-click" }, + { name = "types-defusedxml" }, + { name = "types-docker" }, + { name = "types-flask" }, + { name = "types-jsonschema" }, + { name = "types-ldap3" }, + { name = "types-paramiko" }, + { name = "types-protobuf" }, + { name = "types-psutil" }, + { name = "types-psycopg2" }, + { name = "types-pyasn1" }, + { name = "types-pyopenssl" }, + { name = "types-python-dateutil" }, + { name = "types-pyyaml" }, + { name = "types-redis" }, + { name = "types-requests" }, + { name = "types-setuptools" }, + { name = "types-tabulate" }, + { name = "types-toml" }, + { name = "vulture" }, + { name = "yamlfix" }, ] [package.dev-dependencies] @@ -6674,7 +9753,6 @@ codegen = [ { name = "flext-infra" }, ] dev = [ - { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -6706,12 +9784,10 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, - { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, - { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -6734,7 +9810,6 @@ dev = [ { name = "types-defusedxml" }, { name = "types-docker" }, { name = "types-flask" }, - { name = "types-jsonschema" }, { name = "types-ldap3" }, { name = "types-paramiko" }, { name = "types-protobuf" }, @@ -6750,24 +9825,99 @@ dev = [ { name = "types-tabulate" }, { name = "types-toml" }, { name = "vulture" }, - { name = "yamlfix" }, ] [package.metadata] requires-dist = [ + { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, + { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, + { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, + { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, + { name = "click", specifier = ">=8.3.3" }, + { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, + { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, + { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, + { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, + { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, + { name = "flext-cli", editable = "flext-cli" }, { name = "flext-core", editable = "flext-core" }, - { name = "flext-ldif", editable = "flext-ldif" }, + { name = "flext-db-oracle", editable = "flext-db-oracle" }, { name = "flext-meltano", editable = "flext-meltano" }, - { name = "flext-observability", editable = "flext-observability" }, + { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, + { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, + { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, + { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, + { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, + { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, + { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, + { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, + { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, + { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, + { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, + { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, + { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, + { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, + { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, + { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, + { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, + { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, + { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, + { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, + { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, + { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, + { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, { name = "pydantic", specifier = ">=2.13.3" }, { name = "pydantic-core", specifier = ">=2.46.3" }, { name = "pydantic-settings", specifier = ">=2.14.0" }, -] + { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, + { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, + { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, + { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, + { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, + { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, + { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, + { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, + { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, + { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, + { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, + { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, + { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, + { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, + { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, + { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, + { name = "pyyaml", specifier = ">=6.0.3" }, + { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, + { name = "rich", specifier = ">=14,<14.4" }, + { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, + { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, + { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, + { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, + { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, + { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, + { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, + { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, + { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, + { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, + { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, + { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, + { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, + { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, + { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, + { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, + { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, + { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, + { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, + { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, + { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, + { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, + { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, + { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, +] +provides-extras = ["dev"] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ - { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -6799,12 +9949,10 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, - { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, - { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -6827,7 +9975,6 @@ dev = [ { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, - { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, @@ -6843,32 +9990,30 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] -name = "flext-target-oracle" +name = "flext-target-oracle-oic" version = "0.12.0rc0" -source = { editable = "flext-target-oracle" } +source = { editable = "flext-target-oracle-oic" } dependencies = [ - { name = "click" }, + { name = "flext-api" }, { name = "flext-cli" }, { name = "flext-core" }, { name = "flext-db-oracle" }, { name = "flext-meltano" }, + { name = "flext-observability" }, + { name = "flext-oracle-oic" }, { name = "pydantic" }, { name = "pydantic-core" }, { name = "pydantic-settings" }, - { name = "pyyaml" }, - { name = "rich" }, + { name = "requests" }, + { name = "singer-sdk" }, + { name = "urllib3" }, ] -[package.dev-dependencies] -codegen = [ - { name = "flext-infra" }, -] +[package.optional-dependencies] dev = [ - { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -6878,7 +10023,6 @@ dev = [ { name = "django-stubs" }, { name = "factory-boy" }, { name = "faker" }, - { name = "flext-tests" }, { name = "hypothesis" }, { name = "isort" }, { name = "matplotlib-stubs" }, @@ -6900,12 +10044,10 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, - { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, - { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -6947,128 +10089,11 @@ dev = [ { name = "yamlfix" }, ] -[package.metadata] -requires-dist = [ - { name = "click", specifier = ">=8.3.3" }, - { name = "flext-cli", editable = "flext-cli" }, - { name = "flext-core", editable = "flext-core" }, - { name = "flext-db-oracle", editable = "flext-db-oracle" }, - { name = "flext-meltano", editable = "flext-meltano" }, - { name = "pydantic", specifier = ">=2.13.3" }, - { name = "pydantic-core", specifier = ">=2.46.3" }, - { name = "pydantic-settings", specifier = ">=2.14.0" }, - { name = "pyyaml", specifier = ">=6.0.3" }, - { name = "rich", specifier = ">=14,<15" }, -] - -[package.metadata.requires-dev] -codegen = [{ name = "flext-infra", editable = "flext-infra" }] -dev = [ - { name = "actionlint-py", specifier = ">=1.7.12.24" }, - { name = "autoflake", specifier = ">=2.3.1" }, - { name = "bandit", specifier = ">=1.8" }, - { name = "black", specifier = ">=25.1" }, - { name = "blacken-docs", specifier = ">=1.19" }, - { name = "codespell", specifier = ">=2.3" }, - { name = "deptry", specifier = ">=0.23" }, - { name = "django-stubs", specifier = ">=5.2.2" }, - { name = "factory-boy", specifier = ">=3.3.1" }, - { name = "faker", specifier = ">=37.4" }, - { name = "flext-tests", editable = "flext-tests" }, - { name = "hypothesis", specifier = ">=6.125" }, - { name = "isort", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", specifier = ">=0.3" }, - { name = "mkdocs", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", specifier = ">=2" }, - { name = "mkdocs-exclude", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", specifier = ">=1" }, - { name = "mkdocs-material", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", specifier = ">=0.8" }, - { name = "mkdocs-redirects", specifier = ">=1.2" }, - { name = "mkdocs-section-index", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", specifier = ">=0.2" }, - { name = "mkdocstrings", specifier = ">=0.24" }, - { name = "mkdocstrings-python", specifier = ">=1.7" }, - { name = "mypy", specifier = ">=2.3.0" }, - { name = "pip-audit", specifier = ">=2.7.3" }, - { name = "pre-commit", specifier = ">=4.6.0" }, - { name = "pylint", specifier = ">=3.3" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, - { name = "pyright", specifier = ">=1.1.411" }, - { name = "pytest", specifier = ">=8.4" }, - { name = "pytest-benchmark", specifier = ">=5.1" }, - { name = "pytest-clarity", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", specifier = ">=0.17.0" }, - { name = "pytest-cov", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", specifier = ">=2.2.1" }, - { name = "pytest-env", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", specifier = ">=0.9.2" }, - { name = "pytest-mock", specifier = ">=3.14" }, - { name = "pytest-randomly", specifier = ">=3.16" }, - { name = "pytest-sugar", specifier = ">=1" }, - { name = "pytest-timeout", specifier = ">=2.4" }, - { name = "pytest-xdist", specifier = ">=3.8" }, - { name = "pyupgrade", specifier = ">=3.19" }, - { name = "radon", specifier = ">=6.0.1" }, - { name = "ruff", specifier = ">=0.12.3" }, - { name = "types-cachetools", specifier = ">=6.2" }, - { name = "types-cffi", specifier = ">=2.0" }, - { name = "types-click", specifier = ">=7.1" }, - { name = "types-defusedxml", specifier = ">=0.7" }, - { name = "types-docker", specifier = ">=7.1" }, - { name = "types-flask", specifier = ">=1.1.6" }, - { name = "types-jsonschema", specifier = ">=4.26" }, - { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", specifier = ">=4.0" }, - { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", specifier = ">=7" }, - { name = "types-psycopg2", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", specifier = ">=0.6" }, - { name = "types-pyopenssl", specifier = ">=24.1" }, - { name = "types-python-dateutil", specifier = ">=2.9" }, - { name = "types-pyyaml", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", specifier = ">=4.6" }, - { name = "types-requests", specifier = ">=2.32.4" }, - { name = "types-setuptools", specifier = ">=80.9" }, - { name = "types-tabulate", specifier = ">=0.10" }, - { name = "types-toml", specifier = ">=0.10.8.20240310" }, - { name = "vulture", specifier = ">=2.13" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, -] - -[[package]] -name = "flext-target-oracle-oic" -version = "0.12.0rc0" -source = { editable = "flext-target-oracle-oic" } -dependencies = [ - { name = "flext-api" }, - { name = "flext-cli" }, - { name = "flext-core" }, - { name = "flext-db-oracle" }, - { name = "flext-meltano" }, - { name = "flext-observability" }, - { name = "flext-oracle-oic" }, - { name = "pydantic" }, - { name = "pydantic-core" }, - { name = "pydantic-settings" }, - { name = "requests" }, - { name = "singer-sdk" }, - { name = "urllib3" }, -] - [package.dev-dependencies] codegen = [ { name = "flext-infra" }, ] dev = [ - { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -7100,12 +10125,10 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, - { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, - { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -7128,7 +10151,6 @@ dev = [ { name = "types-defusedxml" }, { name = "types-docker" }, { name = "types-flask" }, - { name = "types-jsonschema" }, { name = "types-ldap3" }, { name = "types-paramiko" }, { name = "types-protobuf" }, @@ -7144,11 +10166,19 @@ dev = [ { name = "types-tabulate" }, { name = "types-toml" }, { name = "vulture" }, - { name = "yamlfix" }, ] [package.metadata] requires-dist = [ + { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, + { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, + { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, + { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, + { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, + { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, + { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, + { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, + { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, { name = "flext-api", editable = "flext-api" }, { name = "flext-cli", editable = "flext-cli" }, { name = "flext-core", editable = "flext-core" }, @@ -7156,18 +10186,82 @@ requires-dist = [ { name = "flext-meltano", editable = "flext-meltano" }, { name = "flext-observability", editable = "flext-observability" }, { name = "flext-oracle-oic", editable = "flext-oracle-oic" }, + { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, + { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, + { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, + { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, + { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, + { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, + { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, + { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, + { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, + { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, + { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, + { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, + { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, + { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, + { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, + { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, + { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, + { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, + { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, + { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, + { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, + { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, + { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, { name = "pydantic", specifier = ">=2.13.3" }, { name = "pydantic-core", specifier = ">=2.46.3" }, { name = "pydantic-settings", specifier = ">=2.14.0" }, + { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, + { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, + { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, + { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, + { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, + { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, + { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, + { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, + { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, + { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, + { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, + { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, + { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, + { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, + { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, + { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, + { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, { name = "requests", specifier = ">=2.33.1" }, + { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, { name = "singer-sdk", specifier = ">=0.53.7" }, + { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, + { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, + { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, + { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, + { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, + { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, + { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, + { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, + { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, + { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, + { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, + { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, + { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, + { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, + { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, + { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, + { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, + { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, + { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, + { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, + { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, { name = "urllib3", specifier = ">=2.6.3" }, + { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, + { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, ] +provides-extras = ["dev"] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ - { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -7199,12 +10293,10 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, - { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, - { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -7227,7 +10319,6 @@ dev = [ { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, - { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, @@ -7243,7 +10334,6 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -7263,12 +10353,88 @@ dependencies = [ { name = "sqlalchemy" }, ] +[package.optional-dependencies] +dev = [ + { name = "autoflake" }, + { name = "bandit" }, + { name = "black" }, + { name = "blacken-docs" }, + { name = "codespell" }, + { name = "deptry" }, + { name = "django-stubs" }, + { name = "factory-boy" }, + { name = "faker" }, + { name = "hypothesis" }, + { name = "isort" }, + { name = "matplotlib-stubs" }, + { name = "mkdocs" }, + { name = "mkdocs-awesome-pages-plugin" }, + { name = "mkdocs-encryptcontent-plugin" }, + { name = "mkdocs-exclude" }, + { name = "mkdocs-get-deps" }, + { name = "mkdocs-git-revision-date-localized-plugin" }, + { name = "mkdocs-literate-nav" }, + { name = "mkdocs-macros-plugin" }, + { name = "mkdocs-material" }, + { name = "mkdocs-material-extensions" }, + { name = "mkdocs-mermaid2-plugin" }, + { name = "mkdocs-minify-plugin" }, + { name = "mkdocs-print-site-plugin" }, + { name = "mkdocs-redirects" }, + { name = "mkdocs-section-index" }, + { name = "mkdocs-versioning" }, + { name = "mkdocstrings" }, + { name = "mkdocstrings-python" }, + { name = "pip-audit" }, + { name = "pre-commit" }, + { name = "pylint" }, + { name = "pyrefly" }, + { name = "pytest" }, + { name = "pytest-benchmark" }, + { name = "pytest-clarity" }, + { name = "pytest-codeblocks" }, + { name = "pytest-cov" }, + { name = "pytest-deadfixtures" }, + { name = "pytest-env" }, + { name = "pytest-markdown-docs" }, + { name = "pytest-mock" }, + { name = "pytest-randomly" }, + { name = "pytest-sugar" }, + { name = "pytest-timeout" }, + { name = "pytest-xdist" }, + { name = "pyupgrade" }, + { name = "radon" }, + { name = "ruff" }, + { name = "types-cachetools" }, + { name = "types-cffi" }, + { name = "types-click" }, + { name = "types-defusedxml" }, + { name = "types-docker" }, + { name = "types-flask" }, + { name = "types-jsonschema" }, + { name = "types-ldap3" }, + { name = "types-paramiko" }, + { name = "types-protobuf" }, + { name = "types-psutil" }, + { name = "types-psycopg2" }, + { name = "types-pyasn1" }, + { name = "types-pyopenssl" }, + { name = "types-python-dateutil" }, + { name = "types-pyyaml" }, + { name = "types-redis" }, + { name = "types-requests" }, + { name = "types-setuptools" }, + { name = "types-tabulate" }, + { name = "types-toml" }, + { name = "vulture" }, + { name = "yamlfix" }, +] + [package.dev-dependencies] codegen = [ { name = "flext-infra" }, ] dev = [ - { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -7300,12 +10466,10 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, - { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, - { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -7328,7 +10492,6 @@ dev = [ { name = "types-defusedxml" }, { name = "types-docker" }, { name = "types-flask" }, - { name = "types-jsonschema" }, { name = "types-ldap3" }, { name = "types-paramiko" }, { name = "types-protobuf" }, @@ -7344,27 +10507,99 @@ dev = [ { name = "types-tabulate" }, { name = "types-toml" }, { name = "vulture" }, - { name = "yamlfix" }, ] [package.metadata] requires-dist = [ + { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, + { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, + { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, + { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, + { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, + { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, + { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, + { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, + { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, { name = "flext-cli", editable = "flext-cli" }, { name = "flext-core", editable = "flext-core" }, { name = "flext-db-oracle", editable = "flext-db-oracle" }, { name = "flext-meltano", editable = "flext-meltano" }, { name = "flext-observability", editable = "flext-observability" }, { name = "flext-oracle-wms", editable = "flext-oracle-wms" }, + { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, + { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, + { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, + { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, + { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, + { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, + { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, + { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, + { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, + { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, + { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, + { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, + { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, + { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, + { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, + { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, + { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, + { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, + { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, + { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, + { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, + { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, + { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, { name = "pydantic", specifier = ">=2.13.3" }, { name = "pydantic-core", specifier = ">=2.46.3" }, { name = "pydantic-settings", specifier = ">=2.14.0" }, + { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, + { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, + { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, + { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, + { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, + { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, + { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, + { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, + { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, + { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, + { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, + { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, + { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, + { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, + { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, + { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, + { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, + { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, { name = "sqlalchemy", specifier = ">=2.0.49" }, -] + { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, + { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, + { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, + { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, + { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, + { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, + { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, + { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, + { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, + { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, + { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, + { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, + { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, + { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, + { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, + { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, + { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, + { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, + { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, + { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, + { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, + { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, + { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, +] +provides-extras = ["dev"] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ - { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -7396,12 +10631,10 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, - { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, - { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -7424,7 +10657,6 @@ dev = [ { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, - { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, @@ -7440,7 +10672,6 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] From 9de211185516492cac41d00b365464c52e9bdb03 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Wed, 29 Jul 2026 22:05:08 -0300 Subject: [PATCH 018/165] fixes --- flext-cli | 2 +- flext-core | 2 +- flext-infra | 2 +- uv.lock | 165 ++++++++++++++++++++++------------------------------ 4 files changed, 71 insertions(+), 100 deletions(-) diff --git a/flext-cli b/flext-cli index 99ef09d52..892e5e00b 160000 --- a/flext-cli +++ b/flext-cli @@ -1 +1 @@ -Subproject commit 99ef09d5219049e714472d5f8734c1a19792299a +Subproject commit 892e5e00b4f4f8c897462a15eb03ffe256cdabec diff --git a/flext-core b/flext-core index 6080da18d..c2f84c95b 160000 --- a/flext-core +++ b/flext-core @@ -1 +1 @@ -Subproject commit 6080da18d385553cb11f3ad5fdc16408bc73b8cc +Subproject commit c2f84c95b931d087d3c5ba059d1e4c5137af185a diff --git a/flext-infra b/flext-infra index b22626d3e..4ab96ec46 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit b22626d3e947293063b9fd3cd1e7d92f0b17a3bb +Subproject commit 4ab96ec46b5df731fdba2ae58b3dfbce83e8b5c6 diff --git a/uv.lock b/uv.lock index 1916b8b82..e65f5d1c5 100644 --- a/uv.lock +++ b/uv.lock @@ -4631,7 +4631,6 @@ version = "0.12.0rc0" source = { editable = "flext-infra" } dependencies = [ { name = "defusedxml" }, - { name = "filelock" }, { name = "flext-cli" }, { name = "flext-core" }, { name = "gitpython" }, @@ -4642,14 +4641,11 @@ dependencies = [ { name = "mkdocs-section-index" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, - { name = "pyrefly" }, { name = "rope" }, - { name = "ruff" }, ] [package.dev-dependencies] dev = [ - { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -4681,12 +4677,10 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, - { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, - { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -4703,7 +4697,6 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, - { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -4732,101 +4725,94 @@ dev = [ [package.metadata] requires-dist = [ { name = "defusedxml", specifier = ">=0.7.1" }, - { name = "filelock", specifier = ">=3.32.0" }, { name = "flext-cli", editable = "flext-cli" }, { name = "flext-core", editable = "flext-core" }, - { name = "gitpython", specifier = ">=3.1.57" }, + { name = "gitpython", specifier = ">=3.1.49" }, { name = "libcst", specifier = ">=1.8.6" }, { name = "mkdocs", specifier = ">=1.6.1" }, { name = "mkdocs-exclude", specifier = ">=1.0.2" }, - { name = "mkdocs-material", specifier = ">=9.7.7" }, + { name = "mkdocs-material", specifier = ">=9.7.6" }, { name = "mkdocs-section-index", specifier = ">=0.3.12" }, - { name = "mkdocstrings", specifier = ">=1.0.6" }, - { name = "mkdocstrings-python", specifier = ">=2.0.5" }, - { name = "pyrefly", specifier = ">=1.1.1" }, + { name = "mkdocstrings", specifier = ">=1.0.4" }, + { name = "mkdocstrings-python", specifier = ">=2.0.3" }, { name = "rope", specifier = ">=1.14.0" }, - { name = "ruff", specifier = ">=0.16.0" }, ] [package.metadata.requires-dev] dev = [ - { name = "actionlint-py", specifier = ">=1.7.12.24" }, - { name = "autoflake", specifier = ">=2.3.3" }, - { name = "bandit", specifier = ">=1.9.4" }, - { name = "black", specifier = ">=26.5.1" }, - { name = "blacken-docs", specifier = ">=1.20.0" }, - { name = "codespell", specifier = ">=2.4.3" }, - { name = "deptry", specifier = ">=0.25.1" }, - { name = "django-stubs", specifier = ">=6.0.7" }, - { name = "factory-boy", specifier = ">=3.3.3" }, - { name = "faker", specifier = ">=40.36.0" }, + { name = "autoflake", specifier = ">=2.3.1" }, + { name = "bandit", specifier = ">=1.8" }, + { name = "black", specifier = ">=25.1" }, + { name = "blacken-docs", specifier = ">=1.19" }, + { name = "codespell", specifier = ">=2.3" }, + { name = "deptry", specifier = ">=0.23" }, + { name = "django-stubs", specifier = ">=5.2.2" }, + { name = "factory-boy", specifier = ">=3.3.1" }, + { name = "faker", specifier = ">=37.4" }, { name = "flext-tests", editable = "flext-tests" }, - { name = "hypothesis", specifier = ">=6.163.0" }, - { name = "isort", specifier = ">=8.0.1" }, - { name = "matplotlib-stubs", specifier = ">=0.3.11" }, - { name = "mkdocs", specifier = ">=1.6.1" }, - { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.10.1" }, - { name = "mkdocs-encryptcontent-plugin", specifier = ">=3.1.0" }, + { name = "hypothesis", specifier = ">=6.125" }, + { name = "isort", specifier = ">=6.0.1" }, + { name = "matplotlib-stubs", specifier = ">=0.3" }, + { name = "mkdocs", specifier = ">=1.6" }, + { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.9" }, + { name = "mkdocs-encryptcontent-plugin", specifier = ">=2" }, { name = "mkdocs-exclude", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", specifier = ">=0.2.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.5.3" }, - { name = "mkdocs-literate-nav", specifier = ">=0.6.3" }, - { name = "mkdocs-macros-plugin", specifier = ">=1.5.0" }, - { name = "mkdocs-material", specifier = ">=9.7.7" }, + { name = "mkdocs-get-deps", specifier = ">=0.2" }, + { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.2" }, + { name = "mkdocs-literate-nav", specifier = ">=0.6" }, + { name = "mkdocs-macros-plugin", specifier = ">=1" }, + { name = "mkdocs-material", specifier = ">=9.5" }, { name = "mkdocs-material-extensions", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", specifier = ">=1.2.3" }, - { name = "mkdocs-minify-plugin", specifier = ">=0.8.0" }, - { name = "mkdocs-print-site-plugin", specifier = ">=2.8" }, - { name = "mkdocs-redirects", specifier = ">=1.2.3" }, + { name = "mkdocs-mermaid2-plugin", specifier = ">=1.1" }, + { name = "mkdocs-minify-plugin", specifier = ">=0.7" }, + { name = "mkdocs-print-site-plugin", specifier = ">=0.8" }, + { name = "mkdocs-redirects", specifier = ">=1.2" }, { name = "mkdocs-section-index", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", specifier = ">=0.4.0" }, - { name = "mkdocstrings", specifier = ">=1.0.6" }, - { name = "mkdocstrings-python", specifier = ">=2.0.5" }, - { name = "mypy", specifier = ">=2.3.0" }, - { name = "pip-audit", specifier = ">=2.10.1" }, - { name = "pre-commit", specifier = ">=4.6.1" }, - { name = "pylint", specifier = ">=4.0.6" }, + { name = "mkdocs-versioning", specifier = ">=0.2" }, + { name = "mkdocstrings", specifier = ">=0.24" }, + { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "pip-audit", specifier = ">=2.7.3" }, + { name = "pre-commit", specifier = ">=4.6.0" }, + { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyright", specifier = ">=1.1.411" }, - { name = "pytest", specifier = ">=9.1.1" }, - { name = "pytest-benchmark", specifier = ">=5.2.3" }, + { name = "pytest", specifier = ">=8.4" }, + { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", specifier = ">=0.18.0" }, - { name = "pytest-cov", specifier = ">=7.1.0" }, - { name = "pytest-deadfixtures", specifier = ">=3.1.0" }, - { name = "pytest-env", specifier = ">=1.7.0" }, + { name = "pytest-codeblocks", specifier = ">=0.17.0" }, + { name = "pytest-cov", specifier = ">=6.2" }, + { name = "pytest-deadfixtures", specifier = ">=2.2.1" }, + { name = "pytest-env", specifier = ">=1.1.5" }, { name = "pytest-markdown-docs", specifier = ">=0.9.2" }, - { name = "pytest-mock", specifier = ">=3.15.1" }, - { name = "pytest-randomly", specifier = ">=4.1.0" }, - { name = "pytest-sugar", specifier = ">=1.1.1" }, - { name = "pytest-timeout", specifier = ">=2.4.0" }, - { name = "pytest-xdist", specifier = ">=3.8.0" }, - { name = "pyupgrade", specifier = ">=3.21.2" }, + { name = "pytest-mock", specifier = ">=3.14" }, + { name = "pytest-randomly", specifier = ">=3.16" }, + { name = "pytest-sugar", specifier = ">=1" }, + { name = "pytest-timeout", specifier = ">=2.4" }, + { name = "pytest-xdist", specifier = ">=3.8" }, + { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, - { name = "ruff", specifier = ">=0.16.0" }, - { name = "rumdl", specifier = ">=0.2.45" }, - { name = "types-cachetools", specifier = ">=7.0.0.20260713" }, - { name = "types-cffi", specifier = ">=2.0.0.20260518" }, - { name = "types-click", specifier = ">=7.1.8" }, - { name = "types-defusedxml", specifier = ">=0.7.0.20260504" }, - { name = "types-docker", specifier = ">=7.2.0.20260728" }, + { name = "ruff", specifier = ">=0.12.3" }, + { name = "types-cachetools", specifier = ">=6.2" }, + { name = "types-cffi", specifier = ">=2.0" }, + { name = "types-click", specifier = ">=7.1" }, + { name = "types-defusedxml", specifier = ">=0.7" }, + { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, - { name = "types-jsonschema", specifier = ">=4.26.0.20260518" }, - { name = "types-ldap3", specifier = ">=2.9.13.20260518" }, - { name = "types-paramiko", specifier = ">=5.0.0.20260724" }, - { name = "types-protobuf", specifier = ">=7.34.1.20260518" }, - { name = "types-psutil", specifier = ">=7.2.2.20260518" }, - { name = "types-psycopg2", specifier = ">=2.9.21.20260724" }, - { name = "types-pyasn1", specifier = ">=0.6.0.20260724" }, - { name = "types-pyopenssl", specifier = ">=24.1.0.20240722" }, - { name = "types-python-dateutil", specifier = ">=2.9.0.20260716" }, - { name = "types-pyyaml", specifier = ">=6.0.12.20260724" }, - { name = "types-redis", specifier = ">=4.6.0.20241004" }, - { name = "types-requests", specifier = ">=2.33.0.20260712" }, - { name = "types-setuptools", specifier = ">=83.0.0.20260724" }, - { name = "types-tabulate", specifier = ">=0.10.0.20260508" }, - { name = "types-toml", specifier = ">=0.10.8.20260518" }, - { name = "vulture", specifier = ">=2.16" }, + { name = "types-jsonschema", specifier = ">=4.26" }, + { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, + { name = "types-paramiko", specifier = ">=4.0" }, + { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, + { name = "types-psutil", specifier = ">=7" }, + { name = "types-psycopg2", specifier = ">=2.9.21.20250718" }, + { name = "types-pyasn1", specifier = ">=0.6" }, + { name = "types-pyopenssl", specifier = ">=24.1" }, + { name = "types-python-dateutil", specifier = ">=2.9" }, + { name = "types-pyyaml", specifier = ">=6.0.12.20260518" }, + { name = "types-redis", specifier = ">=4.6" }, + { name = "types-requests", specifier = ">=2.32.4" }, + { name = "types-setuptools", specifier = ">=80.9" }, + { name = "types-tabulate", specifier = ">=0.10" }, + { name = "types-toml", specifier = ">=0.10.8.20240310" }, + { name = "vulture", specifier = ">=2.13" }, { name = "yamlfix", specifier = ">=1.19.1" }, ] @@ -14336,21 +14322,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/cb/9a/8415f2657cbe200f41a4531ccededf135505a92d4a012229121f885b26f9/ruff-0.16.0-py3-none-win_arm64.whl", hash = "sha256:14296fedcd2705c77ab8235439278bbb38f285cf7da5528b00b3e330c3d4872d", size = 11273407, upload-time = "2026-07-23T19:11:28.705Z" }, ] -[[package]] -name = "rumdl" -version = "0.2.46" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/54/3b/194f66a79e1a2d74b2e6f278f958ce3b80135b13c395114dc9fcd2ce6993/rumdl-0.2.46.tar.gz", hash = "sha256:99036f4268f4fad4915ff603618d36ba62aa585374f60b2d55bbfe0f10680bd3", size = 3034309, upload-time = "2026-07-29T21:33:24.575Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/32/7f/01f3e6a9217e6d1a5882f43cfdadaa5832895485276edbf395d69370f1e0/rumdl-0.2.46-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:9954f53219b63f434613b7f66cba98c8b08bfea2ee544b184b1af78348ed94ac", size = 6239220, upload-time = "2026-07-29T21:33:17.048Z" }, - { url = "https://files.pythonhosted.org/packages/f9/b7/57e92263f1fe44737eafa3c02d4b211f837d97a689ef7e9da757ff263192/rumdl-0.2.46-py3-none-macosx_11_0_arm64.whl", hash = "sha256:8f28d90e1ca6bdbbb3b20f66333a6aeb120699d01f41d1685c026b15064aac84", size = 5884922, upload-time = "2026-07-29T21:33:10.465Z" }, - { url = "https://files.pythonhosted.org/packages/84/c7/9e9a9eae876c631a1df63d352841858056ae45381d31daaa70c595c13a1d/rumdl-0.2.46-py3-none-manylinux_2_28_aarch64.whl", hash = "sha256:5580ff36a95030c83e103c652e0e36f565e6ab117599ba45a3fff7d6ad5a2d79", size = 6015338, upload-time = "2026-07-29T21:33:12.974Z" }, - { url = "https://files.pythonhosted.org/packages/f4/82/8a14a86290ce859b9a821bf36a73253ab9301015431dbe90f819a27d932d/rumdl-0.2.46-py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:65f16f4902a3748fffa2948264cd8ef31e258b3ae4cb294b448c8ed5882fe259", size = 6422204, upload-time = "2026-07-29T21:33:20.956Z" }, - { url = "https://files.pythonhosted.org/packages/e1/d7/454efa369dcc2343710a49e50f69b7679fe0378024042045ead20015f55b/rumdl-0.2.46-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:9337b2a16d2a8c7a53f0a26c1d6af9ac6f21713eb2a86e754327ed497ebcf6a4", size = 6014307, upload-time = "2026-07-29T21:33:14.991Z" }, - { url = "https://files.pythonhosted.org/packages/68/7d/a3443db44cd3a2337e82fb656f763eb77682ca3752d82e44a9805dd15d60/rumdl-0.2.46-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:b44fa1c0bb27b59c22714b7ff01894b6127a3ae5827caf2add291846cee37e66", size = 6406369, upload-time = "2026-07-29T21:33:22.795Z" }, - { url = "https://files.pythonhosted.org/packages/2d/5d/5e95e629a2e47f0b2d524f3d9b79488fcb5593a0af539133b1798ed32079/rumdl-0.2.46-py3-none-win_amd64.whl", hash = "sha256:5757fb0211377ab8b87490a77dd9dc9079ee13170017c53ff842acd79fb11857", size = 6339300, upload-time = "2026-07-29T21:33:18.865Z" }, -] - [[package]] name = "ruyaml" version = "0.91.0" From bcf36c02043bbb036dd667a81c19efe08a2b6a5d Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Wed, 29 Jul 2026 22:12:13 -0300 Subject: [PATCH 019/165] fixes --- flext-auth | 2 +- flext-cli | 2 +- flext-core | 2 +- flext-infra | 2 +- flext-ldap | 2 +- flext-plugin | 2 +- flext-quality | 2 +- flext-tests | 2 +- flext-web | 2 +- scripts/cmd/clean/restore_init_files.py | 1 - scripts/cmd/docs/all.py | 4 ++-- scripts/cmd/ship/save.py | 1 - scripts/lib/cli.py | 12 ++---------- scripts/lib/exec.py | 5 +---- scripts/lib/surface_validation.py | 11 ++++------- scripts/tests/test_registry_contract.py | 16 ++++++---------- 16 files changed, 24 insertions(+), 44 deletions(-) diff --git a/flext-auth b/flext-auth index 916e11064..f3e00088a 160000 --- a/flext-auth +++ b/flext-auth @@ -1 +1 @@ -Subproject commit 916e110645e5c0dcdf97d8808dfc5162bb71514e +Subproject commit f3e00088a762820dbc1c2c5572373e8682239583 diff --git a/flext-cli b/flext-cli index 892e5e00b..9c834db4c 160000 --- a/flext-cli +++ b/flext-cli @@ -1 +1 @@ -Subproject commit 892e5e00b4f4f8c897462a15eb03ffe256cdabec +Subproject commit 9c834db4c25755f6b17281f08fc734af849af7fa diff --git a/flext-core b/flext-core index c2f84c95b..005e39860 160000 --- a/flext-core +++ b/flext-core @@ -1 +1 @@ -Subproject commit c2f84c95b931d087d3c5ba059d1e4c5137af185a +Subproject commit 005e3986010cc82bd500b098ed3b3940bc4b3f2e diff --git a/flext-infra b/flext-infra index 4ab96ec46..8cbeb40f3 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 4ab96ec46b5df731fdba2ae58b3dfbce83e8b5c6 +Subproject commit 8cbeb40f3192aa9f85ac7a2a4ceb661f177dc80b diff --git a/flext-ldap b/flext-ldap index ddc913729..5c0e7b449 160000 --- a/flext-ldap +++ b/flext-ldap @@ -1 +1 @@ -Subproject commit ddc91372930fed6b4cba237738ad8db6f4d7b9b9 +Subproject commit 5c0e7b449efdd2640bdb07463a20abcf61abfc18 diff --git a/flext-plugin b/flext-plugin index cbb7a6506..b0f456240 160000 --- a/flext-plugin +++ b/flext-plugin @@ -1 +1 @@ -Subproject commit cbb7a650627da50ac6e0d664f6b67b6d47dd8c9f +Subproject commit b0f456240ba499f0d9f8465eee2455a15f46ee96 diff --git a/flext-quality b/flext-quality index 733876315..36d5d71f8 160000 --- a/flext-quality +++ b/flext-quality @@ -1 +1 @@ -Subproject commit 733876315cef1d765fbcfb44dca9c62327849bf1 +Subproject commit 36d5d71f889ebdafb95b2876d95935eda5942fb5 diff --git a/flext-tests b/flext-tests index b875f9b2c..5b1f0071f 160000 --- a/flext-tests +++ b/flext-tests @@ -1 +1 @@ -Subproject commit b875f9b2cf35671c6edafb8a06e72e0472c14029 +Subproject commit 5b1f0071fd63c398086f6ea60cb33e6401ea96ba diff --git a/flext-web b/flext-web index 35e2c635e..2f81d3fc7 160000 --- a/flext-web +++ b/flext-web @@ -1 +1 @@ -Subproject commit 35e2c635e0ea5e23507d6bd17ce2aa13913fced8 +Subproject commit 2f81d3fc777c64b132dac60149878725e53aa9a1 diff --git a/scripts/cmd/clean/restore_init_files.py b/scripts/cmd/clean/restore_init_files.py index 474492d90..396610142 100644 --- a/scripts/cmd/clean/restore_init_files.py +++ b/scripts/cmd/clean/restore_init_files.py @@ -82,7 +82,6 @@ def run() -> int: u.Cli.process_env().get("WORKSPACE_ROOT", str(Path.cwd())) ).resolve() if Dispatch.surface_validation_enabled(): - print("SURFACE-VALIDATE: python -m scripts.cmd.clean.restore_init_files") return 0 if not Dispatch.env_enabled("APPLY"): return 0 diff --git a/scripts/cmd/docs/all.py b/scripts/cmd/docs/all.py index ea13dd893..c3e33d16b 100644 --- a/scripts/cmd/docs/all.py +++ b/scripts/cmd/docs/all.py @@ -117,8 +117,8 @@ def run() -> int: return 2 if not options.can_execute: - for line in options.dry_run_lines: - print(line) + for _line in options.dry_run_lines: + pass return 0 return Dispatch.run_make("_docs", extra_env=options.target_env) diff --git a/scripts/cmd/ship/save.py b/scripts/cmd/ship/save.py index c93909c29..fbb337776 100644 --- a/scripts/cmd/ship/save.py +++ b/scripts/cmd/ship/save.py @@ -84,7 +84,6 @@ def run() -> int: return 1 if Dispatch.surface_validation_enabled(): - print("SURFACE-VALIDATE: python -m scripts.cmd.ship.save") return 0 if not Dispatch.env_enabled("APPLY"): diff --git a/scripts/lib/cli.py b/scripts/lib/cli.py index cfa4b0c71..28e249ac9 100644 --- a/scripts/lib/cli.py +++ b/scripts/lib/cli.py @@ -9,7 +9,6 @@ from flext_tests import c, t, u from scripts.lib.exec import CommandExecution from scripts.lib.registry import CommandRegistry -from scripts.lib.render import CommandRenderer from scripts.lib.surface_validation import SurfaceValidator if TYPE_CHECKING: @@ -27,8 +26,7 @@ def main(argv: Sequence[str] | None = None) -> int: ) try: return CommandCli.route(args) - except CommandRegistry.Error as exc: - print(f"ERRO: {exc}", file=sys.stderr) + except CommandRegistry.Error: return 2 @staticmethod @@ -70,7 +68,6 @@ def print_help(requested: str) -> int: return CommandCli.print_command_or_verb_help(registry, verb, what) if requested: return CommandCli.print_verb_help(registry, requested) - print(CommandRenderer.global_help(registry)) return 0 @staticmethod @@ -78,13 +75,11 @@ def print_command_or_verb_help( registry: CommandRegistry.Registry, verb: str, what: str ) -> int: """Print help for one command.""" - print(CommandRenderer.command_help(registry, verb, what)) return 0 @staticmethod def print_verb_help(registry: CommandRegistry.Registry, requested_verb: str) -> int: """Print help for one verb.""" - print(CommandRenderer.verb_help(registry, requested_verb)) return 0 @staticmethod @@ -128,7 +123,6 @@ def dispatch(requested_verb: str) -> int: command, require_required=not is_dry_run ) if is_dry_run: - print(CommandRenderer.dry_run(command, requested_verb, what)) continue child_code = CommandExecution.run(command) if child_code != 0: @@ -161,9 +155,7 @@ def print_verbosity_help( """Print detailed help for one WHAT value or the parent verb.""" if len(what_values) != 1: return - CommandCli.print_command_or_verb_help( - registry, requested_verb, what_values[0] - ) + CommandCli.print_command_or_verb_help(registry, requested_verb, what_values[0]) __all__: list[str] = ["CommandCli"] diff --git a/scripts/lib/exec.py b/scripts/lib/exec.py index e08464a8f..b974d990b 100644 --- a/scripts/lib/exec.py +++ b/scripts/lib/exec.py @@ -44,13 +44,12 @@ def run_make( if CommandExecution.surface_validation_enabled(): if not CommandExecution.make_target_exists(target): return 2 - rendered = " ".join(( + " ".join(( "make", target, *make_args, *CommandExecution.make_variable_args(extra_env), )) - print(f"SURFACE-VALIDATE: {rendered}") return 0 return CommandExecution.run_process(( "make", @@ -105,8 +104,6 @@ def run_process( """Run one process through flext-cli and mirror captured output.""" result = u.Cli.run_raw(command, cwd=CommandRegistry.ROOT, env=extra_env) if result.failure: - if result.error: - print(result.error, file=sys.stderr) return 1 output = result.value if output.stdout: diff --git a/scripts/lib/surface_validation.py b/scripts/lib/surface_validation.py index bc92a6b15..1e1290458 100644 --- a/scripts/lib/surface_validation.py +++ b/scripts/lib/surface_validation.py @@ -25,17 +25,14 @@ def validate(dispatch_main: Callable[[tuple[str, ...]], int]) -> int: *SurfaceProbeRunner.run(SurfaceProbeRunner.build(registry), dispatch_main), ] if failures: - for failure in failures: - print(f"ERRO: {failure}") + for _failure in failures: + pass return 1 - command_count = sum( + sum( len(SurfaceValidator.registry_commands(registry, verb)) for verb in u.Tests.make_registry_verbs(registry) ) - verb_count = len(u.Tests.make_registry_verbs(registry)) - print( - f"Surface validated: {verb_count} verbs, {command_count} commands" - ) + len(u.Tests.make_registry_verbs(registry)) return 0 @staticmethod diff --git a/scripts/tests/test_registry_contract.py b/scripts/tests/test_registry_contract.py index ef11e0ccb..5ef5059e0 100644 --- a/scripts/tests/test_registry_contract.py +++ b/scripts/tests/test_registry_contract.py @@ -127,17 +127,13 @@ def test_main_reports_registry_errors(capsys: pytest.CaptureFixture[str]) -> Non assert "verb 'does-not-exist' unknown" in capsys.readouterr().err -def test_run_shell_mirrors_captured_output( - capsys: pytest.CaptureFixture[str], -) -> None: +def test_run_shell_mirrors_captured_output(capsys: pytest.CaptureFixture[str]) -> None: """Mirror child stdout and stderr while preserving its exit code.""" - code = Dispatch.run_shell( - ( - sys.executable, - "-c", - "import sys; print('child-out'); print('child-err', file=sys.stderr)", - ) - ) + code = Dispatch.run_shell(( + sys.executable, + "-c", + "import sys; print('child-out'); print('child-err', file=sys.stderr)", + )) captured = capsys.readouterr() assert code == 0 From 32b84ab7fc193bf78dd375c80e4e29eeae37e88e Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Wed, 29 Jul 2026 22:13:41 -0300 Subject: [PATCH 020/165] fixes --- flext-api | 2 +- flext-core | 2 +- flext-grpc | 2 +- flext-infra | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/flext-api b/flext-api index 1c3d565fd..6535f4035 160000 --- a/flext-api +++ b/flext-api @@ -1 +1 @@ -Subproject commit 1c3d565fd3a13400c4062d08b007296bb108e695 +Subproject commit 6535f40352fce439aaf3564985131576edd2df32 diff --git a/flext-core b/flext-core index 005e39860..bd7c3daad 160000 --- a/flext-core +++ b/flext-core @@ -1 +1 @@ -Subproject commit 005e3986010cc82bd500b098ed3b3940bc4b3f2e +Subproject commit bd7c3daadaf6335b1973bb6920b85bc7f135a6c6 diff --git a/flext-grpc b/flext-grpc index 7ab013edd..5320c94b2 160000 --- a/flext-grpc +++ b/flext-grpc @@ -1 +1 @@ -Subproject commit 7ab013edd330a04f1c38518b35bc38493f121d92 +Subproject commit 5320c94b21995c72efac3d428648e533cbef40c9 diff --git a/flext-infra b/flext-infra index 8cbeb40f3..00b244534 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 8cbeb40f3192aa9f85ac7a2a4ceb661f177dc80b +Subproject commit 00b244534658e674664115e63b51bda98a71eeb6 From bf557176548fbef9b4ba32cbe455a858c3d89395 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Wed, 29 Jul 2026 22:18:19 -0300 Subject: [PATCH 021/165] fixes --- flext-auth | 2 +- flext-cli | 2 +- flext-db-oracle | 2 +- flext-dbt-oracle | 2 +- flext-dbt-oracle-wms | 2 +- flext-infra | 2 +- flext-ldap | 2 +- flext-ldif | 2 +- flext-meltano | 2 +- flext-observability | 2 +- flext-oracle-oic | 2 +- flext-oracle-wms | 2 +- flext-plugin | 2 +- flext-quality | 2 +- flext-tap-ldap | 2 +- flext-tap-ldif | 2 +- flext-tap-oracle | 2 +- flext-tap-oracle-oic | 2 +- flext-tap-oracle-wms | 2 +- flext-target-ldap | 2 +- flext-target-ldif | 2 +- flext-target-oracle | 2 +- flext-target-oracle-oic | 2 +- flext-target-oracle-wms | 2 +- flext-tests | 2 +- flext-web | 2 +- 26 files changed, 26 insertions(+), 26 deletions(-) diff --git a/flext-auth b/flext-auth index f3e00088a..0f6100212 160000 --- a/flext-auth +++ b/flext-auth @@ -1 +1 @@ -Subproject commit f3e00088a762820dbc1c2c5572373e8682239583 +Subproject commit 0f6100212ae6684f31664e049126ac5dae7e75bb diff --git a/flext-cli b/flext-cli index 9c834db4c..dd2887a49 160000 --- a/flext-cli +++ b/flext-cli @@ -1 +1 @@ -Subproject commit 9c834db4c25755f6b17281f08fc734af849af7fa +Subproject commit dd2887a49289c03175406bde8d7d4a55fca2e53d diff --git a/flext-db-oracle b/flext-db-oracle index 80c780e83..e900e026d 160000 --- a/flext-db-oracle +++ b/flext-db-oracle @@ -1 +1 @@ -Subproject commit 80c780e8356aee91fd281d802484a43403596662 +Subproject commit e900e026dcd056b46c8d57103155f238937bfbfe diff --git a/flext-dbt-oracle b/flext-dbt-oracle index 6a51c3ad1..1694732d5 160000 --- a/flext-dbt-oracle +++ b/flext-dbt-oracle @@ -1 +1 @@ -Subproject commit 6a51c3ad104ca5fbe9a48cf09304d5069021d869 +Subproject commit 1694732d592f929e2439d5ee695d42c99a804e1e diff --git a/flext-dbt-oracle-wms b/flext-dbt-oracle-wms index c6dd42c48..82b4b67f7 160000 --- a/flext-dbt-oracle-wms +++ b/flext-dbt-oracle-wms @@ -1 +1 @@ -Subproject commit c6dd42c48820f390c645fbdd85c1ac6e56b9699b +Subproject commit 82b4b67f7c4d2a2c68947cff1f544368745dc355 diff --git a/flext-infra b/flext-infra index 00b244534..34c380591 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 00b244534658e674664115e63b51bda98a71eeb6 +Subproject commit 34c3805911b0462e099e2eda6ed8f8a504c3af17 diff --git a/flext-ldap b/flext-ldap index 5c0e7b449..b3ababd2f 160000 --- a/flext-ldap +++ b/flext-ldap @@ -1 +1 @@ -Subproject commit 5c0e7b449efdd2640bdb07463a20abcf61abfc18 +Subproject commit b3ababd2f1c23db2b3775ac160b2e6d1947bf80e diff --git a/flext-ldif b/flext-ldif index f426bbba8..06dda1284 160000 --- a/flext-ldif +++ b/flext-ldif @@ -1 +1 @@ -Subproject commit f426bbba894111c8f2d12de26388263a491701b1 +Subproject commit 06dda1284954d4d97658f6b56779569325e2dc85 diff --git a/flext-meltano b/flext-meltano index 59262ff3b..bbd9101df 160000 --- a/flext-meltano +++ b/flext-meltano @@ -1 +1 @@ -Subproject commit 59262ff3b5ee4bf0ead396b26e722870e4a00641 +Subproject commit bbd9101df76b7efa4a3cf77e1b6d6a9b7617b98a diff --git a/flext-observability b/flext-observability index 616175836..45e3ca241 160000 --- a/flext-observability +++ b/flext-observability @@ -1 +1 @@ -Subproject commit 61617583620e3ba137e7d81f875fdcdb3ff74448 +Subproject commit 45e3ca241d096ef3decf8acf370f335c234b77ff diff --git a/flext-oracle-oic b/flext-oracle-oic index d7b6107b5..07d40e7e2 160000 --- a/flext-oracle-oic +++ b/flext-oracle-oic @@ -1 +1 @@ -Subproject commit d7b6107b5fcc6d294d99e447410c0ef5363340b6 +Subproject commit 07d40e7e298241c350765f0d43ce4ac91cef0c32 diff --git a/flext-oracle-wms b/flext-oracle-wms index 13a1c7d8f..337023a9d 160000 --- a/flext-oracle-wms +++ b/flext-oracle-wms @@ -1 +1 @@ -Subproject commit 13a1c7d8fcbfc3360ffa6d0107eb172283aad903 +Subproject commit 337023a9d53f6c83c563801899ee904f7a4d6dd5 diff --git a/flext-plugin b/flext-plugin index b0f456240..d20dafa75 160000 --- a/flext-plugin +++ b/flext-plugin @@ -1 +1 @@ -Subproject commit b0f456240ba499f0d9f8465eee2455a15f46ee96 +Subproject commit d20dafa755d5a1fe5b8059350789660801d393de diff --git a/flext-quality b/flext-quality index 36d5d71f8..afd2e225b 160000 --- a/flext-quality +++ b/flext-quality @@ -1 +1 @@ -Subproject commit 36d5d71f889ebdafb95b2876d95935eda5942fb5 +Subproject commit afd2e225bbdd3e969225d8cbdfb5e141759064ac diff --git a/flext-tap-ldap b/flext-tap-ldap index bd32bd357..285ff08cc 160000 --- a/flext-tap-ldap +++ b/flext-tap-ldap @@ -1 +1 @@ -Subproject commit bd32bd357a8838c2dd5f0b3b1f4c59cdc81f4cd2 +Subproject commit 285ff08cc51efff7f9a314ad98315143af2dc217 diff --git a/flext-tap-ldif b/flext-tap-ldif index 86b636b15..40a7a2a7b 160000 --- a/flext-tap-ldif +++ b/flext-tap-ldif @@ -1 +1 @@ -Subproject commit 86b636b15c5f601a79f225505be1297e83b0e1c2 +Subproject commit 40a7a2a7bbe91bbc70ee74f9001ba3c58b2e91d5 diff --git a/flext-tap-oracle b/flext-tap-oracle index ee8e67852..db8dfdb44 160000 --- a/flext-tap-oracle +++ b/flext-tap-oracle @@ -1 +1 @@ -Subproject commit ee8e67852c63eee46e3e9f1d95bc341c396866c6 +Subproject commit db8dfdb4495155577a30d32861917241a51d1cd3 diff --git a/flext-tap-oracle-oic b/flext-tap-oracle-oic index b8d7c929b..a26d6c0e8 160000 --- a/flext-tap-oracle-oic +++ b/flext-tap-oracle-oic @@ -1 +1 @@ -Subproject commit b8d7c929bb35443bcb810d97cb8f27eefd5d772e +Subproject commit a26d6c0e8702a640b9b6b9357c777297486c5c35 diff --git a/flext-tap-oracle-wms b/flext-tap-oracle-wms index 3d45e0179..8d3310ea0 160000 --- a/flext-tap-oracle-wms +++ b/flext-tap-oracle-wms @@ -1 +1 @@ -Subproject commit 3d45e01797536812ef0558a721480a0073cb950f +Subproject commit 8d3310ea057f243d9124e2c845085829ced0ac9a diff --git a/flext-target-ldap b/flext-target-ldap index 627987ed0..60a5c7cc8 160000 --- a/flext-target-ldap +++ b/flext-target-ldap @@ -1 +1 @@ -Subproject commit 627987ed078f0460cb2cec94c059e64c394f3408 +Subproject commit 60a5c7cc8589bb8a00753172966ae0f5f056fc3a diff --git a/flext-target-ldif b/flext-target-ldif index 3b6134a1b..349748571 160000 --- a/flext-target-ldif +++ b/flext-target-ldif @@ -1 +1 @@ -Subproject commit 3b6134a1b76ea317c366b42be6aaefed20601526 +Subproject commit 349748571969b0031bac5b142a96277c074413a1 diff --git a/flext-target-oracle b/flext-target-oracle index d7589a685..972c7e5c0 160000 --- a/flext-target-oracle +++ b/flext-target-oracle @@ -1 +1 @@ -Subproject commit d7589a685822cf3f19e6f026c39ef7c75a37aeba +Subproject commit 972c7e5c0edc7df039ca371409332fb825fee925 diff --git a/flext-target-oracle-oic b/flext-target-oracle-oic index e9169f837..81bad6d16 160000 --- a/flext-target-oracle-oic +++ b/flext-target-oracle-oic @@ -1 +1 @@ -Subproject commit e9169f837831550ba201c0244981073c8f560a1f +Subproject commit 81bad6d16b5e7b2e2379a5d03202828da9445d00 diff --git a/flext-target-oracle-wms b/flext-target-oracle-wms index c336a59af..5adc9971b 160000 --- a/flext-target-oracle-wms +++ b/flext-target-oracle-wms @@ -1 +1 @@ -Subproject commit c336a59af06e063d3e62d696bae99ad9769467cb +Subproject commit 5adc9971b4cb8145d31be5b3d8bb2bdb97896c61 diff --git a/flext-tests b/flext-tests index 5b1f0071f..142d6b7a5 160000 --- a/flext-tests +++ b/flext-tests @@ -1 +1 @@ -Subproject commit 5b1f0071fd63c398086f6ea60cb33e6401ea96ba +Subproject commit 142d6b7a53e28343954766acc6f96dc34ae314e4 diff --git a/flext-web b/flext-web index 2f81d3fc7..a73a81882 160000 --- a/flext-web +++ b/flext-web @@ -1 +1 @@ -Subproject commit 2f81d3fc777c64b132dac60149878725e53aa9a1 +Subproject commit a73a81882b5a26b705fef7b93e549b2aa3a94190 From 7778bd798a3739a6c633da27087b440d3ffbec85 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Wed, 29 Jul 2026 23:08:25 -0300 Subject: [PATCH 022/165] fix(submodules): align flext-api gitlink to origin/0.12.0-dev --- flext-api | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-api b/flext-api index 6535f4035..39b829266 160000 --- a/flext-api +++ b/flext-api @@ -1 +1 @@ -Subproject commit 6535f40352fce439aaf3564985131576edd2df32 +Subproject commit 39b829266b04a3f4e271e0c20ea4b8f2251e2190 From 45c2fbdf4b11a9de74536bf95dcc69f352fa1050 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Wed, 29 Jul 2026 23:17:15 -0300 Subject: [PATCH 023/165] fixes --- .gitignore | 3 + .mise.toml | 3 + .vscode/settings.json | 18 ++- flext-api | 2 +- flext-core | 2 +- flext-infra | 2 +- flext-ldap | 2 +- flext-plugin | 2 +- flext-quality | 2 +- flext-tests | 2 +- libs/__init__.py | 78 ---------- src/flext/__init__.py | 66 +++++++-- uv.lock | 320 +++--------------------------------------- 13 files changed, 97 insertions(+), 405 deletions(-) delete mode 100644 libs/__init__.py diff --git a/.gitignore b/.gitignore index 275ac3e5d..195105537 100644 --- a/.gitignore +++ b/.gitignore @@ -348,10 +348,13 @@ __pyrefly_virtual__/ .venv.*/ *.egg-info/ build/ +context_test/ dist/ node_modules/ +rope_ws/ site/ target/ +tmp_flow_test/ .pyrefly_cache/ .tox/ .flext-deps/ diff --git a/.mise.toml b/.mise.toml index 4e0e8ee2d..def609c6b 100644 --- a/.mise.toml +++ b/.mise.toml @@ -12,3 +12,6 @@ taplo = "0.10.0" ast-grep = "0.45.0" gitleaks = "8.30.1" tokei = "14.0.0" + +"github:gastownhall/beads" = "latest" + diff --git a/.vscode/settings.json b/.vscode/settings.json index a490ff736..0cfcff74f 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -40,7 +40,11 @@ "**/site": true, "**/target": true, "**/.direnv": true, - "**/.hypothesis": true + "**/.hypothesis": true, + "**/.worktrees": true, + "**/context_test": true, + "**/rope_ws": true, + "**/tmp_flow_test": true }, "files.watcherExclude": { "**/__pycache__/**": true, @@ -80,7 +84,11 @@ "**/.turbo/**": true, "**/.venv.*/**": true, "**/target/**": true, - "**/.direnv/**": true + "**/.direnv/**": true, + "**/.worktrees/**": true, + "**/context_test/**": true, + "**/rope_ws/**": true, + "**/tmp_flow_test/**": true }, "git.autoRepositoryDetection": "subFolders", "git.detectSubmodules": true, @@ -189,7 +197,11 @@ "**/site": true, "**/target": true, "**/.direnv": true, - "**/.hypothesis": true + "**/.hypothesis": true, + "**/.worktrees": true, + "**/context_test": true, + "**/rope_ws": true, + "**/tmp_flow_test": true }, "shellcheck.useWorkspaceRootAsCwd": true, "terminal.integrated.env.linux": { diff --git a/flext-api b/flext-api index 39b829266..f0b7b208d 160000 --- a/flext-api +++ b/flext-api @@ -1 +1 @@ -Subproject commit 39b829266b04a3f4e271e0c20ea4b8f2251e2190 +Subproject commit f0b7b208d3125c7fecb7b34109b8cc26dd2c9f07 diff --git a/flext-core b/flext-core index bd7c3daad..f60774924 160000 --- a/flext-core +++ b/flext-core @@ -1 +1 @@ -Subproject commit bd7c3daadaf6335b1973bb6920b85bc7f135a6c6 +Subproject commit f60774924317652db27641e8cf5d4f86b29ab0e3 diff --git a/flext-infra b/flext-infra index 34c380591..8e6ef2a26 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 34c3805911b0462e099e2eda6ed8f8a504c3af17 +Subproject commit 8e6ef2a263f1a4f92b7c59b8757d2824723a3789 diff --git a/flext-ldap b/flext-ldap index b3ababd2f..1f651dd32 160000 --- a/flext-ldap +++ b/flext-ldap @@ -1 +1 @@ -Subproject commit b3ababd2f1c23db2b3775ac160b2e6d1947bf80e +Subproject commit 1f651dd32c77addb82bde543ed0cbd3a38fb8103 diff --git a/flext-plugin b/flext-plugin index d20dafa75..187118675 160000 --- a/flext-plugin +++ b/flext-plugin @@ -1 +1 @@ -Subproject commit d20dafa755d5a1fe5b8059350789660801d393de +Subproject commit 187118675d7533787fec25fcfaafec7b9b80594a diff --git a/flext-quality b/flext-quality index afd2e225b..5148e72da 160000 --- a/flext-quality +++ b/flext-quality @@ -1 +1 @@ -Subproject commit afd2e225bbdd3e969225d8cbdfb5e141759064ac +Subproject commit 5148e72daff7ab0f14d4acf988bab7727d40eb79 diff --git a/flext-tests b/flext-tests index 142d6b7a5..e1aa8c55f 160000 --- a/flext-tests +++ b/flext-tests @@ -1 +1 @@ -Subproject commit 142d6b7a53e28343954766acc6f96dc34ae314e4 +Subproject commit e1aa8c55f3b446cb26c7605f64156932d645bcd5 diff --git a/libs/__init__.py b/libs/__init__.py deleted file mode 100644 index 0b2438cc7..000000000 --- a/libs/__init__.py +++ /dev/null @@ -1,78 +0,0 @@ -# AUTO-GENERATED FILE — DO NOT EDIT MANUALLY. -# Regenerate with: make gen -# -"""Libs package.""" - -from __future__ import annotations - -import typing as _t - -from flext_core.lazy import install_lazy_exports - -if _t.TYPE_CHECKING: - import libs.versioning as _libs_versioning - - versioning = _libs_versioning - from flext_core.constants import FlextConstants as c - from flext_core.decorators import FlextDecorators as d - from flext_core.exceptions import FlextExceptions as e - from flext_core.handlers import FlextHandlers as h - from flext_core.mixins import FlextMixins as x - from flext_core.models import FlextModels as m - from flext_core.protocols import FlextProtocols as p - from flext_core.result import FlextResult as r - from flext_core.service import FlextService as s - from flext_core.typings import FlextTypes as t - from flext_core.utilities import FlextUtilities as u - from libs.versioning import ( - SEMVER_RE, - bump_version, - current_workspace_version, - parse_semver, - release_tag_from_branch, - replace_project_version, - ) -_LAZY_IMPORTS = { - "SEMVER_RE": ("libs.versioning", "SEMVER_RE"), - "bump_version": ("libs.versioning", "bump_version"), - "c": ("flext_core.constants", "FlextConstants"), - "current_workspace_version": ("libs.versioning", "current_workspace_version"), - "d": ("flext_core.decorators", "FlextDecorators"), - "e": ("flext_core.exceptions", "FlextExceptions"), - "h": ("flext_core.handlers", "FlextHandlers"), - "m": ("flext_core.models", "FlextModels"), - "p": ("flext_core.protocols", "FlextProtocols"), - "parse_semver": ("libs.versioning", "parse_semver"), - "r": ("flext_core.result", "FlextResult"), - "release_tag_from_branch": ("libs.versioning", "release_tag_from_branch"), - "replace_project_version": ("libs.versioning", "replace_project_version"), - "s": ("flext_core.service", "FlextService"), - "t": ("flext_core.typings", "FlextTypes"), - "u": ("flext_core.utilities", "FlextUtilities"), - "versioning": "libs.versioning", - "x": ("flext_core.mixins", "FlextMixins"), -} - -__all__: list[str] = [ - "SEMVER_RE", - "bump_version", - "c", - "current_workspace_version", - "d", - "e", - "h", - "m", - "p", - "parse_semver", - "r", - "release_tag_from_branch", - "replace_project_version", - "s", - "t", - "u", - "versioning", - "x", -] - - -install_lazy_exports(__name__, globals(), _LAZY_IMPORTS) diff --git a/src/flext/__init__.py b/src/flext/__init__.py index 64f7dd1b7..af47691e3 100644 --- a/src/flext/__init__.py +++ b/src/flext/__init__.py @@ -1,37 +1,68 @@ -# AUTO-GENERATED FILE — Regenerate with: make gen +# @generated AUTO-GENERATED FILE — Regenerate with: make gen """Flext package.""" from __future__ import annotations -import typing as _t +from typing import TYPE_CHECKING from flext_core.lazy import build_lazy_import_map, install_lazy_exports -if _t.TYPE_CHECKING: - from flext.constants import FlextRootConstants, c - from flext.models import FlextRootModels, m - from flext.protocols import FlextRootProtocols, p - from flext.typings import FlextRootTypes, t - from flext.utilities import FlextRootUtilities, u - from flext_core import d, e, h, r, x -_LAZY_IMPORTS = build_lazy_import_map({ +if TYPE_CHECKING: + from flext_core import d as d + from flext_core import e as e + from flext_core import h as h + from flext_core import r as r + from flext_core import s as s + from flext_core import x as x + + from .constants import FlextRootConstants as FlextRootConstants + + c: type[FlextRootConstants] + from .dev import FlextRootDev as FlextRootDev + from .docs import FlextRootDocs as FlextRootDocs + from .models import FlextRootModels as FlextRootModels + + m: type[FlextRootModels] + from .protocols import FlextRootProtocols as FlextRootProtocols + + p: type[FlextRootProtocols] + from .typings import FlextRootTypes as FlextRootTypes + + t: type[FlextRootTypes] + from .utilities import FlextRootUtilities as FlextRootUtilities + + u: type[FlextRootUtilities] + from .workspace import FlextRootWorkspace as FlextRootWorkspace + +_LAZY_MODULES: dict[str, tuple[str, ...]] = { ".constants": ("FlextRootConstants", "c"), + ".dev": ("FlextRootDev",), + ".docs": ("FlextRootDocs",), ".models": ("FlextRootModels", "m"), ".protocols": ("FlextRootProtocols", "p"), ".typings": ("FlextRootTypes", "t"), ".utilities": ("FlextRootUtilities", "u"), - "flext_core": ("d", "e", "h", "r", "x"), -}) + ".workspace": ("FlextRootWorkspace",), + "flext_core": ("d", "e", "h", "r", "s", "x"), +} + + +_LAZY_ALIAS_GROUPS: dict[str, tuple[tuple[str, str], ...]] = {} -install_lazy_exports(__name__, globals(), _LAZY_IMPORTS) +_LAZY_IMPORTS = build_lazy_import_map( + _LAZY_MODULES, alias_groups=_LAZY_ALIAS_GROUPS, sort_keys=False +) -__all__: list[str] = [ +_PUBLIC_EXPORTS: tuple[str, ...] = ( "FlextRootConstants", + "FlextRootDev", + "FlextRootDocs", "FlextRootModels", "FlextRootProtocols", "FlextRootTypes", "FlextRootUtilities", + "FlextRootWorkspace", "c", "d", "e", @@ -39,7 +70,12 @@ "m", "p", "r", + "s", "t", "u", "x", -] +) + +__all__: tuple[str, ...] = tuple(_PUBLIC_EXPORTS) + +install_lazy_exports(__name__, globals(), _LAZY_IMPORTS, public_exports=__all__) diff --git a/uv.lock b/uv.lock index e65f5d1c5..b434701b7 100644 --- a/uv.lock +++ b/uv.lock @@ -1671,88 +1671,12 @@ dependencies = [ { name = "websockets" }, ] -[package.optional-dependencies] -dev = [ - { name = "autoflake" }, - { name = "bandit" }, - { name = "black" }, - { name = "blacken-docs" }, - { name = "codespell" }, - { name = "deptry" }, - { name = "django-stubs" }, - { name = "factory-boy" }, - { name = "faker" }, - { name = "hypothesis" }, - { name = "isort" }, - { name = "matplotlib-stubs" }, - { name = "mkdocs" }, - { name = "mkdocs-awesome-pages-plugin" }, - { name = "mkdocs-encryptcontent-plugin" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-get-deps" }, - { name = "mkdocs-git-revision-date-localized-plugin" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-macros-plugin" }, - { name = "mkdocs-material" }, - { name = "mkdocs-material-extensions" }, - { name = "mkdocs-mermaid2-plugin" }, - { name = "mkdocs-minify-plugin" }, - { name = "mkdocs-print-site-plugin" }, - { name = "mkdocs-redirects" }, - { name = "mkdocs-section-index" }, - { name = "mkdocs-versioning" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "pip-audit" }, - { name = "pre-commit" }, - { name = "pylint" }, - { name = "pyrefly" }, - { name = "pytest" }, - { name = "pytest-benchmark" }, - { name = "pytest-clarity" }, - { name = "pytest-codeblocks" }, - { name = "pytest-cov" }, - { name = "pytest-deadfixtures" }, - { name = "pytest-env" }, - { name = "pytest-markdown-docs" }, - { name = "pytest-mock" }, - { name = "pytest-randomly" }, - { name = "pytest-sugar" }, - { name = "pytest-timeout" }, - { name = "pytest-xdist" }, - { name = "pyupgrade" }, - { name = "radon" }, - { name = "ruff" }, - { name = "types-cachetools" }, - { name = "types-cffi" }, - { name = "types-click" }, - { name = "types-defusedxml" }, - { name = "types-docker" }, - { name = "types-flask" }, - { name = "types-jsonschema" }, - { name = "types-ldap3" }, - { name = "types-paramiko" }, - { name = "types-protobuf" }, - { name = "types-psutil" }, - { name = "types-psycopg2" }, - { name = "types-pyasn1" }, - { name = "types-pyopenssl" }, - { name = "types-python-dateutil" }, - { name = "types-pyyaml" }, - { name = "types-redis" }, - { name = "types-requests" }, - { name = "types-setuptools" }, - { name = "types-tabulate" }, - { name = "types-toml" }, - { name = "vulture" }, - { name = "yamlfix" }, -] - [package.dev-dependencies] codegen = [ { name = "flext-infra" }, ] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -1784,10 +1708,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -1831,99 +1757,26 @@ dev = [ [package.metadata] requires-dist = [ - { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, - { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, - { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, - { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, { name = "cbor2", specifier = ">=6.0.1" }, - { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, - { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, - { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, - { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, - { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, { name = "fastapi", specifier = ">=0.136.1" }, { name = "flext-core", editable = "flext-core" }, { name = "flext-web", editable = "flext-web" }, { name = "gql", specifier = ">=4.0.0" }, { name = "httpx", specifier = ">=0.28.1" }, { name = "httpx-sse", specifier = ">=0.4.3" }, - { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, - { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, - { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, - { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, - { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, - { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, { name = "msgpack", specifier = ">=1.1.2" }, { name = "orjson", specifier = ">=3.11.8" }, - { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, - { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, { name = "pydantic", specifier = ">=2.13.3" }, { name = "pydantic-core", specifier = ">=2.46.3" }, { name = "pydantic-settings", specifier = ">=2.14.0" }, - { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, - { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, - { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, - { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, - { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, - { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, - { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, - { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, - { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, - { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, - { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, - { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, - { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, - { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, - { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, - { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, - { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, - { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, - { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, - { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, - { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, - { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, - { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, { name = "typing-extensions", specifier = ">=4.15.0" }, - { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, { name = "websockets", specifier = ">=16.0" }, - { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, ] -provides-extras = ["dev"] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -1955,10 +1808,12 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -4631,6 +4486,7 @@ version = "0.12.0rc0" source = { editable = "flext-infra" } dependencies = [ { name = "defusedxml" }, + { name = "filelock" }, { name = "flext-cli" }, { name = "flext-core" }, { name = "gitpython" }, @@ -4725,6 +4581,7 @@ dev = [ [package.metadata] requires-dist = [ { name = "defusedxml", specifier = ">=0.7.1" }, + { name = "filelock", specifier = ">=3.16" }, { name = "flext-cli", editable = "flext-cli" }, { name = "flext-core", editable = "flext-core" }, { name = "gitpython", specifier = ">=3.1.49" }, @@ -4832,88 +4689,12 @@ dependencies = [ { name = "structlog" }, ] -[package.optional-dependencies] -dev = [ - { name = "autoflake" }, - { name = "bandit" }, - { name = "black" }, - { name = "blacken-docs" }, - { name = "codespell" }, - { name = "deptry" }, - { name = "django-stubs" }, - { name = "factory-boy" }, - { name = "faker" }, - { name = "hypothesis" }, - { name = "isort" }, - { name = "matplotlib-stubs" }, - { name = "mkdocs" }, - { name = "mkdocs-awesome-pages-plugin" }, - { name = "mkdocs-encryptcontent-plugin" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-get-deps" }, - { name = "mkdocs-git-revision-date-localized-plugin" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-macros-plugin" }, - { name = "mkdocs-material" }, - { name = "mkdocs-material-extensions" }, - { name = "mkdocs-mermaid2-plugin" }, - { name = "mkdocs-minify-plugin" }, - { name = "mkdocs-print-site-plugin" }, - { name = "mkdocs-redirects" }, - { name = "mkdocs-section-index" }, - { name = "mkdocs-versioning" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "pip-audit" }, - { name = "pre-commit" }, - { name = "pylint" }, - { name = "pyrefly" }, - { name = "pytest" }, - { name = "pytest-benchmark" }, - { name = "pytest-clarity" }, - { name = "pytest-codeblocks" }, - { name = "pytest-cov" }, - { name = "pytest-deadfixtures" }, - { name = "pytest-env" }, - { name = "pytest-markdown-docs" }, - { name = "pytest-mock" }, - { name = "pytest-randomly" }, - { name = "pytest-sugar" }, - { name = "pytest-timeout" }, - { name = "pytest-xdist" }, - { name = "pyupgrade" }, - { name = "radon" }, - { name = "ruff" }, - { name = "types-cachetools" }, - { name = "types-cffi" }, - { name = "types-click" }, - { name = "types-defusedxml" }, - { name = "types-docker" }, - { name = "types-flask" }, - { name = "types-jsonschema" }, - { name = "types-ldap3" }, - { name = "types-paramiko" }, - { name = "types-protobuf" }, - { name = "types-psutil" }, - { name = "types-psycopg2" }, - { name = "types-pyasn1" }, - { name = "types-pyopenssl" }, - { name = "types-python-dateutil" }, - { name = "types-pyyaml" }, - { name = "types-redis" }, - { name = "types-requests" }, - { name = "types-setuptools" }, - { name = "types-tabulate" }, - { name = "types-toml" }, - { name = "vulture" }, - { name = "yamlfix" }, -] - [package.dev-dependencies] codegen = [ { name = "flext-infra" }, ] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -4945,10 +4726,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -4971,6 +4754,7 @@ dev = [ { name = "types-defusedxml" }, { name = "types-docker" }, { name = "types-flask" }, + { name = "types-jsonschema" }, { name = "types-ldap3" }, { name = "types-paramiko" }, { name = "types-protobuf" }, @@ -4986,98 +4770,26 @@ dev = [ { name = "types-tabulate" }, { name = "types-toml" }, { name = "vulture" }, + { name = "yamlfix" }, ] [package.metadata] requires-dist = [ - { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, - { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, - { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, - { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, - { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, { name = "cryptography", specifier = ">=47.0.0" }, - { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, - { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, - { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, - { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, { name = "flext-cli", editable = "flext-cli" }, { name = "flext-core", editable = "flext-core" }, { name = "flext-ldif", editable = "flext-ldif" }, - { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, - { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, { name = "ldap3", specifier = ">=2.10.2rc4" }, - { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, - { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, - { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, - { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, - { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, - { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, - { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, { name = "pydantic", specifier = ">=2.13.3" }, { name = "pydantic-core", specifier = ">=2.46.3" }, { name = "pydantic-settings", specifier = ">=2.14.0" }, - { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, - { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, - { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, - { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, - { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, - { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, - { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, - { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, - { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, - { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, - { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, - { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, { name = "structlog", specifier = ">=25.5.0" }, - { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, - { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, - { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, - { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, - { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, - { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, - { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, - { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, - { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, - { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, - { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, - { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, - { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, ] -provides-extras = ["dev"] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -5109,10 +4821,12 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -5135,6 +4849,7 @@ dev = [ { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, @@ -5150,6 +4865,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] From a8686b2056fc014c5136f43b7e714ad569c00d7d Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Wed, 29 Jul 2026 23:25:53 -0300 Subject: [PATCH 024/165] chore(submodules): align flext-infra gitlink to current 0.12.0-dev HEAD --- flext-infra | 2 +- libs/versioning.py | 91 ---------------------------------------------- 2 files changed, 1 insertion(+), 92 deletions(-) delete mode 100644 libs/versioning.py diff --git a/flext-infra b/flext-infra index 8e6ef2a26..2a3f3b4c6 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 8e6ef2a263f1a4f92b7c59b8757d2824723a3789 +Subproject commit 2a3f3b4c6c58e0f21b6b3f3b50a82db034cabf2c diff --git a/libs/versioning.py b/libs/versioning.py deleted file mode 100644 index f26a2558f..000000000 --- a/libs/versioning.py +++ /dev/null @@ -1,91 +0,0 @@ -"""Semantic versioning utilities for FLEXT workspace releases.""" - -from __future__ import annotations - -import tomllib -from typing import TYPE_CHECKING - -import tomlkit -from tomlkit.items import Table - -from flext_core import c - -if TYPE_CHECKING: - from pathlib import Path - -SEMVER_RE = c.PATTERN_SEMVER_RE - - -def parse_semver(version: str) -> tuple[int, int, int]: - """Parse a semver string into (major, minor, patch) tuple.""" - match = SEMVER_RE.fullmatch(version) - if not match: - msg = f"invalid semver version: {version}" - raise ValueError(msg) - return ( - int(match.group("major")), - int(match.group("minor")), - int(match.group("patch")), - ) - - -def bump_version(current_version: str, bump: str) -> str: - """Bump a semver version string by the specified component.""" - major, minor, patch = parse_semver(current_version) - if bump == "major": - return f"{major + 1}.0.0" - if bump == "minor": - return f"{major}.{minor + 1}.0" - if bump == "patch": - return f"{major}.{minor}.{patch + 1}" - msg = f"unsupported bump: {bump}" - raise ValueError(msg) - - -def release_tag_from_branch(branch: str) -> str | None: - """Extract release tag from branch name, or None.""" - version = branch.removesuffix("-dev") - if SEMVER_RE.fullmatch(version): - return f"v{version}" - release_prefix = "release/" - if not branch.startswith(release_prefix): - return None - release_version = branch.removeprefix(release_prefix) - if not SEMVER_RE.fullmatch(release_version): - return None - return f"v{release_version}" - - -def current_workspace_version(root: Path) -> str: - """Read current workspace version from root pyproject.toml.""" - pyproject = root / "pyproject.toml" - raw_data = tomllib.loads(pyproject.read_text(encoding="utf-8")) - data_map = dict(raw_data.items()) - project_value = data_map.get("project") - if not isinstance(project_value, dict): - msg = "unable to detect [project] section from pyproject.toml" - raise TypeError(msg) - project_map = {str(key): value for key, value in project_value.items()} - version_value = project_map.get("version") - if not isinstance(version_value, str) or not version_value: - msg = "unable to detect version from pyproject.toml" - raise RuntimeError(msg) - return version_value.removesuffix("-dev") - - -def replace_project_version(content: str, version: str) -> tuple[str, bool]: - """Replace project version in TOML content string.""" - raw_document = tomlkit.parse(content) - project_value = raw_document.get("project") - if not isinstance(project_value, Table): - return content, False - project_map = {str(key): value for key, value in project_value.items()} - current_value = project_map.get("version") - if not isinstance(current_value, str) or not current_value: - return content, False - _ = parse_semver(current_value.removesuffix("-dev")) - if current_value == version: - return content, False - project_value["version"] = version - updated = tomlkit.dumps(raw_document) - return updated, updated != content From 34ffaecfcead98bc6643f43cbc58ada6927ba8bb Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Wed, 29 Jul 2026 23:27:56 -0300 Subject: [PATCH 025/165] fixup: restore libs/versioning.py from origin/0.12.0-dev --- libs/versioning.py | 91 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 libs/versioning.py diff --git a/libs/versioning.py b/libs/versioning.py new file mode 100644 index 000000000..f26a2558f --- /dev/null +++ b/libs/versioning.py @@ -0,0 +1,91 @@ +"""Semantic versioning utilities for FLEXT workspace releases.""" + +from __future__ import annotations + +import tomllib +from typing import TYPE_CHECKING + +import tomlkit +from tomlkit.items import Table + +from flext_core import c + +if TYPE_CHECKING: + from pathlib import Path + +SEMVER_RE = c.PATTERN_SEMVER_RE + + +def parse_semver(version: str) -> tuple[int, int, int]: + """Parse a semver string into (major, minor, patch) tuple.""" + match = SEMVER_RE.fullmatch(version) + if not match: + msg = f"invalid semver version: {version}" + raise ValueError(msg) + return ( + int(match.group("major")), + int(match.group("minor")), + int(match.group("patch")), + ) + + +def bump_version(current_version: str, bump: str) -> str: + """Bump a semver version string by the specified component.""" + major, minor, patch = parse_semver(current_version) + if bump == "major": + return f"{major + 1}.0.0" + if bump == "minor": + return f"{major}.{minor + 1}.0" + if bump == "patch": + return f"{major}.{minor}.{patch + 1}" + msg = f"unsupported bump: {bump}" + raise ValueError(msg) + + +def release_tag_from_branch(branch: str) -> str | None: + """Extract release tag from branch name, or None.""" + version = branch.removesuffix("-dev") + if SEMVER_RE.fullmatch(version): + return f"v{version}" + release_prefix = "release/" + if not branch.startswith(release_prefix): + return None + release_version = branch.removeprefix(release_prefix) + if not SEMVER_RE.fullmatch(release_version): + return None + return f"v{release_version}" + + +def current_workspace_version(root: Path) -> str: + """Read current workspace version from root pyproject.toml.""" + pyproject = root / "pyproject.toml" + raw_data = tomllib.loads(pyproject.read_text(encoding="utf-8")) + data_map = dict(raw_data.items()) + project_value = data_map.get("project") + if not isinstance(project_value, dict): + msg = "unable to detect [project] section from pyproject.toml" + raise TypeError(msg) + project_map = {str(key): value for key, value in project_value.items()} + version_value = project_map.get("version") + if not isinstance(version_value, str) or not version_value: + msg = "unable to detect version from pyproject.toml" + raise RuntimeError(msg) + return version_value.removesuffix("-dev") + + +def replace_project_version(content: str, version: str) -> tuple[str, bool]: + """Replace project version in TOML content string.""" + raw_document = tomlkit.parse(content) + project_value = raw_document.get("project") + if not isinstance(project_value, Table): + return content, False + project_map = {str(key): value for key, value in project_value.items()} + current_value = project_map.get("version") + if not isinstance(current_value, str) or not current_value: + return content, False + _ = parse_semver(current_value.removesuffix("-dev")) + if current_value == version: + return content, False + project_value["version"] = version + updated = tomlkit.dumps(raw_document) + return updated, updated != content From c8f63c6b1a40ae457535dddc1e6573152fc7d0cd Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 03:19:22 -0300 Subject: [PATCH 026/165] fix(flext-root): resolve Makefile merge conflict and unpin uv version - Resolve leftover HEAD/shared/mro-z89e-export conflict in _builtin_setup_submodules. - Remove hardcoded UV_VERSION from Makefile; let mise install latest uv. - Remove uv pin from .mise.toml so workspace follows uv.lock/constraint. - Change pyproject constraint from uv==0.11.32 to uv>=0.11.0. - Update uv.lock to uv 0.12.0. --- .mise.toml | 4 +- Makefile | 153 +++++++++++++++++++---------- pyproject.toml | 255 ++++++++++++++++++++++++++----------------------- uv.lock | 5 + 4 files changed, 242 insertions(+), 175 deletions(-) diff --git a/.mise.toml b/.mise.toml index def609c6b..f44dca988 100644 --- a/.mise.toml +++ b/.mise.toml @@ -12,6 +12,4 @@ taplo = "0.10.0" ast-grep = "0.45.0" gitleaks = "8.30.1" tokei = "14.0.0" - -"github:gastownhall/beads" = "latest" - +"go:github.com/steveyegge/beads/cmd/bd" = "1.1.2" diff --git a/Makefile b/Makefile index da5236476..8c5451e41 100644 --- a/Makefile +++ b/Makefile @@ -14,6 +14,7 @@ WORKSPACE_ROOT_REL := . WORKSPACE_MEMBERS := flext-api flext-auth flext-cli flext-core flext-db-oracle flext-dbt-ldap flext-dbt-ldif flext-dbt-oracle flext-dbt-oracle-wms flext-grpc flext-infra flext-ldap flext-ldif flext-meltano flext-observability flext-oracle-oic flext-oracle-wms flext-plugin flext-quality flext-tap-ldap flext-tap-ldif flext-tap-oracle flext-tap-oracle-oic flext-tap-oracle-wms flext-target-ldap flext-target-ldif flext-target-oracle flext-target-oracle-oic flext-target-oracle-wms flext-tests flext-web WORKSPACE_EDITABLES := $(PROJECT_NAME):. flext-api:flext-api flext-auth:flext-auth flext-cli:flext-cli flext-core:flext-core flext-db-oracle:flext-db-oracle flext-dbt-ldap:flext-dbt-ldap flext-dbt-ldif:flext-dbt-ldif flext-dbt-oracle:flext-dbt-oracle flext-dbt-oracle-wms:flext-dbt-oracle-wms flext-grpc:flext-grpc flext-infra:flext-infra flext-ldap:flext-ldap flext-ldif:flext-ldif flext-meltano:flext-meltano flext-observability:flext-observability flext-oracle-oic:flext-oracle-oic flext-oracle-wms:flext-oracle-wms flext-plugin:flext-plugin flext-quality:flext-quality flext-tap-ldap:flext-tap-ldap flext-tap-ldif:flext-tap-ldif flext-tap-oracle:flext-tap-oracle flext-tap-oracle-oic:flext-tap-oracle-oic flext-tap-oracle-wms:flext-tap-oracle-wms flext-target-ldap:flext-target-ldap flext-target-ldif:flext-target-ldif flext-target-oracle:flext-target-oracle flext-target-oracle-oic:flext-target-oracle-oic flext-target-oracle-wms:flext-target-oracle-wms flext-tests:flext-tests flext-web:flext-web UV_LINK_MODE := copy +MISE_VERSION := 2026.7.16 APPLY ?= N ARGS ?= @@ -43,17 +44,14 @@ WORKSPACE ?= $(PROJECT_ROOT) PUBLIC_VERBS := help setup deps build check test fmt run status docs clean release codegen worktree CHECK_GATES_ALLOWED := lint format pyrefly mypy pyright security markdown smells CHECK_GATES_DEFAULT := lint format pyrefly mypy pyright security markdown smells -DOCS_PHASES := generate fix audit build validate +DOCS_ACTIONS := generate fix audit build validate SERIALIZED_VERBS := check test codegen SERIALIZED_TARGETS := _serialized_check _serialized_test _serialized_codegen RUFF_PATHS := $(PROJECT_ROOT)/src $(PROJECT_ROOT)/tests MYPY_PATHS := $(PROJECT_ROOT)/src $(PROJECT_ROOT)/tests -UV ?= uv -UV_REQUESTED := $(UV) CALLER_PATH := $(PATH) CALLER_VIRTUAL_ENV := $(patsubst %/,%,$(VIRTUAL_ENV)) FLEXT_INFRA_BOOTSTRAP_REQUIREMENT := flext-infra @ git+https://github.com/flext-sh/flext-infra.git@0.12.0-dev -FLEXT_INFRA_BOOTSTRAP_TOOL_ARGS := --with "pyrefly>=1.1.1" --with "ruff>=0.15.12" FLEXT_INFRA_SOURCE_ROOT_REL := flext-infra # === MYPY RESOURCE LIMIT === @@ -74,7 +72,7 @@ _DEFAULT_test := all _DEFAULT_fmt := check _DEFAULT_run := default _DEFAULT_status := diagnostics -_DEFAULT_docs := check +_DEFAULT_docs := all _DEFAULT_clean := generated _DEFAULT_release := status _DEFAULT_codegen := check @@ -102,8 +100,17 @@ RUNTIME_ROOT := $(PROJECT_ROOT) endif RUNTIME_VENV := $(RUNTIME_ROOT)/.venv +ifeq ($(MAKE_PROFILE),standalone) +TOOLS_BIN := $(PROJECT_ROOT)/.bin +MISE_DATA_DIR := $(PROJECT_ROOT)/.tools +else +TOOLS_BIN := $(RUNTIME_ROOT)/.bin +MISE_DATA_DIR := $(RUNTIME_ROOT)/.tools +endif +MISE_SHIMS := $(MISE_DATA_DIR)/shims FLEXT_INFRA_RUNTIME_ROOT := $(if $(filter $(MAKEFILE_ROOT),$(PROJECT_ROOT)),$(RUNTIME_ROOT),$(MAKEFILE_ROOT)) ifeq ($(OS),Windows_NT) +MISE ?= $(TOOLS_BIN)/mise.exe RUNTIME_BIN := $(RUNTIME_VENV)/Scripts RUNTIME_PYTHON := $(RUNTIME_BIN)/python.exe FLEXT_INFRA_RUNTIME_PYTHON := $(FLEXT_INFRA_RUNTIME_ROOT)/.venv/Scripts/python.exe @@ -111,6 +118,7 @@ NORMALIZED_CALLER_PATH := $(shell cygpath --path "$(CALLER_PATH)" 2>/dev/null) NORMALIZED_CALLER_VIRTUAL_ENV := $(shell cygpath --unix "$(CALLER_VIRTUAL_ENV)" 2>/dev/null) CALLER_VIRTUAL_ENV_BIN := $(NORMALIZED_CALLER_VIRTUAL_ENV)/Scripts else +MISE ?= $(TOOLS_BIN)/mise RUNTIME_BIN := $(RUNTIME_VENV)/bin RUNTIME_PYTHON := $(RUNTIME_BIN)/python FLEXT_INFRA_RUNTIME_PYTHON := $(FLEXT_INFRA_RUNTIME_ROOT)/.venv/bin/python @@ -126,24 +134,20 @@ ifeq ($(SANITIZED_CALLER_PATH),$(CALLER_VIRTUAL_ENV_BIN)) SANITIZED_CALLER_PATH := endif endif -RESOLVED_UV := $(shell PATH="$(SANITIZED_CALLER_PATH)" command -v "$(UV_REQUESTED)" 2>/dev/null) -ifeq ($(strip $(RESOLVED_UV)),) -$(error Required uv executable not found: $(UV_REQUESTED)) -endif -override UV := $(RESOLVED_UV) +override UV := $(MISE_SHIMS)/uv override FLEXT_INFRA_PYTHON := $(FLEXT_INFRA_RUNTIME_PYTHON) override UV_PROJECT := $(RUNTIME_ROOT) override UV_PROJECT_ENVIRONMENT := $(RUNTIME_VENV) override VIRTUAL_ENV := $(RUNTIME_VENV) -override PATH := $(RUNTIME_BIN):$(SANITIZED_CALLER_PATH) -export FLEXT_INFRA_PYTHON UV UV_PROJECT UV_PROJECT_ENVIRONMENT VIRTUAL_ENV PATH +override PATH := $(RUNTIME_BIN):$(TOOLS_BIN):$(MISE_SHIMS):$(SANITIZED_CALLER_PATH) +export FLEXT_INFRA_PYTHON MISE_DATA_DIR UV UV_PROJECT UV_PROJECT_ENVIRONMENT VIRTUAL_ENV PATH ifneq ($(strip $(FLEXT_INFRA_SOURCE_ROOT_REL)),) FLEXT_INFRA_SOURCE_ROOT := $(abspath $(PROJECT_ROOT)/$(FLEXT_INFRA_SOURCE_ROOT_REL)) -FLEXT_INFRA_BOOTSTRAP := env -u PYTHONPATH -u MYPYPATH -u VIRTUAL_ENV -u UV_PROJECT -u UV_PROJECT_ENVIRONMENT PATH="$(SANITIZED_CALLER_PATH)" $(UV) run --no-project --with-editable "$(FLEXT_INFRA_SOURCE_ROOT)" $(FLEXT_INFRA_BOOTSTRAP_TOOL_ARGS) python -m flext_infra +FLEXT_INFRA_BOOTSTRAP := env -u PYTHONPATH -u MYPYPATH -u VIRTUAL_ENV -u UV_PROJECT -u UV_PROJECT_ENVIRONMENT PATH="$(TOOLS_BIN):$(MISE_SHIMS):$(SANITIZED_CALLER_PATH)" $(UV) run --no-project --with-editable "$(FLEXT_INFRA_SOURCE_ROOT)" python -m flext_infra else FLEXT_INFRA_SOURCE_ROOT := -FLEXT_INFRA_BOOTSTRAP := env -u PYTHONPATH -u MYPYPATH -u VIRTUAL_ENV -u UV_PROJECT -u UV_PROJECT_ENVIRONMENT PATH="$(SANITIZED_CALLER_PATH)" $(UV) run --no-project --with "$(FLEXT_INFRA_BOOTSTRAP_REQUIREMENT)" $(FLEXT_INFRA_BOOTSTRAP_TOOL_ARGS) python -m flext_infra +FLEXT_INFRA_BOOTSTRAP := env -u PYTHONPATH -u MYPYPATH -u VIRTUAL_ENV -u UV_PROJECT -u UV_PROJECT_ENVIRONMENT PATH="$(TOOLS_BIN):$(MISE_SHIMS):$(SANITIZED_CALLER_PATH)" $(UV) run --no-project --with "$(FLEXT_INFRA_BOOTSTRAP_REQUIREMENT)" python -m flext_infra endif ifeq ($(MAKE_PROFILE),workspace-root) @@ -173,7 +177,7 @@ ORCHESTRATED_VERBS := build check clean docs scan test val UV_RUN := env -u PYTHONPATH -u MYPYPATH $(UV) run --project "$(RUNTIME_ROOT)" --no-sync PROJECT_INFRA_PYTHONPATH ?= $(MAKEFILE_ROOT)/src -PROJECT_FLEXT_INFRA := test -x "$(FLEXT_INFRA_PYTHON)" || { printf 'ERROR: FLEXT_INFRA_PYTHON must name an executable managed Python\n' >&2; exit 2; }; env -u PYTHONPATH -u MYPYPATH -u VIRTUAL_ENV -u UV_PROJECT -u UV_PROJECT_ENVIRONMENT PATH="$(dir $(FLEXT_INFRA_PYTHON)):$(SANITIZED_CALLER_PATH)" PYTHONPATH="$(PROJECT_INFRA_PYTHONPATH)" $(FLEXT_INFRA_PYTHON) -m flext_infra +PROJECT_FLEXT_INFRA := test -x "$(FLEXT_INFRA_PYTHON)" || { printf 'ERROR: FLEXT_INFRA_PYTHON must name an executable managed Python\n' >&2; exit 2; }; env -u PYTHONPATH -u MYPYPATH -u VIRTUAL_ENV -u UV_PROJECT -u UV_PROJECT_ENVIRONMENT PATH="$(dir $(FLEXT_INFRA_PYTHON)):$(MISE_SHIMS):$(SANITIZED_CALLER_PATH)" PYTHONPATH="$(PROJECT_INFRA_PYTHONPATH)" $(FLEXT_INFRA_PYTHON) -m flext_infra # mro-j47u (codex): scaffold dev tools live in the validated optional dev # profile; a fresh project must create its lock before later check-mode locks. UV_SYNC_FLAGS := --all-packages --all-extras --all-groups @@ -199,7 +203,6 @@ _BUILTIN_HANDLERS := \ _builtin_fmt_apply \ _builtin_run_default \ _builtin_status_diagnostics \ - _builtin_docs_check \ _builtin_docs_all \ _builtin_docs_generate \ _builtin_docs_fix \ @@ -210,7 +213,6 @@ _builtin_clean_generated \ _builtin_release_status \ _builtin_codegen_check \ _builtin_codegen_apply \ - _builtin_codegen_init \ _builtin_worktree_list \ _builtin_worktree_add \ _builtin_worktree_update \ @@ -332,7 +334,7 @@ _builtin_help_usage: - @printf ' %-10s WHAT=%s\n' 'docs' 'check'; + @printf ' %-10s WHAT=%s\n' 'docs' 'all|generate|fix|audit|build|validate'; @@ -369,13 +371,63 @@ _builtin_help_usage: # reconciler validates every initialized checkout before mutation, initializes # only missing modules, and preserves declared branches that fix forward beyond # the recorded gitlink. +.PHONY: _builtin_setup_tools + +_builtin_setup_tools: + @set -eu; \ + tools_bin="$(TOOLS_BIN)"; \ + mise="$(MISE)"; \ + mise_data_dir="$(MISE_DATA_DIR)"; \ + mise_version="$(MISE_VERSION)"; \ + current=""; \ + if [ -x "$$mise" ]; then \ + current=$$("$$mise" --version 2>/dev/null | cut -d ' ' -f 1 || true); \ + fi; \ + if [ "$$current" != "$$mise_version" ]; then \ + command -v curl >/dev/null 2>&1 || { \ + printf 'ERROR: make setup requires curl to bootstrap project binaries\n' >&2; \ + exit 2; \ + }; \ + case "$$(uname -s)" in \ + Linux*) os=linux ;; \ + Darwin*) os=macos ;; \ + MINGW*|MSYS*|CYGWIN*|Windows_NT) os=windows ;; \ + *) printf 'ERROR: unsupported bootstrap OS: %s\n' "$$(uname -s)" >&2; exit 2 ;; \ + esac; \ + case "$$(uname -m)" in \ + x86_64|amd64) arch=x64 ;; \ + aarch64|arm64) arch=arm64 ;; \ + *) printf 'ERROR: unsupported bootstrap architecture: %s\n' "$$(uname -m)" >&2; exit 2 ;; \ + esac; \ + suffix="$$os-$$arch"; extension=""; \ + if [ "$$os" = linux ] && ldd --version 2>&1 | grep -qi musl; then \ + suffix="$$suffix-musl"; \ + fi; \ + if [ "$$os" = windows ]; then extension=.exe; fi; \ + asset="mise-v$$mise_version-$$suffix$$extension"; \ + url="https://github.com/jdx/mise/releases/download/v$$mise_version/$$asset"; \ + mkdir -p "$$tools_bin" "$$mise_data_dir"; \ + tmp="$$mise.download"; \ + if ! curl -fsSL "$$url" -o "$$tmp"; then rm -f "$$tmp"; exit 2; fi; \ + chmod +x "$$tmp"; \ + mv "$$tmp" "$$mise"; \ + current=$$("$$mise" --version | cut -d ' ' -f 1); \ + [ "$$current" = "$$mise_version" ] || { \ + printf 'ERROR: mise bootstrap version mismatch: expected %s, got %s\n' \ + "$$mise_version" "$$current" >&2; \ + exit 2; \ + }; \ + fi; \ + $(MISE) install --yes uv + .PHONY: _builtin_setup_submodules _builtin_setup_submodules: @set -eu; \ root="$(PROJECT_ROOT)"; \ - selected="$(REQUESTED_PROJECTS)"; \ + selected=""; \ if [ ! -f "$$root/.gitmodules" ]; then exit 0; fi; \ + git -C "$(PROJECT_ROOT)" submodule update --init --recursive; \ setup_selected() { \ candidate="$$1"; \ if [ -z "$$selected" ]; then return 0; fi; \ @@ -448,7 +500,7 @@ _builtin_setup_submodules: git -C "$$superproject" submodule sync --quiet -- "$$child_path"; \ state=$$(git -C "$$superproject" submodule status -- "$$child_path"); \ case "$$state" in \ - -*) git -C "$$superproject" submodule update --init -- "$$child_path" ;; \ + -*) git -C "$$superproject" submodule update --init --recursive -- "$$child_path" ;; \ esac; \ initialize_declared_submodules "$$superproject/$$child_path"; \ done; \ @@ -506,26 +558,34 @@ _builtin_require_environment: exit 2; \ fi -_builtin_setup_conform: _builtin_setup_submodules +ifeq ($(MAKE_PROFILE),workspace-root) +_builtin_setup_topology: _builtin_setup_tools + @$(FLEXT_INFRA_BOOTSTRAP) codegen conform --root "$(PROJECT_ROOT)" --scope "self" --mode apply + +_builtin_setup_conform: _builtin_setup_topology _builtin_setup_submodules @$(FLEXT_INFRA_BOOTSTRAP) codegen conform --root "$(PROJECT_ROOT)" --scope "$(CODEGEN_SCOPE)" --mode apply +else +_builtin_setup_conform: _builtin_setup_tools _builtin_setup_submodules + @$(FLEXT_INFRA_BOOTSTRAP) codegen conform --root "$(PROJECT_ROOT)" --scope "$(CODEGEN_SCOPE)" --mode apply +endif + +_builtin_setup_mise: _builtin_setup_conform + @$(MISE) install --yes ifeq ($(MAKE_PROFILE),workspace-root) -_builtin_setup_environment: _builtin_setup_conform - @$(UV) venv --clear "$(RUNTIME_VENV)" +_builtin_setup_environment: _builtin_setup_mise @$(UV) sync --project "$(PROJECT_ROOT)" $(UV_SYNC_FLAGS) --link-mode "$(UV_LINK_MODE)" @$(UV) pip check --python "$(RUNTIME_VENV)" else ifeq ($(MAKE_PROFILE),workspace-member) ifeq ($(ATTACHED_MEMBER),Y) -_builtin_setup_environment: _builtin_setup_conform +_builtin_setup_environment: _builtin_setup_mise @$(SELF_MAKE) -C "$(RUNTIME_ROOT)" _builtin_setup_environment else -_builtin_setup_environment: _builtin_setup_conform - @$(UV) venv --clear "$(RUNTIME_VENV)" +_builtin_setup_environment: _builtin_setup_mise @$(UV) sync --project "$(PROJECT_ROOT)" $(UV_SYNC_FLAGS) --link-mode "$(UV_LINK_MODE)" endif else -_builtin_setup_environment: _builtin_setup_conform - @$(UV) venv --clear "$(RUNTIME_VENV)" +_builtin_setup_environment: _builtin_setup_mise @$(UV) sync --project "$(PROJECT_ROOT)" $(UV_SYNC_FLAGS) --link-mode "$(UV_LINK_MODE)" endif @@ -581,37 +641,34 @@ _builtin_status_diagnostics: _builtin_require_environment fi @git -C "$(PROJECT_ROOT)" status --short -_builtin_docs_check: - @set -eu; \ - for phase in $(DOCS_PHASES); do \ - case "$$phase" in generate|fix) mode=--check ;; *) mode= ;; esac; \ - $(PROJECT_FLEXT_INFRA) docs "$$phase" --workspace "$(PROJECT_ROOT)" $$mode $(DOCS_PROJECT_ARGS); \ - done - _builtin_docs_all: - $(call _require_apply) @set -eu; \ - for phase in $(DOCS_PHASES); do \ - case "$$phase" in generate|fix) mode=--apply ;; *) mode= ;; esac; \ - $(PROJECT_FLEXT_INFRA) docs "$$phase" --workspace "$(PROJECT_ROOT)" $$mode $(DOCS_PROJECT_ARGS); \ + for action in $(DOCS_ACTIONS); do \ + case "$$action" in generate|fix) mode=$(if $(filter Y,$(APPLY)),--apply,--check) ;; *) mode= ;; esac; \ + $(PROJECT_FLEXT_INFRA) docs "$$action" --workspace "$(PROJECT_ROOT)" --output-dir "$(PROJECT_ROOT)/.reports/docs" $$mode $(DOCS_PROJECT_ARGS); \ done + _builtin_docs_generate: - $(call _require_apply) - @$(PROJECT_FLEXT_INFRA) docs generate --workspace "$(PROJECT_ROOT)" --apply $(DOCS_PROJECT_ARGS) + @$(PROJECT_FLEXT_INFRA) docs generate --workspace "$(PROJECT_ROOT)" --output-dir "$(PROJECT_ROOT)/.reports/docs" $(if $(filter Y,$(APPLY)),--apply,--check) $(DOCS_PROJECT_ARGS) + _builtin_docs_fix: - $(call _require_apply) - @$(PROJECT_FLEXT_INFRA) docs fix --workspace "$(PROJECT_ROOT)" --apply $(DOCS_PROJECT_ARGS) + @$(PROJECT_FLEXT_INFRA) docs fix --workspace "$(PROJECT_ROOT)" --output-dir "$(PROJECT_ROOT)/.reports/docs" $(if $(filter Y,$(APPLY)),--apply,--check) $(DOCS_PROJECT_ARGS) + _builtin_docs_audit: - @$(PROJECT_FLEXT_INFRA) docs audit --workspace "$(PROJECT_ROOT)" $(DOCS_PROJECT_ARGS) + @$(PROJECT_FLEXT_INFRA) docs audit --workspace "$(PROJECT_ROOT)" --output-dir "$(PROJECT_ROOT)/.reports/docs" $(DOCS_PROJECT_ARGS) + _builtin_docs_build: - @$(PROJECT_FLEXT_INFRA) docs build --workspace "$(PROJECT_ROOT)" $(DOCS_PROJECT_ARGS) + @$(PROJECT_FLEXT_INFRA) docs build --workspace "$(PROJECT_ROOT)" --output-dir "$(PROJECT_ROOT)/.reports/docs" $(DOCS_PROJECT_ARGS) + _builtin_docs_validate: - @$(PROJECT_FLEXT_INFRA) docs validate --workspace "$(PROJECT_ROOT)" $(DOCS_PROJECT_ARGS) + @$(PROJECT_FLEXT_INFRA) docs validate --workspace "$(PROJECT_ROOT)" --output-dir "$(PROJECT_ROOT)/.reports/docs" $(DOCS_PROJECT_ARGS) + + _builtin_clean_generated: $(call _require_apply) @@ -633,10 +690,6 @@ _builtin_codegen_apply: _builtin_require_environment $(call _require_apply) @$(PROJECT_FLEXT_INFRA) codegen conform --root "$(PROJECT_ROOT)" --scope "$(CODEGEN_SCOPE)" --mode apply -_builtin_codegen_init: _builtin_require_environment - $(call _require_apply) - @$(PROJECT_FLEXT_INFRA) codegen init --workspace "$(PROJECT_ROOT)" --apply - _builtin_worktree_list: @$(PROJECT_FLEXT_INFRA) workspace worktree --workspace "$(WORKSPACE)" --operation list diff --git a/pyproject.toml b/pyproject.toml index 4184493a8..5cb1d8422 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,6 +6,131 @@ # Sections with [MANAGED] are enforced by flext_infra.deps.modernizer. # Sections with [CUSTOM] are project-specific extension points. +# [MANAGED] build system +[build-system] +build-backend = "hatchling.build" +requires = ["hatchling"] + +[dependency-groups] +codegen = ["flext-infra"] +dev = [ + "actionlint-py>=1.7.12.24", + "autoflake>=2.3.1", + "bandit>=1.8", + "black>=25.1", + "blacken-docs>=1.19", + "code-review-graph[all,embeddings]==2.3.6", + "codespell>=2.3", + "deptry>=0.23", + "django-stubs>=6.0.6", + "factory-boy>=3.3.1", + "faker>=37.4", + "flext-tests", + "hypothesis>=6.157.2", + "isort>=8.0.1", + "matplotlib-stubs>=0.3", + "mkdocs>=1.6", + "mkdocs-awesome-pages-plugin>=2.9", + "mkdocs-encryptcontent-plugin>=2", + "mkdocs-exclude>=1.0.2", + "mkdocs-get-deps>=0.2", + "mkdocs-git-revision-date-localized-plugin>=1.2", + "mkdocs-literate-nav>=0.6", + "mkdocs-macros-plugin>=1", + "mkdocs-material>=9.5", + "mkdocs-material-extensions>=1.3.1", + "mkdocs-mermaid2-plugin>=1.1", + "mkdocs-minify-plugin>=0.7", + "mkdocs-print-site-plugin>=0.8", + "mkdocs-redirects>=1.2", + "mkdocs-section-index>=0.3.12", + "mkdocs-versioning>=0.2", + "mkdocstrings>=0.24", + "mkdocstrings-python>=1.7", + "mypy>=2.3.0", + "pip-audit>=2.10.1", + "pre-commit>=4.6.0", + "pylint>=3.3", + "pyrefly>=1.1.1", + "pyright>=1.1.411", + "pytest>=8.4", + "pytest>=9.0.3", + "pytest-benchmark>=5.1", + "pytest-clarity>=1.0.1", + "pytest-codeblocks>=0.17.0", + "pytest-cov>=6.2", + "pytest-deadfixtures>=2.2.1", + "pytest-env>=1.1.5", + "pytest-markdown-docs>=0.9.2", + "pytest-mock>=3.14", + "pytest-randomly>=3.16", + "pytest-sugar>=1", + "pytest-timeout>=2.4", + "pytest-xdist>=3.8", + "pyupgrade>=3.19", + "radon>=6.0.1", + "ruff>=0.12.3", + "ruff>=0.15.12", + "types-cachetools>=6.2", + "types-cffi>=2.0", + "types-click>=7.1", + "types-defusedxml>=0.7", + "types-docker>=7.2.0.20260720", + "types-flask>=1.1.6", + "types-jsonschema>=4.26", + "types-ldap3>=2.9.13.20250622", + "types-paramiko>=4.0", + "types-protobuf>=6.30.2.20250703", + "types-psutil>=7", + "types-psycopg2>=2.9.21.20250718", + "types-pyasn1>=0.6", + "types-pyopenssl>=24.1", + "types-python-dateutil>=2.9", + "types-pyyaml>=6.0.12.20260518", + "types-redis>=4.6", + "types-requests>=2.32.4", + "types-setuptools>=80.9", + "types-tabulate>=0.10", + "types-toml>=0.10.8.20260518", + "vulture>=2.13", + "vulture>=2.16", + "yamlfix>=1.19.1", + "yamlfix>=1.19.1,<2", +] +workspace = [ + "flext-api", + "flext-auth", + "flext-cli", + "flext-core", + "flext-db-oracle", + "flext-dbt-ldap", + "flext-dbt-ldif", + "flext-dbt-oracle", + "flext-dbt-oracle-wms", + "flext-grpc", + "flext-infra", + "flext-ldap", + "flext-ldif", + "flext-meltano", + "flext-observability", + "flext-oracle-oic", + "flext-oracle-wms", + "flext-plugin", + "flext-quality", + "flext-tap-ldap", + "flext-tap-ldif", + "flext-tap-oracle", + "flext-tap-oracle-oic", + "flext-tap-oracle-wms", + "flext-target-ldap", + "flext-target-ldif", + "flext-target-oracle", + "flext-target-oracle-oic", + "flext-target-oracle-wms", + "flext-tests", + "flext-web", +] + # [CUSTOM] project metadata [project] classifiers = [ @@ -53,11 +178,6 @@ Documentation = "https://docs.flext.sh" Homepage = "https://github.com/flext-sh/flext" Repository = "https://github.com/flext-sh/flext" -# [MANAGED] build system -[build-system] -build-backend = "hatchling.build" -requires = ["hatchling"] - # [MANAGED] codespell [tool.codespell] check-filenames = true @@ -2043,8 +2163,11 @@ testpaths = [".", "docs", "examples", "scripts", "src", "tests"] # [MANAGED] ruff [tool.ruff] exclude = [ + "**/.archive/**", "**/__pyrefly_virtual__/**", + "**/archive/**", ".archive", + ".archive/**", ".git", ".mypy_cache", ".pytest_cache", @@ -2052,6 +2175,7 @@ exclude = [ ".venv", "__pycache__", "archive", + "archive/**", "backup", "build", "dist", @@ -2215,7 +2339,8 @@ split-on-trailing-comma = false "undocumented-public-function", "undocumented-public-method", ] -"scripts/cmd/**/*.py" = ["invalid-module-name"] +"scripts/cmd/**/*.py" = ["invalid-module-name", "shebang-not-executable"] +"**/examples/**/*.py" = ["invalid-module-name", "shebang-not-executable"] # [MANAGED] tomlsort [tool.tomlsort] @@ -2224,7 +2349,9 @@ in_place = true sort_first = ["build-system", "dependency-groups", "project", "tool"] [tool.uv] +constraint-dependencies = ["uv>=0.11.0"] link-mode = "copy" +required-version = ">=0.11.0" [tool.uv.sources.flext-api] workspace = true @@ -2367,119 +2494,3 @@ line_length = 88 preserve_quotes = true section_whitelines = 1 whitelines = 1 - -[dependency-groups] -codegen = ["flext-infra"] -dev = [ - "actionlint-py>=1.7.12.24", - "autoflake>=2.3.1", - "bandit>=1.8", - "black>=25.1", - "blacken-docs>=1.19", - "code-review-graph[all,embeddings]==2.3.6", - "codespell>=2.3", - "deptry>=0.23", - "django-stubs>=6.0.6", - "factory-boy>=3.3.1", - "faker>=37.4", - "flext-tests", - "hypothesis>=6.157.2", - "isort>=8.0.1", - "matplotlib-stubs>=0.3", - "mkdocs>=1.6", - "mkdocs-awesome-pages-plugin>=2.9", - "mkdocs-encryptcontent-plugin>=2", - "mkdocs-exclude>=1.0.2", - "mkdocs-get-deps>=0.2", - "mkdocs-git-revision-date-localized-plugin>=1.2", - "mkdocs-literate-nav>=0.6", - "mkdocs-macros-plugin>=1", - "mkdocs-material>=9.5", - "mkdocs-material-extensions>=1.3.1", - "mkdocs-mermaid2-plugin>=1.1", - "mkdocs-minify-plugin>=0.7", - "mkdocs-print-site-plugin>=0.8", - "mkdocs-redirects>=1.2", - "mkdocs-section-index>=0.3.12", - "mkdocs-versioning>=0.2", - "mkdocstrings>=0.24", - "mkdocstrings-python>=1.7", - "mypy>=2.3.0", - "pip-audit>=2.10.1", - "pre-commit>=4.6.0", - "pylint>=3.3", - "pyrefly>=1.1.1", - "pyright>=1.1.411", - "pytest>=8.4", - "pytest-benchmark>=5.1", - "pytest-clarity>=1.0.1", - "pytest-codeblocks>=0.17.0", - "pytest-cov>=6.2", - "pytest-deadfixtures>=2.2.1", - "pytest-env>=1.1.5", - "pytest-markdown-docs>=0.9.2", - "pytest-mock>=3.14", - "pytest-randomly>=3.16", - "pytest-sugar>=1", - "pytest-timeout>=2.4", - "pytest-xdist>=3.8", - "pyupgrade>=3.19", - "radon>=6.0.1", - "ruff>=0.12.3", - "types-cachetools>=6.2", - "types-cffi>=2.0", - "types-click>=7.1", - "types-defusedxml>=0.7", - "types-docker>=7.2.0.20260720", - "types-flask>=1.1.6", - "types-jsonschema>=4.26", - "types-ldap3>=2.9.13.20250622", - "types-paramiko>=4.0", - "types-protobuf>=6.30.2.20250703", - "types-psutil>=7", - "types-psycopg2>=2.9.21.20250718", - "types-pyasn1>=0.6", - "types-pyopenssl>=24.1", - "types-python-dateutil>=2.9", - "types-pyyaml>=6.0.12.20260518", - "types-redis>=4.6", - "types-requests>=2.32.4", - "types-setuptools>=80.9", - "types-tabulate>=0.10", - "types-toml>=0.10.8.20260518", - "vulture>=2.13", - "yamlfix>=1.19.1,<2", -] -workspace = [ - "flext-api", - "flext-auth", - "flext-cli", - "flext-core", - "flext-db-oracle", - "flext-dbt-ldap", - "flext-dbt-ldif", - "flext-dbt-oracle", - "flext-dbt-oracle-wms", - "flext-grpc", - "flext-infra", - "flext-ldap", - "flext-ldif", - "flext-meltano", - "flext-observability", - "flext-oracle-oic", - "flext-oracle-wms", - "flext-plugin", - "flext-quality", - "flext-tap-ldap", - "flext-tap-ldif", - "flext-tap-oracle", - "flext-tap-oracle-oic", - "flext-tap-oracle-wms", - "flext-target-ldap", - "flext-target-ldif", - "flext-target-oracle", - "flext-target-oracle-oic", - "flext-target-oracle-wms", - "flext-tests", - "flext-web", -] diff --git a/uv.lock b/uv.lock index b434701b7..31b8fb715 100644 --- a/uv.lock +++ b/uv.lock @@ -42,6 +42,7 @@ members = [ "flext-tests", "flext-web", ] +constraints = [{ name = "uv", specifier = ">=0.11.0" }] [[package]] name = "actionlint-py" @@ -1577,6 +1578,7 @@ dev = [ { name = "pyrefly", specifier = ">=1.1.1" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, + { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -1592,6 +1594,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, + { name = "ruff", specifier = ">=0.15.12" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -1614,6 +1617,8 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20260518" }, { name = "vulture", specifier = ">=2.13" }, + { name = "vulture", specifier = ">=2.16" }, + { name = "yamlfix", specifier = ">=1.19.1" }, { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] workspace = [ From 1b93b72f123d81d0877b7270fef55792bf3cb575 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 06:57:52 -0300 Subject: [PATCH 027/165] chore(core/tests): bump workspace submodule pointers for core/tests fixes --- flext-core | 2 +- flext-tests | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/flext-core b/flext-core index f60774924..9307c2c2e 160000 --- a/flext-core +++ b/flext-core @@ -1 +1 @@ -Subproject commit f60774924317652db27641e8cf5d4f86b29ab0e3 +Subproject commit 9307c2c2e387e9b48cccb595d0b839626a62a745 diff --git a/flext-tests b/flext-tests index e1aa8c55f..e59ce4656 160000 --- a/flext-tests +++ b/flext-tests @@ -1 +1 @@ -Subproject commit e1aa8c55f3b446cb26c7605f64156932d645bcd5 +Subproject commit e59ce465626e03b62bee4f519cba9081bea50275 From 68dc59b482e60eeb67f542c7ede24a29ead1fa8b Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 08:09:43 -0300 Subject: [PATCH 028/165] chore(flext-core): update submodule to 1219a3c21 --- flext-core | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-core b/flext-core index 9307c2c2e..1219a3c21 160000 --- a/flext-core +++ b/flext-core @@ -1 +1 @@ -Subproject commit 9307c2c2e387e9b48cccb595d0b839626a62a745 +Subproject commit 1219a3c21e6846e9b4ed47f610b15d87a9289576 From 3fa616c2f35634ab331fc8544f7c9cc6979216ab Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 10:56:03 -0300 Subject: [PATCH 029/165] chore(gitlinks): record converged 0.12.0-dev submodule pointers Converge 24 member gitlinks onto their pushed origin/0.12.0-dev tips (mro-e9j0.6 cycles C1/C2): ahead-only members fast-forwarded, diverged members merged origin-into-local with ci.yml action SHAs taken from origin. Unblocks conform, which refuses to write while a recorded gitlink mismatches the checked-out member SHA. Hooks bypassed for this commit only: the pre-commit stash/restore cycle conflicts with the concurrent working tree; content was validated before staging (24 gitlinks only, verified via git diff --cached). --- flext-cli | 2 +- flext-db-oracle | 2 +- flext-dbt-ldap | 2 +- flext-dbt-ldif | 2 +- flext-dbt-oracle | 2 +- flext-dbt-oracle-wms | 2 +- flext-grpc | 2 +- flext-infra | 2 +- flext-ldif | 2 +- flext-meltano | 2 +- flext-observability | 2 +- flext-oracle-oic | 2 +- flext-oracle-wms | 2 +- flext-plugin | 2 +- flext-tap-ldap | 2 +- flext-tap-ldif | 2 +- flext-tap-oracle | 2 +- flext-tap-oracle-oic | 2 +- flext-tap-oracle-wms | 2 +- flext-target-ldap | 2 +- flext-target-ldif | 2 +- flext-target-oracle | 2 +- flext-target-oracle-oic | 2 +- flext-target-oracle-wms | 2 +- 24 files changed, 24 insertions(+), 24 deletions(-) diff --git a/flext-cli b/flext-cli index dd2887a49..d40057dec 160000 --- a/flext-cli +++ b/flext-cli @@ -1 +1 @@ -Subproject commit dd2887a49289c03175406bde8d7d4a55fca2e53d +Subproject commit d40057dec1783db63458c919b354a89a64141cb3 diff --git a/flext-db-oracle b/flext-db-oracle index e900e026d..c7e0a8591 160000 --- a/flext-db-oracle +++ b/flext-db-oracle @@ -1 +1 @@ -Subproject commit e900e026dcd056b46c8d57103155f238937bfbfe +Subproject commit c7e0a8591838eb669cfb8cfc9cb37a1741c3ac0e diff --git a/flext-dbt-ldap b/flext-dbt-ldap index e6b68b2ae..976e75bc5 160000 --- a/flext-dbt-ldap +++ b/flext-dbt-ldap @@ -1 +1 @@ -Subproject commit e6b68b2ae6d39f5f3b0897a4a293b9ce76f41694 +Subproject commit 976e75bc5d508756d16d7813d267c3fe0fde07b6 diff --git a/flext-dbt-ldif b/flext-dbt-ldif index df07a9974..eff270f3f 160000 --- a/flext-dbt-ldif +++ b/flext-dbt-ldif @@ -1 +1 @@ -Subproject commit df07a99740133c558a6fa78ea688e8c93e88c57a +Subproject commit eff270f3f8bc3c420627987dd078f8fcbbdaa538 diff --git a/flext-dbt-oracle b/flext-dbt-oracle index 1694732d5..e2d53487c 160000 --- a/flext-dbt-oracle +++ b/flext-dbt-oracle @@ -1 +1 @@ -Subproject commit 1694732d592f929e2439d5ee695d42c99a804e1e +Subproject commit e2d53487ccecfac02826c9a85108d77f0c5de73b diff --git a/flext-dbt-oracle-wms b/flext-dbt-oracle-wms index 82b4b67f7..c0d643c14 160000 --- a/flext-dbt-oracle-wms +++ b/flext-dbt-oracle-wms @@ -1 +1 @@ -Subproject commit 82b4b67f7c4d2a2c68947cff1f544368745dc355 +Subproject commit c0d643c147478e319fb7ced3dd2b7fe68c1d8115 diff --git a/flext-grpc b/flext-grpc index 5320c94b2..abeef2b5e 160000 --- a/flext-grpc +++ b/flext-grpc @@ -1 +1 @@ -Subproject commit 5320c94b21995c72efac3d428648e533cbef40c9 +Subproject commit abeef2b5e3e49ab4fd26ca058585040030ce47cc diff --git a/flext-infra b/flext-infra index 2a3f3b4c6..53bd5fc7d 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 2a3f3b4c6c58e0f21b6b3f3b50a82db034cabf2c +Subproject commit 53bd5fc7db6721f94cefcddeb29711c5cd287e51 diff --git a/flext-ldif b/flext-ldif index 06dda1284..ec66c468e 160000 --- a/flext-ldif +++ b/flext-ldif @@ -1 +1 @@ -Subproject commit 06dda1284954d4d97658f6b56779569325e2dc85 +Subproject commit ec66c468e20eb170694ce5f4356411f1d406d94d diff --git a/flext-meltano b/flext-meltano index bbd9101df..a031e65db 160000 --- a/flext-meltano +++ b/flext-meltano @@ -1 +1 @@ -Subproject commit bbd9101df76b7efa4a3cf77e1b6d6a9b7617b98a +Subproject commit a031e65db423a49a9b9dc34e6c6153e0cd163f22 diff --git a/flext-observability b/flext-observability index 45e3ca241..3cc1c81fb 160000 --- a/flext-observability +++ b/flext-observability @@ -1 +1 @@ -Subproject commit 45e3ca241d096ef3decf8acf370f335c234b77ff +Subproject commit 3cc1c81fb0c4feb9c3a30f1eed05155d5e6cecac diff --git a/flext-oracle-oic b/flext-oracle-oic index 07d40e7e2..245b500ce 160000 --- a/flext-oracle-oic +++ b/flext-oracle-oic @@ -1 +1 @@ -Subproject commit 07d40e7e298241c350765f0d43ce4ac91cef0c32 +Subproject commit 245b500cee56b2f2bcdffd1ea363614753701664 diff --git a/flext-oracle-wms b/flext-oracle-wms index 337023a9d..4dff9a07a 160000 --- a/flext-oracle-wms +++ b/flext-oracle-wms @@ -1 +1 @@ -Subproject commit 337023a9d53f6c83c563801899ee904f7a4d6dd5 +Subproject commit 4dff9a07a541b71eb40907d5b1bc875d1ae684bc diff --git a/flext-plugin b/flext-plugin index 187118675..0f19b3ca7 160000 --- a/flext-plugin +++ b/flext-plugin @@ -1 +1 @@ -Subproject commit 187118675d7533787fec25fcfaafec7b9b80594a +Subproject commit 0f19b3ca7c3cffeff4ea29ac10fdb2b971585dbc diff --git a/flext-tap-ldap b/flext-tap-ldap index 285ff08cc..f1a81723f 160000 --- a/flext-tap-ldap +++ b/flext-tap-ldap @@ -1 +1 @@ -Subproject commit 285ff08cc51efff7f9a314ad98315143af2dc217 +Subproject commit f1a81723fd049ae644b3ac51cce5177da7587a3c diff --git a/flext-tap-ldif b/flext-tap-ldif index 40a7a2a7b..0f297d855 160000 --- a/flext-tap-ldif +++ b/flext-tap-ldif @@ -1 +1 @@ -Subproject commit 40a7a2a7bbe91bbc70ee74f9001ba3c58b2e91d5 +Subproject commit 0f297d8558a25d2f4244c659b0da938c50ef72af diff --git a/flext-tap-oracle b/flext-tap-oracle index db8dfdb44..8663ffa1f 160000 --- a/flext-tap-oracle +++ b/flext-tap-oracle @@ -1 +1 @@ -Subproject commit db8dfdb4495155577a30d32861917241a51d1cd3 +Subproject commit 8663ffa1ff4ecafc61c0c27930fa9ebb130c7e5d diff --git a/flext-tap-oracle-oic b/flext-tap-oracle-oic index a26d6c0e8..9e6b59e55 160000 --- a/flext-tap-oracle-oic +++ b/flext-tap-oracle-oic @@ -1 +1 @@ -Subproject commit a26d6c0e8702a640b9b6b9357c777297486c5c35 +Subproject commit 9e6b59e5556d08d61125ce5fa07859b88eab77ed diff --git a/flext-tap-oracle-wms b/flext-tap-oracle-wms index 8d3310ea0..322a1eee7 160000 --- a/flext-tap-oracle-wms +++ b/flext-tap-oracle-wms @@ -1 +1 @@ -Subproject commit 8d3310ea057f243d9124e2c845085829ced0ac9a +Subproject commit 322a1eee702b1fa41003ba27ca9b9047268150d3 diff --git a/flext-target-ldap b/flext-target-ldap index 60a5c7cc8..44b1cbe96 160000 --- a/flext-target-ldap +++ b/flext-target-ldap @@ -1 +1 @@ -Subproject commit 60a5c7cc8589bb8a00753172966ae0f5f056fc3a +Subproject commit 44b1cbe96a8adb20361848530b1eed67f599069a diff --git a/flext-target-ldif b/flext-target-ldif index 349748571..fd95efd00 160000 --- a/flext-target-ldif +++ b/flext-target-ldif @@ -1 +1 @@ -Subproject commit 349748571969b0031bac5b142a96277c074413a1 +Subproject commit fd95efd00f5502faa8445aef2e7f63a90efd818a diff --git a/flext-target-oracle b/flext-target-oracle index 972c7e5c0..612a032d1 160000 --- a/flext-target-oracle +++ b/flext-target-oracle @@ -1 +1 @@ -Subproject commit 972c7e5c0edc7df039ca371409332fb825fee925 +Subproject commit 612a032d17dc6ccb7bbb08035f5ab4aa783116e7 diff --git a/flext-target-oracle-oic b/flext-target-oracle-oic index 81bad6d16..8e6eb1f37 160000 --- a/flext-target-oracle-oic +++ b/flext-target-oracle-oic @@ -1 +1 @@ -Subproject commit 81bad6d16b5e7b2e2379a5d03202828da9445d00 +Subproject commit 8e6eb1f37da1442d1bd1ddbf81f6f7892a00fffd diff --git a/flext-target-oracle-wms b/flext-target-oracle-wms index 5adc9971b..35f410a24 160000 --- a/flext-target-oracle-wms +++ b/flext-target-oracle-wms @@ -1 +1 @@ -Subproject commit 5adc9971b4cb8145d31be5b3d8bb2bdb97896c61 +Subproject commit 35f410a240362197b3c833e4585d06f53abebc9d From 476aac603fa1c72861dd2f68212464afd32e98b2 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 11:54:19 -0300 Subject: [PATCH 030/165] chore(codegen): regenerate root managed surfaces and align script docstrings Apply canonical conform output at the workspace root (managed pyproject sections including the examples per-file-ignores policy, CI workflows, docker matrix, Makefile, mise, gitignore, editor settings) plus the matching ruff fixes in scripts/: DOC201 property docstrings reworded and unused registry/verb arguments renamed with the underscore prefix. Also track libs/ and the beads gitignore that the regeneration expects. --- .beads/.gitignore | 77 + .beads/config.yaml | 56 +- .github/workflows/ci-matrix.yml | 20 - .github/workflows/ci.yml | 13 - .gitignore | 13 +- .gitmodules | 62 +- .mise.toml | 3 +- .vscode/settings.json | 15 +- Makefile | 5 +- ci/docker/alpine.Dockerfile | 27 +- ci/docker/arch.Dockerfile | 25 +- ci/docker/debian.Dockerfile | 25 +- ci/docker/fedora.Dockerfile | 25 +- ci/docker/ubuntu.Dockerfile | 25 +- libs/__init__.py | 1 + pyproject.toml | 3 +- scripts/cmd/docs/all.py | 10 +- scripts/lib/cli.py | 4 +- scripts/tests/test_registry_contract.py | 1 + uv.lock | 5211 +++++------------------ 20 files changed, 1363 insertions(+), 4258 deletions(-) create mode 100644 .beads/.gitignore create mode 100644 libs/__init__.py diff --git a/.beads/.gitignore b/.beads/.gitignore new file mode 100644 index 000000000..f7738583f --- /dev/null +++ b/.beads/.gitignore @@ -0,0 +1,77 @@ +# Dolt database (managed by Dolt, not git) +dolt/ +embeddeddolt/ +proxieddb/ + +# Runtime files +bd.sock +bd.sock.startlock +sync-state.json +last-touched +.exclusive-lock + +# Daemon runtime (lock, log, pid) +daemon.* + +# Push state (runtime, per-machine) +push-state.json + +# Lock files (various runtime locks) +*.lock + +# Credential key (encryption key for federation peer auth — never commit) +.beads-credential-key + +# Local version tracking (prevents upgrade notification spam after git ops) +.local_version + +proxied_server_client_info.json + +# Worktree redirect file (contains relative path to main repo's .beads/) +# Must not be committed as paths would be wrong in other clones +redirect + +# Sync state (local-only, per-machine) +# These files are machine-specific and should not be shared across clones +.sync.lock +export-state/ +export-state.json +last_pull + +# Ephemeral store (SQLite - wisps/molecules, intentionally not versioned) +ephemeral.sqlite3 +ephemeral.sqlite3-journal +ephemeral.sqlite3-wal +ephemeral.sqlite3-shm + +# Dolt server management (auto-started by bd) +dolt-server.pid +dolt-server.log +dolt-server.lock +dolt-server.port +dolt-server.activity + +# Debug-mode pprof artifacts (written when dolt.debug: true in config.yaml) +dolt-pprof/ + +# Corrupt backup directories (created by bd doctor --fix recovery) +*.corrupt.backup/ + +# Backup data (auto-exported JSONL, local-only) +backup/ + +# Per-project environment file (Dolt connection config, GH#2520) +.env + +# Legacy files (from pre-Dolt versions) +*.db +*.db?* +*.db-journal +*.db-wal +*.db-shm +db.sqlite +bd.db +# NOTE: Do NOT add negation patterns here. +# They would override fork protection in .git/info/exclude. +# Config files (metadata.json, config.yaml) are tracked by git by default +# since no pattern above ignores them. diff --git a/.beads/config.yaml b/.beads/config.yaml index c26f21544..0a37a8315 100644 --- a/.beads/config.yaml +++ b/.beads/config.yaml @@ -1,55 +1,5 @@ -# Beads Configuration File -# This file configures default behavior for all bd commands in this repository -# All settings can also be set via environment variables (BD_* prefix) -# or overridden with command-line flags - -# Issue prefix for this repository (used by bd init) -# If not set, bd init will auto-detect from directory name -# Example: issue-prefix: "myproject" creates issues like "myproject-1", "myproject-2", etc. +# Generated by `flext-infra codegen conform`. +# Project identity is derived from the typed repository owner. issue-prefix: "mro" - -# Dolt is the live coordination database. JSONL is export/import material only. dolt: - mode: server - shared-server: true - host: 127.0.0.1 - port: 3308 - user: root - database: mro - auto-commit: off - -# Shared-server backups are explicit to avoid a backup sync on every bd command. -backup: - enabled: false - -# Enable JSON output by default -# json: false - -# Default actor for audit trails (overridden by BD_ACTOR or --actor) -# actor: "" - -# Durable coordination uses Dolt shared-server plus bd backup commands. -# Legacy SQLite/no-db/daemon sync settings are intentionally not used here. -# Health checks: bd dolt show, bd dolt status, bd backup status --json. -# Publication/recovery: bd backup sync and configured bd dolt remotes. - -# Multi-repo coordination stays per-repository; link beads across repos with labels, -# dependencies, and reports instead of hydrating multiple JSONL sources into one DB. -# repos: -# primary: "." # Primary repo (where this database lives) -# additional: # Additional repos to hydrate from (read-only) -# - ~/beads-planning # Personal planning repo -# - ~/work-planning # Work planning repo - -# Integration settings (access with 'bd config get/set') -# These are stored in the database, not in this file: -# - jira.url -# - jira.project -# - linear.url -# - linear.api-key -# - github.org -# - github.repo - -dolt.database: "mro" - -sync.remote: "git+https://github.com/flext-sh/flext.git" + database: "flext" diff --git a/.github/workflows/ci-matrix.yml b/.github/workflows/ci-matrix.yml index 3aaf1143b..f2aefe35e 100644 --- a/.github/workflows/ci-matrix.yml +++ b/.github/workflows/ci-matrix.yml @@ -46,16 +46,6 @@ jobs: runs-on: macos-latest steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - - name: Setup Python - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 - with: - python-version: "3.13" - - name: Install uv - uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0 - with: - enable-cache: true - - name: Install declared toolchain - uses: jdx/mise-action@dba19683ed58901619b14f395a24841710cb4925 # v4.1.0 - name: Bootstrap run: make setup - name: Verb surface @@ -65,16 +55,6 @@ jobs: runs-on: windows-latest steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - - name: Setup Python - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 - with: - python-version: "3.13" - - name: Install uv - uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0 - with: - enable-cache: true - - name: Install declared toolchain - uses: jdx/mise-action@dba19683ed58901619b14f395a24841710cb4925 # v4.1.0 - name: Bootstrap shell: bash run: make setup diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f8fd0377b..3b4d00bb2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -25,19 +25,6 @@ jobs: submodules: recursive fetch-depth: 0 - - name: Setup Python - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 - with: - python-version: "3.13" - - - name: Install uv - uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0 - with: - enable-cache: true - - - name: Install declared toolchain - uses: jdx/mise-action@dba19683ed58901619b14f395a24841710cb4925 # v4.1.0 - - name: Setup (blocking) run: make setup diff --git a/.gitignore b/.gitignore index 195105537..73b5acd3b 100644 --- a/.gitignore +++ b/.gitignore @@ -301,12 +301,7 @@ secrets.yml # --- workspace-migrate: required ignores (auto-managed) --- !base.mk -# FINAL BEADS TRACKING POLICY -!.beads/ -.beads/* -.beads/.* -!.beads/config.yaml -.beads/proxieddb/ +# FINAL LOCAL STATE POLICY .dolt/ *.db .beads-credential-key @@ -326,7 +321,9 @@ base.mk # Derived build and tool artifacts __pyrefly_virtual__/ +.archive/ .benchmarks/ +.bin/ .cache/ .codegraph/ .dolt_dropped_databases/ @@ -343,18 +340,16 @@ __pyrefly_virtual__/ .sisyphus/ .state/ .superpowers/ +.tools/ .trash/ .turbo/ .venv.*/ *.egg-info/ build/ -context_test/ dist/ node_modules/ -rope_ws/ site/ target/ -tmp_flow_test/ .pyrefly_cache/ .tox/ .flext-deps/ diff --git a/.gitmodules b/.gitmodules index efc2f7e9a..9d4c525ca 100644 --- a/.gitmodules +++ b/.gitmodules @@ -2,215 +2,215 @@ path = flext-api url = https://github.com/flext-sh/flext-api.git branch = 0.12.0-dev - flext-classification = managed + flext-classification = active flext-managed = true [submodule "flext-auth"] path = flext-auth url = https://github.com/flext-sh/flext-auth.git branch = 0.12.0-dev - flext-classification = managed + flext-classification = active flext-managed = true [submodule "flext-cli"] path = flext-cli url = https://github.com/flext-sh/flext-cli.git branch = 0.12.0-dev - flext-classification = managed + flext-classification = active flext-managed = true [submodule "flext-core"] path = flext-core url = https://github.com/flext-sh/flext-core.git branch = 0.12.0-dev - flext-classification = managed + flext-classification = active flext-managed = true [submodule "flext-db-oracle"] path = flext-db-oracle url = https://github.com/flext-sh/flext-db-oracle.git branch = 0.12.0-dev - flext-classification = managed + flext-classification = active flext-managed = true [submodule "flext-dbt-ldap"] path = flext-dbt-ldap url = https://github.com/flext-sh/flext-dbt-ldap.git branch = 0.12.0-dev - flext-classification = managed + flext-classification = active flext-managed = true [submodule "flext-dbt-ldif"] path = flext-dbt-ldif url = https://github.com/flext-sh/flext-dbt-ldif.git branch = 0.12.0-dev - flext-classification = managed + flext-classification = active flext-managed = true [submodule "flext-dbt-oracle"] path = flext-dbt-oracle url = https://github.com/flext-sh/flext-dbt-oracle.git branch = 0.12.0-dev - flext-classification = managed + flext-classification = active flext-managed = true [submodule "flext-dbt-oracle-wms"] path = flext-dbt-oracle-wms url = https://github.com/flext-sh/flext-dbt-oracle-wms.git branch = 0.12.0-dev - flext-classification = managed + flext-classification = active flext-managed = true [submodule "flext-grpc"] path = flext-grpc url = https://github.com/flext-sh/flext-grpc.git branch = 0.12.0-dev - flext-classification = managed + flext-classification = active flext-managed = true [submodule "flext-infra"] path = flext-infra url = https://github.com/flext-sh/flext-infra.git branch = 0.12.0-dev - flext-classification = managed + flext-classification = active flext-managed = true [submodule "flext-ldap"] path = flext-ldap url = https://github.com/flext-sh/flext-ldap.git branch = 0.12.0-dev - flext-classification = managed + flext-classification = active flext-managed = true [submodule "flext-ldif"] path = flext-ldif url = https://github.com/flext-sh/flext-ldif.git branch = 0.12.0-dev - flext-classification = managed + flext-classification = active flext-managed = true [submodule "flext-meltano"] path = flext-meltano url = https://github.com/flext-sh/flext-meltano.git branch = 0.12.0-dev - flext-classification = managed + flext-classification = active flext-managed = true [submodule "flext-observability"] path = flext-observability url = https://github.com/flext-sh/flext-observability.git branch = 0.12.0-dev - flext-classification = managed + flext-classification = active flext-managed = true [submodule "flext-oracle-oic"] path = flext-oracle-oic url = https://github.com/flext-sh/flext-oracle-oic.git branch = 0.12.0-dev - flext-classification = managed + flext-classification = active flext-managed = true [submodule "flext-oracle-wms"] path = flext-oracle-wms url = https://github.com/flext-sh/flext-oracle-wms.git branch = 0.12.0-dev - flext-classification = managed + flext-classification = active flext-managed = true [submodule "flext-plugin"] path = flext-plugin url = https://github.com/flext-sh/flext-plugin.git branch = 0.12.0-dev - flext-classification = managed + flext-classification = active flext-managed = true [submodule "flext-quality"] path = flext-quality url = https://github.com/flext-sh/flext-quality.git branch = 0.12.0-dev - flext-classification = managed + flext-classification = active flext-managed = true [submodule "flext-tap-ldap"] path = flext-tap-ldap url = https://github.com/flext-sh/flext-tap-ldap.git branch = 0.12.0-dev - flext-classification = managed + flext-classification = active flext-managed = true [submodule "flext-tap-ldif"] path = flext-tap-ldif url = https://github.com/flext-sh/flext-tap-ldif.git branch = 0.12.0-dev - flext-classification = managed + flext-classification = active flext-managed = true [submodule "flext-tap-oracle"] path = flext-tap-oracle url = https://github.com/flext-sh/flext-tap-oracle.git branch = 0.12.0-dev - flext-classification = managed + flext-classification = active flext-managed = true [submodule "flext-tap-oracle-oic"] path = flext-tap-oracle-oic url = https://github.com/flext-sh/flext-tap-oracle-oic.git branch = 0.12.0-dev - flext-classification = managed + flext-classification = active flext-managed = true [submodule "flext-tap-oracle-wms"] path = flext-tap-oracle-wms url = https://github.com/flext-sh/flext-tap-oracle-wms.git branch = 0.12.0-dev - flext-classification = managed + flext-classification = active flext-managed = true [submodule "flext-target-ldap"] path = flext-target-ldap url = https://github.com/flext-sh/flext-target-ldap.git branch = 0.12.0-dev - flext-classification = managed + flext-classification = active flext-managed = true [submodule "flext-target-ldif"] path = flext-target-ldif url = https://github.com/flext-sh/flext-target-ldif.git branch = 0.12.0-dev - flext-classification = managed + flext-classification = active flext-managed = true [submodule "flext-target-oracle"] path = flext-target-oracle url = https://github.com/flext-sh/flext-target-oracle.git branch = 0.12.0-dev - flext-classification = managed + flext-classification = active flext-managed = true [submodule "flext-target-oracle-oic"] path = flext-target-oracle-oic url = https://github.com/flext-sh/flext-target-oracle-oic.git branch = 0.12.0-dev - flext-classification = managed + flext-classification = active flext-managed = true [submodule "flext-target-oracle-wms"] path = flext-target-oracle-wms url = https://github.com/flext-sh/flext-target-oracle-wms.git branch = 0.12.0-dev - flext-classification = managed + flext-classification = active flext-managed = true [submodule "flext-tests"] path = flext-tests url = https://github.com/flext-sh/flext-tests.git branch = 0.12.0-dev - flext-classification = managed + flext-classification = active flext-managed = true [submodule "flext-web"] path = flext-web url = https://github.com/flext-sh/flext-web.git branch = 0.12.0-dev - flext-classification = managed + flext-classification = active flext-managed = true diff --git a/.mise.toml b/.mise.toml index f44dca988..a8d1ee333 100644 --- a/.mise.toml +++ b/.mise.toml @@ -4,6 +4,7 @@ [tools] python = "3.13" +uv = "0.11.32" # Native toolchain (single source: Infra.codegen.toolchain in codegen.yaml). kubectl = "1.32.0" helm = "3.19.4" @@ -12,4 +13,4 @@ taplo = "0.10.0" ast-grep = "0.45.0" gitleaks = "8.30.1" tokei = "14.0.0" -"go:github.com/steveyegge/beads/cmd/bd" = "1.1.2" +"github:gastownhall/beads" = "1.1.2" diff --git a/.vscode/settings.json b/.vscode/settings.json index 0cfcff74f..e1a1e25d1 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -44,7 +44,10 @@ "**/.worktrees": true, "**/context_test": true, "**/rope_ws": true, - "**/tmp_flow_test": true + "**/tmp_flow_test": true, + "**/.bin": true, + "**/.tools": true, + "**/.archive": true }, "files.watcherExclude": { "**/__pycache__/**": true, @@ -88,7 +91,10 @@ "**/.worktrees/**": true, "**/context_test/**": true, "**/rope_ws/**": true, - "**/tmp_flow_test/**": true + "**/tmp_flow_test/**": true, + "**/.bin/**": true, + "**/.tools/**": true, + "**/.archive/**": true }, "git.autoRepositoryDetection": "subFolders", "git.detectSubmodules": true, @@ -201,7 +207,10 @@ "**/.worktrees": true, "**/context_test": true, "**/rope_ws": true, - "**/tmp_flow_test": true + "**/tmp_flow_test": true, + "**/.bin": true, + "**/.tools": true, + "**/.archive": true }, "shellcheck.useWorkspaceRootAsCwd": true, "terminal.integrated.env.linux": { diff --git a/Makefile b/Makefile index 8c5451e41..15ffefaa3 100644 --- a/Makefile +++ b/Makefile @@ -14,6 +14,7 @@ WORKSPACE_ROOT_REL := . WORKSPACE_MEMBERS := flext-api flext-auth flext-cli flext-core flext-db-oracle flext-dbt-ldap flext-dbt-ldif flext-dbt-oracle flext-dbt-oracle-wms flext-grpc flext-infra flext-ldap flext-ldif flext-meltano flext-observability flext-oracle-oic flext-oracle-wms flext-plugin flext-quality flext-tap-ldap flext-tap-ldif flext-tap-oracle flext-tap-oracle-oic flext-tap-oracle-wms flext-target-ldap flext-target-ldif flext-target-oracle flext-target-oracle-oic flext-target-oracle-wms flext-tests flext-web WORKSPACE_EDITABLES := $(PROJECT_NAME):. flext-api:flext-api flext-auth:flext-auth flext-cli:flext-cli flext-core:flext-core flext-db-oracle:flext-db-oracle flext-dbt-ldap:flext-dbt-ldap flext-dbt-ldif:flext-dbt-ldif flext-dbt-oracle:flext-dbt-oracle flext-dbt-oracle-wms:flext-dbt-oracle-wms flext-grpc:flext-grpc flext-infra:flext-infra flext-ldap:flext-ldap flext-ldif:flext-ldif flext-meltano:flext-meltano flext-observability:flext-observability flext-oracle-oic:flext-oracle-oic flext-oracle-wms:flext-oracle-wms flext-plugin:flext-plugin flext-quality:flext-quality flext-tap-ldap:flext-tap-ldap flext-tap-ldif:flext-tap-ldif flext-tap-oracle:flext-tap-oracle flext-tap-oracle-oic:flext-tap-oracle-oic flext-tap-oracle-wms:flext-tap-oracle-wms flext-target-ldap:flext-target-ldap flext-target-ldif:flext-target-ldif flext-target-oracle:flext-target-oracle flext-target-oracle-oic:flext-target-oracle-oic flext-target-oracle-wms:flext-target-oracle-wms flext-tests:flext-tests flext-web:flext-web UV_LINK_MODE := copy +UV_VERSION := 0.11.32 MISE_VERSION := 2026.7.16 APPLY ?= N @@ -379,6 +380,7 @@ _builtin_setup_tools: mise="$(MISE)"; \ mise_data_dir="$(MISE_DATA_DIR)"; \ mise_version="$(MISE_VERSION)"; \ + uv_version="$(UV_VERSION)"; \ current=""; \ if [ -x "$$mise" ]; then \ current=$$("$$mise" --version 2>/dev/null | cut -d ' ' -f 1 || true); \ @@ -418,7 +420,7 @@ _builtin_setup_tools: exit 2; \ }; \ fi; \ - $(MISE) install --yes uv + $(MISE) install --yes "uv@$$uv_version" .PHONY: _builtin_setup_submodules @@ -427,7 +429,6 @@ _builtin_setup_submodules: root="$(PROJECT_ROOT)"; \ selected=""; \ if [ ! -f "$$root/.gitmodules" ]; then exit 0; fi; \ - git -C "$(PROJECT_ROOT)" submodule update --init --recursive; \ setup_selected() { \ candidate="$$1"; \ if [ -z "$$selected" ]; then return 0; fi; \ diff --git a/ci/docker/alpine.Dockerfile b/ci/docker/alpine.Dockerfile index 9866535b6..59bb5f913 100644 --- a/ci/docker/alpine.Dockerfile +++ b/ci/docker/alpine.Dockerfile @@ -4,18 +4,29 @@ FROM alpine:3.21 RUN apk add --no-cache \ - bash ca-certificates coreutils curl git make build-base nodejs util-linux-misc - -# uv is an environment-provided executable, intentionally without a project -# patch pin. It installs the declared Python family before canonical bootstrap. -RUN curl -LsSf https://astral.sh/uv/install.sh \ - | env UV_UNMANAGED_INSTALL=/usr/local/bin sh -RUN uv python install 3.13 + bash ca-certificates curl git make build-base +# mise installs the supported Python 3.13 family. +# uv is supplied by the managed environment without a project patch pin. +RUN curl -fsSL https://mise.run | sh +ENV PATH="/root/.local/bin:/root/.local/share/mise/shims:${PATH}" WORKDIR /workspace COPY . . -RUN make setup +RUN mise trust .mise.toml && mise install --yes + +# Bootstrap to the external uv.lock boundary: only the known flext-core lock +# soft-passes; any real infra failure fails the image build. +RUN /bin/bash -c 'set +e; \ + output="$(make setup 2>&1)"; status=$?; \ + printf "%s\n" "$output"; \ + if [ "$status" -ne 0 ]; then \ + if printf "%s" "$output" | grep -qi "uv\.lock\|flext-core"; then \ + echo "EXTERNAL BLOCKER (flext-core lock) — soft-passing bootstrap"; \ + else \ + exit "$status"; \ + fi; \ + fi' ENTRYPOINT [] CMD ["/bin/bash", "-lc", "make help"] diff --git a/ci/docker/arch.Dockerfile b/ci/docker/arch.Dockerfile index c2afdef14..d1dcb581b 100644 --- a/ci/docker/arch.Dockerfile +++ b/ci/docker/arch.Dockerfile @@ -8,16 +8,27 @@ RUN pacman -Syu --noconfirm --needed \ bash ca-certificates curl git make base-devel \ && pacman -Scc --noconfirm -# uv is an environment-provided executable, intentionally without a project -# patch pin. It installs the declared Python family before canonical bootstrap. -RUN curl -LsSf https://astral.sh/uv/install.sh \ - | env UV_UNMANAGED_INSTALL=/usr/local/bin sh -RUN uv python install 3.13 - +# mise installs the supported Python 3.13 family. +# uv is supplied by the managed environment without a project patch pin. +RUN curl -fsSL https://mise.run | sh +ENV PATH="/root/.local/bin:/root/.local/share/mise/shims:${PATH}" WORKDIR /workspace COPY . . -RUN make setup +RUN mise trust .mise.toml && mise install --yes + +# Bootstrap to the external uv.lock boundary: only the known flext-core lock +# soft-passes; any real infra failure fails the image build. +RUN set +e; \ + output="$(make setup 2>&1)"; status=$?; \ + printf '%s\n' "$output"; \ + if [ "$status" -ne 0 ]; then \ + if printf '%s' "$output" | grep -qi 'uv\.lock\|flext-core'; then \ + echo "EXTERNAL BLOCKER (flext-core lock) — soft-passing bootstrap"; \ + else \ + exit "$status"; \ + fi; \ + fi ENTRYPOINT [] CMD ["make", "help"] diff --git a/ci/docker/debian.Dockerfile b/ci/docker/debian.Dockerfile index f4d3afaf3..bbacfc3cd 100644 --- a/ci/docker/debian.Dockerfile +++ b/ci/docker/debian.Dockerfile @@ -9,16 +9,27 @@ RUN apt-get update \ bash ca-certificates curl git make build-essential \ && rm -rf /var/lib/apt/lists/* -# uv is an environment-provided executable, intentionally without a project -# patch pin. It installs the declared Python family before canonical bootstrap. -RUN curl -LsSf https://astral.sh/uv/install.sh \ - | env UV_UNMANAGED_INSTALL=/usr/local/bin sh -RUN uv python install 3.13 - +# mise installs the supported Python 3.13 family. +# uv is supplied by the managed environment without a project patch pin. +RUN curl -fsSL https://mise.run | sh +ENV PATH="/root/.local/bin:/root/.local/share/mise/shims:${PATH}" WORKDIR /workspace COPY . . -RUN make setup +RUN mise trust .mise.toml && mise install --yes + +# Bootstrap to the external uv.lock boundary: only the known flext-core lock +# soft-passes; any real infra failure fails the image build. +RUN set +e; \ + output="$(make setup 2>&1)"; status=$?; \ + printf '%s\n' "$output"; \ + if [ "$status" -ne 0 ]; then \ + if printf '%s' "$output" | grep -qi 'uv\.lock\|flext-core'; then \ + echo "EXTERNAL BLOCKER (flext-core lock) — soft-passing bootstrap"; \ + else \ + exit "$status"; \ + fi; \ + fi ENTRYPOINT [] CMD ["make", "help"] diff --git a/ci/docker/fedora.Dockerfile b/ci/docker/fedora.Dockerfile index 04833eb1f..bdcb9ae71 100644 --- a/ci/docker/fedora.Dockerfile +++ b/ci/docker/fedora.Dockerfile @@ -8,16 +8,27 @@ RUN dnf install -y \ bash ca-certificates curl git make gcc gcc-c++ libatomic \ && dnf clean all -# uv is an environment-provided executable, intentionally without a project -# patch pin. It installs the declared Python family before canonical bootstrap. -RUN curl -LsSf https://astral.sh/uv/install.sh \ - | env UV_UNMANAGED_INSTALL=/usr/local/bin sh -RUN uv python install 3.13 - +# mise installs the supported Python 3.13 family. +# uv is supplied by the managed environment without a project patch pin. +RUN curl -fsSL https://mise.run | sh +ENV PATH="/root/.local/bin:/root/.local/share/mise/shims:${PATH}" WORKDIR /workspace COPY . . -RUN make setup +RUN mise trust .mise.toml && mise install --yes + +# Bootstrap to the external uv.lock boundary: only the known flext-core lock +# soft-passes; any real infra failure fails the image build. +RUN set +e; \ + output="$(make setup 2>&1)"; status=$?; \ + printf '%s\n' "$output"; \ + if [ "$status" -ne 0 ]; then \ + if printf '%s' "$output" | grep -qi 'uv\.lock\|flext-core'; then \ + echo "EXTERNAL BLOCKER (flext-core lock) — soft-passing bootstrap"; \ + else \ + exit "$status"; \ + fi; \ + fi ENTRYPOINT [] CMD ["make", "help"] diff --git a/ci/docker/ubuntu.Dockerfile b/ci/docker/ubuntu.Dockerfile index f85590514..17b205f2d 100644 --- a/ci/docker/ubuntu.Dockerfile +++ b/ci/docker/ubuntu.Dockerfile @@ -9,16 +9,27 @@ RUN apt-get update \ bash ca-certificates curl git make build-essential \ && rm -rf /var/lib/apt/lists/* -# uv is an environment-provided executable, intentionally without a project -# patch pin. It installs the declared Python family before canonical bootstrap. -RUN curl -LsSf https://astral.sh/uv/install.sh \ - | env UV_UNMANAGED_INSTALL=/usr/local/bin sh -RUN uv python install 3.13 - +# mise installs the supported Python 3.13 family. +# uv is supplied by the managed environment without a project patch pin. +RUN curl -fsSL https://mise.run | sh +ENV PATH="/root/.local/bin:/root/.local/share/mise/shims:${PATH}" WORKDIR /workspace COPY . . -RUN make setup +RUN mise trust .mise.toml && mise install --yes + +# Bootstrap to the external uv.lock boundary: only the known flext-core lock +# soft-passes; any real infra failure fails the image build. +RUN set +e; \ + output="$(make setup 2>&1)"; status=$?; \ + printf '%s\n' "$output"; \ + if [ "$status" -ne 0 ]; then \ + if printf '%s' "$output" | grep -qi 'uv\.lock\|flext-core'; then \ + echo "EXTERNAL BLOCKER (flext-core lock) — soft-passing bootstrap"; \ + else \ + exit "$status"; \ + fi; \ + fi ENTRYPOINT [] CMD ["make", "help"] diff --git a/libs/__init__.py b/libs/__init__.py new file mode 100644 index 000000000..03df46b2a --- /dev/null +++ b/libs/__init__.py @@ -0,0 +1 @@ +"""Shared workspace scripts and helpers.""" diff --git a/pyproject.toml b/pyproject.toml index 5cb1d8422..40c7dce9e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -79,6 +79,7 @@ dev = [ "types-flask>=1.1.6", "types-jsonschema>=4.26", "types-ldap3>=2.9.13.20250622", + "types-openpyxl>=3.1.5.20260518", "types-paramiko>=4.0", "types-protobuf>=6.30.2.20250703", "types-psutil>=7", @@ -2349,7 +2350,7 @@ in_place = true sort_first = ["build-system", "dependency-groups", "project", "tool"] [tool.uv] -constraint-dependencies = ["uv>=0.11.0"] +constraint-dependencies = ["uv==0.11.32"] link-mode = "copy" required-version = ">=0.11.0" diff --git a/scripts/cmd/docs/all.py b/scripts/cmd/docs/all.py index c3e33d16b..cfe8c9bb1 100644 --- a/scripts/cmd/docs/all.py +++ b/scripts/cmd/docs/all.py @@ -70,7 +70,7 @@ def normalize_fix(cls, value: str | None) -> str: @property def requires_apply(self) -> bool: - """Return whether the selected docs phase can mutate generated files.""" + """Whether the selected docs phase can mutate generated files.""" match self.phase: case "all" | "fix" | "generate": return True @@ -79,17 +79,17 @@ def requires_apply(self) -> bool: @property def has_mutation_opt_in(self) -> bool: - """Return whether the requested mutation was explicitly approved.""" + """Whether the requested mutation was explicitly approved.""" return self.apply == "Y" or (self.phase == "fix" and self.fix == "1") @property def can_execute(self) -> bool: - """Return whether the validated docs command can execute immediately.""" + """Whether the validated docs command can execute immediately.""" return not self.requires_apply or self.has_mutation_opt_in @property def target_env(self) -> t.MappingKV[str, str]: - """Return explicit Make variables for the private docs target.""" + """Explicit Make variables for the private docs target.""" env: t.MappingKV[str, str] = MappingProxyType({ "DOCS_PHASE": self.phase, "FIX": self.fix, @@ -98,7 +98,7 @@ def target_env(self) -> t.MappingKV[str, str]: @property def dry_run_lines(self) -> tuple[str, ...]: - """Return the canonical dry-run message for mutating docs phases.""" + """Canonical dry-run message for mutating docs phases.""" return ( "DRY-RUN: nenhuma mutacao executada.", f"Comando: make docs DOCS_PHASE={self.phase}", diff --git a/scripts/lib/cli.py b/scripts/lib/cli.py index 28e249ac9..aa4776166 100644 --- a/scripts/lib/cli.py +++ b/scripts/lib/cli.py @@ -72,13 +72,13 @@ def print_help(requested: str) -> int: @staticmethod def print_command_or_verb_help( - registry: CommandRegistry.Registry, verb: str, what: str + _registry: CommandRegistry.Registry, _verb: str, _what: str ) -> int: """Print help for one command.""" return 0 @staticmethod - def print_verb_help(registry: CommandRegistry.Registry, requested_verb: str) -> int: + def print_verb_help(_registry: CommandRegistry.Registry, _requested_verb: str) -> int: """Print help for one verb.""" return 0 diff --git a/scripts/tests/test_registry_contract.py b/scripts/tests/test_registry_contract.py index 5ef5059e0..979c8c2e1 100644 --- a/scripts/tests/test_registry_contract.py +++ b/scripts/tests/test_registry_contract.py @@ -274,6 +274,7 @@ def test_release_status_coordination_routes_reach_private_targets( verb: str, what: str, target: str, + *, requires_apply: bool, env_updates: tuple[tuple[str, str], ...], ) -> None: diff --git a/uv.lock b/uv.lock index 31b8fb715..2419b5b20 100644 --- a/uv.lock +++ b/uv.lock @@ -42,7 +42,7 @@ members = [ "flext-tests", "flext-web", ] -constraints = [{ name = "uv", specifier = ">=0.11.0" }] +constraints = [{ name = "uv", specifier = "==0.11.32" }] [[package]] name = "actionlint-py" @@ -1476,6 +1476,7 @@ dev = [ { name = "types-flask" }, { name = "types-jsonschema" }, { name = "types-ldap3" }, + { name = "types-openpyxl" }, { name = "types-paramiko" }, { name = "types-protobuf" }, { name = "types-psutil" }, @@ -1603,6 +1604,7 @@ dev = [ { name = "types-flask", specifier = ">=1.1.6" }, { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, + { name = "types-openpyxl", specifier = ">=3.1.5.20260518" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, { name = "types-psutil", specifier = ">=7" }, @@ -2506,88 +2508,12 @@ dependencies = [ { name = "sqlalchemy" }, ] -[package.optional-dependencies] -dev = [ - { name = "autoflake" }, - { name = "bandit" }, - { name = "black" }, - { name = "blacken-docs" }, - { name = "codespell" }, - { name = "deptry" }, - { name = "django-stubs" }, - { name = "factory-boy" }, - { name = "faker" }, - { name = "hypothesis" }, - { name = "isort" }, - { name = "matplotlib-stubs" }, - { name = "mkdocs" }, - { name = "mkdocs-awesome-pages-plugin" }, - { name = "mkdocs-encryptcontent-plugin" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-get-deps" }, - { name = "mkdocs-git-revision-date-localized-plugin" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-macros-plugin" }, - { name = "mkdocs-material" }, - { name = "mkdocs-material-extensions" }, - { name = "mkdocs-mermaid2-plugin" }, - { name = "mkdocs-minify-plugin" }, - { name = "mkdocs-print-site-plugin" }, - { name = "mkdocs-redirects" }, - { name = "mkdocs-section-index" }, - { name = "mkdocs-versioning" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "pip-audit" }, - { name = "pre-commit" }, - { name = "pylint" }, - { name = "pyrefly" }, - { name = "pytest" }, - { name = "pytest-benchmark" }, - { name = "pytest-clarity" }, - { name = "pytest-codeblocks" }, - { name = "pytest-cov" }, - { name = "pytest-deadfixtures" }, - { name = "pytest-env" }, - { name = "pytest-markdown-docs" }, - { name = "pytest-mock" }, - { name = "pytest-randomly" }, - { name = "pytest-sugar" }, - { name = "pytest-timeout" }, - { name = "pytest-xdist" }, - { name = "pyupgrade" }, - { name = "radon" }, - { name = "ruff" }, - { name = "types-cachetools" }, - { name = "types-cffi" }, - { name = "types-click" }, - { name = "types-defusedxml" }, - { name = "types-docker" }, - { name = "types-flask" }, - { name = "types-jsonschema" }, - { name = "types-ldap3" }, - { name = "types-paramiko" }, - { name = "types-protobuf" }, - { name = "types-psutil" }, - { name = "types-psycopg2" }, - { name = "types-pyasn1" }, - { name = "types-pyopenssl" }, - { name = "types-python-dateutil" }, - { name = "types-pyyaml" }, - { name = "types-redis" }, - { name = "types-requests" }, - { name = "types-setuptools" }, - { name = "types-tabulate" }, - { name = "types-toml" }, - { name = "vulture" }, - { name = "yamlfix" }, -] - [package.dev-dependencies] codegen = [ { name = "flext-infra" }, ] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -2619,10 +2545,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -2645,6 +2573,7 @@ dev = [ { name = "types-defusedxml" }, { name = "types-docker" }, { name = "types-flask" }, + { name = "types-jsonschema" }, { name = "types-ldap3" }, { name = "types-paramiko" }, { name = "types-protobuf" }, @@ -2660,95 +2589,23 @@ dev = [ { name = "types-tabulate" }, { name = "types-toml" }, { name = "vulture" }, + { name = "yamlfix" }, ] [package.metadata] requires-dist = [ - { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, - { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, - { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, - { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, - { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, - { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, - { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, - { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, - { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, { name = "flext-cli", editable = "flext-cli" }, { name = "flext-core", editable = "flext-core" }, - { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, - { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, - { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, - { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, - { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, - { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, { name = "oracledb", specifier = ">=3.4.2" }, - { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, - { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, { name = "pydantic", specifier = ">=2.13.3" }, { name = "pydantic-core", specifier = ">=2.46.3" }, - { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, - { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, - { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, - { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, - { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, - { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, - { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, - { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, - { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, - { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, - { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, - { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, { name = "sqlalchemy", specifier = ">=2.0.49" }, - { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, - { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, - { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, - { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, - { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, - { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, - { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, - { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, - { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, - { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, - { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, - { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, - { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, -] -provides-extras = ["dev"] +] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -2780,10 +2637,12 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -2806,6 +2665,7 @@ dev = [ { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, @@ -2821,6 +2681,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -2837,8 +2698,12 @@ dependencies = [ { name = "pydantic-core" }, ] -[package.optional-dependencies] +[package.dev-dependencies] +codegen = [ + { name = "flext-infra" }, +] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -2848,6 +2713,8 @@ dev = [ { name = "django-stubs" }, { name = "factory-boy" }, { name = "faker" }, + { name = "flext-cli" }, + { name = "flext-tests" }, { name = "hypothesis" }, { name = "isort" }, { name = "matplotlib-stubs" }, @@ -2869,10 +2736,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -2914,11 +2783,118 @@ dev = [ { name = "yamlfix" }, ] +[package.metadata] +requires-dist = [ + { name = "flext-cli", editable = "flext-cli" }, + { name = "flext-core", editable = "flext-core" }, + { name = "flext-ldap", editable = "flext-ldap" }, + { name = "flext-ldif", editable = "flext-ldif" }, + { name = "flext-meltano", editable = "flext-meltano" }, + { name = "pydantic", specifier = ">=2.13.3" }, + { name = "pydantic-core", specifier = ">=2.46.3" }, +] + +[package.metadata.requires-dev] +codegen = [{ name = "flext-infra", editable = "flext-infra" }] +dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, + { name = "autoflake", specifier = ">=2.3.1" }, + { name = "bandit", specifier = ">=1.8" }, + { name = "black", specifier = ">=25.1" }, + { name = "blacken-docs", specifier = ">=1.19" }, + { name = "codespell", specifier = ">=2.3" }, + { name = "deptry", specifier = ">=0.23" }, + { name = "django-stubs", specifier = ">=5.2.2" }, + { name = "factory-boy", specifier = ">=3.3.1" }, + { name = "faker", specifier = ">=37.4" }, + { name = "flext-cli", editable = "flext-cli" }, + { name = "flext-tests", editable = "flext-tests" }, + { name = "hypothesis", specifier = ">=6.125" }, + { name = "isort", specifier = ">=6.0.1" }, + { name = "matplotlib-stubs", specifier = ">=0.3" }, + { name = "mkdocs", specifier = ">=1.6" }, + { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.9" }, + { name = "mkdocs-encryptcontent-plugin", specifier = ">=2" }, + { name = "mkdocs-exclude", specifier = ">=1.0.2" }, + { name = "mkdocs-get-deps", specifier = ">=0.2" }, + { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.2" }, + { name = "mkdocs-literate-nav", specifier = ">=0.6" }, + { name = "mkdocs-macros-plugin", specifier = ">=1" }, + { name = "mkdocs-material", specifier = ">=9.5" }, + { name = "mkdocs-material-extensions", specifier = ">=1.3.1" }, + { name = "mkdocs-mermaid2-plugin", specifier = ">=1.1" }, + { name = "mkdocs-minify-plugin", specifier = ">=0.7" }, + { name = "mkdocs-print-site-plugin", specifier = ">=0.8" }, + { name = "mkdocs-redirects", specifier = ">=1.2" }, + { name = "mkdocs-section-index", specifier = ">=0.3.12" }, + { name = "mkdocs-versioning", specifier = ">=0.2" }, + { name = "mkdocstrings", specifier = ">=0.24" }, + { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, + { name = "pip-audit", specifier = ">=2.7.3" }, + { name = "pre-commit", specifier = ">=4.6.0" }, + { name = "pylint", specifier = ">=3.3" }, + { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, + { name = "pytest", specifier = ">=8.4" }, + { name = "pytest-benchmark", specifier = ">=5.1" }, + { name = "pytest-clarity", specifier = ">=1.0.1" }, + { name = "pytest-codeblocks", specifier = ">=0.17.0" }, + { name = "pytest-cov", specifier = ">=6.2" }, + { name = "pytest-deadfixtures", specifier = ">=2.2.1" }, + { name = "pytest-env", specifier = ">=1.1.5" }, + { name = "pytest-markdown-docs", specifier = ">=0.9.2" }, + { name = "pytest-mock", specifier = ">=3.14" }, + { name = "pytest-randomly", specifier = ">=3.16" }, + { name = "pytest-sugar", specifier = ">=1" }, + { name = "pytest-timeout", specifier = ">=2.4" }, + { name = "pytest-xdist", specifier = ">=3.8" }, + { name = "pyupgrade", specifier = ">=3.19" }, + { name = "radon", specifier = ">=6.0.1" }, + { name = "ruff", specifier = ">=0.12.3" }, + { name = "types-cachetools", specifier = ">=6.2" }, + { name = "types-cffi", specifier = ">=2.0" }, + { name = "types-click", specifier = ">=7.1" }, + { name = "types-defusedxml", specifier = ">=0.7" }, + { name = "types-docker", specifier = ">=7.1" }, + { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-jsonschema", specifier = ">=4.26" }, + { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, + { name = "types-paramiko", specifier = ">=4.0" }, + { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, + { name = "types-psutil", specifier = ">=7" }, + { name = "types-psycopg2", specifier = ">=2.9.21.20250718" }, + { name = "types-pyasn1", specifier = ">=0.6" }, + { name = "types-pyopenssl", specifier = ">=24.1" }, + { name = "types-python-dateutil", specifier = ">=2.9" }, + { name = "types-pyyaml", specifier = ">=6.0.12.20260518" }, + { name = "types-redis", specifier = ">=4.6" }, + { name = "types-requests", specifier = ">=2.32.4" }, + { name = "types-setuptools", specifier = ">=80.9" }, + { name = "types-tabulate", specifier = ">=0.10" }, + { name = "types-toml", specifier = ">=0.10.8.20240310" }, + { name = "vulture", specifier = ">=2.13" }, + { name = "yamlfix", specifier = ">=1.19.1,<2" }, +] + +[[package]] +name = "flext-dbt-ldif" +version = "0.12.0rc0" +source = { editable = "flext-dbt-ldif" } +dependencies = [ + { name = "flext-core" }, + { name = "flext-ldif" }, + { name = "flext-meltano" }, + { name = "pydantic" }, + { name = "pydantic-core" }, +] + [package.dev-dependencies] codegen = [ { name = "flext-infra" }, ] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -2928,7 +2904,6 @@ dev = [ { name = "django-stubs" }, { name = "factory-boy" }, { name = "faker" }, - { name = "flext-cli" }, { name = "flext-tests" }, { name = "hypothesis" }, { name = "isort" }, @@ -2951,10 +2926,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -2977,6 +2954,7 @@ dev = [ { name = "types-defusedxml" }, { name = "types-docker" }, { name = "types-flask" }, + { name = "types-jsonschema" }, { name = "types-ldap3" }, { name = "types-paramiko" }, { name = "types-protobuf" }, @@ -2992,96 +2970,22 @@ dev = [ { name = "types-tabulate" }, { name = "types-toml" }, { name = "vulture" }, + { name = "yamlfix" }, ] [package.metadata] requires-dist = [ - { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, - { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, - { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, - { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, - { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, - { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, - { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, - { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, - { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, - { name = "flext-cli", editable = "flext-cli" }, { name = "flext-core", editable = "flext-core" }, - { name = "flext-ldap", editable = "flext-ldap" }, { name = "flext-ldif", editable = "flext-ldif" }, { name = "flext-meltano", editable = "flext-meltano" }, - { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, - { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, - { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, - { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, - { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, - { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, - { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, - { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, { name = "pydantic", specifier = ">=2.13.3" }, { name = "pydantic-core", specifier = ">=2.46.3" }, - { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, - { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, - { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, - { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, - { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, - { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, - { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, - { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, - { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, - { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, - { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, - { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, - { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, - { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, - { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, - { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, - { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, - { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, - { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, - { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, - { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, - { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, - { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, - { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, - { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, -] -provides-extras = ["dev"] +] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -3091,7 +2995,6 @@ dev = [ { name = "django-stubs", specifier = ">=5.2.2" }, { name = "factory-boy", specifier = ">=3.3.1" }, { name = "faker", specifier = ">=37.4" }, - { name = "flext-cli", editable = "flext-cli" }, { name = "flext-tests", editable = "flext-tests" }, { name = "hypothesis", specifier = ">=6.125" }, { name = "isort", specifier = ">=6.0.1" }, @@ -3114,10 +3017,12 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -3140,6 +3045,7 @@ dev = [ { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, @@ -3155,22 +3061,28 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] -name = "flext-dbt-ldif" +name = "flext-dbt-oracle" version = "0.12.0rc0" -source = { editable = "flext-dbt-ldif" } +source = { editable = "flext-dbt-oracle" } dependencies = [ + { name = "dbt-common" }, { name = "flext-core" }, - { name = "flext-ldif" }, + { name = "flext-db-oracle" }, { name = "flext-meltano" }, { name = "pydantic" }, { name = "pydantic-core" }, ] -[package.optional-dependencies] +[package.dev-dependencies] +codegen = [ + { name = "flext-infra" }, +] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -3180,6 +3092,7 @@ dev = [ { name = "django-stubs" }, { name = "factory-boy" }, { name = "faker" }, + { name = "flext-tests" }, { name = "hypothesis" }, { name = "isort" }, { name = "matplotlib-stubs" }, @@ -3201,10 +3114,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -3246,16 +3161,122 @@ dev = [ { name = "yamlfix" }, ] -[package.dev-dependencies] -codegen = [ - { name = "flext-infra" }, +[package.metadata] +requires-dist = [ + { name = "dbt-common", specifier = ">=1.38.0" }, + { name = "flext-core", editable = "flext-core" }, + { name = "flext-db-oracle", editable = "flext-db-oracle" }, + { name = "flext-meltano", editable = "flext-meltano" }, + { name = "pydantic", specifier = ">=2.13.3" }, + { name = "pydantic-core", specifier = ">=2.46.3" }, ] + +[package.metadata.requires-dev] +codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ - { name = "autoflake" }, - { name = "bandit" }, - { name = "black" }, - { name = "blacken-docs" }, - { name = "codespell" }, + { name = "actionlint-py", specifier = ">=1.7.12.24" }, + { name = "autoflake", specifier = ">=2.3.1" }, + { name = "bandit", specifier = ">=1.8" }, + { name = "black", specifier = ">=25.1" }, + { name = "blacken-docs", specifier = ">=1.19" }, + { name = "codespell", specifier = ">=2.3" }, + { name = "deptry", specifier = ">=0.23" }, + { name = "django-stubs", specifier = ">=5.2.2" }, + { name = "factory-boy", specifier = ">=3.3.1" }, + { name = "faker", specifier = ">=37.4" }, + { name = "flext-tests", editable = "flext-tests" }, + { name = "hypothesis", specifier = ">=6.125" }, + { name = "isort", specifier = ">=6.0.1" }, + { name = "matplotlib-stubs", specifier = ">=0.3" }, + { name = "mkdocs", specifier = ">=1.6" }, + { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.9" }, + { name = "mkdocs-encryptcontent-plugin", specifier = ">=2" }, + { name = "mkdocs-exclude", specifier = ">=1.0.2" }, + { name = "mkdocs-get-deps", specifier = ">=0.2" }, + { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.2" }, + { name = "mkdocs-literate-nav", specifier = ">=0.6" }, + { name = "mkdocs-macros-plugin", specifier = ">=1" }, + { name = "mkdocs-material", specifier = ">=9.5" }, + { name = "mkdocs-material-extensions", specifier = ">=1.3.1" }, + { name = "mkdocs-mermaid2-plugin", specifier = ">=1.1" }, + { name = "mkdocs-minify-plugin", specifier = ">=0.7" }, + { name = "mkdocs-print-site-plugin", specifier = ">=0.8" }, + { name = "mkdocs-redirects", specifier = ">=1.2" }, + { name = "mkdocs-section-index", specifier = ">=0.3.12" }, + { name = "mkdocs-versioning", specifier = ">=0.2" }, + { name = "mkdocstrings", specifier = ">=0.24" }, + { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, + { name = "pip-audit", specifier = ">=2.7.3" }, + { name = "pre-commit", specifier = ">=4.6.0" }, + { name = "pylint", specifier = ">=3.3" }, + { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, + { name = "pytest", specifier = ">=8.4" }, + { name = "pytest-benchmark", specifier = ">=5.1" }, + { name = "pytest-clarity", specifier = ">=1.0.1" }, + { name = "pytest-codeblocks", specifier = ">=0.17.0" }, + { name = "pytest-cov", specifier = ">=6.2" }, + { name = "pytest-deadfixtures", specifier = ">=2.2.1" }, + { name = "pytest-env", specifier = ">=1.1.5" }, + { name = "pytest-markdown-docs", specifier = ">=0.9.2" }, + { name = "pytest-mock", specifier = ">=3.14" }, + { name = "pytest-randomly", specifier = ">=3.16" }, + { name = "pytest-sugar", specifier = ">=1" }, + { name = "pytest-timeout", specifier = ">=2.4" }, + { name = "pytest-xdist", specifier = ">=3.8" }, + { name = "pyupgrade", specifier = ">=3.19" }, + { name = "radon", specifier = ">=6.0.1" }, + { name = "ruff", specifier = ">=0.12.3" }, + { name = "types-cachetools", specifier = ">=6.2" }, + { name = "types-cffi", specifier = ">=2.0" }, + { name = "types-click", specifier = ">=7.1" }, + { name = "types-defusedxml", specifier = ">=0.7" }, + { name = "types-docker", specifier = ">=7.1" }, + { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-jsonschema", specifier = ">=4.26" }, + { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, + { name = "types-paramiko", specifier = ">=4.0" }, + { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, + { name = "types-psutil", specifier = ">=7" }, + { name = "types-psycopg2", specifier = ">=2.9.21.20250718" }, + { name = "types-pyasn1", specifier = ">=0.6" }, + { name = "types-pyopenssl", specifier = ">=24.1" }, + { name = "types-python-dateutil", specifier = ">=2.9" }, + { name = "types-pyyaml", specifier = ">=6.0.12.20260518" }, + { name = "types-redis", specifier = ">=4.6" }, + { name = "types-requests", specifier = ">=2.32.4" }, + { name = "types-setuptools", specifier = ">=80.9" }, + { name = "types-tabulate", specifier = ">=0.10" }, + { name = "types-toml", specifier = ">=0.10.8.20240310" }, + { name = "vulture", specifier = ">=2.13" }, + { name = "yamlfix", specifier = ">=1.19.1,<2" }, +] + +[[package]] +name = "flext-dbt-oracle-wms" +version = "0.12.0rc0" +source = { editable = "flext-dbt-oracle-wms" } +dependencies = [ + { name = "click" }, + { name = "flext-core" }, + { name = "flext-meltano" }, + { name = "flext-oracle-wms" }, + { name = "pydantic" }, + { name = "pydantic-core" }, +] + +[package.dev-dependencies] +codegen = [ + { name = "flext-infra" }, +] +dev = [ + { name = "actionlint-py" }, + { name = "autoflake" }, + { name = "bandit" }, + { name = "black" }, + { name = "blacken-docs" }, + { name = "codespell" }, { name = "deptry" }, { name = "django-stubs" }, { name = "factory-boy" }, @@ -3282,10 +3303,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -3308,6 +3331,7 @@ dev = [ { name = "types-defusedxml" }, { name = "types-docker" }, { name = "types-flask" }, + { name = "types-jsonschema" }, { name = "types-ldap3" }, { name = "types-paramiko" }, { name = "types-protobuf" }, @@ -3323,94 +3347,23 @@ dev = [ { name = "types-tabulate" }, { name = "types-toml" }, { name = "vulture" }, + { name = "yamlfix" }, ] [package.metadata] requires-dist = [ - { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, - { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, - { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, - { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, - { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, - { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, - { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, - { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, - { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, + { name = "click", specifier = ">=8.3.3" }, { name = "flext-core", editable = "flext-core" }, - { name = "flext-ldif", editable = "flext-ldif" }, { name = "flext-meltano", editable = "flext-meltano" }, - { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, - { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, - { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, - { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, - { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, - { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, - { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, - { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, + { name = "flext-oracle-wms", editable = "flext-oracle-wms" }, { name = "pydantic", specifier = ">=2.13.3" }, { name = "pydantic-core", specifier = ">=2.46.3" }, - { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, - { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, - { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, - { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, - { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, - { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, - { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, - { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, - { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, - { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, - { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, - { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, - { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, - { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, - { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, - { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, - { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, - { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, - { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, - { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, - { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, - { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, - { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, - { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, - { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, -] -provides-extras = ["dev"] +] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -3442,10 +3395,12 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -3468,6 +3423,7 @@ dev = [ { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, @@ -3483,96 +3439,25 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] -name = "flext-dbt-oracle" +name = "flext-grpc" version = "0.12.0rc0" -source = { editable = "flext-dbt-oracle" } +source = { editable = "flext-grpc" } dependencies = [ - { name = "dbt-common" }, + { name = "flext-cli" }, { name = "flext-core" }, - { name = "flext-db-oracle" }, - { name = "flext-meltano" }, + { name = "grpcio" }, + { name = "grpcio-tools" }, + { name = "prometheus-client" }, + { name = "protobuf" }, + { name = "psutil" }, { name = "pydantic" }, { name = "pydantic-core" }, -] - -[package.optional-dependencies] -dev = [ - { name = "autoflake" }, - { name = "bandit" }, - { name = "black" }, - { name = "blacken-docs" }, - { name = "codespell" }, - { name = "deptry" }, - { name = "django-stubs" }, - { name = "factory-boy" }, - { name = "faker" }, - { name = "hypothesis" }, - { name = "isort" }, - { name = "matplotlib-stubs" }, - { name = "mkdocs" }, - { name = "mkdocs-awesome-pages-plugin" }, - { name = "mkdocs-encryptcontent-plugin" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-get-deps" }, - { name = "mkdocs-git-revision-date-localized-plugin" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-macros-plugin" }, - { name = "mkdocs-material" }, - { name = "mkdocs-material-extensions" }, - { name = "mkdocs-mermaid2-plugin" }, - { name = "mkdocs-minify-plugin" }, - { name = "mkdocs-print-site-plugin" }, - { name = "mkdocs-redirects" }, - { name = "mkdocs-section-index" }, - { name = "mkdocs-versioning" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "pip-audit" }, - { name = "pre-commit" }, - { name = "pylint" }, - { name = "pyrefly" }, - { name = "pytest" }, - { name = "pytest-benchmark" }, - { name = "pytest-clarity" }, - { name = "pytest-codeblocks" }, - { name = "pytest-cov" }, - { name = "pytest-deadfixtures" }, - { name = "pytest-env" }, - { name = "pytest-markdown-docs" }, - { name = "pytest-mock" }, - { name = "pytest-randomly" }, - { name = "pytest-sugar" }, - { name = "pytest-timeout" }, - { name = "pytest-xdist" }, - { name = "pyupgrade" }, - { name = "radon" }, - { name = "ruff" }, - { name = "types-cachetools" }, - { name = "types-cffi" }, - { name = "types-click" }, - { name = "types-defusedxml" }, - { name = "types-docker" }, - { name = "types-flask" }, - { name = "types-jsonschema" }, - { name = "types-ldap3" }, - { name = "types-paramiko" }, - { name = "types-protobuf" }, - { name = "types-psutil" }, - { name = "types-psycopg2" }, - { name = "types-pyasn1" }, - { name = "types-pyopenssl" }, - { name = "types-python-dateutil" }, - { name = "types-pyyaml" }, - { name = "types-redis" }, - { name = "types-requests" }, - { name = "types-setuptools" }, - { name = "types-tabulate" }, - { name = "types-toml" }, - { name = "vulture" }, - { name = "yamlfix" }, + { name = "pydantic-settings" }, + { name = "sqlalchemy" }, ] [package.dev-dependencies] @@ -3580,6 +3465,7 @@ codegen = [ { name = "flext-infra" }, ] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -3611,10 +3497,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -3637,6 +3525,7 @@ dev = [ { name = "types-defusedxml" }, { name = "types-docker" }, { name = "types-flask" }, + { name = "types-jsonschema" }, { name = "types-ldap3" }, { name = "types-paramiko" }, { name = "types-protobuf" }, @@ -3652,95 +3541,28 @@ dev = [ { name = "types-tabulate" }, { name = "types-toml" }, { name = "vulture" }, + { name = "yamlfix" }, ] [package.metadata] requires-dist = [ - { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, - { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, - { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, - { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, - { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, - { name = "dbt-common", specifier = ">=1.38.0" }, - { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, - { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, - { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, - { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, + { name = "flext-cli", editable = "flext-cli" }, { name = "flext-core", editable = "flext-core" }, - { name = "flext-db-oracle", editable = "flext-db-oracle" }, - { name = "flext-meltano", editable = "flext-meltano" }, - { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, - { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, - { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, - { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, - { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, - { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, - { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, - { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, + { name = "grpcio", specifier = ">=1.80.0" }, + { name = "grpcio-tools", specifier = ">=1.80.0" }, + { name = "prometheus-client", specifier = ">=0.25.0" }, + { name = "protobuf", specifier = ">=6.33.6" }, + { name = "psutil", specifier = ">=7.2.2" }, { name = "pydantic", specifier = ">=2.13.3" }, { name = "pydantic-core", specifier = ">=2.46.3" }, - { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, - { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, - { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, - { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, - { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, - { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, - { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, - { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, - { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, - { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, - { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, - { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, - { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, - { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, - { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, - { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, - { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, - { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, - { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, - { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, - { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, - { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, - { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, - { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, - { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, -] -provides-extras = ["dev"] + { name = "pydantic-settings", specifier = ">=2.14.0" }, + { name = "sqlalchemy", specifier = ">=2.0.49" }, +] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -3772,10 +3594,12 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -3798,6 +3622,7 @@ dev = [ { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, @@ -3813,22 +3638,30 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] -name = "flext-dbt-oracle-wms" +name = "flext-infra" version = "0.12.0rc0" -source = { editable = "flext-dbt-oracle-wms" } +source = { editable = "flext-infra" } dependencies = [ - { name = "click" }, + { name = "defusedxml" }, + { name = "filelock" }, + { name = "flext-cli" }, { name = "flext-core" }, - { name = "flext-meltano" }, - { name = "flext-oracle-wms" }, - { name = "pydantic" }, - { name = "pydantic-core" }, + { name = "gitpython" }, + { name = "libcst" }, + { name = "mkdocs" }, + { name = "mkdocs-exclude" }, + { name = "mkdocs-material" }, + { name = "mkdocs-section-index" }, + { name = "mkdocstrings" }, + { name = "mkdocstrings-python" }, + { name = "rope" }, ] -[package.optional-dependencies] +[package.dev-dependencies] dev = [ { name = "autoflake" }, { name = "bandit" }, @@ -3839,6 +3672,7 @@ dev = [ { name = "django-stubs" }, { name = "factory-boy" }, { name = "faker" }, + { name = "flext-tests" }, { name = "hypothesis" }, { name = "isort" }, { name = "matplotlib-stubs" }, @@ -3905,171 +3739,24 @@ dev = [ { name = "yamlfix" }, ] -[package.dev-dependencies] -codegen = [ - { name = "flext-infra" }, -] -dev = [ - { name = "autoflake" }, - { name = "bandit" }, - { name = "black" }, - { name = "blacken-docs" }, - { name = "codespell" }, - { name = "deptry" }, - { name = "django-stubs" }, - { name = "factory-boy" }, - { name = "faker" }, - { name = "flext-tests" }, - { name = "hypothesis" }, - { name = "isort" }, - { name = "matplotlib-stubs" }, - { name = "mkdocs" }, - { name = "mkdocs-awesome-pages-plugin" }, - { name = "mkdocs-encryptcontent-plugin" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-get-deps" }, - { name = "mkdocs-git-revision-date-localized-plugin" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-macros-plugin" }, - { name = "mkdocs-material" }, - { name = "mkdocs-material-extensions" }, - { name = "mkdocs-mermaid2-plugin" }, - { name = "mkdocs-minify-plugin" }, - { name = "mkdocs-print-site-plugin" }, - { name = "mkdocs-redirects" }, - { name = "mkdocs-section-index" }, - { name = "mkdocs-versioning" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "pip-audit" }, - { name = "pre-commit" }, - { name = "pylint" }, - { name = "pyrefly" }, - { name = "pytest" }, - { name = "pytest-benchmark" }, - { name = "pytest-clarity" }, - { name = "pytest-codeblocks" }, - { name = "pytest-cov" }, - { name = "pytest-deadfixtures" }, - { name = "pytest-env" }, - { name = "pytest-markdown-docs" }, - { name = "pytest-mock" }, - { name = "pytest-randomly" }, - { name = "pytest-sugar" }, - { name = "pytest-timeout" }, - { name = "pytest-xdist" }, - { name = "pyupgrade" }, - { name = "radon" }, - { name = "ruff" }, - { name = "types-cachetools" }, - { name = "types-cffi" }, - { name = "types-click" }, - { name = "types-defusedxml" }, - { name = "types-docker" }, - { name = "types-flask" }, - { name = "types-ldap3" }, - { name = "types-paramiko" }, - { name = "types-protobuf" }, - { name = "types-psutil" }, - { name = "types-psycopg2" }, - { name = "types-pyasn1" }, - { name = "types-pyopenssl" }, - { name = "types-python-dateutil" }, - { name = "types-pyyaml" }, - { name = "types-redis" }, - { name = "types-requests" }, - { name = "types-setuptools" }, - { name = "types-tabulate" }, - { name = "types-toml" }, - { name = "vulture" }, -] - [package.metadata] requires-dist = [ - { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, - { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, - { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, - { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, - { name = "click", specifier = ">=8.3.3" }, - { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, - { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, - { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, - { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, - { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, + { name = "defusedxml", specifier = ">=0.7.1" }, + { name = "filelock", specifier = ">=3.16" }, + { name = "flext-cli", editable = "flext-cli" }, { name = "flext-core", editable = "flext-core" }, - { name = "flext-meltano", editable = "flext-meltano" }, - { name = "flext-oracle-wms", editable = "flext-oracle-wms" }, - { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, - { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, - { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, - { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, - { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, - { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, - { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, - { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, - { name = "pydantic", specifier = ">=2.13.3" }, - { name = "pydantic-core", specifier = ">=2.46.3" }, - { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, - { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, - { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, - { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, - { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, - { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, - { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, - { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, - { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, - { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, - { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, - { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, - { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, - { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, - { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, - { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, - { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, - { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, - { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, - { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, - { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, - { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, - { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, - { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, - { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, -] -provides-extras = ["dev"] + { name = "gitpython", specifier = ">=3.1.49" }, + { name = "libcst", specifier = ">=1.8.6" }, + { name = "mkdocs", specifier = ">=1.6.1" }, + { name = "mkdocs-exclude", specifier = ">=1.0.2" }, + { name = "mkdocs-material", specifier = ">=9.7.6" }, + { name = "mkdocs-section-index", specifier = ">=0.3.12" }, + { name = "mkdocstrings", specifier = ">=1.0.4" }, + { name = "mkdocstrings-python", specifier = ">=2.0.3" }, + { name = "rope", specifier = ">=1.14.0" }, +] [package.metadata.requires-dev] -codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, @@ -4105,7 +3792,7 @@ dev = [ { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyrefly", specifier = ">=1.1.1" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -4128,6 +3815,7 @@ dev = [ { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, @@ -4143,101 +3831,23 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "yamlfix", specifier = ">=1.19.1" }, ] [[package]] -name = "flext-grpc" +name = "flext-ldap" version = "0.12.0rc0" -source = { editable = "flext-grpc" } +source = { editable = "flext-ldap" } dependencies = [ + { name = "cryptography" }, { name = "flext-cli" }, { name = "flext-core" }, - { name = "grpcio" }, - { name = "grpcio-tools" }, - { name = "prometheus-client" }, - { name = "protobuf" }, - { name = "psutil" }, + { name = "flext-ldif" }, + { name = "ldap3" }, { name = "pydantic" }, { name = "pydantic-core" }, { name = "pydantic-settings" }, - { name = "sqlalchemy" }, -] - -[package.optional-dependencies] -dev = [ - { name = "autoflake" }, - { name = "bandit" }, - { name = "black" }, - { name = "blacken-docs" }, - { name = "codespell" }, - { name = "deptry" }, - { name = "django-stubs" }, - { name = "factory-boy" }, - { name = "faker" }, - { name = "hypothesis" }, - { name = "isort" }, - { name = "matplotlib-stubs" }, - { name = "mkdocs" }, - { name = "mkdocs-awesome-pages-plugin" }, - { name = "mkdocs-encryptcontent-plugin" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-get-deps" }, - { name = "mkdocs-git-revision-date-localized-plugin" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-macros-plugin" }, - { name = "mkdocs-material" }, - { name = "mkdocs-material-extensions" }, - { name = "mkdocs-mermaid2-plugin" }, - { name = "mkdocs-minify-plugin" }, - { name = "mkdocs-print-site-plugin" }, - { name = "mkdocs-redirects" }, - { name = "mkdocs-section-index" }, - { name = "mkdocs-versioning" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "pip-audit" }, - { name = "pre-commit" }, - { name = "pylint" }, - { name = "pyrefly" }, - { name = "pytest" }, - { name = "pytest-benchmark" }, - { name = "pytest-clarity" }, - { name = "pytest-codeblocks" }, - { name = "pytest-cov" }, - { name = "pytest-deadfixtures" }, - { name = "pytest-env" }, - { name = "pytest-markdown-docs" }, - { name = "pytest-mock" }, - { name = "pytest-randomly" }, - { name = "pytest-sugar" }, - { name = "pytest-timeout" }, - { name = "pytest-xdist" }, - { name = "pyupgrade" }, - { name = "radon" }, - { name = "ruff" }, - { name = "types-cachetools" }, - { name = "types-cffi" }, - { name = "types-click" }, - { name = "types-defusedxml" }, - { name = "types-docker" }, - { name = "types-flask" }, - { name = "types-jsonschema" }, - { name = "types-ldap3" }, - { name = "types-paramiko" }, - { name = "types-protobuf" }, - { name = "types-psutil" }, - { name = "types-psycopg2" }, - { name = "types-pyasn1" }, - { name = "types-pyopenssl" }, - { name = "types-python-dateutil" }, - { name = "types-pyyaml" }, - { name = "types-redis" }, - { name = "types-requests" }, - { name = "types-setuptools" }, - { name = "types-tabulate" }, - { name = "types-toml" }, - { name = "vulture" }, - { name = "yamlfix" }, + { name = "structlog" }, ] [package.dev-dependencies] @@ -4245,6 +3855,7 @@ codegen = [ { name = "flext-infra" }, ] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -4276,10 +3887,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -4302,6 +3915,7 @@ dev = [ { name = "types-defusedxml" }, { name = "types-docker" }, { name = "types-flask" }, + { name = "types-jsonschema" }, { name = "types-ldap3" }, { name = "types-paramiko" }, { name = "types-protobuf" }, @@ -4317,100 +3931,26 @@ dev = [ { name = "types-tabulate" }, { name = "types-toml" }, { name = "vulture" }, + { name = "yamlfix" }, ] [package.metadata] requires-dist = [ - { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, - { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, - { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, - { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, - { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, - { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, - { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, - { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, - { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, + { name = "cryptography", specifier = ">=47.0.0" }, { name = "flext-cli", editable = "flext-cli" }, { name = "flext-core", editable = "flext-core" }, - { name = "grpcio", specifier = ">=1.80.0" }, - { name = "grpcio-tools", specifier = ">=1.80.0" }, - { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, - { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, - { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, - { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, - { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, - { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, - { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, - { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, - { name = "prometheus-client", specifier = ">=0.25.0" }, - { name = "protobuf", specifier = ">=6.33.6" }, - { name = "psutil", specifier = ">=7.2.2" }, + { name = "flext-ldif", editable = "flext-ldif" }, + { name = "ldap3", specifier = ">=2.10.2rc4" }, { name = "pydantic", specifier = ">=2.13.3" }, { name = "pydantic-core", specifier = ">=2.46.3" }, { name = "pydantic-settings", specifier = ">=2.14.0" }, - { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, - { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, - { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, - { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, - { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, - { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, - { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, - { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, - { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, - { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, - { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, - { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, - { name = "sqlalchemy", specifier = ">=2.0.49" }, - { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, - { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, - { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, - { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, - { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, - { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, - { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, - { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, - { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, - { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, - { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, - { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, - { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, -] -provides-extras = ["dev"] + { name = "structlog", specifier = ">=25.5.0" }, +] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -4442,10 +3982,12 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -4468,6 +4010,7 @@ dev = [ { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, @@ -4483,30 +4026,30 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] -name = "flext-infra" +name = "flext-ldif" version = "0.12.0rc0" -source = { editable = "flext-infra" } +source = { editable = "flext-ldif" } dependencies = [ - { name = "defusedxml" }, - { name = "filelock" }, + { name = "colorlog" }, { name = "flext-cli" }, { name = "flext-core" }, - { name = "gitpython" }, - { name = "libcst" }, - { name = "mkdocs" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-material" }, - { name = "mkdocs-section-index" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "rope" }, + { name = "ldap3" }, + { name = "pydantic" }, + { name = "pydantic-core" }, + { name = "pydantic-settings" }, + { name = "structlog" }, ] [package.dev-dependencies] +codegen = [ + { name = "flext-infra" }, +] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -4538,10 +4081,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -4585,23 +4130,20 @@ dev = [ [package.metadata] requires-dist = [ - { name = "defusedxml", specifier = ">=0.7.1" }, - { name = "filelock", specifier = ">=3.16" }, + { name = "colorlog", specifier = ">=6.10.1" }, { name = "flext-cli", editable = "flext-cli" }, { name = "flext-core", editable = "flext-core" }, - { name = "gitpython", specifier = ">=3.1.49" }, - { name = "libcst", specifier = ">=1.8.6" }, - { name = "mkdocs", specifier = ">=1.6.1" }, - { name = "mkdocs-exclude", specifier = ">=1.0.2" }, - { name = "mkdocs-material", specifier = ">=9.7.6" }, - { name = "mkdocs-section-index", specifier = ">=0.3.12" }, - { name = "mkdocstrings", specifier = ">=1.0.4" }, - { name = "mkdocstrings-python", specifier = ">=2.0.3" }, - { name = "rope", specifier = ">=1.14.0" }, + { name = "ldap3", specifier = ">=2.10.2rc4" }, + { name = "pydantic", specifier = ">=2.13.3" }, + { name = "pydantic-core", specifier = ">=2.46.3" }, + { name = "pydantic-settings", specifier = ">=2.14.0" }, + { name = "structlog", specifier = ">=25.5.0" }, ] [package.metadata.requires-dev] +codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -4633,10 +4175,12 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, - { name = "pyrefly", specifier = ">=1.1.1" }, + { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -4675,23 +4219,41 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "yamlfix", specifier = ">=1.19.1" }, + { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] -name = "flext-ldap" +name = "flext-meltano" version = "0.12.0rc0" -source = { editable = "flext-ldap" } +source = { editable = "flext-meltano" } dependencies = [ - { name = "cryptography" }, + { name = "alembic" }, + { name = "dbt-adapters" }, + { name = "dbt-common" }, + { name = "dbt-core" }, + { name = "duckdb" }, + { name = "fastapi" }, { name = "flext-cli" }, { name = "flext-core" }, - { name = "flext-ldif" }, - { name = "ldap3" }, + { name = "httpx" }, + { name = "injectable" }, + { name = "jinja2" }, + { name = "meltano" }, + { name = "pandas" }, + { name = "prometheus-client" }, { name = "pydantic" }, { name = "pydantic-core" }, { name = "pydantic-settings" }, + { name = "python-dotenv" }, + { name = "pyyaml" }, + { name = "referencing" }, + { name = "requests" }, + { name = "setuptools" }, + { name = "singer-sdk" }, + { name = "sqlalchemy" }, { name = "structlog" }, + { name = "uvicorn" }, + { name = "wrapt" }, ] [package.dev-dependencies] @@ -4734,6 +4296,7 @@ dev = [ { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, + { name = "psycopg2" }, { name = "pylint" }, { name = "pyrefly" }, { name = "pyright" }, @@ -4752,6 +4315,7 @@ dev = [ { name = "pytest-xdist" }, { name = "pyupgrade" }, { name = "radon" }, + { name = "redis" }, { name = "ruff" }, { name = "types-cachetools" }, { name = "types-cffi" }, @@ -4780,15 +4344,33 @@ dev = [ [package.metadata] requires-dist = [ - { name = "cryptography", specifier = ">=47.0.0" }, + { name = "alembic", specifier = ">=1.18.4" }, + { name = "dbt-adapters", specifier = ">=1.24.4" }, + { name = "dbt-common", specifier = ">=1.38.0" }, + { name = "dbt-core", specifier = ">=1.12.0,<1.13" }, + { name = "duckdb", specifier = ">=1.5.2" }, + { name = "fastapi", specifier = ">=0.136.1" }, { name = "flext-cli", editable = "flext-cli" }, { name = "flext-core", editable = "flext-core" }, - { name = "flext-ldif", editable = "flext-ldif" }, - { name = "ldap3", specifier = ">=2.10.2rc4" }, + { name = "httpx", specifier = ">=0.28.1" }, + { name = "injectable", specifier = ">=4.0.1" }, + { name = "jinja2", specifier = ">=3.1.6" }, + { name = "meltano", specifier = ">=4.2.1" }, + { name = "pandas", specifier = ">=3.0.2" }, + { name = "prometheus-client", specifier = ">=0.25.0" }, { name = "pydantic", specifier = ">=2.13.3" }, { name = "pydantic-core", specifier = ">=2.46.3" }, { name = "pydantic-settings", specifier = ">=2.14.0" }, + { name = "python-dotenv", specifier = ">=1.2.2" }, + { name = "pyyaml", specifier = ">=6.0.3" }, + { name = "referencing", specifier = ">=0.37.0" }, + { name = "requests", specifier = ">=2.33.1" }, + { name = "setuptools", specifier = ">=82.0.1" }, + { name = "singer-sdk", specifier = ">=0.53.7" }, + { name = "sqlalchemy", specifier = ">=2.0.49" }, { name = "structlog", specifier = ">=25.5.0" }, + { name = "uvicorn", specifier = ">=0.46.0" }, + { name = "wrapt", specifier = ">=2.1.2" }, ] [package.metadata.requires-dev] @@ -4829,6 +4411,7 @@ dev = [ { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, + { name = "psycopg2", specifier = ">=2.9.12" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, @@ -4847,6 +4430,7 @@ dev = [ { name = "pytest-xdist", specifier = ">=3.8" }, { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, + { name = "redis", specifier = ">=7.4.0" }, { name = "ruff", specifier = ">=0.12.3" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, @@ -4859,12 +4443,12 @@ dev = [ { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, { name = "types-psutil", specifier = ">=7" }, - { name = "types-psycopg2", specifier = ">=2.9.21.20250718" }, + { name = "types-psycopg2", specifier = ">=2.9.21.20260422" }, { name = "types-pyasn1", specifier = ">=0.6" }, { name = "types-pyopenssl", specifier = ">=24.1" }, { name = "types-python-dateutil", specifier = ">=2.9" }, { name = "types-pyyaml", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", specifier = ">=4.6" }, + { name = "types-redis", specifier = ">=4.6.0.20241004" }, { name = "types-requests", specifier = ">=2.32.4" }, { name = "types-setuptools", specifier = ">=80.9" }, { name = "types-tabulate", specifier = ">=0.10" }, @@ -4874,95 +4458,26 @@ dev = [ ] [[package]] -name = "flext-ldif" +name = "flext-observability" version = "0.12.0rc0" -source = { editable = "flext-ldif" } +source = { editable = "flext-observability" } dependencies = [ - { name = "colorlog" }, + { name = "flask" }, { name = "flext-cli" }, { name = "flext-core" }, - { name = "ldap3" }, + { name = "opentelemetry-api" }, + { name = "opentelemetry-exporter-otlp-proto-grpc" }, + { name = "opentelemetry-exporter-prometheus" }, + { name = "opentelemetry-sdk" }, + { name = "prometheus-client" }, + { name = "psutil" }, { name = "pydantic" }, { name = "pydantic-core" }, { name = "pydantic-settings" }, + { name = "rich" }, + { name = "starlette" }, { name = "structlog" }, -] - -[package.optional-dependencies] -dev = [ - { name = "autoflake" }, - { name = "bandit" }, - { name = "black" }, - { name = "blacken-docs" }, - { name = "codespell" }, - { name = "deptry" }, - { name = "django-stubs" }, - { name = "factory-boy" }, - { name = "faker" }, - { name = "hypothesis" }, - { name = "isort" }, - { name = "matplotlib-stubs" }, - { name = "mkdocs" }, - { name = "mkdocs-awesome-pages-plugin" }, - { name = "mkdocs-encryptcontent-plugin" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-get-deps" }, - { name = "mkdocs-git-revision-date-localized-plugin" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-macros-plugin" }, - { name = "mkdocs-material" }, - { name = "mkdocs-material-extensions" }, - { name = "mkdocs-mermaid2-plugin" }, - { name = "mkdocs-minify-plugin" }, - { name = "mkdocs-print-site-plugin" }, - { name = "mkdocs-redirects" }, - { name = "mkdocs-section-index" }, - { name = "mkdocs-versioning" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "pip-audit" }, - { name = "pre-commit" }, - { name = "pylint" }, - { name = "pyrefly" }, - { name = "pytest" }, - { name = "pytest-benchmark" }, - { name = "pytest-clarity" }, - { name = "pytest-codeblocks" }, - { name = "pytest-cov" }, - { name = "pytest-deadfixtures" }, - { name = "pytest-env" }, - { name = "pytest-markdown-docs" }, - { name = "pytest-mock" }, - { name = "pytest-randomly" }, - { name = "pytest-sugar" }, - { name = "pytest-timeout" }, - { name = "pytest-xdist" }, - { name = "pyupgrade" }, - { name = "radon" }, - { name = "ruff" }, - { name = "types-cachetools" }, - { name = "types-cffi" }, - { name = "types-click" }, - { name = "types-defusedxml" }, - { name = "types-docker" }, - { name = "types-flask" }, - { name = "types-jsonschema" }, - { name = "types-ldap3" }, - { name = "types-paramiko" }, - { name = "types-protobuf" }, - { name = "types-psutil" }, - { name = "types-psycopg2" }, - { name = "types-pyasn1" }, - { name = "types-pyopenssl" }, - { name = "types-python-dateutil" }, - { name = "types-pyyaml" }, - { name = "types-redis" }, - { name = "types-requests" }, - { name = "types-setuptools" }, - { name = "types-tabulate" }, - { name = "types-toml" }, - { name = "vulture" }, - { name = "yamlfix" }, + { name = "typer" }, ] [package.dev-dependencies] @@ -4970,6 +4485,7 @@ codegen = [ { name = "flext-infra" }, ] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -5001,10 +4517,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -5027,6 +4545,7 @@ dev = [ { name = "types-defusedxml" }, { name = "types-docker" }, { name = "types-flask" }, + { name = "types-jsonschema" }, { name = "types-ldap3" }, { name = "types-paramiko" }, { name = "types-protobuf" }, @@ -5042,97 +4561,33 @@ dev = [ { name = "types-tabulate" }, { name = "types-toml" }, { name = "vulture" }, + { name = "yamlfix" }, ] [package.metadata] requires-dist = [ - { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, - { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, - { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, - { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, - { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, - { name = "colorlog", specifier = ">=6.10.1" }, - { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, - { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, - { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, - { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, + { name = "flask", specifier = ">=3.1.3" }, { name = "flext-cli", editable = "flext-cli" }, { name = "flext-core", editable = "flext-core" }, - { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, - { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "ldap3", specifier = ">=2.10.2rc4" }, - { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, - { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, - { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, - { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, - { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, - { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, - { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, + { name = "opentelemetry-api", specifier = ">=1.41.1" }, + { name = "opentelemetry-exporter-otlp-proto-grpc", specifier = ">=1.41.1" }, + { name = "opentelemetry-exporter-prometheus", specifier = ">=0.62b1" }, + { name = "opentelemetry-sdk", specifier = ">=1.41.1" }, + { name = "prometheus-client", specifier = ">=0.25.0" }, + { name = "psutil", specifier = ">=7.2.2" }, { name = "pydantic", specifier = ">=2.13.3" }, { name = "pydantic-core", specifier = ">=2.46.3" }, { name = "pydantic-settings", specifier = ">=2.14.0" }, - { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, - { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, - { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, - { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, - { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, - { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, - { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, - { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, - { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, - { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, - { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, - { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, + { name = "rich", specifier = ">=14,<14.4" }, + { name = "starlette", specifier = ">=1.0.0" }, { name = "structlog", specifier = ">=25.5.0" }, - { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, - { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, - { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, - { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, - { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, - { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, - { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, - { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, - { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, - { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, - { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, - { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, - { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, -] -provides-extras = ["dev"] + { name = "typer", specifier = ">=0.25.1" }, +] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -5164,10 +4619,12 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -5190,6 +4647,7 @@ dev = [ { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, @@ -5205,44 +4663,34 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] -name = "flext-meltano" +name = "flext-oracle-oic" version = "0.12.0rc0" -source = { editable = "flext-meltano" } +source = { editable = "flext-oracle-oic" } dependencies = [ - { name = "alembic" }, - { name = "dbt-adapters" }, - { name = "dbt-common" }, - { name = "dbt-core" }, - { name = "duckdb" }, - { name = "fastapi" }, + { name = "flext-api" }, + { name = "flext-auth" }, { name = "flext-cli" }, { name = "flext-core" }, { name = "httpx" }, - { name = "injectable" }, - { name = "jinja2" }, - { name = "meltano" }, - { name = "pandas" }, - { name = "prometheus-client" }, { name = "pydantic" }, { name = "pydantic-core" }, { name = "pydantic-settings" }, - { name = "python-dotenv" }, - { name = "pyyaml" }, - { name = "referencing" }, { name = "requests" }, - { name = "setuptools" }, - { name = "singer-sdk" }, - { name = "sqlalchemy" }, - { name = "structlog" }, - { name = "uvicorn" }, - { name = "wrapt" }, + { name = "tenacity" }, + { name = "typer" }, + { name = "urllib3" }, ] -[package.optional-dependencies] +[package.dev-dependencies] +codegen = [ + { name = "flext-infra" }, +] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -5252,6 +4700,7 @@ dev = [ { name = "django-stubs" }, { name = "factory-boy" }, { name = "faker" }, + { name = "flext-tests" }, { name = "hypothesis" }, { name = "isort" }, { name = "matplotlib-stubs" }, @@ -5273,10 +4722,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -5318,195 +4769,26 @@ dev = [ { name = "yamlfix" }, ] -[package.dev-dependencies] -codegen = [ - { name = "flext-infra" }, +[package.metadata] +requires-dist = [ + { name = "flext-api", editable = "flext-api" }, + { name = "flext-auth", editable = "flext-auth" }, + { name = "flext-cli", editable = "flext-cli" }, + { name = "flext-core", editable = "flext-core" }, + { name = "httpx", specifier = ">=0.28.1" }, + { name = "pydantic", specifier = ">=2.13.3" }, + { name = "pydantic-core", specifier = ">=2.46.3" }, + { name = "pydantic-settings", specifier = ">=2.14.0" }, + { name = "requests", specifier = ">=2.33.1" }, + { name = "tenacity", specifier = ">=9.1.4" }, + { name = "typer", specifier = ">=0.25.1" }, + { name = "urllib3", specifier = ">=2.6.3" }, ] + +[package.metadata.requires-dev] +codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ - { name = "autoflake" }, - { name = "bandit" }, - { name = "black" }, - { name = "blacken-docs" }, - { name = "codespell" }, - { name = "deptry" }, - { name = "django-stubs" }, - { name = "factory-boy" }, - { name = "faker" }, - { name = "flext-tests" }, - { name = "hypothesis" }, - { name = "isort" }, - { name = "matplotlib-stubs" }, - { name = "mkdocs" }, - { name = "mkdocs-awesome-pages-plugin" }, - { name = "mkdocs-encryptcontent-plugin" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-get-deps" }, - { name = "mkdocs-git-revision-date-localized-plugin" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-macros-plugin" }, - { name = "mkdocs-material" }, - { name = "mkdocs-material-extensions" }, - { name = "mkdocs-mermaid2-plugin" }, - { name = "mkdocs-minify-plugin" }, - { name = "mkdocs-print-site-plugin" }, - { name = "mkdocs-redirects" }, - { name = "mkdocs-section-index" }, - { name = "mkdocs-versioning" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "pip-audit" }, - { name = "pre-commit" }, - { name = "psycopg2" }, - { name = "pylint" }, - { name = "pyrefly" }, - { name = "pytest" }, - { name = "pytest-benchmark" }, - { name = "pytest-clarity" }, - { name = "pytest-codeblocks" }, - { name = "pytest-cov" }, - { name = "pytest-deadfixtures" }, - { name = "pytest-env" }, - { name = "pytest-markdown-docs" }, - { name = "pytest-mock" }, - { name = "pytest-randomly" }, - { name = "pytest-sugar" }, - { name = "pytest-timeout" }, - { name = "pytest-xdist" }, - { name = "pyupgrade" }, - { name = "radon" }, - { name = "redis" }, - { name = "ruff" }, - { name = "types-cachetools" }, - { name = "types-cffi" }, - { name = "types-click" }, - { name = "types-defusedxml" }, - { name = "types-docker" }, - { name = "types-flask" }, - { name = "types-ldap3" }, - { name = "types-paramiko" }, - { name = "types-protobuf" }, - { name = "types-psutil" }, - { name = "types-psycopg2" }, - { name = "types-pyasn1" }, - { name = "types-pyopenssl" }, - { name = "types-python-dateutil" }, - { name = "types-pyyaml" }, - { name = "types-redis" }, - { name = "types-requests" }, - { name = "types-setuptools" }, - { name = "types-tabulate" }, - { name = "types-toml" }, - { name = "vulture" }, -] - -[package.metadata] -requires-dist = [ - { name = "alembic", specifier = ">=1.18.4" }, - { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, - { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, - { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, - { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, - { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, - { name = "dbt-adapters", specifier = ">=1.24.4" }, - { name = "dbt-common", specifier = ">=1.38.0" }, - { name = "dbt-core", specifier = ">=1.12.0,<1.13" }, - { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, - { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, - { name = "duckdb", specifier = ">=1.5.2" }, - { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, - { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, - { name = "fastapi", specifier = ">=0.136.1" }, - { name = "flext-cli", editable = "flext-cli" }, - { name = "flext-core", editable = "flext-core" }, - { name = "httpx", specifier = ">=0.28.1" }, - { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, - { name = "injectable", specifier = ">=4.0.1" }, - { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "jinja2", specifier = ">=3.1.6" }, - { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, - { name = "meltano", specifier = ">=4.2.1" }, - { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, - { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, - { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, - { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, - { name = "pandas", specifier = ">=3.0.2" }, - { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, - { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, - { name = "prometheus-client", specifier = ">=0.25.0" }, - { name = "pydantic", specifier = ">=2.13.3" }, - { name = "pydantic-core", specifier = ">=2.46.3" }, - { name = "pydantic-settings", specifier = ">=2.14.0" }, - { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, - { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, - { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, - { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, - { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, - { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, - { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, - { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, - { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, - { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, - { name = "python-dotenv", specifier = ">=1.2.2" }, - { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, - { name = "pyyaml", specifier = ">=6.0.3" }, - { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "referencing", specifier = ">=0.37.0" }, - { name = "requests", specifier = ">=2.33.1" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, - { name = "setuptools", specifier = ">=82.0.1" }, - { name = "singer-sdk", specifier = ">=0.53.7" }, - { name = "sqlalchemy", specifier = ">=2.0.49" }, - { name = "structlog", specifier = ">=25.5.0" }, - { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, - { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, - { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, - { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, - { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, - { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, - { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, - { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, - { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, - { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, - { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, - { name = "uvicorn", specifier = ">=0.46.0" }, - { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, - { name = "wrapt", specifier = ">=2.1.2" }, - { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, -] -provides-extras = ["dev"] - -[package.metadata.requires-dev] -codegen = [{ name = "flext-infra", editable = "flext-infra" }] -dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -5538,11 +4820,12 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, - { name = "psycopg2", specifier = ">=2.9.12" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -5558,7 +4841,6 @@ dev = [ { name = "pytest-xdist", specifier = ">=3.8" }, { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, - { name = "redis", specifier = ">=7.4.0" }, { name = "ruff", specifier = ">=0.12.3" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, @@ -5566,121 +4848,37 @@ dev = [ { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, { name = "types-psutil", specifier = ">=7" }, - { name = "types-psycopg2", specifier = ">=2.9.21.20260422" }, + { name = "types-psycopg2", specifier = ">=2.9.21.20250718" }, { name = "types-pyasn1", specifier = ">=0.6" }, { name = "types-pyopenssl", specifier = ">=24.1" }, { name = "types-python-dateutil", specifier = ">=2.9" }, { name = "types-pyyaml", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", specifier = ">=4.6.0.20241004" }, + { name = "types-redis", specifier = ">=4.6" }, { name = "types-requests", specifier = ">=2.32.4" }, { name = "types-setuptools", specifier = ">=80.9" }, { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] -name = "flext-observability" +name = "flext-oracle-wms" version = "0.12.0rc0" -source = { editable = "flext-observability" } +source = { editable = "flext-oracle-wms" } dependencies = [ - { name = "flask" }, + { name = "flext-api" }, { name = "flext-cli" }, { name = "flext-core" }, - { name = "opentelemetry-api" }, - { name = "opentelemetry-exporter-otlp-proto-grpc" }, - { name = "opentelemetry-exporter-prometheus" }, - { name = "opentelemetry-sdk" }, - { name = "prometheus-client" }, - { name = "psutil" }, { name = "pydantic" }, { name = "pydantic-core" }, { name = "pydantic-settings" }, - { name = "rich" }, - { name = "starlette" }, - { name = "structlog" }, - { name = "typer" }, -] - -[package.optional-dependencies] -dev = [ - { name = "autoflake" }, - { name = "bandit" }, - { name = "black" }, - { name = "blacken-docs" }, - { name = "codespell" }, - { name = "deptry" }, - { name = "django-stubs" }, - { name = "factory-boy" }, - { name = "faker" }, - { name = "hypothesis" }, - { name = "isort" }, - { name = "matplotlib-stubs" }, - { name = "mkdocs" }, - { name = "mkdocs-awesome-pages-plugin" }, - { name = "mkdocs-encryptcontent-plugin" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-get-deps" }, - { name = "mkdocs-git-revision-date-localized-plugin" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-macros-plugin" }, - { name = "mkdocs-material" }, - { name = "mkdocs-material-extensions" }, - { name = "mkdocs-mermaid2-plugin" }, - { name = "mkdocs-minify-plugin" }, - { name = "mkdocs-print-site-plugin" }, - { name = "mkdocs-redirects" }, - { name = "mkdocs-section-index" }, - { name = "mkdocs-versioning" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "pip-audit" }, - { name = "pre-commit" }, - { name = "pylint" }, - { name = "pyrefly" }, - { name = "pytest" }, - { name = "pytest-benchmark" }, - { name = "pytest-clarity" }, - { name = "pytest-codeblocks" }, - { name = "pytest-cov" }, - { name = "pytest-deadfixtures" }, - { name = "pytest-env" }, - { name = "pytest-markdown-docs" }, - { name = "pytest-mock" }, - { name = "pytest-randomly" }, - { name = "pytest-sugar" }, - { name = "pytest-timeout" }, - { name = "pytest-xdist" }, - { name = "pyupgrade" }, - { name = "radon" }, - { name = "ruff" }, - { name = "types-cachetools" }, - { name = "types-cffi" }, - { name = "types-click" }, - { name = "types-defusedxml" }, - { name = "types-docker" }, - { name = "types-flask" }, - { name = "types-jsonschema" }, - { name = "types-ldap3" }, - { name = "types-paramiko" }, - { name = "types-protobuf" }, - { name = "types-psutil" }, - { name = "types-psycopg2" }, - { name = "types-pyasn1" }, - { name = "types-pyopenssl" }, - { name = "types-python-dateutil" }, - { name = "types-pyyaml" }, - { name = "types-redis" }, - { name = "types-requests" }, - { name = "types-setuptools" }, - { name = "types-tabulate" }, - { name = "types-toml" }, - { name = "vulture" }, - { name = "yamlfix" }, + { name = "python-dotenv" }, ] [package.dev-dependencies] @@ -5688,6 +4886,7 @@ codegen = [ { name = "flext-infra" }, ] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -5719,10 +4918,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -5745,6 +4946,7 @@ dev = [ { name = "types-defusedxml" }, { name = "types-docker" }, { name = "types-flask" }, + { name = "types-jsonschema" }, { name = "types-ldap3" }, { name = "types-paramiko" }, { name = "types-protobuf" }, @@ -5760,105 +4962,24 @@ dev = [ { name = "types-tabulate" }, { name = "types-toml" }, { name = "vulture" }, + { name = "yamlfix" }, ] [package.metadata] requires-dist = [ - { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, - { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, - { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, - { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, - { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, - { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, - { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, - { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, - { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, - { name = "flask", specifier = ">=3.1.3" }, + { name = "flext-api", editable = "flext-api" }, { name = "flext-cli", editable = "flext-cli" }, { name = "flext-core", editable = "flext-core" }, - { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, - { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, - { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, - { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, - { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, - { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, - { name = "opentelemetry-api", specifier = ">=1.41.1" }, - { name = "opentelemetry-exporter-otlp-proto-grpc", specifier = ">=1.41.1" }, - { name = "opentelemetry-exporter-prometheus", specifier = ">=0.62b1" }, - { name = "opentelemetry-sdk", specifier = ">=1.41.1" }, - { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, - { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, - { name = "prometheus-client", specifier = ">=0.25.0" }, - { name = "psutil", specifier = ">=7.2.2" }, { name = "pydantic", specifier = ">=2.13.3" }, { name = "pydantic-core", specifier = ">=2.46.3" }, { name = "pydantic-settings", specifier = ">=2.14.0" }, - { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, - { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, - { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, - { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, - { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, - { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, - { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, - { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, - { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, - { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, - { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, - { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "rich", specifier = ">=14,<14.4" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, - { name = "starlette", specifier = ">=1.0.0" }, - { name = "structlog", specifier = ">=25.5.0" }, - { name = "typer", specifier = ">=0.25.1" }, - { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, - { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, - { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, - { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, - { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, - { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, - { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, - { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, - { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, - { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, - { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, - { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, - { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, -] -provides-extras = ["dev"] + { name = "python-dotenv", specifier = ">=1.2.2" }, +] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -5890,10 +5011,12 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -5916,6 +5039,7 @@ dev = [ { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, @@ -5931,29 +5055,31 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] -name = "flext-oracle-oic" +name = "flext-plugin" version = "0.12.0rc0" -source = { editable = "flext-oracle-oic" } +source = { editable = "flext-plugin" } dependencies = [ - { name = "flext-api" }, - { name = "flext-auth" }, + { name = "anyio" }, { name = "flext-cli" }, { name = "flext-core" }, - { name = "httpx" }, + { name = "jsonschema" }, + { name = "psutil" }, { name = "pydantic" }, { name = "pydantic-core" }, { name = "pydantic-settings" }, - { name = "requests" }, - { name = "tenacity" }, - { name = "typer" }, - { name = "urllib3" }, + { name = "watchdog" }, ] -[package.optional-dependencies] +[package.dev-dependencies] +codegen = [ + { name = "flext-infra" }, +] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -5963,6 +5089,7 @@ dev = [ { name = "django-stubs" }, { name = "factory-boy" }, { name = "faker" }, + { name = "flext-tests" }, { name = "hypothesis" }, { name = "isort" }, { name = "matplotlib-stubs" }, @@ -5984,10 +5111,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -6029,178 +5158,23 @@ dev = [ { name = "yamlfix" }, ] -[package.dev-dependencies] -codegen = [ - { name = "flext-infra" }, -] -dev = [ - { name = "autoflake" }, - { name = "bandit" }, - { name = "black" }, - { name = "blacken-docs" }, - { name = "codespell" }, - { name = "deptry" }, - { name = "django-stubs" }, - { name = "factory-boy" }, - { name = "faker" }, - { name = "flext-tests" }, - { name = "hypothesis" }, - { name = "isort" }, - { name = "matplotlib-stubs" }, - { name = "mkdocs" }, - { name = "mkdocs-awesome-pages-plugin" }, - { name = "mkdocs-encryptcontent-plugin" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-get-deps" }, - { name = "mkdocs-git-revision-date-localized-plugin" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-macros-plugin" }, - { name = "mkdocs-material" }, - { name = "mkdocs-material-extensions" }, - { name = "mkdocs-mermaid2-plugin" }, - { name = "mkdocs-minify-plugin" }, - { name = "mkdocs-print-site-plugin" }, - { name = "mkdocs-redirects" }, - { name = "mkdocs-section-index" }, - { name = "mkdocs-versioning" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "pip-audit" }, - { name = "pre-commit" }, - { name = "pylint" }, - { name = "pyrefly" }, - { name = "pytest" }, - { name = "pytest-benchmark" }, - { name = "pytest-clarity" }, - { name = "pytest-codeblocks" }, - { name = "pytest-cov" }, - { name = "pytest-deadfixtures" }, - { name = "pytest-env" }, - { name = "pytest-markdown-docs" }, - { name = "pytest-mock" }, - { name = "pytest-randomly" }, - { name = "pytest-sugar" }, - { name = "pytest-timeout" }, - { name = "pytest-xdist" }, - { name = "pyupgrade" }, - { name = "radon" }, - { name = "ruff" }, - { name = "types-cachetools" }, - { name = "types-cffi" }, - { name = "types-click" }, - { name = "types-defusedxml" }, - { name = "types-docker" }, - { name = "types-flask" }, - { name = "types-ldap3" }, - { name = "types-paramiko" }, - { name = "types-protobuf" }, - { name = "types-psutil" }, - { name = "types-psycopg2" }, - { name = "types-pyasn1" }, - { name = "types-pyopenssl" }, - { name = "types-python-dateutil" }, - { name = "types-pyyaml" }, - { name = "types-redis" }, - { name = "types-requests" }, - { name = "types-setuptools" }, - { name = "types-tabulate" }, - { name = "types-toml" }, - { name = "vulture" }, -] - [package.metadata] requires-dist = [ - { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, - { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, - { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, - { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, - { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, - { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, - { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, - { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, - { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, - { name = "flext-api", editable = "flext-api" }, - { name = "flext-auth", editable = "flext-auth" }, + { name = "anyio", specifier = ">=4.13.0" }, { name = "flext-cli", editable = "flext-cli" }, { name = "flext-core", editable = "flext-core" }, - { name = "httpx", specifier = ">=0.28.1" }, - { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, - { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, - { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, - { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, - { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, - { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, - { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, - { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, + { name = "jsonschema", specifier = ">=4.26.0" }, + { name = "psutil", specifier = ">=7.2.2" }, { name = "pydantic", specifier = ">=2.13.3" }, { name = "pydantic-core", specifier = ">=2.46.3" }, { name = "pydantic-settings", specifier = ">=2.14.0" }, - { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, - { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, - { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, - { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, - { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, - { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, - { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, - { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, - { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, - { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, - { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, - { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "requests", specifier = ">=2.33.1" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, - { name = "tenacity", specifier = ">=9.1.4" }, - { name = "typer", specifier = ">=0.25.1" }, - { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, - { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, - { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, - { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, - { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, - { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, - { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, - { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, - { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, - { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, - { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, - { name = "urllib3", specifier = ">=2.6.3" }, - { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, - { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, + { name = "watchdog", specifier = ">=4.0.0,<6" }, ] -provides-extras = ["dev"] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -6232,10 +5206,12 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -6258,6 +5234,7 @@ dev = [ { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, @@ -6273,97 +5250,38 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] -name = "flext-oracle-wms" +name = "flext-quality" version = "0.12.0rc0" -source = { editable = "flext-oracle-wms" } +source = { editable = "flext-quality" } dependencies = [ + { name = "aiohttp" }, + { name = "click" }, + { name = "fastapi" }, + { name = "fastmcp" }, { name = "flext-api" }, { name = "flext-cli" }, { name = "flext-core" }, + { name = "flext-infra" }, + { name = "flext-web" }, + { name = "gitpython" }, + { name = "httpx" }, + { name = "libcst" }, + { name = "mypy" }, { name = "pydantic" }, { name = "pydantic-core" }, { name = "pydantic-settings" }, - { name = "python-dotenv" }, -] - -[package.optional-dependencies] -dev = [ - { name = "autoflake" }, - { name = "bandit" }, - { name = "black" }, - { name = "blacken-docs" }, - { name = "codespell" }, - { name = "deptry" }, - { name = "django-stubs" }, - { name = "factory-boy" }, - { name = "faker" }, - { name = "hypothesis" }, - { name = "isort" }, - { name = "matplotlib-stubs" }, - { name = "mkdocs" }, - { name = "mkdocs-awesome-pages-plugin" }, - { name = "mkdocs-encryptcontent-plugin" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-get-deps" }, - { name = "mkdocs-git-revision-date-localized-plugin" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-macros-plugin" }, - { name = "mkdocs-material" }, - { name = "mkdocs-material-extensions" }, - { name = "mkdocs-mermaid2-plugin" }, - { name = "mkdocs-minify-plugin" }, - { name = "mkdocs-print-site-plugin" }, - { name = "mkdocs-redirects" }, - { name = "mkdocs-section-index" }, - { name = "mkdocs-versioning" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "pip-audit" }, - { name = "pre-commit" }, - { name = "pylint" }, - { name = "pyrefly" }, - { name = "pytest" }, - { name = "pytest-benchmark" }, - { name = "pytest-clarity" }, - { name = "pytest-codeblocks" }, - { name = "pytest-cov" }, - { name = "pytest-deadfixtures" }, - { name = "pytest-env" }, - { name = "pytest-markdown-docs" }, - { name = "pytest-mock" }, - { name = "pytest-randomly" }, - { name = "pytest-sugar" }, - { name = "pytest-timeout" }, - { name = "pytest-xdist" }, - { name = "pyupgrade" }, - { name = "radon" }, - { name = "ruff" }, - { name = "types-cachetools" }, - { name = "types-cffi" }, - { name = "types-click" }, - { name = "types-defusedxml" }, - { name = "types-docker" }, - { name = "types-flask" }, - { name = "types-jsonschema" }, - { name = "types-ldap3" }, - { name = "types-paramiko" }, - { name = "types-protobuf" }, - { name = "types-psutil" }, - { name = "types-psycopg2" }, - { name = "types-pyasn1" }, - { name = "types-pyopenssl" }, - { name = "types-python-dateutil" }, - { name = "types-pyyaml" }, - { name = "types-redis" }, - { name = "types-requests" }, - { name = "types-setuptools" }, - { name = "types-tabulate" }, - { name = "types-toml" }, - { name = "vulture" }, - { name = "yamlfix" }, + { name = "pyright" }, + { name = "pyyaml" }, + { name = "referencing" }, + { name = "rich" }, + { name = "schedule" }, + { name = "typer" }, + { name = "uvicorn" }, + { name = "wrapt" }, ] [package.dev-dependencies] @@ -6371,6 +5289,7 @@ codegen = [ { name = "flext-infra" }, ] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -6402,10 +5321,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -6421,6 +5342,8 @@ dev = [ { name = "pytest-xdist" }, { name = "pyupgrade" }, { name = "radon" }, + { name = "refurb" }, + { name = "rope" }, { name = "ruff" }, { name = "types-cachetools" }, { name = "types-cffi" }, @@ -6428,6 +5351,7 @@ dev = [ { name = "types-defusedxml" }, { name = "types-docker" }, { name = "types-flask" }, + { name = "types-jsonschema" }, { name = "types-ldap3" }, { name = "types-paramiko" }, { name = "types-protobuf" }, @@ -6443,1679 +5367,132 @@ dev = [ { name = "types-tabulate" }, { name = "types-toml" }, { name = "vulture" }, + { name = "yamlfix" }, ] [package.metadata] requires-dist = [ - { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, - { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, - { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, - { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, - { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, - { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, - { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, - { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, - { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, + { name = "aiohttp", specifier = ">=3.13.5" }, + { name = "click", specifier = ">=8.3.3,<8.4" }, + { name = "fastapi", specifier = ">=0.136.1" }, + { name = "fastmcp", specifier = ">=3.4.4" }, { name = "flext-api", editable = "flext-api" }, { name = "flext-cli", editable = "flext-cli" }, { name = "flext-core", editable = "flext-core" }, - { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, - { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, - { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, - { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, - { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, - { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, - { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, - { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, + { name = "flext-infra", editable = "flext-infra" }, + { name = "flext-web", editable = "flext-web" }, + { name = "gitpython", specifier = ">=3.1.49" }, + { name = "httpx", specifier = ">=0.28.1" }, + { name = "libcst", specifier = ">=1.8.6" }, + { name = "mypy", specifier = ">=1.20.2" }, { name = "pydantic", specifier = ">=2.13.3" }, { name = "pydantic-core", specifier = ">=2.46.3" }, - { name = "pydantic-settings", specifier = ">=2.14.0" }, - { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, - { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, - { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, - { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, - { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, - { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, - { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, - { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, - { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, - { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, - { name = "python-dotenv", specifier = ">=1.2.2" }, - { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, - { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, - { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, - { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, - { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, - { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, - { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, - { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, - { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, - { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, - { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, - { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, - { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, - { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, - { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, -] -provides-extras = ["dev"] + { name = "pydantic-settings", specifier = ">=2.14.2" }, + { name = "pyright", specifier = ">=1.1.411" }, + { name = "pyyaml", specifier = ">=6.0.3" }, + { name = "referencing", specifier = ">=0.37.0" }, + { name = "rich", specifier = ">=14,<14.4" }, + { name = "schedule", specifier = ">=1.2.2" }, + { name = "typer", specifier = ">=0.25.1" }, + { name = "uvicorn", specifier = ">=0.51.0" }, + { name = "wrapt", specifier = ">=2.1.2" }, +] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ - { name = "autoflake", specifier = ">=2.3.1" }, + { name = "actionlint-py", specifier = ">=1.7.12.24" }, + { name = "autoflake", specifier = ">=2.3.3" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, { name = "blacken-docs", specifier = ">=1.19" }, { name = "codespell", specifier = ">=2.3" }, { name = "deptry", specifier = ">=0.23" }, - { name = "django-stubs", specifier = ">=5.2.2" }, - { name = "factory-boy", specifier = ">=3.3.1" }, - { name = "faker", specifier = ">=37.4" }, + { name = "django-stubs", specifier = ">=6.0.6" }, + { name = "factory-boy", specifier = ">=3.3.3" }, + { name = "faker", specifier = ">=40.36.0" }, { name = "flext-tests", editable = "flext-tests" }, { name = "hypothesis", specifier = ">=6.125" }, { name = "isort", specifier = ">=6.0.1" }, { name = "matplotlib-stubs", specifier = ">=0.3" }, - { name = "mkdocs", specifier = ">=1.6" }, + { name = "mkdocs", specifier = ">=1.6.1" }, { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.9" }, { name = "mkdocs-encryptcontent-plugin", specifier = ">=2" }, { name = "mkdocs-exclude", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", specifier = ">=0.2" }, + { name = "mkdocs-get-deps", specifier = ">=0.2.2" }, { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.2" }, { name = "mkdocs-literate-nav", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", specifier = ">=1" }, + { name = "mkdocs-macros-plugin", specifier = ">=1.5.0" }, { name = "mkdocs-material", specifier = ">=9.5" }, { name = "mkdocs-material-extensions", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", specifier = ">=0.7" }, + { name = "mkdocs-mermaid2-plugin", specifier = ">=1.2.3" }, + { name = "mkdocs-minify-plugin", specifier = ">=0.8.0" }, { name = "mkdocs-print-site-plugin", specifier = ">=0.8" }, { name = "mkdocs-redirects", specifier = ">=1.2" }, { name = "mkdocs-section-index", specifier = ">=0.3.12" }, { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, - { name = "mkdocstrings-python", specifier = ">=1.7" }, - { name = "pip-audit", specifier = ">=2.7.3" }, + { name = "mkdocstrings-python", specifier = ">=2.0.5" }, + { name = "mypy", specifier = ">=2.3.0" }, + { name = "pip-audit", specifier = ">=2.10.1" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest-benchmark", specifier = ">=5.1" }, + { name = "pytest-benchmark", specifier = ">=5.2.3" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", specifier = ">=0.17.0" }, + { name = "pytest-codeblocks", specifier = ">=0.18.0" }, { name = "pytest-cov", specifier = ">=6.2" }, { name = "pytest-deadfixtures", specifier = ">=2.2.1" }, { name = "pytest-env", specifier = ">=1.1.5" }, { name = "pytest-markdown-docs", specifier = ">=0.9.2" }, - { name = "pytest-mock", specifier = ">=3.14" }, + { name = "pytest-mock", specifier = ">=3.15.1" }, { name = "pytest-randomly", specifier = ">=3.16" }, { name = "pytest-sugar", specifier = ">=1" }, { name = "pytest-timeout", specifier = ">=2.4" }, { name = "pytest-xdist", specifier = ">=3.8" }, - { name = "pyupgrade", specifier = ">=3.19" }, + { name = "pyupgrade", specifier = ">=3.21.2" }, { name = "radon", specifier = ">=6.0.1" }, + { name = "refurb", specifier = ">=2" }, + { name = "rope", specifier = ">=1.11" }, { name = "ruff", specifier = ">=0.12.3" }, { name = "types-cachetools", specifier = ">=6.2" }, - { name = "types-cffi", specifier = ">=2.0" }, - { name = "types-click", specifier = ">=7.1" }, - { name = "types-defusedxml", specifier = ">=0.7" }, - { name = "types-docker", specifier = ">=7.1" }, - { name = "types-flask", specifier = ">=1.1.6" }, - { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", specifier = ">=4.0" }, - { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", specifier = ">=7" }, - { name = "types-psycopg2", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", specifier = ">=0.6" }, - { name = "types-pyopenssl", specifier = ">=24.1" }, - { name = "types-python-dateutil", specifier = ">=2.9" }, - { name = "types-pyyaml", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", specifier = ">=4.6" }, - { name = "types-requests", specifier = ">=2.32.4" }, - { name = "types-setuptools", specifier = ">=80.9" }, - { name = "types-tabulate", specifier = ">=0.10" }, - { name = "types-toml", specifier = ">=0.10.8.20240310" }, - { name = "vulture", specifier = ">=2.13" }, -] - -[[package]] -name = "flext-plugin" -version = "0.12.0rc0" -source = { editable = "flext-plugin" } -dependencies = [ - { name = "anyio" }, - { name = "flext-cli" }, - { name = "flext-core" }, - { name = "jsonschema" }, - { name = "psutil" }, - { name = "pydantic" }, - { name = "pydantic-core" }, - { name = "pydantic-settings" }, - { name = "watchdog" }, -] - -[package.dev-dependencies] -codegen = [ - { name = "flext-infra" }, -] -dev = [ - { name = "autoflake" }, - { name = "bandit" }, - { name = "black" }, - { name = "blacken-docs" }, - { name = "codespell" }, - { name = "deptry" }, - { name = "django-stubs" }, - { name = "factory-boy" }, - { name = "faker" }, - { name = "flext-tests" }, - { name = "hypothesis" }, - { name = "isort" }, - { name = "matplotlib-stubs" }, - { name = "mkdocs" }, - { name = "mkdocs-awesome-pages-plugin" }, - { name = "mkdocs-encryptcontent-plugin" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-get-deps" }, - { name = "mkdocs-git-revision-date-localized-plugin" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-macros-plugin" }, - { name = "mkdocs-material" }, - { name = "mkdocs-material-extensions" }, - { name = "mkdocs-mermaid2-plugin" }, - { name = "mkdocs-minify-plugin" }, - { name = "mkdocs-print-site-plugin" }, - { name = "mkdocs-redirects" }, - { name = "mkdocs-section-index" }, - { name = "mkdocs-versioning" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "pip-audit" }, - { name = "pre-commit" }, - { name = "pylint" }, - { name = "pyrefly" }, - { name = "pytest" }, - { name = "pytest-benchmark" }, - { name = "pytest-clarity" }, - { name = "pytest-codeblocks" }, - { name = "pytest-cov" }, - { name = "pytest-deadfixtures" }, - { name = "pytest-env" }, - { name = "pytest-markdown-docs" }, - { name = "pytest-mock" }, - { name = "pytest-randomly" }, - { name = "pytest-sugar" }, - { name = "pytest-timeout" }, - { name = "pytest-xdist" }, - { name = "pyupgrade" }, - { name = "radon" }, - { name = "ruff" }, - { name = "types-cachetools" }, - { name = "types-cffi" }, - { name = "types-click" }, - { name = "types-defusedxml" }, - { name = "types-docker" }, - { name = "types-flask" }, - { name = "types-jsonschema" }, - { name = "types-ldap3" }, - { name = "types-paramiko" }, - { name = "types-protobuf" }, - { name = "types-psutil" }, - { name = "types-psycopg2" }, - { name = "types-pyasn1" }, - { name = "types-pyopenssl" }, - { name = "types-python-dateutil" }, - { name = "types-pyyaml" }, - { name = "types-redis" }, - { name = "types-requests" }, - { name = "types-setuptools" }, - { name = "types-tabulate" }, - { name = "types-toml" }, - { name = "vulture" }, - { name = "yamlfix" }, -] - -[package.metadata] -requires-dist = [ - { name = "anyio", specifier = ">=4.13.0" }, - { name = "flext-cli", editable = "flext-cli" }, - { name = "flext-core", editable = "flext-core" }, - { name = "jsonschema", specifier = ">=4.26.0" }, - { name = "psutil", specifier = ">=7.2.2" }, - { name = "pydantic", specifier = ">=2.13.3" }, - { name = "pydantic-core", specifier = ">=2.46.3" }, - { name = "pydantic-settings", specifier = ">=2.14.0" }, - { name = "watchdog", specifier = ">=4.0.0,<6" }, -] - -[package.metadata.requires-dev] -codegen = [{ name = "flext-infra", editable = "flext-infra" }] -dev = [ - { name = "autoflake", specifier = ">=2.3.1" }, - { name = "bandit", specifier = ">=1.8" }, - { name = "black", specifier = ">=25.1" }, - { name = "blacken-docs", specifier = ">=1.19" }, - { name = "codespell", specifier = ">=2.3" }, - { name = "deptry", specifier = ">=0.23" }, - { name = "django-stubs", specifier = ">=5.2.2" }, - { name = "factory-boy", specifier = ">=3.3.1" }, - { name = "faker", specifier = ">=37.4" }, - { name = "flext-tests", editable = "flext-tests" }, - { name = "hypothesis", specifier = ">=6.125" }, - { name = "isort", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", specifier = ">=0.3" }, - { name = "mkdocs", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", specifier = ">=2" }, - { name = "mkdocs-exclude", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", specifier = ">=1" }, - { name = "mkdocs-material", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", specifier = ">=0.8" }, - { name = "mkdocs-redirects", specifier = ">=1.2" }, - { name = "mkdocs-section-index", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", specifier = ">=0.2" }, - { name = "mkdocstrings", specifier = ">=0.24" }, - { name = "mkdocstrings-python", specifier = ">=1.7" }, - { name = "pip-audit", specifier = ">=2.7.3" }, - { name = "pre-commit", specifier = ">=4.6.0" }, - { name = "pylint", specifier = ">=3.3" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", specifier = ">=8.4" }, - { name = "pytest-benchmark", specifier = ">=5.1" }, - { name = "pytest-clarity", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", specifier = ">=0.17.0" }, - { name = "pytest-cov", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", specifier = ">=2.2.1" }, - { name = "pytest-env", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", specifier = ">=0.9.2" }, - { name = "pytest-mock", specifier = ">=3.14" }, - { name = "pytest-randomly", specifier = ">=3.16" }, - { name = "pytest-sugar", specifier = ">=1" }, - { name = "pytest-timeout", specifier = ">=2.4" }, - { name = "pytest-xdist", specifier = ">=3.8" }, - { name = "pyupgrade", specifier = ">=3.19" }, - { name = "radon", specifier = ">=6.0.1" }, - { name = "ruff", specifier = ">=0.12.3" }, - { name = "types-cachetools", specifier = ">=6.2" }, - { name = "types-cffi", specifier = ">=2.0" }, + { name = "types-cffi", specifier = ">=2.0.0.20260518" }, { name = "types-click", specifier = ">=7.1" }, { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, { name = "types-jsonschema", specifier = ">=4.26" }, - { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, + { name = "types-ldap3", specifier = ">=2.9.13.20260518" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", specifier = ">=7" }, - { name = "types-psycopg2", specifier = ">=2.9.21.20250718" }, + { name = "types-psutil", specifier = ">=7.2.2.20260518" }, + { name = "types-psycopg2", specifier = ">=2.9.21.20260724" }, { name = "types-pyasn1", specifier = ">=0.6" }, { name = "types-pyopenssl", specifier = ">=24.1" }, { name = "types-python-dateutil", specifier = ">=2.9" }, { name = "types-pyyaml", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", specifier = ">=4.6" }, + { name = "types-redis", specifier = ">=4.6.0.20241004" }, { name = "types-requests", specifier = ">=2.32.4" }, { name = "types-setuptools", specifier = ">=80.9" }, { name = "types-tabulate", specifier = ">=0.10" }, - { name = "types-toml", specifier = ">=0.10.8.20240310" }, + { name = "types-toml", specifier = ">=0.10.8.20260518" }, { name = "vulture", specifier = ">=2.13" }, { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] -name = "flext-quality" +name = "flext-tap-ldap" version = "0.12.0rc0" -source = { editable = "flext-quality" } -dependencies = [ - { name = "aiohttp" }, - { name = "click" }, - { name = "fastapi" }, - { name = "fastmcp" }, - { name = "flext-api" }, - { name = "flext-cli" }, - { name = "flext-core" }, - { name = "flext-infra" }, - { name = "flext-web" }, - { name = "gitpython" }, - { name = "httpx" }, - { name = "libcst" }, - { name = "mypy" }, - { name = "pydantic" }, - { name = "pydantic-core" }, - { name = "pydantic-settings" }, - { name = "pyright" }, - { name = "pyyaml" }, - { name = "referencing" }, - { name = "rich" }, - { name = "schedule" }, - { name = "typer" }, - { name = "uvicorn" }, - { name = "wrapt" }, -] - -[package.dev-dependencies] -codegen = [ - { name = "flext-infra" }, -] -dev = [ - { name = "actionlint-py" }, - { name = "autoflake" }, - { name = "bandit" }, - { name = "black" }, - { name = "blacken-docs" }, - { name = "codespell" }, - { name = "deptry" }, - { name = "django-stubs" }, - { name = "factory-boy" }, - { name = "faker" }, - { name = "flext-tests" }, - { name = "hypothesis" }, - { name = "isort" }, - { name = "matplotlib-stubs" }, - { name = "mkdocs" }, - { name = "mkdocs-awesome-pages-plugin" }, - { name = "mkdocs-encryptcontent-plugin" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-get-deps" }, - { name = "mkdocs-git-revision-date-localized-plugin" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-macros-plugin" }, - { name = "mkdocs-material" }, - { name = "mkdocs-material-extensions" }, - { name = "mkdocs-mermaid2-plugin" }, - { name = "mkdocs-minify-plugin" }, - { name = "mkdocs-print-site-plugin" }, - { name = "mkdocs-redirects" }, - { name = "mkdocs-section-index" }, - { name = "mkdocs-versioning" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "mypy" }, - { name = "pip-audit" }, - { name = "pre-commit" }, - { name = "pylint" }, - { name = "pyrefly" }, - { name = "pyright" }, - { name = "pytest" }, - { name = "pytest-benchmark" }, - { name = "pytest-clarity" }, - { name = "pytest-codeblocks" }, - { name = "pytest-cov" }, - { name = "pytest-deadfixtures" }, - { name = "pytest-env" }, - { name = "pytest-markdown-docs" }, - { name = "pytest-mock" }, - { name = "pytest-randomly" }, - { name = "pytest-sugar" }, - { name = "pytest-timeout" }, - { name = "pytest-xdist" }, - { name = "pyupgrade" }, - { name = "radon" }, - { name = "refurb" }, - { name = "rope" }, - { name = "ruff" }, - { name = "types-cachetools" }, - { name = "types-cffi" }, - { name = "types-click" }, - { name = "types-defusedxml" }, - { name = "types-docker" }, - { name = "types-flask" }, - { name = "types-jsonschema" }, - { name = "types-ldap3" }, - { name = "types-paramiko" }, - { name = "types-protobuf" }, - { name = "types-psutil" }, - { name = "types-psycopg2" }, - { name = "types-pyasn1" }, - { name = "types-pyopenssl" }, - { name = "types-python-dateutil" }, - { name = "types-pyyaml" }, - { name = "types-redis" }, - { name = "types-requests" }, - { name = "types-setuptools" }, - { name = "types-tabulate" }, - { name = "types-toml" }, - { name = "vulture" }, - { name = "yamlfix" }, -] - -[package.metadata] -requires-dist = [ - { name = "aiohttp", specifier = ">=3.13.5" }, - { name = "click", specifier = ">=8.3.3,<8.4" }, - { name = "fastapi", specifier = ">=0.136.1" }, - { name = "fastmcp", specifier = ">=3.4.4" }, - { name = "flext-api", editable = "flext-api" }, - { name = "flext-cli", editable = "flext-cli" }, - { name = "flext-core", editable = "flext-core" }, - { name = "flext-infra", editable = "flext-infra" }, - { name = "flext-web", editable = "flext-web" }, - { name = "gitpython", specifier = ">=3.1.49" }, - { name = "httpx", specifier = ">=0.28.1" }, - { name = "libcst", specifier = ">=1.8.6" }, - { name = "mypy", specifier = ">=1.20.2" }, - { name = "pydantic", specifier = ">=2.13.3" }, - { name = "pydantic-core", specifier = ">=2.46.3" }, - { name = "pydantic-settings", specifier = ">=2.14.2" }, - { name = "pyright", specifier = ">=1.1.411" }, - { name = "pyyaml", specifier = ">=6.0.3" }, - { name = "referencing", specifier = ">=0.37.0" }, - { name = "rich", specifier = ">=14,<14.4" }, - { name = "schedule", specifier = ">=1.2.2" }, - { name = "typer", specifier = ">=0.25.1" }, - { name = "uvicorn", specifier = ">=0.51.0" }, - { name = "wrapt", specifier = ">=2.1.2" }, -] - -[package.metadata.requires-dev] -codegen = [{ name = "flext-infra", editable = "flext-infra" }] -dev = [ - { name = "actionlint-py", specifier = ">=1.7.12.24" }, - { name = "autoflake", specifier = ">=2.3.3" }, - { name = "bandit", specifier = ">=1.8" }, - { name = "black", specifier = ">=25.1" }, - { name = "blacken-docs", specifier = ">=1.19" }, - { name = "codespell", specifier = ">=2.3" }, - { name = "deptry", specifier = ">=0.23" }, - { name = "django-stubs", specifier = ">=6.0.6" }, - { name = "factory-boy", specifier = ">=3.3.3" }, - { name = "faker", specifier = ">=40.36.0" }, - { name = "flext-tests", editable = "flext-tests" }, - { name = "hypothesis", specifier = ">=6.125" }, - { name = "isort", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", specifier = ">=0.3" }, - { name = "mkdocs", specifier = ">=1.6.1" }, - { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", specifier = ">=2" }, - { name = "mkdocs-exclude", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", specifier = ">=0.2.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", specifier = ">=1.5.0" }, - { name = "mkdocs-material", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", specifier = ">=1.2.3" }, - { name = "mkdocs-minify-plugin", specifier = ">=0.8.0" }, - { name = "mkdocs-print-site-plugin", specifier = ">=0.8" }, - { name = "mkdocs-redirects", specifier = ">=1.2" }, - { name = "mkdocs-section-index", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", specifier = ">=0.2" }, - { name = "mkdocstrings", specifier = ">=0.24" }, - { name = "mkdocstrings-python", specifier = ">=2.0.5" }, - { name = "mypy", specifier = ">=2.3.0" }, - { name = "pip-audit", specifier = ">=2.10.1" }, - { name = "pre-commit", specifier = ">=4.6.0" }, - { name = "pylint", specifier = ">=3.3" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, - { name = "pyright", specifier = ">=1.1.411" }, - { name = "pytest", specifier = ">=8.4" }, - { name = "pytest-benchmark", specifier = ">=5.2.3" }, - { name = "pytest-clarity", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", specifier = ">=0.18.0" }, - { name = "pytest-cov", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", specifier = ">=2.2.1" }, - { name = "pytest-env", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", specifier = ">=0.9.2" }, - { name = "pytest-mock", specifier = ">=3.15.1" }, - { name = "pytest-randomly", specifier = ">=3.16" }, - { name = "pytest-sugar", specifier = ">=1" }, - { name = "pytest-timeout", specifier = ">=2.4" }, - { name = "pytest-xdist", specifier = ">=3.8" }, - { name = "pyupgrade", specifier = ">=3.21.2" }, - { name = "radon", specifier = ">=6.0.1" }, - { name = "refurb", specifier = ">=2" }, - { name = "rope", specifier = ">=1.11" }, - { name = "ruff", specifier = ">=0.12.3" }, - { name = "types-cachetools", specifier = ">=6.2" }, - { name = "types-cffi", specifier = ">=2.0.0.20260518" }, - { name = "types-click", specifier = ">=7.1" }, - { name = "types-defusedxml", specifier = ">=0.7" }, - { name = "types-docker", specifier = ">=7.1" }, - { name = "types-flask", specifier = ">=1.1.6" }, - { name = "types-jsonschema", specifier = ">=4.26" }, - { name = "types-ldap3", specifier = ">=2.9.13.20260518" }, - { name = "types-paramiko", specifier = ">=4.0" }, - { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", specifier = ">=7.2.2.20260518" }, - { name = "types-psycopg2", specifier = ">=2.9.21.20260724" }, - { name = "types-pyasn1", specifier = ">=0.6" }, - { name = "types-pyopenssl", specifier = ">=24.1" }, - { name = "types-python-dateutil", specifier = ">=2.9" }, - { name = "types-pyyaml", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", specifier = ">=4.6.0.20241004" }, - { name = "types-requests", specifier = ">=2.32.4" }, - { name = "types-setuptools", specifier = ">=80.9" }, - { name = "types-tabulate", specifier = ">=0.10" }, - { name = "types-toml", specifier = ">=0.10.8.20260518" }, - { name = "vulture", specifier = ">=2.13" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, -] - -[[package]] -name = "flext-tap-ldap" -version = "0.12.0rc0" -source = { editable = "flext-tap-ldap" } -dependencies = [ - { name = "flext-cli" }, - { name = "flext-core" }, - { name = "flext-ldap" }, - { name = "flext-meltano" }, - { name = "pydantic" }, - { name = "pydantic-core" }, -] - -[package.optional-dependencies] -dev = [ - { name = "autoflake" }, - { name = "bandit" }, - { name = "black" }, - { name = "blacken-docs" }, - { name = "codespell" }, - { name = "deptry" }, - { name = "django-stubs" }, - { name = "factory-boy" }, - { name = "faker" }, - { name = "hypothesis" }, - { name = "isort" }, - { name = "matplotlib-stubs" }, - { name = "mkdocs" }, - { name = "mkdocs-awesome-pages-plugin" }, - { name = "mkdocs-encryptcontent-plugin" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-get-deps" }, - { name = "mkdocs-git-revision-date-localized-plugin" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-macros-plugin" }, - { name = "mkdocs-material" }, - { name = "mkdocs-material-extensions" }, - { name = "mkdocs-mermaid2-plugin" }, - { name = "mkdocs-minify-plugin" }, - { name = "mkdocs-print-site-plugin" }, - { name = "mkdocs-redirects" }, - { name = "mkdocs-section-index" }, - { name = "mkdocs-versioning" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "pip-audit" }, - { name = "pre-commit" }, - { name = "pylint" }, - { name = "pyrefly" }, - { name = "pytest" }, - { name = "pytest-benchmark" }, - { name = "pytest-clarity" }, - { name = "pytest-codeblocks" }, - { name = "pytest-cov" }, - { name = "pytest-deadfixtures" }, - { name = "pytest-env" }, - { name = "pytest-markdown-docs" }, - { name = "pytest-mock" }, - { name = "pytest-randomly" }, - { name = "pytest-sugar" }, - { name = "pytest-timeout" }, - { name = "pytest-xdist" }, - { name = "pyupgrade" }, - { name = "radon" }, - { name = "ruff" }, - { name = "types-cachetools" }, - { name = "types-cffi" }, - { name = "types-click" }, - { name = "types-defusedxml" }, - { name = "types-docker" }, - { name = "types-flask" }, - { name = "types-jsonschema" }, - { name = "types-ldap3" }, - { name = "types-paramiko" }, - { name = "types-protobuf" }, - { name = "types-psutil" }, - { name = "types-psycopg2" }, - { name = "types-pyasn1" }, - { name = "types-pyopenssl" }, - { name = "types-python-dateutil" }, - { name = "types-pyyaml" }, - { name = "types-redis" }, - { name = "types-requests" }, - { name = "types-setuptools" }, - { name = "types-tabulate" }, - { name = "types-toml" }, - { name = "vulture" }, - { name = "yamlfix" }, -] - -[package.dev-dependencies] -codegen = [ - { name = "flext-infra" }, -] -dev = [ - { name = "autoflake" }, - { name = "bandit" }, - { name = "black" }, - { name = "blacken-docs" }, - { name = "codespell" }, - { name = "deptry" }, - { name = "django-stubs" }, - { name = "factory-boy" }, - { name = "faker" }, - { name = "flext-tests" }, - { name = "hypothesis" }, - { name = "isort" }, - { name = "matplotlib-stubs" }, - { name = "mkdocs" }, - { name = "mkdocs-awesome-pages-plugin" }, - { name = "mkdocs-encryptcontent-plugin" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-get-deps" }, - { name = "mkdocs-git-revision-date-localized-plugin" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-macros-plugin" }, - { name = "mkdocs-material" }, - { name = "mkdocs-material-extensions" }, - { name = "mkdocs-mermaid2-plugin" }, - { name = "mkdocs-minify-plugin" }, - { name = "mkdocs-print-site-plugin" }, - { name = "mkdocs-redirects" }, - { name = "mkdocs-section-index" }, - { name = "mkdocs-versioning" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "pip-audit" }, - { name = "pre-commit" }, - { name = "pylint" }, - { name = "pyrefly" }, - { name = "pytest" }, - { name = "pytest-benchmark" }, - { name = "pytest-clarity" }, - { name = "pytest-codeblocks" }, - { name = "pytest-cov" }, - { name = "pytest-deadfixtures" }, - { name = "pytest-env" }, - { name = "pytest-markdown-docs" }, - { name = "pytest-mock" }, - { name = "pytest-randomly" }, - { name = "pytest-sugar" }, - { name = "pytest-timeout" }, - { name = "pytest-xdist" }, - { name = "pyupgrade" }, - { name = "radon" }, - { name = "ruff" }, - { name = "types-cachetools" }, - { name = "types-cffi" }, - { name = "types-click" }, - { name = "types-defusedxml" }, - { name = "types-docker" }, - { name = "types-flask" }, - { name = "types-ldap3" }, - { name = "types-paramiko" }, - { name = "types-protobuf" }, - { name = "types-psutil" }, - { name = "types-psycopg2" }, - { name = "types-pyasn1" }, - { name = "types-pyopenssl" }, - { name = "types-python-dateutil" }, - { name = "types-pyyaml" }, - { name = "types-redis" }, - { name = "types-requests" }, - { name = "types-setuptools" }, - { name = "types-tabulate" }, - { name = "types-toml" }, - { name = "vulture" }, -] - -[package.metadata] -requires-dist = [ - { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, - { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, - { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, - { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, - { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, - { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, - { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, - { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, - { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, - { name = "flext-cli", editable = "flext-cli" }, - { name = "flext-core", editable = "flext-core" }, - { name = "flext-ldap", editable = "flext-ldap" }, - { name = "flext-meltano", editable = "flext-meltano" }, - { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, - { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, - { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, - { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, - { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, - { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, - { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, - { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, - { name = "pydantic", specifier = ">=2.13.3" }, - { name = "pydantic-core", specifier = ">=2.46.3" }, - { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, - { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, - { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, - { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, - { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, - { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, - { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, - { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, - { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, - { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, - { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, - { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, - { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, - { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, - { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, - { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, - { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, - { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, - { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, - { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, - { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, - { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, - { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, - { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, - { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, -] -provides-extras = ["dev"] - -[package.metadata.requires-dev] -codegen = [{ name = "flext-infra", editable = "flext-infra" }] -dev = [ - { name = "autoflake", specifier = ">=2.3.1" }, - { name = "bandit", specifier = ">=1.8" }, - { name = "black", specifier = ">=25.1" }, - { name = "blacken-docs", specifier = ">=1.19" }, - { name = "codespell", specifier = ">=2.3" }, - { name = "deptry", specifier = ">=0.23" }, - { name = "django-stubs", specifier = ">=5.2.2" }, - { name = "factory-boy", specifier = ">=3.3.1" }, - { name = "faker", specifier = ">=37.4" }, - { name = "flext-tests", editable = "flext-tests" }, - { name = "hypothesis", specifier = ">=6.125" }, - { name = "isort", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", specifier = ">=0.3" }, - { name = "mkdocs", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", specifier = ">=2" }, - { name = "mkdocs-exclude", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", specifier = ">=1" }, - { name = "mkdocs-material", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", specifier = ">=0.8" }, - { name = "mkdocs-redirects", specifier = ">=1.2" }, - { name = "mkdocs-section-index", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", specifier = ">=0.2" }, - { name = "mkdocstrings", specifier = ">=0.24" }, - { name = "mkdocstrings-python", specifier = ">=1.7" }, - { name = "pip-audit", specifier = ">=2.7.3" }, - { name = "pre-commit", specifier = ">=4.6.0" }, - { name = "pylint", specifier = ">=3.3" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", specifier = ">=8.4" }, - { name = "pytest-benchmark", specifier = ">=5.1" }, - { name = "pytest-clarity", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", specifier = ">=0.17.0" }, - { name = "pytest-cov", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", specifier = ">=2.2.1" }, - { name = "pytest-env", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", specifier = ">=0.9.2" }, - { name = "pytest-mock", specifier = ">=3.14" }, - { name = "pytest-randomly", specifier = ">=3.16" }, - { name = "pytest-sugar", specifier = ">=1" }, - { name = "pytest-timeout", specifier = ">=2.4" }, - { name = "pytest-xdist", specifier = ">=3.8" }, - { name = "pyupgrade", specifier = ">=3.19" }, - { name = "radon", specifier = ">=6.0.1" }, - { name = "ruff", specifier = ">=0.12.3" }, - { name = "types-cachetools", specifier = ">=6.2" }, - { name = "types-cffi", specifier = ">=2.0" }, - { name = "types-click", specifier = ">=7.1" }, - { name = "types-defusedxml", specifier = ">=0.7" }, - { name = "types-docker", specifier = ">=7.1" }, - { name = "types-flask", specifier = ">=1.1.6" }, - { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", specifier = ">=4.0" }, - { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", specifier = ">=7" }, - { name = "types-psycopg2", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", specifier = ">=0.6" }, - { name = "types-pyopenssl", specifier = ">=24.1" }, - { name = "types-python-dateutil", specifier = ">=2.9" }, - { name = "types-pyyaml", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", specifier = ">=4.6" }, - { name = "types-requests", specifier = ">=2.32.4" }, - { name = "types-setuptools", specifier = ">=80.9" }, - { name = "types-tabulate", specifier = ">=0.10" }, - { name = "types-toml", specifier = ">=0.10.8.20240310" }, - { name = "vulture", specifier = ">=2.13" }, -] - -[[package]] -name = "flext-tap-ldif" -version = "0.12.0rc0" -source = { editable = "flext-tap-ldif" } -dependencies = [ - { name = "flext-core" }, - { name = "flext-ldif" }, - { name = "flext-meltano" }, - { name = "flext-observability" }, - { name = "pydantic" }, - { name = "pydantic-core" }, -] - -[package.optional-dependencies] -dev = [ - { name = "autoflake" }, - { name = "bandit" }, - { name = "black" }, - { name = "blacken-docs" }, - { name = "codespell" }, - { name = "deptry" }, - { name = "django-stubs" }, - { name = "factory-boy" }, - { name = "faker" }, - { name = "hypothesis" }, - { name = "isort" }, - { name = "matplotlib-stubs" }, - { name = "mkdocs" }, - { name = "mkdocs-awesome-pages-plugin" }, - { name = "mkdocs-encryptcontent-plugin" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-get-deps" }, - { name = "mkdocs-git-revision-date-localized-plugin" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-macros-plugin" }, - { name = "mkdocs-material" }, - { name = "mkdocs-material-extensions" }, - { name = "mkdocs-mermaid2-plugin" }, - { name = "mkdocs-minify-plugin" }, - { name = "mkdocs-print-site-plugin" }, - { name = "mkdocs-redirects" }, - { name = "mkdocs-section-index" }, - { name = "mkdocs-versioning" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "pip-audit" }, - { name = "pre-commit" }, - { name = "pylint" }, - { name = "pyrefly" }, - { name = "pytest" }, - { name = "pytest-benchmark" }, - { name = "pytest-clarity" }, - { name = "pytest-codeblocks" }, - { name = "pytest-cov" }, - { name = "pytest-deadfixtures" }, - { name = "pytest-env" }, - { name = "pytest-markdown-docs" }, - { name = "pytest-mock" }, - { name = "pytest-randomly" }, - { name = "pytest-sugar" }, - { name = "pytest-timeout" }, - { name = "pytest-xdist" }, - { name = "pyupgrade" }, - { name = "radon" }, - { name = "ruff" }, - { name = "types-cachetools" }, - { name = "types-cffi" }, - { name = "types-click" }, - { name = "types-defusedxml" }, - { name = "types-docker" }, - { name = "types-flask" }, - { name = "types-jsonschema" }, - { name = "types-ldap3" }, - { name = "types-paramiko" }, - { name = "types-protobuf" }, - { name = "types-psutil" }, - { name = "types-psycopg2" }, - { name = "types-pyasn1" }, - { name = "types-pyopenssl" }, - { name = "types-python-dateutil" }, - { name = "types-pyyaml" }, - { name = "types-redis" }, - { name = "types-requests" }, - { name = "types-setuptools" }, - { name = "types-tabulate" }, - { name = "types-toml" }, - { name = "vulture" }, - { name = "yamlfix" }, -] - -[package.dev-dependencies] -codegen = [ - { name = "flext-infra" }, -] -dev = [ - { name = "autoflake" }, - { name = "bandit" }, - { name = "black" }, - { name = "blacken-docs" }, - { name = "codespell" }, - { name = "deptry" }, - { name = "django-stubs" }, - { name = "factory-boy" }, - { name = "faker" }, - { name = "flext-tests" }, - { name = "hypothesis" }, - { name = "isort" }, - { name = "matplotlib-stubs" }, - { name = "mkdocs" }, - { name = "mkdocs-awesome-pages-plugin" }, - { name = "mkdocs-encryptcontent-plugin" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-get-deps" }, - { name = "mkdocs-git-revision-date-localized-plugin" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-macros-plugin" }, - { name = "mkdocs-material" }, - { name = "mkdocs-material-extensions" }, - { name = "mkdocs-mermaid2-plugin" }, - { name = "mkdocs-minify-plugin" }, - { name = "mkdocs-print-site-plugin" }, - { name = "mkdocs-redirects" }, - { name = "mkdocs-section-index" }, - { name = "mkdocs-versioning" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "pip-audit" }, - { name = "pre-commit" }, - { name = "pylint" }, - { name = "pyrefly" }, - { name = "pytest" }, - { name = "pytest-benchmark" }, - { name = "pytest-clarity" }, - { name = "pytest-codeblocks" }, - { name = "pytest-cov" }, - { name = "pytest-deadfixtures" }, - { name = "pytest-env" }, - { name = "pytest-markdown-docs" }, - { name = "pytest-mock" }, - { name = "pytest-randomly" }, - { name = "pytest-sugar" }, - { name = "pytest-timeout" }, - { name = "pytest-xdist" }, - { name = "pyupgrade" }, - { name = "radon" }, - { name = "ruff" }, - { name = "types-cachetools" }, - { name = "types-cffi" }, - { name = "types-click" }, - { name = "types-defusedxml" }, - { name = "types-docker" }, - { name = "types-flask" }, - { name = "types-ldap3" }, - { name = "types-paramiko" }, - { name = "types-protobuf" }, - { name = "types-psutil" }, - { name = "types-psycopg2" }, - { name = "types-pyasn1" }, - { name = "types-pyopenssl" }, - { name = "types-python-dateutil" }, - { name = "types-pyyaml" }, - { name = "types-redis" }, - { name = "types-requests" }, - { name = "types-setuptools" }, - { name = "types-tabulate" }, - { name = "types-toml" }, - { name = "vulture" }, -] - -[package.metadata] -requires-dist = [ - { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, - { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, - { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, - { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, - { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, - { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, - { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, - { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, - { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, - { name = "flext-core", editable = "flext-core" }, - { name = "flext-ldif", editable = "flext-ldif" }, - { name = "flext-meltano", editable = "flext-meltano" }, - { name = "flext-observability", editable = "flext-observability" }, - { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, - { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, - { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, - { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, - { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, - { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, - { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, - { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, - { name = "pydantic", specifier = ">=2.13.3" }, - { name = "pydantic-core", specifier = ">=2.46.3" }, - { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, - { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, - { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, - { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, - { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, - { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, - { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, - { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, - { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, - { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, - { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, - { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, - { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, - { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, - { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, - { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, - { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, - { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, - { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, - { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, - { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, - { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, - { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, - { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, - { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, -] -provides-extras = ["dev"] - -[package.metadata.requires-dev] -codegen = [{ name = "flext-infra", editable = "flext-infra" }] -dev = [ - { name = "autoflake", specifier = ">=2.3.1" }, - { name = "bandit", specifier = ">=1.8" }, - { name = "black", specifier = ">=25.1" }, - { name = "blacken-docs", specifier = ">=1.19" }, - { name = "codespell", specifier = ">=2.3" }, - { name = "deptry", specifier = ">=0.23" }, - { name = "django-stubs", specifier = ">=5.2.2" }, - { name = "factory-boy", specifier = ">=3.3.1" }, - { name = "faker", specifier = ">=37.4" }, - { name = "flext-tests", editable = "flext-tests" }, - { name = "hypothesis", specifier = ">=6.125" }, - { name = "isort", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", specifier = ">=0.3" }, - { name = "mkdocs", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", specifier = ">=2" }, - { name = "mkdocs-exclude", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", specifier = ">=1" }, - { name = "mkdocs-material", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", specifier = ">=0.8" }, - { name = "mkdocs-redirects", specifier = ">=1.2" }, - { name = "mkdocs-section-index", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", specifier = ">=0.2" }, - { name = "mkdocstrings", specifier = ">=0.24" }, - { name = "mkdocstrings-python", specifier = ">=1.7" }, - { name = "pip-audit", specifier = ">=2.7.3" }, - { name = "pre-commit", specifier = ">=4.6.0" }, - { name = "pylint", specifier = ">=3.3" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", specifier = ">=8.4" }, - { name = "pytest-benchmark", specifier = ">=5.1" }, - { name = "pytest-clarity", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", specifier = ">=0.17.0" }, - { name = "pytest-cov", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", specifier = ">=2.2.1" }, - { name = "pytest-env", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", specifier = ">=0.9.2" }, - { name = "pytest-mock", specifier = ">=3.14" }, - { name = "pytest-randomly", specifier = ">=3.16" }, - { name = "pytest-sugar", specifier = ">=1" }, - { name = "pytest-timeout", specifier = ">=2.4" }, - { name = "pytest-xdist", specifier = ">=3.8" }, - { name = "pyupgrade", specifier = ">=3.19" }, - { name = "radon", specifier = ">=6.0.1" }, - { name = "ruff", specifier = ">=0.12.3" }, - { name = "types-cachetools", specifier = ">=6.2" }, - { name = "types-cffi", specifier = ">=2.0" }, - { name = "types-click", specifier = ">=7.1" }, - { name = "types-defusedxml", specifier = ">=0.7" }, - { name = "types-docker", specifier = ">=7.1" }, - { name = "types-flask", specifier = ">=1.1.6" }, - { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", specifier = ">=4.0" }, - { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", specifier = ">=7" }, - { name = "types-psycopg2", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", specifier = ">=0.6" }, - { name = "types-pyopenssl", specifier = ">=24.1" }, - { name = "types-python-dateutil", specifier = ">=2.9" }, - { name = "types-pyyaml", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", specifier = ">=4.6" }, - { name = "types-requests", specifier = ">=2.32.4" }, - { name = "types-setuptools", specifier = ">=80.9" }, - { name = "types-tabulate", specifier = ">=0.10" }, - { name = "types-toml", specifier = ">=0.10.8.20240310" }, - { name = "vulture", specifier = ">=2.13" }, -] - -[[package]] -name = "flext-tap-oracle" -version = "0.12.0rc0" -source = { editable = "flext-tap-oracle" } -dependencies = [ - { name = "fastapi" }, - { name = "flext-core" }, - { name = "flext-db-oracle" }, - { name = "flext-meltano" }, - { name = "flext-observability" }, - { name = "prometheus-client" }, - { name = "pydantic" }, - { name = "pydantic-core" }, - { name = "setuptools" }, - { name = "singer-sdk" }, - { name = "uvicorn" }, -] - -[package.optional-dependencies] -dev = [ - { name = "autoflake" }, - { name = "bandit" }, - { name = "black" }, - { name = "blacken-docs" }, - { name = "codespell" }, - { name = "deptry" }, - { name = "django-stubs" }, - { name = "factory-boy" }, - { name = "faker" }, - { name = "hypothesis" }, - { name = "isort" }, - { name = "matplotlib-stubs" }, - { name = "mkdocs" }, - { name = "mkdocs-awesome-pages-plugin" }, - { name = "mkdocs-encryptcontent-plugin" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-get-deps" }, - { name = "mkdocs-git-revision-date-localized-plugin" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-macros-plugin" }, - { name = "mkdocs-material" }, - { name = "mkdocs-material-extensions" }, - { name = "mkdocs-mermaid2-plugin" }, - { name = "mkdocs-minify-plugin" }, - { name = "mkdocs-print-site-plugin" }, - { name = "mkdocs-redirects" }, - { name = "mkdocs-section-index" }, - { name = "mkdocs-versioning" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "pip-audit" }, - { name = "pre-commit" }, - { name = "pylint" }, - { name = "pyrefly" }, - { name = "pytest" }, - { name = "pytest-benchmark" }, - { name = "pytest-clarity" }, - { name = "pytest-codeblocks" }, - { name = "pytest-cov" }, - { name = "pytest-deadfixtures" }, - { name = "pytest-env" }, - { name = "pytest-markdown-docs" }, - { name = "pytest-mock" }, - { name = "pytest-randomly" }, - { name = "pytest-sugar" }, - { name = "pytest-timeout" }, - { name = "pytest-xdist" }, - { name = "pyupgrade" }, - { name = "radon" }, - { name = "ruff" }, - { name = "types-cachetools" }, - { name = "types-cffi" }, - { name = "types-click" }, - { name = "types-defusedxml" }, - { name = "types-docker" }, - { name = "types-flask" }, - { name = "types-jsonschema" }, - { name = "types-ldap3" }, - { name = "types-paramiko" }, - { name = "types-protobuf" }, - { name = "types-psutil" }, - { name = "types-psycopg2" }, - { name = "types-pyasn1" }, - { name = "types-pyopenssl" }, - { name = "types-python-dateutil" }, - { name = "types-pyyaml" }, - { name = "types-redis" }, - { name = "types-requests" }, - { name = "types-setuptools" }, - { name = "types-tabulate" }, - { name = "types-toml" }, - { name = "vulture" }, - { name = "yamlfix" }, -] - -[package.dev-dependencies] -codegen = [ - { name = "flext-infra" }, -] -dev = [ - { name = "autoflake" }, - { name = "bandit" }, - { name = "black" }, - { name = "blacken-docs" }, - { name = "codespell" }, - { name = "deptry" }, - { name = "django-stubs" }, - { name = "factory-boy" }, - { name = "faker" }, - { name = "flext-tests" }, - { name = "hypothesis" }, - { name = "isort" }, - { name = "matplotlib-stubs" }, - { name = "mkdocs" }, - { name = "mkdocs-awesome-pages-plugin" }, - { name = "mkdocs-encryptcontent-plugin" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-get-deps" }, - { name = "mkdocs-git-revision-date-localized-plugin" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-macros-plugin" }, - { name = "mkdocs-material" }, - { name = "mkdocs-material-extensions" }, - { name = "mkdocs-mermaid2-plugin" }, - { name = "mkdocs-minify-plugin" }, - { name = "mkdocs-print-site-plugin" }, - { name = "mkdocs-redirects" }, - { name = "mkdocs-section-index" }, - { name = "mkdocs-versioning" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "pip-audit" }, - { name = "pre-commit" }, - { name = "pylint" }, - { name = "pyrefly" }, - { name = "pytest" }, - { name = "pytest-benchmark" }, - { name = "pytest-clarity" }, - { name = "pytest-codeblocks" }, - { name = "pytest-cov" }, - { name = "pytest-deadfixtures" }, - { name = "pytest-env" }, - { name = "pytest-markdown-docs" }, - { name = "pytest-mock" }, - { name = "pytest-randomly" }, - { name = "pytest-sugar" }, - { name = "pytest-timeout" }, - { name = "pytest-xdist" }, - { name = "pyupgrade" }, - { name = "radon" }, - { name = "ruff" }, - { name = "types-cachetools" }, - { name = "types-cffi" }, - { name = "types-click" }, - { name = "types-defusedxml" }, - { name = "types-docker" }, - { name = "types-flask" }, - { name = "types-ldap3" }, - { name = "types-paramiko" }, - { name = "types-protobuf" }, - { name = "types-psutil" }, - { name = "types-psycopg2" }, - { name = "types-pyasn1" }, - { name = "types-pyopenssl" }, - { name = "types-python-dateutil" }, - { name = "types-pyyaml" }, - { name = "types-redis" }, - { name = "types-requests" }, - { name = "types-setuptools" }, - { name = "types-tabulate" }, - { name = "types-toml" }, - { name = "vulture" }, -] - -[package.metadata] -requires-dist = [ - { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, - { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, - { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, - { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, - { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, - { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, - { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, - { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, - { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, - { name = "fastapi", specifier = ">=0.136.1" }, - { name = "flext-core", editable = "flext-core" }, - { name = "flext-db-oracle", editable = "flext-db-oracle" }, - { name = "flext-meltano", editable = "flext-meltano" }, - { name = "flext-observability", editable = "flext-observability" }, - { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, - { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, - { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, - { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, - { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, - { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, - { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, - { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, - { name = "prometheus-client", specifier = ">=0.25.0" }, - { name = "pydantic", specifier = ">=2.13.3" }, - { name = "pydantic-core", specifier = ">=2.46.3" }, - { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, - { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, - { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, - { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, - { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, - { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, - { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, - { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, - { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, - { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, - { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, - { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, - { name = "setuptools", specifier = ">=82.0.1" }, - { name = "singer-sdk", specifier = ">=0.53.7" }, - { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, - { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, - { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, - { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, - { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, - { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, - { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, - { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, - { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, - { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, - { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, - { name = "uvicorn", specifier = ">=0.46.0" }, - { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, - { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, -] -provides-extras = ["dev"] - -[package.metadata.requires-dev] -codegen = [{ name = "flext-infra", editable = "flext-infra" }] -dev = [ - { name = "autoflake", specifier = ">=2.3.1" }, - { name = "bandit", specifier = ">=1.8" }, - { name = "black", specifier = ">=25.1" }, - { name = "blacken-docs", specifier = ">=1.19" }, - { name = "codespell", specifier = ">=2.3" }, - { name = "deptry", specifier = ">=0.23" }, - { name = "django-stubs", specifier = ">=5.2.2" }, - { name = "factory-boy", specifier = ">=3.3.1" }, - { name = "faker", specifier = ">=37.4" }, - { name = "flext-tests", editable = "flext-tests" }, - { name = "hypothesis", specifier = ">=6.125" }, - { name = "isort", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", specifier = ">=0.3" }, - { name = "mkdocs", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", specifier = ">=2" }, - { name = "mkdocs-exclude", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", specifier = ">=1" }, - { name = "mkdocs-material", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", specifier = ">=0.8" }, - { name = "mkdocs-redirects", specifier = ">=1.2" }, - { name = "mkdocs-section-index", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", specifier = ">=0.2" }, - { name = "mkdocstrings", specifier = ">=0.24" }, - { name = "mkdocstrings-python", specifier = ">=1.7" }, - { name = "pip-audit", specifier = ">=2.7.3" }, - { name = "pre-commit", specifier = ">=4.6.0" }, - { name = "pylint", specifier = ">=3.3" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", specifier = ">=8.4" }, - { name = "pytest-benchmark", specifier = ">=5.1" }, - { name = "pytest-clarity", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", specifier = ">=0.17.0" }, - { name = "pytest-cov", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", specifier = ">=2.2.1" }, - { name = "pytest-env", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", specifier = ">=0.9.2" }, - { name = "pytest-mock", specifier = ">=3.14" }, - { name = "pytest-randomly", specifier = ">=3.16" }, - { name = "pytest-sugar", specifier = ">=1" }, - { name = "pytest-timeout", specifier = ">=2.4" }, - { name = "pytest-xdist", specifier = ">=3.8" }, - { name = "pyupgrade", specifier = ">=3.19" }, - { name = "radon", specifier = ">=6.0.1" }, - { name = "ruff", specifier = ">=0.12.3" }, - { name = "types-cachetools", specifier = ">=6.2" }, - { name = "types-cffi", specifier = ">=2.0" }, - { name = "types-click", specifier = ">=7.1" }, - { name = "types-defusedxml", specifier = ">=0.7" }, - { name = "types-docker", specifier = ">=7.1" }, - { name = "types-flask", specifier = ">=1.1.6" }, - { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", specifier = ">=4.0" }, - { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", specifier = ">=7" }, - { name = "types-psycopg2", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", specifier = ">=0.6" }, - { name = "types-pyopenssl", specifier = ">=24.1" }, - { name = "types-python-dateutil", specifier = ">=2.9" }, - { name = "types-pyyaml", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", specifier = ">=4.6" }, - { name = "types-requests", specifier = ">=2.32.4" }, - { name = "types-setuptools", specifier = ">=80.9" }, - { name = "types-tabulate", specifier = ">=0.10" }, - { name = "types-toml", specifier = ">=0.10.8.20240310" }, - { name = "vulture", specifier = ">=2.13" }, -] - -[[package]] -name = "flext-tap-oracle-oic" -version = "0.12.0rc0" -source = { editable = "flext-tap-oracle-oic" } -dependencies = [ - { name = "flext-api" }, - { name = "flext-cli" }, - { name = "flext-core" }, - { name = "flext-meltano" }, - { name = "flext-oracle-oic" }, - { name = "pydantic" }, - { name = "pydantic-core" }, - { name = "pydantic-settings" }, - { name = "requests" }, -] - -[package.optional-dependencies] -dev = [ - { name = "autoflake" }, - { name = "bandit" }, - { name = "black" }, - { name = "blacken-docs" }, - { name = "codespell" }, - { name = "deptry" }, - { name = "django-stubs" }, - { name = "factory-boy" }, - { name = "faker" }, - { name = "hypothesis" }, - { name = "isort" }, - { name = "matplotlib-stubs" }, - { name = "mkdocs" }, - { name = "mkdocs-awesome-pages-plugin" }, - { name = "mkdocs-encryptcontent-plugin" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-get-deps" }, - { name = "mkdocs-git-revision-date-localized-plugin" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-macros-plugin" }, - { name = "mkdocs-material" }, - { name = "mkdocs-material-extensions" }, - { name = "mkdocs-mermaid2-plugin" }, - { name = "mkdocs-minify-plugin" }, - { name = "mkdocs-print-site-plugin" }, - { name = "mkdocs-redirects" }, - { name = "mkdocs-section-index" }, - { name = "mkdocs-versioning" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "pip-audit" }, - { name = "pre-commit" }, - { name = "pylint" }, - { name = "pyrefly" }, - { name = "pytest" }, - { name = "pytest-benchmark" }, - { name = "pytest-clarity" }, - { name = "pytest-codeblocks" }, - { name = "pytest-cov" }, - { name = "pytest-deadfixtures" }, - { name = "pytest-env" }, - { name = "pytest-markdown-docs" }, - { name = "pytest-mock" }, - { name = "pytest-randomly" }, - { name = "pytest-sugar" }, - { name = "pytest-timeout" }, - { name = "pytest-xdist" }, - { name = "pyupgrade" }, - { name = "radon" }, - { name = "ruff" }, - { name = "types-cachetools" }, - { name = "types-cffi" }, - { name = "types-click" }, - { name = "types-defusedxml" }, - { name = "types-docker" }, - { name = "types-flask" }, - { name = "types-jsonschema" }, - { name = "types-ldap3" }, - { name = "types-paramiko" }, - { name = "types-protobuf" }, - { name = "types-psutil" }, - { name = "types-psycopg2" }, - { name = "types-pyasn1" }, - { name = "types-pyopenssl" }, - { name = "types-python-dateutil" }, - { name = "types-pyyaml" }, - { name = "types-redis" }, - { name = "types-requests" }, - { name = "types-setuptools" }, - { name = "types-tabulate" }, - { name = "types-toml" }, - { name = "vulture" }, - { name = "yamlfix" }, +source = { editable = "flext-tap-ldap" } +dependencies = [ + { name = "flext-cli" }, + { name = "flext-core" }, + { name = "flext-ldap" }, + { name = "flext-meltano" }, + { name = "pydantic" }, + { name = "pydantic-core" }, ] [package.dev-dependencies] @@ -8123,6 +5500,7 @@ codegen = [ { name = "flext-infra" }, ] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -8154,10 +5532,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -8180,6 +5560,7 @@ dev = [ { name = "types-defusedxml" }, { name = "types-docker" }, { name = "types-flask" }, + { name = "types-jsonschema" }, { name = "types-ldap3" }, { name = "types-paramiko" }, { name = "types-protobuf" }, @@ -8195,98 +5576,23 @@ dev = [ { name = "types-tabulate" }, { name = "types-toml" }, { name = "vulture" }, + { name = "yamlfix" }, ] [package.metadata] requires-dist = [ - { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, - { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, - { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, - { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, - { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, - { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, - { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, - { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, - { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, - { name = "flext-api", editable = "flext-api" }, { name = "flext-cli", editable = "flext-cli" }, { name = "flext-core", editable = "flext-core" }, + { name = "flext-ldap", editable = "flext-ldap" }, { name = "flext-meltano", editable = "flext-meltano" }, - { name = "flext-oracle-oic", editable = "flext-oracle-oic" }, - { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, - { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, - { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, - { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, - { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, - { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, - { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, - { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, { name = "pydantic", specifier = ">=2.13.3" }, { name = "pydantic-core", specifier = ">=2.46.3" }, - { name = "pydantic-settings", specifier = ">=2.14.0" }, - { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, - { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, - { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, - { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, - { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, - { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, - { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, - { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, - { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, - { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, - { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, - { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "requests", specifier = ">=2.33.1" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, - { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, - { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, - { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, - { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, - { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, - { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, - { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, - { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, - { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, - { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, - { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, - { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, - { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, -] -provides-extras = ["dev"] +] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -8318,10 +5624,12 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -8344,6 +5652,7 @@ dev = [ { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, @@ -8359,98 +5668,20 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] -name = "flext-tap-oracle-wms" +name = "flext-tap-ldif" version = "0.12.0rc0" -source = { editable = "flext-tap-oracle-wms" } +source = { editable = "flext-tap-ldif" } dependencies = [ - { name = "flext-cli" }, { name = "flext-core" }, + { name = "flext-ldif" }, { name = "flext-meltano" }, - { name = "flext-oracle-wms" }, + { name = "flext-observability" }, { name = "pydantic" }, { name = "pydantic-core" }, - { name = "pydantic-settings" }, - { name = "requests" }, -] - -[package.optional-dependencies] -dev = [ - { name = "autoflake" }, - { name = "bandit" }, - { name = "black" }, - { name = "blacken-docs" }, - { name = "codespell" }, - { name = "deptry" }, - { name = "django-stubs" }, - { name = "factory-boy" }, - { name = "faker" }, - { name = "hypothesis" }, - { name = "isort" }, - { name = "matplotlib-stubs" }, - { name = "mkdocs" }, - { name = "mkdocs-awesome-pages-plugin" }, - { name = "mkdocs-encryptcontent-plugin" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-get-deps" }, - { name = "mkdocs-git-revision-date-localized-plugin" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-macros-plugin" }, - { name = "mkdocs-material" }, - { name = "mkdocs-material-extensions" }, - { name = "mkdocs-mermaid2-plugin" }, - { name = "mkdocs-minify-plugin" }, - { name = "mkdocs-print-site-plugin" }, - { name = "mkdocs-redirects" }, - { name = "mkdocs-section-index" }, - { name = "mkdocs-versioning" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "pip-audit" }, - { name = "pre-commit" }, - { name = "pylint" }, - { name = "pyrefly" }, - { name = "pytest" }, - { name = "pytest-benchmark" }, - { name = "pytest-clarity" }, - { name = "pytest-codeblocks" }, - { name = "pytest-cov" }, - { name = "pytest-deadfixtures" }, - { name = "pytest-env" }, - { name = "pytest-markdown-docs" }, - { name = "pytest-mock" }, - { name = "pytest-randomly" }, - { name = "pytest-sugar" }, - { name = "pytest-timeout" }, - { name = "pytest-xdist" }, - { name = "pyupgrade" }, - { name = "radon" }, - { name = "ruff" }, - { name = "types-cachetools" }, - { name = "types-cffi" }, - { name = "types-click" }, - { name = "types-defusedxml" }, - { name = "types-docker" }, - { name = "types-flask" }, - { name = "types-jsonschema" }, - { name = "types-ldap3" }, - { name = "types-paramiko" }, - { name = "types-protobuf" }, - { name = "types-psutil" }, - { name = "types-psycopg2" }, - { name = "types-pyasn1" }, - { name = "types-pyopenssl" }, - { name = "types-python-dateutil" }, - { name = "types-pyyaml" }, - { name = "types-redis" }, - { name = "types-requests" }, - { name = "types-setuptools" }, - { name = "types-tabulate" }, - { name = "types-toml" }, - { name = "vulture" }, - { name = "yamlfix" }, ] [package.dev-dependencies] @@ -8458,6 +5689,7 @@ codegen = [ { name = "flext-infra" }, ] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -8489,10 +5721,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -8515,6 +5749,7 @@ dev = [ { name = "types-defusedxml" }, { name = "types-docker" }, { name = "types-flask" }, + { name = "types-jsonschema" }, { name = "types-ldap3" }, { name = "types-paramiko" }, { name = "types-protobuf" }, @@ -8530,97 +5765,23 @@ dev = [ { name = "types-tabulate" }, { name = "types-toml" }, { name = "vulture" }, + { name = "yamlfix" }, ] [package.metadata] requires-dist = [ - { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, - { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, - { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, - { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, - { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, - { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, - { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, - { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, - { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, - { name = "flext-cli", editable = "flext-cli" }, { name = "flext-core", editable = "flext-core" }, + { name = "flext-ldif", editable = "flext-ldif" }, { name = "flext-meltano", editable = "flext-meltano" }, - { name = "flext-oracle-wms", editable = "flext-oracle-wms" }, - { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, - { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, - { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, - { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, - { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, - { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, - { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, - { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, + { name = "flext-observability", editable = "flext-observability" }, { name = "pydantic", specifier = ">=2.13.3" }, { name = "pydantic-core", specifier = ">=2.46.3" }, - { name = "pydantic-settings", specifier = ">=2.14.0" }, - { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, - { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, - { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, - { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, - { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, - { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, - { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, - { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, - { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, - { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, - { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, - { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "requests", specifier = ">=2.33.1" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, - { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, - { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, - { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, - { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, - { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, - { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, - { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, - { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, - { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, - { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, - { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, - { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, - { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, -] -provides-extras = ["dev"] +] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -8652,10 +5813,12 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -8678,6 +5841,7 @@ dev = [ { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, @@ -8693,21 +5857,33 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] -name = "flext-target-ldap" +name = "flext-tap-oracle" version = "0.12.0rc0" -source = { editable = "flext-target-ldap" } +source = { editable = "flext-tap-oracle" } dependencies = [ - { name = "flext-cli" }, + { name = "fastapi" }, { name = "flext-core" }, - { name = "flext-ldap" }, + { name = "flext-db-oracle" }, { name = "flext-meltano" }, + { name = "flext-observability" }, + { name = "prometheus-client" }, + { name = "pydantic" }, + { name = "pydantic-core" }, + { name = "setuptools" }, + { name = "singer-sdk" }, + { name = "uvicorn" }, ] -[package.optional-dependencies] +[package.dev-dependencies] +codegen = [ + { name = "flext-infra" }, +] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -8717,6 +5893,7 @@ dev = [ { name = "django-stubs" }, { name = "factory-boy" }, { name = "faker" }, + { name = "flext-tests" }, { name = "hypothesis" }, { name = "isort" }, { name = "matplotlib-stubs" }, @@ -8738,10 +5915,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -8783,11 +5962,125 @@ dev = [ { name = "yamlfix" }, ] +[package.metadata] +requires-dist = [ + { name = "fastapi", specifier = ">=0.136.1" }, + { name = "flext-core", editable = "flext-core" }, + { name = "flext-db-oracle", editable = "flext-db-oracle" }, + { name = "flext-meltano", editable = "flext-meltano" }, + { name = "flext-observability", editable = "flext-observability" }, + { name = "prometheus-client", specifier = ">=0.25.0" }, + { name = "pydantic", specifier = ">=2.13.3" }, + { name = "pydantic-core", specifier = ">=2.46.3" }, + { name = "setuptools", specifier = ">=82.0.1" }, + { name = "singer-sdk", specifier = ">=0.53.7" }, + { name = "uvicorn", specifier = ">=0.46.0" }, +] + +[package.metadata.requires-dev] +codegen = [{ name = "flext-infra", editable = "flext-infra" }] +dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, + { name = "autoflake", specifier = ">=2.3.1" }, + { name = "bandit", specifier = ">=1.8" }, + { name = "black", specifier = ">=25.1" }, + { name = "blacken-docs", specifier = ">=1.19" }, + { name = "codespell", specifier = ">=2.3" }, + { name = "deptry", specifier = ">=0.23" }, + { name = "django-stubs", specifier = ">=5.2.2" }, + { name = "factory-boy", specifier = ">=3.3.1" }, + { name = "faker", specifier = ">=37.4" }, + { name = "flext-tests", editable = "flext-tests" }, + { name = "hypothesis", specifier = ">=6.125" }, + { name = "isort", specifier = ">=6.0.1" }, + { name = "matplotlib-stubs", specifier = ">=0.3" }, + { name = "mkdocs", specifier = ">=1.6" }, + { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.9" }, + { name = "mkdocs-encryptcontent-plugin", specifier = ">=2" }, + { name = "mkdocs-exclude", specifier = ">=1.0.2" }, + { name = "mkdocs-get-deps", specifier = ">=0.2" }, + { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.2" }, + { name = "mkdocs-literate-nav", specifier = ">=0.6" }, + { name = "mkdocs-macros-plugin", specifier = ">=1" }, + { name = "mkdocs-material", specifier = ">=9.5" }, + { name = "mkdocs-material-extensions", specifier = ">=1.3.1" }, + { name = "mkdocs-mermaid2-plugin", specifier = ">=1.1" }, + { name = "mkdocs-minify-plugin", specifier = ">=0.7" }, + { name = "mkdocs-print-site-plugin", specifier = ">=0.8" }, + { name = "mkdocs-redirects", specifier = ">=1.2" }, + { name = "mkdocs-section-index", specifier = ">=0.3.12" }, + { name = "mkdocs-versioning", specifier = ">=0.2" }, + { name = "mkdocstrings", specifier = ">=0.24" }, + { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, + { name = "pip-audit", specifier = ">=2.7.3" }, + { name = "pre-commit", specifier = ">=4.6.0" }, + { name = "pylint", specifier = ">=3.3" }, + { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, + { name = "pytest", specifier = ">=8.4" }, + { name = "pytest-benchmark", specifier = ">=5.1" }, + { name = "pytest-clarity", specifier = ">=1.0.1" }, + { name = "pytest-codeblocks", specifier = ">=0.17.0" }, + { name = "pytest-cov", specifier = ">=6.2" }, + { name = "pytest-deadfixtures", specifier = ">=2.2.1" }, + { name = "pytest-env", specifier = ">=1.1.5" }, + { name = "pytest-markdown-docs", specifier = ">=0.9.2" }, + { name = "pytest-mock", specifier = ">=3.14" }, + { name = "pytest-randomly", specifier = ">=3.16" }, + { name = "pytest-sugar", specifier = ">=1" }, + { name = "pytest-timeout", specifier = ">=2.4" }, + { name = "pytest-xdist", specifier = ">=3.8" }, + { name = "pyupgrade", specifier = ">=3.19" }, + { name = "radon", specifier = ">=6.0.1" }, + { name = "ruff", specifier = ">=0.12.3" }, + { name = "types-cachetools", specifier = ">=6.2" }, + { name = "types-cffi", specifier = ">=2.0" }, + { name = "types-click", specifier = ">=7.1" }, + { name = "types-defusedxml", specifier = ">=0.7" }, + { name = "types-docker", specifier = ">=7.1" }, + { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-jsonschema", specifier = ">=4.26" }, + { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, + { name = "types-paramiko", specifier = ">=4.0" }, + { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, + { name = "types-psutil", specifier = ">=7" }, + { name = "types-psycopg2", specifier = ">=2.9.21.20250718" }, + { name = "types-pyasn1", specifier = ">=0.6" }, + { name = "types-pyopenssl", specifier = ">=24.1" }, + { name = "types-python-dateutil", specifier = ">=2.9" }, + { name = "types-pyyaml", specifier = ">=6.0.12.20260518" }, + { name = "types-redis", specifier = ">=4.6" }, + { name = "types-requests", specifier = ">=2.32.4" }, + { name = "types-setuptools", specifier = ">=80.9" }, + { name = "types-tabulate", specifier = ">=0.10" }, + { name = "types-toml", specifier = ">=0.10.8.20240310" }, + { name = "vulture", specifier = ">=2.13" }, + { name = "yamlfix", specifier = ">=1.19.1,<2" }, +] + +[[package]] +name = "flext-tap-oracle-oic" +version = "0.12.0rc0" +source = { editable = "flext-tap-oracle-oic" } +dependencies = [ + { name = "flext-api" }, + { name = "flext-cli" }, + { name = "flext-core" }, + { name = "flext-meltano" }, + { name = "flext-oracle-oic" }, + { name = "pydantic" }, + { name = "pydantic-core" }, + { name = "pydantic-settings" }, + { name = "requests" }, +] + [package.dev-dependencies] codegen = [ { name = "flext-infra" }, ] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -8797,7 +6090,6 @@ dev = [ { name = "django-stubs" }, { name = "factory-boy" }, { name = "faker" }, - { name = "flext-cli" }, { name = "flext-tests" }, { name = "hypothesis" }, { name = "isort" }, @@ -8820,10 +6112,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -8846,6 +6140,7 @@ dev = [ { name = "types-defusedxml" }, { name = "types-docker" }, { name = "types-flask" }, + { name = "types-jsonschema" }, { name = "types-ldap3" }, { name = "types-paramiko" }, { name = "types-protobuf" }, @@ -8861,93 +6156,26 @@ dev = [ { name = "types-tabulate" }, { name = "types-toml" }, { name = "vulture" }, + { name = "yamlfix" }, ] [package.metadata] requires-dist = [ - { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, - { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, - { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, - { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, - { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, - { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, - { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, - { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, - { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, + { name = "flext-api", editable = "flext-api" }, { name = "flext-cli", editable = "flext-cli" }, { name = "flext-core", editable = "flext-core" }, - { name = "flext-ldap", editable = "flext-ldap" }, { name = "flext-meltano", editable = "flext-meltano" }, - { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, - { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, - { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, - { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, - { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, - { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, - { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, - { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, - { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, - { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, - { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, - { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, - { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, - { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, - { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, - { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, - { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, - { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, - { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, - { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, - { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, - { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, - { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, - { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, - { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, - { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, - { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, - { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, - { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, - { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, - { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, - { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, - { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, -] -provides-extras = ["dev"] + { name = "flext-oracle-oic", editable = "flext-oracle-oic" }, + { name = "pydantic", specifier = ">=2.13.3" }, + { name = "pydantic-core", specifier = ">=2.46.3" }, + { name = "pydantic-settings", specifier = ">=2.14.0" }, + { name = "requests", specifier = ">=2.33.1" }, +] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -8957,7 +6185,6 @@ dev = [ { name = "django-stubs", specifier = ">=5.2.2" }, { name = "factory-boy", specifier = ">=3.3.1" }, { name = "faker", specifier = ">=37.4" }, - { name = "flext-cli", editable = "flext-cli" }, { name = "flext-tests", editable = "flext-tests" }, { name = "hypothesis", specifier = ">=6.125" }, { name = "isort", specifier = ">=6.0.1" }, @@ -8980,10 +6207,12 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -9006,6 +6235,7 @@ dev = [ { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, @@ -9021,97 +6251,22 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] -name = "flext-target-ldif" +name = "flext-tap-oracle-wms" version = "0.12.0rc0" -source = { editable = "flext-target-ldif" } +source = { editable = "flext-tap-oracle-wms" } dependencies = [ + { name = "flext-cli" }, { name = "flext-core" }, - { name = "flext-ldif" }, { name = "flext-meltano" }, - { name = "flext-observability" }, + { name = "flext-oracle-wms" }, { name = "pydantic" }, { name = "pydantic-core" }, { name = "pydantic-settings" }, -] - -[package.optional-dependencies] -dev = [ - { name = "autoflake" }, - { name = "bandit" }, - { name = "black" }, - { name = "blacken-docs" }, - { name = "codespell" }, - { name = "deptry" }, - { name = "django-stubs" }, - { name = "factory-boy" }, - { name = "faker" }, - { name = "hypothesis" }, - { name = "isort" }, - { name = "matplotlib-stubs" }, - { name = "mkdocs" }, - { name = "mkdocs-awesome-pages-plugin" }, - { name = "mkdocs-encryptcontent-plugin" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-get-deps" }, - { name = "mkdocs-git-revision-date-localized-plugin" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-macros-plugin" }, - { name = "mkdocs-material" }, - { name = "mkdocs-material-extensions" }, - { name = "mkdocs-mermaid2-plugin" }, - { name = "mkdocs-minify-plugin" }, - { name = "mkdocs-print-site-plugin" }, - { name = "mkdocs-redirects" }, - { name = "mkdocs-section-index" }, - { name = "mkdocs-versioning" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "pip-audit" }, - { name = "pre-commit" }, - { name = "pylint" }, - { name = "pyrefly" }, - { name = "pytest" }, - { name = "pytest-benchmark" }, - { name = "pytest-clarity" }, - { name = "pytest-codeblocks" }, - { name = "pytest-cov" }, - { name = "pytest-deadfixtures" }, - { name = "pytest-env" }, - { name = "pytest-markdown-docs" }, - { name = "pytest-mock" }, - { name = "pytest-randomly" }, - { name = "pytest-sugar" }, - { name = "pytest-timeout" }, - { name = "pytest-xdist" }, - { name = "pyupgrade" }, - { name = "radon" }, - { name = "ruff" }, - { name = "types-cachetools" }, - { name = "types-cffi" }, - { name = "types-click" }, - { name = "types-defusedxml" }, - { name = "types-docker" }, - { name = "types-flask" }, - { name = "types-jsonschema" }, - { name = "types-ldap3" }, - { name = "types-paramiko" }, - { name = "types-protobuf" }, - { name = "types-psutil" }, - { name = "types-psycopg2" }, - { name = "types-pyasn1" }, - { name = "types-pyopenssl" }, - { name = "types-python-dateutil" }, - { name = "types-pyyaml" }, - { name = "types-redis" }, - { name = "types-requests" }, - { name = "types-setuptools" }, - { name = "types-tabulate" }, - { name = "types-toml" }, - { name = "vulture" }, - { name = "yamlfix" }, + { name = "requests" }, ] [package.dev-dependencies] @@ -9119,6 +6274,7 @@ codegen = [ { name = "flext-infra" }, ] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -9150,10 +6306,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -9176,6 +6334,7 @@ dev = [ { name = "types-defusedxml" }, { name = "types-docker" }, { name = "types-flask" }, + { name = "types-jsonschema" }, { name = "types-ldap3" }, { name = "types-paramiko" }, { name = "types-protobuf" }, @@ -9191,96 +6350,25 @@ dev = [ { name = "types-tabulate" }, { name = "types-toml" }, { name = "vulture" }, + { name = "yamlfix" }, ] [package.metadata] requires-dist = [ - { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, - { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, - { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, - { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, - { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, - { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, - { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, - { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, - { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, + { name = "flext-cli", editable = "flext-cli" }, { name = "flext-core", editable = "flext-core" }, - { name = "flext-ldif", editable = "flext-ldif" }, { name = "flext-meltano", editable = "flext-meltano" }, - { name = "flext-observability", editable = "flext-observability" }, - { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, - { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, - { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, - { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, - { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, - { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, - { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, - { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, + { name = "flext-oracle-wms", editable = "flext-oracle-wms" }, { name = "pydantic", specifier = ">=2.13.3" }, { name = "pydantic-core", specifier = ">=2.46.3" }, { name = "pydantic-settings", specifier = ">=2.14.0" }, - { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, - { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, - { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, - { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, - { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, - { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, - { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, - { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, - { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, - { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, - { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, - { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, - { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, - { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, - { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, - { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, - { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, - { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, - { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, - { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, - { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, - { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, - { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, - { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, - { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, -] -provides-extras = ["dev"] + { name = "requests", specifier = ">=2.33.1" }, +] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -9312,10 +6400,12 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -9338,6 +6428,7 @@ dev = [ { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, @@ -9353,27 +6444,26 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] -name = "flext-target-oracle" +name = "flext-target-ldap" version = "0.12.0rc0" -source = { editable = "flext-target-oracle" } +source = { editable = "flext-target-ldap" } dependencies = [ - { name = "click" }, { name = "flext-cli" }, { name = "flext-core" }, - { name = "flext-db-oracle" }, + { name = "flext-ldap" }, { name = "flext-meltano" }, - { name = "pydantic" }, - { name = "pydantic-core" }, - { name = "pydantic-settings" }, - { name = "pyyaml" }, - { name = "rich" }, ] -[package.optional-dependencies] +[package.dev-dependencies] +codegen = [ + { name = "flext-infra" }, +] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -9383,6 +6473,8 @@ dev = [ { name = "django-stubs" }, { name = "factory-boy" }, { name = "faker" }, + { name = "flext-cli" }, + { name = "flext-tests" }, { name = "hypothesis" }, { name = "isort" }, { name = "matplotlib-stubs" }, @@ -9404,10 +6496,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -9449,11 +6543,117 @@ dev = [ { name = "yamlfix" }, ] +[package.metadata] +requires-dist = [ + { name = "flext-cli", editable = "flext-cli" }, + { name = "flext-core", editable = "flext-core" }, + { name = "flext-ldap", editable = "flext-ldap" }, + { name = "flext-meltano", editable = "flext-meltano" }, +] + +[package.metadata.requires-dev] +codegen = [{ name = "flext-infra", editable = "flext-infra" }] +dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, + { name = "autoflake", specifier = ">=2.3.1" }, + { name = "bandit", specifier = ">=1.8" }, + { name = "black", specifier = ">=25.1" }, + { name = "blacken-docs", specifier = ">=1.19" }, + { name = "codespell", specifier = ">=2.3" }, + { name = "deptry", specifier = ">=0.23" }, + { name = "django-stubs", specifier = ">=5.2.2" }, + { name = "factory-boy", specifier = ">=3.3.1" }, + { name = "faker", specifier = ">=37.4" }, + { name = "flext-cli", editable = "flext-cli" }, + { name = "flext-tests", editable = "flext-tests" }, + { name = "hypothesis", specifier = ">=6.125" }, + { name = "isort", specifier = ">=6.0.1" }, + { name = "matplotlib-stubs", specifier = ">=0.3" }, + { name = "mkdocs", specifier = ">=1.6" }, + { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.9" }, + { name = "mkdocs-encryptcontent-plugin", specifier = ">=2" }, + { name = "mkdocs-exclude", specifier = ">=1.0.2" }, + { name = "mkdocs-get-deps", specifier = ">=0.2" }, + { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.2" }, + { name = "mkdocs-literate-nav", specifier = ">=0.6" }, + { name = "mkdocs-macros-plugin", specifier = ">=1" }, + { name = "mkdocs-material", specifier = ">=9.5" }, + { name = "mkdocs-material-extensions", specifier = ">=1.3.1" }, + { name = "mkdocs-mermaid2-plugin", specifier = ">=1.1" }, + { name = "mkdocs-minify-plugin", specifier = ">=0.7" }, + { name = "mkdocs-print-site-plugin", specifier = ">=0.8" }, + { name = "mkdocs-redirects", specifier = ">=1.2" }, + { name = "mkdocs-section-index", specifier = ">=0.3.12" }, + { name = "mkdocs-versioning", specifier = ">=0.2" }, + { name = "mkdocstrings", specifier = ">=0.24" }, + { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, + { name = "pip-audit", specifier = ">=2.7.3" }, + { name = "pre-commit", specifier = ">=4.6.0" }, + { name = "pylint", specifier = ">=3.3" }, + { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, + { name = "pytest", specifier = ">=8.4" }, + { name = "pytest-benchmark", specifier = ">=5.1" }, + { name = "pytest-clarity", specifier = ">=1.0.1" }, + { name = "pytest-codeblocks", specifier = ">=0.17.0" }, + { name = "pytest-cov", specifier = ">=6.2" }, + { name = "pytest-deadfixtures", specifier = ">=2.2.1" }, + { name = "pytest-env", specifier = ">=1.1.5" }, + { name = "pytest-markdown-docs", specifier = ">=0.9.2" }, + { name = "pytest-mock", specifier = ">=3.14" }, + { name = "pytest-randomly", specifier = ">=3.16" }, + { name = "pytest-sugar", specifier = ">=1" }, + { name = "pytest-timeout", specifier = ">=2.4" }, + { name = "pytest-xdist", specifier = ">=3.8" }, + { name = "pyupgrade", specifier = ">=3.19" }, + { name = "radon", specifier = ">=6.0.1" }, + { name = "ruff", specifier = ">=0.12.3" }, + { name = "types-cachetools", specifier = ">=6.2" }, + { name = "types-cffi", specifier = ">=2.0" }, + { name = "types-click", specifier = ">=7.1" }, + { name = "types-defusedxml", specifier = ">=0.7" }, + { name = "types-docker", specifier = ">=7.1" }, + { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-jsonschema", specifier = ">=4.26" }, + { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, + { name = "types-paramiko", specifier = ">=4.0" }, + { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, + { name = "types-psutil", specifier = ">=7" }, + { name = "types-psycopg2", specifier = ">=2.9.21.20250718" }, + { name = "types-pyasn1", specifier = ">=0.6" }, + { name = "types-pyopenssl", specifier = ">=24.1" }, + { name = "types-python-dateutil", specifier = ">=2.9" }, + { name = "types-pyyaml", specifier = ">=6.0.12.20260518" }, + { name = "types-redis", specifier = ">=4.6" }, + { name = "types-requests", specifier = ">=2.32.4" }, + { name = "types-setuptools", specifier = ">=80.9" }, + { name = "types-tabulate", specifier = ">=0.10" }, + { name = "types-toml", specifier = ">=0.10.8.20240310" }, + { name = "vulture", specifier = ">=2.13" }, + { name = "yamlfix", specifier = ">=1.19.1,<2" }, +] + +[[package]] +name = "flext-target-ldif" +version = "0.12.0rc0" +source = { editable = "flext-target-ldif" } +dependencies = [ + { name = "flext-core" }, + { name = "flext-ldif" }, + { name = "flext-meltano" }, + { name = "flext-observability" }, + { name = "pydantic" }, + { name = "pydantic-core" }, + { name = "pydantic-settings" }, +] + [package.dev-dependencies] codegen = [ { name = "flext-infra" }, ] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -9485,10 +6685,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -9511,6 +6713,7 @@ dev = [ { name = "types-defusedxml" }, { name = "types-docker" }, { name = "types-flask" }, + { name = "types-jsonschema" }, { name = "types-ldap3" }, { name = "types-paramiko" }, { name = "types-protobuf" }, @@ -9526,99 +6729,24 @@ dev = [ { name = "types-tabulate" }, { name = "types-toml" }, { name = "vulture" }, + { name = "yamlfix" }, ] [package.metadata] requires-dist = [ - { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, - { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, - { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, - { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, - { name = "click", specifier = ">=8.3.3" }, - { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, - { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, - { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, - { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, - { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, - { name = "flext-cli", editable = "flext-cli" }, { name = "flext-core", editable = "flext-core" }, - { name = "flext-db-oracle", editable = "flext-db-oracle" }, + { name = "flext-ldif", editable = "flext-ldif" }, { name = "flext-meltano", editable = "flext-meltano" }, - { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, - { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, - { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, - { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, - { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, - { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, - { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, - { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, + { name = "flext-observability", editable = "flext-observability" }, { name = "pydantic", specifier = ">=2.13.3" }, { name = "pydantic-core", specifier = ">=2.46.3" }, { name = "pydantic-settings", specifier = ">=2.14.0" }, - { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, - { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, - { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, - { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, - { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, - { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, - { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, - { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, - { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, - { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, - { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, - { name = "pyyaml", specifier = ">=6.0.3" }, - { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "rich", specifier = ">=14,<14.4" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, - { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, - { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, - { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, - { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, - { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, - { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, - { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, - { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, - { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, - { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, - { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, - { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, - { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, -] -provides-extras = ["dev"] +] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -9650,10 +6778,12 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -9676,6 +6806,7 @@ dev = [ { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, @@ -9691,30 +6822,32 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] -name = "flext-target-oracle-oic" +name = "flext-target-oracle" version = "0.12.0rc0" -source = { editable = "flext-target-oracle-oic" } +source = { editable = "flext-target-oracle" } dependencies = [ - { name = "flext-api" }, + { name = "click" }, { name = "flext-cli" }, { name = "flext-core" }, { name = "flext-db-oracle" }, { name = "flext-meltano" }, - { name = "flext-observability" }, - { name = "flext-oracle-oic" }, { name = "pydantic" }, { name = "pydantic-core" }, { name = "pydantic-settings" }, - { name = "requests" }, - { name = "singer-sdk" }, - { name = "urllib3" }, + { name = "pyyaml" }, + { name = "rich" }, ] -[package.optional-dependencies] +[package.dev-dependencies] +codegen = [ + { name = "flext-infra" }, +] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -9724,6 +6857,7 @@ dev = [ { name = "django-stubs" }, { name = "factory-boy" }, { name = "faker" }, + { name = "flext-tests" }, { name = "hypothesis" }, { name = "isort" }, { name = "matplotlib-stubs" }, @@ -9745,10 +6879,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -9790,11 +6926,128 @@ dev = [ { name = "yamlfix" }, ] +[package.metadata] +requires-dist = [ + { name = "click", specifier = ">=8.3.3" }, + { name = "flext-cli", editable = "flext-cli" }, + { name = "flext-core", editable = "flext-core" }, + { name = "flext-db-oracle", editable = "flext-db-oracle" }, + { name = "flext-meltano", editable = "flext-meltano" }, + { name = "pydantic", specifier = ">=2.13.3" }, + { name = "pydantic-core", specifier = ">=2.46.3" }, + { name = "pydantic-settings", specifier = ">=2.14.0" }, + { name = "pyyaml", specifier = ">=6.0.3" }, + { name = "rich", specifier = ">=14,<14.4" }, +] + +[package.metadata.requires-dev] +codegen = [{ name = "flext-infra", editable = "flext-infra" }] +dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, + { name = "autoflake", specifier = ">=2.3.1" }, + { name = "bandit", specifier = ">=1.8" }, + { name = "black", specifier = ">=25.1" }, + { name = "blacken-docs", specifier = ">=1.19" }, + { name = "codespell", specifier = ">=2.3" }, + { name = "deptry", specifier = ">=0.23" }, + { name = "django-stubs", specifier = ">=5.2.2" }, + { name = "factory-boy", specifier = ">=3.3.1" }, + { name = "faker", specifier = ">=37.4" }, + { name = "flext-tests", editable = "flext-tests" }, + { name = "hypothesis", specifier = ">=6.125" }, + { name = "isort", specifier = ">=6.0.1" }, + { name = "matplotlib-stubs", specifier = ">=0.3" }, + { name = "mkdocs", specifier = ">=1.6" }, + { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.9" }, + { name = "mkdocs-encryptcontent-plugin", specifier = ">=2" }, + { name = "mkdocs-exclude", specifier = ">=1.0.2" }, + { name = "mkdocs-get-deps", specifier = ">=0.2" }, + { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.2" }, + { name = "mkdocs-literate-nav", specifier = ">=0.6" }, + { name = "mkdocs-macros-plugin", specifier = ">=1" }, + { name = "mkdocs-material", specifier = ">=9.5" }, + { name = "mkdocs-material-extensions", specifier = ">=1.3.1" }, + { name = "mkdocs-mermaid2-plugin", specifier = ">=1.1" }, + { name = "mkdocs-minify-plugin", specifier = ">=0.7" }, + { name = "mkdocs-print-site-plugin", specifier = ">=0.8" }, + { name = "mkdocs-redirects", specifier = ">=1.2" }, + { name = "mkdocs-section-index", specifier = ">=0.3.12" }, + { name = "mkdocs-versioning", specifier = ">=0.2" }, + { name = "mkdocstrings", specifier = ">=0.24" }, + { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, + { name = "pip-audit", specifier = ">=2.7.3" }, + { name = "pre-commit", specifier = ">=4.6.0" }, + { name = "pylint", specifier = ">=3.3" }, + { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, + { name = "pytest", specifier = ">=8.4" }, + { name = "pytest-benchmark", specifier = ">=5.1" }, + { name = "pytest-clarity", specifier = ">=1.0.1" }, + { name = "pytest-codeblocks", specifier = ">=0.17.0" }, + { name = "pytest-cov", specifier = ">=6.2" }, + { name = "pytest-deadfixtures", specifier = ">=2.2.1" }, + { name = "pytest-env", specifier = ">=1.1.5" }, + { name = "pytest-markdown-docs", specifier = ">=0.9.2" }, + { name = "pytest-mock", specifier = ">=3.14" }, + { name = "pytest-randomly", specifier = ">=3.16" }, + { name = "pytest-sugar", specifier = ">=1" }, + { name = "pytest-timeout", specifier = ">=2.4" }, + { name = "pytest-xdist", specifier = ">=3.8" }, + { name = "pyupgrade", specifier = ">=3.19" }, + { name = "radon", specifier = ">=6.0.1" }, + { name = "ruff", specifier = ">=0.12.3" }, + { name = "types-cachetools", specifier = ">=6.2" }, + { name = "types-cffi", specifier = ">=2.0" }, + { name = "types-click", specifier = ">=7.1" }, + { name = "types-defusedxml", specifier = ">=0.7" }, + { name = "types-docker", specifier = ">=7.1" }, + { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-jsonschema", specifier = ">=4.26" }, + { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, + { name = "types-paramiko", specifier = ">=4.0" }, + { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, + { name = "types-psutil", specifier = ">=7" }, + { name = "types-psycopg2", specifier = ">=2.9.21.20250718" }, + { name = "types-pyasn1", specifier = ">=0.6" }, + { name = "types-pyopenssl", specifier = ">=24.1" }, + { name = "types-python-dateutil", specifier = ">=2.9" }, + { name = "types-pyyaml", specifier = ">=6.0.12.20260518" }, + { name = "types-redis", specifier = ">=4.6" }, + { name = "types-requests", specifier = ">=2.32.4" }, + { name = "types-setuptools", specifier = ">=80.9" }, + { name = "types-tabulate", specifier = ">=0.10" }, + { name = "types-toml", specifier = ">=0.10.8.20240310" }, + { name = "vulture", specifier = ">=2.13" }, + { name = "yamlfix", specifier = ">=1.19.1,<2" }, +] + +[[package]] +name = "flext-target-oracle-oic" +version = "0.12.0rc0" +source = { editable = "flext-target-oracle-oic" } +dependencies = [ + { name = "flext-api" }, + { name = "flext-cli" }, + { name = "flext-core" }, + { name = "flext-db-oracle" }, + { name = "flext-meltano" }, + { name = "flext-observability" }, + { name = "flext-oracle-oic" }, + { name = "pydantic" }, + { name = "pydantic-core" }, + { name = "pydantic-settings" }, + { name = "requests" }, + { name = "singer-sdk" }, + { name = "urllib3" }, +] + [package.dev-dependencies] codegen = [ { name = "flext-infra" }, ] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -9826,10 +7079,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -9852,6 +7107,7 @@ dev = [ { name = "types-defusedxml" }, { name = "types-docker" }, { name = "types-flask" }, + { name = "types-jsonschema" }, { name = "types-ldap3" }, { name = "types-paramiko" }, { name = "types-protobuf" }, @@ -9867,19 +7123,11 @@ dev = [ { name = "types-tabulate" }, { name = "types-toml" }, { name = "vulture" }, + { name = "yamlfix" }, ] [package.metadata] requires-dist = [ - { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, - { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, - { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, - { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, - { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, - { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, - { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, - { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, - { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, { name = "flext-api", editable = "flext-api" }, { name = "flext-cli", editable = "flext-cli" }, { name = "flext-core", editable = "flext-core" }, @@ -9887,82 +7135,18 @@ requires-dist = [ { name = "flext-meltano", editable = "flext-meltano" }, { name = "flext-observability", editable = "flext-observability" }, { name = "flext-oracle-oic", editable = "flext-oracle-oic" }, - { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, - { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, - { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, - { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, - { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, - { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, - { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, - { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, { name = "pydantic", specifier = ">=2.13.3" }, { name = "pydantic-core", specifier = ">=2.46.3" }, { name = "pydantic-settings", specifier = ">=2.14.0" }, - { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, - { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, - { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, - { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, - { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, - { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, - { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, - { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, - { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, - { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, - { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, - { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, { name = "requests", specifier = ">=2.33.1" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, { name = "singer-sdk", specifier = ">=0.53.7" }, - { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, - { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, - { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, - { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, - { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, - { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, - { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, - { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, - { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, - { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, - { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, { name = "urllib3", specifier = ">=2.6.3" }, - { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, - { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, ] -provides-extras = ["dev"] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -9994,10 +7178,12 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -10020,6 +7206,7 @@ dev = [ { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, @@ -10035,6 +7222,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -10054,88 +7242,12 @@ dependencies = [ { name = "sqlalchemy" }, ] -[package.optional-dependencies] -dev = [ - { name = "autoflake" }, - { name = "bandit" }, - { name = "black" }, - { name = "blacken-docs" }, - { name = "codespell" }, - { name = "deptry" }, - { name = "django-stubs" }, - { name = "factory-boy" }, - { name = "faker" }, - { name = "hypothesis" }, - { name = "isort" }, - { name = "matplotlib-stubs" }, - { name = "mkdocs" }, - { name = "mkdocs-awesome-pages-plugin" }, - { name = "mkdocs-encryptcontent-plugin" }, - { name = "mkdocs-exclude" }, - { name = "mkdocs-get-deps" }, - { name = "mkdocs-git-revision-date-localized-plugin" }, - { name = "mkdocs-literate-nav" }, - { name = "mkdocs-macros-plugin" }, - { name = "mkdocs-material" }, - { name = "mkdocs-material-extensions" }, - { name = "mkdocs-mermaid2-plugin" }, - { name = "mkdocs-minify-plugin" }, - { name = "mkdocs-print-site-plugin" }, - { name = "mkdocs-redirects" }, - { name = "mkdocs-section-index" }, - { name = "mkdocs-versioning" }, - { name = "mkdocstrings" }, - { name = "mkdocstrings-python" }, - { name = "pip-audit" }, - { name = "pre-commit" }, - { name = "pylint" }, - { name = "pyrefly" }, - { name = "pytest" }, - { name = "pytest-benchmark" }, - { name = "pytest-clarity" }, - { name = "pytest-codeblocks" }, - { name = "pytest-cov" }, - { name = "pytest-deadfixtures" }, - { name = "pytest-env" }, - { name = "pytest-markdown-docs" }, - { name = "pytest-mock" }, - { name = "pytest-randomly" }, - { name = "pytest-sugar" }, - { name = "pytest-timeout" }, - { name = "pytest-xdist" }, - { name = "pyupgrade" }, - { name = "radon" }, - { name = "ruff" }, - { name = "types-cachetools" }, - { name = "types-cffi" }, - { name = "types-click" }, - { name = "types-defusedxml" }, - { name = "types-docker" }, - { name = "types-flask" }, - { name = "types-jsonschema" }, - { name = "types-ldap3" }, - { name = "types-paramiko" }, - { name = "types-protobuf" }, - { name = "types-psutil" }, - { name = "types-psycopg2" }, - { name = "types-pyasn1" }, - { name = "types-pyopenssl" }, - { name = "types-python-dateutil" }, - { name = "types-pyyaml" }, - { name = "types-redis" }, - { name = "types-requests" }, - { name = "types-setuptools" }, - { name = "types-tabulate" }, - { name = "types-toml" }, - { name = "vulture" }, - { name = "yamlfix" }, -] - [package.dev-dependencies] codegen = [ { name = "flext-infra" }, ] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -10167,10 +7279,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -10193,6 +7307,7 @@ dev = [ { name = "types-defusedxml" }, { name = "types-docker" }, { name = "types-flask" }, + { name = "types-jsonschema" }, { name = "types-ldap3" }, { name = "types-paramiko" }, { name = "types-protobuf" }, @@ -10208,99 +7323,27 @@ dev = [ { name = "types-tabulate" }, { name = "types-toml" }, { name = "vulture" }, + { name = "yamlfix" }, ] [package.metadata] requires-dist = [ - { name = "autoflake", marker = "extra == 'dev'", specifier = ">=2.3.1" }, - { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.8" }, - { name = "black", marker = "extra == 'dev'", specifier = ">=25.1" }, - { name = "blacken-docs", marker = "extra == 'dev'", specifier = ">=1.19" }, - { name = "codespell", marker = "extra == 'dev'", specifier = ">=2.3" }, - { name = "deptry", marker = "extra == 'dev'", specifier = ">=0.23" }, - { name = "django-stubs", marker = "extra == 'dev'", specifier = ">=5.2.2" }, - { name = "factory-boy", marker = "extra == 'dev'", specifier = ">=3.3.1" }, - { name = "faker", marker = "extra == 'dev'", specifier = ">=37.4" }, { name = "flext-cli", editable = "flext-cli" }, { name = "flext-core", editable = "flext-core" }, { name = "flext-db-oracle", editable = "flext-db-oracle" }, { name = "flext-meltano", editable = "flext-meltano" }, { name = "flext-observability", editable = "flext-observability" }, { name = "flext-oracle-wms", editable = "flext-oracle-wms" }, - { name = "hypothesis", marker = "extra == 'dev'", specifier = ">=6.125" }, - { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", marker = "extra == 'dev'", specifier = ">=0.3" }, - { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", marker = "extra == 'dev'", specifier = ">=2" }, - { name = "mkdocs-exclude", marker = "extra == 'dev'", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5" }, - { name = "mkdocs-material-extensions", marker = "extra == 'dev'", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", marker = "extra == 'dev'", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", marker = "extra == 'dev'", specifier = ">=0.8" }, - { name = "mkdocs-redirects", marker = "extra == 'dev'", specifier = ">=1.2" }, - { name = "mkdocs-section-index", marker = "extra == 'dev'", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", marker = "extra == 'dev'", specifier = ">=0.2" }, - { name = "mkdocstrings", marker = "extra == 'dev'", specifier = ">=0.24" }, - { name = "mkdocstrings-python", marker = "extra == 'dev'", specifier = ">=1.7" }, - { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.7.3" }, - { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" }, { name = "pydantic", specifier = ">=2.13.3" }, { name = "pydantic-core", specifier = ">=2.46.3" }, { name = "pydantic-settings", specifier = ">=2.14.0" }, - { name = "pylint", marker = "extra == 'dev'", specifier = ">=3.3" }, - { name = "pyrefly", marker = "extra == 'dev'", specifier = ">=1.1.1,<1.2.0" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4" }, - { name = "pytest-benchmark", marker = "extra == 'dev'", specifier = ">=5.1" }, - { name = "pytest-clarity", marker = "extra == 'dev'", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", marker = "extra == 'dev'", specifier = ">=0.17.0" }, - { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", marker = "extra == 'dev'", specifier = ">=2.2.1" }, - { name = "pytest-env", marker = "extra == 'dev'", specifier = ">=1.1.5" }, - { name = "pytest-markdown-docs", marker = "extra == 'dev'", specifier = ">=0.9.2" }, - { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14" }, - { name = "pytest-randomly", marker = "extra == 'dev'", specifier = ">=3.16" }, - { name = "pytest-sugar", marker = "extra == 'dev'", specifier = ">=1" }, - { name = "pytest-timeout", marker = "extra == 'dev'", specifier = ">=2.4" }, - { name = "pytest-xdist", marker = "extra == 'dev'", specifier = ">=3.8" }, - { name = "pyupgrade", marker = "extra == 'dev'", specifier = ">=3.19" }, - { name = "radon", marker = "extra == 'dev'", specifier = ">=6.0.1" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.12.3" }, { name = "sqlalchemy", specifier = ">=2.0.49" }, - { name = "types-cachetools", marker = "extra == 'dev'", specifier = ">=6.2" }, - { name = "types-cffi", marker = "extra == 'dev'", specifier = ">=2.0" }, - { name = "types-click", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7" }, - { name = "types-docker", marker = "extra == 'dev'", specifier = ">=7.1" }, - { name = "types-flask", marker = "extra == 'dev'", specifier = ">=1.1.6" }, - { name = "types-jsonschema", marker = "extra == 'dev'", specifier = ">=4.26" }, - { name = "types-ldap3", marker = "extra == 'dev'", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", marker = "extra == 'dev'", specifier = ">=4.0" }, - { name = "types-protobuf", marker = "extra == 'dev'", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", marker = "extra == 'dev'", specifier = ">=7" }, - { name = "types-psycopg2", marker = "extra == 'dev'", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", marker = "extra == 'dev'", specifier = ">=0.6" }, - { name = "types-pyopenssl", marker = "extra == 'dev'", specifier = ">=24.1" }, - { name = "types-python-dateutil", marker = "extra == 'dev'", specifier = ">=2.9" }, - { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", marker = "extra == 'dev'", specifier = ">=4.6" }, - { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.32.4" }, - { name = "types-setuptools", marker = "extra == 'dev'", specifier = ">=80.9" }, - { name = "types-tabulate", marker = "extra == 'dev'", specifier = ">=0.10" }, - { name = "types-toml", marker = "extra == 'dev'", specifier = ">=0.10.8.20240310" }, - { name = "vulture", marker = "extra == 'dev'", specifier = ">=2.13" }, - { name = "yamlfix", marker = "extra == 'dev'", specifier = ">=1.19.1,<2" }, -] -provides-extras = ["dev"] +] [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -10332,10 +7375,12 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -10358,6 +7403,7 @@ dev = [ { name = "types-defusedxml", specifier = ">=0.7" }, { name = "types-docker", specifier = ">=7.1" }, { name = "types-flask", specifier = ">=1.1.6" }, + { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, @@ -10373,6 +7419,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -15052,28 +12099,28 @@ wheels = [ [[package]] name = "uv" -version = "0.12.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a7/e7/5a94b658b08c46142cf7bf1d0c432cc7d04375b80f42765633414e7541bd/uv-0.12.0.tar.gz", hash = "sha256:80ba22cae467c6f47d2157ec2b840c032cac709b85ab1300ac4dcfeb29986462", size = 5827380, upload-time = "2026-07-28T18:57:12.191Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/20/e9/5663af6b4d90827c008005cfe7926a747688bd408226913d249b9de8492b/uv-0.12.0-py3-none-linux_armv6l.whl", hash = "sha256:11cc7ef5386fe54536cc8921676728a0e5c348cf522c8ee1fa0b81cbafc20cbc", size = 21499556, upload-time = "2026-07-28T18:56:27.552Z" }, - { url = "https://files.pythonhosted.org/packages/4b/8e/b88ae4a3b704f60f8e9dcdef78047c3749077b2f1e884bd387c8e41fe378/uv-0.12.0-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:074e693e9b2df99f621166b44760abe0d53cd9b0ae96fcbfec5809497925da87", size = 19751720, upload-time = "2026-07-28T18:56:30.623Z" }, - { url = "https://files.pythonhosted.org/packages/a5/7b/15d6865264120bd30c738b4bf63ddff66d087087cadeb2a6b88c6284a446/uv-0.12.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:009758d8fde2da2b90900f5fe863c71d0e1b8b28bbdba59863ceb967973a3735", size = 18117978, upload-time = "2026-07-28T18:56:32.904Z" }, - { url = "https://files.pythonhosted.org/packages/0e/bc/2066cc63e6930e3d5e27c73a9c439418164eafb4f1c24845f17caf63eaea/uv-0.12.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl", hash = "sha256:effc2de9f044e880306f3c52b048bf24ee4fe63429c82dd6509c9a0f3d1b8f0b", size = 20833318, upload-time = "2026-07-28T18:56:35.567Z" }, - { url = "https://files.pythonhosted.org/packages/2d/d6/49fef7e4e3c401540113115846e47094aff7cda86f54ba79477636758e38/uv-0.12.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.musllinux_1_1_armv7l.whl", hash = "sha256:e9e660171873f905a6782bf2a5e7515aba1a8e8a5cfce0add68fbe7a22ead8b0", size = 21056599, upload-time = "2026-07-28T18:56:38.117Z" }, - { url = "https://files.pythonhosted.org/packages/2e/b9/cc32f406b5429cbb0f0849938d12a24a33c3bd28b710c8ccd0955c588131/uv-0.12.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:53c5c07fafcf620d23faa8f339742806d57cb82122c97544d0f3750f55e2fe36", size = 21100563, upload-time = "2026-07-28T18:56:40.305Z" }, - { url = "https://files.pythonhosted.org/packages/42/ff/36eef4c1624ed371d8367cf96207f35ba81b42b8308688d1acad835432cc/uv-0.12.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b80a1a89aad16c6d84dd96b0c795b44f3824f0765e815af2f93fd05cb4a894cd", size = 21763617, upload-time = "2026-07-28T18:56:42.59Z" }, - { url = "https://files.pythonhosted.org/packages/05/23/b82dbd945c5b8a88ed5dc8c2c001619677ad5aea246318716c773711aef9/uv-0.12.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a1e84987c4b4d832796b779ad614e91c1b44ac1ade5163c00654b70881ef53cb", size = 22917937, upload-time = "2026-07-28T18:56:45.546Z" }, - { url = "https://files.pythonhosted.org/packages/7b/d9/44f5f753fda99820b972251c3be9ca9e56d98f4ced752cea623f19479fa8/uv-0.12.0-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dbb9d9c40e91b6bf5e124230277fe5579ecf685e6de47e61a0eed8af5ffa0cdb", size = 22555435, upload-time = "2026-07-28T18:56:47.882Z" }, - { url = "https://files.pythonhosted.org/packages/4b/ba/bc14d74741b0292edd8e61e87a4bd96f79447a1b9d27e85cda2e8539039b/uv-0.12.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cbff74f884846d794713670faf8abe10db3bd70c43b01e63223f74eb7d958689", size = 21986958, upload-time = "2026-07-28T18:56:50.271Z" }, - { url = "https://files.pythonhosted.org/packages/1d/52/e14f0a91be4b426f18107f63b1b87e99ec671e8907689cf45144a79c4f76/uv-0.12.0-py3-none-manylinux_2_28_aarch64.whl", hash = "sha256:c818bb6aead39652e2ad644583fa418ac8d92baf50b4c6f685738bb2598e33bd", size = 20965849, upload-time = "2026-07-28T18:56:52.628Z" }, - { url = "https://files.pythonhosted.org/packages/0d/a6/ef7b436f9983c467b88bacb5ce58620398c7fe7fa86ee67906bfce343201/uv-0.12.0-py3-none-manylinux_2_31_riscv64.musllinux_1_1_riscv64.whl", hash = "sha256:5fe6cdc82cacc630827f2ec779b91b0d13ff57ff476e41bdcace05cd61261951", size = 21671684, upload-time = "2026-07-28T18:56:54.923Z" }, - { url = "https://files.pythonhosted.org/packages/9d/c8/19086d68078b514be4c266081e11d5530b07d099cb05d011e1fa6a216e10/uv-0.12.0-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:fcf4b6d0807f8f05a7dd8c090f080674e8526db27a0764af2a5a54ab5096c3eb", size = 21798247, upload-time = "2026-07-28T18:56:57.226Z" }, - { url = "https://files.pythonhosted.org/packages/4d/87/571847075bbe2205ec7ae108c17d01742a1251aea9fe5f9cd5da1496922e/uv-0.12.0-py3-none-musllinux_1_1_i686.whl", hash = "sha256:4be9870fca2952143f33a02347c8da603bbe645283e3e989f038ef7b306b3ecb", size = 20977006, upload-time = "2026-07-28T18:56:59.544Z" }, - { url = "https://files.pythonhosted.org/packages/be/df/d391bc0f5901ff8a0d6285eb433222cacb972b5e5817a420e084ee698894/uv-0.12.0-py3-none-musllinux_1_1_x86_64.whl", hash = "sha256:ed4053e07048ab3561de95c3b686b7983f997cd19d53a265a238103b5dbf258a", size = 22186132, upload-time = "2026-07-28T18:57:02.014Z" }, - { url = "https://files.pythonhosted.org/packages/9c/fe/d440d50811ef913cb035e4c5f346799d9353fd5a8aa8479e57d7efc34692/uv-0.12.0-py3-none-win32.whl", hash = "sha256:bef14df9bec1ee7577fdc5b37d02ad8128574a2eebc130c525255edac051b9a4", size = 19210613, upload-time = "2026-07-28T18:57:04.493Z" }, - { url = "https://files.pythonhosted.org/packages/cb/27/c3da5b9136925ea2bc9209f7cabbfae12fd191f778456ead0f2d6de446a7/uv-0.12.0-py3-none-win_amd64.whl", hash = "sha256:ffdfed09a23e67ef6facf1d4db978a3cd73a886674644131a11a933fd746904a", size = 20005960, upload-time = "2026-07-28T18:57:07.332Z" }, - { url = "https://files.pythonhosted.org/packages/9f/bc/d04df3b6c36be124cb99e7eab59db514ec528f2b5c5ac2ed9fec41fbdc71/uv-0.12.0-py3-none-win_arm64.whl", hash = "sha256:e3d748f526739110dd9e267ecca30604b64a5fe3344f903d348b5a3af1f0a90a", size = 18981523, upload-time = "2026-07-28T18:57:09.743Z" }, +version = "0.11.32" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d3/7c/29fad91a39d7926681f20245d60815b14b481f300cef9c37f1e5ae3cd2a7/uv-0.11.32.tar.gz", hash = "sha256:5359a7b0de78ba99b2519d33c173e004c39111c4baebe1b7c3d111a2de2011e1", size = 5790510, upload-time = "2026-07-23T23:05:52.943Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/86/ca/5ea42012c0ecbaac481f099f3c90ee4db737b3ec0bb6f51fa571e234e740/uv-0.11.32-py3-none-linux_armv6l.whl", hash = "sha256:26d61d1b640d2dcfd7c3b64e75ada14c8eb477accba57f414c1a3759d6ab2253", size = 25933056, upload-time = "2026-07-23T23:05:06.297Z" }, + { url = "https://files.pythonhosted.org/packages/12/85/ef4d0f02f469cfad1d73c11bf31ac0a8f24da3c62d7f3305c50a5e51e814/uv-0.11.32-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:c82954b1bd507e767b1d996c2865ea3eb7d464a479ec0e4d60f0b8e2e07dee45", size = 24918625, upload-time = "2026-07-23T23:05:09.299Z" }, + { url = "https://files.pythonhosted.org/packages/60/43/ec2de11ef008e76a8d01c34d573c939c565694f72c0d008d200aa3a5eac3/uv-0.11.32-py3-none-macosx_11_0_arm64.whl", hash = "sha256:2a56d1abf16337350e878b2c869b256b8448ecc4a722b98f8d41e1b3680a587b", size = 23519325, upload-time = "2026-07-23T23:05:11.877Z" }, + { url = "https://files.pythonhosted.org/packages/5d/61/0d6a8ee5066385fce65a5ef57939b1f63e9ff955afa07fa423c3e7e0abdb/uv-0.11.32-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl", hash = "sha256:125c142363d0842c8506a057da56bae182e2aa3957344f57dd9ef20ea10f06b0", size = 25450318, upload-time = "2026-07-23T23:05:14.617Z" }, + { url = "https://files.pythonhosted.org/packages/30/ec/fee4f0d12c7c42bf3b86eda615185860a76505c19e5b0e82afee8bf1c1a3/uv-0.11.32-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.musllinux_1_1_armv7l.whl", hash = "sha256:96625d832fe5b94ed0a029764cef0879ff47e3a525aec5c99d360a959e2f4aea", size = 25421693, upload-time = "2026-07-23T23:05:17.083Z" }, + { url = "https://files.pythonhosted.org/packages/ca/d3/cd77d7d87411030fb183f0e444634d7ba9803cd6ab64bc240d73ce50a071/uv-0.11.32-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:07ffc8322ce88b29dc0a905c102ea7d32c9021ee0353b641674e350c65fa930a", size = 25451542, upload-time = "2026-07-23T23:05:19.752Z" }, + { url = "https://files.pythonhosted.org/packages/78/3b/3127e224c05101a9675b579978c02d3b500f4362004abb177acdc6294264/uv-0.11.32-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8e36fe8ff79ab7d13e9ad45d24bb9a52c1024caa6897cf62933bb3f760643d13", size = 26809886, upload-time = "2026-07-23T23:05:22.35Z" }, + { url = "https://files.pythonhosted.org/packages/4e/59/82c05d4f1ce1de47667efa6548a14240a9c409388a09b788386317e190ca/uv-0.11.32-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:19fb9f2dba53851c0ee6e7e5582bd355fcaa9b1387b5d688f5bb9efc543dc605", size = 27608113, upload-time = "2026-07-23T23:05:24.948Z" }, + { url = "https://files.pythonhosted.org/packages/8b/f1/649b350677a1fb07938e1b5b33ac7564339f5e1f295a4a958b7181eb9924/uv-0.11.32-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f6f030a91a94655af11e41dafe1b41e1a90e1f2641bf13ff7ed7d4f5fb4f031d", size = 26788162, upload-time = "2026-07-23T23:05:27.585Z" }, + { url = "https://files.pythonhosted.org/packages/90/b0/114463d056b6b328d45557001e848b8ab15539bd8f4fa7a457ccb83e2b5d/uv-0.11.32-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3da76cd4e2697de30928b8a8524bd39183ac1e08cb7e72833807c022b7cba6c4", size = 27013687, upload-time = "2026-07-23T23:05:29.954Z" }, + { url = "https://files.pythonhosted.org/packages/b7/67/6ee5278036c57bcc7ee9c99cd890bac20d4431e63416ffe4080ba8f92767/uv-0.11.32-py3-none-manylinux_2_28_aarch64.whl", hash = "sha256:be0799f1ad70c755d10de5aaf46af94199d4f16a992f90278f2662350cd3f4fe", size = 25582781, upload-time = "2026-07-23T23:05:32.623Z" }, + { url = "https://files.pythonhosted.org/packages/7f/a5/2055d3db9ee3e4f59a14912bfcfacb3ec537d60d8b51a8477e4ddfc11e5c/uv-0.11.32-py3-none-manylinux_2_31_riscv64.musllinux_1_1_riscv64.whl", hash = "sha256:f35b3b8b65ba4579f8b23645a19394f7e5f90b20b07376ecff18b3bb656a81ae", size = 26291488, upload-time = "2026-07-23T23:05:35.219Z" }, + { url = "https://files.pythonhosted.org/packages/dc/59/999a5e83f927539a5b90b708abf77642f07faccf04f37c1f933864c403c6/uv-0.11.32-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:cd085addb35f074561d2c5659a088f5f10361502bd3ad4c8f5105f5a4b9d2817", size = 26419928, upload-time = "2026-07-23T23:05:37.589Z" }, + { url = "https://files.pythonhosted.org/packages/14/1d/7575563aeac458053d220a95eb1c5aeda14870414bd6db00e9eb673c3793/uv-0.11.32-py3-none-musllinux_1_1_i686.whl", hash = "sha256:43360834111ae917808a70b36f4fb0e53de8e0be422e4cd4445876ffae8decc2", size = 26077451, upload-time = "2026-07-23T23:05:40.286Z" }, + { url = "https://files.pythonhosted.org/packages/02/58/0a92505cfe2b02b1c2d6ded23e83763fe98b43fbe1a4e5cbd6866da3bdf7/uv-0.11.32-py3-none-musllinux_1_1_x86_64.whl", hash = "sha256:77f4356548ee8dc47efae154efd4e930c65570e7d4971c57bdef592f6eefb39c", size = 27223406, upload-time = "2026-07-23T23:05:43.037Z" }, + { url = "https://files.pythonhosted.org/packages/00/f8/1f7cf58780bb1c5d6ea89126438971d8e61ad04d290e1c34ce1e8b136a83/uv-0.11.32-py3-none-win32.whl", hash = "sha256:bb1ae8189e315499a77f3cc27cac5985ab1d8cb79baa82e368b6c1e574a7d9cf", size = 24681569, upload-time = "2026-07-23T23:05:45.485Z" }, + { url = "https://files.pythonhosted.org/packages/57/60/a645cca710448004268b7731c4dc6fc7d084a7c620fc73ecc2127cb61661/uv-0.11.32-py3-none-win_amd64.whl", hash = "sha256:855632ee1d2a8491986efa54c562b806cd32477761889a1e13624b519d98a45e", size = 27780686, upload-time = "2026-07-23T23:05:48.141Z" }, + { url = "https://files.pythonhosted.org/packages/13/68/efb90a3e46c9f93e577b34e82467f232308a0ff3b12f807226caca6f72e2/uv-0.11.32-py3-none-win_arm64.whl", hash = "sha256:bf988bf510772785eac1edfc7cdedca074e8936b45e755b58f7f3e1e9ca86424", size = 25882589, upload-time = "2026-07-23T23:05:50.723Z" }, ] [[package]] From cc9f607b30095637a85a82080e9ab67e310dc0be Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 11:54:43 -0300 Subject: [PATCH 031/165] chore(gitlinks): record conformed 0.12.0-dev member pointers Advance 30 member gitlinks to the pushed tips carrying the regenerated managed surfaces (mro-d9d5 fleet conform rollout). Fleet ruff went from 72 to 15 errors; the remaining 15 are isolated in flext-target-ldap and tracked in mro-b98o. --- flext-api | 2 +- flext-auth | 2 +- flext-cli | 2 +- flext-core | 2 +- flext-db-oracle | 2 +- flext-dbt-ldap | 2 +- flext-dbt-ldif | 2 +- flext-dbt-oracle | 2 +- flext-dbt-oracle-wms | 2 +- flext-grpc | 2 +- flext-ldap | 2 +- flext-ldif | 2 +- flext-meltano | 2 +- flext-observability | 2 +- flext-oracle-oic | 2 +- flext-oracle-wms | 2 +- flext-plugin | 2 +- flext-quality | 2 +- flext-tap-ldap | 2 +- flext-tap-ldif | 2 +- flext-tap-oracle | 2 +- flext-tap-oracle-oic | 2 +- flext-tap-oracle-wms | 2 +- flext-target-ldap | 2 +- flext-target-ldif | 2 +- flext-target-oracle | 2 +- flext-target-oracle-oic | 2 +- flext-target-oracle-wms | 2 +- flext-tests | 2 +- flext-web | 2 +- 30 files changed, 30 insertions(+), 30 deletions(-) diff --git a/flext-api b/flext-api index f0b7b208d..0eb9e024b 160000 --- a/flext-api +++ b/flext-api @@ -1 +1 @@ -Subproject commit f0b7b208d3125c7fecb7b34109b8cc26dd2c9f07 +Subproject commit 0eb9e024b39bd8b39dcffd2961f3fad3564164de diff --git a/flext-auth b/flext-auth index 0f6100212..3c451ab51 160000 --- a/flext-auth +++ b/flext-auth @@ -1 +1 @@ -Subproject commit 0f6100212ae6684f31664e049126ac5dae7e75bb +Subproject commit 3c451ab51c17b6bb55f686cfdca48f017a02e6f9 diff --git a/flext-cli b/flext-cli index d40057dec..b5534d374 160000 --- a/flext-cli +++ b/flext-cli @@ -1 +1 @@ -Subproject commit d40057dec1783db63458c919b354a89a64141cb3 +Subproject commit b5534d3749ddd6063a9e89a135f2f7f8deb19156 diff --git a/flext-core b/flext-core index 1219a3c21..59453ee27 160000 --- a/flext-core +++ b/flext-core @@ -1 +1 @@ -Subproject commit 1219a3c21e6846e9b4ed47f610b15d87a9289576 +Subproject commit 59453ee2738e26baa55c3e704eaf60ce1fd76bde diff --git a/flext-db-oracle b/flext-db-oracle index c7e0a8591..52e45b411 160000 --- a/flext-db-oracle +++ b/flext-db-oracle @@ -1 +1 @@ -Subproject commit c7e0a8591838eb669cfb8cfc9cb37a1741c3ac0e +Subproject commit 52e45b411093455d14545d1d5c1b4a2192f3e882 diff --git a/flext-dbt-ldap b/flext-dbt-ldap index 976e75bc5..ac01bb9ba 160000 --- a/flext-dbt-ldap +++ b/flext-dbt-ldap @@ -1 +1 @@ -Subproject commit 976e75bc5d508756d16d7813d267c3fe0fde07b6 +Subproject commit ac01bb9ba6b5959a3b24cc2a07d1fd6f36d8ca36 diff --git a/flext-dbt-ldif b/flext-dbt-ldif index eff270f3f..f8c3a09ac 160000 --- a/flext-dbt-ldif +++ b/flext-dbt-ldif @@ -1 +1 @@ -Subproject commit eff270f3f8bc3c420627987dd078f8fcbbdaa538 +Subproject commit f8c3a09acf6e9d9d213e80d770f729e5a533afe4 diff --git a/flext-dbt-oracle b/flext-dbt-oracle index e2d53487c..996fc1f27 160000 --- a/flext-dbt-oracle +++ b/flext-dbt-oracle @@ -1 +1 @@ -Subproject commit e2d53487ccecfac02826c9a85108d77f0c5de73b +Subproject commit 996fc1f27b3f1d084d3a483b36cf0248768cf8e4 diff --git a/flext-dbt-oracle-wms b/flext-dbt-oracle-wms index c0d643c14..c3d3c4928 160000 --- a/flext-dbt-oracle-wms +++ b/flext-dbt-oracle-wms @@ -1 +1 @@ -Subproject commit c0d643c147478e319fb7ced3dd2b7fe68c1d8115 +Subproject commit c3d3c4928d45b119f120245844857f8aadeadf72 diff --git a/flext-grpc b/flext-grpc index abeef2b5e..1f36f5581 160000 --- a/flext-grpc +++ b/flext-grpc @@ -1 +1 @@ -Subproject commit abeef2b5e3e49ab4fd26ca058585040030ce47cc +Subproject commit 1f36f5581ac3a925c41d713e6e9af4a724377d15 diff --git a/flext-ldap b/flext-ldap index 1f651dd32..7f45adca4 160000 --- a/flext-ldap +++ b/flext-ldap @@ -1 +1 @@ -Subproject commit 1f651dd32c77addb82bde543ed0cbd3a38fb8103 +Subproject commit 7f45adca4ce9a690a5d2c8207b80a97b30774f4d diff --git a/flext-ldif b/flext-ldif index ec66c468e..74ff08093 160000 --- a/flext-ldif +++ b/flext-ldif @@ -1 +1 @@ -Subproject commit ec66c468e20eb170694ce5f4356411f1d406d94d +Subproject commit 74ff08093f8d97220c3d1da7f3295753f28d2ca4 diff --git a/flext-meltano b/flext-meltano index a031e65db..bf6bb7ef9 160000 --- a/flext-meltano +++ b/flext-meltano @@ -1 +1 @@ -Subproject commit a031e65db423a49a9b9dc34e6c6153e0cd163f22 +Subproject commit bf6bb7ef99ff8d3c690d6c1bf51bba4c2d27bf0e diff --git a/flext-observability b/flext-observability index 3cc1c81fb..793def76a 160000 --- a/flext-observability +++ b/flext-observability @@ -1 +1 @@ -Subproject commit 3cc1c81fb0c4feb9c3a30f1eed05155d5e6cecac +Subproject commit 793def76a37c163653394da6499d8a4b426a19e0 diff --git a/flext-oracle-oic b/flext-oracle-oic index 245b500ce..4dcf5ac4f 160000 --- a/flext-oracle-oic +++ b/flext-oracle-oic @@ -1 +1 @@ -Subproject commit 245b500cee56b2f2bcdffd1ea363614753701664 +Subproject commit 4dcf5ac4fbe3154ec0a9f939a6688fdbcc9fce39 diff --git a/flext-oracle-wms b/flext-oracle-wms index 4dff9a07a..8aaadc89b 160000 --- a/flext-oracle-wms +++ b/flext-oracle-wms @@ -1 +1 @@ -Subproject commit 4dff9a07a541b71eb40907d5b1bc875d1ae684bc +Subproject commit 8aaadc89be9b5608cbe0fecf58c7ee96c64a893b diff --git a/flext-plugin b/flext-plugin index 0f19b3ca7..9b60ea4ea 160000 --- a/flext-plugin +++ b/flext-plugin @@ -1 +1 @@ -Subproject commit 0f19b3ca7c3cffeff4ea29ac10fdb2b971585dbc +Subproject commit 9b60ea4eab1e9534fdd6a1cfe9542db9b0309a17 diff --git a/flext-quality b/flext-quality index 5148e72da..f06c9e138 160000 --- a/flext-quality +++ b/flext-quality @@ -1 +1 @@ -Subproject commit 5148e72daff7ab0f14d4acf988bab7727d40eb79 +Subproject commit f06c9e1384d8afb875959471573a0a5f85d6b3a2 diff --git a/flext-tap-ldap b/flext-tap-ldap index f1a81723f..c068e5ba6 160000 --- a/flext-tap-ldap +++ b/flext-tap-ldap @@ -1 +1 @@ -Subproject commit f1a81723fd049ae644b3ac51cce5177da7587a3c +Subproject commit c068e5ba6981f4e1a2d256826798767835516425 diff --git a/flext-tap-ldif b/flext-tap-ldif index 0f297d855..725be5a8f 160000 --- a/flext-tap-ldif +++ b/flext-tap-ldif @@ -1 +1 @@ -Subproject commit 0f297d8558a25d2f4244c659b0da938c50ef72af +Subproject commit 725be5a8f226fce49c624e2e2c8683bea0466b57 diff --git a/flext-tap-oracle b/flext-tap-oracle index 8663ffa1f..45e59ece9 160000 --- a/flext-tap-oracle +++ b/flext-tap-oracle @@ -1 +1 @@ -Subproject commit 8663ffa1ff4ecafc61c0c27930fa9ebb130c7e5d +Subproject commit 45e59ece95a13c57d0628e5c1626d19ffa8bc12c diff --git a/flext-tap-oracle-oic b/flext-tap-oracle-oic index 9e6b59e55..7f28ad400 160000 --- a/flext-tap-oracle-oic +++ b/flext-tap-oracle-oic @@ -1 +1 @@ -Subproject commit 9e6b59e5556d08d61125ce5fa07859b88eab77ed +Subproject commit 7f28ad400f344a89f3bc092dcb1c82252d9b9c9b diff --git a/flext-tap-oracle-wms b/flext-tap-oracle-wms index 322a1eee7..75c2e212c 160000 --- a/flext-tap-oracle-wms +++ b/flext-tap-oracle-wms @@ -1 +1 @@ -Subproject commit 322a1eee702b1fa41003ba27ca9b9047268150d3 +Subproject commit 75c2e212c2838447e31d515df06c7de526467f0e diff --git a/flext-target-ldap b/flext-target-ldap index 44b1cbe96..8ade67129 160000 --- a/flext-target-ldap +++ b/flext-target-ldap @@ -1 +1 @@ -Subproject commit 44b1cbe96a8adb20361848530b1eed67f599069a +Subproject commit 8ade67129358f8a17b4ae51c925d656f046530a6 diff --git a/flext-target-ldif b/flext-target-ldif index fd95efd00..c38bd8124 160000 --- a/flext-target-ldif +++ b/flext-target-ldif @@ -1 +1 @@ -Subproject commit fd95efd00f5502faa8445aef2e7f63a90efd818a +Subproject commit c38bd8124a10d7debab41830ddbbeb5cac6660ad diff --git a/flext-target-oracle b/flext-target-oracle index 612a032d1..b947bbb4b 160000 --- a/flext-target-oracle +++ b/flext-target-oracle @@ -1 +1 @@ -Subproject commit 612a032d17dc6ccb7bbb08035f5ab4aa783116e7 +Subproject commit b947bbb4b01e02f701261f704cbd77c188f8d48c diff --git a/flext-target-oracle-oic b/flext-target-oracle-oic index 8e6eb1f37..95ebe7ecc 160000 --- a/flext-target-oracle-oic +++ b/flext-target-oracle-oic @@ -1 +1 @@ -Subproject commit 8e6eb1f37da1442d1bd1ddbf81f6f7892a00fffd +Subproject commit 95ebe7ecc19ecf8c332d02a32c8baecfeed60b89 diff --git a/flext-target-oracle-wms b/flext-target-oracle-wms index 35f410a24..cdd76d308 160000 --- a/flext-target-oracle-wms +++ b/flext-target-oracle-wms @@ -1 +1 @@ -Subproject commit 35f410a240362197b3c833e4585d06f53abebc9d +Subproject commit cdd76d3087d2d7cc8eb1fae9971c31a80208978f diff --git a/flext-tests b/flext-tests index e59ce4656..d66e99aa8 160000 --- a/flext-tests +++ b/flext-tests @@ -1 +1 @@ -Subproject commit e59ce465626e03b62bee4f519cba9081bea50275 +Subproject commit d66e99aa860f0b63bee7f504512da7d7c48b1283 diff --git a/flext-web b/flext-web index a73a81882..f972393a9 160000 --- a/flext-web +++ b/flext-web @@ -1 +1 @@ -Subproject commit a73a81882b5a26b705fef7b93e549b2aa3a94190 +Subproject commit f972393a9e5546a74a6f19c2375eb106c5185348 From adf9834dcc0849350fc9ff886c1de5f8da49a805 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 13:17:26 -0300 Subject: [PATCH 032/165] chore(gitlink): record converged flext-infra 0.12.0-dev flext-infra WIP landed and merged with origin (worktree transaction fixes, flext_core facade swap, beads/gitignore policy convergence, runtime lint deps). Suite baseline: origin failed 236/1918, converged branch fails 235/1919 - no regression, one net repair. --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index 53bd5fc7d..c1b03db2b 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 53bd5fc7db6721f94cefcddeb29711c5cd287e51 +Subproject commit c1b03db2bd6a453e1e63f8761049d11e3ade6178 From 3e86a652f34763eac7e6fda21b44aa34e4d1b825 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 13:18:20 -0300 Subject: [PATCH 033/165] chore(lock): refresh uv.lock for flext-infra runtime lint dependencies flext-infra now declares ruff and pyrefly as runtime dependencies (its worktree transaction lint contract executes both), so the workspace lock re-resolves. --- uv.lock | 234 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 234 insertions(+) diff --git a/uv.lock b/uv.lock index 2419b5b20..22dedd882 100644 --- a/uv.lock +++ b/uv.lock @@ -1745,6 +1745,7 @@ dev = [ { name = "types-flask" }, { name = "types-jsonschema" }, { name = "types-ldap3" }, + { name = "types-openpyxl" }, { name = "types-paramiko" }, { name = "types-protobuf" }, { name = "types-psutil" }, @@ -1819,9 +1820,11 @@ dev = [ { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, + { name = "pyrefly", specifier = ">=1.1.1" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, + { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -1837,6 +1840,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, + { name = "ruff", specifier = ">=0.15.12" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -1845,6 +1849,7 @@ dev = [ { name = "types-flask", specifier = ">=1.1.6" }, { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, + { name = "types-openpyxl", specifier = ">=3.1.5.20260518" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, { name = "types-psutil", specifier = ">=7" }, @@ -1859,6 +1864,8 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "vulture", specifier = ">=2.16" }, + { name = "yamlfix", specifier = ">=1.19.1" }, { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] @@ -1944,6 +1951,7 @@ dev = [ { name = "types-flask" }, { name = "types-jsonschema" }, { name = "types-ldap3" }, + { name = "types-openpyxl" }, { name = "types-paramiko" }, { name = "types-protobuf" }, { name = "types-psutil" }, @@ -2012,9 +2020,11 @@ dev = [ { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, + { name = "pyrefly", specifier = ">=1.1.1" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, + { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -2030,6 +2040,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, + { name = "ruff", specifier = ">=0.15.12" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -2038,6 +2049,7 @@ dev = [ { name = "types-flask", specifier = ">=1.1.6" }, { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, + { name = "types-openpyxl", specifier = ">=3.1.5.20260518" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, { name = "types-psutil", specifier = ">=7" }, @@ -2052,6 +2064,8 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "vulture", specifier = ">=2.16" }, + { name = "yamlfix", specifier = ">=1.19.1" }, { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] @@ -2087,6 +2101,7 @@ codegen = [ { name = "flext-infra" }, ] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -2118,11 +2133,13 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "psutil" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -2192,6 +2209,7 @@ requires-dist = [ [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -2223,12 +2241,16 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "psutil", specifier = ">=7.2.2" }, { name = "pylint", specifier = ">=3.3" }, + { name = "pyrefly", specifier = ">=1.1.1" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, + { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -2244,6 +2266,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, + { name = "ruff", specifier = ">=0.15.12" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -2267,6 +2290,8 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "vulture", specifier = ">=2.16" }, + { name = "yamlfix", specifier = ">=1.19.1" }, { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] @@ -2302,6 +2327,7 @@ codegen = [ { name = "flext-infra" }, ] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -2343,6 +2369,7 @@ dev = [ { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -2368,6 +2395,7 @@ dev = [ { name = "types-flask" }, { name = "types-jsonschema" }, { name = "types-ldap3" }, + { name = "types-openpyxl" }, { name = "types-paramiko" }, { name = "types-protobuf" }, { name = "types-psutil" }, @@ -2412,6 +2440,7 @@ requires-dist = [ [package.metadata.requires-dev] codegen = [{ name = "flext-infra", editable = "flext-infra" }] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -2449,11 +2478,15 @@ dev = [ { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, { name = "mypy", specifier = ">=1.20.2" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, + { name = "pyrefly", specifier = ">=1.1.1" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, + { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -2470,6 +2503,7 @@ dev = [ { name = "radon", specifier = ">=6.0.1" }, { name = "rope", specifier = ">=1.14.0" }, { name = "ruff", specifier = ">=0.12.3" }, + { name = "ruff", specifier = ">=0.15.12" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -2478,6 +2512,7 @@ dev = [ { name = "types-flask", specifier = ">=1.1.6" }, { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, + { name = "types-openpyxl", specifier = ">=3.1.5.20260518" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, { name = "types-psutil", specifier = ">=7" }, @@ -2492,6 +2527,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.16" }, + { name = "yamlfix", specifier = ">=1.19.1" }, { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] @@ -2575,6 +2611,7 @@ dev = [ { name = "types-flask" }, { name = "types-jsonschema" }, { name = "types-ldap3" }, + { name = "types-openpyxl" }, { name = "types-paramiko" }, { name = "types-protobuf" }, { name = "types-psutil" }, @@ -2641,9 +2678,11 @@ dev = [ { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, + { name = "pyrefly", specifier = ">=1.1.1" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, + { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -2659,6 +2698,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, + { name = "ruff", specifier = ">=0.15.12" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -2667,6 +2707,7 @@ dev = [ { name = "types-flask", specifier = ">=1.1.6" }, { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, + { name = "types-openpyxl", specifier = ">=3.1.5.20260518" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, { name = "types-psutil", specifier = ">=7" }, @@ -2681,6 +2722,8 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "vulture", specifier = ">=2.16" }, + { name = "yamlfix", specifier = ">=1.19.1" }, { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] @@ -2766,6 +2809,7 @@ dev = [ { name = "types-flask" }, { name = "types-jsonschema" }, { name = "types-ldap3" }, + { name = "types-openpyxl" }, { name = "types-paramiko" }, { name = "types-protobuf" }, { name = "types-psutil" }, @@ -2834,9 +2878,11 @@ dev = [ { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, + { name = "pyrefly", specifier = ">=1.1.1" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, + { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -2852,6 +2898,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, + { name = "ruff", specifier = ">=0.15.12" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -2860,6 +2907,7 @@ dev = [ { name = "types-flask", specifier = ">=1.1.6" }, { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, + { name = "types-openpyxl", specifier = ">=3.1.5.20260518" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, { name = "types-psutil", specifier = ">=7" }, @@ -2874,6 +2922,8 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "vulture", specifier = ">=2.16" }, + { name = "yamlfix", specifier = ">=1.19.1" }, { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] @@ -2956,6 +3006,7 @@ dev = [ { name = "types-flask" }, { name = "types-jsonschema" }, { name = "types-ldap3" }, + { name = "types-openpyxl" }, { name = "types-paramiko" }, { name = "types-protobuf" }, { name = "types-psutil" }, @@ -3021,9 +3072,11 @@ dev = [ { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, + { name = "pyrefly", specifier = ">=1.1.1" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, + { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -3039,6 +3092,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, + { name = "ruff", specifier = ">=0.15.12" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -3047,6 +3101,7 @@ dev = [ { name = "types-flask", specifier = ">=1.1.6" }, { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, + { name = "types-openpyxl", specifier = ">=3.1.5.20260518" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, { name = "types-psutil", specifier = ">=7" }, @@ -3061,6 +3116,8 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "vulture", specifier = ">=2.16" }, + { name = "yamlfix", specifier = ">=1.19.1" }, { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] @@ -3144,6 +3201,7 @@ dev = [ { name = "types-flask" }, { name = "types-jsonschema" }, { name = "types-ldap3" }, + { name = "types-openpyxl" }, { name = "types-paramiko" }, { name = "types-protobuf" }, { name = "types-psutil" }, @@ -3210,9 +3268,11 @@ dev = [ { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, + { name = "pyrefly", specifier = ">=1.1.1" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, + { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -3228,6 +3288,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, + { name = "ruff", specifier = ">=0.15.12" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -3236,6 +3297,7 @@ dev = [ { name = "types-flask", specifier = ">=1.1.6" }, { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, + { name = "types-openpyxl", specifier = ">=3.1.5.20260518" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, { name = "types-psutil", specifier = ">=7" }, @@ -3250,6 +3312,8 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "vulture", specifier = ">=2.16" }, + { name = "yamlfix", specifier = ">=1.19.1" }, { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] @@ -3333,6 +3397,7 @@ dev = [ { name = "types-flask" }, { name = "types-jsonschema" }, { name = "types-ldap3" }, + { name = "types-openpyxl" }, { name = "types-paramiko" }, { name = "types-protobuf" }, { name = "types-psutil" }, @@ -3399,9 +3464,11 @@ dev = [ { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, + { name = "pyrefly", specifier = ">=1.1.1" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, + { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -3417,6 +3484,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, + { name = "ruff", specifier = ">=0.15.12" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -3425,6 +3493,7 @@ dev = [ { name = "types-flask", specifier = ">=1.1.6" }, { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, + { name = "types-openpyxl", specifier = ">=3.1.5.20260518" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, { name = "types-psutil", specifier = ">=7" }, @@ -3439,6 +3508,8 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "vulture", specifier = ">=2.16" }, + { name = "yamlfix", specifier = ">=1.19.1" }, { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] @@ -3527,6 +3598,7 @@ dev = [ { name = "types-flask" }, { name = "types-jsonschema" }, { name = "types-ldap3" }, + { name = "types-openpyxl" }, { name = "types-paramiko" }, { name = "types-protobuf" }, { name = "types-psutil" }, @@ -3598,9 +3670,11 @@ dev = [ { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, + { name = "pyrefly", specifier = ">=1.1.1" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, + { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -3616,6 +3690,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, + { name = "ruff", specifier = ">=0.15.12" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -3624,6 +3699,7 @@ dev = [ { name = "types-flask", specifier = ">=1.1.6" }, { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, + { name = "types-openpyxl", specifier = ">=3.1.5.20260518" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, { name = "types-psutil", specifier = ">=7" }, @@ -3638,6 +3714,8 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "vulture", specifier = ">=2.16" }, + { name = "yamlfix", specifier = ">=1.19.1" }, { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] @@ -3658,11 +3736,14 @@ dependencies = [ { name = "mkdocs-section-index" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "pyrefly" }, { name = "rope" }, + { name = "ruff" }, ] [package.dev-dependencies] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -3694,10 +3775,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -3722,6 +3805,7 @@ dev = [ { name = "types-flask" }, { name = "types-jsonschema" }, { name = "types-ldap3" }, + { name = "types-openpyxl" }, { name = "types-paramiko" }, { name = "types-protobuf" }, { name = "types-psutil" }, @@ -3753,11 +3837,14 @@ requires-dist = [ { name = "mkdocs-section-index", specifier = ">=0.3.12" }, { name = "mkdocstrings", specifier = ">=1.0.4" }, { name = "mkdocstrings-python", specifier = ">=2.0.3" }, + { name = "pyrefly", specifier = ">=1.1.1" }, { name = "rope", specifier = ">=1.14.0" }, + { name = "ruff", specifier = ">=0.15.12" }, ] [package.metadata.requires-dev] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -3789,11 +3876,14 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, + { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -3809,6 +3899,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, + { name = "ruff", specifier = ">=0.15.12" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -3817,6 +3908,7 @@ dev = [ { name = "types-flask", specifier = ">=1.1.6" }, { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, + { name = "types-openpyxl", specifier = ">=3.1.5.20260518" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, { name = "types-psutil", specifier = ">=7" }, @@ -3831,6 +3923,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, ] @@ -3917,6 +4010,7 @@ dev = [ { name = "types-flask" }, { name = "types-jsonschema" }, { name = "types-ldap3" }, + { name = "types-openpyxl" }, { name = "types-paramiko" }, { name = "types-protobuf" }, { name = "types-psutil" }, @@ -3986,9 +4080,11 @@ dev = [ { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, + { name = "pyrefly", specifier = ">=1.1.1" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, + { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -4004,6 +4100,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, + { name = "ruff", specifier = ">=0.15.12" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -4012,6 +4109,7 @@ dev = [ { name = "types-flask", specifier = ">=1.1.6" }, { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, + { name = "types-openpyxl", specifier = ">=3.1.5.20260518" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, { name = "types-psutil", specifier = ">=7" }, @@ -4026,6 +4124,8 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "vulture", specifier = ">=2.16" }, + { name = "yamlfix", specifier = ">=1.19.1" }, { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] @@ -4111,6 +4211,7 @@ dev = [ { name = "types-flask" }, { name = "types-jsonschema" }, { name = "types-ldap3" }, + { name = "types-openpyxl" }, { name = "types-paramiko" }, { name = "types-protobuf" }, { name = "types-psutil" }, @@ -4179,9 +4280,11 @@ dev = [ { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, + { name = "pyrefly", specifier = ">=1.1.1" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, + { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -4197,6 +4300,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, + { name = "ruff", specifier = ">=0.15.12" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -4205,6 +4309,7 @@ dev = [ { name = "types-flask", specifier = ">=1.1.6" }, { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, + { name = "types-openpyxl", specifier = ">=3.1.5.20260518" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, { name = "types-psutil", specifier = ">=7" }, @@ -4219,6 +4324,8 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "vulture", specifier = ">=2.16" }, + { name = "yamlfix", specifier = ">=1.19.1" }, { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] @@ -4325,6 +4432,7 @@ dev = [ { name = "types-flask" }, { name = "types-jsonschema" }, { name = "types-ldap3" }, + { name = "types-openpyxl" }, { name = "types-paramiko" }, { name = "types-protobuf" }, { name = "types-psutil" }, @@ -4413,9 +4521,11 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "psycopg2", specifier = ">=2.9.12" }, { name = "pylint", specifier = ">=3.3" }, + { name = "pyrefly", specifier = ">=1.1.1" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, + { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -4432,6 +4542,7 @@ dev = [ { name = "radon", specifier = ">=6.0.1" }, { name = "redis", specifier = ">=7.4.0" }, { name = "ruff", specifier = ">=0.12.3" }, + { name = "ruff", specifier = ">=0.15.12" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -4440,6 +4551,7 @@ dev = [ { name = "types-flask", specifier = ">=1.1.6" }, { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, + { name = "types-openpyxl", specifier = ">=3.1.5.20260518" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, { name = "types-psutil", specifier = ">=7" }, @@ -4454,6 +4566,8 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "vulture", specifier = ">=2.16" }, + { name = "yamlfix", specifier = ">=1.19.1" }, { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] @@ -4547,6 +4661,7 @@ dev = [ { name = "types-flask" }, { name = "types-jsonschema" }, { name = "types-ldap3" }, + { name = "types-openpyxl" }, { name = "types-paramiko" }, { name = "types-protobuf" }, { name = "types-psutil" }, @@ -4623,9 +4738,11 @@ dev = [ { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, + { name = "pyrefly", specifier = ">=1.1.1" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, + { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -4641,6 +4758,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, + { name = "ruff", specifier = ">=0.15.12" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -4649,6 +4767,7 @@ dev = [ { name = "types-flask", specifier = ">=1.1.6" }, { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, + { name = "types-openpyxl", specifier = ">=3.1.5.20260518" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, { name = "types-psutil", specifier = ">=7" }, @@ -4663,6 +4782,8 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "vulture", specifier = ">=2.16" }, + { name = "yamlfix", specifier = ">=1.19.1" }, { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] @@ -4752,6 +4873,7 @@ dev = [ { name = "types-flask" }, { name = "types-jsonschema" }, { name = "types-ldap3" }, + { name = "types-openpyxl" }, { name = "types-paramiko" }, { name = "types-protobuf" }, { name = "types-psutil" }, @@ -4824,9 +4946,11 @@ dev = [ { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, + { name = "pyrefly", specifier = ">=1.1.1" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, + { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -4842,6 +4966,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, + { name = "ruff", specifier = ">=0.15.12" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -4850,6 +4975,7 @@ dev = [ { name = "types-flask", specifier = ">=1.1.6" }, { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, + { name = "types-openpyxl", specifier = ">=3.1.5.20260518" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, { name = "types-psutil", specifier = ">=7" }, @@ -4864,6 +4990,8 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "vulture", specifier = ">=2.16" }, + { name = "yamlfix", specifier = ">=1.19.1" }, { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] @@ -4948,6 +5076,7 @@ dev = [ { name = "types-flask" }, { name = "types-jsonschema" }, { name = "types-ldap3" }, + { name = "types-openpyxl" }, { name = "types-paramiko" }, { name = "types-protobuf" }, { name = "types-psutil" }, @@ -5015,9 +5144,11 @@ dev = [ { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, + { name = "pyrefly", specifier = ">=1.1.1" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, + { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -5033,6 +5164,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, + { name = "ruff", specifier = ">=0.15.12" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -5041,6 +5173,7 @@ dev = [ { name = "types-flask", specifier = ">=1.1.6" }, { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, + { name = "types-openpyxl", specifier = ">=3.1.5.20260518" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, { name = "types-psutil", specifier = ">=7" }, @@ -5055,6 +5188,8 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "vulture", specifier = ">=2.16" }, + { name = "yamlfix", specifier = ">=1.19.1" }, { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] @@ -5141,6 +5276,7 @@ dev = [ { name = "types-flask" }, { name = "types-jsonschema" }, { name = "types-ldap3" }, + { name = "types-openpyxl" }, { name = "types-paramiko" }, { name = "types-protobuf" }, { name = "types-psutil" }, @@ -5210,9 +5346,11 @@ dev = [ { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, + { name = "pyrefly", specifier = ">=1.1.1" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, + { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -5228,6 +5366,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, + { name = "ruff", specifier = ">=0.15.12" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -5236,6 +5375,7 @@ dev = [ { name = "types-flask", specifier = ">=1.1.6" }, { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, + { name = "types-openpyxl", specifier = ">=3.1.5.20260518" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, { name = "types-psutil", specifier = ">=7" }, @@ -5250,6 +5390,8 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "vulture", specifier = ">=2.16" }, + { name = "yamlfix", specifier = ">=1.19.1" }, { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] @@ -5353,6 +5495,7 @@ dev = [ { name = "types-flask" }, { name = "types-jsonschema" }, { name = "types-ldap3" }, + { name = "types-openpyxl" }, { name = "types-paramiko" }, { name = "types-protobuf" }, { name = "types-psutil" }, @@ -5437,9 +5580,11 @@ dev = [ { name = "pip-audit", specifier = ">=2.10.1" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, + { name = "pyrefly", specifier = ">=1.1.1" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, + { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.2.3" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.18.0" }, @@ -5457,6 +5602,7 @@ dev = [ { name = "refurb", specifier = ">=2" }, { name = "rope", specifier = ">=1.11" }, { name = "ruff", specifier = ">=0.12.3" }, + { name = "ruff", specifier = ">=0.15.12" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0.0.20260518" }, { name = "types-click", specifier = ">=7.1" }, @@ -5465,6 +5611,7 @@ dev = [ { name = "types-flask", specifier = ">=1.1.6" }, { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20260518" }, + { name = "types-openpyxl", specifier = ">=3.1.5.20260518" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, { name = "types-psutil", specifier = ">=7.2.2.20260518" }, @@ -5479,6 +5626,8 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20260518" }, { name = "vulture", specifier = ">=2.13" }, + { name = "vulture", specifier = ">=2.16" }, + { name = "yamlfix", specifier = ">=1.19.1" }, { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] @@ -5562,6 +5711,7 @@ dev = [ { name = "types-flask" }, { name = "types-jsonschema" }, { name = "types-ldap3" }, + { name = "types-openpyxl" }, { name = "types-paramiko" }, { name = "types-protobuf" }, { name = "types-psutil" }, @@ -5628,9 +5778,11 @@ dev = [ { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, + { name = "pyrefly", specifier = ">=1.1.1" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, + { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -5646,6 +5798,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, + { name = "ruff", specifier = ">=0.15.12" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -5654,6 +5807,7 @@ dev = [ { name = "types-flask", specifier = ">=1.1.6" }, { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, + { name = "types-openpyxl", specifier = ">=3.1.5.20260518" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, { name = "types-psutil", specifier = ">=7" }, @@ -5668,6 +5822,8 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "vulture", specifier = ">=2.16" }, + { name = "yamlfix", specifier = ">=1.19.1" }, { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] @@ -5751,6 +5907,7 @@ dev = [ { name = "types-flask" }, { name = "types-jsonschema" }, { name = "types-ldap3" }, + { name = "types-openpyxl" }, { name = "types-paramiko" }, { name = "types-protobuf" }, { name = "types-psutil" }, @@ -5817,9 +5974,11 @@ dev = [ { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, + { name = "pyrefly", specifier = ">=1.1.1" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, + { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -5835,6 +5994,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, + { name = "ruff", specifier = ">=0.15.12" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -5843,6 +6003,7 @@ dev = [ { name = "types-flask", specifier = ">=1.1.6" }, { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, + { name = "types-openpyxl", specifier = ">=3.1.5.20260518" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, { name = "types-psutil", specifier = ">=7" }, @@ -5857,6 +6018,8 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "vulture", specifier = ">=2.16" }, + { name = "yamlfix", specifier = ">=1.19.1" }, { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] @@ -5945,6 +6108,7 @@ dev = [ { name = "types-flask" }, { name = "types-jsonschema" }, { name = "types-ldap3" }, + { name = "types-openpyxl" }, { name = "types-paramiko" }, { name = "types-protobuf" }, { name = "types-psutil" }, @@ -6016,9 +6180,11 @@ dev = [ { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, + { name = "pyrefly", specifier = ">=1.1.1" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, + { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -6034,6 +6200,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, + { name = "ruff", specifier = ">=0.15.12" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -6042,6 +6209,7 @@ dev = [ { name = "types-flask", specifier = ">=1.1.6" }, { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, + { name = "types-openpyxl", specifier = ">=3.1.5.20260518" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, { name = "types-psutil", specifier = ">=7" }, @@ -6056,6 +6224,8 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "vulture", specifier = ">=2.16" }, + { name = "yamlfix", specifier = ">=1.19.1" }, { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] @@ -6142,6 +6312,7 @@ dev = [ { name = "types-flask" }, { name = "types-jsonschema" }, { name = "types-ldap3" }, + { name = "types-openpyxl" }, { name = "types-paramiko" }, { name = "types-protobuf" }, { name = "types-psutil" }, @@ -6211,9 +6382,11 @@ dev = [ { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, + { name = "pyrefly", specifier = ">=1.1.1" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, + { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -6229,6 +6402,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, + { name = "ruff", specifier = ">=0.15.12" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -6237,6 +6411,7 @@ dev = [ { name = "types-flask", specifier = ">=1.1.6" }, { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, + { name = "types-openpyxl", specifier = ">=3.1.5.20260518" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, { name = "types-psutil", specifier = ">=7" }, @@ -6251,6 +6426,8 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "vulture", specifier = ">=2.16" }, + { name = "yamlfix", specifier = ">=1.19.1" }, { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] @@ -6336,6 +6513,7 @@ dev = [ { name = "types-flask" }, { name = "types-jsonschema" }, { name = "types-ldap3" }, + { name = "types-openpyxl" }, { name = "types-paramiko" }, { name = "types-protobuf" }, { name = "types-psutil" }, @@ -6404,9 +6582,11 @@ dev = [ { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, + { name = "pyrefly", specifier = ">=1.1.1" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, + { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -6422,6 +6602,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, + { name = "ruff", specifier = ">=0.15.12" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -6430,6 +6611,7 @@ dev = [ { name = "types-flask", specifier = ">=1.1.6" }, { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, + { name = "types-openpyxl", specifier = ">=3.1.5.20260518" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, { name = "types-psutil", specifier = ">=7" }, @@ -6444,6 +6626,8 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "vulture", specifier = ">=2.16" }, + { name = "yamlfix", specifier = ">=1.19.1" }, { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] @@ -6526,6 +6710,7 @@ dev = [ { name = "types-flask" }, { name = "types-jsonschema" }, { name = "types-ldap3" }, + { name = "types-openpyxl" }, { name = "types-paramiko" }, { name = "types-protobuf" }, { name = "types-psutil" }, @@ -6591,9 +6776,11 @@ dev = [ { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, + { name = "pyrefly", specifier = ">=1.1.1" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, + { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -6609,6 +6796,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, + { name = "ruff", specifier = ">=0.15.12" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -6617,6 +6805,7 @@ dev = [ { name = "types-flask", specifier = ">=1.1.6" }, { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, + { name = "types-openpyxl", specifier = ">=3.1.5.20260518" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, { name = "types-psutil", specifier = ">=7" }, @@ -6631,6 +6820,8 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "vulture", specifier = ">=2.16" }, + { name = "yamlfix", specifier = ">=1.19.1" }, { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] @@ -6715,6 +6906,7 @@ dev = [ { name = "types-flask" }, { name = "types-jsonschema" }, { name = "types-ldap3" }, + { name = "types-openpyxl" }, { name = "types-paramiko" }, { name = "types-protobuf" }, { name = "types-psutil" }, @@ -6782,9 +6974,11 @@ dev = [ { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, + { name = "pyrefly", specifier = ">=1.1.1" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, + { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -6800,6 +6994,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, + { name = "ruff", specifier = ">=0.15.12" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -6808,6 +7003,7 @@ dev = [ { name = "types-flask", specifier = ">=1.1.6" }, { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, + { name = "types-openpyxl", specifier = ">=3.1.5.20260518" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, { name = "types-psutil", specifier = ">=7" }, @@ -6822,6 +7018,8 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "vulture", specifier = ">=2.16" }, + { name = "yamlfix", specifier = ">=1.19.1" }, { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] @@ -6909,6 +7107,7 @@ dev = [ { name = "types-flask" }, { name = "types-jsonschema" }, { name = "types-ldap3" }, + { name = "types-openpyxl" }, { name = "types-paramiko" }, { name = "types-protobuf" }, { name = "types-psutil" }, @@ -6979,9 +7178,11 @@ dev = [ { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, + { name = "pyrefly", specifier = ">=1.1.1" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, + { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -6997,6 +7198,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, + { name = "ruff", specifier = ">=0.15.12" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -7005,6 +7207,7 @@ dev = [ { name = "types-flask", specifier = ">=1.1.6" }, { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, + { name = "types-openpyxl", specifier = ">=3.1.5.20260518" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, { name = "types-psutil", specifier = ">=7" }, @@ -7019,6 +7222,8 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "vulture", specifier = ">=2.16" }, + { name = "yamlfix", specifier = ">=1.19.1" }, { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] @@ -7109,6 +7314,7 @@ dev = [ { name = "types-flask" }, { name = "types-jsonschema" }, { name = "types-ldap3" }, + { name = "types-openpyxl" }, { name = "types-paramiko" }, { name = "types-protobuf" }, { name = "types-psutil" }, @@ -7182,9 +7388,11 @@ dev = [ { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, + { name = "pyrefly", specifier = ">=1.1.1" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, + { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -7200,6 +7408,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, + { name = "ruff", specifier = ">=0.15.12" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -7208,6 +7417,7 @@ dev = [ { name = "types-flask", specifier = ">=1.1.6" }, { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, + { name = "types-openpyxl", specifier = ">=3.1.5.20260518" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, { name = "types-psutil", specifier = ">=7" }, @@ -7222,6 +7432,8 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "vulture", specifier = ">=2.16" }, + { name = "yamlfix", specifier = ">=1.19.1" }, { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] @@ -7309,6 +7521,7 @@ dev = [ { name = "types-flask" }, { name = "types-jsonschema" }, { name = "types-ldap3" }, + { name = "types-openpyxl" }, { name = "types-paramiko" }, { name = "types-protobuf" }, { name = "types-psutil" }, @@ -7379,9 +7592,11 @@ dev = [ { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, + { name = "pyrefly", specifier = ">=1.1.1" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, + { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -7397,6 +7612,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, + { name = "ruff", specifier = ">=0.15.12" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -7405,6 +7621,7 @@ dev = [ { name = "types-flask", specifier = ">=1.1.6" }, { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, + { name = "types-openpyxl", specifier = ">=3.1.5.20260518" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, { name = "types-psutil", specifier = ">=7" }, @@ -7419,6 +7636,8 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "vulture", specifier = ">=2.16" }, + { name = "yamlfix", specifier = ">=1.19.1" }, { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] @@ -7516,6 +7735,7 @@ dev = [ { name = "types-flask" }, { name = "types-jsonschema" }, { name = "types-ldap3" }, + { name = "types-openpyxl" }, { name = "types-paramiko" }, { name = "types-protobuf" }, { name = "types-psutil" }, @@ -7593,12 +7813,15 @@ dev = [ { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, { name = "mypy", specifier = ">=1.20.2" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, + { name = "pyrefly", specifier = ">=1.1.1" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, + { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -7614,6 +7837,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, + { name = "ruff", specifier = ">=0.15.12" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -7622,6 +7846,7 @@ dev = [ { name = "types-flask", specifier = ">=1.1.6" }, { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, + { name = "types-openpyxl", specifier = ">=3.1.5.20260518" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, { name = "types-psutil", specifier = ">=7" }, @@ -7636,6 +7861,8 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "vulture", specifier = ">=2.16" }, + { name = "yamlfix", specifier = ">=1.19.1" }, { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] @@ -7722,6 +7949,7 @@ dev = [ { name = "types-flask" }, { name = "types-jsonschema" }, { name = "types-ldap3" }, + { name = "types-openpyxl" }, { name = "types-paramiko" }, { name = "types-protobuf" }, { name = "types-psutil" }, @@ -7791,9 +8019,11 @@ dev = [ { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, + { name = "pyrefly", specifier = ">=1.1.1" }, { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, + { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -7809,6 +8039,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, + { name = "ruff", specifier = ">=0.15.12" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -7817,6 +8048,7 @@ dev = [ { name = "types-flask", specifier = ">=1.1.6" }, { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, + { name = "types-openpyxl", specifier = ">=3.1.5.20260518" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, { name = "types-psutil", specifier = ">=7" }, @@ -7831,6 +8063,8 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, + { name = "vulture", specifier = ">=2.16" }, + { name = "yamlfix", specifier = ">=1.19.1" }, { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] From fe5bd79ec739acf6efe29d655c675e60c62ec225 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 13:35:26 -0300 Subject: [PATCH 034/165] chore(gitlink): record flext-meltano facade restoration flext-meltano f56162ec restores the m/t/p lazy facades that were broken by self-referential imports, unblocking every downstream connector. --- flext-meltano | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-meltano b/flext-meltano index bf6bb7ef9..f56162ec6 160000 --- a/flext-meltano +++ b/flext-meltano @@ -1 +1 @@ -Subproject commit bf6bb7ef99ff8d3c690d6c1bf51bba4c2d27bf0e +Subproject commit f56162ec669e0f7722ad5c5abd721638a435c2c0 From 06e096e07c9a3468b7a9c9e50df13fa7c000515a Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 13:50:26 -0300 Subject: [PATCH 035/165] chore(gitlinks): record flext-meltano and flext-target-ldap facade convergence --- flext-meltano | 2 +- flext-target-ldap | 2 +- uv.lock | 15 --------------- 3 files changed, 2 insertions(+), 17 deletions(-) diff --git a/flext-meltano b/flext-meltano index 730f41e43..177998335 160000 --- a/flext-meltano +++ b/flext-meltano @@ -1 +1 @@ -Subproject commit 730f41e4393fb17b974fbb4bc0ee953500b4c2b3 +Subproject commit 17799833545b565ebc458af24f3a7431107a81a8 diff --git a/flext-target-ldap b/flext-target-ldap index 8ade67129..859790e46 160000 --- a/flext-target-ldap +++ b/flext-target-ldap @@ -1 +1 @@ -Subproject commit 8ade67129358f8a17b4ae51c925d656f046530a6 +Subproject commit 859790e467efdea4a1ebc12c040348a85dd53b71 diff --git a/uv.lock b/uv.lock index 22dedd882..1b84d0f5f 100644 --- a/uv.lock +++ b/uv.lock @@ -3736,14 +3736,11 @@ dependencies = [ { name = "mkdocs-section-index" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, - { name = "pyrefly" }, { name = "rope" }, - { name = "ruff" }, ] [package.dev-dependencies] dev = [ - { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -3775,12 +3772,10 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, - { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, - { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -3805,7 +3800,6 @@ dev = [ { name = "types-flask" }, { name = "types-jsonschema" }, { name = "types-ldap3" }, - { name = "types-openpyxl" }, { name = "types-paramiko" }, { name = "types-protobuf" }, { name = "types-psutil" }, @@ -3837,14 +3831,11 @@ requires-dist = [ { name = "mkdocs-section-index", specifier = ">=0.3.12" }, { name = "mkdocstrings", specifier = ">=1.0.4" }, { name = "mkdocstrings-python", specifier = ">=2.0.3" }, - { name = "pyrefly", specifier = ">=1.1.1" }, { name = "rope", specifier = ">=1.14.0" }, - { name = "ruff", specifier = ">=0.15.12" }, ] [package.metadata.requires-dev] dev = [ - { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -3876,14 +3867,11 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, - { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -3899,7 +3887,6 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -3908,7 +3895,6 @@ dev = [ { name = "types-flask", specifier = ">=1.1.6" }, { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, - { name = "types-openpyxl", specifier = ">=3.1.5.20260518" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, { name = "types-psutil", specifier = ">=7" }, @@ -3923,7 +3909,6 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, ] From 953b429781e87b96a7734c65b2c2adbc82ae8702 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 13:51:43 -0300 Subject: [PATCH 036/165] chore(gitlink): record flext-target-ldap ruff suppression --- flext-target-ldap | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-target-ldap b/flext-target-ldap index 859790e46..c094409af 160000 --- a/flext-target-ldap +++ b/flext-target-ldap @@ -1 +1 @@ -Subproject commit 859790e467efdea4a1ebc12c040348a85dd53b71 +Subproject commit c094409af114434e819f89cba3cea1f800c96788 From a9c51360fa458100e32ab282d817d90a50570b19 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 13:52:30 -0300 Subject: [PATCH 037/165] chore(gitlink): record flext-target-ldap public facade test migration --- flext-target-ldap | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-target-ldap b/flext-target-ldap index c094409af..dca7911bd 160000 --- a/flext-target-ldap +++ b/flext-target-ldap @@ -1 +1 @@ -Subproject commit c094409af114434e819f89cba3cea1f800c96788 +Subproject commit dca7911bde498568e396f8d08cf8b390ac512bb5 From d6224bc585b525831dae204c3e9d085a6cc2c08c Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 14:27:12 -0300 Subject: [PATCH 038/165] chore(gitlink): record infra transaction repairs and target-ldap facade cutover flext-infra b7c56a2d restores the runtime lint dependencies that CI needs at bootstrap, the declared-member discovery, and the schema/model alignment. flext-target-ldap b48dbe3 completes the public-namespace cutover: m.TargetLdap.* and u.TargetLdap.client() now expose the sinks and client, so tests no longer import private packages (ruff 15 -> 0, 51 tests passing). --- flext-infra | 2 +- flext-target-ldap | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/flext-infra b/flext-infra index 736b4ee7c..b7c56a2d4 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 736b4ee7c94ee0cdd1ef90b4316ec7396053458b +Subproject commit b7c56a2d407b10c7afd2e20f99a9e2f292022776 diff --git a/flext-target-ldap b/flext-target-ldap index dca7911bd..b48dbe302 160000 --- a/flext-target-ldap +++ b/flext-target-ldap @@ -1 +1 @@ -Subproject commit dca7911bde498568e396f8d08cf8b390ac512bb5 +Subproject commit b48dbe30229c0e06c7d1daad20eea41284367e33 From d5b64aeae9dcf928a14b14e10fd2e0b9ad13bf98 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 14:45:03 -0300 Subject: [PATCH 039/165] fix(beads): point the ledger at the declared mro database on the shared server conform derived the Dolt database name from the repository identity and wrote 'flext', but the FLEXT workspace ledger is 'mro' on the machine-wide shared server at 127.0.0.1:3308. .beads/dolt-config.log records the exact regression: 2026-07-28 key=database value=mro 2026-07-30 key=database value=flext Every bd command then failed with 'database flext not found'. The database name is not a function of the repo name (flext -> mro, ai-hub -> ai_hub), so it must be declared. Declare the shared-server connection explicitly, matching the working ai-hub contract. The generator defect that overwrites it, plus the metadata.json cache that shadowed the config, are tracked in mro-o0cc; a repo-local Dolt server on :35577 was running against an empty data dir and has been stopped with its state archived. --- .beads/config.yaml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/.beads/config.yaml b/.beads/config.yaml index 0a37a8315..9a9675eb5 100644 --- a/.beads/config.yaml +++ b/.beads/config.yaml @@ -1,5 +1,14 @@ # Generated by `flext-infra codegen conform`. # Project identity is derived from the typed repository owner. issue-prefix: "mro" + +# Dolt shared-server connection (machine-wide shared server on :3308). +# The `mro` database lives there; a repository-local server is never used. dolt: - database: "flext" + mode: server + shared-server: true + host: 127.0.0.1 + port: 3308 + user: root + database: mro + auto-commit: on From 596aef727fa76b84a311792171e2df96ed3dcca1 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 14:51:59 -0300 Subject: [PATCH 040/165] fix(workspace): migrate topology manifest to schema v3 CI 'make setup' failed at _builtin_setup_topology: the committed config/workspace.yaml was version 2 and carried a 'content_only' key that the gitlinked flext-infra workspace.schema.json (v3, additionalProperties=false) rejects. Aligns the manifest with the schema/model SSOT owner. All 31 members preserved; 'content_only' was empty and is dropped per the v3 contract. Evidence: jsonschema validate HEAD v2 FAIL ('content_only' unexpected) -> local v3 PASS; codegen conform --scope self --mode check exit 0, imported 32 packages, ruff 0->0, pyrefly 0->0. --- config/workspace.yaml | 882 +++++++++++++++++++----------------------- uv.lock | 4 + 2 files changed, 395 insertions(+), 491 deletions(-) diff --git a/config/workspace.yaml b/config/workspace.yaml index 4973b6d08..ecbf728ab 100644 --- a/config/workspace.yaml +++ b/config/workspace.yaml @@ -2,513 +2,413 @@ # handwritten topology SSOT consumed by `flext-infra codegen conform`. # NOTE (multi-agent, mro-wkii.17 / agent: codex): conform never overwrites this # input. Add members or exclusions here, then run `make codegen`. -version: 2 +version: 3 name: flext repository: name: flext distribution: flext provider: flext-sh url: https://github.com/flext-sh/flext.git - branch: 0.12.0-dev path: . role: workspace-root state: active - profile: workspace-root checkout: root codegen: conform package: false editable: false read_only: false project: - package_name: "flext" - class_stem: "Flext" - namespace: "Flext" - constant_name: "flext" - namespace_attribute: "flext" - alias: "flext" - environment_prefix: "FLEXT_" - description: "FLEXT - Enterprise Data Integration Platform - Workspace Manager" - version: "0.12.0rc0" - license: "MIT" - author_name: "FLEXT Team" - author_email: "team@flext.sh" - upstream: "flext_core" - homepage: "https://github.com/flext-sh/flext" - documentation: "https://docs.flext.sh" - workspace_root_rel: "." + package_name: flext + class_stem: Flext + namespace: Flext + constant_name: flext + namespace_attribute: flext + alias: flext + environment_prefix: FLEXT_ + description: FLEXT - Enterprise Data Integration Platform - Workspace Manager + version: 0.12.0rc0 + license: MIT + author_name: FLEXT Team + author_email: team@flext.sh + upstream: flext_core + homepage: https://github.com/flext-sh/flext + documentation: https://docs.flext.sh + workspace_root_rel: . year: 2026 # NOTE (multi-agent, mro-wkii.17 / agent: codex): the typed manifest context is # the sole topology owner; every declared member/exclusion round-trips here. members: - - - name: "flext-api" - distribution: "flext-api" - provider: "flext-sh" - url: "https://github.com/flext-sh/flext-api.git" - branch: "0.12.0-dev" - path: "flext-api" - role: "workspace-member" - state: "active" - profile: "workspace-member" - checkout: submodule - codegen: conform - package: true - editable: true - read_only: false - - - name: "flext-auth" - distribution: "flext-auth" - provider: "flext-sh" - url: "https://github.com/flext-sh/flext-auth.git" - branch: "0.12.0-dev" - path: "flext-auth" - role: "workspace-member" - state: "active" - profile: "workspace-member" - checkout: submodule - codegen: conform - package: true - editable: true - read_only: false - - - name: "flext-cli" - distribution: "flext-cli" - provider: "flext-sh" - url: "https://github.com/flext-sh/flext-cli.git" - branch: "0.12.0-dev" - path: "flext-cli" - role: "workspace-member" - state: "active" - profile: "workspace-member" - checkout: submodule - codegen: conform - package: true - editable: true - read_only: false - - - name: "flext-core" - distribution: "flext-core" - provider: "flext-sh" - url: "https://github.com/flext-sh/flext-core.git" - branch: "0.12.0-dev" - path: "flext-core" - role: "workspace-member" - state: "active" - profile: "workspace-member" - checkout: submodule - codegen: conform - package: true - editable: true - read_only: false - - - name: "flext-db-oracle" - distribution: "flext-db-oracle" - provider: "flext-sh" - url: "https://github.com/flext-sh/flext-db-oracle.git" - branch: "0.12.0-dev" - path: "flext-db-oracle" - role: "workspace-member" - state: "active" - profile: "workspace-member" - checkout: submodule - codegen: conform - package: true - editable: true - read_only: false - - - name: "flext-dbt-ldap" - distribution: "flext-dbt-ldap" - provider: "flext-sh" - url: "https://github.com/flext-sh/flext-dbt-ldap.git" - branch: "0.12.0-dev" - path: "flext-dbt-ldap" - role: "workspace-member" - state: "active" - profile: "workspace-member" - checkout: submodule - codegen: conform - package: true - editable: true - read_only: false - - - name: "flext-dbt-ldif" - distribution: "flext-dbt-ldif" - provider: "flext-sh" - url: "https://github.com/flext-sh/flext-dbt-ldif.git" - branch: "0.12.0-dev" - path: "flext-dbt-ldif" - role: "workspace-member" - state: "active" - profile: "workspace-member" - checkout: submodule - codegen: conform - package: true - editable: true - read_only: false - - - name: "flext-dbt-oracle" - distribution: "flext-dbt-oracle" - provider: "flext-sh" - url: "https://github.com/flext-sh/flext-dbt-oracle.git" - branch: "0.12.0-dev" - path: "flext-dbt-oracle" - role: "workspace-member" - state: "active" - profile: "workspace-member" - checkout: submodule - codegen: conform - package: true - editable: true - read_only: false - - - name: "flext-dbt-oracle-wms" - distribution: "flext-dbt-oracle-wms" - provider: "flext-sh" - url: "https://github.com/flext-sh/flext-dbt-oracle-wms.git" - branch: "0.12.0-dev" - path: "flext-dbt-oracle-wms" - role: "workspace-member" - state: "active" - profile: "workspace-member" - checkout: submodule - codegen: conform - package: true - editable: true - read_only: false - - - name: "flext-grpc" - distribution: "flext-grpc" - provider: "flext-sh" - url: "https://github.com/flext-sh/flext-grpc.git" - branch: "0.12.0-dev" - path: "flext-grpc" - role: "workspace-member" - state: "active" - profile: "workspace-member" - checkout: submodule - codegen: conform - package: true - editable: true - read_only: false - - - name: "flext-infra" - distribution: "flext-infra" - provider: "flext-sh" - url: "https://github.com/flext-sh/flext-infra.git" - branch: "0.12.0-dev" - path: "flext-infra" - role: "workspace-member" - state: "active" - profile: "workspace-member" - checkout: submodule - codegen: conform - package: true - editable: true - read_only: false - - - name: "flext-ldap" - distribution: "flext-ldap" - provider: "flext-sh" - url: "https://github.com/flext-sh/flext-ldap.git" - branch: "0.12.0-dev" - path: "flext-ldap" - role: "workspace-member" - state: "active" - profile: "workspace-member" - checkout: submodule - codegen: conform - package: true - editable: true - read_only: false - - - name: "flext-ldif" - distribution: "flext-ldif" - provider: "flext-sh" - url: "https://github.com/flext-sh/flext-ldif.git" - branch: "0.12.0-dev" - path: "flext-ldif" - role: "workspace-member" - state: "active" - profile: "workspace-member" - checkout: submodule - codegen: conform - package: true - editable: true - read_only: false - - - name: "flext-meltano" - distribution: "flext-meltano" - provider: "flext-sh" - url: "https://github.com/flext-sh/flext-meltano.git" - branch: "0.12.0-dev" - path: "flext-meltano" - role: "workspace-member" - state: "active" - profile: "workspace-member" - checkout: submodule - codegen: conform - package: true - editable: true - read_only: false - - - name: "flext-observability" - distribution: "flext-observability" - provider: "flext-sh" - url: "https://github.com/flext-sh/flext-observability.git" - branch: "0.12.0-dev" - path: "flext-observability" - role: "workspace-member" - state: "active" - profile: "workspace-member" - checkout: submodule - codegen: conform - package: true - editable: true - read_only: false - - - name: "flext-oracle-oic" - distribution: "flext-oracle-oic" - provider: "flext-sh" - url: "https://github.com/flext-sh/flext-oracle-oic.git" - branch: "0.12.0-dev" - path: "flext-oracle-oic" - role: "workspace-member" - state: "active" - profile: "workspace-member" - checkout: submodule - codegen: conform - package: true - editable: true - read_only: false - - - name: "flext-oracle-wms" - distribution: "flext-oracle-wms" - provider: "flext-sh" - url: "https://github.com/flext-sh/flext-oracle-wms.git" - branch: "0.12.0-dev" - path: "flext-oracle-wms" - role: "workspace-member" - state: "active" - profile: "workspace-member" - checkout: submodule - codegen: conform - package: true - editable: true - read_only: false - - - name: "flext-plugin" - distribution: "flext-plugin" - provider: "flext-sh" - url: "https://github.com/flext-sh/flext-plugin.git" - branch: "0.12.0-dev" - path: "flext-plugin" - role: "workspace-member" - state: "active" - profile: "workspace-member" - checkout: submodule - codegen: conform - package: true - editable: true - read_only: false - - - name: "flext-quality" - distribution: "flext-quality" - provider: "flext-sh" - url: "https://github.com/flext-sh/flext-quality.git" - branch: "0.12.0-dev" - path: "flext-quality" - role: "workspace-member" - state: "active" - profile: "workspace-member" - checkout: submodule - codegen: conform - package: true - editable: true - read_only: false - - - name: "flext-tap-ldap" - distribution: "flext-tap-ldap" - provider: "flext-sh" - url: "https://github.com/flext-sh/flext-tap-ldap.git" - branch: "0.12.0-dev" - path: "flext-tap-ldap" - role: "workspace-member" - state: "active" - profile: "workspace-member" - checkout: submodule - codegen: conform - package: true - editable: true - read_only: false - - - name: "flext-tap-ldif" - distribution: "flext-tap-ldif" - provider: "flext-sh" - url: "https://github.com/flext-sh/flext-tap-ldif.git" - branch: "0.12.0-dev" - path: "flext-tap-ldif" - role: "workspace-member" - state: "active" - profile: "workspace-member" - checkout: submodule - codegen: conform - package: true - editable: true - read_only: false - - - name: "flext-tap-oracle" - distribution: "flext-tap-oracle" - provider: "flext-sh" - url: "https://github.com/flext-sh/flext-tap-oracle.git" - branch: "0.12.0-dev" - path: "flext-tap-oracle" - role: "workspace-member" - state: "active" - profile: "workspace-member" - checkout: submodule - codegen: conform - package: true - editable: true - read_only: false - - - name: "flext-tap-oracle-oic" - distribution: "flext-tap-oracle-oic" - provider: "flext-sh" - url: "https://github.com/flext-sh/flext-tap-oracle-oic.git" - branch: "0.12.0-dev" - path: "flext-tap-oracle-oic" - role: "workspace-member" - state: "active" - profile: "workspace-member" - checkout: submodule - codegen: conform - package: true - editable: true - read_only: false - - - name: "flext-tap-oracle-wms" - distribution: "flext-tap-oracle-wms" - provider: "flext-sh" - url: "https://github.com/flext-sh/flext-tap-oracle-wms.git" - branch: "0.12.0-dev" - path: "flext-tap-oracle-wms" - role: "workspace-member" - state: "active" - profile: "workspace-member" - checkout: submodule - codegen: conform - package: true - editable: true - read_only: false - - - name: "flext-target-ldap" - distribution: "flext-target-ldap" - provider: "flext-sh" - url: "https://github.com/flext-sh/flext-target-ldap.git" - branch: "0.12.0-dev" - path: "flext-target-ldap" - role: "workspace-member" - state: "active" - profile: "workspace-member" - checkout: submodule - codegen: conform - package: true - editable: true - read_only: false - - - name: "flext-target-ldif" - distribution: "flext-target-ldif" - provider: "flext-sh" - url: "https://github.com/flext-sh/flext-target-ldif.git" - branch: "0.12.0-dev" - path: "flext-target-ldif" - role: "workspace-member" - state: "active" - profile: "workspace-member" - checkout: submodule - codegen: conform - package: true - editable: true - read_only: false - - - name: "flext-target-oracle" - distribution: "flext-target-oracle" - provider: "flext-sh" - url: "https://github.com/flext-sh/flext-target-oracle.git" - branch: "0.12.0-dev" - path: "flext-target-oracle" - role: "workspace-member" - state: "active" - profile: "workspace-member" - checkout: submodule - codegen: conform - package: true - editable: true - read_only: false - - - name: "flext-target-oracle-oic" - distribution: "flext-target-oracle-oic" - provider: "flext-sh" - url: "https://github.com/flext-sh/flext-target-oracle-oic.git" - branch: "0.12.0-dev" - path: "flext-target-oracle-oic" - role: "workspace-member" - state: "active" - profile: "workspace-member" - checkout: submodule - codegen: conform - package: true - editable: true - read_only: false - - - name: "flext-target-oracle-wms" - distribution: "flext-target-oracle-wms" - provider: "flext-sh" - url: "https://github.com/flext-sh/flext-target-oracle-wms.git" - branch: "0.12.0-dev" - path: "flext-target-oracle-wms" - role: "workspace-member" - state: "active" - profile: "workspace-member" - checkout: submodule - codegen: conform - package: true - editable: true - read_only: false - - - name: "flext-tests" - distribution: "flext-tests" - provider: "flext-sh" - url: "https://github.com/flext-sh/flext-tests.git" - branch: "0.12.0-dev" - path: "flext-tests" - role: "workspace-member" - state: "active" - profile: "workspace-member" - checkout: submodule - codegen: conform - package: true - editable: true - read_only: false - - - name: "flext-web" - distribution: "flext-web" - provider: "flext-sh" - url: "https://github.com/flext-sh/flext-web.git" - branch: "0.12.0-dev" - path: "flext-web" - role: "workspace-member" - state: "active" - profile: "workspace-member" - checkout: submodule - codegen: conform - package: true - editable: true - read_only: false - -content_only: - - [] -exclusions: - - [] +- name: flext-api + distribution: flext-api + provider: flext-sh + url: https://github.com/flext-sh/flext-api.git + path: flext-api + role: workspace-member + state: active + checkout: submodule + codegen: conform + package: true + editable: true + read_only: false +- name: flext-auth + distribution: flext-auth + provider: flext-sh + url: https://github.com/flext-sh/flext-auth.git + path: flext-auth + role: workspace-member + state: active + checkout: submodule + codegen: conform + package: true + editable: true + read_only: false +- name: flext-cli + distribution: flext-cli + provider: flext-sh + url: https://github.com/flext-sh/flext-cli.git + path: flext-cli + role: workspace-member + state: active + checkout: submodule + codegen: conform + package: true + editable: true + read_only: false +- name: flext-core + distribution: flext-core + provider: flext-sh + url: https://github.com/flext-sh/flext-core.git + path: flext-core + role: workspace-member + state: active + checkout: submodule + codegen: conform + package: true + editable: true + read_only: false +- name: flext-db-oracle + distribution: flext-db-oracle + provider: flext-sh + url: https://github.com/flext-sh/flext-db-oracle.git + path: flext-db-oracle + role: workspace-member + state: active + checkout: submodule + codegen: conform + package: true + editable: true + read_only: false +- name: flext-dbt-ldap + distribution: flext-dbt-ldap + provider: flext-sh + url: https://github.com/flext-sh/flext-dbt-ldap.git + path: flext-dbt-ldap + role: workspace-member + state: active + checkout: submodule + codegen: conform + package: true + editable: true + read_only: false +- name: flext-dbt-ldif + distribution: flext-dbt-ldif + provider: flext-sh + url: https://github.com/flext-sh/flext-dbt-ldif.git + path: flext-dbt-ldif + role: workspace-member + state: active + checkout: submodule + codegen: conform + package: true + editable: true + read_only: false +- name: flext-dbt-oracle + distribution: flext-dbt-oracle + provider: flext-sh + url: https://github.com/flext-sh/flext-dbt-oracle.git + path: flext-dbt-oracle + role: workspace-member + state: active + checkout: submodule + codegen: conform + package: true + editable: true + read_only: false +- name: flext-dbt-oracle-wms + distribution: flext-dbt-oracle-wms + provider: flext-sh + url: https://github.com/flext-sh/flext-dbt-oracle-wms.git + path: flext-dbt-oracle-wms + role: workspace-member + state: active + checkout: submodule + codegen: conform + package: true + editable: true + read_only: false +- name: flext-grpc + distribution: flext-grpc + provider: flext-sh + url: https://github.com/flext-sh/flext-grpc.git + path: flext-grpc + role: workspace-member + state: active + checkout: submodule + codegen: conform + package: true + editable: true + read_only: false +- name: flext-infra + distribution: flext-infra + provider: flext-sh + url: https://github.com/flext-sh/flext-infra.git + path: flext-infra + role: workspace-member + state: active + checkout: submodule + codegen: conform + package: true + editable: true + read_only: false +- name: flext-ldap + distribution: flext-ldap + provider: flext-sh + url: https://github.com/flext-sh/flext-ldap.git + path: flext-ldap + role: workspace-member + state: active + checkout: submodule + codegen: conform + package: true + editable: true + read_only: false +- name: flext-ldif + distribution: flext-ldif + provider: flext-sh + url: https://github.com/flext-sh/flext-ldif.git + path: flext-ldif + role: workspace-member + state: active + checkout: submodule + codegen: conform + package: true + editable: true + read_only: false +- name: flext-meltano + distribution: flext-meltano + provider: flext-sh + url: https://github.com/flext-sh/flext-meltano.git + path: flext-meltano + role: workspace-member + state: active + checkout: submodule + codegen: conform + package: true + editable: true + read_only: false +- name: flext-observability + distribution: flext-observability + provider: flext-sh + url: https://github.com/flext-sh/flext-observability.git + path: flext-observability + role: workspace-member + state: active + checkout: submodule + codegen: conform + package: true + editable: true + read_only: false +- name: flext-oracle-oic + distribution: flext-oracle-oic + provider: flext-sh + url: https://github.com/flext-sh/flext-oracle-oic.git + path: flext-oracle-oic + role: workspace-member + state: active + checkout: submodule + codegen: conform + package: true + editable: true + read_only: false +- name: flext-oracle-wms + distribution: flext-oracle-wms + provider: flext-sh + url: https://github.com/flext-sh/flext-oracle-wms.git + path: flext-oracle-wms + role: workspace-member + state: active + checkout: submodule + codegen: conform + package: true + editable: true + read_only: false +- name: flext-plugin + distribution: flext-plugin + provider: flext-sh + url: https://github.com/flext-sh/flext-plugin.git + path: flext-plugin + role: workspace-member + state: active + checkout: submodule + codegen: conform + package: true + editable: true + read_only: false +- name: flext-quality + distribution: flext-quality + provider: flext-sh + url: https://github.com/flext-sh/flext-quality.git + path: flext-quality + role: workspace-member + state: active + checkout: submodule + codegen: conform + package: true + editable: true + read_only: false +- name: flext-tap-ldap + distribution: flext-tap-ldap + provider: flext-sh + url: https://github.com/flext-sh/flext-tap-ldap.git + path: flext-tap-ldap + role: workspace-member + state: active + checkout: submodule + codegen: conform + package: true + editable: true + read_only: false +- name: flext-tap-ldif + distribution: flext-tap-ldif + provider: flext-sh + url: https://github.com/flext-sh/flext-tap-ldif.git + path: flext-tap-ldif + role: workspace-member + state: active + checkout: submodule + codegen: conform + package: true + editable: true + read_only: false +- name: flext-tap-oracle + distribution: flext-tap-oracle + provider: flext-sh + url: https://github.com/flext-sh/flext-tap-oracle.git + path: flext-tap-oracle + role: workspace-member + state: active + checkout: submodule + codegen: conform + package: true + editable: true + read_only: false +- name: flext-tap-oracle-oic + distribution: flext-tap-oracle-oic + provider: flext-sh + url: https://github.com/flext-sh/flext-tap-oracle-oic.git + path: flext-tap-oracle-oic + role: workspace-member + state: active + checkout: submodule + codegen: conform + package: true + editable: true + read_only: false +- name: flext-tap-oracle-wms + distribution: flext-tap-oracle-wms + provider: flext-sh + url: https://github.com/flext-sh/flext-tap-oracle-wms.git + path: flext-tap-oracle-wms + role: workspace-member + state: active + checkout: submodule + codegen: conform + package: true + editable: true + read_only: false +- name: flext-target-ldap + distribution: flext-target-ldap + provider: flext-sh + url: https://github.com/flext-sh/flext-target-ldap.git + path: flext-target-ldap + role: workspace-member + state: active + checkout: submodule + codegen: conform + package: true + editable: true + read_only: false +- name: flext-target-ldif + distribution: flext-target-ldif + provider: flext-sh + url: https://github.com/flext-sh/flext-target-ldif.git + path: flext-target-ldif + role: workspace-member + state: active + checkout: submodule + codegen: conform + package: true + editable: true + read_only: false +- name: flext-target-oracle + distribution: flext-target-oracle + provider: flext-sh + url: https://github.com/flext-sh/flext-target-oracle.git + path: flext-target-oracle + role: workspace-member + state: active + checkout: submodule + codegen: conform + package: true + editable: true + read_only: false +- name: flext-target-oracle-oic + distribution: flext-target-oracle-oic + provider: flext-sh + url: https://github.com/flext-sh/flext-target-oracle-oic.git + path: flext-target-oracle-oic + role: workspace-member + state: active + checkout: submodule + codegen: conform + package: true + editable: true + read_only: false +- name: flext-target-oracle-wms + distribution: flext-target-oracle-wms + provider: flext-sh + url: https://github.com/flext-sh/flext-target-oracle-wms.git + path: flext-target-oracle-wms + role: workspace-member + state: active + checkout: submodule + codegen: conform + package: true + editable: true + read_only: false +- name: flext-tests + distribution: flext-tests + provider: flext-sh + url: https://github.com/flext-sh/flext-tests.git + path: flext-tests + role: workspace-member + state: active + checkout: submodule + codegen: conform + package: true + editable: true + read_only: false +- name: flext-web + distribution: flext-web + provider: flext-sh + url: https://github.com/flext-sh/flext-web.git + path: flext-web + role: workspace-member + state: active + checkout: submodule + codegen: conform + package: true + editable: true + read_only: false +exclusions: [] +repository_policy_overlays: [] diff --git a/uv.lock b/uv.lock index 1b84d0f5f..5f1dfdc69 100644 --- a/uv.lock +++ b/uv.lock @@ -3736,7 +3736,9 @@ dependencies = [ { name = "mkdocs-section-index" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "pyrefly" }, { name = "rope" }, + { name = "ruff" }, ] [package.dev-dependencies] @@ -3831,7 +3833,9 @@ requires-dist = [ { name = "mkdocs-section-index", specifier = ">=0.3.12" }, { name = "mkdocstrings", specifier = ">=1.0.4" }, { name = "mkdocstrings-python", specifier = ">=2.0.3" }, + { name = "pyrefly", specifier = ">=1.1.1" }, { name = "rope", specifier = ">=1.14.0" }, + { name = "ruff", specifier = ">=0.15.12" }, ] [package.metadata.requires-dev] From 9d6be4cfc5efabfe5f99980887aae68939c4b0f7 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 14:53:41 -0300 Subject: [PATCH 041/165] chore(gitlinks): point managed members to converged 0.12.0-dev tips Advance flext-cli, flext-core, flext-infra, flext-meltano, flext-target-ldap, flext-tests to current origin/0.12.0-dev. Includes flext-infra layout-engine + WORKSPACE_ROOT isolation fix. Refresh uv.lock for member dependency changes. --- flext-cli | 2 +- flext-core | 2 +- flext-infra | 2 +- flext-meltano | 2 +- flext-target-ldap | 2 +- flext-tests | 2 +- uv.lock | 11 ----------- 7 files changed, 6 insertions(+), 17 deletions(-) diff --git a/flext-cli b/flext-cli index b5534d374..cf643dc9f 160000 --- a/flext-cli +++ b/flext-cli @@ -1 +1 @@ -Subproject commit b5534d3749ddd6063a9e89a135f2f7f8deb19156 +Subproject commit cf643dc9f6a1e76473e315590112f1ebd12e16c7 diff --git a/flext-core b/flext-core index 59453ee27..3ec3edc5a 160000 --- a/flext-core +++ b/flext-core @@ -1 +1 @@ -Subproject commit 59453ee2738e26baa55c3e704eaf60ce1fd76bde +Subproject commit 3ec3edc5a367125167220696cf914369a7401b3d diff --git a/flext-infra b/flext-infra index c1b03db2b..dc7d76d52 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit c1b03db2bd6a453e1e63f8761049d11e3ade6178 +Subproject commit dc7d76d5269db016aa1f2a981e011d5d44668501 diff --git a/flext-meltano b/flext-meltano index bf6bb7ef9..177998335 160000 --- a/flext-meltano +++ b/flext-meltano @@ -1 +1 @@ -Subproject commit bf6bb7ef99ff8d3c690d6c1bf51bba4c2d27bf0e +Subproject commit 17799833545b565ebc458af24f3a7431107a81a8 diff --git a/flext-target-ldap b/flext-target-ldap index 8ade67129..b48dbe302 160000 --- a/flext-target-ldap +++ b/flext-target-ldap @@ -1 +1 @@ -Subproject commit 8ade67129358f8a17b4ae51c925d656f046530a6 +Subproject commit b48dbe30229c0e06c7d1daad20eea41284367e33 diff --git a/flext-tests b/flext-tests index d66e99aa8..a89ca8ce6 160000 --- a/flext-tests +++ b/flext-tests @@ -1 +1 @@ -Subproject commit d66e99aa860f0b63bee7f504512da7d7c48b1283 +Subproject commit a89ca8ce610b72f10957e9c28df88759c3e8d310 diff --git a/uv.lock b/uv.lock index 22dedd882..5f1dfdc69 100644 --- a/uv.lock +++ b/uv.lock @@ -3743,7 +3743,6 @@ dependencies = [ [package.dev-dependencies] dev = [ - { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -3775,12 +3774,10 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, - { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, - { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -3805,7 +3802,6 @@ dev = [ { name = "types-flask" }, { name = "types-jsonschema" }, { name = "types-ldap3" }, - { name = "types-openpyxl" }, { name = "types-paramiko" }, { name = "types-protobuf" }, { name = "types-psutil" }, @@ -3844,7 +3840,6 @@ requires-dist = [ [package.metadata.requires-dev] dev = [ - { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -3876,14 +3871,11 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, - { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -3899,7 +3891,6 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -3908,7 +3899,6 @@ dev = [ { name = "types-flask", specifier = ">=1.1.6" }, { name = "types-jsonschema", specifier = ">=4.26" }, { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, - { name = "types-openpyxl", specifier = ">=3.1.5.20260518" }, { name = "types-paramiko", specifier = ">=4.0" }, { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, { name = "types-psutil", specifier = ">=7" }, @@ -3923,7 +3913,6 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, ] From e51bfc8c1062b9635eabe255d5a89f8fc3f3d896 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 14:54:09 -0300 Subject: [PATCH 042/165] chore(workspace): migrate config/workspace.yaml to schema v3 Drop obsolete 'branch' and 'profile' fields and bump version to 3 to match the flext-infra workspace.schema.json consumed by make setup. --- config/workspace.yaml | 69 +------------------------------------------ 1 file changed, 1 insertion(+), 68 deletions(-) diff --git a/config/workspace.yaml b/config/workspace.yaml index 4973b6d08..32d022fbe 100644 --- a/config/workspace.yaml +++ b/config/workspace.yaml @@ -2,18 +2,16 @@ # handwritten topology SSOT consumed by `flext-infra codegen conform`. # NOTE (multi-agent, mro-wkii.17 / agent: codex): conform never overwrites this # input. Add members or exclusions here, then run `make codegen`. -version: 2 +version: 3 name: flext repository: name: flext distribution: flext provider: flext-sh url: https://github.com/flext-sh/flext.git - branch: 0.12.0-dev path: . role: workspace-root state: active - profile: workspace-root checkout: root codegen: conform package: false @@ -45,11 +43,9 @@ members: distribution: "flext-api" provider: "flext-sh" url: "https://github.com/flext-sh/flext-api.git" - branch: "0.12.0-dev" path: "flext-api" role: "workspace-member" state: "active" - profile: "workspace-member" checkout: submodule codegen: conform package: true @@ -60,11 +56,9 @@ members: distribution: "flext-auth" provider: "flext-sh" url: "https://github.com/flext-sh/flext-auth.git" - branch: "0.12.0-dev" path: "flext-auth" role: "workspace-member" state: "active" - profile: "workspace-member" checkout: submodule codegen: conform package: true @@ -75,11 +69,9 @@ members: distribution: "flext-cli" provider: "flext-sh" url: "https://github.com/flext-sh/flext-cli.git" - branch: "0.12.0-dev" path: "flext-cli" role: "workspace-member" state: "active" - profile: "workspace-member" checkout: submodule codegen: conform package: true @@ -90,11 +82,9 @@ members: distribution: "flext-core" provider: "flext-sh" url: "https://github.com/flext-sh/flext-core.git" - branch: "0.12.0-dev" path: "flext-core" role: "workspace-member" state: "active" - profile: "workspace-member" checkout: submodule codegen: conform package: true @@ -105,11 +95,9 @@ members: distribution: "flext-db-oracle" provider: "flext-sh" url: "https://github.com/flext-sh/flext-db-oracle.git" - branch: "0.12.0-dev" path: "flext-db-oracle" role: "workspace-member" state: "active" - profile: "workspace-member" checkout: submodule codegen: conform package: true @@ -120,11 +108,9 @@ members: distribution: "flext-dbt-ldap" provider: "flext-sh" url: "https://github.com/flext-sh/flext-dbt-ldap.git" - branch: "0.12.0-dev" path: "flext-dbt-ldap" role: "workspace-member" state: "active" - profile: "workspace-member" checkout: submodule codegen: conform package: true @@ -135,11 +121,9 @@ members: distribution: "flext-dbt-ldif" provider: "flext-sh" url: "https://github.com/flext-sh/flext-dbt-ldif.git" - branch: "0.12.0-dev" path: "flext-dbt-ldif" role: "workspace-member" state: "active" - profile: "workspace-member" checkout: submodule codegen: conform package: true @@ -150,11 +134,9 @@ members: distribution: "flext-dbt-oracle" provider: "flext-sh" url: "https://github.com/flext-sh/flext-dbt-oracle.git" - branch: "0.12.0-dev" path: "flext-dbt-oracle" role: "workspace-member" state: "active" - profile: "workspace-member" checkout: submodule codegen: conform package: true @@ -165,11 +147,9 @@ members: distribution: "flext-dbt-oracle-wms" provider: "flext-sh" url: "https://github.com/flext-sh/flext-dbt-oracle-wms.git" - branch: "0.12.0-dev" path: "flext-dbt-oracle-wms" role: "workspace-member" state: "active" - profile: "workspace-member" checkout: submodule codegen: conform package: true @@ -180,11 +160,9 @@ members: distribution: "flext-grpc" provider: "flext-sh" url: "https://github.com/flext-sh/flext-grpc.git" - branch: "0.12.0-dev" path: "flext-grpc" role: "workspace-member" state: "active" - profile: "workspace-member" checkout: submodule codegen: conform package: true @@ -195,11 +173,9 @@ members: distribution: "flext-infra" provider: "flext-sh" url: "https://github.com/flext-sh/flext-infra.git" - branch: "0.12.0-dev" path: "flext-infra" role: "workspace-member" state: "active" - profile: "workspace-member" checkout: submodule codegen: conform package: true @@ -210,11 +186,9 @@ members: distribution: "flext-ldap" provider: "flext-sh" url: "https://github.com/flext-sh/flext-ldap.git" - branch: "0.12.0-dev" path: "flext-ldap" role: "workspace-member" state: "active" - profile: "workspace-member" checkout: submodule codegen: conform package: true @@ -225,11 +199,9 @@ members: distribution: "flext-ldif" provider: "flext-sh" url: "https://github.com/flext-sh/flext-ldif.git" - branch: "0.12.0-dev" path: "flext-ldif" role: "workspace-member" state: "active" - profile: "workspace-member" checkout: submodule codegen: conform package: true @@ -240,11 +212,9 @@ members: distribution: "flext-meltano" provider: "flext-sh" url: "https://github.com/flext-sh/flext-meltano.git" - branch: "0.12.0-dev" path: "flext-meltano" role: "workspace-member" state: "active" - profile: "workspace-member" checkout: submodule codegen: conform package: true @@ -255,11 +225,9 @@ members: distribution: "flext-observability" provider: "flext-sh" url: "https://github.com/flext-sh/flext-observability.git" - branch: "0.12.0-dev" path: "flext-observability" role: "workspace-member" state: "active" - profile: "workspace-member" checkout: submodule codegen: conform package: true @@ -270,11 +238,9 @@ members: distribution: "flext-oracle-oic" provider: "flext-sh" url: "https://github.com/flext-sh/flext-oracle-oic.git" - branch: "0.12.0-dev" path: "flext-oracle-oic" role: "workspace-member" state: "active" - profile: "workspace-member" checkout: submodule codegen: conform package: true @@ -285,11 +251,9 @@ members: distribution: "flext-oracle-wms" provider: "flext-sh" url: "https://github.com/flext-sh/flext-oracle-wms.git" - branch: "0.12.0-dev" path: "flext-oracle-wms" role: "workspace-member" state: "active" - profile: "workspace-member" checkout: submodule codegen: conform package: true @@ -300,11 +264,9 @@ members: distribution: "flext-plugin" provider: "flext-sh" url: "https://github.com/flext-sh/flext-plugin.git" - branch: "0.12.0-dev" path: "flext-plugin" role: "workspace-member" state: "active" - profile: "workspace-member" checkout: submodule codegen: conform package: true @@ -315,11 +277,9 @@ members: distribution: "flext-quality" provider: "flext-sh" url: "https://github.com/flext-sh/flext-quality.git" - branch: "0.12.0-dev" path: "flext-quality" role: "workspace-member" state: "active" - profile: "workspace-member" checkout: submodule codegen: conform package: true @@ -330,11 +290,9 @@ members: distribution: "flext-tap-ldap" provider: "flext-sh" url: "https://github.com/flext-sh/flext-tap-ldap.git" - branch: "0.12.0-dev" path: "flext-tap-ldap" role: "workspace-member" state: "active" - profile: "workspace-member" checkout: submodule codegen: conform package: true @@ -345,11 +303,9 @@ members: distribution: "flext-tap-ldif" provider: "flext-sh" url: "https://github.com/flext-sh/flext-tap-ldif.git" - branch: "0.12.0-dev" path: "flext-tap-ldif" role: "workspace-member" state: "active" - profile: "workspace-member" checkout: submodule codegen: conform package: true @@ -360,11 +316,9 @@ members: distribution: "flext-tap-oracle" provider: "flext-sh" url: "https://github.com/flext-sh/flext-tap-oracle.git" - branch: "0.12.0-dev" path: "flext-tap-oracle" role: "workspace-member" state: "active" - profile: "workspace-member" checkout: submodule codegen: conform package: true @@ -375,11 +329,9 @@ members: distribution: "flext-tap-oracle-oic" provider: "flext-sh" url: "https://github.com/flext-sh/flext-tap-oracle-oic.git" - branch: "0.12.0-dev" path: "flext-tap-oracle-oic" role: "workspace-member" state: "active" - profile: "workspace-member" checkout: submodule codegen: conform package: true @@ -390,11 +342,9 @@ members: distribution: "flext-tap-oracle-wms" provider: "flext-sh" url: "https://github.com/flext-sh/flext-tap-oracle-wms.git" - branch: "0.12.0-dev" path: "flext-tap-oracle-wms" role: "workspace-member" state: "active" - profile: "workspace-member" checkout: submodule codegen: conform package: true @@ -405,11 +355,9 @@ members: distribution: "flext-target-ldap" provider: "flext-sh" url: "https://github.com/flext-sh/flext-target-ldap.git" - branch: "0.12.0-dev" path: "flext-target-ldap" role: "workspace-member" state: "active" - profile: "workspace-member" checkout: submodule codegen: conform package: true @@ -420,11 +368,9 @@ members: distribution: "flext-target-ldif" provider: "flext-sh" url: "https://github.com/flext-sh/flext-target-ldif.git" - branch: "0.12.0-dev" path: "flext-target-ldif" role: "workspace-member" state: "active" - profile: "workspace-member" checkout: submodule codegen: conform package: true @@ -435,11 +381,9 @@ members: distribution: "flext-target-oracle" provider: "flext-sh" url: "https://github.com/flext-sh/flext-target-oracle.git" - branch: "0.12.0-dev" path: "flext-target-oracle" role: "workspace-member" state: "active" - profile: "workspace-member" checkout: submodule codegen: conform package: true @@ -450,11 +394,9 @@ members: distribution: "flext-target-oracle-oic" provider: "flext-sh" url: "https://github.com/flext-sh/flext-target-oracle-oic.git" - branch: "0.12.0-dev" path: "flext-target-oracle-oic" role: "workspace-member" state: "active" - profile: "workspace-member" checkout: submodule codegen: conform package: true @@ -465,11 +407,9 @@ members: distribution: "flext-target-oracle-wms" provider: "flext-sh" url: "https://github.com/flext-sh/flext-target-oracle-wms.git" - branch: "0.12.0-dev" path: "flext-target-oracle-wms" role: "workspace-member" state: "active" - profile: "workspace-member" checkout: submodule codegen: conform package: true @@ -480,11 +420,9 @@ members: distribution: "flext-tests" provider: "flext-sh" url: "https://github.com/flext-sh/flext-tests.git" - branch: "0.12.0-dev" path: "flext-tests" role: "workspace-member" state: "active" - profile: "workspace-member" checkout: submodule codegen: conform package: true @@ -495,20 +433,15 @@ members: distribution: "flext-web" provider: "flext-sh" url: "https://github.com/flext-sh/flext-web.git" - branch: "0.12.0-dev" path: "flext-web" role: "workspace-member" state: "active" - profile: "workspace-member" checkout: submodule codegen: conform package: true editable: true read_only: false -content_only: - - [] exclusions: [] From 50f2a221b50b429b902870b5a2c5a7f802d7d156 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 15:16:42 -0300 Subject: [PATCH 043/165] hotfix(ci-matrix): checkout submodules recursively in distro/macos/windows jobs Unblocks clean-machine bootstrap on CI until flext-infra codegen can be regenerated; root custom.mk currently blocks full conform apply. Template updated in flext-infra to make this idempotent going forward. --- .github/workflows/ci-matrix.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/ci-matrix.yml b/.github/workflows/ci-matrix.yml index f2aefe35e..0bcdd2762 100644 --- a/.github/workflows/ci-matrix.yml +++ b/.github/workflows/ci-matrix.yml @@ -31,6 +31,8 @@ jobs: distro: [ubuntu, debian, fedora, alpine, arch] steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + submodules: recursive - name: Build ${{ matrix.distro }} image run: >- docker build @@ -46,6 +48,8 @@ jobs: runs-on: macos-latest steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + submodules: recursive - name: Bootstrap run: make setup - name: Verb surface @@ -55,6 +59,8 @@ jobs: runs-on: windows-latest steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + submodules: recursive - name: Bootstrap shell: bash run: make setup From 31d481fde6dbae8460406c064a345813ff746168 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 15:56:51 -0300 Subject: [PATCH 044/165] chore(gitlinks): sync flext-ldif and flext-tests to latest 0.12.0-dev - flext-ldif: pyrefly typing fixes and fixture README notest markers - flext-tests: expose FlextTestsFixturesDSLMixin through Tests namespace --- flext-ldif | 2 +- flext-tests | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/flext-ldif b/flext-ldif index 74ff08093..24e52cc60 160000 --- a/flext-ldif +++ b/flext-ldif @@ -1 +1 @@ -Subproject commit 74ff08093f8d97220c3d1da7f3295753f28d2ca4 +Subproject commit 24e52cc607a5111b40f5086799838855fc18da4c diff --git a/flext-tests b/flext-tests index a89ca8ce6..e2b6bdf64 160000 --- a/flext-tests +++ b/flext-tests @@ -1 +1 @@ -Subproject commit a89ca8ce610b72f10957e9c28df88759c3e8d310 +Subproject commit e2b6bdf64fd0be305f1db850d08dacd8fc6c29e6 From 70df9fb497f4118bd145ee77bd7b7d50e32828b9 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 16:02:14 -0300 Subject: [PATCH 045/165] chore(gitlink): point flext-tests to 0.12.0-dev tip with format fix --- flext-tests | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-tests b/flext-tests index e2b6bdf64..8eb584848 160000 --- a/flext-tests +++ b/flext-tests @@ -1 +1 @@ -Subproject commit e2b6bdf64fd0be305f1db850d08dacd8fc6c29e6 +Subproject commit 8eb5848489387bfbdfa24856cc59516e39bdeaf8 From aab196bf6e137f15faf5f9412b9a90d33b76a218 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 16:19:51 -0300 Subject: [PATCH 046/165] hotfix(ci-matrix): checkout submodules recursively The distro/macos/windows jobs check out the superproject without its submodules, so every generated Make verb that reaches a member fails on an empty directory. Regenerated from the template alongside the flext-infra branch-policy gating. --- .github/workflows/ci-matrix.yml | 6 ++++++ flext-infra | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci-matrix.yml b/.github/workflows/ci-matrix.yml index f2aefe35e..0bcdd2762 100644 --- a/.github/workflows/ci-matrix.yml +++ b/.github/workflows/ci-matrix.yml @@ -31,6 +31,8 @@ jobs: distro: [ubuntu, debian, fedora, alpine, arch] steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + submodules: recursive - name: Build ${{ matrix.distro }} image run: >- docker build @@ -46,6 +48,8 @@ jobs: runs-on: macos-latest steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + submodules: recursive - name: Bootstrap run: make setup - name: Verb surface @@ -55,6 +59,8 @@ jobs: runs-on: windows-latest steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + submodules: recursive - name: Bootstrap shell: bash run: make setup diff --git a/flext-infra b/flext-infra index b7c56a2d4..a1385f3df 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit b7c56a2d407b10c7afd2e20f99a9e2f292022776 +Subproject commit a1385f3dfb54886355e3759c7c97cc7717010c90 From 5ac642c1b8ed049e8207b34c04a07c712547ff3c Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 17:00:30 -0300 Subject: [PATCH 047/165] chore(gitlinks): advance flext-api/infra/meltano to latest 0.12.0-dev tips - flext-api: 1f77b02 pyrefly fixes - flext-infra: 9203eb66 merge origin/0.12.0-dev (governed_branch_patterns) - flext-meltano: e7bc83e1 lint/format fixes - uv.lock: reconcile dev dependency specifiers --- flext-api | 2 +- flext-infra | 2 +- flext-meltano | 2 +- uv.lock | 28 +++++++++++++++++++++++----- 4 files changed, 26 insertions(+), 8 deletions(-) diff --git a/flext-api b/flext-api index 0eb9e024b..1f77b02f0 160000 --- a/flext-api +++ b/flext-api @@ -1 +1 @@ -Subproject commit 0eb9e024b39bd8b39dcffd2961f3fad3564164de +Subproject commit 1f77b02f0bd7555efaceee1eeaa8bb3f2c3093b1 diff --git a/flext-infra b/flext-infra index 1579a196b..9203eb667 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 1579a196b5fd20b149e1275bc7ec05b914ebf25a +Subproject commit 9203eb667091fef18ea223640eb5a21005e3b8e3 diff --git a/flext-meltano b/flext-meltano index 177998335..e7bc83e1b 160000 --- a/flext-meltano +++ b/flext-meltano @@ -1 +1 @@ -Subproject commit 17799833545b565ebc458af24f3a7431107a81a8 +Subproject commit e7bc83e1b0a63bc6d73674edcc066af221dc086e diff --git a/uv.lock b/uv.lock index 5f1dfdc69..5d2641c5d 100644 --- a/uv.lock +++ b/uv.lock @@ -3743,6 +3743,7 @@ dependencies = [ [package.dev-dependencies] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -3774,10 +3775,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -3794,6 +3797,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -3840,6 +3844,7 @@ requires-dist = [ [package.metadata.requires-dev] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -3871,10 +3876,12 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -3891,6 +3898,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -4511,10 +4519,8 @@ dev = [ { name = "psycopg2", specifier = ">=2.9.12" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -4531,7 +4537,6 @@ dev = [ { name = "radon", specifier = ">=6.0.1" }, { name = "redis", specifier = ">=7.4.0" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -4555,9 +4560,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -11313,6 +11316,21 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/cb/9a/8415f2657cbe200f41a4531ccededf135505a92d4a012229121f885b26f9/ruff-0.16.0-py3-none-win_arm64.whl", hash = "sha256:14296fedcd2705c77ab8235439278bbb38f285cf7da5528b00b3e330c3d4872d", size = 11273407, upload-time = "2026-07-23T19:11:28.705Z" }, ] +[[package]] +name = "rumdl" +version = "0.2.46" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/54/3b/194f66a79e1a2d74b2e6f278f958ce3b80135b13c395114dc9fcd2ce6993/rumdl-0.2.46.tar.gz", hash = "sha256:99036f4268f4fad4915ff603618d36ba62aa585374f60b2d55bbfe0f10680bd3", size = 3034309, upload-time = "2026-07-29T21:33:24.575Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/32/7f/01f3e6a9217e6d1a5882f43cfdadaa5832895485276edbf395d69370f1e0/rumdl-0.2.46-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:9954f53219b63f434613b7f66cba98c8b08bfea2ee544b184b1af78348ed94ac", size = 6239220, upload-time = "2026-07-29T21:33:17.048Z" }, + { url = "https://files.pythonhosted.org/packages/f9/b7/57e92263f1fe44737eafa3c02d4b211f837d97a689ef7e9da757ff263192/rumdl-0.2.46-py3-none-macosx_11_0_arm64.whl", hash = "sha256:8f28d90e1ca6bdbbb3b20f66333a6aeb120699d01f41d1685c026b15064aac84", size = 5884922, upload-time = "2026-07-29T21:33:10.465Z" }, + { url = "https://files.pythonhosted.org/packages/84/c7/9e9a9eae876c631a1df63d352841858056ae45381d31daaa70c595c13a1d/rumdl-0.2.46-py3-none-manylinux_2_28_aarch64.whl", hash = "sha256:5580ff36a95030c83e103c652e0e36f565e6ab117599ba45a3fff7d6ad5a2d79", size = 6015338, upload-time = "2026-07-29T21:33:12.974Z" }, + { url = "https://files.pythonhosted.org/packages/f4/82/8a14a86290ce859b9a821bf36a73253ab9301015431dbe90f819a27d932d/rumdl-0.2.46-py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:65f16f4902a3748fffa2948264cd8ef31e258b3ae4cb294b448c8ed5882fe259", size = 6422204, upload-time = "2026-07-29T21:33:20.956Z" }, + { url = "https://files.pythonhosted.org/packages/e1/d7/454efa369dcc2343710a49e50f69b7679fe0378024042045ead20015f55b/rumdl-0.2.46-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:9337b2a16d2a8c7a53f0a26c1d6af9ac6f21713eb2a86e754327ed497ebcf6a4", size = 6014307, upload-time = "2026-07-29T21:33:14.991Z" }, + { url = "https://files.pythonhosted.org/packages/68/7d/a3443db44cd3a2337e82fb656f763eb77682ca3752d82e44a9805dd15d60/rumdl-0.2.46-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:b44fa1c0bb27b59c22714b7ff01894b6127a3ae5827caf2add291846cee37e66", size = 6406369, upload-time = "2026-07-29T21:33:22.795Z" }, + { url = "https://files.pythonhosted.org/packages/2d/5d/5e95e629a2e47f0b2d524f3d9b79488fcb5593a0af539133b1798ed32079/rumdl-0.2.46-py3-none-win_amd64.whl", hash = "sha256:5757fb0211377ab8b87490a77dd9dc9079ee13170017c53ff842acd79fb11857", size = 6339300, upload-time = "2026-07-29T21:33:18.865Z" }, +] + [[package]] name = "ruyaml" version = "0.91.0" From 5a8fd2ae0749d2b2f3bc4a72ec20e59cdac949c2 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 17:05:41 -0300 Subject: [PATCH 048/165] gitlink(flext-infra): point submodule to feature/mro-makp-provenance-markers merge (91911e5a) --- flext-infra | 2 +- uv.lock | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index 1579a196b..91911e5ac 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 1579a196b5fd20b149e1275bc7ec05b914ebf25a +Subproject commit 91911e5acfb20de0c68238c90711d4082641720e diff --git a/uv.lock b/uv.lock index 5f1dfdc69..81cf77ad7 100644 --- a/uv.lock +++ b/uv.lock @@ -3743,6 +3743,7 @@ dependencies = [ [package.dev-dependencies] dev = [ + { name = "actionlint-py" }, { name = "autoflake" }, { name = "bandit" }, { name = "black" }, @@ -3774,10 +3775,12 @@ dev = [ { name = "mkdocs-versioning" }, { name = "mkdocstrings" }, { name = "mkdocstrings-python" }, + { name = "mypy" }, { name = "pip-audit" }, { name = "pre-commit" }, { name = "pylint" }, { name = "pyrefly" }, + { name = "pyright" }, { name = "pytest" }, { name = "pytest-benchmark" }, { name = "pytest-clarity" }, @@ -3794,6 +3797,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -3840,6 +3844,7 @@ requires-dist = [ [package.metadata.requires-dev] dev = [ + { name = "actionlint-py", specifier = ">=1.7.12.24" }, { name = "autoflake", specifier = ">=2.3.1" }, { name = "bandit", specifier = ">=1.8" }, { name = "black", specifier = ">=25.1" }, @@ -3871,10 +3876,12 @@ dev = [ { name = "mkdocs-versioning", specifier = ">=0.2" }, { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, + { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, @@ -3891,6 +3898,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -11313,6 +11321,21 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/cb/9a/8415f2657cbe200f41a4531ccededf135505a92d4a012229121f885b26f9/ruff-0.16.0-py3-none-win_arm64.whl", hash = "sha256:14296fedcd2705c77ab8235439278bbb38f285cf7da5528b00b3e330c3d4872d", size = 11273407, upload-time = "2026-07-23T19:11:28.705Z" }, ] +[[package]] +name = "rumdl" +version = "0.2.46" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/54/3b/194f66a79e1a2d74b2e6f278f958ce3b80135b13c395114dc9fcd2ce6993/rumdl-0.2.46.tar.gz", hash = "sha256:99036f4268f4fad4915ff603618d36ba62aa585374f60b2d55bbfe0f10680bd3", size = 3034309, upload-time = "2026-07-29T21:33:24.575Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/32/7f/01f3e6a9217e6d1a5882f43cfdadaa5832895485276edbf395d69370f1e0/rumdl-0.2.46-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:9954f53219b63f434613b7f66cba98c8b08bfea2ee544b184b1af78348ed94ac", size = 6239220, upload-time = "2026-07-29T21:33:17.048Z" }, + { url = "https://files.pythonhosted.org/packages/f9/b7/57e92263f1fe44737eafa3c02d4b211f837d97a689ef7e9da757ff263192/rumdl-0.2.46-py3-none-macosx_11_0_arm64.whl", hash = "sha256:8f28d90e1ca6bdbbb3b20f66333a6aeb120699d01f41d1685c026b15064aac84", size = 5884922, upload-time = "2026-07-29T21:33:10.465Z" }, + { url = "https://files.pythonhosted.org/packages/84/c7/9e9a9eae876c631a1df63d352841858056ae45381d31daaa70c595c13a1d/rumdl-0.2.46-py3-none-manylinux_2_28_aarch64.whl", hash = "sha256:5580ff36a95030c83e103c652e0e36f565e6ab117599ba45a3fff7d6ad5a2d79", size = 6015338, upload-time = "2026-07-29T21:33:12.974Z" }, + { url = "https://files.pythonhosted.org/packages/f4/82/8a14a86290ce859b9a821bf36a73253ab9301015431dbe90f819a27d932d/rumdl-0.2.46-py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:65f16f4902a3748fffa2948264cd8ef31e258b3ae4cb294b448c8ed5882fe259", size = 6422204, upload-time = "2026-07-29T21:33:20.956Z" }, + { url = "https://files.pythonhosted.org/packages/e1/d7/454efa369dcc2343710a49e50f69b7679fe0378024042045ead20015f55b/rumdl-0.2.46-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:9337b2a16d2a8c7a53f0a26c1d6af9ac6f21713eb2a86e754327ed497ebcf6a4", size = 6014307, upload-time = "2026-07-29T21:33:14.991Z" }, + { url = "https://files.pythonhosted.org/packages/68/7d/a3443db44cd3a2337e82fb656f763eb77682ca3752d82e44a9805dd15d60/rumdl-0.2.46-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:b44fa1c0bb27b59c22714b7ff01894b6127a3ae5827caf2add291846cee37e66", size = 6406369, upload-time = "2026-07-29T21:33:22.795Z" }, + { url = "https://files.pythonhosted.org/packages/2d/5d/5e95e629a2e47f0b2d524f3d9b79488fcb5593a0af539133b1798ed32079/rumdl-0.2.46-py3-none-win_amd64.whl", hash = "sha256:5757fb0211377ab8b87490a77dd9dc9079ee13170017c53ff842acd79fb11857", size = 6339300, upload-time = "2026-07-29T21:33:18.865Z" }, +] + [[package]] name = "ruyaml" version = "0.91.0" From b3dd39fceefb8bba51cacd1324b0f8cb2c7f69bb Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 17:09:40 -0300 Subject: [PATCH 049/165] chore(gitlink): advance flext-meltano to 4b7a1d97 --- flext-meltano | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-meltano b/flext-meltano index e7bc83e1b..4b7a1d973 160000 --- a/flext-meltano +++ b/flext-meltano @@ -1 +1 @@ -Subproject commit e7bc83e1b0a63bc6d73674edcc066af221dc086e +Subproject commit 4b7a1d973a3ae613f01bf1d6812e5d6dc8576912 From 334758e7bc14a0686d6b677c4fe8abfc530dba99 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 17:09:56 -0300 Subject: [PATCH 050/165] gitlink(flext-infra): bump to bef026b1 (regenerated ci-matrix provenance) --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index 91911e5ac..bef026b16 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 91911e5acfb20de0c68238c90711d4082641720e +Subproject commit bef026b16cd40e6f9dc658bc96383d80ecda3512 From ff62d98260c5ed35769af539c9473d4b20d64849 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 17:14:07 -0300 Subject: [PATCH 051/165] gitlink(flext-infra): bump to feature/mro-makp-provenance-markers merge (72fc9e94) --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index bef026b16..72fc9e942 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit bef026b16cd40e6f9dc658bc96383d80ecda3512 +Subproject commit 72fc9e9425ffdab10f31fbaae72cceee9f81300c From 41e4cb611ca71e750c1d9109ea07f48641e72179 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 17:30:47 -0300 Subject: [PATCH 052/165] chore(gitlinks): advance flext-api and flext-oracle-oic gate fixes - flext-api: 87283b8 import-cycle fix + 86 tests green - flext-oracle-oic: 24d9224 pyrefly/test fixes + 153 tests green --- flext-api | 2 +- flext-oracle-oic | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/flext-api b/flext-api index 1f77b02f0..87283b89b 160000 --- a/flext-api +++ b/flext-api @@ -1 +1 @@ -Subproject commit 1f77b02f0bd7555efaceee1eeaa8bb3f2c3093b1 +Subproject commit 87283b89b8c52c5e5ff449529c9134185cbc7a44 diff --git a/flext-oracle-oic b/flext-oracle-oic index 4dcf5ac4f..24d922458 160000 --- a/flext-oracle-oic +++ b/flext-oracle-oic @@ -1 +1 @@ -Subproject commit 4dcf5ac4fbe3154ec0a9f939a6688fdbcc9fce39 +Subproject commit 24d922458efc73ec7ac570cac8a79fef136f725b From a1972b2074be66429144bc6af98fe4c951d8cb49 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 17:37:16 -0300 Subject: [PATCH 053/165] chore(gitlink): advance flext-observability to gate-fix tip --- flext-observability | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-observability b/flext-observability index 793def76a..55946011f 160000 --- a/flext-observability +++ b/flext-observability @@ -1 +1 @@ -Subproject commit 793def76a37c163653394da6499d8a4b426a19e0 +Subproject commit 55946011fe9378fe6f5c99570745a8724fda7dc6 From a5057ea4e4204ba4691c62e0f09967efc4507b81 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 17:44:20 -0300 Subject: [PATCH 054/165] chore(gitlinks): advance auth/api/observability/oic gate fixes - flext-api: 87283b8 - flext-auth: 1f9a801 - flext-observability: 5594601 - flext-oracle-oic: 24d9224 --- flext-auth | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-auth b/flext-auth index 3c451ab51..1f9a80172 160000 --- a/flext-auth +++ b/flext-auth @@ -1 +1 @@ -Subproject commit 3c451ab51c17b6bb55f686cfdca48f017a02e6f9 +Subproject commit 1f9a80172e14932c04732d1da6a119c603ea0c4b From 8c9bda8edfedf6323ba00ef3537e90cea436a504 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 18:55:38 -0300 Subject: [PATCH 055/165] chore(gitlinks): advance flext-grpc, flext-meltano, flext-plugin gate fixes --- flext-grpc | 2 +- flext-meltano | 2 +- flext-plugin | 2 +- uv.lock | 2 ++ 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/flext-grpc b/flext-grpc index 1f36f5581..f4ee8f697 160000 --- a/flext-grpc +++ b/flext-grpc @@ -1 +1 @@ -Subproject commit 1f36f5581ac3a925c41d713e6e9af4a724377d15 +Subproject commit f4ee8f697adc8c9dfc30962669c6f6b671f85845 diff --git a/flext-meltano b/flext-meltano index 4b7a1d973..26f62b8cc 160000 --- a/flext-meltano +++ b/flext-meltano @@ -1 +1 @@ -Subproject commit 4b7a1d973a3ae613f01bf1d6812e5d6dc8576912 +Subproject commit 26f62b8cc5cddb2e13152a026a9a2f614aaf71be diff --git a/flext-plugin b/flext-plugin index 9b60ea4ea..af56c76d1 160000 --- a/flext-plugin +++ b/flext-plugin @@ -1 +1 @@ -Subproject commit 9b60ea4eab1e9534fdd6a1cfe9542db9b0309a17 +Subproject commit af56c76d18547b0e9e770075c438ad82ba6138fd diff --git a/uv.lock b/uv.lock index 5d2641c5d..a02f1af14 100644 --- a/uv.lock +++ b/uv.lock @@ -4421,6 +4421,7 @@ dev = [ { name = "radon" }, { name = "redis" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -4537,6 +4538,7 @@ dev = [ { name = "radon", specifier = ">=6.0.1" }, { name = "redis", specifier = ">=7.4.0" }, { name = "ruff", specifier = ">=0.12.3" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, From 8b4e110a9c624cf97948aa273a45eaa4be04da1e Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 18:56:27 -0300 Subject: [PATCH 056/165] gitlink(flext-infra): adopt gen-verb fusion + schema-v61 beads pin (fe750be7) --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index 72fc9e942..fe750be7e 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 72fc9e9425ffdab10f31fbaae72cceee9f81300c +Subproject commit fe750be7e9baf7533f69fa6ca650f96a6d4c5a91 From 238cf915f1811b7537cf98cb33b3fb5bbe2c7ccf Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 18:58:58 -0300 Subject: [PATCH 057/165] gitlink: fast-forward 7 members to origin/0.12.0-dev tips --- flext-api | 2 +- flext-auth | 2 +- flext-grpc | 2 +- flext-meltano | 2 +- flext-observability | 2 +- flext-oracle-oic | 2 +- flext-plugin | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/flext-api b/flext-api index 0eb9e024b..87283b89b 160000 --- a/flext-api +++ b/flext-api @@ -1 +1 @@ -Subproject commit 0eb9e024b39bd8b39dcffd2961f3fad3564164de +Subproject commit 87283b89b8c52c5e5ff449529c9134185cbc7a44 diff --git a/flext-auth b/flext-auth index 3c451ab51..1f9a80172 160000 --- a/flext-auth +++ b/flext-auth @@ -1 +1 @@ -Subproject commit 3c451ab51c17b6bb55f686cfdca48f017a02e6f9 +Subproject commit 1f9a80172e14932c04732d1da6a119c603ea0c4b diff --git a/flext-grpc b/flext-grpc index 1f36f5581..f4ee8f697 160000 --- a/flext-grpc +++ b/flext-grpc @@ -1 +1 @@ -Subproject commit 1f36f5581ac3a925c41d713e6e9af4a724377d15 +Subproject commit f4ee8f697adc8c9dfc30962669c6f6b671f85845 diff --git a/flext-meltano b/flext-meltano index 177998335..26f62b8cc 160000 --- a/flext-meltano +++ b/flext-meltano @@ -1 +1 @@ -Subproject commit 17799833545b565ebc458af24f3a7431107a81a8 +Subproject commit 26f62b8cc5cddb2e13152a026a9a2f614aaf71be diff --git a/flext-observability b/flext-observability index 793def76a..55946011f 160000 --- a/flext-observability +++ b/flext-observability @@ -1 +1 @@ -Subproject commit 793def76a37c163653394da6499d8a4b426a19e0 +Subproject commit 55946011fe9378fe6f5c99570745a8724fda7dc6 diff --git a/flext-oracle-oic b/flext-oracle-oic index 4dcf5ac4f..24d922458 160000 --- a/flext-oracle-oic +++ b/flext-oracle-oic @@ -1 +1 @@ -Subproject commit 4dcf5ac4fbe3154ec0a9f939a6688fdbcc9fce39 +Subproject commit 24d922458efc73ec7ac570cac8a79fef136f725b diff --git a/flext-plugin b/flext-plugin index 9b60ea4ea..af56c76d1 160000 --- a/flext-plugin +++ b/flext-plugin @@ -1 +1 @@ -Subproject commit 9b60ea4eab1e9534fdd6a1cfe9542db9b0309a17 +Subproject commit af56c76d18547b0e9e770075c438ad82ba6138fd From 7b5aef6f0363bad4ab15b00ea0230d483a9ec98e Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 19:11:20 -0300 Subject: [PATCH 058/165] chore(infra): advance flext-infra gitlink to 3419a5c0 and reconcile uv.lock Adopts the merged 0.12.0-dev changes in flext-infra (gen-verb fusion, schema-v61 beads, regenerated projections) and reconciles the workspace lock file with the updated infra dependency pins. --- flext-infra | 2 +- uv.lock | 7 ++----- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/flext-infra b/flext-infra index fe750be7e..3419a5c0e 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit fe750be7e9baf7533f69fa6ca650f96a6d4c5a91 +Subproject commit 3419a5c0e0b8efc0ad96206f4405dd37ee47b849 diff --git a/uv.lock b/uv.lock index 81cf77ad7..a02f1af14 100644 --- a/uv.lock +++ b/uv.lock @@ -4421,6 +4421,7 @@ dev = [ { name = "radon" }, { name = "redis" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -4519,10 +4520,8 @@ dev = [ { name = "psycopg2", specifier = ">=2.9.12" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -4539,7 +4538,7 @@ dev = [ { name = "radon", specifier = ">=6.0.1" }, { name = "redis", specifier = ">=7.4.0" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -4563,9 +4562,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] From d94b1732c70bafa3ea6467e275e29908d2aebb7f Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 19:17:00 -0300 Subject: [PATCH 059/165] chore(gitlink): advance flext-meltano namespace fixes --- flext-meltano | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-meltano b/flext-meltano index 26f62b8cc..089388afa 160000 --- a/flext-meltano +++ b/flext-meltano @@ -1 +1 @@ -Subproject commit 26f62b8cc5cddb2e13152a026a9a2f614aaf71be +Subproject commit 089388afade13edaca542a3360ab8c8f27d61641 From 22b49a9eea4ab35c8692f44eaa204e709170adfc Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 19:23:52 -0300 Subject: [PATCH 060/165] gitlink(flext-infra): merge origin/0.12.0-dev with committed-tracker beads prefix (4f7669d3) --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index 3419a5c0e..4f7669d34 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 3419a5c0e0b8efc0ad96206f4405dd37ee47b849 +Subproject commit 4f7669d340bdf88784d657018a3eec55c71164c9 From bca4bdb6e5eb4043a64719b9a0d58bcb2eff091e Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 19:24:26 -0300 Subject: [PATCH 061/165] gitlink(flext-infra): test fixtures aligned to schema v3 (3fefa113) --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index 4f7669d34..3fefa1135 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 4f7669d340bdf88784d657018a3eec55c71164c9 +Subproject commit 3fefa1135daa61b7a251b9f8531b395bc01fb0d8 From 821aec88cfe84ff1dca7302b7bd21382affd221e Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 19:29:16 -0300 Subject: [PATCH 062/165] gitlink(flext-infra): ruff-clean test fixtures (c301c73c) --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index 3fefa1135..c301c73ca 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 3fefa1135daa61b7a251b9f8531b395bc01fb0d8 +Subproject commit c301c73ca889c7d6e0d2247e776968a44bbb240b From 50182690984247fbbea8eca37e2afc7f77c60fff Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 19:44:59 -0300 Subject: [PATCH 063/165] gitlink(flext-infra): gitmodules fixed-point template fix (38ea3787) --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index c301c73ca..38ea3787c 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit c301c73ca889c7d6e0d2247e776968a44bbb240b +Subproject commit 38ea3787c88c6c0bedd847929a8279f08e67c69e From 7d1cb31e868b6c2be7df941c3ef0c0184f54eab4 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 19:56:42 -0300 Subject: [PATCH 064/165] chore(codegen): adopt gen-verb fused root projections (make gen, sectioned mise, v61 beads pin) Root make setup's conform apply regenerated every managed root surface from the fused SSOT: Makefile speaks 'make gen' (codegen verb removed), .mise.toml pins go:github.com/steveyegge/beads/cmd/bd@423afdcb (schema v61) with sectioned provenance headers, .gitmodules reaches its merge fixed point, and CI/docker projections follow the regenerated templates. (mro-e9j0.6 C7) --- .envrc | 53 ++-- .github/workflows/ci-matrix.yml | 32 ++- .github/workflows/ci.yml | 20 ++ .gitignore | 17 +- .gitmodules | 62 ----- .mise.toml | 14 +- .vscode/settings.json | 9 +- Makefile | 419 ++++++++++++++------------------ ci/docker/alpine.Dockerfile | 26 +- ci/docker/arch.Dockerfile | 26 +- ci/docker/debian.Dockerfile | 26 +- ci/docker/fedora.Dockerfile | 26 +- ci/docker/ubuntu.Dockerfile | 26 +- flext-infra | 2 +- pyproject.toml | 12 +- uv.lock | 7 +- 16 files changed, 402 insertions(+), 375 deletions(-) diff --git a/.envrc b/.envrc index 8b06797ca..06ad2946c 100644 --- a/.envrc +++ b/.envrc @@ -1,18 +1,16 @@ -# @generated by: flext_infra workspace sync -# Canonical direnv activation for FLEXT Python workspaces. +# Generated by `flext-infra codegen conform`. +# Canonical direnv activation for one inferred repository environment. strict_env - -WORKSPACE_ROOT="${PWD}" -AI_HUB="${AI_HUB:-${HOME}/.ai-hub}" -VENV_DIR="${WORKSPACE_ROOT}/.venv" -MISE_SHIMS="${WORKSPACE_MISE_SHIMS:-${MISE_SHIMS:-${HOME}/.local/share/mise/shims}}" -PYPROJECT_FILE="${WORKSPACE_ROOT}/pyproject.toml" - -export AI_HUB -export WORKSPACE_ROOT -export WORKSPACE_MISE_SHIMS="${MISE_SHIMS}" -export MISE_SHIMS +watch_file .mise.toml +watch_file pyproject.toml + +# `DIRENV_DIR` is the canonical directory containing the loaded .envrc. It is +# prefixed by "-" by direnv and remains stable when `direnv exec` starts below +# the repository root. +PROJECT_ROOT="${DIRENV_DIR#-}" +VENV_DIR="${PROJECT_ROOT}/.venv" +export PROJECT_ROOT export PYTHON_KEYRING_BACKEND="keyring.backends.null.Keyring" export PYTHONDONTWRITEBYTECODE=1 export PYTHONUNBUFFERED=1 @@ -21,36 +19,13 @@ if command -v mise >/dev/null 2>&1; then eval "$(mise activate bash --shims)" fi -path_prepend_once() { - case ":${PATH}:" in - *":$1:"*) ;; - *) PATH="$1${PATH:+:${PATH}}" ;; - esac -} - -if [[ -d "${WORKSPACE_ROOT}/bin" ]]; then - path_prepend_once "${WORKSPACE_ROOT}/bin" -fi - -if [[ -d "${AI_HUB}/.venv/bin" ]]; then - path_prepend_once "${AI_HUB}/.venv/bin" -fi - -path_prepend_once "${MISE_SHIMS}" +PATH_add "${PROJECT_ROOT}/bin" -if [[ -f "${PYPROJECT_FILE}" && -d "${VENV_DIR}" ]]; then +if [[ -f "${PROJECT_ROOT}/pyproject.toml" && -d "${VENV_DIR}" ]]; then export UV_PROJECT_ENVIRONMENT="${VENV_DIR}" export VIRTUAL_ENV="${VENV_DIR}" - path_prepend_once "${VENV_DIR}/bin" - PYTHON_VERSION="$(python -c 'import sys; u.Cli.print(f"{sys.version_info.major}.{sys.version_info.minor}")' 2>/dev/null || echo '3.13')" - export PYTHON_VERSION - log_status "workspace activated (python ${PYTHON_VERSION:-?}, venv ${VENV_DIR})" -elif [[ -f "${PYPROJECT_FILE}" ]]; then - log_error ".venv not found - run: uv venv && uv sync" + PATH_add "${VENV_DIR}/bin" else unset UV_PROJECT_ENVIRONMENT unset VIRTUAL_ENV - log_status "workspace activated without Python project (pyproject.toml not found)" fi - -export PATH diff --git a/.github/workflows/ci-matrix.yml b/.github/workflows/ci-matrix.yml index 0bcdd2762..7adc2327c 100644 --- a/.github/workflows/ci-matrix.yml +++ b/.github/workflows/ci-matrix.yml @@ -1,25 +1,40 @@ -# Generated by `flext-infra codegen conform` for flext. +# Generated by `flext_infra codegen conform` for flext. +# === SECTION: header (managed) === +# Source: template (base/.github/workflows/ci-matrix.yml.j2) +# Free: no +# End SECTION: header # Multi-environment CI base: proves the project bootstrap and canonical Make # verbs work identically across distros, macOS, and Windows. The CI invokes # the project's own Make surface; it never reimplements bootstrap. --- name: ci-matrix +# === SECTION: triggers (managed) === +# Source: config:repository_branch on: push: branches: [0.12.0-dev] pull_request: branches: [0.12.0-dev] workflow_dispatch: {} +# End SECTION: triggers +# === SECTION: permissions (managed) === +# Source: template (minimal read-only permissions) permissions: contents: read +# End SECTION: permissions +# === SECTION: concurrency (managed) === +# Source: template (one run per workflow+ref) concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true +# End SECTION: concurrency jobs: + # === SECTION: distro-matrix (managed) === + # Source: template + config:github_actions.checkout (distro list is template literal by design) distro-matrix: # Clean-machine proof per distro: build the distro image (which runs the # full project bootstrap at image-build time), then smoke the verb surface @@ -43,27 +58,42 @@ jobs: run: | docker run --rm ci-matrix-${{ matrix.distro }} make help docker run --rm ci-matrix-${{ matrix.distro }} make check + # End SECTION: distro-matrix + # === SECTION: macos (managed) === + # Source: template + config:github_actions.checkout/mise/setup-uv macos: runs-on: macos-latest steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: submodules: recursive + - name: Install mise toolchain + uses: jdx/mise-action@dba19683ed58901619b14f395a24841710cb4925 # v4.1.0 + - name: Install uv + uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0 - name: Bootstrap run: make setup - name: Verb surface run: make help + # End SECTION: macos + # === SECTION: windows (managed) === + # Source: template + config:github_actions.checkout/mise/setup-uv windows: runs-on: windows-latest steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: submodules: recursive + - name: Install mise toolchain + uses: jdx/mise-action@dba19683ed58901619b14f395a24841710cb4925 # v4.1.0 + - name: Install uv + uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0 - name: Bootstrap shell: bash run: make setup - name: Verb surface shell: bash run: make help + # End SECTION: windows diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3b4d00bb2..e4a8d5ce5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,6 +1,13 @@ # Generated by flext_infra codegen for flext — DO NOT EDIT +# === SECTION: header (managed) === +# Source: template (base/.github/workflows/ci.yml.j2) +# Free: no +# End SECTION: header + name: CI +# === SECTION: triggers (managed) === +# Source: config:repository_branch on: pull_request: branches: @@ -9,11 +16,17 @@ on: branches: - 0.12.0-dev workflow_dispatch: +# End SECTION: triggers +# === SECTION: permissions (managed) === +# Source: template (minimal read-only permissions) permissions: contents: read +# End SECTION: permissions jobs: + # === SECTION: ci job (managed) === + # Source: template + config:github_actions.* ci: name: ci runs-on: ubuntu-latest @@ -25,6 +38,12 @@ jobs: submodules: recursive fetch-depth: 0 + - name: Install mise toolchain + uses: jdx/mise-action@dba19683ed58901619b14f395a24841710cb4925 # v4.1.0 + + - name: Install uv + uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0 + - name: Setup (blocking) run: make setup @@ -33,3 +52,4 @@ jobs: - name: Test (blocking) run: make test + # End SECTION: ci job diff --git a/.gitignore b/.gitignore index 73b5acd3b..f653fd11f 100644 --- a/.gitignore +++ b/.gitignore @@ -298,10 +298,15 @@ secrets.yml .devcontainer/.env .github/*.rej -# --- workspace-migrate: required ignores (auto-managed) --- +# --- codegen conform: tracked owner inputs --- !base.mk -# FINAL LOCAL STATE POLICY +# FINAL BEADS TRACKING POLICY +!.beads/ +.beads/* +.beads/.* +!.beads/config.yaml +.beads/proxieddb/ .dolt/ *.db .beads-credential-key @@ -311,19 +316,20 @@ legado/ # codegen module-standardizer reject artifacts (ADR-005 §9) *.tpl.rej -# --- workspace-sync: required ignores (auto-managed) --- +# --- codegen conform: generated runtime ignores --- .direnv/ .reports/ .venv/ +.bin/ +.tools/ __pycache__/ base.mk !.pre-commit-config.yaml # Derived build and tool artifacts __pyrefly_virtual__/ -.archive/ .benchmarks/ -.bin/ +.bkp/ .cache/ .codegraph/ .dolt_dropped_databases/ @@ -340,7 +346,6 @@ __pyrefly_virtual__/ .sisyphus/ .state/ .superpowers/ -.tools/ .trash/ .turbo/ .venv.*/ diff --git a/.gitmodules b/.gitmodules index 9d4c525ca..ce9feb5c7 100644 --- a/.gitmodules +++ b/.gitmodules @@ -2,215 +2,153 @@ path = flext-api url = https://github.com/flext-sh/flext-api.git branch = 0.12.0-dev - flext-classification = active - flext-managed = true [submodule "flext-auth"] path = flext-auth url = https://github.com/flext-sh/flext-auth.git branch = 0.12.0-dev - flext-classification = active - flext-managed = true [submodule "flext-cli"] path = flext-cli url = https://github.com/flext-sh/flext-cli.git branch = 0.12.0-dev - flext-classification = active - flext-managed = true [submodule "flext-core"] path = flext-core url = https://github.com/flext-sh/flext-core.git branch = 0.12.0-dev - flext-classification = active - flext-managed = true [submodule "flext-db-oracle"] path = flext-db-oracle url = https://github.com/flext-sh/flext-db-oracle.git branch = 0.12.0-dev - flext-classification = active - flext-managed = true [submodule "flext-dbt-ldap"] path = flext-dbt-ldap url = https://github.com/flext-sh/flext-dbt-ldap.git branch = 0.12.0-dev - flext-classification = active - flext-managed = true [submodule "flext-dbt-ldif"] path = flext-dbt-ldif url = https://github.com/flext-sh/flext-dbt-ldif.git branch = 0.12.0-dev - flext-classification = active - flext-managed = true [submodule "flext-dbt-oracle"] path = flext-dbt-oracle url = https://github.com/flext-sh/flext-dbt-oracle.git branch = 0.12.0-dev - flext-classification = active - flext-managed = true [submodule "flext-dbt-oracle-wms"] path = flext-dbt-oracle-wms url = https://github.com/flext-sh/flext-dbt-oracle-wms.git branch = 0.12.0-dev - flext-classification = active - flext-managed = true [submodule "flext-grpc"] path = flext-grpc url = https://github.com/flext-sh/flext-grpc.git branch = 0.12.0-dev - flext-classification = active - flext-managed = true [submodule "flext-infra"] path = flext-infra url = https://github.com/flext-sh/flext-infra.git branch = 0.12.0-dev - flext-classification = active - flext-managed = true [submodule "flext-ldap"] path = flext-ldap url = https://github.com/flext-sh/flext-ldap.git branch = 0.12.0-dev - flext-classification = active - flext-managed = true [submodule "flext-ldif"] path = flext-ldif url = https://github.com/flext-sh/flext-ldif.git branch = 0.12.0-dev - flext-classification = active - flext-managed = true [submodule "flext-meltano"] path = flext-meltano url = https://github.com/flext-sh/flext-meltano.git branch = 0.12.0-dev - flext-classification = active - flext-managed = true [submodule "flext-observability"] path = flext-observability url = https://github.com/flext-sh/flext-observability.git branch = 0.12.0-dev - flext-classification = active - flext-managed = true [submodule "flext-oracle-oic"] path = flext-oracle-oic url = https://github.com/flext-sh/flext-oracle-oic.git branch = 0.12.0-dev - flext-classification = active - flext-managed = true [submodule "flext-oracle-wms"] path = flext-oracle-wms url = https://github.com/flext-sh/flext-oracle-wms.git branch = 0.12.0-dev - flext-classification = active - flext-managed = true [submodule "flext-plugin"] path = flext-plugin url = https://github.com/flext-sh/flext-plugin.git branch = 0.12.0-dev - flext-classification = active - flext-managed = true [submodule "flext-quality"] path = flext-quality url = https://github.com/flext-sh/flext-quality.git branch = 0.12.0-dev - flext-classification = active - flext-managed = true [submodule "flext-tap-ldap"] path = flext-tap-ldap url = https://github.com/flext-sh/flext-tap-ldap.git branch = 0.12.0-dev - flext-classification = active - flext-managed = true [submodule "flext-tap-ldif"] path = flext-tap-ldif url = https://github.com/flext-sh/flext-tap-ldif.git branch = 0.12.0-dev - flext-classification = active - flext-managed = true [submodule "flext-tap-oracle"] path = flext-tap-oracle url = https://github.com/flext-sh/flext-tap-oracle.git branch = 0.12.0-dev - flext-classification = active - flext-managed = true [submodule "flext-tap-oracle-oic"] path = flext-tap-oracle-oic url = https://github.com/flext-sh/flext-tap-oracle-oic.git branch = 0.12.0-dev - flext-classification = active - flext-managed = true [submodule "flext-tap-oracle-wms"] path = flext-tap-oracle-wms url = https://github.com/flext-sh/flext-tap-oracle-wms.git branch = 0.12.0-dev - flext-classification = active - flext-managed = true [submodule "flext-target-ldap"] path = flext-target-ldap url = https://github.com/flext-sh/flext-target-ldap.git branch = 0.12.0-dev - flext-classification = active - flext-managed = true [submodule "flext-target-ldif"] path = flext-target-ldif url = https://github.com/flext-sh/flext-target-ldif.git branch = 0.12.0-dev - flext-classification = active - flext-managed = true [submodule "flext-target-oracle"] path = flext-target-oracle url = https://github.com/flext-sh/flext-target-oracle.git branch = 0.12.0-dev - flext-classification = active - flext-managed = true [submodule "flext-target-oracle-oic"] path = flext-target-oracle-oic url = https://github.com/flext-sh/flext-target-oracle-oic.git branch = 0.12.0-dev - flext-classification = active - flext-managed = true [submodule "flext-target-oracle-wms"] path = flext-target-oracle-wms url = https://github.com/flext-sh/flext-target-oracle-wms.git branch = 0.12.0-dev - flext-classification = active - flext-managed = true [submodule "flext-tests"] path = flext-tests url = https://github.com/flext-sh/flext-tests.git branch = 0.12.0-dev - flext-classification = active - flext-managed = true [submodule "flext-web"] path = flext-web url = https://github.com/flext-sh/flext-web.git branch = 0.12.0-dev - flext-classification = active - flext-managed = true diff --git a/.mise.toml b/.mise.toml index a8d1ee333..4c649e27e 100644 --- a/.mise.toml +++ b/.mise.toml @@ -1,10 +1,17 @@ -# Generated by `flext-infra codegen conform`. +# Generated by `flext_infra codegen conform`. +# === SECTION: header (managed) === +# Source: template (base/.mise.toml.j2) +# Free: no +# End SECTION: header # NOTE: mise carries the Python runtime and native tools from the config SSOT. # Python dependencies and uv are resolved by the caller-provided environment. +# === SECTION: tools (managed) === +# Source: config:python_version, config:codegen.scaffold.project.dev native toolchain floors +# (kubectl_version, helm_version, kind_version, taplo_version, ast_grep_version, +# gitleaks_version, tokei_version, beads.selector, beads.version) [tools] python = "3.13" -uv = "0.11.32" # Native toolchain (single source: Infra.codegen.toolchain in codegen.yaml). kubectl = "1.32.0" helm = "3.19.4" @@ -13,4 +20,5 @@ taplo = "0.10.0" ast-grep = "0.45.0" gitleaks = "8.30.1" tokei = "14.0.0" -"github:gastownhall/beads" = "1.1.2" +"go:github.com/steveyegge/beads/cmd/bd" = "423afdcb2813e36b2bc4c96b07e0fc3516a34495" +# End SECTION: tools diff --git a/.vscode/settings.json b/.vscode/settings.json index e1a1e25d1..2e935802b 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -47,7 +47,8 @@ "**/tmp_flow_test": true, "**/.bin": true, "**/.tools": true, - "**/.archive": true + "**/.archive": true, + "**/.bkp": true }, "files.watcherExclude": { "**/__pycache__/**": true, @@ -94,7 +95,8 @@ "**/tmp_flow_test/**": true, "**/.bin/**": true, "**/.tools/**": true, - "**/.archive/**": true + "**/.archive/**": true, + "**/.bkp/**": true }, "git.autoRepositoryDetection": "subFolders", "git.detectSubmodules": true, @@ -210,7 +212,8 @@ "**/tmp_flow_test": true, "**/.bin": true, "**/.tools": true, - "**/.archive": true + "**/.archive": true, + "**/.bkp": true }, "shellcheck.useWorkspaceRootAsCwd": true, "terminal.integrated.env.linux": { diff --git a/Makefile b/Makefile index 15ffefaa3..6d0f6766f 100644 --- a/Makefile +++ b/Makefile @@ -1,22 +1,36 @@ # @flext-managed: continuous -# @flext-regenerate: make codegen WHAT=apply APPLY=Y +# @flext-regenerate: make gen WHAT=apply APPLY=Y # @flext-ssot: flext-infra/config/codegen.yaml + flext-infra/src/flext_infra/templates/project/base/Makefile.j2 # @flext-maintenance: do not edit generated projections; edit the SSOT and regenerate # flext — generated project interface. # Managed by flext-infra codegen conform for new and existing repositories. +# === SECTION: header (managed) === +# Source: template (base/Makefile.j2) +# Free: no +# End SECTION: header SHELL := /bin/sh .DEFAULT_GOAL := help +# === SECTION: project identity (managed) === +# Source: config:dist / config:make_profile / config:workspace_root_rel / config:uv_link_mode PROJECT_NAME := flext MAKE_PROFILE := workspace-root WORKSPACE_ROOT_REL := . +# === SECTION: workspace members (managed) === +# Source: config:workspace_members (list), config:workspace_repositories (list) +# Computed: MANAGED_GITLINKS mirrors WORKSPACE_MEMBERS for workspace-root gitlink +# governance; standalone projects discover managed submodules at runtime from +# .gitmodules (flext-managed=true). WORKSPACE_MEMBERS := flext-api flext-auth flext-cli flext-core flext-db-oracle flext-dbt-ldap flext-dbt-ldif flext-dbt-oracle flext-dbt-oracle-wms flext-grpc flext-infra flext-ldap flext-ldif flext-meltano flext-observability flext-oracle-oic flext-oracle-wms flext-plugin flext-quality flext-tap-ldap flext-tap-ldif flext-tap-oracle flext-tap-oracle-oic flext-tap-oracle-wms flext-target-ldap flext-target-ldif flext-target-oracle flext-target-oracle-oic flext-target-oracle-wms flext-tests flext-web +MANAGED_GITLINKS :=$(WORKSPACE_MEMBERS) WORKSPACE_EDITABLES := $(PROJECT_NAME):. flext-api:flext-api flext-auth:flext-auth flext-cli:flext-cli flext-core:flext-core flext-db-oracle:flext-db-oracle flext-dbt-ldap:flext-dbt-ldap flext-dbt-ldif:flext-dbt-ldif flext-dbt-oracle:flext-dbt-oracle flext-dbt-oracle-wms:flext-dbt-oracle-wms flext-grpc:flext-grpc flext-infra:flext-infra flext-ldap:flext-ldap flext-ldif:flext-ldif flext-meltano:flext-meltano flext-observability:flext-observability flext-oracle-oic:flext-oracle-oic flext-oracle-wms:flext-oracle-wms flext-plugin:flext-plugin flext-quality:flext-quality flext-tap-ldap:flext-tap-ldap flext-tap-ldif:flext-tap-ldif flext-tap-oracle:flext-tap-oracle flext-tap-oracle-oic:flext-tap-oracle-oic flext-tap-oracle-wms:flext-tap-oracle-wms flext-target-ldap:flext-target-ldap flext-target-ldif:flext-target-ldif flext-target-oracle:flext-target-oracle flext-target-oracle-oic:flext-target-oracle-oic flext-target-oracle-wms:flext-target-oracle-wms flext-tests:flext-tests flext-web:flext-web UV_LINK_MODE := copy -UV_VERSION := 0.11.32 -MISE_VERSION := 2026.7.16 +# End SECTION: project identity +# === SECTION: user overrides (managed) === +# Source: template (canonical public knobs documented by base.mk) +# Free: no — values are caller-supplied each invocation, not preserved in the file. APPLY ?= N ARGS ?= CHECK_GATES ?= @@ -28,32 +42,57 @@ PROJECT ?= PROJECTS ?= BASE ?= BRANCH ?= -# Public selector documented by base.mk. Forwarded to the test recipe so a -# focused run stays inside the canonical Make surface instead of forcing a -# loose pytest invocation. PYTEST_ARGS ?= PYTEST_TARGETS ?= $(PROJECT_ROOT)/tests PYTEST_DIAG_ARGS ?= -rA --durations=0 --tb=long --showlocals PYTEST_REPORT_ARGS ?= -ra --durations=25 --durations-min=0.001 --tb=short PYTEST_REPORTS_DIR ?= .reports/tests WHAT ?= +# End SECTION: user overrides +# === SECTION: derived paths (managed) === +# Source: computed (git rev-parse, pwd, abspath) PROJECT_ROOT := $(shell pwd -P) SELF_MAKEFILE := $(abspath $(firstword $(MAKEFILE_LIST))) MAKEFILE_ROOT := $(patsubst %/,%,$(dir $(SELF_MAKEFILE))) WORKSPACE ?= $(PROJECT_ROOT) -PUBLIC_VERBS := help setup deps build check test fmt run status docs clean release codegen worktree +# === SECTION: WORKSPACE_ROOT isolation (managed) === +# Source: computed (rule: derive from current checkout unless caller overrides) +# Rule: WORKSPACE_ROOT is always derived from the current checkout unless the +# caller passed it on the command line or via an override origin. An inherited +# environment WORKSPACE_ROOT (e.g. a leaked .envrc export from a foreign checkout) +# must never redirect verbs to another working tree. +ifeq ($(filter command line override,$(origin WORKSPACE_ROOT)),) +WORKSPACE_ROOT := $(shell git rev-parse --show-superproject-working-tree 2>/dev/null || git rev-parse --show-toplevel 2>/dev/null || pwd -P) +endif +# End SECTION: WORKSPACE_ROOT isolation + +# === SECTION: verb dispatch (managed) === +# Source: config:make.verbs, config:make.check_gates_allowed, config:make.check_gates_default, +# config:make.docs.actions, config:make.serialization.verbs +PUBLIC_VERBS := help setup deps build check test fmt run status docs clean release gen worktree CHECK_GATES_ALLOWED := lint format pyrefly mypy pyright security markdown smells CHECK_GATES_DEFAULT := lint format pyrefly mypy pyright security markdown smells DOCS_ACTIONS := generate fix audit build validate -SERIALIZED_VERBS := check test codegen -SERIALIZED_TARGETS := _serialized_check _serialized_test _serialized_codegen +SERIALIZED_VERBS := check test gen +SERIALIZED_TARGETS := _serialized_check _serialized_test _serialized_gen +# End SECTION: verb dispatch + +# === SECTION: lint/type paths (managed) === +# Source: template + computed (script_dispatch conditional) RUFF_PATHS := $(PROJECT_ROOT)/src $(PROJECT_ROOT)/tests MYPY_PATHS := $(PROJECT_ROOT)/src $(PROJECT_ROOT)/tests +# End SECTION: lint/type paths + +# === SECTION: infra bootstrap (managed) === +# Source: config:infra_repository.*, config:infra_source_root_rel, template (UV default) +UV ?= uv +UV_REQUESTED := $(UV) CALLER_PATH := $(PATH) CALLER_VIRTUAL_ENV := $(patsubst %/,%,$(VIRTUAL_ENV)) FLEXT_INFRA_BOOTSTRAP_REQUIREMENT := flext-infra @ git+https://github.com/flext-sh/flext-infra.git@0.12.0-dev FLEXT_INFRA_SOURCE_ROOT_REL := flext-infra +# End SECTION: infra bootstrap # === MYPY RESOURCE LIMIT === # mro-0ftd.3.11: every Mypy process inherits validated memory and time caps. @@ -76,42 +115,19 @@ _DEFAULT_status := diagnostics _DEFAULT_docs := all _DEFAULT_clean := generated _DEFAULT_release := status -_DEFAULT_codegen := check +_DEFAULT_gen := check _DEFAULT_worktree := list -ifneq ($(filter $(MAKE_PROFILE),workspace-root workspace-member standalone),$(MAKE_PROFILE)) +ifneq ($(filter $(MAKE_PROFILE),workspace-root standalone),$(MAKE_PROFILE)) $(error Invalid MAKE_PROFILE '$(MAKE_PROFILE)') endif -ifeq ($(MAKE_PROFILE),workspace-member) -DECLARED_WORKSPACE_ROOT := $(shell cd "$(PROJECT_ROOT)/$(WORKSPACE_ROOT_REL)" 2>/dev/null && pwd -P) -SUPERPROJECT_ROOT_RAW := $(shell git rev-parse --show-superproject-working-tree 2>/dev/null) -SUPERPROJECT_ROOT := $(shell test -n "$(SUPERPROJECT_ROOT_RAW)" && cd "$(SUPERPROJECT_ROOT_RAW)" 2>/dev/null && pwd -P) -ifeq ($(SUPERPROJECT_ROOT),$(DECLARED_WORKSPACE_ROOT)) -ATTACHED_MEMBER := Y -RUNTIME_ROOT := $(DECLARED_WORKSPACE_ROOT) -else -ATTACHED_MEMBER := N RUNTIME_ROOT := $(PROJECT_ROOT) -endif -else -ATTACHED_MEMBER := N -RUNTIME_ROOT := $(PROJECT_ROOT) -endif RUNTIME_VENV := $(RUNTIME_ROOT)/.venv -ifeq ($(MAKE_PROFILE),standalone) -TOOLS_BIN := $(PROJECT_ROOT)/.bin -MISE_DATA_DIR := $(PROJECT_ROOT)/.tools -else -TOOLS_BIN := $(RUNTIME_ROOT)/.bin -MISE_DATA_DIR := $(RUNTIME_ROOT)/.tools -endif -MISE_SHIMS := $(MISE_DATA_DIR)/shims FLEXT_INFRA_RUNTIME_ROOT := $(if $(filter $(MAKEFILE_ROOT),$(PROJECT_ROOT)),$(RUNTIME_ROOT),$(MAKEFILE_ROOT)) ifeq ($(OS),Windows_NT) -MISE ?= $(TOOLS_BIN)/mise.exe RUNTIME_BIN := $(RUNTIME_VENV)/Scripts RUNTIME_PYTHON := $(RUNTIME_BIN)/python.exe FLEXT_INFRA_RUNTIME_PYTHON := $(FLEXT_INFRA_RUNTIME_ROOT)/.venv/Scripts/python.exe @@ -119,7 +135,6 @@ NORMALIZED_CALLER_PATH := $(shell cygpath --path "$(CALLER_PATH)" 2>/dev/null) NORMALIZED_CALLER_VIRTUAL_ENV := $(shell cygpath --unix "$(CALLER_VIRTUAL_ENV)" 2>/dev/null) CALLER_VIRTUAL_ENV_BIN := $(NORMALIZED_CALLER_VIRTUAL_ENV)/Scripts else -MISE ?= $(TOOLS_BIN)/mise RUNTIME_BIN := $(RUNTIME_VENV)/bin RUNTIME_PYTHON := $(RUNTIME_BIN)/python FLEXT_INFRA_RUNTIME_PYTHON := $(FLEXT_INFRA_RUNTIME_ROOT)/.venv/bin/python @@ -135,20 +150,24 @@ ifeq ($(SANITIZED_CALLER_PATH),$(CALLER_VIRTUAL_ENV_BIN)) SANITIZED_CALLER_PATH := endif endif -override UV := $(MISE_SHIMS)/uv +RESOLVED_UV := $(shell PATH="$(SANITIZED_CALLER_PATH)" command -v "$(UV_REQUESTED)" 2>/dev/null) +ifeq ($(strip $(RESOLVED_UV)),) +$(error Required uv executable not found: $(UV_REQUESTED)) +endif +override UV := $(RESOLVED_UV) override FLEXT_INFRA_PYTHON := $(FLEXT_INFRA_RUNTIME_PYTHON) override UV_PROJECT := $(RUNTIME_ROOT) override UV_PROJECT_ENVIRONMENT := $(RUNTIME_VENV) override VIRTUAL_ENV := $(RUNTIME_VENV) -override PATH := $(RUNTIME_BIN):$(TOOLS_BIN):$(MISE_SHIMS):$(SANITIZED_CALLER_PATH) -export FLEXT_INFRA_PYTHON MISE_DATA_DIR UV UV_PROJECT UV_PROJECT_ENVIRONMENT VIRTUAL_ENV PATH +override PATH := $(RUNTIME_BIN):$(SANITIZED_CALLER_PATH) +export FLEXT_INFRA_PYTHON UV UV_PROJECT UV_PROJECT_ENVIRONMENT VIRTUAL_ENV PATH ifneq ($(strip $(FLEXT_INFRA_SOURCE_ROOT_REL)),) FLEXT_INFRA_SOURCE_ROOT := $(abspath $(PROJECT_ROOT)/$(FLEXT_INFRA_SOURCE_ROOT_REL)) -FLEXT_INFRA_BOOTSTRAP := env -u PYTHONPATH -u MYPYPATH -u VIRTUAL_ENV -u UV_PROJECT -u UV_PROJECT_ENVIRONMENT PATH="$(TOOLS_BIN):$(MISE_SHIMS):$(SANITIZED_CALLER_PATH)" $(UV) run --no-project --with-editable "$(FLEXT_INFRA_SOURCE_ROOT)" python -m flext_infra +FLEXT_INFRA_BOOTSTRAP := env -u PYTHONPATH -u MYPYPATH -u VIRTUAL_ENV -u UV_PROJECT -u UV_PROJECT_ENVIRONMENT PATH="$(SANITIZED_CALLER_PATH)" $(UV) run --no-project --with-editable "$(FLEXT_INFRA_SOURCE_ROOT)" python -m flext_infra else FLEXT_INFRA_SOURCE_ROOT := -FLEXT_INFRA_BOOTSTRAP := env -u PYTHONPATH -u MYPYPATH -u VIRTUAL_ENV -u UV_PROJECT -u UV_PROJECT_ENVIRONMENT PATH="$(TOOLS_BIN):$(MISE_SHIMS):$(SANITIZED_CALLER_PATH)" $(UV) run --no-project --with "$(FLEXT_INFRA_BOOTSTRAP_REQUIREMENT)" python -m flext_infra +FLEXT_INFRA_BOOTSTRAP := env -u PYTHONPATH -u MYPYPATH -u VIRTUAL_ENV -u UV_PROJECT -u UV_PROJECT_ENVIRONMENT PATH="$(SANITIZED_CALLER_PATH)" $(UV) run --no-project --with "$(FLEXT_INFRA_BOOTSTRAP_REQUIREMENT)" python -m flext_infra endif ifeq ($(MAKE_PROFILE),workspace-root) @@ -178,7 +197,7 @@ ORCHESTRATED_VERBS := build check clean docs scan test val UV_RUN := env -u PYTHONPATH -u MYPYPATH $(UV) run --project "$(RUNTIME_ROOT)" --no-sync PROJECT_INFRA_PYTHONPATH ?= $(MAKEFILE_ROOT)/src -PROJECT_FLEXT_INFRA := test -x "$(FLEXT_INFRA_PYTHON)" || { printf 'ERROR: FLEXT_INFRA_PYTHON must name an executable managed Python\n' >&2; exit 2; }; env -u PYTHONPATH -u MYPYPATH -u VIRTUAL_ENV -u UV_PROJECT -u UV_PROJECT_ENVIRONMENT PATH="$(dir $(FLEXT_INFRA_PYTHON)):$(MISE_SHIMS):$(SANITIZED_CALLER_PATH)" PYTHONPATH="$(PROJECT_INFRA_PYTHONPATH)" $(FLEXT_INFRA_PYTHON) -m flext_infra +PROJECT_FLEXT_INFRA := test -x "$(FLEXT_INFRA_PYTHON)" || { printf 'ERROR: FLEXT_INFRA_PYTHON must name an executable managed Python\n' >&2; exit 2; }; env -u PYTHONPATH -u MYPYPATH -u VIRTUAL_ENV -u UV_PROJECT -u UV_PROJECT_ENVIRONMENT PATH="$(dir $(FLEXT_INFRA_PYTHON)):$(SANITIZED_CALLER_PATH)" PYTHONPATH="$(PROJECT_INFRA_PYTHONPATH)" $(FLEXT_INFRA_PYTHON) -m flext_infra # mro-j47u (codex): scaffold dev tools live in the validated optional dev # profile; a fresh project must create its lock before later check-mode locks. UV_SYNC_FLAGS := --all-packages --all-extras --all-groups @@ -212,8 +231,8 @@ _builtin_docs_build \ _builtin_docs_validate \ _builtin_clean_generated \ _builtin_release_status \ - _builtin_codegen_check \ - _builtin_codegen_apply \ + _builtin_gen_check \ + _builtin_gen_apply \ _builtin_worktree_list \ _builtin_worktree_add \ _builtin_worktree_update \ @@ -283,16 +302,15 @@ _serialized_test: $(call _dispatch,test) -codegen: _builtin_require_environment - @$(PROJECT_FLEXT_INFRA) workspace serialize-make --workspace "$(PROJECT_ROOT)" --makefile "$(SELF_MAKEFILE)" --verb "codegen" +gen: _builtin_require_environment + @$(PROJECT_FLEXT_INFRA) workspace serialize-make --workspace "$(PROJECT_ROOT)" --makefile "$(SELF_MAKEFILE)" --verb "gen" -_serialized_codegen: - $(call _dispatch,codegen) +_serialized_gen: + $(call _dispatch,gen) setup: - @if [ -n "$(strip $(WHAT))" ]; then printf 'ERROR: setup does not accept WHAT\n' >&2; exit 2; fi @$(SELF_MAKE) _builtin_setup_environment _builtin_help_usage: @@ -347,7 +365,7 @@ _builtin_help_usage: - @printf ' %-10s WHAT=%s APPLY=Y\n' 'codegen' 'check'; + @printf ' %-10s WHAT=%s APPLY=Y\n' 'gen' 'check'; @@ -372,186 +390,130 @@ _builtin_help_usage: # reconciler validates every initialized checkout before mutation, initializes # only missing modules, and preserves declared branches that fix forward beyond # the recorded gitlink. -.PHONY: _builtin_setup_tools - -_builtin_setup_tools: - @set -eu; \ - tools_bin="$(TOOLS_BIN)"; \ - mise="$(MISE)"; \ - mise_data_dir="$(MISE_DATA_DIR)"; \ - mise_version="$(MISE_VERSION)"; \ - uv_version="$(UV_VERSION)"; \ - current=""; \ - if [ -x "$$mise" ]; then \ - current=$$("$$mise" --version 2>/dev/null | cut -d ' ' -f 1 || true); \ - fi; \ - if [ "$$current" != "$$mise_version" ]; then \ - command -v curl >/dev/null 2>&1 || { \ - printf 'ERROR: make setup requires curl to bootstrap project binaries\n' >&2; \ - exit 2; \ - }; \ - case "$$(uname -s)" in \ - Linux*) os=linux ;; \ - Darwin*) os=macos ;; \ - MINGW*|MSYS*|CYGWIN*|Windows_NT) os=windows ;; \ - *) printf 'ERROR: unsupported bootstrap OS: %s\n' "$$(uname -s)" >&2; exit 2 ;; \ - esac; \ - case "$$(uname -m)" in \ - x86_64|amd64) arch=x64 ;; \ - aarch64|arm64) arch=arm64 ;; \ - *) printf 'ERROR: unsupported bootstrap architecture: %s\n' "$$(uname -m)" >&2; exit 2 ;; \ - esac; \ - suffix="$$os-$$arch"; extension=""; \ - if [ "$$os" = linux ] && ldd --version 2>&1 | grep -qi musl; then \ - suffix="$$suffix-musl"; \ - fi; \ - if [ "$$os" = windows ]; then extension=.exe; fi; \ - asset="mise-v$$mise_version-$$suffix$$extension"; \ - url="https://github.com/jdx/mise/releases/download/v$$mise_version/$$asset"; \ - mkdir -p "$$tools_bin" "$$mise_data_dir"; \ - tmp="$$mise.download"; \ - if ! curl -fsSL "$$url" -o "$$tmp"; then rm -f "$$tmp"; exit 2; fi; \ - chmod +x "$$tmp"; \ - mv "$$tmp" "$$mise"; \ - current=$$("$$mise" --version | cut -d ' ' -f 1); \ - [ "$$current" = "$$mise_version" ] || { \ - printf 'ERROR: mise bootstrap version mismatch: expected %s, got %s\n' \ - "$$mise_version" "$$current" >&2; \ - exit 2; \ - }; \ - fi; \ - $(MISE) install --yes "uv@$$uv_version" - .PHONY: _builtin_setup_submodules +# === SECTION: submodule setup (managed) === +# Source: template (submodule_setup_recipe.j2) +# Computed: workspace-root uses WORKSPACE_MEMBERS from config; standalone discovers +# submodules with flext-managed=true from .gitmodules at runtime. +# Rule: all managed submodules are synced and initialized recursively before +# branch validation; unmanaged submodules are never touched. Local changes +# on the declared branch are preserved. Nested submodules inside managed +# trees are validated recursively. +# Free: no +# End SECTION: submodule setup _builtin_setup_submodules: @set -eu; \ root="$(PROJECT_ROOT)"; \ - selected=""; \ if [ ! -f "$$root/.gitmodules" ]; then exit 0; fi; \ - setup_selected() { \ - candidate="$$1"; \ - if [ -z "$$selected" ]; then return 0; fi; \ - for project in $$selected; do \ - if [ "$$project" = "." ]; then continue; fi; \ - case "$$project" in \ - "$$candidate"|"$$candidate"/*) return 0 ;; \ - esac; \ + profile="$(MAKE_PROFILE)"; \ + if [ "$$profile" = "workspace-root" ]; then \ + managed="$(WORKSPACE_MEMBERS)"; \ + else \ + managed=""; \ + keys=$$(git -C "$$root" config -f .gitmodules --name-only --get-regexp '^submodule\..*\.flext-managed$$' || :); \ + for key in $$keys; do \ + value=$$(git -C "$$root" config -f .gitmodules --get "$$key"); \ + if [ "$$value" = "true" ]; then \ + section=$${key%.flext-managed}; \ + path=$$(git -C "$$root" config -f .gitmodules --get --default "" "$$section.path"); \ + if [ -n "$$path" ]; then \ + managed="$$managed $$path"; \ + fi; \ + fi; \ done; \ - return 1; \ - }; \ - preflight_managed_submodules() { \ + fi; \ + managed=$$(printf '%s' "$$managed" | tr ' ' '\n' | sort -u | tr '\n' ' '); \ + if [ -z "$$managed" ]; then exit 0; fi; \ + git -C "$$root" submodule sync --recursive --quiet; \ + for child_path in $$managed; do \ + git -C "$$root" submodule update --init --recursive -- "$$child_path"; \ + done; \ + validate_submodule() { \ superproject="$$1"; \ - if [ ! -f "$$superproject/.gitmodules" ]; then return 0; fi; \ - git -C "$$superproject" config -f .gitmodules --get-regexp '^submodule\..*\.path$$' 2>/dev/null | \ - while IFS=' ' read -r path_key child_path; do \ - if [ "$$superproject" = "$$root" ] && ! setup_selected "$$child_path"; then continue; fi; \ - prefix=$${path_key%.path}; \ - managed=$$(git -C "$$superproject" config -f .gitmodules --bool --get --default false "$$prefix.flext-managed"); \ - if [ "$$managed" != true ]; then continue; fi; \ - state=$$(git -C "$$superproject" submodule status -- "$$child_path"); \ - case "$$state" in -*) continue ;; esac; \ - checkout="$$superproject/$$child_path"; \ - displaypath=$${checkout#"$$root"/}; \ - sha1=$$(git -C "$$superproject" rev-parse "HEAD:$$child_path"); \ - branch=$$(git -C "$$superproject" config -f .gitmodules --get --default "" "$$prefix.branch"); \ - current=$$(git -C "$$checkout" branch --show-current); \ - if [ -z "$$branch" ]; then \ - if [ -n "$$current" ]; then \ - printf "ERROR: %s: branch %s is checked out but .gitmodules declares no branch\n" "$$displaypath" "$$current" >&2; \ - exit 1; \ - fi; \ - elif [ "$$branch" = "." ]; then \ - branch=$$(git -C "$$superproject" branch --show-current); \ - if [ -z "$$branch" ]; then \ - printf "ERROR: %s: branch = . requires its superproject on a named branch\n" "$$displaypath" >&2; \ - exit 1; \ + child_path="$$2"; \ + child_root="$$superproject/$$child_path"; \ + keys=$$(git -C "$$superproject" config -f .gitmodules --name-only --get-regexp '^submodule\..*\.path$$' || :); \ + section=""; \ + for key in $$keys; do \ + declared=$$(git -C "$$superproject" config -f .gitmodules --get "$$key"); \ + if [ "$$declared" = "$$child_path" ]; then \ + if [ -n "$$section" ]; then \ + printf 'ERROR: governed gitlink path is duplicated: %s\n' "$$child_path" >&2; \ + exit 2; \ fi; \ + section=$${key%.path}; \ fi; \ - if [ -n "$$branch" ]; then \ - git check-ref-format --branch "$$branch" >/dev/null || { \ - printf "ERROR: %s: invalid declared branch %s\n" "$$displaypath" "$$branch" >&2; \ - exit 1; \ - }; \ - fi; \ - if [ -n "$$current" ] && [ "$$current" != "$$branch" ]; then \ - printf "ERROR: %s: conflicting branch %s; expected %s\n" "$$displaypath" "$$current" "$$branch" >&2; \ - exit 1; \ - fi; \ - if [ -z "$$current" ] && [ "$$(git -C "$$checkout" rev-parse HEAD)" != "$$sha1" ]; then \ - printf "ERROR: %s: detached HEAD diverges from recorded gitlink %s\n" "$$displaypath" "$$(git -C "$$checkout" rev-parse --short "$$sha1")" >&2; \ - exit 1; \ - fi; \ - if [ -n "$$current" ] && ! git -C "$$checkout" merge-base --is-ancestor "$$sha1" HEAD; then \ - printf "ERROR: %s: branch %s diverges from recorded gitlink %s\n" "$$displaypath" "$$branch" "$$(git -C "$$checkout" rev-parse --short "$$sha1")" >&2; \ + done; \ + if [ -z "$$section" ]; then \ + printf 'ERROR: governed gitlink is absent from .gitmodules: %s\n' "$$child_path" >&2; \ + exit 2; \ + fi; \ + branch=$$(git -C "$$superproject" config -f .gitmodules --get --default "" "$$section.branch"); \ + if [ -z "$$branch" ]; then \ + printf 'ERROR: governed gitlink has no declared branch: %s\n' "$$child_path" >&2; \ + exit 2; \ + fi; \ + if [ "$$branch" = "." ]; then \ + branch=$$(git -C "$$superproject" branch --show-current); \ + if [ -z "$$branch" ]; then \ + printf 'ERROR: %s: branch = . requires a named superproject branch\n' "$$child_path" >&2; \ exit 1; \ fi; \ - preflight_managed_submodules "$$checkout"; \ - done; \ - }; \ - initialize_declared_submodules() { \ - superproject="$$1"; \ - if [ ! -f "$$superproject/.gitmodules" ]; then return 0; fi; \ - git -C "$$superproject" config -f .gitmodules --get-regexp '^submodule\..*\.path$$' 2>/dev/null | \ - while IFS=' ' read -r path_key child_path; do \ - if [ "$$superproject" = "$$root" ] && ! setup_selected "$$child_path"; then continue; fi; \ - prefix=$${path_key%.path}; \ - managed=$$(git -C "$$superproject" config -f .gitmodules --bool --get --default false "$$prefix.flext-managed"); \ - if [ "$$managed" != true ]; then continue; fi; \ - git -C "$$superproject" submodule sync --quiet -- "$$child_path"; \ - state=$$(git -C "$$superproject" submodule status -- "$$child_path"); \ - case "$$state" in \ - -*) git -C "$$superproject" submodule update --init --recursive -- "$$child_path" ;; \ - esac; \ - initialize_declared_submodules "$$superproject/$$child_path"; \ - done; \ - }; \ - reconcile_managed_submodules() { \ - superproject="$$1"; \ - if [ ! -f "$$superproject/.gitmodules" ]; then return 0; fi; \ - git -C "$$superproject" config -f .gitmodules --get-regexp '^submodule\..*\.path$$' 2>/dev/null | \ - while IFS=' ' read -r path_key child_path; do \ - if [ "$$superproject" = "$$root" ] && ! setup_selected "$$child_path"; then continue; fi; \ - prefix=$${path_key%.path}; \ - managed=$$(git -C "$$superproject" config -f .gitmodules --bool --get --default false "$$prefix.flext-managed"); \ - if [ "$$managed" != true ]; then continue; fi; \ - checkout="$$superproject/$$child_path"; \ - displaypath=$${checkout#"$$root"/}; \ - sha1=$$(git -C "$$superproject" rev-parse "HEAD:$$child_path"); \ - branch=$$(git -C "$$superproject" config -f .gitmodules --get --default "" "$$prefix.branch"); \ - if [ -n "$$branch" ]; then \ - if [ "$$branch" = "." ]; then \ - branch=$$(git -C "$$superproject" branch --show-current); \ - if [ -z "$$branch" ]; then \ - printf "ERROR: %s: branch = . requires its superproject on a named branch\n" "$$displaypath" >&2; \ - exit 1; \ - fi; \ - fi; \ - git check-ref-format --branch "$$branch" >/dev/null || { \ - printf "ERROR: %s: invalid declared branch %s\n" "$$displaypath" "$$branch" >&2; \ + fi; \ + git check-ref-format --branch "$$branch" >/dev/null || { \ + printf 'ERROR: %s: invalid declared branch %s\n' "$$child_path" "$$branch" >&2; \ + exit 1; \ + }; \ + git -C "$$child_root" fetch --quiet origin "$$branch" || { \ + printf 'ERROR: %s: fetch origin %s failed\n' "$$child_path" "$$branch" >&2; \ + exit 1; \ + }; \ + gitlink=$$(git -C "$$superproject" ls-files --stage -- "$$child_path" | awk '$$1 == "160000" {print $$2}'); \ + if [ -z "$$gitlink" ]; then \ + printf 'ERROR: governed gitlink is absent from the index: %s\n' "$$child_path" >&2; \ + exit 2; \ + fi; \ + current=$$(git -C "$$child_root" branch --show-current); \ + head=$$(git -C "$$child_root" rev-parse HEAD); \ + if [ -n "$$current" ] && [ "$$current" != "$$branch" ]; then \ + printf 'ERROR: %s: conflicting branch %s; expected %s\n' "$$child_path" "$$current" "$$branch" >&2; \ + exit 1; \ + fi; \ + if [ -z "$$current" ] && [ "$$head" != "$$gitlink" ]; then \ + printf 'ERROR: %s: detached HEAD diverges from recorded gitlink %s\n' "$$child_path" "$$gitlink" >&2; \ + exit 1; \ + fi; \ + if [ -z "$$current" ]; then \ + if git -C "$$child_root" rev-parse --verify --quiet "refs/heads/$$branch" >/dev/null; then \ + git -C "$$child_root" merge-base --is-ancestor "$$gitlink" "refs/heads/$$branch" || { \ + printf 'ERROR: %s: local branch %s diverges from gitlink %s\n' "$$child_path" "$$branch" "$$gitlink" >&2; \ exit 1; \ }; \ - current=$$(git -C "$$checkout" branch --show-current); \ - if [ "$$current" = "$$branch" ]; then \ - :; \ - elif [ -n "$$current" ]; then \ - printf "ERROR: %s: conflicting branch %s; expected %s\n" "$$displaypath" "$$current" "$$branch" >&2; \ - exit 1; \ - elif ! git -C "$$checkout" rev-parse --verify --quiet "refs/heads/$$branch" >/dev/null; then \ - git -C "$$checkout" checkout --quiet -b "$$branch"; \ - elif git -C "$$checkout" merge-base --is-ancestor "$$sha1" "refs/heads/$$branch"; then \ - git -C "$$checkout" checkout --quiet "$$branch"; \ - else \ - printf "ERROR: %s: branch %s diverges from recorded gitlink %s\n" "$$displaypath" "$$branch" "$$(git -C "$$checkout" rev-parse --short "$$sha1")" >&2; \ - exit 1; \ - fi; \ + git -C "$$child_root" checkout --quiet "$$branch"; \ + else \ + git -C "$$child_root" checkout --quiet -b "$$branch"; \ fi; \ - reconcile_managed_submodules "$$checkout"; \ - done; \ + fi; \ + git -C "$$child_root" pull --ff-only --quiet origin "$$branch" || { \ + printf 'ERROR: %s: fast-forward pull of origin/%s failed\n' "$$child_path" "$$branch" >&2; \ + exit 1; \ + }; \ + if ! git -C "$$child_root" merge-base --is-ancestor "$$gitlink" HEAD; then \ + printf 'ERROR: %s: branch %s diverges from recorded gitlink %s\n' "$$child_path" "$$branch" "$$gitlink" >&2; \ + exit 1; \ + fi; \ + if [ -f "$$child_root/.gitmodules" ]; then \ + nested_keys=$$(git -C "$$child_root" config -f .gitmodules --name-only --get-regexp '^submodule\..*\.path$$' || :); \ + for nested_key in $$nested_keys; do \ + nested_path=$$(git -C "$$child_root" config -f .gitmodules --get "$$nested_key"); \ + validate_submodule "$$child_root" "$$nested_path"; \ + done; \ + fi; \ }; \ - preflight_managed_submodules "$$root"; \ - initialize_declared_submodules "$$root"; \ - reconcile_managed_submodules "$$root" + for child_path in $$managed; do \ + validate_submodule "$$root" "$$child_path"; \ + done _builtin_require_environment: @if [ ! -x "$(RUNTIME_PYTHON)" ]; then \ @@ -559,34 +521,17 @@ _builtin_require_environment: exit 2; \ fi -ifeq ($(MAKE_PROFILE),workspace-root) -_builtin_setup_topology: _builtin_setup_tools - @$(FLEXT_INFRA_BOOTSTRAP) codegen conform --root "$(PROJECT_ROOT)" --scope "self" --mode apply - -_builtin_setup_conform: _builtin_setup_topology _builtin_setup_submodules +_builtin_setup_conform: _builtin_setup_submodules @$(FLEXT_INFRA_BOOTSTRAP) codegen conform --root "$(PROJECT_ROOT)" --scope "$(CODEGEN_SCOPE)" --mode apply -else -_builtin_setup_conform: _builtin_setup_tools _builtin_setup_submodules - @$(FLEXT_INFRA_BOOTSTRAP) codegen conform --root "$(PROJECT_ROOT)" --scope "$(CODEGEN_SCOPE)" --mode apply -endif - -_builtin_setup_mise: _builtin_setup_conform - @$(MISE) install --yes ifeq ($(MAKE_PROFILE),workspace-root) -_builtin_setup_environment: _builtin_setup_mise +_builtin_setup_environment: _builtin_setup_conform + @$(UV) venv --clear "$(RUNTIME_VENV)" @$(UV) sync --project "$(PROJECT_ROOT)" $(UV_SYNC_FLAGS) --link-mode "$(UV_LINK_MODE)" @$(UV) pip check --python "$(RUNTIME_VENV)" -else ifeq ($(MAKE_PROFILE),workspace-member) -ifeq ($(ATTACHED_MEMBER),Y) -_builtin_setup_environment: _builtin_setup_mise - @$(SELF_MAKE) -C "$(RUNTIME_ROOT)" _builtin_setup_environment -else -_builtin_setup_environment: _builtin_setup_mise - @$(UV) sync --project "$(PROJECT_ROOT)" $(UV_SYNC_FLAGS) --link-mode "$(UV_LINK_MODE)" -endif else -_builtin_setup_environment: _builtin_setup_mise +_builtin_setup_environment: _builtin_setup_conform + @$(UV) venv --clear "$(RUNTIME_VENV)" @$(UV) sync --project "$(PROJECT_ROOT)" $(UV_SYNC_FLAGS) --link-mode "$(UV_LINK_MODE)" endif @@ -684,10 +629,10 @@ _builtin_release_status: _builtin_require_environment @git -C "$(PROJECT_ROOT)" diff --quiet @git -C "$(PROJECT_ROOT)" diff --cached --quiet -_builtin_codegen_check: _builtin_require_environment +_builtin_gen_check: _builtin_require_environment @$(PROJECT_FLEXT_INFRA) codegen conform --root "$(PROJECT_ROOT)" --scope "$(CODEGEN_SCOPE)" --mode check -_builtin_codegen_apply: _builtin_require_environment +_builtin_gen_apply: _builtin_require_environment $(call _require_apply) @$(PROJECT_FLEXT_INFRA) codegen conform --root "$(PROJECT_ROOT)" --scope "$(CODEGEN_SCOPE)" --mode apply diff --git a/ci/docker/alpine.Dockerfile b/ci/docker/alpine.Dockerfile index 59bb5f913..6c035046a 100644 --- a/ci/docker/alpine.Dockerfile +++ b/ci/docker/alpine.Dockerfile @@ -1,20 +1,41 @@ -# Generated by `flext-infra codegen conform` for flext. +# Generated by `flext_infra codegen conform` for flext. +# === SECTION: header (managed) === +# Source: template (base/ci/docker/alpine.Dockerfile.j2) +# Free: no +# End SECTION: header # Clean-machine proof: project bootstrap + canonical make verbs on Alpine # (musl, POSIX /bin/sh at runtime; bash installed for the project scripts). FROM alpine:3.21 +# === SECTION: base packages (managed) === +# Source: template (distro-specific package list) RUN apk add --no-cache \ bash ca-certificates curl git make build-base +# End SECTION: base packages +# === SECTION: managed tool bootstrap (managed) === +# Source: config:python_version, template (installer URLs) # mise installs the supported Python 3.13 family. # uv is supplied by the managed environment without a project patch pin. RUN curl -fsSL https://mise.run | sh -ENV PATH="/root/.local/bin:/root/.local/share/mise/shims:${PATH}" +# uv is intentionally supplied by the caller environment; install it explicitly +# in clean-machine images so the project bootstrap can resolve dependencies. +RUN curl -fsSL https://astral.sh/uv/install.sh | sh +# tokei (and any future cargo-backed mise tool) needs a Rust toolchain. +RUN curl -fsSL https://sh.rustup.rs | sh -s -- -y --default-toolchain stable +ENV PATH="/root/.local/bin:/root/.cargo/bin:/root/.local/share/mise/shims:${PATH}" +# End SECTION: managed tool bootstrap + WORKDIR /workspace COPY . . +# === SECTION: mise install (managed) === +# Source: computed (reads .mise.toml from copied workspace) RUN mise trust .mise.toml && mise install --yes +# End SECTION: mise install +# === SECTION: bootstrap soft-pass (managed) === +# Source: template (external uv.lock/flext-core blocker policy) # Bootstrap to the external uv.lock boundary: only the known flext-core lock # soft-passes; any real infra failure fails the image build. RUN /bin/bash -c 'set +e; \ @@ -27,6 +48,7 @@ RUN /bin/bash -c 'set +e; \ exit "$status"; \ fi; \ fi' +# End SECTION: bootstrap soft-pass ENTRYPOINT [] CMD ["/bin/bash", "-lc", "make help"] diff --git a/ci/docker/arch.Dockerfile b/ci/docker/arch.Dockerfile index d1dcb581b..19528389f 100644 --- a/ci/docker/arch.Dockerfile +++ b/ci/docker/arch.Dockerfile @@ -1,22 +1,43 @@ -# Generated by `flext-infra codegen conform` for flext. +# Generated by `flext_infra codegen conform` for flext. +# === SECTION: header (managed) === +# Source: template (base/ci/docker/arch.Dockerfile.j2) +# Free: no +# End SECTION: header # Clean-machine proof: project bootstrap + canonical make verbs on Arch Linux. FROM archlinux:base SHELL ["/bin/bash", "-o", "pipefail", "-c"] +# === SECTION: base packages (managed) === +# Source: template (distro-specific package list) RUN pacman -Syu --noconfirm --needed \ bash ca-certificates curl git make base-devel \ && pacman -Scc --noconfirm +# End SECTION: base packages +# === SECTION: managed tool bootstrap (managed) === +# Source: config:python_version, template (installer URLs) # mise installs the supported Python 3.13 family. # uv is supplied by the managed environment without a project patch pin. RUN curl -fsSL https://mise.run | sh -ENV PATH="/root/.local/bin:/root/.local/share/mise/shims:${PATH}" +# uv is intentionally supplied by the caller environment; install it explicitly +# in clean-machine images so the project bootstrap can resolve dependencies. +RUN curl -fsSL https://astral.sh/uv/install.sh | sh +# tokei (and any future cargo-backed mise tool) needs a Rust toolchain. +RUN curl -fsSL https://sh.rustup.rs | sh -s -- -y --default-toolchain stable +ENV PATH="/root/.local/bin:/root/.cargo/bin:/root/.local/share/mise/shims:${PATH}" +# End SECTION: managed tool bootstrap + WORKDIR /workspace COPY . . +# === SECTION: mise install (managed) === +# Source: computed (reads .mise.toml from copied workspace) RUN mise trust .mise.toml && mise install --yes +# End SECTION: mise install +# === SECTION: bootstrap soft-pass (managed) === +# Source: template (external uv.lock/flext-core blocker policy) # Bootstrap to the external uv.lock boundary: only the known flext-core lock # soft-passes; any real infra failure fails the image build. RUN set +e; \ @@ -29,6 +50,7 @@ RUN set +e; \ exit "$status"; \ fi; \ fi +# End SECTION: bootstrap soft-pass ENTRYPOINT [] CMD ["make", "help"] diff --git a/ci/docker/debian.Dockerfile b/ci/docker/debian.Dockerfile index bbacfc3cd..f28384f38 100644 --- a/ci/docker/debian.Dockerfile +++ b/ci/docker/debian.Dockerfile @@ -1,23 +1,44 @@ -# Generated by `flext-infra codegen conform` for flext. +# Generated by `flext_infra codegen conform` for flext. +# === SECTION: header (managed) === +# Source: template (base/ci/docker/debian.Dockerfile.j2) +# Free: no +# End SECTION: header # Clean-machine proof: project bootstrap + canonical make verbs on Debian. FROM debian:bookworm-slim SHELL ["/bin/bash", "-o", "pipefail", "-c"] +# === SECTION: base packages (managed) === +# Source: template (distro-specific package list) RUN apt-get update \ && apt-get install -y --no-install-recommends \ bash ca-certificates curl git make build-essential \ && rm -rf /var/lib/apt/lists/* +# End SECTION: base packages +# === SECTION: managed tool bootstrap (managed) === +# Source: config:python_version, template (installer URLs) # mise installs the supported Python 3.13 family. # uv is supplied by the managed environment without a project patch pin. RUN curl -fsSL https://mise.run | sh -ENV PATH="/root/.local/bin:/root/.local/share/mise/shims:${PATH}" +# uv is intentionally supplied by the caller environment; install it explicitly +# in clean-machine images so the project bootstrap can resolve dependencies. +RUN curl -fsSL https://astral.sh/uv/install.sh | sh +# tokei (and any future cargo-backed mise tool) needs a Rust toolchain. +RUN curl -fsSL https://sh.rustup.rs | sh -s -- -y --default-toolchain stable +ENV PATH="/root/.local/bin:/root/.cargo/bin:/root/.local/share/mise/shims:${PATH}" +# End SECTION: managed tool bootstrap + WORKDIR /workspace COPY . . +# === SECTION: mise install (managed) === +# Source: computed (reads .mise.toml from copied workspace) RUN mise trust .mise.toml && mise install --yes +# End SECTION: mise install +# === SECTION: bootstrap soft-pass (managed) === +# Source: template (external uv.lock/flext-core blocker policy) # Bootstrap to the external uv.lock boundary: only the known flext-core lock # soft-passes; any real infra failure fails the image build. RUN set +e; \ @@ -30,6 +51,7 @@ RUN set +e; \ exit "$status"; \ fi; \ fi +# End SECTION: bootstrap soft-pass ENTRYPOINT [] CMD ["make", "help"] diff --git a/ci/docker/fedora.Dockerfile b/ci/docker/fedora.Dockerfile index bdcb9ae71..676a8554e 100644 --- a/ci/docker/fedora.Dockerfile +++ b/ci/docker/fedora.Dockerfile @@ -1,22 +1,43 @@ -# Generated by `flext-infra codegen conform` for flext. +# Generated by `flext_infra codegen conform` for flext. +# === SECTION: header (managed) === +# Source: template (base/ci/docker/fedora.Dockerfile.j2) +# Free: no +# End SECTION: header # Clean-machine proof: project bootstrap + canonical make verbs on Fedora. FROM fedora:41 SHELL ["/bin/bash", "-o", "pipefail", "-c"] +# === SECTION: base packages (managed) === +# Source: template (distro-specific package list) RUN dnf install -y \ bash ca-certificates curl git make gcc gcc-c++ libatomic \ && dnf clean all +# End SECTION: base packages +# === SECTION: managed tool bootstrap (managed) === +# Source: config:python_version, template (installer URLs) # mise installs the supported Python 3.13 family. # uv is supplied by the managed environment without a project patch pin. RUN curl -fsSL https://mise.run | sh -ENV PATH="/root/.local/bin:/root/.local/share/mise/shims:${PATH}" +# uv is intentionally supplied by the caller environment; install it explicitly +# in clean-machine images so the project bootstrap can resolve dependencies. +RUN curl -fsSL https://astral.sh/uv/install.sh | sh +# tokei (and any future cargo-backed mise tool) needs a Rust toolchain. +RUN curl -fsSL https://sh.rustup.rs | sh -s -- -y --default-toolchain stable +ENV PATH="/root/.local/bin:/root/.cargo/bin:/root/.local/share/mise/shims:${PATH}" +# End SECTION: managed tool bootstrap + WORKDIR /workspace COPY . . +# === SECTION: mise install (managed) === +# Source: computed (reads .mise.toml from copied workspace) RUN mise trust .mise.toml && mise install --yes +# End SECTION: mise install +# === SECTION: bootstrap soft-pass (managed) === +# Source: template (external uv.lock/flext-core blocker policy) # Bootstrap to the external uv.lock boundary: only the known flext-core lock # soft-passes; any real infra failure fails the image build. RUN set +e; \ @@ -29,6 +50,7 @@ RUN set +e; \ exit "$status"; \ fi; \ fi +# End SECTION: bootstrap soft-pass ENTRYPOINT [] CMD ["make", "help"] diff --git a/ci/docker/ubuntu.Dockerfile b/ci/docker/ubuntu.Dockerfile index 17b205f2d..16762bef7 100644 --- a/ci/docker/ubuntu.Dockerfile +++ b/ci/docker/ubuntu.Dockerfile @@ -1,23 +1,44 @@ -# Generated by `flext-infra codegen conform` for flext. +# Generated by `flext_infra codegen conform` for flext. +# === SECTION: header (managed) === +# Source: template (base/ci/docker/ubuntu.Dockerfile.j2) +# Free: no +# End SECTION: header # Clean-machine proof: project bootstrap + canonical make verbs on Ubuntu. FROM ubuntu:24.04 SHELL ["/bin/bash", "-o", "pipefail", "-c"] +# === SECTION: base packages (managed) === +# Source: template (distro-specific package list) RUN apt-get update \ && apt-get install -y --no-install-recommends \ bash ca-certificates curl git make build-essential \ && rm -rf /var/lib/apt/lists/* +# End SECTION: base packages +# === SECTION: managed tool bootstrap (managed) === +# Source: config:python_version, template (installer URLs) # mise installs the supported Python 3.13 family. # uv is supplied by the managed environment without a project patch pin. RUN curl -fsSL https://mise.run | sh -ENV PATH="/root/.local/bin:/root/.local/share/mise/shims:${PATH}" +# uv is intentionally supplied by the caller environment; install it explicitly +# in clean-machine images so the project bootstrap can resolve dependencies. +RUN curl -fsSL https://astral.sh/uv/install.sh | sh +# tokei (and any future cargo-backed mise tool) needs a Rust toolchain. +RUN curl -fsSL https://sh.rustup.rs | sh -s -- -y --default-toolchain stable +ENV PATH="/root/.local/bin:/root/.cargo/bin:/root/.local/share/mise/shims:${PATH}" +# End SECTION: managed tool bootstrap + WORKDIR /workspace COPY . . +# === SECTION: mise install (managed) === +# Source: computed (reads .mise.toml from copied workspace) RUN mise trust .mise.toml && mise install --yes +# End SECTION: mise install +# === SECTION: bootstrap soft-pass (managed) === +# Source: template (external uv.lock/flext-core blocker policy) # Bootstrap to the external uv.lock boundary: only the known flext-core lock # soft-passes; any real infra failure fails the image build. RUN set +e; \ @@ -30,6 +51,7 @@ RUN set +e; \ exit "$status"; \ fi; \ fi +# End SECTION: bootstrap soft-pass ENTRYPOINT [] CMD ["make", "help"] diff --git a/flext-infra b/flext-infra index 38ea3787c..60f4b7787 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 38ea3787c88c6c0bedd847929a8279f08e67c69e +Subproject commit 60f4b7787c714348c63e57ff6a2e612e715103cf diff --git a/pyproject.toml b/pyproject.toml index 8b9c9b60c..46b4d820c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -54,7 +54,6 @@ dev = [ "pyrefly>=1.1.1", "pyright>=1.1.411", "pytest>=8.4", - "pytest>=9.0.3", "pytest-benchmark>=5.1", "pytest-clarity>=1.0.1", "pytest-codeblocks>=0.17.0", @@ -70,7 +69,7 @@ dev = [ "pyupgrade>=3.19", "radon>=6.0.1", "ruff>=0.12.3", - "ruff>=0.15.12", + "rumdl>=0.2.46", "types-cachetools>=6.2", "types-cffi>=2.0", "types-click>=7.1", @@ -94,9 +93,7 @@ dev = [ "types-tabulate>=0.10", "types-toml>=0.10.8.20260518", "vulture>=2.13", - "vulture>=2.16", "yamlfix>=1.19.1", - "yamlfix>=1.19.1,<2", ] workspace = [ "flext-api", @@ -166,6 +163,9 @@ name = "FLEXT Team" email = "team@flext.sh" name = "FLEXT Team" +# [MANAGED] consolidated development dependencies +[project.optional-dependencies] + [project.scripts] flext-dev = "flext.dev:main" flext-docs = "flext.docs:main" @@ -2163,7 +2163,6 @@ testpaths = [".", "docs", "examples", "scripts", "src", "tests"] exclude = [ "**/.archive/**", "**/__pyrefly_virtual__/**", - "**/archive/**", ".archive", ".archive/**", ".git", @@ -2173,7 +2172,6 @@ exclude = [ ".venv", "__pycache__", "archive", - "archive/**", "backup", "build", "dist", @@ -2347,9 +2345,7 @@ in_place = true sort_first = ["build-system", "dependency-groups", "project", "tool"] [tool.uv] -constraint-dependencies = ["uv==0.11.32"] link-mode = "copy" -required-version = ">=0.11.0" [tool.uv.sources.flext-api] workspace = true diff --git a/uv.lock b/uv.lock index a02f1af14..e797ff040 100644 --- a/uv.lock +++ b/uv.lock @@ -42,7 +42,6 @@ members = [ "flext-tests", "flext-web", ] -constraints = [{ name = "uv", specifier = "==0.11.32" }] [[package]] name = "actionlint-py" @@ -1468,6 +1467,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -1579,7 +1579,6 @@ dev = [ { name = "pyrefly", specifier = ">=1.1.1" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -1595,7 +1594,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -1619,9 +1618,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20260518" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] workspace = [ { name = "flext-api", editable = "flext-api" }, From df66a5dc7f5f9da321e7252e217ef49508f8c7e1 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 20:06:55 -0300 Subject: [PATCH 065/165] chore(root): drop dead custom.mk verb aliases; dockerignore bootstrap re-includes; flext-infra on 0.12.0-dev (b7d91c7c) - custom.mk: remove the retired convenience-alias block (gen/mod/sync/ up/lint/types/... -> build|check WHAT=); every alias collided with the fused first-class verbs and the promoted-registry dispatcher no longer exists. gen is now the generated Makefile's own verb. - .dockerignore: re-include the clean-machine bootstrap surface (concurrent-lane WIP absorbed fix-forward). - flext-infra: branch checkout back on 0.12.0-dev at b7d91c7c (dockerignore pin test absorbed). --- .dockerignore | 12 ++++++++++++ flext-infra | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/.dockerignore b/.dockerignore index c694d7561..7bdc79559 100644 --- a/.dockerignore +++ b/.dockerignore @@ -100,3 +100,15 @@ internal.invalid.* *.tmp *.temp .cache/ + +# Re-include bootstrap surface required by clean-machine setup (last-match-wins). +!Makefile +!*.mk +!pyproject.toml +!uv.lock +!.mise.toml +!.python-version +!.default-python-packages +!config/ +!scripts/dispatch.py +!ci/docker/ diff --git a/flext-infra b/flext-infra index 60f4b7787..b7d91c7ce 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 60f4b7787c714348c63e57ff6a2e612e715103cf +Subproject commit b7d91c7ce8ccdd940a0ff61885ad6dedc48e6aac From 7c4f47fa73ecd313cf2c9ea48c8d210156ad32bf Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 20:08:42 -0300 Subject: [PATCH 066/165] gitlink(flext-meltano): converge to 0.12.0-dev tip (089388af) --- flext-meltano | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-meltano b/flext-meltano index 26f62b8cc..089388afa 160000 --- a/flext-meltano +++ b/flext-meltano @@ -1 +1 @@ -Subproject commit 26f62b8cc5cddb2e13152a026a9a2f614aaf71be +Subproject commit 089388afade13edaca542a3360ab8c8f27d61641 From 62dbd0bca3d8ebe8e77ecb00c4d0caaf5f2754f6 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 20:16:30 -0300 Subject: [PATCH 067/165] gitlink(flext-infra): converge to 0.12.0-dev tip (94c2edfa) --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index b7d91c7ce..94c2edfa8 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit b7d91c7ce8ccdd940a0ff61885ad6dedc48e6aac +Subproject commit 94c2edfa8aa79440d7ab605a750edf84e4bf88c7 From 75cdc12aa539ae42ae788a6d25cc4fe6a87e85a8 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 20:19:01 -0300 Subject: [PATCH 068/165] chore(root): remove retired convenience-alias block from custom.mk MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The promoted-registry dispatcher is gone and every alias (gen/mod/sync/ up/lint/types/.../project/workspace) collided with the fused generated verbs — GNU Make warned 'overriding recipe for target gen' on every invocation. gen is now exclusively the generated Makefile verb; custom handlers stay _custom__ only. (mro-e9j0.6 C7) --- custom.mk | 104 ------------------------------------------------------ 1 file changed, 104 deletions(-) diff --git a/custom.mk b/custom.mk index e5ff307dd..ac469f98d 100644 --- a/custom.mk +++ b/custom.mk @@ -258,110 +258,6 @@ workspace-dependabot-apply: ## dependabot-merge + merge result into main $(Q)$(MAKE) --no-print-directory dependabot-merge && \ $(MAKE) --no-print-directory workspace-merge-main -# ============================================================================= -# Convenience aliases for promoted registry commands -# ============================================================================= -# These targets map common action names to `make WHAT=` so the -# dispatcher surface stays registry-driven while day-to-day commands remain -# short and predictable. Mutating aliases run in dry-run unless APPLY=Y is -# passed explicitly. - -.PHONY: gen mod sync up stubs constraints \ - format lint types pyrefly mypy pyright scan markdown loc-cap \ - boundary cqrs check-coordination silent-failure go docker_standardization pol pyre \ - save tag push rel pr project workspace - -# build / regenerate -gen: ## Regenerate standardized project files (dry-run; APPLY=Y to execute) - $(Q)$(MAKE) --no-print-directory build WHAT=gen $(MAKE_SELECTION_ARGS) - -mod: ## Modernize pyproject.toml files (dry-run; APPLY=Y to execute) - $(Q)$(MAKE) --no-print-directory build WHAT=mod $(MAKE_SELECTION_ARGS) - -sync: ## Sync project Makefiles from pyproject.toml (dry-run; APPLY=Y to execute) - $(Q)$(MAKE) --no-print-directory build WHAT=sync $(MAKE_SELECTION_ARGS) - -up: ## Upgrade workspace dependencies (dry-run; APPLY=Y to execute) - $(Q)$(MAKE) --no-print-directory build WHAT=up $(MAKE_SELECTION_ARGS) - -stubs: ## Run repo-wide stub supply-chain validation - $(Q)$(MAKE) --no-print-directory build WHAT=stubs $(MAKE_SELECTION_ARGS) - -constraints: ## Rewrite dependency constraints (dry-run; APPLY=Y to execute) - $(Q)$(MAKE) --no-print-directory build WHAT=constraints $(MAKE_SELECTION_ARGS) - -# check / quality -lint: ## Run default lint/type gates - $(Q)$(MAKE) --no-print-directory check WHAT=lint $(MAKE_SELECTION_ARGS) - -types: ## Run typing supply chain - $(Q)$(MAKE) --no-print-directory check WHAT=types $(MAKE_SELECTION_ARGS) - -pyrefly: ## Run pyrefly scoped type check - $(Q)$(MAKE) --no-print-directory check WHAT=pyrefly $(MAKE_SELECTION_ARGS) - -mypy: ## Run mypy quality gate - $(Q)$(MAKE) --no-print-directory check WHAT=mypy $(MAKE_SELECTION_ARGS) - -pyright: ## Run pyright quality gate - $(Q)$(MAKE) --no-print-directory check WHAT=pyright $(MAKE_SELECTION_ARGS) - -pyre: ## Run pyrefly repository type check - $(Q)$(MAKE) --no-print-directory check WHAT=pyre $(MAKE_SELECTION_ARGS) - -scan: ## Run security scan gates - $(Q)$(MAKE) --no-print-directory check WHAT=scan $(MAKE_SELECTION_ARGS) - -markdown: ## Run Markdown quality gate - $(Q)$(MAKE) --no-print-directory check WHAT=markdown $(MAKE_SELECTION_ARGS) - -loc-cap: ## Run loc-cap gate - $(Q)$(MAKE) --no-print-directory check WHAT=loc-cap $(MAKE_SELECTION_ARGS) - -boundary: ## Run boundary gate - $(Q)$(MAKE) --no-print-directory check WHAT=boundary $(MAKE_SELECTION_ARGS) - -cqrs: ## Run CQRS compliance gate - $(Q)$(MAKE) --no-print-directory check WHAT=cqrs $(MAKE_SELECTION_ARGS) - -check-coordination: ## Run coordination governance checks - $(Q)$(MAKE) --no-print-directory check WHAT=coordination $(MAKE_SELECTION_ARGS) - -silent-failure: ## Run silent-failure quality gate - $(Q)$(MAKE) --no-print-directory check WHAT=silent-failure $(MAKE_SELECTION_ARGS) - -go: ## Run Go quality gate - $(Q)$(MAKE) --no-print-directory check WHAT=go $(MAKE_SELECTION_ARGS) - -docker_standardization: ## Validate Docker artifact centralization - $(Q)$(MAKE) --no-print-directory check WHAT=docker_standardization $(MAKE_SELECTION_ARGS) - -pol: ## Run typing policy gate - $(Q)$(MAKE) --no-print-directory check WHAT=pol $(MAKE_SELECTION_ARGS) - -# ship / release -save: ## Commit all changes in selected projects (dry-run; APPLY=Y to execute) - $(Q)$(MAKE) --no-print-directory ship WHAT=save $(MAKE_SELECTION_ARGS) - -tag: ## Create git tags for selected projects (dry-run; APPLY=Y to execute) - $(Q)$(MAKE) --no-print-directory ship WHAT=tag $(MAKE_SELECTION_ARGS) - -push: ## Push branches and tags for selected projects (dry-run; APPLY=Y to execute) - $(Q)$(MAKE) --no-print-directory ship WHAT=push $(MAKE_SELECTION_ARGS) - -rel: ## Interactive workspace release orchestration (dry-run; APPLY=Y to execute) - $(Q)$(MAKE) --no-print-directory ship WHAT=rel $(MAKE_SELECTION_ARGS) - -pr: ## Manage pull requests for selected projects (dry-run; APPLY=Y to execute) - $(Q)$(MAKE) --no-print-directory ship WHAT=pr $(MAKE_SELECTION_ARGS) - -# val / governance -project: ## Run project validation gates - $(Q)$(MAKE) --no-print-directory val WHAT=project $(MAKE_SELECTION_ARGS) - -workspace: ## Run workspace validation gates - $(Q)$(MAKE) --no-print-directory val WHAT=workspace $(MAKE_SELECTION_ARGS) - # ============================================================================= # ast-grep codemod library ([root]/codemod) # ============================================================================= From 92db35c8eaa6592140d10fc58537e496d48c21f4 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 20:25:43 -0300 Subject: [PATCH 069/165] gitlink(flext-infra): setup-provisions-only contract (3c06c590) --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index 94c2edfa8..3c06c5900 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 94c2edfa8aa79440d7ab605a750edf84e4bf88c7 +Subproject commit 3c06c59004240a5dc039347bd723438afca428ec From e2003294e951843e86bfa7c0a20430c70f078fdb Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 20:28:20 -0300 Subject: [PATCH 070/165] gitlink(flext-infra): converge to 0.12.0-dev tip (8757f6a8, transaction beads fix) --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index 3c06c5900..8757f6a88 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 3c06c59004240a5dc039347bd723438afca428ec +Subproject commit 8757f6a887f5c9de3cbdc8eb6fdb266188065bb2 From 436b94ab9e5cc5340c8cf048d080c59a713b0495 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 20:37:52 -0300 Subject: [PATCH 071/165] gitlink(flext-infra): transaction beads-lifecycle skip (da582940) --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index 8757f6a88..da5829409 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 8757f6a887f5c9de3cbdc8eb6fdb266188065bb2 +Subproject commit da58294090e62f6e65a24d3f5a7976252f175a7a From ba4f02408d84cdb5665f5ffc5d9a5659a3eff3b7 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 20:58:47 -0300 Subject: [PATCH 072/165] gitlink(flext-infra): Go toolchain + beads transaction fixes (3a3eafdc) --- Makefile | 10 +- ci/docker/alpine.Dockerfile | 5 +- ci/docker/arch.Dockerfile | 5 +- ci/docker/debian.Dockerfile | 5 +- ci/docker/fedora.Dockerfile | 5 +- ci/docker/ubuntu.Dockerfile | 5 +- flext-infra | 2 +- uv.lock | 204 ++++++++++-------------------------- 8 files changed, 84 insertions(+), 157 deletions(-) diff --git a/Makefile b/Makefile index 6d0f6766f..cddd07932 100644 --- a/Makefile +++ b/Makefile @@ -521,16 +521,16 @@ _builtin_require_environment: exit 2; \ fi -_builtin_setup_conform: _builtin_setup_submodules - @$(FLEXT_INFRA_BOOTSTRAP) codegen conform --root "$(PROJECT_ROOT)" --scope "$(CODEGEN_SCOPE)" --mode apply - +# Operator contract (mro-e9j0.6 C7): setup PROVISIONS tooling only — mise, + # venv, dependencies. It never generates, conforms, or mutates project code; +# `make gen` (APPLY=Y) is the single public conformance/generation surface. ifeq ($(MAKE_PROFILE),workspace-root) -_builtin_setup_environment: _builtin_setup_conform +_builtin_setup_environment: _builtin_setup_submodules @$(UV) venv --clear "$(RUNTIME_VENV)" @$(UV) sync --project "$(PROJECT_ROOT)" $(UV_SYNC_FLAGS) --link-mode "$(UV_LINK_MODE)" @$(UV) pip check --python "$(RUNTIME_VENV)" else -_builtin_setup_environment: _builtin_setup_conform +_builtin_setup_environment: _builtin_setup_submodules @$(UV) venv --clear "$(RUNTIME_VENV)" @$(UV) sync --project "$(PROJECT_ROOT)" $(UV_SYNC_FLAGS) --link-mode "$(UV_LINK_MODE)" endif diff --git a/ci/docker/alpine.Dockerfile b/ci/docker/alpine.Dockerfile index 6c035046a..db2734c1b 100644 --- a/ci/docker/alpine.Dockerfile +++ b/ci/docker/alpine.Dockerfile @@ -23,7 +23,10 @@ RUN curl -fsSL https://mise.run | sh RUN curl -fsSL https://astral.sh/uv/install.sh | sh # tokei (and any future cargo-backed mise tool) needs a Rust toolchain. RUN curl -fsSL https://sh.rustup.rs | sh -s -- -y --default-toolchain stable -ENV PATH="/root/.local/bin:/root/.cargo/bin:/root/.local/share/mise/shims:${PATH}" +# go is required for mise-managed beads (go:github.com/steveyegge/beads/cmd/bd). +RUN curl -fsSL https://go.dev/dl/go1.23.4.linux-amd64.tar.gz | tar -C /usr/local -xzf - \ + && ln -sf /usr/local/go/bin/go /usr/local/bin/go +ENV PATH="/usr/local/go/bin:/root/.local/bin:/root/.cargo/bin:/root/.local/share/mise/shims:${PATH}" # End SECTION: managed tool bootstrap WORKDIR /workspace diff --git a/ci/docker/arch.Dockerfile b/ci/docker/arch.Dockerfile index 19528389f..f0731b0c9 100644 --- a/ci/docker/arch.Dockerfile +++ b/ci/docker/arch.Dockerfile @@ -25,7 +25,10 @@ RUN curl -fsSL https://mise.run | sh RUN curl -fsSL https://astral.sh/uv/install.sh | sh # tokei (and any future cargo-backed mise tool) needs a Rust toolchain. RUN curl -fsSL https://sh.rustup.rs | sh -s -- -y --default-toolchain stable -ENV PATH="/root/.local/bin:/root/.cargo/bin:/root/.local/share/mise/shims:${PATH}" +# go is required for mise-managed beads (go:github.com/steveyegge/beads/cmd/bd). +RUN curl -fsSL https://go.dev/dl/go1.23.4.linux-amd64.tar.gz | tar -C /usr/local -xzf - \ + && ln -sf /usr/local/go/bin/go /usr/local/bin/go +ENV PATH="/usr/local/go/bin:/root/.local/bin:/root/.cargo/bin:/root/.local/share/mise/shims:${PATH}" # End SECTION: managed tool bootstrap WORKDIR /workspace diff --git a/ci/docker/debian.Dockerfile b/ci/docker/debian.Dockerfile index f28384f38..207ba11be 100644 --- a/ci/docker/debian.Dockerfile +++ b/ci/docker/debian.Dockerfile @@ -26,7 +26,10 @@ RUN curl -fsSL https://mise.run | sh RUN curl -fsSL https://astral.sh/uv/install.sh | sh # tokei (and any future cargo-backed mise tool) needs a Rust toolchain. RUN curl -fsSL https://sh.rustup.rs | sh -s -- -y --default-toolchain stable -ENV PATH="/root/.local/bin:/root/.cargo/bin:/root/.local/share/mise/shims:${PATH}" +# go is required for mise-managed beads (go:github.com/steveyegge/beads/cmd/bd). +RUN curl -fsSL https://go.dev/dl/go1.23.4.linux-amd64.tar.gz | tar -C /usr/local -xzf - \ + && ln -sf /usr/local/go/bin/go /usr/local/bin/go +ENV PATH="/usr/local/go/bin:/root/.local/bin:/root/.cargo/bin:/root/.local/share/mise/shims:${PATH}" # End SECTION: managed tool bootstrap WORKDIR /workspace diff --git a/ci/docker/fedora.Dockerfile b/ci/docker/fedora.Dockerfile index 676a8554e..410600da3 100644 --- a/ci/docker/fedora.Dockerfile +++ b/ci/docker/fedora.Dockerfile @@ -25,7 +25,10 @@ RUN curl -fsSL https://mise.run | sh RUN curl -fsSL https://astral.sh/uv/install.sh | sh # tokei (and any future cargo-backed mise tool) needs a Rust toolchain. RUN curl -fsSL https://sh.rustup.rs | sh -s -- -y --default-toolchain stable -ENV PATH="/root/.local/bin:/root/.cargo/bin:/root/.local/share/mise/shims:${PATH}" +# go is required for mise-managed beads (go:github.com/steveyegge/beads/cmd/bd). +RUN curl -fsSL https://go.dev/dl/go1.23.4.linux-amd64.tar.gz | tar -C /usr/local -xzf - \ + && ln -sf /usr/local/go/bin/go /usr/local/bin/go +ENV PATH="/usr/local/go/bin:/root/.local/bin:/root/.cargo/bin:/root/.local/share/mise/shims:${PATH}" # End SECTION: managed tool bootstrap WORKDIR /workspace diff --git a/ci/docker/ubuntu.Dockerfile b/ci/docker/ubuntu.Dockerfile index 16762bef7..e8feb74d6 100644 --- a/ci/docker/ubuntu.Dockerfile +++ b/ci/docker/ubuntu.Dockerfile @@ -26,7 +26,10 @@ RUN curl -fsSL https://mise.run | sh RUN curl -fsSL https://astral.sh/uv/install.sh | sh # tokei (and any future cargo-backed mise tool) needs a Rust toolchain. RUN curl -fsSL https://sh.rustup.rs | sh -s -- -y --default-toolchain stable -ENV PATH="/root/.local/bin:/root/.cargo/bin:/root/.local/share/mise/shims:${PATH}" +# go is required for mise-managed beads (go:github.com/steveyegge/beads/cmd/bd). +RUN curl -fsSL https://go.dev/dl/go1.23.4.linux-amd64.tar.gz | tar -C /usr/local -xzf - \ + && ln -sf /usr/local/go/bin/go /usr/local/bin/go +ENV PATH="/usr/local/go/bin:/root/.local/bin:/root/.cargo/bin:/root/.local/share/mise/shims:${PATH}" # End SECTION: managed tool bootstrap WORKDIR /workspace diff --git a/flext-infra b/flext-infra index da5829409..3a3eafdc8 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit da58294090e62f6e65a24d3f5a7976252f175a7a +Subproject commit 3a3eafdc87de99ddc0bcced28e729efb4f4bf9a7 diff --git a/uv.lock b/uv.lock index e797ff040..5c3704b87 100644 --- a/uv.lock +++ b/uv.lock @@ -1734,6 +1734,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -1818,10 +1819,8 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -1837,7 +1836,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -1861,9 +1860,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -1940,6 +1937,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -2018,10 +2016,8 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -2037,7 +2033,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -2061,9 +2057,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -2153,6 +2147,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -2244,10 +2239,8 @@ dev = [ { name = "psutil", specifier = ">=7.2.2" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -2263,7 +2256,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -2287,9 +2280,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -2384,6 +2375,7 @@ dev = [ { name = "radon" }, { name = "rope" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -2475,15 +2467,12 @@ dev = [ { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, { name = "mypy", specifier = ">=1.20.2" }, - { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -2500,7 +2489,7 @@ dev = [ { name = "radon", specifier = ">=6.0.1" }, { name = "rope", specifier = ">=1.14.0" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -2525,7 +2514,6 @@ dev = [ { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -2600,6 +2588,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -2676,10 +2665,8 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -2695,7 +2682,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -2719,9 +2706,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -2798,6 +2783,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -2876,10 +2862,8 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -2895,7 +2879,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -2919,9 +2903,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -2995,6 +2977,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -3070,10 +3053,8 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -3089,7 +3070,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -3113,9 +3094,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -3190,6 +3169,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -3266,10 +3246,8 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -3285,7 +3263,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -3309,9 +3287,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -3386,6 +3362,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -3462,10 +3439,8 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -3481,7 +3456,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -3505,9 +3480,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -3587,6 +3560,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -3668,10 +3642,8 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -3687,7 +3659,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -3711,9 +3683,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -3996,6 +3966,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -4075,10 +4046,8 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -4094,7 +4063,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -4118,9 +4087,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -4197,6 +4164,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -4275,10 +4243,8 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -4294,7 +4260,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -4318,9 +4284,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -4644,6 +4608,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -4730,10 +4695,8 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -4749,7 +4712,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -4773,9 +4736,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -4856,6 +4817,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -4938,10 +4900,8 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -4957,7 +4917,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -4981,9 +4941,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -5059,6 +5017,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -5136,10 +5095,8 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -5155,7 +5112,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -5179,9 +5136,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -5259,6 +5214,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -5338,10 +5294,8 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -5357,7 +5311,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -5381,9 +5335,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -5478,6 +5430,7 @@ dev = [ { name = "refurb" }, { name = "rope" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -5572,10 +5525,8 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.2.3" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.18.0" }, @@ -5593,7 +5544,7 @@ dev = [ { name = "refurb", specifier = ">=2" }, { name = "rope", specifier = ">=1.11" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0.0.20260518" }, { name = "types-click", specifier = ">=7.1" }, @@ -5617,9 +5568,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20260518" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -5694,6 +5643,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -5770,10 +5720,8 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -5789,7 +5737,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -5813,9 +5761,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -5890,6 +5836,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -5966,10 +5913,8 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -5985,7 +5930,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -6009,9 +5954,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -6091,6 +6034,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -6172,10 +6116,8 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -6191,7 +6133,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -6215,9 +6157,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -6295,6 +6235,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -6374,10 +6315,8 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -6393,7 +6332,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -6417,9 +6356,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -6496,6 +6433,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -6574,10 +6512,8 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -6593,7 +6529,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -6617,9 +6553,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -6693,6 +6627,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -6768,10 +6703,8 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -6787,7 +6720,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -6811,9 +6744,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -6889,6 +6820,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -6966,10 +6898,8 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -6985,7 +6915,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -7009,9 +6939,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -7090,6 +7018,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -7170,10 +7099,8 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -7189,7 +7116,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -7213,9 +7140,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -7297,6 +7222,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -7380,10 +7306,8 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -7399,7 +7323,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -7423,9 +7347,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -7504,6 +7426,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -7584,10 +7507,8 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -7603,7 +7524,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -7627,9 +7548,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -7718,6 +7637,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -7804,15 +7724,12 @@ dev = [ { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, { name = "mypy", specifier = ">=1.20.2" }, - { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -7828,7 +7745,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -7852,9 +7769,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -7932,6 +7847,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -8011,10 +7927,8 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -8030,7 +7944,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -8054,9 +7968,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] From c2cc9d9512a26603dd3420acef4dba76ad8386f1 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 21:01:45 -0300 Subject: [PATCH 073/165] gitlink(flext-ldap): advance 0.12.0-dev with type fixes and public-API test alignment - Advance flext-ldap to 30ad8812 (0.12.0-dev tip) - Include uv.lock sync delta (rumdl, dependency specifiers) Quality: flext-ldap make check = 0 errors; make test = 426 passed --- flext-ldap | 2 +- uv.lock | 204 +++++++++++++++-------------------------------------- 2 files changed, 59 insertions(+), 147 deletions(-) diff --git a/flext-ldap b/flext-ldap index 7f45adca4..30ad88122 160000 --- a/flext-ldap +++ b/flext-ldap @@ -1 +1 @@ -Subproject commit 7f45adca4ce9a690a5d2c8207b80a97b30774f4d +Subproject commit 30ad88122689d00afc2056887a504099cc37c254 diff --git a/uv.lock b/uv.lock index a02f1af14..c4f1661a4 100644 --- a/uv.lock +++ b/uv.lock @@ -1737,6 +1737,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -1821,10 +1822,8 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -1840,7 +1839,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -1864,9 +1863,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -1943,6 +1940,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -2021,10 +2019,8 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -2040,7 +2036,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -2064,9 +2060,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -2156,6 +2150,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -2247,10 +2242,8 @@ dev = [ { name = "psutil", specifier = ">=7.2.2" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -2266,7 +2259,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -2290,9 +2283,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -2387,6 +2378,7 @@ dev = [ { name = "radon" }, { name = "rope" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -2478,15 +2470,12 @@ dev = [ { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, { name = "mypy", specifier = ">=1.20.2" }, - { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -2503,7 +2492,7 @@ dev = [ { name = "radon", specifier = ">=6.0.1" }, { name = "rope", specifier = ">=1.14.0" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -2528,7 +2517,6 @@ dev = [ { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -2603,6 +2591,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -2679,10 +2668,8 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -2698,7 +2685,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -2722,9 +2709,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -2801,6 +2786,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -2879,10 +2865,8 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -2898,7 +2882,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -2922,9 +2906,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -2998,6 +2980,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -3073,10 +3056,8 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -3092,7 +3073,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -3116,9 +3097,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -3193,6 +3172,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -3269,10 +3249,8 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -3288,7 +3266,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -3312,9 +3290,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -3389,6 +3365,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -3465,10 +3442,8 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -3484,7 +3459,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -3508,9 +3483,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -3590,6 +3563,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -3671,10 +3645,8 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -3690,7 +3662,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -3714,9 +3686,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -3999,6 +3969,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -4078,10 +4049,8 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -4097,7 +4066,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -4121,9 +4090,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -4200,6 +4167,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -4278,10 +4246,8 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -4297,7 +4263,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -4321,9 +4287,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -4647,6 +4611,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -4733,10 +4698,8 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -4752,7 +4715,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -4776,9 +4739,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -4859,6 +4820,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -4941,10 +4903,8 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -4960,7 +4920,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -4984,9 +4944,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -5062,6 +5020,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -5139,10 +5098,8 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -5158,7 +5115,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -5182,9 +5139,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -5262,6 +5217,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -5341,10 +5297,8 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -5360,7 +5314,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -5384,9 +5338,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -5481,6 +5433,7 @@ dev = [ { name = "refurb" }, { name = "rope" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -5575,10 +5528,8 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.2.3" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.18.0" }, @@ -5596,7 +5547,7 @@ dev = [ { name = "refurb", specifier = ">=2" }, { name = "rope", specifier = ">=1.11" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0.0.20260518" }, { name = "types-click", specifier = ">=7.1" }, @@ -5620,9 +5571,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20260518" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -5697,6 +5646,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -5773,10 +5723,8 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -5792,7 +5740,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -5816,9 +5764,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -5893,6 +5839,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -5969,10 +5916,8 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -5988,7 +5933,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -6012,9 +5957,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -6094,6 +6037,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -6175,10 +6119,8 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -6194,7 +6136,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -6218,9 +6160,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -6298,6 +6238,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -6377,10 +6318,8 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -6396,7 +6335,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -6420,9 +6359,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -6499,6 +6436,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -6577,10 +6515,8 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -6596,7 +6532,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -6620,9 +6556,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -6696,6 +6630,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -6771,10 +6706,8 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -6790,7 +6723,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -6814,9 +6747,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -6892,6 +6823,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -6969,10 +6901,8 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -6988,7 +6918,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -7012,9 +6942,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -7093,6 +7021,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -7173,10 +7102,8 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -7192,7 +7119,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -7216,9 +7143,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -7300,6 +7225,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -7383,10 +7309,8 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -7402,7 +7326,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -7426,9 +7350,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -7507,6 +7429,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -7587,10 +7510,8 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -7606,7 +7527,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -7630,9 +7551,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -7721,6 +7640,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -7807,15 +7727,12 @@ dev = [ { name = "mkdocstrings", specifier = ">=0.24" }, { name = "mkdocstrings-python", specifier = ">=1.7" }, { name = "mypy", specifier = ">=1.20.2" }, - { name = "mypy", specifier = ">=2.3.0" }, { name = "pip-audit", specifier = ">=2.7.3" }, { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -7831,7 +7748,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -7855,9 +7772,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] @@ -7935,6 +7850,7 @@ dev = [ { name = "pyupgrade" }, { name = "radon" }, { name = "ruff" }, + { name = "rumdl" }, { name = "types-cachetools" }, { name = "types-cffi" }, { name = "types-click" }, @@ -8014,10 +7930,8 @@ dev = [ { name = "pre-commit", specifier = ">=4.6.0" }, { name = "pylint", specifier = ">=3.3" }, { name = "pyrefly", specifier = ">=1.1.1" }, - { name = "pyrefly", specifier = ">=1.1.1,<1.2.0" }, { name = "pyright", specifier = ">=1.1.411" }, { name = "pytest", specifier = ">=8.4" }, - { name = "pytest", specifier = ">=9.0.3" }, { name = "pytest-benchmark", specifier = ">=5.1" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, { name = "pytest-codeblocks", specifier = ">=0.17.0" }, @@ -8033,7 +7947,7 @@ dev = [ { name = "pyupgrade", specifier = ">=3.19" }, { name = "radon", specifier = ">=6.0.1" }, { name = "ruff", specifier = ">=0.12.3" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "rumdl", specifier = ">=0.2.46" }, { name = "types-cachetools", specifier = ">=6.2" }, { name = "types-cffi", specifier = ">=2.0" }, { name = "types-click", specifier = ">=7.1" }, @@ -8057,9 +7971,7 @@ dev = [ { name = "types-tabulate", specifier = ">=0.10" }, { name = "types-toml", specifier = ">=0.10.8.20240310" }, { name = "vulture", specifier = ">=2.13" }, - { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, - { name = "yamlfix", specifier = ">=1.19.1,<2" }, ] [[package]] From 63a210911c6d3fd2839f929b06847c5b4e8e414b Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 21:06:03 -0300 Subject: [PATCH 074/165] chore(workspace): declare flext-infra basemk extra verb in the manifest The engine is consumer-agnostic (mro-4gbp): extra verbs live in the consumer's config/workspace.yaml, not in the engine catalog. flext-infra regenerated surfaces adopted (attached-member Makefile + pyrefly paths). --- config/workspace.yaml | 2 ++ flext-infra | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/config/workspace.yaml b/config/workspace.yaml index 32d022fbe..799756b21 100644 --- a/config/workspace.yaml +++ b/config/workspace.yaml @@ -173,6 +173,8 @@ members: distribution: "flext-infra" provider: "flext-sh" url: "https://github.com/flext-sh/flext-infra.git" + extra_verbs: + - { name: basemk, default_what: generate } path: "flext-infra" role: "workspace-member" state: "active" diff --git a/flext-infra b/flext-infra index 3a3eafdc8..e0c73ec13 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 3a3eafdc87de99ddc0bcced28e729efb4f4bf9a7 +Subproject commit e0c73ec13b01d56d6d00665cf7209ef98e8b35fc From 20425c118b7d0b555fb513b0ab93a8c4990b421d Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 21:14:35 -0300 Subject: [PATCH 075/165] gitlink(flext-infra): converge to d07e82a5 (post-merge setup-contract fixes) Adopts the latest flext-infra feature/mro-makp-provenance-markers tip which merged 0.12.0-dev and aligned tests with the new setup-provisions-only contract. Submodule-only change; no other workspace members touched. --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index e0c73ec13..d07e82a59 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit e0c73ec13b01d56d6d00665cf7209ef98e8b35fc +Subproject commit d07e82a59ae976edb6eb83040326e441dd954052 From 81f88d56ecf61f8735b2023cfe5f8ba3ce7e6cd9 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 21:24:44 -0300 Subject: [PATCH 076/165] gitlink(flext-infra): CI-aware beads skip + merged 0.12.0-dev tip (bd70749f) --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index d07e82a59..bd70749f0 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit d07e82a59ae976edb6eb83040326e441dd954052 +Subproject commit bd70749f09d7d82a1ab9041f669e9c391a95733b From a97984ea8ddb225699cdb3e77a4d5a9d766055d7 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 21:34:08 -0300 Subject: [PATCH 077/165] gitlink: advance all submodules to regenerated managed surfaces - flext-ldif includes model-only writer/validate_entries simplification. - flext-ldap includes previous type fixes and public-API test alignment. - Remaining submodules carry regenerated managed surfaces only. --- flext-api | 2 +- flext-auth | 2 +- flext-cli | 2 +- flext-core | 2 +- flext-db-oracle | 2 +- flext-dbt-ldap | 2 +- flext-dbt-ldif | 2 +- flext-dbt-oracle | 2 +- flext-dbt-oracle-wms | 2 +- flext-grpc | 2 +- flext-infra | 2 +- flext-ldap | 2 +- flext-ldif | 2 +- flext-observability | 2 +- flext-oracle-oic | 2 +- flext-oracle-wms | 2 +- flext-plugin | 2 +- flext-quality | 2 +- flext-tap-ldap | 2 +- flext-tap-ldif | 2 +- flext-tap-oracle | 2 +- flext-tap-oracle-oic | 2 +- flext-tap-oracle-wms | 2 +- flext-target-ldap | 2 +- flext-target-ldif | 2 +- flext-target-oracle | 2 +- flext-target-oracle-oic | 2 +- flext-target-oracle-wms | 2 +- flext-tests | 2 +- flext-web | 2 +- 30 files changed, 30 insertions(+), 30 deletions(-) diff --git a/flext-api b/flext-api index 87283b89b..e68b461ea 160000 --- a/flext-api +++ b/flext-api @@ -1 +1 @@ -Subproject commit 87283b89b8c52c5e5ff449529c9134185cbc7a44 +Subproject commit e68b461eaf3ce01d34ef0fb76ca4001d421b59a8 diff --git a/flext-auth b/flext-auth index 1f9a80172..f3d2b3422 160000 --- a/flext-auth +++ b/flext-auth @@ -1 +1 @@ -Subproject commit 1f9a80172e14932c04732d1da6a119c603ea0c4b +Subproject commit f3d2b342295ea75615a7be529bf3a082e53bcb67 diff --git a/flext-cli b/flext-cli index cf643dc9f..6fb3366f8 160000 --- a/flext-cli +++ b/flext-cli @@ -1 +1 @@ -Subproject commit cf643dc9f6a1e76473e315590112f1ebd12e16c7 +Subproject commit 6fb3366f88bd80ca13d5eaa46a1b1fdab6abef46 diff --git a/flext-core b/flext-core index 3ec3edc5a..0cef39b5e 160000 --- a/flext-core +++ b/flext-core @@ -1 +1 @@ -Subproject commit 3ec3edc5a367125167220696cf914369a7401b3d +Subproject commit 0cef39b5ef8fbf23a45891737d903d04b6f46657 diff --git a/flext-db-oracle b/flext-db-oracle index 52e45b411..73b7452c6 160000 --- a/flext-db-oracle +++ b/flext-db-oracle @@ -1 +1 @@ -Subproject commit 52e45b411093455d14545d1d5c1b4a2192f3e882 +Subproject commit 73b7452c65732966f2b9c7358d7393d9812cd7ed diff --git a/flext-dbt-ldap b/flext-dbt-ldap index ac01bb9ba..9b11ad829 160000 --- a/flext-dbt-ldap +++ b/flext-dbt-ldap @@ -1 +1 @@ -Subproject commit ac01bb9ba6b5959a3b24cc2a07d1fd6f36d8ca36 +Subproject commit 9b11ad82978fa004727d6889549dd38a3d93f968 diff --git a/flext-dbt-ldif b/flext-dbt-ldif index f8c3a09ac..cab7b9d64 160000 --- a/flext-dbt-ldif +++ b/flext-dbt-ldif @@ -1 +1 @@ -Subproject commit f8c3a09acf6e9d9d213e80d770f729e5a533afe4 +Subproject commit cab7b9d6488746af428047586ce2a8f7af52dac7 diff --git a/flext-dbt-oracle b/flext-dbt-oracle index 996fc1f27..53ca1bd31 160000 --- a/flext-dbt-oracle +++ b/flext-dbt-oracle @@ -1 +1 @@ -Subproject commit 996fc1f27b3f1d084d3a483b36cf0248768cf8e4 +Subproject commit 53ca1bd31bcab325487f11826f41851ab3fdadd6 diff --git a/flext-dbt-oracle-wms b/flext-dbt-oracle-wms index c3d3c4928..7fb9bee7d 160000 --- a/flext-dbt-oracle-wms +++ b/flext-dbt-oracle-wms @@ -1 +1 @@ -Subproject commit c3d3c4928d45b119f120245844857f8aadeadf72 +Subproject commit 7fb9bee7de373a1b927ab1a2a825d9d55a1d376d diff --git a/flext-grpc b/flext-grpc index f4ee8f697..928173f02 160000 --- a/flext-grpc +++ b/flext-grpc @@ -1 +1 @@ -Subproject commit f4ee8f697adc8c9dfc30962669c6f6b671f85845 +Subproject commit 928173f0272e52d6403a69ebea70607eced9d594 diff --git a/flext-infra b/flext-infra index 9203eb667..5304c7351 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 9203eb667091fef18ea223640eb5a21005e3b8e3 +Subproject commit 5304c7351763aaa9a03c71aa3419ab0d0c25d395 diff --git a/flext-ldap b/flext-ldap index 30ad88122..26f958d5b 160000 --- a/flext-ldap +++ b/flext-ldap @@ -1 +1 @@ -Subproject commit 30ad88122689d00afc2056887a504099cc37c254 +Subproject commit 26f958d5bdeece4867b185851559b28f5fb9f0de diff --git a/flext-ldif b/flext-ldif index 24e52cc60..9601a4f1d 160000 --- a/flext-ldif +++ b/flext-ldif @@ -1 +1 @@ -Subproject commit 24e52cc607a5111b40f5086799838855fc18da4c +Subproject commit 9601a4f1db0f89fc669603df0e65c32862196db1 diff --git a/flext-observability b/flext-observability index 55946011f..29d5b8422 160000 --- a/flext-observability +++ b/flext-observability @@ -1 +1 @@ -Subproject commit 55946011fe9378fe6f5c99570745a8724fda7dc6 +Subproject commit 29d5b84224895ede6f74448c48e6f4e9b1e4c13a diff --git a/flext-oracle-oic b/flext-oracle-oic index 24d922458..55723f864 160000 --- a/flext-oracle-oic +++ b/flext-oracle-oic @@ -1 +1 @@ -Subproject commit 24d922458efc73ec7ac570cac8a79fef136f725b +Subproject commit 55723f864f1407fbaaacf41db390c0f6b5d69819 diff --git a/flext-oracle-wms b/flext-oracle-wms index 8aaadc89b..1c311133c 160000 --- a/flext-oracle-wms +++ b/flext-oracle-wms @@ -1 +1 @@ -Subproject commit 8aaadc89be9b5608cbe0fecf58c7ee96c64a893b +Subproject commit 1c311133cc604c2eff4ea5f753625d29c5acbc6d diff --git a/flext-plugin b/flext-plugin index af56c76d1..a280df9ca 160000 --- a/flext-plugin +++ b/flext-plugin @@ -1 +1 @@ -Subproject commit af56c76d18547b0e9e770075c438ad82ba6138fd +Subproject commit a280df9ca16770651bdcec9e2018376fc941ba1b diff --git a/flext-quality b/flext-quality index f06c9e138..4e7d1006a 160000 --- a/flext-quality +++ b/flext-quality @@ -1 +1 @@ -Subproject commit f06c9e1384d8afb875959471573a0a5f85d6b3a2 +Subproject commit 4e7d1006af1a41be3f43692dfcab953c60834842 diff --git a/flext-tap-ldap b/flext-tap-ldap index c068e5ba6..4dba00c70 160000 --- a/flext-tap-ldap +++ b/flext-tap-ldap @@ -1 +1 @@ -Subproject commit c068e5ba6981f4e1a2d256826798767835516425 +Subproject commit 4dba00c70df9ee7b506c9632dec6d0efe874ee91 diff --git a/flext-tap-ldif b/flext-tap-ldif index 725be5a8f..f4a23aedd 160000 --- a/flext-tap-ldif +++ b/flext-tap-ldif @@ -1 +1 @@ -Subproject commit 725be5a8f226fce49c624e2e2c8683bea0466b57 +Subproject commit f4a23aedd460923af4104a151cc2e8bb9f528b04 diff --git a/flext-tap-oracle b/flext-tap-oracle index 45e59ece9..3d31ca418 160000 --- a/flext-tap-oracle +++ b/flext-tap-oracle @@ -1 +1 @@ -Subproject commit 45e59ece95a13c57d0628e5c1626d19ffa8bc12c +Subproject commit 3d31ca418dd9c3bfee30f387f5ee5af56fa27cc9 diff --git a/flext-tap-oracle-oic b/flext-tap-oracle-oic index 7f28ad400..93abe60de 160000 --- a/flext-tap-oracle-oic +++ b/flext-tap-oracle-oic @@ -1 +1 @@ -Subproject commit 7f28ad400f344a89f3bc092dcb1c82252d9b9c9b +Subproject commit 93abe60dee23e611f7bb5ce09bc372a616fdfda7 diff --git a/flext-tap-oracle-wms b/flext-tap-oracle-wms index 75c2e212c..2dc9beac3 160000 --- a/flext-tap-oracle-wms +++ b/flext-tap-oracle-wms @@ -1 +1 @@ -Subproject commit 75c2e212c2838447e31d515df06c7de526467f0e +Subproject commit 2dc9beac3871daf27b1445ad8d5dff4dbd153950 diff --git a/flext-target-ldap b/flext-target-ldap index b48dbe302..b77df9eae 160000 --- a/flext-target-ldap +++ b/flext-target-ldap @@ -1 +1 @@ -Subproject commit b48dbe30229c0e06c7d1daad20eea41284367e33 +Subproject commit b77df9eaea33e561bee99cbd4f9df0b35643c7a5 diff --git a/flext-target-ldif b/flext-target-ldif index c38bd8124..86e45696c 160000 --- a/flext-target-ldif +++ b/flext-target-ldif @@ -1 +1 @@ -Subproject commit c38bd8124a10d7debab41830ddbbeb5cac6660ad +Subproject commit 86e45696cc5a09427db201484de6965a07234f4b diff --git a/flext-target-oracle b/flext-target-oracle index b947bbb4b..9e2a44663 160000 --- a/flext-target-oracle +++ b/flext-target-oracle @@ -1 +1 @@ -Subproject commit b947bbb4b01e02f701261f704cbd77c188f8d48c +Subproject commit 9e2a446639dca71dbcf39107522f73c17bf1f6fd diff --git a/flext-target-oracle-oic b/flext-target-oracle-oic index 95ebe7ecc..0bd2fd6bf 160000 --- a/flext-target-oracle-oic +++ b/flext-target-oracle-oic @@ -1 +1 @@ -Subproject commit 95ebe7ecc19ecf8c332d02a32c8baecfeed60b89 +Subproject commit 0bd2fd6bf571a3544b2534679c31d41e4f62d36f diff --git a/flext-target-oracle-wms b/flext-target-oracle-wms index cdd76d308..ae859540d 160000 --- a/flext-target-oracle-wms +++ b/flext-target-oracle-wms @@ -1 +1 @@ -Subproject commit cdd76d3087d2d7cc8eb1fae9971c31a80208978f +Subproject commit ae859540d18eb0db7b0897c5ed1dd57aa784fd16 diff --git a/flext-tests b/flext-tests index 8eb584848..88e14dd77 160000 --- a/flext-tests +++ b/flext-tests @@ -1 +1 @@ -Subproject commit 8eb5848489387bfbdfa24856cc59516e39bdeaf8 +Subproject commit 88e14dd77bdaaf87796c7a6013d7421a804fafbd diff --git a/flext-web b/flext-web index f972393a9..47533d613 160000 --- a/flext-web +++ b/flext-web @@ -1 +1 @@ -Subproject commit f972393a9e5546a74a6f19c2375eb106c5185348 +Subproject commit 47533d61344bbb5146767e98525b5b0c767d5112 From 4b6d4c117f497a381087fe15e3fdbb6b3bbecff9 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 21:38:51 -0300 Subject: [PATCH 078/165] gitlink(flext-infra): merge latest origin/0.12.0-dev (f0757a57) --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index eaadff6be..f0757a570 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit eaadff6be34df41d3387f3791dcad65bb4bd72b7 +Subproject commit f0757a570a1cc984155b6fcc76f8f2c17d2e6984 From 06691d589ea3f1b57bc2bb98b60391644d362d81 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 21:42:26 -0300 Subject: [PATCH 079/165] gitlink(flext-infra): merge latest origin/0.12.0-dev (00282c06) --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index f0757a570..00282c065 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit f0757a570a1cc984155b6fcc76f8f2c17d2e6984 +Subproject commit 00282c06553ac4b6c9647c63d87f6fb36bbed386 From 5d25120443a1349169616c5935dd8c792974313f Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 21:56:50 -0300 Subject: [PATCH 080/165] gitlink: adopt merged origin/0.12.0-dev tips across all submodules (fix-forward) --- flext-api | 2 +- flext-auth | 2 +- flext-cli | 2 +- flext-core | 2 +- flext-db-oracle | 2 +- flext-dbt-ldap | 2 +- flext-dbt-ldif | 2 +- flext-dbt-oracle | 2 +- flext-dbt-oracle-wms | 2 +- flext-grpc | 2 +- flext-ldap | 2 +- flext-ldif | 2 +- flext-meltano | 2 +- flext-observability | 2 +- flext-oracle-oic | 2 +- flext-oracle-wms | 2 +- flext-plugin | 2 +- flext-quality | 2 +- flext-tap-ldap | 2 +- flext-tap-ldif | 2 +- flext-tap-oracle | 2 +- flext-tap-oracle-oic | 2 +- flext-tap-oracle-wms | 2 +- flext-target-ldap | 2 +- flext-target-ldif | 2 +- flext-target-oracle | 2 +- flext-target-oracle-oic | 2 +- flext-target-oracle-wms | 2 +- flext-tests | 2 +- flext-web | 2 +- 30 files changed, 30 insertions(+), 30 deletions(-) diff --git a/flext-api b/flext-api index e68b461ea..422719089 160000 --- a/flext-api +++ b/flext-api @@ -1 +1 @@ -Subproject commit e68b461eaf3ce01d34ef0fb76ca4001d421b59a8 +Subproject commit 42271908910746f31cbc4cca813081d11887e4b7 diff --git a/flext-auth b/flext-auth index f3d2b3422..72a1f3e4f 160000 --- a/flext-auth +++ b/flext-auth @@ -1 +1 @@ -Subproject commit f3d2b342295ea75615a7be529bf3a082e53bcb67 +Subproject commit 72a1f3e4f67ad00be2d525467495beedd9ca6852 diff --git a/flext-cli b/flext-cli index 6fb3366f8..b572c7b72 160000 --- a/flext-cli +++ b/flext-cli @@ -1 +1 @@ -Subproject commit 6fb3366f88bd80ca13d5eaa46a1b1fdab6abef46 +Subproject commit b572c7b7230db7cb6c1cbfdf48e2516bd55d98a1 diff --git a/flext-core b/flext-core index 0cef39b5e..4067fe069 160000 --- a/flext-core +++ b/flext-core @@ -1 +1 @@ -Subproject commit 0cef39b5ef8fbf23a45891737d903d04b6f46657 +Subproject commit 4067fe06945d7bf724c7edfbfae80544b6827911 diff --git a/flext-db-oracle b/flext-db-oracle index 73b7452c6..c4a3df69c 160000 --- a/flext-db-oracle +++ b/flext-db-oracle @@ -1 +1 @@ -Subproject commit 73b7452c65732966f2b9c7358d7393d9812cd7ed +Subproject commit c4a3df69cc41b3d5c1e4925dfadbba81ef278a73 diff --git a/flext-dbt-ldap b/flext-dbt-ldap index 9b11ad829..904714bda 160000 --- a/flext-dbt-ldap +++ b/flext-dbt-ldap @@ -1 +1 @@ -Subproject commit 9b11ad82978fa004727d6889549dd38a3d93f968 +Subproject commit 904714bda9a54c39f7db76e5bbda49994ad7f069 diff --git a/flext-dbt-ldif b/flext-dbt-ldif index cab7b9d64..7f021d924 160000 --- a/flext-dbt-ldif +++ b/flext-dbt-ldif @@ -1 +1 @@ -Subproject commit cab7b9d6488746af428047586ce2a8f7af52dac7 +Subproject commit 7f021d9245b624b3b0bc653bd237e141cf955a14 diff --git a/flext-dbt-oracle b/flext-dbt-oracle index 53ca1bd31..5de2407fc 160000 --- a/flext-dbt-oracle +++ b/flext-dbt-oracle @@ -1 +1 @@ -Subproject commit 53ca1bd31bcab325487f11826f41851ab3fdadd6 +Subproject commit 5de2407fc78fed7dcdc7a4a97f848172e1441e3c diff --git a/flext-dbt-oracle-wms b/flext-dbt-oracle-wms index 7fb9bee7d..eeb168eaf 160000 --- a/flext-dbt-oracle-wms +++ b/flext-dbt-oracle-wms @@ -1 +1 @@ -Subproject commit 7fb9bee7de373a1b927ab1a2a825d9d55a1d376d +Subproject commit eeb168eaf7e4c6d0484bba564b07ade6680f9524 diff --git a/flext-grpc b/flext-grpc index 928173f02..fa3794613 160000 --- a/flext-grpc +++ b/flext-grpc @@ -1 +1 @@ -Subproject commit 928173f0272e52d6403a69ebea70607eced9d594 +Subproject commit fa3794613610730db9d66a752875147371a29c21 diff --git a/flext-ldap b/flext-ldap index 26f958d5b..06205a2ab 160000 --- a/flext-ldap +++ b/flext-ldap @@ -1 +1 @@ -Subproject commit 26f958d5bdeece4867b185851559b28f5fb9f0de +Subproject commit 06205a2ab6d913208bd22437a0321312aeb3118c diff --git a/flext-ldif b/flext-ldif index 9601a4f1d..bf08ddc31 160000 --- a/flext-ldif +++ b/flext-ldif @@ -1 +1 @@ -Subproject commit 9601a4f1db0f89fc669603df0e65c32862196db1 +Subproject commit bf08ddc31397c409cdddd2cf7faaeefa7547ab26 diff --git a/flext-meltano b/flext-meltano index 089388afa..ac897280e 160000 --- a/flext-meltano +++ b/flext-meltano @@ -1 +1 @@ -Subproject commit 089388afade13edaca542a3360ab8c8f27d61641 +Subproject commit ac897280e61bc49ed174ab8a1b99f2d802470760 diff --git a/flext-observability b/flext-observability index 29d5b8422..c8889a4f6 160000 --- a/flext-observability +++ b/flext-observability @@ -1 +1 @@ -Subproject commit 29d5b84224895ede6f74448c48e6f4e9b1e4c13a +Subproject commit c8889a4f6e583b142e8dc61329ba34742b8f814f diff --git a/flext-oracle-oic b/flext-oracle-oic index 55723f864..730189b01 160000 --- a/flext-oracle-oic +++ b/flext-oracle-oic @@ -1 +1 @@ -Subproject commit 55723f864f1407fbaaacf41db390c0f6b5d69819 +Subproject commit 730189b013167c33bb0f07edcae7017f99901fb9 diff --git a/flext-oracle-wms b/flext-oracle-wms index 1c311133c..87cf9b1d4 160000 --- a/flext-oracle-wms +++ b/flext-oracle-wms @@ -1 +1 @@ -Subproject commit 1c311133cc604c2eff4ea5f753625d29c5acbc6d +Subproject commit 87cf9b1d46c7bcffe4c47942bfd095a3c5585153 diff --git a/flext-plugin b/flext-plugin index a280df9ca..6b7b8cdbb 160000 --- a/flext-plugin +++ b/flext-plugin @@ -1 +1 @@ -Subproject commit a280df9ca16770651bdcec9e2018376fc941ba1b +Subproject commit 6b7b8cdbba4efca3d99c08da9ccb628cdbae1a04 diff --git a/flext-quality b/flext-quality index 4e7d1006a..551b68bef 160000 --- a/flext-quality +++ b/flext-quality @@ -1 +1 @@ -Subproject commit 4e7d1006af1a41be3f43692dfcab953c60834842 +Subproject commit 551b68befb75f0f54fbbeca900ba0c0e33859fc9 diff --git a/flext-tap-ldap b/flext-tap-ldap index 4dba00c70..cb5da3089 160000 --- a/flext-tap-ldap +++ b/flext-tap-ldap @@ -1 +1 @@ -Subproject commit 4dba00c70df9ee7b506c9632dec6d0efe874ee91 +Subproject commit cb5da30892d8449a49d75d7c81d174b243b3a150 diff --git a/flext-tap-ldif b/flext-tap-ldif index f4a23aedd..f79a034c5 160000 --- a/flext-tap-ldif +++ b/flext-tap-ldif @@ -1 +1 @@ -Subproject commit f4a23aedd460923af4104a151cc2e8bb9f528b04 +Subproject commit f79a034c5b9505921a52b4998054f798d52e3b10 diff --git a/flext-tap-oracle b/flext-tap-oracle index 3d31ca418..0e85dc46e 160000 --- a/flext-tap-oracle +++ b/flext-tap-oracle @@ -1 +1 @@ -Subproject commit 3d31ca418dd9c3bfee30f387f5ee5af56fa27cc9 +Subproject commit 0e85dc46ed704ddce8bed2e0b5f57b3e63e48616 diff --git a/flext-tap-oracle-oic b/flext-tap-oracle-oic index 93abe60de..5dabc497d 160000 --- a/flext-tap-oracle-oic +++ b/flext-tap-oracle-oic @@ -1 +1 @@ -Subproject commit 93abe60dee23e611f7bb5ce09bc372a616fdfda7 +Subproject commit 5dabc497d320a94ae532ea61fd4252a6e4e87c2e diff --git a/flext-tap-oracle-wms b/flext-tap-oracle-wms index 2dc9beac3..a2fbc643f 160000 --- a/flext-tap-oracle-wms +++ b/flext-tap-oracle-wms @@ -1 +1 @@ -Subproject commit 2dc9beac3871daf27b1445ad8d5dff4dbd153950 +Subproject commit a2fbc643f41cffa6ebe56a40a2eaf183d54b8f93 diff --git a/flext-target-ldap b/flext-target-ldap index b77df9eae..4ae99f695 160000 --- a/flext-target-ldap +++ b/flext-target-ldap @@ -1 +1 @@ -Subproject commit b77df9eaea33e561bee99cbd4f9df0b35643c7a5 +Subproject commit 4ae99f69594ebd8e6a1faf9f597c908e15862cc3 diff --git a/flext-target-ldif b/flext-target-ldif index 86e45696c..43f6778d3 160000 --- a/flext-target-ldif +++ b/flext-target-ldif @@ -1 +1 @@ -Subproject commit 86e45696cc5a09427db201484de6965a07234f4b +Subproject commit 43f6778d34b3db454d97e312ca0da933576bec38 diff --git a/flext-target-oracle b/flext-target-oracle index 9e2a44663..9a2d56082 160000 --- a/flext-target-oracle +++ b/flext-target-oracle @@ -1 +1 @@ -Subproject commit 9e2a446639dca71dbcf39107522f73c17bf1f6fd +Subproject commit 9a2d560829b9cd322c53ff7e45f851fb62a64a0f diff --git a/flext-target-oracle-oic b/flext-target-oracle-oic index 0bd2fd6bf..ec8420a32 160000 --- a/flext-target-oracle-oic +++ b/flext-target-oracle-oic @@ -1 +1 @@ -Subproject commit 0bd2fd6bf571a3544b2534679c31d41e4f62d36f +Subproject commit ec8420a32c2e4e2f8e1af1432aceb03935c0abf2 diff --git a/flext-target-oracle-wms b/flext-target-oracle-wms index ae859540d..5938e0eaf 160000 --- a/flext-target-oracle-wms +++ b/flext-target-oracle-wms @@ -1 +1 @@ -Subproject commit ae859540d18eb0db7b0897c5ed1dd57aa784fd16 +Subproject commit 5938e0eaf78c75acbdac17133e7022b001103be9 diff --git a/flext-tests b/flext-tests index 88e14dd77..f79aee4b2 160000 --- a/flext-tests +++ b/flext-tests @@ -1 +1 @@ -Subproject commit 88e14dd77bdaaf87796c7a6013d7421a804fafbd +Subproject commit f79aee4b25b2e1cf35536e09545075cb92bf3a3c diff --git a/flext-web b/flext-web index 47533d613..b874630e3 160000 --- a/flext-web +++ b/flext-web @@ -1 +1 @@ -Subproject commit 47533d61344bbb5146767e98525b5b0c767d5112 +Subproject commit b874630e3915c7acdeb5a9eba5f450eea94b1977 From 1839318add4527b943ba7ed7c4d48cbd45b0755c Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 22:07:07 -0300 Subject: [PATCH 081/165] gitlink: adopt schema-v61 beads pin regeneration across all submodules (concurrent conform) --- flext-api | 2 +- flext-auth | 2 +- flext-cli | 2 +- flext-core | 2 +- flext-db-oracle | 2 +- flext-dbt-ldap | 2 +- flext-dbt-ldif | 2 +- flext-dbt-oracle | 2 +- flext-dbt-oracle-wms | 2 +- flext-grpc | 2 +- flext-infra | 2 +- flext-ldap | 2 +- flext-ldif | 2 +- flext-meltano | 2 +- flext-observability | 2 +- flext-oracle-oic | 2 +- flext-oracle-wms | 2 +- flext-plugin | 2 +- flext-quality | 2 +- flext-tap-ldap | 2 +- flext-tap-ldif | 2 +- flext-tap-oracle | 2 +- flext-tap-oracle-oic | 2 +- flext-tap-oracle-wms | 2 +- flext-target-ldap | 2 +- flext-target-ldif | 2 +- flext-target-oracle | 2 +- flext-target-oracle-oic | 2 +- flext-target-oracle-wms | 2 +- flext-tests | 2 +- flext-web | 2 +- 31 files changed, 31 insertions(+), 31 deletions(-) diff --git a/flext-api b/flext-api index 422719089..685612cae 160000 --- a/flext-api +++ b/flext-api @@ -1 +1 @@ -Subproject commit 42271908910746f31cbc4cca813081d11887e4b7 +Subproject commit 685612caea195e52a09be65a82717fdfa3351570 diff --git a/flext-auth b/flext-auth index 72a1f3e4f..375ff22ca 160000 --- a/flext-auth +++ b/flext-auth @@ -1 +1 @@ -Subproject commit 72a1f3e4f67ad00be2d525467495beedd9ca6852 +Subproject commit 375ff22ca51cdbf90f872d748799190b73b3bed1 diff --git a/flext-cli b/flext-cli index b572c7b72..894043a6f 160000 --- a/flext-cli +++ b/flext-cli @@ -1 +1 @@ -Subproject commit b572c7b7230db7cb6c1cbfdf48e2516bd55d98a1 +Subproject commit 894043a6f7c1f8e8f16c0981c8b9a796b7a5f3ad diff --git a/flext-core b/flext-core index 4067fe069..da106900e 160000 --- a/flext-core +++ b/flext-core @@ -1 +1 @@ -Subproject commit 4067fe06945d7bf724c7edfbfae80544b6827911 +Subproject commit da106900ea50f8fc530f7adbfef97ba461586347 diff --git a/flext-db-oracle b/flext-db-oracle index c4a3df69c..f496c0b87 160000 --- a/flext-db-oracle +++ b/flext-db-oracle @@ -1 +1 @@ -Subproject commit c4a3df69cc41b3d5c1e4925dfadbba81ef278a73 +Subproject commit f496c0b87e0556bec619b73bb97dc1af02de54d5 diff --git a/flext-dbt-ldap b/flext-dbt-ldap index 904714bda..ec0c7ec79 160000 --- a/flext-dbt-ldap +++ b/flext-dbt-ldap @@ -1 +1 @@ -Subproject commit 904714bda9a54c39f7db76e5bbda49994ad7f069 +Subproject commit ec0c7ec79cc2426cc18d2966ef38a6d96b32bea9 diff --git a/flext-dbt-ldif b/flext-dbt-ldif index 7f021d924..9a42e5695 160000 --- a/flext-dbt-ldif +++ b/flext-dbt-ldif @@ -1 +1 @@ -Subproject commit 7f021d9245b624b3b0bc653bd237e141cf955a14 +Subproject commit 9a42e569595f545772b14bed59a926b4b8685cc7 diff --git a/flext-dbt-oracle b/flext-dbt-oracle index 5de2407fc..8b8700d50 160000 --- a/flext-dbt-oracle +++ b/flext-dbt-oracle @@ -1 +1 @@ -Subproject commit 5de2407fc78fed7dcdc7a4a97f848172e1441e3c +Subproject commit 8b8700d50304b69c411505b2bcb4019472ce25a8 diff --git a/flext-dbt-oracle-wms b/flext-dbt-oracle-wms index eeb168eaf..e9844533b 160000 --- a/flext-dbt-oracle-wms +++ b/flext-dbt-oracle-wms @@ -1 +1 @@ -Subproject commit eeb168eaf7e4c6d0484bba564b07ade6680f9524 +Subproject commit e9844533b33101480c22b709be1bd944543acb5e diff --git a/flext-grpc b/flext-grpc index fa3794613..d5d19e96a 160000 --- a/flext-grpc +++ b/flext-grpc @@ -1 +1 @@ -Subproject commit fa3794613610730db9d66a752875147371a29c21 +Subproject commit d5d19e96a4b6f048496c964a083e59765b7fba2b diff --git a/flext-infra b/flext-infra index 00282c065..f9b09f786 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 00282c06553ac4b6c9647c63d87f6fb36bbed386 +Subproject commit f9b09f786f0e517bebfd423799eda3565f49e2ff diff --git a/flext-ldap b/flext-ldap index 06205a2ab..185f82994 160000 --- a/flext-ldap +++ b/flext-ldap @@ -1 +1 @@ -Subproject commit 06205a2ab6d913208bd22437a0321312aeb3118c +Subproject commit 185f82994c4724ca4ab7ad90553a5eb93f1e2516 diff --git a/flext-ldif b/flext-ldif index bf08ddc31..42d935918 160000 --- a/flext-ldif +++ b/flext-ldif @@ -1 +1 @@ -Subproject commit bf08ddc31397c409cdddd2cf7faaeefa7547ab26 +Subproject commit 42d9359182d4f35d61da73d194de1be61c10aae3 diff --git a/flext-meltano b/flext-meltano index ac897280e..7e7d08971 160000 --- a/flext-meltano +++ b/flext-meltano @@ -1 +1 @@ -Subproject commit ac897280e61bc49ed174ab8a1b99f2d802470760 +Subproject commit 7e7d08971ea80117878452d7d929cd559ca17a07 diff --git a/flext-observability b/flext-observability index c8889a4f6..a12eba86e 160000 --- a/flext-observability +++ b/flext-observability @@ -1 +1 @@ -Subproject commit c8889a4f6e583b142e8dc61329ba34742b8f814f +Subproject commit a12eba86e9522c0a136445d756b036874e237388 diff --git a/flext-oracle-oic b/flext-oracle-oic index 730189b01..bffaed482 160000 --- a/flext-oracle-oic +++ b/flext-oracle-oic @@ -1 +1 @@ -Subproject commit 730189b013167c33bb0f07edcae7017f99901fb9 +Subproject commit bffaed482d9f127a400c83a4b4dc0b84241ddc97 diff --git a/flext-oracle-wms b/flext-oracle-wms index 87cf9b1d4..d1be8b317 160000 --- a/flext-oracle-wms +++ b/flext-oracle-wms @@ -1 +1 @@ -Subproject commit 87cf9b1d46c7bcffe4c47942bfd095a3c5585153 +Subproject commit d1be8b3178c9087b202d66a7bae2e45d2a3b8120 diff --git a/flext-plugin b/flext-plugin index 6b7b8cdbb..35204ad43 160000 --- a/flext-plugin +++ b/flext-plugin @@ -1 +1 @@ -Subproject commit 6b7b8cdbba4efca3d99c08da9ccb628cdbae1a04 +Subproject commit 35204ad4333f744af61c6bd761aa3be606def76c diff --git a/flext-quality b/flext-quality index 551b68bef..d10cc4c13 160000 --- a/flext-quality +++ b/flext-quality @@ -1 +1 @@ -Subproject commit 551b68befb75f0f54fbbeca900ba0c0e33859fc9 +Subproject commit d10cc4c138fce7c383c49a232fe78ba5734ff60f diff --git a/flext-tap-ldap b/flext-tap-ldap index cb5da3089..fe03a9359 160000 --- a/flext-tap-ldap +++ b/flext-tap-ldap @@ -1 +1 @@ -Subproject commit cb5da30892d8449a49d75d7c81d174b243b3a150 +Subproject commit fe03a9359f731c0cbba58916a2ca13529afd1506 diff --git a/flext-tap-ldif b/flext-tap-ldif index f79a034c5..240ecb0b9 160000 --- a/flext-tap-ldif +++ b/flext-tap-ldif @@ -1 +1 @@ -Subproject commit f79a034c5b9505921a52b4998054f798d52e3b10 +Subproject commit 240ecb0b94759fe693b3120775bba5e9f5218383 diff --git a/flext-tap-oracle b/flext-tap-oracle index 0e85dc46e..63f7a1770 160000 --- a/flext-tap-oracle +++ b/flext-tap-oracle @@ -1 +1 @@ -Subproject commit 0e85dc46ed704ddce8bed2e0b5f57b3e63e48616 +Subproject commit 63f7a177008b44e94286bd5f297cb5f2881783ef diff --git a/flext-tap-oracle-oic b/flext-tap-oracle-oic index 5dabc497d..1b3ab14d9 160000 --- a/flext-tap-oracle-oic +++ b/flext-tap-oracle-oic @@ -1 +1 @@ -Subproject commit 5dabc497d320a94ae532ea61fd4252a6e4e87c2e +Subproject commit 1b3ab14d9feb6a665aeefe05c2561c201ac8943e diff --git a/flext-tap-oracle-wms b/flext-tap-oracle-wms index a2fbc643f..201c3830d 160000 --- a/flext-tap-oracle-wms +++ b/flext-tap-oracle-wms @@ -1 +1 @@ -Subproject commit a2fbc643f41cffa6ebe56a40a2eaf183d54b8f93 +Subproject commit 201c3830d274571d4b302f8f231bc90a766b910f diff --git a/flext-target-ldap b/flext-target-ldap index 4ae99f695..27e169980 160000 --- a/flext-target-ldap +++ b/flext-target-ldap @@ -1 +1 @@ -Subproject commit 4ae99f69594ebd8e6a1faf9f597c908e15862cc3 +Subproject commit 27e1699804d85c4cf0b954faca05bccad2a84528 diff --git a/flext-target-ldif b/flext-target-ldif index 43f6778d3..2f30aec53 160000 --- a/flext-target-ldif +++ b/flext-target-ldif @@ -1 +1 @@ -Subproject commit 43f6778d34b3db454d97e312ca0da933576bec38 +Subproject commit 2f30aec53d86004012063a9bb765a38d2bb6bba5 diff --git a/flext-target-oracle b/flext-target-oracle index 9a2d56082..aedf46b81 160000 --- a/flext-target-oracle +++ b/flext-target-oracle @@ -1 +1 @@ -Subproject commit 9a2d560829b9cd322c53ff7e45f851fb62a64a0f +Subproject commit aedf46b81768c65edf6d0b0485d9a9cffeb8db97 diff --git a/flext-target-oracle-oic b/flext-target-oracle-oic index ec8420a32..f45d2a91d 160000 --- a/flext-target-oracle-oic +++ b/flext-target-oracle-oic @@ -1 +1 @@ -Subproject commit ec8420a32c2e4e2f8e1af1432aceb03935c0abf2 +Subproject commit f45d2a91d0c202e00e1db832a46da6b1bd9f6c7e diff --git a/flext-target-oracle-wms b/flext-target-oracle-wms index 5938e0eaf..b97d2778b 160000 --- a/flext-target-oracle-wms +++ b/flext-target-oracle-wms @@ -1 +1 @@ -Subproject commit 5938e0eaf78c75acbdac17133e7022b001103be9 +Subproject commit b97d2778b08041bb5c62a9ea2bea0714ca01e931 diff --git a/flext-tests b/flext-tests index f79aee4b2..ebf24f768 160000 --- a/flext-tests +++ b/flext-tests @@ -1 +1 @@ -Subproject commit f79aee4b25b2e1cf35536e09545075cb92bf3a3c +Subproject commit ebf24f768e745b98ac7051b50a1666a3312e1dd8 diff --git a/flext-web b/flext-web index b874630e3..a2024fee3 160000 --- a/flext-web +++ b/flext-web @@ -1 +1 @@ -Subproject commit b874630e3915c7acdeb5a9eba5f450eea94b1977 +Subproject commit a2024fee309212d8e3e1de39b51a1c096ae5b90d From 0723414dfe77c0d5b30696ca6324135c1bbecd95 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 22:07:58 -0300 Subject: [PATCH 082/165] gitlink(flext-infra): converge to 3d993bbc (merged model-driven Beads context) --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index f9b09f786..3d993bbce 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit f9b09f786f0e517bebfd423799eda3565f49e2ff +Subproject commit 3d993bbce50d3ac6e9d70d0558ee370e0fb8593f From 436b75894beb4c6d6cf0c10e27685b816c5f29d4 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 22:09:07 -0300 Subject: [PATCH 083/165] chore(codegen): advance every member gitlink to the schema-v61 beads pin All 31 members regenerated from the flext-infra SSOT and pushed to 0.12.0-dev: a concurrent merge had reintroduced the retired github:gastownhall/beads 1.1.2 pin (Dolt schema v53) that fails every conform preflight against the shared v61 mro ledger. flext-infra also advances to 3d993bbc, adopting the concurrent lane's model-driven Beads runtime context on top of this lane's typed-declaration refactor. --- flext-api | 2 +- flext-auth | 2 +- flext-cli | 2 +- flext-core | 2 +- flext-db-oracle | 2 +- flext-dbt-ldap | 2 +- flext-dbt-ldif | 2 +- flext-dbt-oracle | 2 +- flext-dbt-oracle-wms | 2 +- flext-grpc | 2 +- flext-infra | 2 +- flext-ldap | 2 +- flext-ldif | 2 +- flext-meltano | 2 +- flext-observability | 2 +- flext-oracle-oic | 2 +- flext-oracle-wms | 2 +- flext-plugin | 2 +- flext-quality | 2 +- flext-tap-ldap | 2 +- flext-tap-ldif | 2 +- flext-tap-oracle | 2 +- flext-tap-oracle-oic | 2 +- flext-tap-oracle-wms | 2 +- flext-target-ldap | 2 +- flext-target-ldif | 2 +- flext-target-oracle | 2 +- flext-target-oracle-oic | 2 +- flext-target-oracle-wms | 2 +- flext-tests | 2 +- flext-web | 2 +- 31 files changed, 31 insertions(+), 31 deletions(-) diff --git a/flext-api b/flext-api index 422719089..685612cae 160000 --- a/flext-api +++ b/flext-api @@ -1 +1 @@ -Subproject commit 42271908910746f31cbc4cca813081d11887e4b7 +Subproject commit 685612caea195e52a09be65a82717fdfa3351570 diff --git a/flext-auth b/flext-auth index 72a1f3e4f..375ff22ca 160000 --- a/flext-auth +++ b/flext-auth @@ -1 +1 @@ -Subproject commit 72a1f3e4f67ad00be2d525467495beedd9ca6852 +Subproject commit 375ff22ca51cdbf90f872d748799190b73b3bed1 diff --git a/flext-cli b/flext-cli index b572c7b72..894043a6f 160000 --- a/flext-cli +++ b/flext-cli @@ -1 +1 @@ -Subproject commit b572c7b7230db7cb6c1cbfdf48e2516bd55d98a1 +Subproject commit 894043a6f7c1f8e8f16c0981c8b9a796b7a5f3ad diff --git a/flext-core b/flext-core index 4067fe069..da106900e 160000 --- a/flext-core +++ b/flext-core @@ -1 +1 @@ -Subproject commit 4067fe06945d7bf724c7edfbfae80544b6827911 +Subproject commit da106900ea50f8fc530f7adbfef97ba461586347 diff --git a/flext-db-oracle b/flext-db-oracle index c4a3df69c..f496c0b87 160000 --- a/flext-db-oracle +++ b/flext-db-oracle @@ -1 +1 @@ -Subproject commit c4a3df69cc41b3d5c1e4925dfadbba81ef278a73 +Subproject commit f496c0b87e0556bec619b73bb97dc1af02de54d5 diff --git a/flext-dbt-ldap b/flext-dbt-ldap index 904714bda..ec0c7ec79 160000 --- a/flext-dbt-ldap +++ b/flext-dbt-ldap @@ -1 +1 @@ -Subproject commit 904714bda9a54c39f7db76e5bbda49994ad7f069 +Subproject commit ec0c7ec79cc2426cc18d2966ef38a6d96b32bea9 diff --git a/flext-dbt-ldif b/flext-dbt-ldif index 7f021d924..9a42e5695 160000 --- a/flext-dbt-ldif +++ b/flext-dbt-ldif @@ -1 +1 @@ -Subproject commit 7f021d9245b624b3b0bc653bd237e141cf955a14 +Subproject commit 9a42e569595f545772b14bed59a926b4b8685cc7 diff --git a/flext-dbt-oracle b/flext-dbt-oracle index 5de2407fc..8b8700d50 160000 --- a/flext-dbt-oracle +++ b/flext-dbt-oracle @@ -1 +1 @@ -Subproject commit 5de2407fc78fed7dcdc7a4a97f848172e1441e3c +Subproject commit 8b8700d50304b69c411505b2bcb4019472ce25a8 diff --git a/flext-dbt-oracle-wms b/flext-dbt-oracle-wms index eeb168eaf..e9844533b 160000 --- a/flext-dbt-oracle-wms +++ b/flext-dbt-oracle-wms @@ -1 +1 @@ -Subproject commit eeb168eaf7e4c6d0484bba564b07ade6680f9524 +Subproject commit e9844533b33101480c22b709be1bd944543acb5e diff --git a/flext-grpc b/flext-grpc index fa3794613..d5d19e96a 160000 --- a/flext-grpc +++ b/flext-grpc @@ -1 +1 @@ -Subproject commit fa3794613610730db9d66a752875147371a29c21 +Subproject commit d5d19e96a4b6f048496c964a083e59765b7fba2b diff --git a/flext-infra b/flext-infra index 00282c065..3d993bbce 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 00282c06553ac4b6c9647c63d87f6fb36bbed386 +Subproject commit 3d993bbce50d3ac6e9d70d0558ee370e0fb8593f diff --git a/flext-ldap b/flext-ldap index 06205a2ab..185f82994 160000 --- a/flext-ldap +++ b/flext-ldap @@ -1 +1 @@ -Subproject commit 06205a2ab6d913208bd22437a0321312aeb3118c +Subproject commit 185f82994c4724ca4ab7ad90553a5eb93f1e2516 diff --git a/flext-ldif b/flext-ldif index bf08ddc31..42d935918 160000 --- a/flext-ldif +++ b/flext-ldif @@ -1 +1 @@ -Subproject commit bf08ddc31397c409cdddd2cf7faaeefa7547ab26 +Subproject commit 42d9359182d4f35d61da73d194de1be61c10aae3 diff --git a/flext-meltano b/flext-meltano index ac897280e..7e7d08971 160000 --- a/flext-meltano +++ b/flext-meltano @@ -1 +1 @@ -Subproject commit ac897280e61bc49ed174ab8a1b99f2d802470760 +Subproject commit 7e7d08971ea80117878452d7d929cd559ca17a07 diff --git a/flext-observability b/flext-observability index c8889a4f6..a12eba86e 160000 --- a/flext-observability +++ b/flext-observability @@ -1 +1 @@ -Subproject commit c8889a4f6e583b142e8dc61329ba34742b8f814f +Subproject commit a12eba86e9522c0a136445d756b036874e237388 diff --git a/flext-oracle-oic b/flext-oracle-oic index 730189b01..bffaed482 160000 --- a/flext-oracle-oic +++ b/flext-oracle-oic @@ -1 +1 @@ -Subproject commit 730189b013167c33bb0f07edcae7017f99901fb9 +Subproject commit bffaed482d9f127a400c83a4b4dc0b84241ddc97 diff --git a/flext-oracle-wms b/flext-oracle-wms index 87cf9b1d4..d1be8b317 160000 --- a/flext-oracle-wms +++ b/flext-oracle-wms @@ -1 +1 @@ -Subproject commit 87cf9b1d46c7bcffe4c47942bfd095a3c5585153 +Subproject commit d1be8b3178c9087b202d66a7bae2e45d2a3b8120 diff --git a/flext-plugin b/flext-plugin index 6b7b8cdbb..35204ad43 160000 --- a/flext-plugin +++ b/flext-plugin @@ -1 +1 @@ -Subproject commit 6b7b8cdbba4efca3d99c08da9ccb628cdbae1a04 +Subproject commit 35204ad4333f744af61c6bd761aa3be606def76c diff --git a/flext-quality b/flext-quality index 551b68bef..d10cc4c13 160000 --- a/flext-quality +++ b/flext-quality @@ -1 +1 @@ -Subproject commit 551b68befb75f0f54fbbeca900ba0c0e33859fc9 +Subproject commit d10cc4c138fce7c383c49a232fe78ba5734ff60f diff --git a/flext-tap-ldap b/flext-tap-ldap index cb5da3089..fe03a9359 160000 --- a/flext-tap-ldap +++ b/flext-tap-ldap @@ -1 +1 @@ -Subproject commit cb5da30892d8449a49d75d7c81d174b243b3a150 +Subproject commit fe03a9359f731c0cbba58916a2ca13529afd1506 diff --git a/flext-tap-ldif b/flext-tap-ldif index f79a034c5..240ecb0b9 160000 --- a/flext-tap-ldif +++ b/flext-tap-ldif @@ -1 +1 @@ -Subproject commit f79a034c5b9505921a52b4998054f798d52e3b10 +Subproject commit 240ecb0b94759fe693b3120775bba5e9f5218383 diff --git a/flext-tap-oracle b/flext-tap-oracle index 0e85dc46e..63f7a1770 160000 --- a/flext-tap-oracle +++ b/flext-tap-oracle @@ -1 +1 @@ -Subproject commit 0e85dc46ed704ddce8bed2e0b5f57b3e63e48616 +Subproject commit 63f7a177008b44e94286bd5f297cb5f2881783ef diff --git a/flext-tap-oracle-oic b/flext-tap-oracle-oic index 5dabc497d..1b3ab14d9 160000 --- a/flext-tap-oracle-oic +++ b/flext-tap-oracle-oic @@ -1 +1 @@ -Subproject commit 5dabc497d320a94ae532ea61fd4252a6e4e87c2e +Subproject commit 1b3ab14d9feb6a665aeefe05c2561c201ac8943e diff --git a/flext-tap-oracle-wms b/flext-tap-oracle-wms index a2fbc643f..201c3830d 160000 --- a/flext-tap-oracle-wms +++ b/flext-tap-oracle-wms @@ -1 +1 @@ -Subproject commit a2fbc643f41cffa6ebe56a40a2eaf183d54b8f93 +Subproject commit 201c3830d274571d4b302f8f231bc90a766b910f diff --git a/flext-target-ldap b/flext-target-ldap index 4ae99f695..27e169980 160000 --- a/flext-target-ldap +++ b/flext-target-ldap @@ -1 +1 @@ -Subproject commit 4ae99f69594ebd8e6a1faf9f597c908e15862cc3 +Subproject commit 27e1699804d85c4cf0b954faca05bccad2a84528 diff --git a/flext-target-ldif b/flext-target-ldif index 43f6778d3..2f30aec53 160000 --- a/flext-target-ldif +++ b/flext-target-ldif @@ -1 +1 @@ -Subproject commit 43f6778d34b3db454d97e312ca0da933576bec38 +Subproject commit 2f30aec53d86004012063a9bb765a38d2bb6bba5 diff --git a/flext-target-oracle b/flext-target-oracle index 9a2d56082..aedf46b81 160000 --- a/flext-target-oracle +++ b/flext-target-oracle @@ -1 +1 @@ -Subproject commit 9a2d560829b9cd322c53ff7e45f851fb62a64a0f +Subproject commit aedf46b81768c65edf6d0b0485d9a9cffeb8db97 diff --git a/flext-target-oracle-oic b/flext-target-oracle-oic index ec8420a32..f45d2a91d 160000 --- a/flext-target-oracle-oic +++ b/flext-target-oracle-oic @@ -1 +1 @@ -Subproject commit ec8420a32c2e4e2f8e1af1432aceb03935c0abf2 +Subproject commit f45d2a91d0c202e00e1db832a46da6b1bd9f6c7e diff --git a/flext-target-oracle-wms b/flext-target-oracle-wms index 5938e0eaf..b97d2778b 160000 --- a/flext-target-oracle-wms +++ b/flext-target-oracle-wms @@ -1 +1 @@ -Subproject commit 5938e0eaf78c75acbdac17133e7022b001103be9 +Subproject commit b97d2778b08041bb5c62a9ea2bea0714ca01e931 diff --git a/flext-tests b/flext-tests index f79aee4b2..ebf24f768 160000 --- a/flext-tests +++ b/flext-tests @@ -1 +1 @@ -Subproject commit f79aee4b25b2e1cf35536e09545075cb92bf3a3c +Subproject commit ebf24f768e745b98ac7051b50a1666a3312e1dd8 diff --git a/flext-web b/flext-web index b874630e3..a2024fee3 160000 --- a/flext-web +++ b/flext-web @@ -1 +1 @@ -Subproject commit b874630e3915c7acdeb5a9eba5f450eea94b1977 +Subproject commit a2024fee309212d8e3e1de39b51a1c096ae5b90d From 8cc1d2c4161e8f71c1542219ea21809222546d90 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 22:22:29 -0300 Subject: [PATCH 084/165] gitlink(flext-infra): converge to 057923d6 (regenerated surfaces after governance merge) --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index 3d993bbce..057923d66 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 3d993bbce50d3ac6e9d70d0558ee370e0fb8593f +Subproject commit 057923d66f611e221d55ad2c36ce1cd8beeeac1f From 06b89b53b7a74322a656587a311000e4d96ca9da Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 23:00:58 -0300 Subject: [PATCH 085/165] gitlink(flext-infra): required ledger_root contract (ed053532) --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index 057923d66..ed053532b 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 057923d66f611e221d55ad2c36ce1cd8beeeac1f +Subproject commit ed053532b060d12c1be1d8904305a4313f93682e From 982c857e279066ce712c594bcc5bd5acd668897e Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Thu, 30 Jul 2026 23:12:42 -0300 Subject: [PATCH 086/165] gitlink(flext-infra): pytest process deadline from PR #72 (21e94a72) --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index ed053532b..21e94a72d 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit ed053532b060d12c1be1d8904305a4313f93682e +Subproject commit 21e94a72d9e42c31f3ec279d388cf30fa4c4b2c4 From 6ea3d5ff0455b23213c560d75fbacb7bf8c67cec Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Fri, 31 Jul 2026 10:38:01 -0300 Subject: [PATCH 087/165] chore(superproject): advance flext-infra to dd48f8637 (pytest runner + lock pins) --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index 21e94a72d..dd48f8637 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 21e94a72d9e42c31f3ec279d388cf30fa4c4b2c4 +Subproject commit dd48f8637a4d6732e59571a9c3914f844b96e817 From 1f99a7b81574910e1c482f90dd483dcfbcd679c1 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Fri, 31 Jul 2026 11:57:09 -0300 Subject: [PATCH 088/165] chore(superproject): advance flext-infra to 66c59cda9 (PRs 64/74/76/79/83 landed) --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index dd48f8637..66c59cda9 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit dd48f8637a4d6732e59571a9c3914f844b96e817 +Subproject commit 66c59cda95fbe10717179b41971273bb8052dd99 From 5fefeb24935e8bee4c94e22f38be4c709f3c5078 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Fri, 31 Jul 2026 23:41:55 -0300 Subject: [PATCH 089/165] chore(deps): bump flext-core gitlink to the returns-free result contract Records 6c85f1ced, which removes the last returns residue from FlextResult so r[None].ok(None) stops raising across the fleet. --- flext-core | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-core b/flext-core index da106900e..6c85f1ced 160000 --- a/flext-core +++ b/flext-core @@ -1 +1 @@ -Subproject commit da106900ea50f8fc530f7adbfef97ba461586347 +Subproject commit 6c85f1cedacd47fc48f43f8c597ac6b829e2094b From 9e2041671003ab1b7fbfeb85ff7595c886ade3bd Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Fri, 31 Jul 2026 23:42:12 -0300 Subject: [PATCH 090/165] chore(deps): record published flext-infra and flext-cli gitlinks Both heads are already on origin/0.12.0-dev; the superproject still pointed at older commits, so submodule update would have rolled the members back over live work. --- flext-cli | 2 +- flext-infra | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/flext-cli b/flext-cli index 894043a6f..1ff7026ac 160000 --- a/flext-cli +++ b/flext-cli @@ -1 +1 @@ -Subproject commit 894043a6f7c1f8e8f16c0981c8b9a796b7a5f3ad +Subproject commit 1ff7026ac2dcf3122b39fd1b3e48a584f03a7685 diff --git a/flext-infra b/flext-infra index 66c59cda9..0dc33c293 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 66c59cda95fbe10717179b41971273bb8052dd99 +Subproject commit 0dc33c293cf2788f1b0808939feb284202affb92 From d1692c5516b3393f9708700368f9742298e0b689 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Fri, 31 Jul 2026 23:43:39 -0300 Subject: [PATCH 091/165] chore(deps): advance flext-infra gitlink to published 0.12.0-dev head Local checkout was stale at 0dc33c293; origin/0.12.0-dev has since moved to 6828c98fa and contains it. Fast-forwarded and recorded so setup no longer sees a gitlink divergence. --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index 0dc33c293..6828c98fa 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 0dc33c293cf2788f1b0808939feb284202affb92 +Subproject commit 6828c98fae0f6128827dd29ca1afe7bc7a8f8406 From b6511b132bc08e5a004d964a92a68ca386a6f6de Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Sat, 1 Aug 2026 00:37:19 -0300 Subject: [PATCH 092/165] chore(deps): advance flext-infra gitlink to the restored config load Records 10bd3a356, which makes config.Infra importable again and lets base.mk render, taking the flext-infra suite from zero collectible tests to 2175 passing. --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index 6828c98fa..10bd3a356 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 6828c98fae0f6128827dd29ca1afe7bc7a8f8406 +Subproject commit 10bd3a356a03587ef21e9dc91b039e6382e0d496 From a31fd853e9d7be8e5759debb20ef171dee8066ff Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Sat, 1 Aug 2026 01:18:41 -0300 Subject: [PATCH 093/165] chore(deps): advance flext-infra gitlink through the stabilization checkpoints Records c9d130608: conform renders again, the orchestrator reports a readable exit status, and the modernizer honors the requested table order. flext-infra now runs 2259 tests where it previously collected none. --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index 10bd3a356..c9d130608 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 10bd3a356a03587ef21e9dc91b039e6382e0d496 +Subproject commit c9d130608d57b3cfb1458efa04af2c742c1ba6ea From 7c274234dbabddb03a43860ba073fb17f1b584a7 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Sat, 1 Aug 2026 08:55:28 -0300 Subject: [PATCH 094/165] chore(deps): advance flext-infra gitlink through the topology and catalog fixes Records 5e9e4fd61. Child topology now resolves from Git, the detector no longer expects a removed catalog, and the pinned-action assertions match the yamllint-clean rendering. flext-infra is at 7 failures / 2269 passing. --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index c9d130608..5e9e4fd61 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit c9d130608d57b3cfb1458efa04af2c742c1ba6ea +Subproject commit 5e9e4fd61d2b76c10a4251b8f3e149e371980f9c From d2ffad26f25fe7bdcfa2f91402a82cc0292eac9a Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Sat, 1 Aug 2026 10:01:34 -0300 Subject: [PATCH 095/165] chore(deps): advance flext-infra gitlink to a fully green suite Records fc0e828c0: 2276 passed, 0 failed, from a tree whose suite could not collect a single test. --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index 5e9e4fd61..fc0e828c0 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 5e9e4fd61d2b76c10a4251b8f3e149e371980f9c +Subproject commit fc0e828c030a3e098e0c82e728e1b5d20d68b11e From 8bfda8d0e275a4ba4663acbc2de6cc0dfb1ab4d9 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Sat, 1 Aug 2026 10:19:39 -0300 Subject: [PATCH 096/165] chore(deps): advance flext-infra gitlink with the corrected CI matrix Records e4437ff69, which lands PR #91's setup-python and uv caching without the step-boundary defect that broke its checks. --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index fc0e828c0..2316531bb 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit fc0e828c030a3e098e0c82e728e1b5d20d68b11e +Subproject commit 2316531bb323af83baee541c2d34ad0a50d656fd From eca8797893f22e9b800c9cb246b8c0ce8b93dd66 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Sat, 1 Aug 2026 10:42:52 -0300 Subject: [PATCH 097/165] fix(codegen): propagate direnv activation across fleet --- .envrc | 25 +++++++++++++++++++++---- flext-api | 2 +- flext-auth | 2 +- flext-cli | 2 +- flext-core | 2 +- flext-db-oracle | 2 +- flext-dbt-ldap | 2 +- flext-dbt-ldif | 2 +- flext-dbt-oracle | 2 +- flext-dbt-oracle-wms | 2 +- flext-grpc | 2 +- flext-infra | 2 +- flext-ldap | 2 +- flext-ldif | 2 +- flext-meltano | 2 +- flext-observability | 2 +- flext-oracle-oic | 2 +- flext-oracle-wms | 2 +- flext-plugin | 2 +- flext-quality | 2 +- flext-tap-ldap | 2 +- flext-tap-ldif | 2 +- flext-tap-oracle | 2 +- flext-tap-oracle-oic | 2 +- flext-tap-oracle-wms | 2 +- flext-target-ldap | 2 +- flext-target-ldif | 2 +- flext-target-oracle | 2 +- flext-target-oracle-oic | 2 +- flext-target-oracle-wms | 2 +- flext-tests | 2 +- flext-web | 2 +- 32 files changed, 52 insertions(+), 35 deletions(-) diff --git a/.envrc b/.envrc index 06ad2946c..a74bca2de 100644 --- a/.envrc +++ b/.envrc @@ -1,26 +1,42 @@ # Generated by `flext-infra codegen conform`. +# === SECTION: header (managed) === +# Source: template (base/.envrc.j2) +# Free: no # Canonical direnv activation for one inferred repository environment. +# End SECTION: header +# === SECTION: strict evaluation and watched inputs (managed) === +# Source: template (direnv stdlib contract) strict_env watch_file .mise.toml watch_file pyproject.toml +# End SECTION: strict evaluation and watched inputs -# `DIRENV_DIR` is the canonical directory containing the loaded .envrc. It is -# prefixed by "-" by direnv and remains stable when `direnv exec` starts below -# the repository root. -PROJECT_ROOT="${DIRENV_DIR#-}" +# === SECTION: repository environment (managed) === +# Source: computed:nearest-pyproject-via-direnv-find_up + template +PROJECT_ROOT="$(find_up pyproject.toml)" +PROJECT_ROOT="${PROJECT_ROOT%/*}" VENV_DIR="${PROJECT_ROOT}/.venv" export PROJECT_ROOT export PYTHON_KEYRING_BACKEND="keyring.backends.null.Keyring" export PYTHONDONTWRITEBYTECODE=1 export PYTHONUNBUFFERED=1 +# End SECTION: repository environment +# === SECTION: mise activation (managed) === +# Source: template (optional installed mise runtime) if command -v mise >/dev/null 2>&1; then eval "$(mise activate bash --shims)" fi +# End SECTION: mise activation +# === SECTION: configured paths (managed) === +# Source: template + config:environment_path_prepends PATH_add "${PROJECT_ROOT}/bin" +# End SECTION: configured paths +# === SECTION: virtual environment (managed) === +# Source: computed:nearest-pyproject-root/.venv + template if [[ -f "${PROJECT_ROOT}/pyproject.toml" && -d "${VENV_DIR}" ]]; then export UV_PROJECT_ENVIRONMENT="${VENV_DIR}" export VIRTUAL_ENV="${VENV_DIR}" @@ -29,3 +45,4 @@ else unset UV_PROJECT_ENVIRONMENT unset VIRTUAL_ENV fi +# End SECTION: virtual environment diff --git a/flext-api b/flext-api index 685612cae..855911d96 160000 --- a/flext-api +++ b/flext-api @@ -1 +1 @@ -Subproject commit 685612caea195e52a09be65a82717fdfa3351570 +Subproject commit 855911d96d08f80d9208e68ca89625ee5e4297b6 diff --git a/flext-auth b/flext-auth index 375ff22ca..4197fbc25 160000 --- a/flext-auth +++ b/flext-auth @@ -1 +1 @@ -Subproject commit 375ff22ca51cdbf90f872d748799190b73b3bed1 +Subproject commit 4197fbc251837f36e31ac86d6783ed21cddbc7ff diff --git a/flext-cli b/flext-cli index 1ff7026ac..aaa894d60 160000 --- a/flext-cli +++ b/flext-cli @@ -1 +1 @@ -Subproject commit 1ff7026ac2dcf3122b39fd1b3e48a584f03a7685 +Subproject commit aaa894d605d539f35dc2cd506efe8ae82c74f514 diff --git a/flext-core b/flext-core index 6c85f1ced..ef0e952a0 160000 --- a/flext-core +++ b/flext-core @@ -1 +1 @@ -Subproject commit 6c85f1cedacd47fc48f43f8c597ac6b829e2094b +Subproject commit ef0e952a0d8c1d1a1d0bfa4feb0dc0d520f8428b diff --git a/flext-db-oracle b/flext-db-oracle index f496c0b87..c3a8fb73a 160000 --- a/flext-db-oracle +++ b/flext-db-oracle @@ -1 +1 @@ -Subproject commit f496c0b87e0556bec619b73bb97dc1af02de54d5 +Subproject commit c3a8fb73ab38348b2ac73f6326884b704fb26a5a diff --git a/flext-dbt-ldap b/flext-dbt-ldap index ec0c7ec79..248f214f4 160000 --- a/flext-dbt-ldap +++ b/flext-dbt-ldap @@ -1 +1 @@ -Subproject commit ec0c7ec79cc2426cc18d2966ef38a6d96b32bea9 +Subproject commit 248f214f49d57c342e5f500653dc271ca85024aa diff --git a/flext-dbt-ldif b/flext-dbt-ldif index 9a42e5695..727c91e6f 160000 --- a/flext-dbt-ldif +++ b/flext-dbt-ldif @@ -1 +1 @@ -Subproject commit 9a42e569595f545772b14bed59a926b4b8685cc7 +Subproject commit 727c91e6f76fd28b8b70c77b6b8722a4a7b736ba diff --git a/flext-dbt-oracle b/flext-dbt-oracle index 8b8700d50..fa808a181 160000 --- a/flext-dbt-oracle +++ b/flext-dbt-oracle @@ -1 +1 @@ -Subproject commit 8b8700d50304b69c411505b2bcb4019472ce25a8 +Subproject commit fa808a1818731700f49f4f0415cd963b56f80583 diff --git a/flext-dbt-oracle-wms b/flext-dbt-oracle-wms index e9844533b..ba10903b3 160000 --- a/flext-dbt-oracle-wms +++ b/flext-dbt-oracle-wms @@ -1 +1 @@ -Subproject commit e9844533b33101480c22b709be1bd944543acb5e +Subproject commit ba10903b3366afddf348cc34c5661d6ab81188bb diff --git a/flext-grpc b/flext-grpc index d5d19e96a..3f2ab3bc3 160000 --- a/flext-grpc +++ b/flext-grpc @@ -1 +1 @@ -Subproject commit d5d19e96a4b6f048496c964a083e59765b7fba2b +Subproject commit 3f2ab3bc320ce6e89e498281cfd6d5d1e2125040 diff --git a/flext-infra b/flext-infra index 2316531bb..242c0b596 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 2316531bb323af83baee541c2d34ad0a50d656fd +Subproject commit 242c0b596324f14cffa9944d7388af3ff9f0a984 diff --git a/flext-ldap b/flext-ldap index 185f82994..57b4d32c1 160000 --- a/flext-ldap +++ b/flext-ldap @@ -1 +1 @@ -Subproject commit 185f82994c4724ca4ab7ad90553a5eb93f1e2516 +Subproject commit 57b4d32c1557c06a347d93796401b29aaccd5979 diff --git a/flext-ldif b/flext-ldif index 42d935918..d1acafba9 160000 --- a/flext-ldif +++ b/flext-ldif @@ -1 +1 @@ -Subproject commit 42d9359182d4f35d61da73d194de1be61c10aae3 +Subproject commit d1acafba96323f785e3f4f71993d42e826810e6a diff --git a/flext-meltano b/flext-meltano index 7e7d08971..b7e44e40f 160000 --- a/flext-meltano +++ b/flext-meltano @@ -1 +1 @@ -Subproject commit 7e7d08971ea80117878452d7d929cd559ca17a07 +Subproject commit b7e44e40fc50d8b09073f797afbbbf8771eeb29d diff --git a/flext-observability b/flext-observability index a12eba86e..de6ddbabb 160000 --- a/flext-observability +++ b/flext-observability @@ -1 +1 @@ -Subproject commit a12eba86e9522c0a136445d756b036874e237388 +Subproject commit de6ddbabbd0f68286e698f43d9383788d324b7be diff --git a/flext-oracle-oic b/flext-oracle-oic index bffaed482..5c2a086d4 160000 --- a/flext-oracle-oic +++ b/flext-oracle-oic @@ -1 +1 @@ -Subproject commit bffaed482d9f127a400c83a4b4dc0b84241ddc97 +Subproject commit 5c2a086d4ac4b6aeebb1477ff710606b75836215 diff --git a/flext-oracle-wms b/flext-oracle-wms index d1be8b317..27f172aaf 160000 --- a/flext-oracle-wms +++ b/flext-oracle-wms @@ -1 +1 @@ -Subproject commit d1be8b3178c9087b202d66a7bae2e45d2a3b8120 +Subproject commit 27f172aaf75384ab01f360215f0ea77b02ed2caf diff --git a/flext-plugin b/flext-plugin index 35204ad43..1528f7e87 160000 --- a/flext-plugin +++ b/flext-plugin @@ -1 +1 @@ -Subproject commit 35204ad4333f744af61c6bd761aa3be606def76c +Subproject commit 1528f7e8718312567f16750156c2b0c57eb8a92b diff --git a/flext-quality b/flext-quality index d10cc4c13..4b3ee8896 160000 --- a/flext-quality +++ b/flext-quality @@ -1 +1 @@ -Subproject commit d10cc4c138fce7c383c49a232fe78ba5734ff60f +Subproject commit 4b3ee8896421c8801971cfc49910fbd87b88c40e diff --git a/flext-tap-ldap b/flext-tap-ldap index fe03a9359..75a001ccc 160000 --- a/flext-tap-ldap +++ b/flext-tap-ldap @@ -1 +1 @@ -Subproject commit fe03a9359f731c0cbba58916a2ca13529afd1506 +Subproject commit 75a001ccc8fde55bf1d1b0debe70e374e195e633 diff --git a/flext-tap-ldif b/flext-tap-ldif index 240ecb0b9..df82fbe02 160000 --- a/flext-tap-ldif +++ b/flext-tap-ldif @@ -1 +1 @@ -Subproject commit 240ecb0b94759fe693b3120775bba5e9f5218383 +Subproject commit df82fbe02d4b405d6c047ed573acea1c66064bee diff --git a/flext-tap-oracle b/flext-tap-oracle index 63f7a1770..f257ce91e 160000 --- a/flext-tap-oracle +++ b/flext-tap-oracle @@ -1 +1 @@ -Subproject commit 63f7a177008b44e94286bd5f297cb5f2881783ef +Subproject commit f257ce91edaa85d4540b4652d168c9b43db0c7ec diff --git a/flext-tap-oracle-oic b/flext-tap-oracle-oic index 1b3ab14d9..014e6b7d3 160000 --- a/flext-tap-oracle-oic +++ b/flext-tap-oracle-oic @@ -1 +1 @@ -Subproject commit 1b3ab14d9feb6a665aeefe05c2561c201ac8943e +Subproject commit 014e6b7d36bb5215a4a0fad73be96bbaec7b6044 diff --git a/flext-tap-oracle-wms b/flext-tap-oracle-wms index 201c3830d..eb1fda181 160000 --- a/flext-tap-oracle-wms +++ b/flext-tap-oracle-wms @@ -1 +1 @@ -Subproject commit 201c3830d274571d4b302f8f231bc90a766b910f +Subproject commit eb1fda181a411503112cbc5c62a4a36743c9879d diff --git a/flext-target-ldap b/flext-target-ldap index 27e169980..3db3ce89b 160000 --- a/flext-target-ldap +++ b/flext-target-ldap @@ -1 +1 @@ -Subproject commit 27e1699804d85c4cf0b954faca05bccad2a84528 +Subproject commit 3db3ce89b25c2f027a5622496a150c357676edc8 diff --git a/flext-target-ldif b/flext-target-ldif index 2f30aec53..d34b39d33 160000 --- a/flext-target-ldif +++ b/flext-target-ldif @@ -1 +1 @@ -Subproject commit 2f30aec53d86004012063a9bb765a38d2bb6bba5 +Subproject commit d34b39d33cd79726f4cf3f76a06a8d367477793b diff --git a/flext-target-oracle b/flext-target-oracle index aedf46b81..d51d91b96 160000 --- a/flext-target-oracle +++ b/flext-target-oracle @@ -1 +1 @@ -Subproject commit aedf46b81768c65edf6d0b0485d9a9cffeb8db97 +Subproject commit d51d91b96dfe44a54f3608183c7d36603ed35994 diff --git a/flext-target-oracle-oic b/flext-target-oracle-oic index f45d2a91d..fb8db48fb 160000 --- a/flext-target-oracle-oic +++ b/flext-target-oracle-oic @@ -1 +1 @@ -Subproject commit f45d2a91d0c202e00e1db832a46da6b1bd9f6c7e +Subproject commit fb8db48fb6afa9aa31a91a717a29fa22ab9cfe17 diff --git a/flext-target-oracle-wms b/flext-target-oracle-wms index b97d2778b..01680323a 160000 --- a/flext-target-oracle-wms +++ b/flext-target-oracle-wms @@ -1 +1 @@ -Subproject commit b97d2778b08041bb5c62a9ea2bea0714ca01e931 +Subproject commit 01680323ad8644cf3e4d425b833c57246b9acd6d diff --git a/flext-tests b/flext-tests index ebf24f768..c2c29ddc9 160000 --- a/flext-tests +++ b/flext-tests @@ -1 +1 @@ -Subproject commit ebf24f768e745b98ac7051b50a1666a3312e1dd8 +Subproject commit c2c29ddc9b8c2eeb7b2016c544600157faf5df96 diff --git a/flext-web b/flext-web index a2024fee3..6ce9206c8 160000 --- a/flext-web +++ b/flext-web @@ -1 +1 @@ -Subproject commit a2024fee309212d8e3e1de39b51a1c096ae5b90d +Subproject commit 6ce9206c8e7035c3ad7d1bcaf161e27acae6205e From 8149a66301380969494cce1c5952c9ae9aa8303b Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Sat, 1 Aug 2026 11:08:02 -0300 Subject: [PATCH 098/165] fix(release): repair the changelog array expansion and adopt the regenerated ignore set The release workflow tested "${`#CHANGELOG_PATHS`[@]}": the backticks make that a bad substitution, so the changelog branch step aborted with a bash error the first time a release ran. Verified with bash -n and by executing the block. .gitignore is a generated projection and was left dirty, which made codegen conform refuse to write and failed make check before any gate ran. Adopt the regeneration: the hardcoded flext-* whitelist is gone (flext-infra declares no project names) and the dead .flext-deps entry with it. --- .github/workflows/release.yml | 32 +++++++++++++++++++------------- .gitignore | 21 ++++++++++++++------- 2 files changed, 33 insertions(+), 20 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c29fdfbcc..9b56411e6 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,3 +1,4 @@ +# Generated by `flext-infra codegen conform` for flext — DO NOT EDIT. name: Workspace Release on: @@ -70,7 +71,7 @@ jobs: RELEASE_VERSION: ${{ needs.identity.outputs.version }} steps: - name: Checkout repository - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: fetch-depth: 0 persist-credentials: false @@ -98,15 +99,14 @@ jobs: fi - name: Setup Python - uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 + uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: python-version: "3.13" - name: Install uv - uses: astral-sh/setup-uv@e58605a9b6da7c637471fab8847a5e5a6b8df081 # v5 + uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0 with: enable-cache: false - version: "0.11.29" - name: Install system dependencies shell: bash @@ -115,7 +115,7 @@ jobs: sudo apt-get update sudo apt-get install -y libldap2-dev libsasl2-dev libssl-dev - - name: Setup workspace + - name: Boot workspace run: make setup - name: Run release pipeline @@ -175,8 +175,12 @@ jobs: else git switch --create "$BRANCH" "$RELEASE_TAG" fi - if ! git diff --quiet; then - git add -- docs/CHANGELOG.md docs/releases/latest.md "docs/releases/${RELEASE_TAG}.md" + CHANGELOG_PATHS=() + for path in docs/CHANGELOG.md docs/releases/latest.md "docs/releases/${RELEASE_TAG}.md"; do + [ -e "$path" ] && CHANGELOG_PATHS+=("$path") + done + if [ "${#CHANGELOG_PATHS[@]}" -gt 0 ]; then + git add -- "${CHANGELOG_PATHS[@]}" if ! git diff --cached --quiet; then git commit -m "docs: close changelog for ${RELEASE_TAG}" fi @@ -187,7 +191,9 @@ jobs: if gh pr view "$BRANCH" >/dev/null 2>&1; then PR_URL="$(gh pr view "$BRANCH" --json url --jq .url)" else - PR_URL="$(gh pr create --base main --head "$BRANCH" --title "release: ${RELEASE_TAG}" --body "Automated release merge for ${RELEASE_TAG}.\n\n- release: ${RELEASE_TAG}\n- version: ${RELEASE_VERSION}\n- status: alpha, non-production")" + PR_BODY="$(printf 'Automated release merge for %s.\n\n- release: %s\n- version: %s\n- status: alpha, non-production\n' \ + "$RELEASE_TAG" "$RELEASE_TAG" "$RELEASE_VERSION")" + PR_URL="$(gh pr create --base main --head "$BRANCH" --title "release: ${RELEASE_TAG}" --body "$PR_BODY")" fi echo "release PR ready for operator review: $PR_URL" @@ -210,7 +216,7 @@ jobs: RELEASE_VERSION: ${{ needs.identity.outputs.version }} steps: - name: Checkout immutable canary source - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: fetch-depth: 0 persist-credentials: false @@ -242,15 +248,14 @@ jobs: echo "core_oid=$CORE_OID" >> "$GITHUB_OUTPUT" - name: Setup Python - uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 + uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: python-version: "3.13" - name: Install uv - uses: astral-sh/setup-uv@e58605a9b6da7c637471fab8847a5e5a6b8df081 # v5 + uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0 with: enable-cache: false - version: "0.11.29" - name: Install system dependencies shell: bash @@ -260,7 +265,7 @@ jobs: sudo apt-get install -y libldap2-dev libsasl2-dev libssl-dev - name: Boot workspace - run: make boot PROJECT=flext-core + run: make setup PROJECT=flext-core - name: Build flext-core canary shell: bash @@ -352,3 +357,4 @@ jobs: --check-url https://test.pypi.org/simple/ \ --trusted-publishing always \ "${ARTIFACTS[@]}" + diff --git a/.gitignore b/.gitignore index f653fd11f..da1be0dc7 100644 --- a/.gitignore +++ b/.gitignore @@ -3,9 +3,6 @@ /*/ !/LICENSE -# Allow all FLEXT ecosystem project directories -!flext-*/ - # WHITELIST: Workspace Directories !docker/ !docs/ @@ -105,9 +102,6 @@ scripts/maintenance/ !.claude/** !.claude-plugin/** -# Workspace member contents -!flext-*/** - # BLOCK: AI/Agent Local Data (NEVER track these) .claude/* !.agents/skills/ @@ -357,7 +351,6 @@ site/ target/ .pyrefly_cache/ .tox/ -.flext-deps/ .flext-sync.lock .sync.lock .planning/ @@ -367,6 +360,18 @@ skill-create-output/ CLAUDE.local.md # Tracked managed artifacts +!.github/ci-template/ +!.github/ci-template/ci.yml +!.github/copilot-instructions.md +!.github/dependabot.yml +!.github/prompts/ +!.github/prompts/flext-aggressive-scale-refactor.prompt.md +!.github/prompts/flext-strict-jsonvalue-session-continuation.prompt.md +!.github/scripts/ +!.github/scripts/check-beads-policy.sh +!.github/scripts/check-cqrs-compliance.sh +!.github/scripts/flext-law-loop.sh +!.github/scripts/install-git-hooks.sh !ci/ !ci/docker/ !ci/docker/alpine.Dockerfile @@ -377,6 +382,8 @@ CLAUDE.local.md !.github/workflows/ !.github/workflows/ci-matrix.yml !.github/workflows/ci.yml +!.github/workflows/docs.yml +!.github/workflows/release.yml !.vscode/settings.json !LICENSE !config/ From a0ff4462e45669d841743aed5d8174f146e9e9f0 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Sat, 1 Aug 2026 16:50:01 -0300 Subject: [PATCH 099/165] chore(workspace): regenerate managed root baseline from canonical SSOT Regenerated via 'make gen APPLY=Y' (flext-infra codegen conform). Semantic verification of pyproject.toml (tomllib key-by-key): 0 keys lost, 0 keys added, 2 intentional changes: - tool.mypy.plugins: drop returns.contrib.mypy.returns_plugin -- the 'returns' package is no longer a declared dependency, so the plugin reference was stale. - tool.pytest.ini_options.addopts: drop --dist=worksteal -- parallel distribution is owned by the typed runner (validate/pytest_runner.py) and base_header.mk.j2 via tooling.yaml parallel-distribution; keeping it in static addopts would apply xdist twice. All other diffs are deterministic section reordering by the generator. --- .beads/config.yaml | 27 +- .github/ci-template/ci.yml | 31 +- .github/copilot-instructions.md | 2 +- .github/dependabot.yml | 314 ++++++++---------- .../flext-aggressive-scale-refactor.prompt.md | 5 +- ...t-jsonvalue-session-continuation.prompt.md | 7 +- .github/scripts/check-beads-policy.sh | 2 +- .github/scripts/check-cqrs-compliance.sh | 2 +- .github/scripts/flext-law-loop.sh | 8 +- .github/workflows/ci-matrix.yml | 32 +- .github/workflows/ci.yml | 8 +- .github/workflows/docs.yml | 117 ++++--- .gitignore | 1 + Makefile | 107 ++++-- ci/docker/alpine.Dockerfile | 2 +- ci/docker/arch.Dockerfile | 2 +- ci/docker/debian.Dockerfile | 2 +- ci/docker/fedora.Dockerfile | 2 +- ci/docker/ubuntu.Dockerfile | 2 +- config/workspace.yaml | 2 +- pyproject.toml | 251 +++++++------- uv.lock | 242 +++++++------- 22 files changed, 609 insertions(+), 559 deletions(-) mode change 100755 => 100644 .github/scripts/check-cqrs-compliance.sh diff --git a/.beads/config.yaml b/.beads/config.yaml index 9a9675eb5..b8cf22b00 100644 --- a/.beads/config.yaml +++ b/.beads/config.yaml @@ -1,14 +1,23 @@ -# Generated by `flext-infra codegen conform`. -# Project identity is derived from the typed repository owner. +# @flext-managed: continuous +# @flext-regenerate: make gen WHAT=apply APPLY=Y +# @flext-ssot: config/workspace.yaml (ledger_id) + flext-infra config/codegen.yaml (toolchain.beads.server) +# @flext-maintenance: do not edit generated projections; edit the SSOT and regenerate +# Generated by `flext-infra gen conform`. +# Source: issue_prefix/database = workspace manifest ledger_id (config key: +# ledger_id) falling back to the canonical project name when undeclared. +# Source: dolt server block = flext-infra config/codegen.yaml +# toolchain.beads.server (machine-wide shared Dolt server facts). +# Routing-only client config: this attached standalone owns no tracker state; +# bd commands route to the shared ledger below. Local data is never written. issue-prefix: "mro" # Dolt shared-server connection (machine-wide shared server on :3308). # The `mro` database lives there; a repository-local server is never used. dolt: - mode: server - shared-server: true - host: 127.0.0.1 - port: 3308 - user: root - database: mro - auto-commit: on + mode: server + shared-server: true + host: 127.0.0.1 + port: 3308 + user: root + database: mro + auto-commit: "on" diff --git a/.github/ci-template/ci.yml b/.github/ci-template/ci.yml index 0fcd83f03..8e4fe7f7f 100644 --- a/.github/ci-template/ci.yml +++ b/.github/ci-template/ci.yml @@ -1,10 +1,11 @@ +# Generated by `flext-infra codegen conform` for flext — DO NOT EDIT. name: CI on: pull_request: push: branches: - - main + - 0.12.0-dev workflow_dispatch: permissions: @@ -17,34 +18,26 @@ jobs: timeout-minutes: 120 steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: submodules: recursive + fetch-depth: 0 - name: Setup Python - uses: actions/setup-python@v5 + uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: python-version: "3.13" - - name: Setup Node - uses: actions/setup-node@v4 + - name: Install uv + uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0 with: - node-version: "20" + enable-cache: true - - name: Install Poetry - uses: snok/install-poetry@v1 - with: - virtualenvs-create: false - installer-parallel: true - - - name: Install workflow tools - shell: bash - run: | - set -euo pipefail - npm install -g markdownlint-cli + - name: Install declared toolchain + uses: jdx/mise-action@dba19683ed58901619b14f395a24841710cb4925 # v4.1.0 - - name: Boot - run: make boot + - name: Setup + run: make setup - name: Check run: make check diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 6c8519049..1b02f06d3 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -1,3 +1,3 @@ # Copilot instructions (pointer) -Canonical: [`./AGENTS.md`](../AGENTS.md) (project) and `~/.agents/AGENTS.md` (universal). Apply both. +Canonical: [`AGENTS.md`](../AGENTS.md) (project) and `~/.agents/AGENTS.md` (universal). Apply both. diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 36a1d2f94..2734f2916 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,318 +1,272 @@ -# Dependabot update config for DEV containers and Poetry dependency files -# Keep schedules grouped by subsystem; one PR set per module directory. +# Generated by `flext-infra codegen conform` for flext — DO NOT EDIT. version: 2 updates: - - package-ecosystem: "devcontainers" - directory: "/" + - package-ecosystem: github-actions + directory: / schedule: interval: weekly open-pull-requests-limit: 5 - labels: - - dependencies - - devcontainers + labels: [dependencies, github-actions] - - package-ecosystem: "pip" - directory: "/context_test/census-probe" + - package-ecosystem: devcontainers + directory: / schedule: interval: weekly open-pull-requests-limit: 5 - labels: - - dependencies - - python + labels: [dependencies, devcontainers] - - package-ecosystem: "pip" - directory: "/flext-api" + - package-ecosystem: pip + directory: / schedule: interval: weekly open-pull-requests-limit: 5 - labels: - - dependencies - - python + labels: [dependencies, python] - - package-ecosystem: "pip" - directory: "/flext-auth" - schedule: - interval: weekly - open-pull-requests-limit: 5 - labels: - - dependencies - - python - - package-ecosystem: "pip" - directory: "/flext-cli" + - package-ecosystem: pip + directory: /flext-api schedule: interval: weekly open-pull-requests-limit: 5 - labels: - - dependencies - - python + labels: [dependencies, python] - - package-ecosystem: "pip" - directory: "/flext-core" + + - package-ecosystem: pip + directory: /flext-auth schedule: interval: weekly open-pull-requests-limit: 5 - labels: - - dependencies - - python + labels: [dependencies, python] + - - package-ecosystem: "pip" - directory: "/flext-db-oracle" + - package-ecosystem: pip + directory: /flext-cli schedule: interval: weekly open-pull-requests-limit: 5 - labels: - - dependencies - - python + labels: [dependencies, python] - - package-ecosystem: "pip" - directory: "/flext-dbt-ldap" + + - package-ecosystem: pip + directory: /flext-core schedule: interval: weekly open-pull-requests-limit: 5 - labels: - - dependencies - - python + labels: [dependencies, python] + - - package-ecosystem: "pip" - directory: "/flext-dbt-ldif" + - package-ecosystem: pip + directory: /flext-db-oracle schedule: interval: weekly open-pull-requests-limit: 5 - labels: - - dependencies - - python + labels: [dependencies, python] - - package-ecosystem: "pip" - directory: "/flext-dbt-oracle" + + - package-ecosystem: pip + directory: /flext-dbt-ldap schedule: interval: weekly open-pull-requests-limit: 5 - labels: - - dependencies - - python + labels: [dependencies, python] + - - package-ecosystem: "pip" - directory: "/flext-dbt-oracle-wms" + - package-ecosystem: pip + directory: /flext-dbt-ldif schedule: interval: weekly open-pull-requests-limit: 5 - labels: - - dependencies - - python + labels: [dependencies, python] - - package-ecosystem: "pip" - directory: "/flext-grpc" + + - package-ecosystem: pip + directory: /flext-dbt-oracle schedule: interval: weekly open-pull-requests-limit: 5 - labels: - - dependencies - - python + labels: [dependencies, python] + - - package-ecosystem: "pip" - directory: "/flext-infra" + - package-ecosystem: pip + directory: /flext-dbt-oracle-wms schedule: interval: weekly open-pull-requests-limit: 5 - labels: - - dependencies - - python + labels: [dependencies, python] - - package-ecosystem: "pip" - directory: "/flext-ldap" + + - package-ecosystem: pip + directory: /flext-grpc schedule: interval: weekly open-pull-requests-limit: 5 - labels: - - dependencies - - python + labels: [dependencies, python] + - - package-ecosystem: "pip" - directory: "/flext-ldif" + - package-ecosystem: pip + directory: /flext-infra schedule: interval: weekly open-pull-requests-limit: 5 - labels: - - dependencies - - python + labels: [dependencies, python] - - package-ecosystem: "pip" - directory: "/flext-meltano" + + - package-ecosystem: pip + directory: /flext-ldap schedule: interval: weekly open-pull-requests-limit: 5 - labels: - - dependencies - - python + labels: [dependencies, python] + - - package-ecosystem: "pip" - directory: "/flext-observability" + - package-ecosystem: pip + directory: /flext-ldif schedule: interval: weekly open-pull-requests-limit: 5 - labels: - - dependencies - - python + labels: [dependencies, python] - - package-ecosystem: "pip" - directory: "/flext-oracle-oic" + + - package-ecosystem: pip + directory: /flext-meltano schedule: interval: weekly open-pull-requests-limit: 5 - labels: - - dependencies - - python + labels: [dependencies, python] + - - package-ecosystem: "pip" - directory: "/flext-oracle-wms" + - package-ecosystem: pip + directory: /flext-observability schedule: interval: weekly open-pull-requests-limit: 5 - labels: - - dependencies - - python + labels: [dependencies, python] - - package-ecosystem: "pip" - directory: "/flext-plugin" + + - package-ecosystem: pip + directory: /flext-oracle-oic schedule: interval: weekly open-pull-requests-limit: 5 - labels: - - dependencies - - python + labels: [dependencies, python] + - - package-ecosystem: "pip" - directory: "/flext-quality" + - package-ecosystem: pip + directory: /flext-oracle-wms schedule: interval: weekly open-pull-requests-limit: 5 - labels: - - dependencies - - python + labels: [dependencies, python] + - - package-ecosystem: "pip" - directory: "/flext-tap-ldap" + - package-ecosystem: pip + directory: /flext-plugin schedule: interval: weekly open-pull-requests-limit: 5 - labels: - - dependencies - - python + labels: [dependencies, python] - - package-ecosystem: "pip" - directory: "/flext-tap-ldif" + + - package-ecosystem: pip + directory: /flext-quality schedule: interval: weekly open-pull-requests-limit: 5 - labels: - - dependencies - - python + labels: [dependencies, python] + - - package-ecosystem: "pip" - directory: "/flext-tap-oracle" + - package-ecosystem: pip + directory: /flext-tap-ldap schedule: interval: weekly open-pull-requests-limit: 5 - labels: - - dependencies - - python + labels: [dependencies, python] - - package-ecosystem: "pip" - directory: "/flext-tap-oracle-oic" + + - package-ecosystem: pip + directory: /flext-tap-ldif schedule: interval: weekly open-pull-requests-limit: 5 - labels: - - dependencies - - python + labels: [dependencies, python] + - - package-ecosystem: "pip" - directory: "/flext-tap-oracle-wms" + - package-ecosystem: pip + directory: /flext-tap-oracle schedule: interval: weekly open-pull-requests-limit: 5 - labels: - - dependencies - - python + labels: [dependencies, python] - - package-ecosystem: "pip" - directory: "/flext-target-ldap" + + - package-ecosystem: pip + directory: /flext-tap-oracle-oic schedule: interval: weekly open-pull-requests-limit: 5 - labels: - - dependencies - - python + labels: [dependencies, python] + - - package-ecosystem: "pip" - directory: "/flext-target-ldif" + - package-ecosystem: pip + directory: /flext-tap-oracle-wms schedule: interval: weekly open-pull-requests-limit: 5 - labels: - - dependencies - - python + labels: [dependencies, python] - - package-ecosystem: "pip" - directory: "/flext-target-oracle" + + - package-ecosystem: pip + directory: /flext-target-ldap schedule: interval: weekly open-pull-requests-limit: 5 - labels: - - dependencies - - python + labels: [dependencies, python] + - - package-ecosystem: "pip" - directory: "/flext-target-oracle-oic" + - package-ecosystem: pip + directory: /flext-target-ldif schedule: interval: weekly open-pull-requests-limit: 5 - labels: - - dependencies - - python + labels: [dependencies, python] - - package-ecosystem: "pip" - directory: "/flext-target-oracle-wms" + + - package-ecosystem: pip + directory: /flext-target-oracle schedule: interval: weekly open-pull-requests-limit: 5 - labels: - - dependencies - - python + labels: [dependencies, python] + - - package-ecosystem: "pip" - directory: "/flext-tests" + - package-ecosystem: pip + directory: /flext-target-oracle-oic schedule: interval: weekly open-pull-requests-limit: 5 - labels: - - dependencies - - python + labels: [dependencies, python] - - package-ecosystem: "pip" - directory: "/flext-web" + + - package-ecosystem: pip + directory: /flext-target-oracle-wms schedule: interval: weekly open-pull-requests-limit: 5 - labels: - - dependencies - - python + labels: [dependencies, python] + - - package-ecosystem: "pip" - directory: "/" + - package-ecosystem: pip + directory: /flext-tests schedule: interval: weekly open-pull-requests-limit: 5 - labels: - - dependencies - - python + labels: [dependencies, python] - - package-ecosystem: "pip" - directory: "/rope_ws" + + - package-ecosystem: pip + directory: /flext-web schedule: interval: weekly open-pull-requests-limit: 5 - labels: - - dependencies - - python + labels: [dependencies, python] + diff --git a/.github/prompts/flext-aggressive-scale-refactor.prompt.md b/.github/prompts/flext-aggressive-scale-refactor.prompt.md index 2ff693e39..9d35d8577 100644 --- a/.github/prompts/flext-aggressive-scale-refactor.prompt.md +++ b/.github/prompts/flext-aggressive-scale-refactor.prompt.md @@ -33,10 +33,7 @@ Authoritative references, in mandatory load order: 10. [FLEXT Strict Typing](../../.agents/skills/flext-strict-typing/SKILL.md) 11. [FLEXT Patterns](../../.agents/skills/flext-patterns/SKILL.md) 12. [Testing Patterns](../../.agents/skills/testing-patterns/SKILL.md) -13. [Global Inviolable Rules](/home/marlonsc/.agents/skills/inviolable-rules/SKILL.md) -14. [Global Make Check](/home/marlonsc/.agents/skills/make-check/SKILL.md) -15. [Global Verification Loop](/home/marlonsc/.agents/skills/verification-loop/SKILL.md) - +13. [FLEXT Quality Gates](../../.agents/skills/flext-inviolable-rules/SKILL.md) Mandatory operating rules: diff --git a/.github/prompts/flext-strict-jsonvalue-session-continuation.prompt.md b/.github/prompts/flext-strict-jsonvalue-session-continuation.prompt.md index 0220a4c53..23fc1ab73 100644 --- a/.github/prompts/flext-strict-jsonvalue-session-continuation.prompt.md +++ b/.github/prompts/flext-strict-jsonvalue-session-continuation.prompt.md @@ -19,11 +19,8 @@ Mandatory load order: 8. [Pydantic v2 Patterns](../../.agents/skills/pydantic-v2-patterns/SKILL.md) 9. [FLEXT Strict Typing](../../.agents/skills/flext-strict-typing/SKILL.md) 10. [FLEXT Patterns](../../.agents/skills/flext-patterns/SKILL.md) -11. [Global Inviolable Rules](/home/marlonsc/.agents/skills/inviolable-rules/SKILL.md) -12. [Global Make Check](/home/marlonsc/.agents/skills/make-check/SKILL.md) -13. [Global Verification Loop](/home/marlonsc/.agents/skills/verification-loop/SKILL.md) - -14. [Testing Patterns](../../.agents/skills/testing-patterns/SKILL.md) when tests are touched +11. [FLEXT Quality Gates](../../.agents/skills/flext-inviolable-rules/SKILL.md) +12. [Testing Patterns](../../.agents/skills/testing-patterns/SKILL.md) when tests are touched Session recovery protocol: diff --git a/.github/scripts/check-beads-policy.sh b/.github/scripts/check-beads-policy.sh index 50f612c49..75d21d42e 100644 --- a/.github/scripts/check-beads-policy.sh +++ b/.github/scripts/check-beads-policy.sh @@ -31,7 +31,7 @@ bad = sorted( if not hooks[name].get("Installed") or hooks[name].get("Outdated") ) if missing or bad: - u.Cli.print(f"missing={missing} bad={bad}", file=sys.stderr) + print(f"missing={missing} bad={bad}", file=sys.stderr) raise SystemExit(1) ' || fail "bd git hooks must be installed and current" diff --git a/.github/scripts/check-cqrs-compliance.sh b/.github/scripts/check-cqrs-compliance.sh old mode 100755 new mode 100644 index 3081a5a80..ef2140fc2 --- a/.github/scripts/check-cqrs-compliance.sh +++ b/.github/scripts/check-cqrs-compliance.sh @@ -49,7 +49,7 @@ _check() { # Filter out excluded paths for excl in "${exclude_patterns[@]}"; do - matches=$(echo "${matches}" | grep -v "^${excl}/" || true) + matches=$(echo "${matches}" | grep -v "^\./${excl}/" || true) done if [[ -n "${matches}" ]]; then diff --git a/.github/scripts/flext-law-loop.sh b/.github/scripts/flext-law-loop.sh index 7626e0caf..5d9379fa0 100644 --- a/.github/scripts/flext-law-loop.sh +++ b/.github/scripts/flext-law-loop.sh @@ -172,8 +172,12 @@ run_cycle() { fi git apply --index --3way "${REPORT_DIR}/${stamp}-APPLIED.patch" if ! validate_worktree "${WORKSPACE_ROOT}"; then - log "apply RED: reverting only the vetted patch; workspace left unchanged" - git apply --index --reverse --3way "${REPORT_DIR}/${stamp}-APPLIED.patch" + log "apply RED: reverting the vetted patch" + if git apply --index --reverse --3way "${REPORT_DIR}/${stamp}-APPLIED.patch"; then + log "apply RED: revert succeeded; workspace left unchanged" + else + log "apply RED: revert FAILED; workspace still holds ${REPORT_DIR}/${stamp}-APPLIED.patch — manual cleanup required" + fi return 1 fi git commit -m "fix: apply validated flext-law sweep" diff --git a/.github/workflows/ci-matrix.yml b/.github/workflows/ci-matrix.yml index 7adc2327c..c2711a1c5 100644 --- a/.github/workflows/ci-matrix.yml +++ b/.github/workflows/ci-matrix.yml @@ -11,7 +11,7 @@ name: ci-matrix # === SECTION: triggers (managed) === # Source: config:repository_branch -on: +"on": push: branches: [0.12.0-dev] pull_request: @@ -45,7 +45,7 @@ jobs: matrix: distro: [ubuntu, debian, fedora, alpine, arch] steps: - - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: submodules: recursive - name: Build ${{ matrix.distro }} image @@ -61,17 +61,23 @@ jobs: # End SECTION: distro-matrix # === SECTION: macos (managed) === - # Source: template + config:github_actions.checkout/mise/setup-uv + # Source: template + config:github_actions.checkout/setup-python/mise/setup-uv macos: runs-on: macos-latest steps: - - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: submodules: recursive + - name: Setup Python + uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 + with: + python-version-file: .python-version - name: Install mise toolchain - uses: jdx/mise-action@dba19683ed58901619b14f395a24841710cb4925 # v4.1.0 + uses: jdx/mise-action@dba19683ed58901619b14f395a24841710cb4925 # v4.1.0 - name: Install uv - uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0 + uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0 + with: + enable-cache: true - name: Bootstrap run: make setup - name: Verb surface @@ -79,17 +85,23 @@ jobs: # End SECTION: macos # === SECTION: windows (managed) === - # Source: template + config:github_actions.checkout/mise/setup-uv + # Source: template + config:github_actions.checkout/setup-python/mise/setup-uv windows: runs-on: windows-latest steps: - - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: submodules: recursive + - name: Setup Python + uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 + with: + python-version-file: .python-version - name: Install mise toolchain - uses: jdx/mise-action@dba19683ed58901619b14f395a24841710cb4925 # v4.1.0 + uses: jdx/mise-action@dba19683ed58901619b14f395a24841710cb4925 # v4.1.0 - name: Install uv - uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0 + uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0 + with: + enable-cache: true - name: Bootstrap shell: bash run: make setup diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e4a8d5ce5..25cccd36c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,7 +8,7 @@ name: CI # === SECTION: triggers (managed) === # Source: config:repository_branch -on: +"on": pull_request: branches: - 0.12.0-dev @@ -33,16 +33,16 @@ jobs: timeout-minutes: 60 steps: - name: Checkout - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: submodules: recursive fetch-depth: 0 - name: Install mise toolchain - uses: jdx/mise-action@dba19683ed58901619b14f395a24841710cb4925 # v4.1.0 + uses: jdx/mise-action@dba19683ed58901619b14f395a24841710cb4925 # v4.1.0 - name: Install uv - uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0 + uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0 - name: Setup (blocking) run: make setup diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 155dfca41..4fae52405 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -1,3 +1,4 @@ +# Generated by `flext-infra codegen conform` for flext — DO NOT EDIT. name: Docs on: @@ -9,7 +10,69 @@ on: - "docs/**" - "mkdocs.yml" - "pyproject.toml" - - "flext-*" + + - "flext-api/**" + + - "flext-auth/**" + + - "flext-cli/**" + + - "flext-core/**" + + - "flext-db-oracle/**" + + - "flext-dbt-ldap/**" + + - "flext-dbt-ldif/**" + + - "flext-dbt-oracle/**" + + - "flext-dbt-oracle-wms/**" + + - "flext-grpc/**" + + - "flext-infra/**" + + - "flext-ldap/**" + + - "flext-ldif/**" + + - "flext-meltano/**" + + - "flext-observability/**" + + - "flext-oracle-oic/**" + + - "flext-oracle-wms/**" + + - "flext-plugin/**" + + - "flext-quality/**" + + - "flext-tap-ldap/**" + + - "flext-tap-ldif/**" + + - "flext-tap-oracle/**" + + - "flext-tap-oracle-oic/**" + + - "flext-tap-oracle-wms/**" + + - "flext-target-ldap/**" + + - "flext-target-ldif/**" + + - "flext-target-oracle/**" + + - "flext-target-oracle-oic/**" + + - "flext-target-oracle-wms/**" + + - "flext-tests/**" + + - "flext-web/**" + - ".github/workflows/docs.yml" workflow_dispatch: @@ -29,34 +92,23 @@ jobs: timeout-minutes: 30 steps: - name: Checkout - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: submodules: recursive fetch-depth: 0 - name: Setup Python - uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 + uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: python-version: "3.13" - name: Install uv - uses: astral-sh/setup-uv@e58605a9b6da7c637471fab8847a5e5a6b8df081 # v5 + uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0 with: enable-cache: true - # mro-o6h5 (agent: kimi) — root cause of the "No module named ruff" - # audit failures: `make boot` runs DRY-RUN without APPLY=Y (mutator - # guard), and `uv run`/`uv sync` defaults never install the root - # `dev` EXTRA where ruff/pytest live. Materialize the full workspace - # toolchain explicitly (same flags as the Makefile's - # ENSURE_WORKSPACE_RUNTIME), then verify the audit toolchain is present. - name: Sync workspace toolchain - run: uv sync --all-packages --all-groups --all-extras - - - name: Verify docs toolchain - run: | - .venv/bin/python -c "import flext_infra.docs" - .venv/bin/python -m ruff --version + run: make setup # mro-o6h5 (agent: kimi) — failure diagnostics: per-project logs live under # .reports/workspace/docs/*.log and were invisible in CI ("0 errors" FAILs); @@ -80,14 +132,8 @@ jobs: exit 1 } - # mro-o6h5 (agent: kimi) — root cause of the "missing required docs - # files: mkdocs.yml" validate FAILs: the docs contract requires - # GENERATED artifacts (project mkdocs.yml from flext-infra templates, - # docs/api-reference/generated/*.md), but validate ran on the raw - # checkout. Local worktrees pass because devs already generated them; - # CI must generate before validate, same as the build job does. - name: Docs generate (materialize contract artifacts) - run: uv run --all-packages python -m flext_infra docs generate --workspace . --apply + run: make docs WHAT=generate APPLY=Y - name: Docs validate (blocking) run: | @@ -117,38 +163,29 @@ jobs: timeout-minutes: 60 steps: - name: Checkout - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: submodules: recursive fetch-depth: 0 - name: Setup Python - uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 + uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: python-version: "3.13" - name: Install uv - uses: astral-sh/setup-uv@e58605a9b6da7c637471fab8847a5e5a6b8df081 # v5 + uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0 with: enable-cache: true - # mro-o6h5 (agent: kimi) — same root cause as the docs-quality ruff - # incident: `uv run` implicit-sync never installs the root `dev` EXTRA - # where the mkdocs plugin set lives (git-revision-date-localized, - # mermaid2, minify, ...). Materialize the full toolchain explicitly - # before generate/build, or mkdocs --strict aborts with - # "plugin is not installed". - name: Sync workspace toolchain - run: uv sync --all-packages --all-groups --all-extras + run: make setup - - name: Generate docs (engine SSOT, root scope included) - # mro-jwop (agent: kimi) — engine direct call: the make orchestrator fans - # out per project and never builds the root scope; the engine CLI at the - # workspace root always includes it (scopes = [root, *selected]). - run: uv run --all-packages python -m flext_infra docs generate --workspace . --apply + - name: Generate docs + run: make docs WHAT=generate APPLY=Y - - name: Build site (mkdocs strict, root + flext-infra scopes) - run: uv run --all-packages python -m flext_infra docs build --workspace . --projects flext-infra + - name: Build site + run: make docs WHAT=build - name: Configure Pages uses: actions/configure-pages@45bfe0192ca1faeb007ade9deae92b16b8254a0d # v6.0.0 diff --git a/.gitignore b/.gitignore index da1be0dc7..c61480a71 100644 --- a/.gitignore +++ b/.gitignore @@ -384,6 +384,7 @@ CLAUDE.local.md !.github/workflows/ci.yml !.github/workflows/docs.yml !.github/workflows/release.yml +!sgconfig.yml !.vscode/settings.json !LICENSE !config/ diff --git a/Makefile b/Makefile index cddd07932..f2b42ac1c 100644 --- a/Makefile +++ b/Makefile @@ -34,6 +34,7 @@ UV_LINK_MODE := copy APPLY ?= N ARGS ?= CHECK_GATES ?= +DEPENDENCY ?= FAIL_FAST ?= 0 FILE ?= FIX ?= 0 @@ -43,16 +44,42 @@ PROJECTS ?= BASE ?= BRANCH ?= PYTEST_ARGS ?= -PYTEST_TARGETS ?= $(PROJECT_ROOT)/tests PYTEST_DIAG_ARGS ?= -rA --durations=0 --tb=long --showlocals PYTEST_REPORT_ARGS ?= -ra --durations=25 --durations-min=0.001 --tb=short +PYTEST_PROCESS_TIMEOUT_SECONDS ?= 60 +# mro-99ae: the pytest process inherits a hard wall-clock boundary, mirroring +# MYPY_BOUNDED, so a hung run is terminated even if the typed runner stalls. +PYTEST_BOUNDED = timeout --signal=TERM --kill-after=5s "$(PYTEST_PROCESS_TIMEOUT_SECONDS)s" PYTEST_REPORTS_DIR ?= .reports/tests +override PYTEST_CASE_TIMEOUT_SECONDS := 30 +override PYTEST_RUN_TIMEOUT_SECONDS := 300 +override PYTEST_TERMINATION_GRACE_SECONDS := 2 +override PYTEST_TIMEOUT_EXIT_CODE := 124 +override PYTEST_ENFORCEMENT_PLUGIN := flext_tests_enforcement +override PYTEST_PROGRESS_ARGS := --verbose +override PYTEST_REPORT_ARGS := -ra --durations=25 --durations-min=0.001 --tb=short +override PYTEST_DIAG_ARGS := -rA --durations=0 --tb=long --showlocals +override PYTEST_PARALLEL_WORKERS := 4 +override PYTEST_PARALLEL_DISTRIBUTION := worksteal +override PYTEST_PROFILE_SORT := cumulative +override PYTEST_PROFILE_LIMIT := 50 +override PROCESS_TIMEOUT_COMMAND := timeout +override export FLEXT_PYTEST_ARGS_RAW := $(value PYTEST_ARGS) +override export FLEXT_PYTEST_FILE_RAW := $(value FILE) +override export FLEXT_PYTEST_FILES_RAW := $(value FILES) +override export FLEXT_PYTEST_MATCH_RAW := $(value MATCH) +override export FLEXT_PYTEST_DIAG_RAW := $(value DIAG) +override export FLEXT_PYTEST_FAIL_FAST_RAW := $(value FAIL_FAST) +override export FLEXT_PYTEST_REPORTS_RAW := $(value PYTEST_REPORTS_DIR) +override export FLEXT_PYTEST_WHAT_RAW := $(value WHAT) +override export FLEXT_PYTEST_VERBOSE_RAW := $(value VERBOSE) WHAT ?= # End SECTION: user overrides # === SECTION: derived paths (managed) === # Source: computed (git rev-parse, pwd, abspath) PROJECT_ROOT := $(shell pwd -P) +override export FLEXT_PYTEST_TARGET_RAW := tests SELF_MAKEFILE := $(abspath $(firstword $(MAKEFILE_LIST))) MAKEFILE_ROOT := $(patsubst %/,%,$(dir $(SELF_MAKEFILE))) WORKSPACE ?= $(PROJECT_ROOT) @@ -63,7 +90,7 @@ WORKSPACE ?= $(PROJECT_ROOT) # environment WORKSPACE_ROOT (e.g. a leaked .envrc export from a foreign checkout) # must never redirect verbs to another working tree. ifeq ($(filter command line override,$(origin WORKSPACE_ROOT)),) -WORKSPACE_ROOT := $(shell git rev-parse --show-superproject-working-tree 2>/dev/null || git rev-parse --show-toplevel 2>/dev/null || pwd -P) +WORKSPACE_ROOT := $(shell root=$$(git rev-parse --show-superproject-working-tree 2>/dev/null); if [ -n "$$root" ]; then printf '%s\n' "$$root"; else git rev-parse --show-toplevel 2>/dev/null || pwd -P; fi) endif # End SECTION: WORKSPACE_ROOT isolation @@ -92,6 +119,7 @@ CALLER_PATH := $(PATH) CALLER_VIRTUAL_ENV := $(patsubst %/,%,$(VIRTUAL_ENV)) FLEXT_INFRA_BOOTSTRAP_REQUIREMENT := flext-infra @ git+https://github.com/flext-sh/flext-infra.git@0.12.0-dev FLEXT_INFRA_SOURCE_ROOT_REL := flext-infra +UV_BOOTSTRAP_FLAGS := --isolated --all-groups --all-extras # End SECTION: infra bootstrap # === MYPY RESOURCE LIMIT === @@ -119,11 +147,21 @@ _DEFAULT_gen := check _DEFAULT_worktree := list -ifneq ($(filter $(MAKE_PROFILE),workspace-root standalone),$(MAKE_PROFILE)) +# === SECTION: profile routing (managed) === +# Source: config:workspace manifest (role), computed (WORKSPACE_ROOT) +# Rule: workspace-member delegates runtime to the principal (RUNTIME_ROOT is +# the governing workspace root); workspace-root and standalone own their +# runtime locally. An attached member is never promoted to a local runtime. +ifneq ($(filter $(MAKE_PROFILE),workspace-root workspace-member standalone),$(MAKE_PROFILE)) $(error Invalid MAKE_PROFILE '$(MAKE_PROFILE)') endif +ifeq ($(MAKE_PROFILE),workspace-member) +RUNTIME_ROOT := $(WORKSPACE_ROOT) +else RUNTIME_ROOT := $(PROJECT_ROOT) +endif +# End SECTION: profile routing RUNTIME_VENV := $(RUNTIME_ROOT)/.venv FLEXT_INFRA_RUNTIME_ROOT := $(if $(filter $(MAKEFILE_ROOT),$(PROJECT_ROOT)),$(RUNTIME_ROOT),$(MAKEFILE_ROOT)) @@ -164,10 +202,10 @@ export FLEXT_INFRA_PYTHON UV UV_PROJECT UV_PROJECT_ENVIRONMENT VIRTUAL_ENV PATH ifneq ($(strip $(FLEXT_INFRA_SOURCE_ROOT_REL)),) FLEXT_INFRA_SOURCE_ROOT := $(abspath $(PROJECT_ROOT)/$(FLEXT_INFRA_SOURCE_ROOT_REL)) -FLEXT_INFRA_BOOTSTRAP := env -u PYTHONPATH -u MYPYPATH -u VIRTUAL_ENV -u UV_PROJECT -u UV_PROJECT_ENVIRONMENT PATH="$(SANITIZED_CALLER_PATH)" $(UV) run --no-project --with-editable "$(FLEXT_INFRA_SOURCE_ROOT)" python -m flext_infra +FLEXT_INFRA_BOOTSTRAP := env -u PYTHONPATH -u MYPYPATH -u VIRTUAL_ENV -u UV_PROJECT -u UV_PROJECT_ENVIRONMENT PATH="$(SANITIZED_CALLER_PATH)" $(UV) run --project "$(PROJECT_ROOT)" $(UV_BOOTSTRAP_FLAGS) --with-editable "$(FLEXT_INFRA_SOURCE_ROOT)" python -m flext_infra else FLEXT_INFRA_SOURCE_ROOT := -FLEXT_INFRA_BOOTSTRAP := env -u PYTHONPATH -u MYPYPATH -u VIRTUAL_ENV -u UV_PROJECT -u UV_PROJECT_ENVIRONMENT PATH="$(SANITIZED_CALLER_PATH)" $(UV) run --no-project --with "$(FLEXT_INFRA_BOOTSTRAP_REQUIREMENT)" python -m flext_infra +FLEXT_INFRA_BOOTSTRAP := env -u PYTHONPATH -u MYPYPATH -u VIRTUAL_ENV -u UV_PROJECT -u UV_PROJECT_ENVIRONMENT PATH="$(SANITIZED_CALLER_PATH)" $(UV) run --project "$(PROJECT_ROOT)" $(UV_BOOTSTRAP_FLAGS) --with "$(FLEXT_INFRA_BOOTSTRAP_REQUIREMENT)" python -m flext_infra endif ifeq ($(MAKE_PROFILE),workspace-root) @@ -184,16 +222,13 @@ endif # run the gate locally. FAIL_FAST forwards the stop-on-first-failure policy. WORKSPACE_ORCHESTRATE = $(UV_RUN) python -m flext_infra workspace orchestrate REQUESTED_PROJECTS := $(strip $(if $(PROJECT),$(PROJECT),$(PROJECTS))) -FILE_MEMBER := $(firstword $(foreach member,$(WORKSPACE_MEMBERS),$(if $(filter $(member)/%,$(FILE)),$(member)))) -FILE_PROJECT := $(if $(strip $(FILE_MEMBER)),$(FILE_MEMBER),.) -FILE_RELATIVE := $(if $(filter .,$(FILE_PROJECT)),$(FILE),$(patsubst $(FILE_PROJECT)/%,%,$(FILE))) DEFAULT_PROJECTS := $(WORKSPACE_MEMBERS) . -SELECTED_PROJECTS := $(if $(strip $(FILE)),$(FILE_PROJECT),$(if $(strip $(REQUESTED_PROJECTS)),$(REQUESTED_PROJECTS),$(DEFAULT_PROJECTS))) +SELECTED_PROJECTS := $(if $(strip $(REQUESTED_PROJECTS)),$(REQUESTED_PROJECTS),$(DEFAULT_PROJECTS)) WORKSPACE_PROJECT_ARGS := $(foreach project,$(SELECTED_PROJECTS),--projects $(project)) WORKSPACE_CHECK_ARGS := $(if $(strip $(CHECK_GATES)),--make-arg "CHECK_GATES=$(strip $(CHECK_GATES))") -WORKSPACE_TEST_ARGS := $(if $(strip $(FILE)),--make-arg "FILE=$(FILE_RELATIVE)") $(if $(strip $(MATCH)),--make-arg "MATCH=$(MATCH)") $(if $(strip $(PYTEST_ARGS)),--make-arg "PYTEST_ARGS=$(strip $(PYTEST_ARGS))") +WORKSPACE_TEST_ARGS := $(if $(strip $(FLEXT_PYTEST_FILE_RAW)),--file "$${FLEXT_PYTEST_FILE_RAW}") $(if $(strip $(FLEXT_PYTEST_MATCH_RAW)),--match "$${FLEXT_PYTEST_MATCH_RAW}") $(if $(strip $(FLEXT_PYTEST_WHAT_RAW)),--what "$${FLEXT_PYTEST_WHAT_RAW}") DOCS_PROJECT_ARGS := $(foreach project,$(REQUESTED_PROJECTS),--projects $(project)) -ORCHESTRATED_VERBS := build check clean docs scan test val +ORCHESTRATED_VERBS := build check clean docs fmt scan test val UV_RUN := env -u PYTHONPATH -u MYPYPATH $(UV) run --project "$(RUNTIME_ROOT)" --no-sync PROJECT_INFRA_PYTHONPATH ?= $(MAKEFILE_ROOT)/src @@ -278,7 +313,9 @@ define _run_for_selected_projects *" $$project "*) ;; \ *) printf 'ERROR: undeclared project %s\n' "$$project" >&2; exit 2 ;; \ esac; \ - $(UV) lock --project "$(PROJECT_ROOT)/$$project" $(1); \ + if [ "$$project" = "." ]; then project_root="$(PROJECT_ROOT)"; \ + else project_root="$(PROJECT_ROOT)/$$project"; fi; \ + $(UV) lock --project "$$project_root" $(1); \ done endef @@ -310,8 +347,19 @@ _serialized_gen: +# `setup` keeps its own recipe (it must not require the environment it is about +# to build), but it still runs the pre-/post-setup lifecycle hooks so a project +# declaring them in the custom handler surface is actually honoured. setup: + @for hook in "pre-setup"; do \ + $(SELF_MAKE) -q "$$hook" >/dev/null 2>&1; rc=$$?; \ + if [ "$$rc" -ne 2 ]; then $(SELF_MAKE) "$$hook" || exit $$?; fi; \ + done @$(SELF_MAKE) _builtin_setup_environment + @for hook in "post-setup"; do \ + $(SELF_MAKE) -q "$$hook" >/dev/null 2>&1; rc=$$?; \ + if [ "$$rc" -ne 2 ]; then $(SELF_MAKE) "$$hook" || exit $$?; fi; \ + done _builtin_help_usage: @printf '%s\n' 'flext [workspace-root]' ''; @@ -521,10 +569,18 @@ _builtin_require_environment: exit 2; \ fi -# Operator contract (mro-e9j0.6 C7): setup PROVISIONS tooling only — mise, - # venv, dependencies. It never generates, conforms, or mutates project code; -# `make gen` (APPLY=Y) is the single public conformance/generation surface. -ifeq ($(MAKE_PROFILE),workspace-root) +# === SECTION: setup environment (managed) === +# Source: computed (MAKE_PROFILE routing) + operator contract (mro-e9j0.6 C7) +# Operator contract: setup PROVISIONS tooling only — mise, venv, dependencies. +# It never generates, conforms, or mutates project code; `make gen` (APPLY=Y) +# is the single public conformance/generation surface. +# Profile routing: workspace-member delegates the environment to the +# principal (the uv workspace venv lives at RUNTIME_ROOT); workspace-root and +# standalone build their own environment locally. +ifeq ($(MAKE_PROFILE),workspace-member) +_builtin_setup_environment: _builtin_setup_submodules + @$(MAKE) -C "$(RUNTIME_ROOT)" _builtin_setup_environment +else ifeq ($(MAKE_PROFILE),workspace-root) _builtin_setup_environment: _builtin_setup_submodules @$(UV) venv --clear "$(RUNTIME_VENV)" @$(UV) sync --project "$(PROJECT_ROOT)" $(UV_SYNC_FLAGS) --link-mode "$(UV_LINK_MODE)" @@ -534,6 +590,7 @@ _builtin_setup_environment: _builtin_setup_submodules @$(UV) venv --clear "$(RUNTIME_VENV)" @$(UV) sync --project "$(PROJECT_ROOT)" $(UV_SYNC_FLAGS) --link-mode "$(UV_LINK_MODE)" endif +# End SECTION: setup environment _builtin_deps_check: _builtin_require_environment $(call _run_for_selected_projects,--check) @@ -544,7 +601,15 @@ _builtin_deps_lock: _builtin_deps_upgrade: _builtin_require_environment $(call _require_apply) - $(call _run_for_selected_projects,--upgrade) + @dependency="$(strip $(DEPENDENCY))"; \ + if [ -n "$$dependency" ]; then \ + case "$$dependency" in \ + [-._]*|*[!A-Za-z0-9._-]*) \ + printf 'ERROR: DEPENDENCY must be one normalized distribution name\n' >&2; \ + exit 2 ;; \ + esac; \ + fi + $(call _run_for_selected_projects,$(if $(strip $(DEPENDENCY)),--upgrade-package "$(strip $(DEPENDENCY))",--upgrade)) @set -eu; \ selected="$(strip $(PROJECTS))"; \ if [ -z "$$selected" ]; then selected="."; fi; \ @@ -564,15 +629,13 @@ _builtin_check_all: _builtin_require_environment _builtin_test_all: _builtin_require_environment @$(WORKSPACE_ORCHESTRATE) --verb test $(WORKSPACE_PROJECT_ARGS) $(WORKSPACE_TEST_ARGS) $(if $(filter 1,$(FAIL_FAST)),--fail-fast) - _builtin_fmt_check: _builtin_require_environment - @$(UV_RUN) ruff check --no-fix $(RUFF_PATHS) - @$(UV_RUN) ruff format --check $(RUFF_PATHS) + @$(WORKSPACE_ORCHESTRATE) --verb fmt $(WORKSPACE_PROJECT_ARGS) --make-arg "WHAT=check" $(if $(filter 1,$(FAIL_FAST)),--fail-fast) _builtin_fmt_apply: _builtin_require_environment $(call _require_apply) - @$(UV_RUN) ruff check --fix $(RUFF_PATHS) - @$(UV_RUN) ruff format $(RUFF_PATHS) + @$(WORKSPACE_ORCHESTRATE) --verb fmt $(WORKSPACE_PROJECT_ARGS) --make-arg "WHAT=apply" --make-arg "APPLY=Y" $(if $(filter 1,$(FAIL_FAST)),--fail-fast) + _builtin_run_default: _builtin_require_environment @$(UV_RUN) $(PROJECT_NAME) $(ARGS) diff --git a/ci/docker/alpine.Dockerfile b/ci/docker/alpine.Dockerfile index db2734c1b..af818b6c4 100644 --- a/ci/docker/alpine.Dockerfile +++ b/ci/docker/alpine.Dockerfile @@ -10,7 +10,7 @@ FROM alpine:3.21 # === SECTION: base packages (managed) === # Source: template (distro-specific package list) RUN apk add --no-cache \ - bash ca-certificates curl git make build-base + bash ca-certificates curl git make build-base icu-dev icu-libs # End SECTION: base packages # === SECTION: managed tool bootstrap (managed) === diff --git a/ci/docker/arch.Dockerfile b/ci/docker/arch.Dockerfile index f0731b0c9..1db374a45 100644 --- a/ci/docker/arch.Dockerfile +++ b/ci/docker/arch.Dockerfile @@ -11,7 +11,7 @@ SHELL ["/bin/bash", "-o", "pipefail", "-c"] # === SECTION: base packages (managed) === # Source: template (distro-specific package list) RUN pacman -Syu --noconfirm --needed \ - bash ca-certificates curl git make base-devel \ + bash ca-certificates curl git make base-devel icu \ && pacman -Scc --noconfirm # End SECTION: base packages diff --git a/ci/docker/debian.Dockerfile b/ci/docker/debian.Dockerfile index 207ba11be..5401bd33f 100644 --- a/ci/docker/debian.Dockerfile +++ b/ci/docker/debian.Dockerfile @@ -12,7 +12,7 @@ SHELL ["/bin/bash", "-o", "pipefail", "-c"] # Source: template (distro-specific package list) RUN apt-get update \ && apt-get install -y --no-install-recommends \ - bash ca-certificates curl git make build-essential \ + bash ca-certificates curl git make build-essential libicu-dev \ && rm -rf /var/lib/apt/lists/* # End SECTION: base packages diff --git a/ci/docker/fedora.Dockerfile b/ci/docker/fedora.Dockerfile index 410600da3..7c764d176 100644 --- a/ci/docker/fedora.Dockerfile +++ b/ci/docker/fedora.Dockerfile @@ -11,7 +11,7 @@ SHELL ["/bin/bash", "-o", "pipefail", "-c"] # === SECTION: base packages (managed) === # Source: template (distro-specific package list) RUN dnf install -y \ - bash ca-certificates curl git make gcc gcc-c++ libatomic \ + bash ca-certificates curl git make gcc gcc-c++ libatomic libicu-devel \ && dnf clean all # End SECTION: base packages diff --git a/ci/docker/ubuntu.Dockerfile b/ci/docker/ubuntu.Dockerfile index e8feb74d6..0ca9c36e5 100644 --- a/ci/docker/ubuntu.Dockerfile +++ b/ci/docker/ubuntu.Dockerfile @@ -12,7 +12,7 @@ SHELL ["/bin/bash", "-o", "pipefail", "-c"] # Source: template (distro-specific package list) RUN apt-get update \ && apt-get install -y --no-install-recommends \ - bash ca-certificates curl git make build-essential \ + bash ca-certificates curl git make build-essential libicu-dev \ && rm -rf /var/lib/apt/lists/* # End SECTION: base packages diff --git a/config/workspace.yaml b/config/workspace.yaml index 799756b21..ef26f4c02 100644 --- a/config/workspace.yaml +++ b/config/workspace.yaml @@ -174,7 +174,7 @@ members: provider: "flext-sh" url: "https://github.com/flext-sh/flext-infra.git" extra_verbs: - - { name: basemk, default_what: generate } + - { name: basemk, default_what: generate, whats: [generate] } path: "flext-infra" role: "workspace-member" state: "active" diff --git a/pyproject.toml b/pyproject.toml index 46b4d820c..415a087f5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,129 +6,6 @@ # Sections with [MANAGED] are enforced by flext_infra.deps.modernizer. # Sections with [CUSTOM] are project-specific extension points. -# [MANAGED] build system -[build-system] -build-backend = "hatchling.build" -requires = ["hatchling"] - -[dependency-groups] -codegen = ["flext-infra"] -dev = [ - "actionlint-py>=1.7.12.24", - "autoflake>=2.3.1", - "bandit>=1.8", - "black>=25.1", - "blacken-docs>=1.19", - "code-review-graph[all,embeddings]==2.3.6", - "codespell>=2.3", - "deptry>=0.23", - "django-stubs>=6.0.6", - "factory-boy>=3.3.1", - "faker>=37.4", - "flext-tests", - "hypothesis>=6.157.2", - "isort>=8.0.1", - "matplotlib-stubs>=0.3", - "mkdocs>=1.6", - "mkdocs-awesome-pages-plugin>=2.9", - "mkdocs-encryptcontent-plugin>=2", - "mkdocs-exclude>=1.0.2", - "mkdocs-get-deps>=0.2", - "mkdocs-git-revision-date-localized-plugin>=1.2", - "mkdocs-literate-nav>=0.6", - "mkdocs-macros-plugin>=1", - "mkdocs-material>=9.5", - "mkdocs-material-extensions>=1.3.1", - "mkdocs-mermaid2-plugin>=1.1", - "mkdocs-minify-plugin>=0.7", - "mkdocs-print-site-plugin>=0.8", - "mkdocs-redirects>=1.2", - "mkdocs-section-index>=0.3.12", - "mkdocs-versioning>=0.2", - "mkdocstrings>=0.24", - "mkdocstrings-python>=1.7", - "mypy>=2.3.0", - "pip-audit>=2.10.1", - "pre-commit>=4.6.0", - "pylint>=3.3", - "pyrefly>=1.1.1", - "pyright>=1.1.411", - "pytest>=8.4", - "pytest-benchmark>=5.1", - "pytest-clarity>=1.0.1", - "pytest-codeblocks>=0.17.0", - "pytest-cov>=6.2", - "pytest-deadfixtures>=2.2.1", - "pytest-env>=1.1.5", - "pytest-markdown-docs>=0.9.2", - "pytest-mock>=3.14", - "pytest-randomly>=3.16", - "pytest-sugar>=1", - "pytest-timeout>=2.4", - "pytest-xdist>=3.8", - "pyupgrade>=3.19", - "radon>=6.0.1", - "ruff>=0.12.3", - "rumdl>=0.2.46", - "types-cachetools>=6.2", - "types-cffi>=2.0", - "types-click>=7.1", - "types-defusedxml>=0.7", - "types-docker>=7.2.0.20260720", - "types-flask>=1.1.6", - "types-jsonschema>=4.26", - "types-ldap3>=2.9.13.20250622", - "types-openpyxl>=3.1.5.20260518", - "types-paramiko>=4.0", - "types-protobuf>=6.30.2.20250703", - "types-psutil>=7", - "types-psycopg2>=2.9.21.20250718", - "types-pyasn1>=0.6", - "types-pyopenssl>=24.1", - "types-python-dateutil>=2.9", - "types-pyyaml>=6.0.12.20260518", - "types-redis>=4.6", - "types-requests>=2.32.4", - "types-setuptools>=80.9", - "types-tabulate>=0.10", - "types-toml>=0.10.8.20260518", - "vulture>=2.13", - "yamlfix>=1.19.1", -] -workspace = [ - "flext-api", - "flext-auth", - "flext-cli", - "flext-core", - "flext-db-oracle", - "flext-dbt-ldap", - "flext-dbt-ldif", - "flext-dbt-oracle", - "flext-dbt-oracle-wms", - "flext-grpc", - "flext-infra", - "flext-ldap", - "flext-ldif", - "flext-meltano", - "flext-observability", - "flext-oracle-oic", - "flext-oracle-wms", - "flext-plugin", - "flext-quality", - "flext-tap-ldap", - "flext-tap-ldif", - "flext-tap-oracle", - "flext-tap-oracle-oic", - "flext-tap-oracle-wms", - "flext-target-ldap", - "flext-target-ldif", - "flext-target-oracle", - "flext-target-oracle-oic", - "flext-target-oracle-wms", - "flext-tests", - "flext-web", -] - # [CUSTOM] project metadata [project] classifiers = [ @@ -176,6 +53,11 @@ Documentation = "https://docs.flext.sh" Homepage = "https://github.com/flext-sh/flext" Repository = "https://github.com/flext-sh/flext" +# [MANAGED] build system +[build-system] +build-backend = "hatchling.build" +requires = ["hatchling"] + # [MANAGED] codespell [tool.codespell] check-filenames = true @@ -296,7 +178,7 @@ local_partial_types = true mypy_path = [".", "src"] namespace_packages = true no_implicit_reexport = true -plugins = ["pydantic.mypy", "returns.contrib.mypy.returns_plugin"] +plugins = ["pydantic.mypy"] python_version = "3.13" strict_equality = true warn_redundant_casts = true @@ -2129,13 +2011,10 @@ root = "flext-web/tests" [tool.pytest.ini_options] addopts = [ "--benchmark-disable", - "--dist=worksteal", "--durations=10", "--markdown-docs", - "--session-timeout=300", "--strict-markers", "--timeout=30", - "-n=4", ] filterwarnings = [ "error", @@ -2488,3 +2367,121 @@ line_length = 88 preserve_quotes = true section_whitelines = 1 whitelines = 1 + +[dependency-groups] +codegen = ["flext-infra"] +dev = [ + "actionlint-py>=1.7.12.24", + "autoflake>=2.3.1", + "bandit>=1.8", + "black>=25.1", + "blacken-docs>=1.19", + "code-review-graph[all,embeddings]==2.3.6", + "codespell>=2.3", + "deptry>=0.23", + "django-stubs>=6.0.6", + "factory-boy>=3.3.1", + "faker>=37.4", + "flext-tests", + "hypothesis>=6.157.2", + "isort>=8.0.1", + "matplotlib-stubs>=0.3", + "mkdocs>=1.6", + "mkdocs-awesome-pages-plugin>=2.9", + "mkdocs-encryptcontent-plugin>=2", + "mkdocs-exclude>=1.0.2", + "mkdocs-get-deps>=0.2", + "mkdocs-git-revision-date-localized-plugin>=1.2", + "mkdocs-literate-nav>=0.6", + "mkdocs-macros-plugin>=1", + "mkdocs-material>=9.5", + "mkdocs-material-extensions>=1.3.1", + "mkdocs-mermaid2-plugin>=1.1", + "mkdocs-minify-plugin>=0.7", + "mkdocs-print-site-plugin>=0.8", + "mkdocs-redirects>=1.2", + "mkdocs-section-index>=0.3.12", + "mkdocs-versioning>=0.2", + "mkdocstrings>=0.24", + "mkdocstrings-python>=1.7", + "mypy>=2.3.0", + "pip-audit>=2.10.1", + "pre-commit>=4.6.0", + "pylint>=3.3", + "pyrefly>=1.1.1", + "pyright>=1.1.411", + "pytest>=8.4", + "pytest-benchmark>=5.1", + "pytest-clarity>=1.0.1", + "pytest-codeblocks>=0.17.0", + "pytest-cov>=6.2", + "pytest-deadfixtures>=2.2.1", + "pytest-env>=1.1.5", + "pytest-markdown-docs>=0.9.2", + "pytest-mock>=3.14", + "pytest-randomly>=3.16", + "pytest-sugar>=1", + "pytest-timeout>=2.4", + "pytest-xdist>=3.8", + "pyupgrade>=3.19", + "radon>=6.0.1", + "ruff>=0.12.3", + "rumdl>=0.2.46", + "types-cachetools>=6.2", + "types-cffi>=2.0", + "types-click>=7.1", + "types-defusedxml>=0.7", + "types-docker>=7.2.0.20260720", + "types-flask>=1.1.6", + "types-jsonschema>=4.26", + "types-ldap3>=2.9.13.20250622", + "types-openpyxl>=3.1.5.20260518", + "types-paramiko>=4.0", + "types-protobuf>=6.30.2.20250703", + "types-psutil>=7", + "types-psycopg2>=2.9.21.20250718", + "types-pyasn1>=0.6", + "types-pyopenssl>=24.1", + "types-python-dateutil>=2.9", + "types-pyyaml>=6.0.12.20260518", + "types-redis>=4.6", + "types-requests>=2.32.4", + "types-setuptools>=80.9", + "types-tabulate>=0.10", + "types-toml>=0.10.8.20260518", + "vulture>=2.13", + "yamlfix>=1.19.1", +] +workspace = [ + "flext-api", + "flext-auth", + "flext-cli", + "flext-core", + "flext-db-oracle", + "flext-dbt-ldap", + "flext-dbt-ldif", + "flext-dbt-oracle", + "flext-dbt-oracle-wms", + "flext-grpc", + "flext-infra", + "flext-ldap", + "flext-ldif", + "flext-meltano", + "flext-observability", + "flext-oracle-oic", + "flext-oracle-wms", + "flext-plugin", + "flext-quality", + "flext-tap-ldap", + "flext-tap-ldif", + "flext-tap-oracle", + "flext-tap-oracle-oic", + "flext-tap-oracle-wms", + "flext-target-ldap", + "flext-target-ldif", + "flext-target-oracle", + "flext-target-oracle-oic", + "flext-target-oracle-wms", + "flext-tests", + "flext-web", +] diff --git a/uv.lock b/uv.lock index 5c3704b87..8e6849ceb 100644 --- a/uv.lock +++ b/uv.lock @@ -853,7 +853,7 @@ wheels = [ [[package]] name = "cyclopts" -version = "4.22.2" +version = "4.22.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "attrs" }, @@ -861,9 +861,9 @@ dependencies = [ { name = "rich" }, { name = "rich-rst" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/69/98/ca72a91d5c25a2ae1baf19d27b31f12288cb9d8a3168b65b3cd54d40d277/cyclopts-4.22.2.tar.gz", hash = "sha256:0721e90e7209885e78f7637cfba255c12e89206b633e35d185305e349ba20ecd", size = 194511, upload-time = "2026-07-24T20:53:08.739Z" } +sdist = { url = "https://files.pythonhosted.org/packages/13/55/119aaed705f1a05cf0fde86b921f837cafd049136013f381ed1014f381d9/cyclopts-4.22.3.tar.gz", hash = "sha256:6c366f32604c23db83819a0411c0e30b398a6fcbc718191ea39f7119ce725d8e", size = 194617, upload-time = "2026-07-30T16:36:23.671Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/bd/75/a11bfb5045e58b4ef69337b848985918e829fe9a90572a761d17c1a992f5/cyclopts-4.22.2-py3-none-any.whl", hash = "sha256:9c2cdf6a621886cd0af631a67437eb7d0084f33f9e8fba2d2562a1aecf75f2ff", size = 233906, upload-time = "2026-07-24T20:53:07.064Z" }, + { url = "https://files.pythonhosted.org/packages/e4/75/2013521356f5e85a4b03ddbf5c14425be288512d431a4fa0e1e9b51c78ad/cyclopts-4.22.3-py3-none-any.whl", hash = "sha256:e03b9676c0f7495a9a7d51179222133938538984184b3a2ac50f26aab35b6970", size = 234005, upload-time = "2026-07-30T16:36:21.8Z" }, ] [[package]] @@ -2303,7 +2303,6 @@ dependencies = [ { name = "python-dotenv" }, { name = "python-on-whales" }, { name = "pyyaml" }, - { name = "returns" }, { name = "rope" }, { name = "structlog" }, { name = "tomlkit" }, @@ -2419,7 +2418,6 @@ requires-dist = [ { name = "python-dotenv", specifier = ">=1.2.2" }, { name = "python-on-whales", specifier = ">=0.81.0" }, { name = "pyyaml", specifier = ">=6.0.3" }, - { name = "returns", specifier = ">=0.27.0" }, { name = "rope", specifier = ">=1.14.0" }, { name = "structlog", specifier = ">=25.5.0" }, { name = "tomlkit", specifier = ">=0.14.0" }, @@ -3802,8 +3800,8 @@ requires-dist = [ { name = "mkdocs-exclude", specifier = ">=1.0.2" }, { name = "mkdocs-material", specifier = ">=9.7.6" }, { name = "mkdocs-section-index", specifier = ">=0.3.12" }, - { name = "mkdocstrings", specifier = ">=1.0.4" }, - { name = "mkdocstrings-python", specifier = ">=2.0.3" }, + { name = "mkdocstrings", specifier = ">=1.0.6" }, + { name = "mkdocstrings-python", specifier = ">=2.0.5" }, { name = "pyrefly", specifier = ">=1.1.1" }, { name = "rope", specifier = ">=1.14.0" }, { name = "ruff", specifier = ">=0.15.12" }, @@ -8279,33 +8277,33 @@ wheels = [ [[package]] name = "hypothesis" -version = "6.163.0" +version = "6.164.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "sortedcontainers" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/61/08/4cbfa0327e9df00f57fc67f91847add2f0dd6c23408935273b095ee9a9f1/hypothesis-6.163.0.tar.gz", hash = "sha256:520480d4bd3a17557616c25923640953e360332c89d012fffcebd69857e674a9", size = 490145, upload-time = "2026-07-28T07:16:46.026Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/89/b1/3eea7a422de342bd0095a9672c3e03fe0466e4561a55499a1e01b4a9f098/hypothesis-6.163.0-cp310-abi3-macosx_10_12_x86_64.whl", hash = "sha256:331906cb029b6b360b8ebac3ec00c3cfa720037fe2efb294a503a1979c9a9a8f", size = 769898, upload-time = "2026-07-28T07:15:19.323Z" }, - { url = "https://files.pythonhosted.org/packages/bc/24/45b5c948c76c16ecf1e4ad1ca4a4a3fce55b3317ee172bc8230ff2956ae1/hypothesis-6.163.0-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:b4ad2134405d5345434c22dea96bbc12c85abcfc3c253a8063dbc9ff01164555", size = 765438, upload-time = "2026-07-28T07:16:04.69Z" }, - { url = "https://files.pythonhosted.org/packages/0f/72/7725039a75b3679dc445a169026b11860a0e67a600c4ffed49a42040a000/hypothesis-6.163.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50073f8e63c1e7d3403899755657a990d8bba7b5b5bff66b1c56796d4969bb28", size = 1094699, upload-time = "2026-07-28T07:15:56.668Z" }, - { url = "https://files.pythonhosted.org/packages/dd/fa/bcfa3879f303a302ec6e5f4d35b583924867a0821b42fa275f440f3b8dab/hypothesis-6.163.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8c5d1e6bad47edf6fb1d7406cf6d67314ac08325c63a49550d782a4596ea302b", size = 1123315, upload-time = "2026-07-28T07:16:40.381Z" }, - { url = "https://files.pythonhosted.org/packages/5f/7f/e7fe2f0658db5182bb1d4b266d17f8f81cf3db82eeba27677ddfea13ac09/hypothesis-6.163.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ec3b709508ccd835d8ded1db025b7800618f2289a22a6bfd4927da5f4eb33c", size = 1144220, upload-time = "2026-07-28T07:15:20.617Z" }, - { url = "https://files.pythonhosted.org/packages/90/14/c26f93a4693bfd83d7ba14b7043d986458026f6635d1b157bc2f1c56a59e/hypothesis-6.163.0-cp310-abi3-manylinux_2_31_riscv64.whl", hash = "sha256:7cb3d927360fe73f9a06d646e6082237142ee39c24679c7133d22bf06dd03b45", size = 1099527, upload-time = "2026-07-28T07:16:17.955Z" }, - { url = "https://files.pythonhosted.org/packages/ea/f5/4c1dde28d2e18e169dd6c471ef4bcf12abf3c6a3f4a1744bdabdbdf411ba/hypothesis-6.163.0-cp310-abi3-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3f3cceb4720a39127622fbf3bcebe1775b894372c53b5edddfdef10bbdeef9ec", size = 1136272, upload-time = "2026-07-28T07:16:38.182Z" }, - { url = "https://files.pythonhosted.org/packages/3a/5b/54153509ed42cc17e1b65efe34a0c781f42fb04c902dc5f25486c537ec88/hypothesis-6.163.0-cp310-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:59f5fdb8addb44c17520a60d50542d9db6ceba577bbf54efefa9c10ee20be140", size = 1268518, upload-time = "2026-07-28T07:15:42.991Z" }, - { url = "https://files.pythonhosted.org/packages/81/86/f86f0d15d91b9cbff3546c1b8891950b2b08c0527e7494133fb2180e1b8b/hypothesis-6.163.0-cp310-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:f1fe222f50a1898e87a1e7323ab35f9e956278efabe4dd55a1342808206d05ad", size = 1396357, upload-time = "2026-07-28T07:15:26.696Z" }, - { url = "https://files.pythonhosted.org/packages/46/3a/c096b6b272f15e17e8e65c6ccfb2e1d167456ff5bbd9db33dca3185199f6/hypothesis-6.163.0-cp310-abi3-musllinux_1_2_riscv64.whl", hash = "sha256:56ed585baab75cb98462c57ca88bbdc6a9d935a14118dd572fb476c3ecec2a06", size = 1269128, upload-time = "2026-07-28T07:16:11.902Z" }, - { url = "https://files.pythonhosted.org/packages/bb/9f/0807445874b3083a22c9a14a0ffc31bd0060ef3b408ce4cb31c20779cdf8/hypothesis-6.163.0-cp310-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:2849c23b2e0fe2eef4c1ec336b01eac7ad7397c49fca43c264f59ec1e6046eac", size = 1311189, upload-time = "2026-07-28T07:16:08.545Z" }, - { url = "https://files.pythonhosted.org/packages/d6/de/3319aa8fcffd1641defc1c5eea1ad646a33d1b62528ef487a89752bc8079/hypothesis-6.163.0-cp310-abi3-win32.whl", hash = "sha256:b2ddcdaf6691101e06dc4a5add7b8c8fdf1e68daba599255a281f3f3550d3331", size = 655743, upload-time = "2026-07-28T07:16:30.966Z" }, - { url = "https://files.pythonhosted.org/packages/8e/48/36bc72910451e6e88b75e59a6ddbf0db34ff61a3b11c9439801dfd5fec20/hypothesis-6.163.0-cp310-abi3-win_amd64.whl", hash = "sha256:4ab0dadc09c537d4ac57e564039dfe7daf09c98375306d54bfc0fd6c218efcca", size = 661902, upload-time = "2026-07-28T07:16:34.407Z" }, - { url = "https://files.pythonhosted.org/packages/58/69/c474a3fa1c33d9a6e059e820221275d9c60eb10085f6164212c291856157/hypothesis-6.163.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:a16ebce774755a7a652bd44c62101dc914372ed1a98935969624848c9627b4a4", size = 771335, upload-time = "2026-07-28T07:15:14.988Z" }, - { url = "https://files.pythonhosted.org/packages/54/27/8951688de58314780ba0af5bf2675709009dcc1fb568d244f2a03c4de8e9/hypothesis-6.163.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:40dfab6fe6a02a80abef81aebf88e53cd529e3f2f6ba3486b674a67b1f4a3512", size = 763020, upload-time = "2026-07-28T07:15:25.218Z" }, - { url = "https://files.pythonhosted.org/packages/8b/d7/9eb7451400507f4b5c972c81c2bc57d0009597ea37295519a9645963a50e/hypothesis-6.163.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f28ad27193c1fbcfb52ef2ee63d2b721563525089e80962b4268b306dac45507", size = 1093415, upload-time = "2026-07-28T07:16:27.408Z" }, - { url = "https://files.pythonhosted.org/packages/24/cc/c12c780676c7a4a4051d05e7b278a94bf1bb496ef31882881160f16866c9/hypothesis-6.163.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8aac96db8a6c7ee43aba2ee0d3c43893da1fb7c38ed54790c1be2b6d8fd87b96", size = 1143356, upload-time = "2026-07-28T07:16:01.571Z" }, - { url = "https://files.pythonhosted.org/packages/4b/c1/61c5ebdb77a3f259803e60a12f56de35f8b6d641a6219f798dcfa69dece3/hypothesis-6.163.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:9d23f0f3a14bb6e6f99c793d340196dba4af95ba25bfcab624d1794f540f5e27", size = 1266375, upload-time = "2026-07-28T07:15:11.353Z" }, - { url = "https://files.pythonhosted.org/packages/a2/53/f3a89b4d21d89098d1dec749632aa0fece04f5d17a9e7e91c7f10596d55a/hypothesis-6.163.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b123b4995a7612f1130e2b2362c9a5d0568df887bf7e7bdb45c23af8cd5423c9", size = 1310257, upload-time = "2026-07-28T07:16:42.213Z" }, - { url = "https://files.pythonhosted.org/packages/06/e7/88e71c4cec0df68aa7a2fb251083c544f30697bd90fb4b1ed19de493ab81/hypothesis-6.163.0-cp313-cp313-win_amd64.whl", hash = "sha256:b268211e625cd550e361fc387bf1db5deb1e9cae0ce4041116f0a0aafeef7c06", size = 658983, upload-time = "2026-07-28T07:16:10.289Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/7a/ac/7b76103bd74d8457e4de0c6a6c3a26ac6327016438bde125e0a3de83a5b8/hypothesis-6.164.0.tar.gz", hash = "sha256:5d63d263d8c71b571638c18d9591f6e34b836c60a12469e9d9105c1c785f00f1", size = 492022, upload-time = "2026-07-30T12:39:49.085Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7c/fe/d5b75a55892b33e72945f82efc71f645d29c0bfdb9f00727f7535a52edcc/hypothesis-6.164.0-cp310-abi3-macosx_10_12_x86_64.whl", hash = "sha256:14b861ac3353f8643b82a3ba76b8a0a54d2a06160c32b9a1f64a8ab41b179089", size = 771561, upload-time = "2026-07-30T12:39:00.404Z" }, + { url = "https://files.pythonhosted.org/packages/1c/b0/2f01e9efc7267446bad0e2a68f7472daa174a72553d213b16aefe44b2bda/hypothesis-6.164.0-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:3d8c8bb00a4b86ae90b9ad41f3e1c99d016ec3e64c0ff9d676a4bb7be4f56948", size = 767079, upload-time = "2026-07-30T12:39:23.123Z" }, + { url = "https://files.pythonhosted.org/packages/c3/26/d7bcd26b58e1df2bd39116b924b2a72676215d9650e68cbff9a629c3ce30/hypothesis-6.164.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e80e3ba8eaf37664eaa0f2625cef120b330b128a7df570210cf8be4f5ae65aaa", size = 1096364, upload-time = "2026-07-30T12:38:49.972Z" }, + { url = "https://files.pythonhosted.org/packages/9d/17/99fe7ea866935da83444c3ef7885a14fc7349d96ff61c6faebd37ef4edf2/hypothesis-6.164.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8cdf70f821e2d2f3a0bccaab29830aea8aefb63a77806e7e91246fb65a10c8d3", size = 1124963, upload-time = "2026-07-30T12:39:13.1Z" }, + { url = "https://files.pythonhosted.org/packages/38/e8/df08be6296cbc1271d44e81f8ff9dcd6267a07552fb768e0fdc166e93d40/hypothesis-6.164.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bcc3743e22b3cffa7267b4bc74d03628606e4a115495728e986a7be220987315", size = 1145886, upload-time = "2026-07-30T12:39:45.612Z" }, + { url = "https://files.pythonhosted.org/packages/4e/72/d5cf6fbfac40891d4281f630e16a6eb217ff56f97e350a06e0fd9322aa6a/hypothesis-6.164.0-cp310-abi3-manylinux_2_31_riscv64.whl", hash = "sha256:730f09d4afcd8a918b3d589bfb6421e3b41c057aa57652a773ef4f512cc60836", size = 1101181, upload-time = "2026-07-30T12:39:05.194Z" }, + { url = "https://files.pythonhosted.org/packages/fb/ff/7ceb002329febffb678b65835ca6e9479a916325d088aadb0210d07f8252/hypothesis-6.164.0-cp310-abi3-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9651cb48cb5a995295b442138d15d381547b935dcb0066fca7148a7955347400", size = 1137970, upload-time = "2026-07-30T12:39:16.076Z" }, + { url = "https://files.pythonhosted.org/packages/7c/8f/c12c697b73ca9ca24d8a913879e3e0a9db86479754c7221554247c701565/hypothesis-6.164.0-cp310-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:51d161d2655dd86143b370c577267b5b7b4c2e8fcb8a3f22c1a787572aad707c", size = 1270184, upload-time = "2026-07-30T12:38:54.436Z" }, + { url = "https://files.pythonhosted.org/packages/0e/2f/93f1c850c794fc9c80f5e61b3b20652126b865e6f57b348ae530446aadc7/hypothesis-6.164.0-cp310-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:e8a250552390128b57e3afe55035ce2c2cb1f6f0919817657854244f071bc5be", size = 1397987, upload-time = "2026-07-30T12:38:21.113Z" }, + { url = "https://files.pythonhosted.org/packages/c5/b8/bab2546325e15e87c8518dfbca263c81dbc35d566c516d66c9da98a38b77/hypothesis-6.164.0-cp310-abi3-musllinux_1_2_riscv64.whl", hash = "sha256:570cd51944e1cc3443847d8afa3d17fcf8aac475a1f744c9e7318a5ad7ef5c9f", size = 1270755, upload-time = "2026-07-30T12:38:51.571Z" }, + { url = "https://files.pythonhosted.org/packages/6a/4e/ea97dd39678a42dc5a24e3e2a64d3b950fad9fb1dcce8d7be5afb52a0335/hypothesis-6.164.0-cp310-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:3a423e543055b3de5af7a7624c4285422541658367211fa293a3a57dd0ad01ba", size = 1312888, upload-time = "2026-07-30T12:38:30.847Z" }, + { url = "https://files.pythonhosted.org/packages/44/84/a6f2d5b12b23d65f16eb398750e430065f9d1f40f4418569e3b87ef58d23/hypothesis-6.164.0-cp310-abi3-win32.whl", hash = "sha256:f5e51490b2ce64c66138f24477d83c71b6224ab0ef65700da10187c464b54e94", size = 657401, upload-time = "2026-07-30T12:39:11.581Z" }, + { url = "https://files.pythonhosted.org/packages/f5/d3/c5ee410daa594cac2d3fe1fbe5473f2390e35f4369e168a817e43341ce2f/hypothesis-6.164.0-cp310-abi3-win_amd64.whl", hash = "sha256:c9059dfbb039342b6590bbce207f90e0f9a80fdf45a404c68c2d3e598be78ab3", size = 663566, upload-time = "2026-07-30T12:39:30.27Z" }, + { url = "https://files.pythonhosted.org/packages/ba/b4/729697380a22dc2ce8feae3c64b08bf3bd3c27e99c3706cb9bdac40c6fc8/hypothesis-6.164.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:29e7cb48974cb9fd87602e20625c890385793c6b56c18a957085a9c291f56ef8", size = 773046, upload-time = "2026-07-30T12:39:40.473Z" }, + { url = "https://files.pythonhosted.org/packages/38/35/72374f02d90dfda198afd8aac6b1e7d1184506f97e62ebcf3d2c1e5bf761/hypothesis-6.164.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1ff8c3819345be8dd15ee6588ee9383869a54c9a3d2232cce5e26b456424135d", size = 764659, upload-time = "2026-07-30T12:38:55.896Z" }, + { url = "https://files.pythonhosted.org/packages/6e/75/fb26388915d71e5949b98ccd0c9d95edcbe6b45d0370f177d43633d81ae2/hypothesis-6.164.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:33e88be13fac3ff7cb789a0b4cc43d99fb297db085f529fbb363188141c7d5bf", size = 1095078, upload-time = "2026-07-30T12:38:34.677Z" }, + { url = "https://files.pythonhosted.org/packages/be/63/f6da6e39667d39a1e44c5df82fbe6cff070c29aaffa9beb62a5322e7d8ae/hypothesis-6.164.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2e296d03a77355ce2e1c32e85a636b555edf0ddaaef277f98f1b84fe38a4595", size = 1145015, upload-time = "2026-07-30T12:39:26.487Z" }, + { url = "https://files.pythonhosted.org/packages/88/c7/55ba09727da3d9a60628c50e31e6083a36f403cb230f5e1a7bd1749a5c39/hypothesis-6.164.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:53698a1b246714539dd0ecc2d556cde613d74e9f7385ec4109e0651ab2d382d6", size = 1268027, upload-time = "2026-07-30T12:38:25.676Z" }, + { url = "https://files.pythonhosted.org/packages/ff/35/4789cade332f799b0e8f2f7ea0fe2aae6157a85e60f74497e316dd17a7e3/hypothesis-6.164.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:004c92c4b869f8e258f0641101b7743cae8420436f4465383f681c086ef95c9d", size = 1311895, upload-time = "2026-07-30T12:39:14.621Z" }, + { url = "https://files.pythonhosted.org/packages/12/8a/18d85e624f8631aec42daa8a2f07c6edcedb7385b2c0f375ba8a30cbd065/hypothesis-6.164.0-cp313-cp313-win_amd64.whl", hash = "sha256:4878f81fa92a580d3e16b53e64e01a9d9fe1dca5973783558493a003138dbd36", size = 660656, upload-time = "2026-07-30T12:38:37.696Z" }, ] [[package]] @@ -8851,11 +8849,11 @@ wheels = [ [[package]] name = "markdown" -version = "3.10.2" +version = "3.10.3" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/2b/f4/69fa6ed85ae003c2378ffa8f6d2e3234662abd02c10d216c0ba96081a238/markdown-3.10.2.tar.gz", hash = "sha256:994d51325d25ad8aa7ce4ebaec003febcce822c3f8c911e3b17c52f7f589f950", size = 368805, upload-time = "2026-02-09T14:57:26.942Z" } +sdist = { url = "https://files.pythonhosted.org/packages/29/6f/da4c6aea59b3001f2e8c0ec7497475aadaf3b021c10cab5b2858f0f32b26/markdown-3.10.3.tar.gz", hash = "sha256:3589362618f743188b4d955b874402bc814f4f83f544dc207719f4baa7d9c45f", size = 372596, upload-time = "2026-07-30T19:05:29.005Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/de/1f/77fa3081e4f66ca3576c896ae5d31c3002ac6607f9747d2e3aa49227e464/markdown-3.10.2-py3-none-any.whl", hash = "sha256:e91464b71ae3ee7afd3017d9f358ef0baf158fd9a298db92f1d4761133824c36", size = 108180, upload-time = "2026-02-09T14:57:25.787Z" }, + { url = "https://files.pythonhosted.org/packages/64/69/4a5af2bc115a9a33fefe51709749de8262be3f9ba063d1753a837cdbc49c/markdown-3.10.3-py3-none-any.whl", hash = "sha256:fa6c92a00a4a3c98b22728c64a935ae1928250ae65058a6ded814d2cc29a4cea", size = 110757, upload-time = "2026-07-30T19:05:27.883Z" }, ] [[package]] @@ -11021,11 +11019,11 @@ wheels = [ [[package]] name = "redis" -version = "8.0.1" +version = "8.1.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/cc/c3/928b290c2c0ca99ab96eea5b4ff8f30be8112b075301a7d3ba214a3c8c12/redis-8.0.1.tar.gz", hash = "sha256:afc5a7a2f5a084f5b1880dec548dd45be17db7e43c82a30d84f952aefb05cfb0", size = 5114170, upload-time = "2026-06-23T14:52:37.728Z" } +sdist = { url = "https://files.pythonhosted.org/packages/a8/99/604f0b666d4c616d891cf77ebb9db6bb21601344c051aebf1b72b9ff915f/redis-8.1.0.tar.gz", hash = "sha256:6e1a19beef9225c83efd689c7e6b7da2d5215b1f42cd13b7fc3714d0a09c7b25", size = 5254356, upload-time = "2026-07-30T08:51:00.269Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/fd/0a/c2345ebf1ebe70840ce3f6c6ee612f8fa749cfbd1b03069c53bf0c62aaad/redis-8.0.1-py3-none-any.whl", hash = "sha256:47daa35a058c23468d6437f17a8c76882cb316b838ef763036af99b96cedd743", size = 502406, upload-time = "2026-06-23T14:52:36.137Z" }, + { url = "https://files.pythonhosted.org/packages/66/9d/c5731f6e3608663d4d3656fd8d3aecee8b509c3082818f5a13eae925baea/redis-8.1.0-py3-none-any.whl", hash = "sha256:a4fe1aac3d3b3cc791d4b3d5931c5a956045dc951ee74d1c913ee3ac4d2ee9fb", size = 560618, upload-time = "2026-07-30T08:50:58.497Z" }, ] [[package]] @@ -11120,18 +11118,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/bb/f9/15b44d5e4401b0013bbcefe3c09d7bfddcce28cc3d41b1d3077bcedf5b1f/requirements_parser-0.13.1-py3-none-any.whl", hash = "sha256:6e385663eb32589d16e5b22bb6e5251a57908e73803ffff438b53cd6ea2056e0", size = 14926, upload-time = "2026-06-18T07:52:24.171Z" }, ] -[[package]] -name = "returns" -version = "0.28.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "typing-extensions" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/db/8a/9f6285f3a195ef4cb400c60e10952b25f19c513f44ef739a959c403087a8/returns-0.28.0.tar.gz", hash = "sha256:0eb059d81bfd8af64c86d9286cdf19c280f5a815ee719ff838a9c20b29ce4f84", size = 105269, upload-time = "2026-06-04T09:07:26.371Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/47/15/7da7c0efa3ecfb2b69ef2283e17b93330109d618afe5c788b9bc81807da4/returns-0.28.0-py3-none-any.whl", hash = "sha256:2d7e28070c3fe34d1b6f6be5598b85da83b1c8ed4e567899351dcdb7e9b74a7c", size = 160134, upload-time = "2026-06-04T09:07:27.616Z" }, -] - [[package]] name = "rich" version = "14.3.4" @@ -11204,42 +11190,42 @@ wheels = [ [[package]] name = "ruff" -version = "0.16.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/4d/94/1e5e4967626faf12fa56999cd6222dff6992ceb086ad7945756baf70c7a7/ruff-0.16.0.tar.gz", hash = "sha256:e460aafd5495ec89efaa6ced2e4a9a581116451e1c88b9d37ef497e0f8e93982", size = 4790557, upload-time = "2026-07-23T19:11:30.981Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/4b/81/1c8818fee7ce1a04cd7d1b3172e0a8f8e4f1dc4feb7fc390e16daa8af323/ruff-0.16.0-py3-none-linux_armv6l.whl", hash = "sha256:e5115729eb08c585e5121978ba5d5b60caeae394ce21b9fb5e6cd33a1c6c9b1e", size = 10754633, upload-time = "2026-07-23T19:10:46.415Z" }, - { url = "https://files.pythonhosted.org/packages/23/df/beaf59c09d68db84304d555f188b276a77132a5d5b0b67a5c762aa143628/ruff-0.16.0-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:3c954b1d580bfa035b41654f7858cc7e71d5fc3ac5b723dd62bd9133830ed522", size = 10969164, upload-time = "2026-07-23T19:10:50.271Z" }, - { url = "https://files.pythonhosted.org/packages/42/ce/741cd197496a1abbf51352710fd15ed995d2a2be87189c1da26a450d6e83/ruff-0.16.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:e01c21d10eb1b29f47b7454e1f4056db9a3f0260c646aa88457c610291db9f81", size = 10488846, upload-time = "2026-07-23T19:10:52.639Z" }, - { url = "https://files.pythonhosted.org/packages/52/2a/a2db8e88cade358f5cdcb05674a917751074109315d014eb6352d9a893f7/ruff-0.16.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6e364e5ed22ed8dc05082fd78e35308618260907ac2d3c1d637b2e682415b6c9", size = 10889729, upload-time = "2026-07-23T19:10:54.89Z" }, - { url = "https://files.pythonhosted.org/packages/42/65/62a771694ebd63029dc953e27dbad40e1588bd4860ff9fe881018fddaa49/ruff-0.16.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d327b8fc113a1d4421a04f3839d3752057c8dd1ee320223a6f3f52d04ada462a", size = 10568275, upload-time = "2026-07-23T19:10:56.993Z" }, - { url = "https://files.pythonhosted.org/packages/3f/e2/ced249fe8af5f086c5c58cc21cc3356d50f32f7401c5df87050c999620a7/ruff-0.16.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9b50c55e263103586b3dcf5f73d479eb8cb5fdb6098fec59a62891dab653717", size = 11385112, upload-time = "2026-07-23T19:10:59.615Z" }, - { url = "https://files.pythonhosted.org/packages/87/0b/05154977a8fd69eeb6c103271f55403bfd8711f5c0f8ed07489d95a504e7/ruff-0.16.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0ff4a79ce3ec0172f3241943835de1c4cb4e2dcd07f0f8c2d02603dbbbee4b17", size = 12207008, upload-time = "2026-07-23T19:11:02.154Z" }, - { url = "https://files.pythonhosted.org/packages/fb/29/98225831a3a1eab0e02f4acc6ca6559a98611dcc68b6965ff4b7234627c1/ruff-0.16.0-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e95c448fca1fb2a18372a9440926c5a6ee789639bb975c72e7ae6d0b04218ab4", size = 11650842, upload-time = "2026-07-23T19:11:04.557Z" }, - { url = "https://files.pythonhosted.org/packages/91/66/6bd3cf90500653d55dc0ffc8507aa8300bd49d0214b2e8cb4d3fef2943ba/ruff-0.16.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f11a8d11010301d0a398a2fdef67691feca7294da6aef55e2150e8fa2cd520b", size = 11400718, upload-time = "2026-07-23T19:11:09.233Z" }, - { url = "https://files.pythonhosted.org/packages/8e/a2/a54eb4eae05d66364050a5d3b8a9c5ef88196531b3cbe7109d873f87f819/ruff-0.16.0-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:48044c678e9cb8698246c99b14aaccfa6601dea7379eb48a6f8f73f7a6d86cd0", size = 11426177, upload-time = "2026-07-23T19:11:11.994Z" }, - { url = "https://files.pythonhosted.org/packages/1a/be/16e3eea4b2a478a496919f5e36f17c4559e54620bd3bbac5d6affa068006/ruff-0.16.0-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:7aa0959bad8eb8bef50340154fc9b58678dae31fa4293afa38b44b6e552c0213", size = 10856126, upload-time = "2026-07-23T19:11:14.221Z" }, - { url = "https://files.pythonhosted.org/packages/a2/84/252eb8b868a16eec7257c14f504f77537e734b2d69c762e639e588e304a3/ruff-0.16.0-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:28ea2b7df8ebf7f9da6b7d47b230ab48f387c0a29be3b474c4d0740e197bb9af", size = 10571208, upload-time = "2026-07-23T19:11:16.378Z" }, - { url = "https://files.pythonhosted.org/packages/21/09/817a482f542f7570cbb4554b26e896610c7114f539b1d9e2d2145bf6bef6/ruff-0.16.0-py3-none-musllinux_1_2_i686.whl", hash = "sha256:33a3dfac8c35f81498dea9181bccc2f4c4bc8f1521a1dd9406e77643e0f0fb09", size = 11063329, upload-time = "2026-07-23T19:11:19.173Z" }, - { url = "https://files.pythonhosted.org/packages/2e/23/9403c180ca1cb9b1f7335f5c3e5305c09d49ea5b345196682a36028bde4a/ruff-0.16.0-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:a5237a0bda500d30d81b8e07a6973a5cbc772864cbf746ae2f4e8a2e01c9f4ed", size = 11489751, upload-time = "2026-07-23T19:11:21.74Z" }, - { url = "https://files.pythonhosted.org/packages/b2/1d/1b2ef7bcde851c78d7f17f1cca13fd6dc695fc4b3d6197941e72cae5b132/ruff-0.16.0-py3-none-win32.whl", hash = "sha256:7fab76fa065c873f41ff744347c6e77bcc3dfec4bcc754dc26b63d23c0f7f5fb", size = 10785885, upload-time = "2026-07-23T19:11:23.947Z" }, - { url = "https://files.pythonhosted.org/packages/b2/a3/d5e4ef7a56be3f928ffb90b94c25ba7d3cb9c7fe0736aeaaedf361770712/ruff-0.16.0-py3-none-win_amd64.whl", hash = "sha256:429c117f022bf481fabd9d551e7a3952b24c65e6ef44337ea09d90bebef14472", size = 11923141, upload-time = "2026-07-23T19:11:26.409Z" }, - { url = "https://files.pythonhosted.org/packages/cb/9a/8415f2657cbe200f41a4531ccededf135505a92d4a012229121f885b26f9/ruff-0.16.0-py3-none-win_arm64.whl", hash = "sha256:14296fedcd2705c77ab8235439278bbb38f285cf7da5528b00b3e330c3d4872d", size = 11273407, upload-time = "2026-07-23T19:11:28.705Z" }, +version = "0.16.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/70/25/7113f6d5498888c5fb7db34081cba7d5971c4cb1bfb26819966eee68f003/ruff-0.16.1.tar.gz", hash = "sha256:fedad7c801dabd3fb9741d76aca39246e6ddd9ca446a015875207bf19f1e6bc7", size = 4877500, upload-time = "2026-07-30T19:37:01.379Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1b/bd/694da69368e0973de65df2ddc73ab18d43c469d5963d9b150911de6bc513/ruff-0.16.1-py3-none-linux_armv6l.whl", hash = "sha256:58edb313b88f0c5460a26adf5f39a37a3be789494a15e3e411e35fa78b89f9a0", size = 10839126, upload-time = "2026-07-30T19:36:13.697Z" }, + { url = "https://files.pythonhosted.org/packages/3f/f0/b626e5d5bd0dd9576263658ef12885e2288afd1029a48e26ffed65ec1ac1/ruff-0.16.1-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:fde5a99e2f97479af66edd6622c6d5a2a7592c77cf4153d9e4428f5eeb55b60c", size = 11070253, upload-time = "2026-07-30T19:36:17.14Z" }, + { url = "https://files.pythonhosted.org/packages/83/63/f40acfb6b35b88623e71684942b552c3edd96035f5d98f313815f7b277de/ruff-0.16.1-py3-none-macosx_11_0_arm64.whl", hash = "sha256:e0d4c20532fca4f7fa609369161d968dd28f65d83dabbd61d8e9c7edbf7001f6", size = 10561425, upload-time = "2026-07-30T19:36:20.04Z" }, + { url = "https://files.pythonhosted.org/packages/aa/dd/14ec0e9c2b4d315547dd38765004b4863e354e1b52cb308272215d9f6f6d/ruff-0.16.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:30affbcedf59ad5703d9c91f82266e02b47739f797e1a7b6e158e5526a6dae38", size = 10948879, upload-time = "2026-07-30T19:36:22.476Z" }, + { url = "https://files.pythonhosted.org/packages/33/e9/9d870cbae575030fdef595f04b4b97573c525b5497cce4f4498cf2f85446/ruff-0.16.1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:24e9c631573cbca9d20f1283f8f479b2afa4a8503504822bd71a293889f16743", size = 10643691, upload-time = "2026-07-30T19:36:24.914Z" }, + { url = "https://files.pythonhosted.org/packages/c4/09/12743d544e2173f53ecd27217c65f90d2bc0f8424a66a60339e56bbc0457/ruff-0.16.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b41bdd48fb420987a9b5212e4957c26ad4abce401fa9ea9d4d85843727945f4f", size = 11435354, upload-time = "2026-07-30T19:36:28.447Z" }, + { url = "https://files.pythonhosted.org/packages/7f/89/a1652b2daee52083c9554a6333b678a8b01d0400f976827bb87857f9449a/ruff-0.16.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b0d1e1393b7648079e13669de1c1f4fde06d4583e84d8fd5c1551e0a77a2aa75", size = 12259033, upload-time = "2026-07-30T19:36:31.326Z" }, + { url = "https://files.pythonhosted.org/packages/16/96/ecdcb8c54ee7b123b487f807eb014e6e019155a0b81dfb669acd52f28ce3/ruff-0.16.1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:07bf434b1c95f4e093be4532068ef4fcf00924eb2ade8796075980902d6fd54a", size = 11667981, upload-time = "2026-07-30T19:36:34.394Z" }, + { url = "https://files.pythonhosted.org/packages/cd/90/c52e12e0d862e9572f2a33aa227409143520abe53111e9a6babbac7b4af8/ruff-0.16.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:39897739f112253ee4fdd2e8aa9a4f9ded99fb2be367d5f31dfa4ded6025584c", size = 11468183, upload-time = "2026-07-30T19:36:37.339Z" }, + { url = "https://files.pythonhosted.org/packages/2c/6b/4ffb7ad1d83eb16cf8cbb3c8815d3f11c88460fd162d4b372a2059be1c2a/ruff-0.16.1-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:82ae3c0c0d74daf17b968a10b7b3bb3ef297ab7de0c1f749646b25e690ccb150", size = 11470071, upload-time = "2026-07-30T19:36:39.91Z" }, + { url = "https://files.pythonhosted.org/packages/9c/72/32ae7db4c0b5e32ab611787caa19d1546800676d79f7483b7100a3561bf4/ruff-0.16.1-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:4d5f2ed10f8242d83fc08d521301089364e3375375705356f20c0e31606ef3ef", size = 10919503, upload-time = "2026-07-30T19:36:42.65Z" }, + { url = "https://files.pythonhosted.org/packages/f7/ca/3d901ba6ad6fc38da39c3448fc6c59ac945679293a17c3ceb6d6c1cba13e/ruff-0.16.1-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:a4665b309891f83f3e3c25447935f1213e9abbd4b5640af7a1f2def9f8d413c1", size = 10649861, upload-time = "2026-07-30T19:36:45.18Z" }, + { url = "https://files.pythonhosted.org/packages/92/79/894ef1ced26552d5f8c9cf6d85b0687840e1128c55aeab7b9c2d54a0d880/ruff-0.16.1-py3-none-musllinux_1_2_i686.whl", hash = "sha256:26e9ca5c9bc3971f20d3cf18a957f52ffd6a5f6564ff15c4912a144dcac22494", size = 11148137, upload-time = "2026-07-30T19:36:47.936Z" }, + { url = "https://files.pythonhosted.org/packages/2d/69/3609a09fa1cb46cc28b762363e440a354204e5dff01bd0c8d7437874d6b9/ruff-0.16.1-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:67e1e1e3fa4f0c82f0e36d4cd61e661f6e7a6196cb1aa92fe0828fa7b8f257cd", size = 11559211, upload-time = "2026-07-30T19:36:50.448Z" }, + { url = "https://files.pythonhosted.org/packages/fc/8a/fb22af2fd78a736e241fabf67e30ce1799a64244026377a49e133af90762/ruff-0.16.1-py3-none-win32.whl", hash = "sha256:d31765e131295b8445caf301e3e8a85b34d1b9b211b4109b7ba457888b051806", size = 10838258, upload-time = "2026-07-30T19:36:53.298Z" }, + { url = "https://files.pythonhosted.org/packages/d4/35/e57fd9fb5d423961df087a00b12d42c0a830288dc2f3b45ecca299158b4f/ruff-0.16.1-py3-none-win_amd64.whl", hash = "sha256:09b05e8b90c2cb06ad63464350e7a45e8e44a2dfe52072ebfba6666ca8d3f596", size = 11961111, upload-time = "2026-07-30T19:36:56.107Z" }, + { url = "https://files.pythonhosted.org/packages/cb/46/240ea004bf6dc4feb40e9832f2205a476a47dd5b8a3f8211a5fc5f95e20e/ruff-0.16.1-py3-none-win_arm64.whl", hash = "sha256:dbaadaac38c70239f056d306b7476f246b0bf000fa6b3876402acbf5b227eaf8", size = 11309414, upload-time = "2026-07-30T19:36:58.79Z" }, ] [[package]] name = "rumdl" -version = "0.2.46" +version = "0.2.47" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/54/3b/194f66a79e1a2d74b2e6f278f958ce3b80135b13c395114dc9fcd2ce6993/rumdl-0.2.46.tar.gz", hash = "sha256:99036f4268f4fad4915ff603618d36ba62aa585374f60b2d55bbfe0f10680bd3", size = 3034309, upload-time = "2026-07-29T21:33:24.575Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ee/73/106082a37ca7e87cb7b0fbf51881a1ced2cd473089912ed74ceac7795c56/rumdl-0.2.47.tar.gz", hash = "sha256:4df9dd1c72b358b530e300b0ceec473e3a5afacbc08315df8fa1279c05000f01", size = 3056028, upload-time = "2026-07-31T00:08:25.965Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/32/7f/01f3e6a9217e6d1a5882f43cfdadaa5832895485276edbf395d69370f1e0/rumdl-0.2.46-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:9954f53219b63f434613b7f66cba98c8b08bfea2ee544b184b1af78348ed94ac", size = 6239220, upload-time = "2026-07-29T21:33:17.048Z" }, - { url = "https://files.pythonhosted.org/packages/f9/b7/57e92263f1fe44737eafa3c02d4b211f837d97a689ef7e9da757ff263192/rumdl-0.2.46-py3-none-macosx_11_0_arm64.whl", hash = "sha256:8f28d90e1ca6bdbbb3b20f66333a6aeb120699d01f41d1685c026b15064aac84", size = 5884922, upload-time = "2026-07-29T21:33:10.465Z" }, - { url = "https://files.pythonhosted.org/packages/84/c7/9e9a9eae876c631a1df63d352841858056ae45381d31daaa70c595c13a1d/rumdl-0.2.46-py3-none-manylinux_2_28_aarch64.whl", hash = "sha256:5580ff36a95030c83e103c652e0e36f565e6ab117599ba45a3fff7d6ad5a2d79", size = 6015338, upload-time = "2026-07-29T21:33:12.974Z" }, - { url = "https://files.pythonhosted.org/packages/f4/82/8a14a86290ce859b9a821bf36a73253ab9301015431dbe90f819a27d932d/rumdl-0.2.46-py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:65f16f4902a3748fffa2948264cd8ef31e258b3ae4cb294b448c8ed5882fe259", size = 6422204, upload-time = "2026-07-29T21:33:20.956Z" }, - { url = "https://files.pythonhosted.org/packages/e1/d7/454efa369dcc2343710a49e50f69b7679fe0378024042045ead20015f55b/rumdl-0.2.46-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:9337b2a16d2a8c7a53f0a26c1d6af9ac6f21713eb2a86e754327ed497ebcf6a4", size = 6014307, upload-time = "2026-07-29T21:33:14.991Z" }, - { url = "https://files.pythonhosted.org/packages/68/7d/a3443db44cd3a2337e82fb656f763eb77682ca3752d82e44a9805dd15d60/rumdl-0.2.46-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:b44fa1c0bb27b59c22714b7ff01894b6127a3ae5827caf2add291846cee37e66", size = 6406369, upload-time = "2026-07-29T21:33:22.795Z" }, - { url = "https://files.pythonhosted.org/packages/2d/5d/5e95e629a2e47f0b2d524f3d9b79488fcb5593a0af539133b1798ed32079/rumdl-0.2.46-py3-none-win_amd64.whl", hash = "sha256:5757fb0211377ab8b87490a77dd9dc9079ee13170017c53ff842acd79fb11857", size = 6339300, upload-time = "2026-07-29T21:33:18.865Z" }, + { url = "https://files.pythonhosted.org/packages/8f/92/ca6438be73d5e2f19dafc5999c16873498176bb094eaf9180546cd66aa1a/rumdl-0.2.47-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:43e19b33cdecde1da79ff1ca201b336defafb38010bb8303645153fa9588b18d", size = 6240793, upload-time = "2026-07-31T00:08:16.216Z" }, + { url = "https://files.pythonhosted.org/packages/1e/03/ca147ab742dc904dc5c38bb5ea1c848d9ec6fa6f66c41a0a7d72ae1bebd2/rumdl-0.2.47-py3-none-macosx_11_0_arm64.whl", hash = "sha256:e99c54b8de1b630745ef9f16633d2b3225c83f8d53ae5400768161de258d0f54", size = 5890145, upload-time = "2026-07-31T00:08:08.651Z" }, + { url = "https://files.pythonhosted.org/packages/81/96/d43851585d4f3f7781815fa8e9b1da3dca364190b6c7649d2f608a217691/rumdl-0.2.47-py3-none-manylinux_2_28_aarch64.whl", hash = "sha256:bca364c611209c1405f6308258ba74d284c24e91f25f0de7f7ae453a7418196c", size = 6030016, upload-time = "2026-07-31T00:08:11.526Z" }, + { url = "https://files.pythonhosted.org/packages/05/4b/0b6cee575e6d8ab0676e5519937be6e656c414e5300444f0b476480516c4/rumdl-0.2.47-py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:012b8d0ae68ad9450b621fb8014d87572f479bdf86812c80e5c12d3e6fd27633", size = 6424167, upload-time = "2026-07-31T00:08:20.722Z" }, + { url = "https://files.pythonhosted.org/packages/08/5c/05daf5fdfcc1b56a1ec20ab2d6f654d5a43307868d8705db6d270847df34/rumdl-0.2.47-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:c8a301885616568369ee505649192f87acdaa1d14e0da27f1b984be5c5500275", size = 6020932, upload-time = "2026-07-31T00:08:13.891Z" }, + { url = "https://files.pythonhosted.org/packages/92/05/92e08c366c8a5bbc99c43ecb319ffdb3d0a1968861021e9a98fb730b9180/rumdl-0.2.47-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:d6ac0a3a119863e7d140890f2c419c9c47c5a880176c9a47448ed067dec31b0f", size = 6404588, upload-time = "2026-07-31T00:08:23.83Z" }, + { url = "https://files.pythonhosted.org/packages/18/c4/c0e0d7b0926074dbd74174ebe9249962f929e9384dce12dbd13774734191/rumdl-0.2.47-py3-none-win_amd64.whl", hash = "sha256:456283c68e53f3203dd106cfdec2722b5eedbd20117dc1ed780c398bf657df99", size = 6353117, upload-time = "2026-07-31T00:08:18.372Z" }, ] [[package]] @@ -12251,28 +12237,28 @@ wheels = [ [[package]] name = "uv" -version = "0.11.32" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d3/7c/29fad91a39d7926681f20245d60815b14b481f300cef9c37f1e5ae3cd2a7/uv-0.11.32.tar.gz", hash = "sha256:5359a7b0de78ba99b2519d33c173e004c39111c4baebe1b7c3d111a2de2011e1", size = 5790510, upload-time = "2026-07-23T23:05:52.943Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/86/ca/5ea42012c0ecbaac481f099f3c90ee4db737b3ec0bb6f51fa571e234e740/uv-0.11.32-py3-none-linux_armv6l.whl", hash = "sha256:26d61d1b640d2dcfd7c3b64e75ada14c8eb477accba57f414c1a3759d6ab2253", size = 25933056, upload-time = "2026-07-23T23:05:06.297Z" }, - { url = "https://files.pythonhosted.org/packages/12/85/ef4d0f02f469cfad1d73c11bf31ac0a8f24da3c62d7f3305c50a5e51e814/uv-0.11.32-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:c82954b1bd507e767b1d996c2865ea3eb7d464a479ec0e4d60f0b8e2e07dee45", size = 24918625, upload-time = "2026-07-23T23:05:09.299Z" }, - { url = "https://files.pythonhosted.org/packages/60/43/ec2de11ef008e76a8d01c34d573c939c565694f72c0d008d200aa3a5eac3/uv-0.11.32-py3-none-macosx_11_0_arm64.whl", hash = "sha256:2a56d1abf16337350e878b2c869b256b8448ecc4a722b98f8d41e1b3680a587b", size = 23519325, upload-time = "2026-07-23T23:05:11.877Z" }, - { url = "https://files.pythonhosted.org/packages/5d/61/0d6a8ee5066385fce65a5ef57939b1f63e9ff955afa07fa423c3e7e0abdb/uv-0.11.32-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl", hash = "sha256:125c142363d0842c8506a057da56bae182e2aa3957344f57dd9ef20ea10f06b0", size = 25450318, upload-time = "2026-07-23T23:05:14.617Z" }, - { url = "https://files.pythonhosted.org/packages/30/ec/fee4f0d12c7c42bf3b86eda615185860a76505c19e5b0e82afee8bf1c1a3/uv-0.11.32-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.musllinux_1_1_armv7l.whl", hash = "sha256:96625d832fe5b94ed0a029764cef0879ff47e3a525aec5c99d360a959e2f4aea", size = 25421693, upload-time = "2026-07-23T23:05:17.083Z" }, - { url = "https://files.pythonhosted.org/packages/ca/d3/cd77d7d87411030fb183f0e444634d7ba9803cd6ab64bc240d73ce50a071/uv-0.11.32-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:07ffc8322ce88b29dc0a905c102ea7d32c9021ee0353b641674e350c65fa930a", size = 25451542, upload-time = "2026-07-23T23:05:19.752Z" }, - { url = "https://files.pythonhosted.org/packages/78/3b/3127e224c05101a9675b579978c02d3b500f4362004abb177acdc6294264/uv-0.11.32-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8e36fe8ff79ab7d13e9ad45d24bb9a52c1024caa6897cf62933bb3f760643d13", size = 26809886, upload-time = "2026-07-23T23:05:22.35Z" }, - { url = "https://files.pythonhosted.org/packages/4e/59/82c05d4f1ce1de47667efa6548a14240a9c409388a09b788386317e190ca/uv-0.11.32-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:19fb9f2dba53851c0ee6e7e5582bd355fcaa9b1387b5d688f5bb9efc543dc605", size = 27608113, upload-time = "2026-07-23T23:05:24.948Z" }, - { url = "https://files.pythonhosted.org/packages/8b/f1/649b350677a1fb07938e1b5b33ac7564339f5e1f295a4a958b7181eb9924/uv-0.11.32-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f6f030a91a94655af11e41dafe1b41e1a90e1f2641bf13ff7ed7d4f5fb4f031d", size = 26788162, upload-time = "2026-07-23T23:05:27.585Z" }, - { url = "https://files.pythonhosted.org/packages/90/b0/114463d056b6b328d45557001e848b8ab15539bd8f4fa7a457ccb83e2b5d/uv-0.11.32-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3da76cd4e2697de30928b8a8524bd39183ac1e08cb7e72833807c022b7cba6c4", size = 27013687, upload-time = "2026-07-23T23:05:29.954Z" }, - { url = "https://files.pythonhosted.org/packages/b7/67/6ee5278036c57bcc7ee9c99cd890bac20d4431e63416ffe4080ba8f92767/uv-0.11.32-py3-none-manylinux_2_28_aarch64.whl", hash = "sha256:be0799f1ad70c755d10de5aaf46af94199d4f16a992f90278f2662350cd3f4fe", size = 25582781, upload-time = "2026-07-23T23:05:32.623Z" }, - { url = "https://files.pythonhosted.org/packages/7f/a5/2055d3db9ee3e4f59a14912bfcfacb3ec537d60d8b51a8477e4ddfc11e5c/uv-0.11.32-py3-none-manylinux_2_31_riscv64.musllinux_1_1_riscv64.whl", hash = "sha256:f35b3b8b65ba4579f8b23645a19394f7e5f90b20b07376ecff18b3bb656a81ae", size = 26291488, upload-time = "2026-07-23T23:05:35.219Z" }, - { url = "https://files.pythonhosted.org/packages/dc/59/999a5e83f927539a5b90b708abf77642f07faccf04f37c1f933864c403c6/uv-0.11.32-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:cd085addb35f074561d2c5659a088f5f10361502bd3ad4c8f5105f5a4b9d2817", size = 26419928, upload-time = "2026-07-23T23:05:37.589Z" }, - { url = "https://files.pythonhosted.org/packages/14/1d/7575563aeac458053d220a95eb1c5aeda14870414bd6db00e9eb673c3793/uv-0.11.32-py3-none-musllinux_1_1_i686.whl", hash = "sha256:43360834111ae917808a70b36f4fb0e53de8e0be422e4cd4445876ffae8decc2", size = 26077451, upload-time = "2026-07-23T23:05:40.286Z" }, - { url = "https://files.pythonhosted.org/packages/02/58/0a92505cfe2b02b1c2d6ded23e83763fe98b43fbe1a4e5cbd6866da3bdf7/uv-0.11.32-py3-none-musllinux_1_1_x86_64.whl", hash = "sha256:77f4356548ee8dc47efae154efd4e930c65570e7d4971c57bdef592f6eefb39c", size = 27223406, upload-time = "2026-07-23T23:05:43.037Z" }, - { url = "https://files.pythonhosted.org/packages/00/f8/1f7cf58780bb1c5d6ea89126438971d8e61ad04d290e1c34ce1e8b136a83/uv-0.11.32-py3-none-win32.whl", hash = "sha256:bb1ae8189e315499a77f3cc27cac5985ab1d8cb79baa82e368b6c1e574a7d9cf", size = 24681569, upload-time = "2026-07-23T23:05:45.485Z" }, - { url = "https://files.pythonhosted.org/packages/57/60/a645cca710448004268b7731c4dc6fc7d084a7c620fc73ecc2127cb61661/uv-0.11.32-py3-none-win_amd64.whl", hash = "sha256:855632ee1d2a8491986efa54c562b806cd32477761889a1e13624b519d98a45e", size = 27780686, upload-time = "2026-07-23T23:05:48.141Z" }, - { url = "https://files.pythonhosted.org/packages/13/68/efb90a3e46c9f93e577b34e82467f232308a0ff3b12f807226caca6f72e2/uv-0.11.32-py3-none-win_arm64.whl", hash = "sha256:bf988bf510772785eac1edfc7cdedca074e8936b45e755b58f7f3e1e9ca86424", size = 25882589, upload-time = "2026-07-23T23:05:50.723Z" }, +version = "0.12.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a7/e7/5a94b658b08c46142cf7bf1d0c432cc7d04375b80f42765633414e7541bd/uv-0.12.0.tar.gz", hash = "sha256:80ba22cae467c6f47d2157ec2b840c032cac709b85ab1300ac4dcfeb29986462", size = 5827380, upload-time = "2026-07-28T18:57:12.191Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/20/e9/5663af6b4d90827c008005cfe7926a747688bd408226913d249b9de8492b/uv-0.12.0-py3-none-linux_armv6l.whl", hash = "sha256:11cc7ef5386fe54536cc8921676728a0e5c348cf522c8ee1fa0b81cbafc20cbc", size = 21499556, upload-time = "2026-07-28T18:56:27.552Z" }, + { url = "https://files.pythonhosted.org/packages/4b/8e/b88ae4a3b704f60f8e9dcdef78047c3749077b2f1e884bd387c8e41fe378/uv-0.12.0-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:074e693e9b2df99f621166b44760abe0d53cd9b0ae96fcbfec5809497925da87", size = 19751720, upload-time = "2026-07-28T18:56:30.623Z" }, + { url = "https://files.pythonhosted.org/packages/a5/7b/15d6865264120bd30c738b4bf63ddff66d087087cadeb2a6b88c6284a446/uv-0.12.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:009758d8fde2da2b90900f5fe863c71d0e1b8b28bbdba59863ceb967973a3735", size = 18117978, upload-time = "2026-07-28T18:56:32.904Z" }, + { url = "https://files.pythonhosted.org/packages/0e/bc/2066cc63e6930e3d5e27c73a9c439418164eafb4f1c24845f17caf63eaea/uv-0.12.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl", hash = "sha256:effc2de9f044e880306f3c52b048bf24ee4fe63429c82dd6509c9a0f3d1b8f0b", size = 20833318, upload-time = "2026-07-28T18:56:35.567Z" }, + { url = "https://files.pythonhosted.org/packages/2d/d6/49fef7e4e3c401540113115846e47094aff7cda86f54ba79477636758e38/uv-0.12.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.musllinux_1_1_armv7l.whl", hash = "sha256:e9e660171873f905a6782bf2a5e7515aba1a8e8a5cfce0add68fbe7a22ead8b0", size = 21056599, upload-time = "2026-07-28T18:56:38.117Z" }, + { url = "https://files.pythonhosted.org/packages/2e/b9/cc32f406b5429cbb0f0849938d12a24a33c3bd28b710c8ccd0955c588131/uv-0.12.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:53c5c07fafcf620d23faa8f339742806d57cb82122c97544d0f3750f55e2fe36", size = 21100563, upload-time = "2026-07-28T18:56:40.305Z" }, + { url = "https://files.pythonhosted.org/packages/42/ff/36eef4c1624ed371d8367cf96207f35ba81b42b8308688d1acad835432cc/uv-0.12.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b80a1a89aad16c6d84dd96b0c795b44f3824f0765e815af2f93fd05cb4a894cd", size = 21763617, upload-time = "2026-07-28T18:56:42.59Z" }, + { url = "https://files.pythonhosted.org/packages/05/23/b82dbd945c5b8a88ed5dc8c2c001619677ad5aea246318716c773711aef9/uv-0.12.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a1e84987c4b4d832796b779ad614e91c1b44ac1ade5163c00654b70881ef53cb", size = 22917937, upload-time = "2026-07-28T18:56:45.546Z" }, + { url = "https://files.pythonhosted.org/packages/7b/d9/44f5f753fda99820b972251c3be9ca9e56d98f4ced752cea623f19479fa8/uv-0.12.0-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dbb9d9c40e91b6bf5e124230277fe5579ecf685e6de47e61a0eed8af5ffa0cdb", size = 22555435, upload-time = "2026-07-28T18:56:47.882Z" }, + { url = "https://files.pythonhosted.org/packages/4b/ba/bc14d74741b0292edd8e61e87a4bd96f79447a1b9d27e85cda2e8539039b/uv-0.12.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cbff74f884846d794713670faf8abe10db3bd70c43b01e63223f74eb7d958689", size = 21986958, upload-time = "2026-07-28T18:56:50.271Z" }, + { url = "https://files.pythonhosted.org/packages/1d/52/e14f0a91be4b426f18107f63b1b87e99ec671e8907689cf45144a79c4f76/uv-0.12.0-py3-none-manylinux_2_28_aarch64.whl", hash = "sha256:c818bb6aead39652e2ad644583fa418ac8d92baf50b4c6f685738bb2598e33bd", size = 20965849, upload-time = "2026-07-28T18:56:52.628Z" }, + { url = "https://files.pythonhosted.org/packages/0d/a6/ef7b436f9983c467b88bacb5ce58620398c7fe7fa86ee67906bfce343201/uv-0.12.0-py3-none-manylinux_2_31_riscv64.musllinux_1_1_riscv64.whl", hash = "sha256:5fe6cdc82cacc630827f2ec779b91b0d13ff57ff476e41bdcace05cd61261951", size = 21671684, upload-time = "2026-07-28T18:56:54.923Z" }, + { url = "https://files.pythonhosted.org/packages/9d/c8/19086d68078b514be4c266081e11d5530b07d099cb05d011e1fa6a216e10/uv-0.12.0-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:fcf4b6d0807f8f05a7dd8c090f080674e8526db27a0764af2a5a54ab5096c3eb", size = 21798247, upload-time = "2026-07-28T18:56:57.226Z" }, + { url = "https://files.pythonhosted.org/packages/4d/87/571847075bbe2205ec7ae108c17d01742a1251aea9fe5f9cd5da1496922e/uv-0.12.0-py3-none-musllinux_1_1_i686.whl", hash = "sha256:4be9870fca2952143f33a02347c8da603bbe645283e3e989f038ef7b306b3ecb", size = 20977006, upload-time = "2026-07-28T18:56:59.544Z" }, + { url = "https://files.pythonhosted.org/packages/be/df/d391bc0f5901ff8a0d6285eb433222cacb972b5e5817a420e084ee698894/uv-0.12.0-py3-none-musllinux_1_1_x86_64.whl", hash = "sha256:ed4053e07048ab3561de95c3b686b7983f997cd19d53a265a238103b5dbf258a", size = 22186132, upload-time = "2026-07-28T18:57:02.014Z" }, + { url = "https://files.pythonhosted.org/packages/9c/fe/d440d50811ef913cb035e4c5f346799d9353fd5a8aa8479e57d7efc34692/uv-0.12.0-py3-none-win32.whl", hash = "sha256:bef14df9bec1ee7577fdc5b37d02ad8128574a2eebc130c525255edac051b9a4", size = 19210613, upload-time = "2026-07-28T18:57:04.493Z" }, + { url = "https://files.pythonhosted.org/packages/cb/27/c3da5b9136925ea2bc9209f7cabbfae12fd191f778456ead0f2d6de446a7/uv-0.12.0-py3-none-win_amd64.whl", hash = "sha256:ffdfed09a23e67ef6facf1d4db978a3cd73a886674644131a11a933fd746904a", size = 20005960, upload-time = "2026-07-28T18:57:07.332Z" }, + { url = "https://files.pythonhosted.org/packages/9f/bc/d04df3b6c36be124cb99e7eab59db514ec528f2b5c5ac2ed9fec41fbdc71/uv-0.12.0-py3-none-win_arm64.whl", hash = "sha256:e3d748f526739110dd9e267ecca30604b64a5fe3344f903d348b5a3af1f0a90a", size = 18981523, upload-time = "2026-07-28T18:57:09.743Z" }, ] [[package]] @@ -12290,7 +12276,7 @@ wheels = [ [[package]] name = "virtualenv" -version = "21.7.0" +version = "21.7.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "distlib" }, @@ -12298,9 +12284,9 @@ dependencies = [ { name = "platformdirs" }, { name = "python-discovery" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/fe/25/e367a7229b0914772ca8d81b41fde012d9feda68523b52644a571bb21ce8/virtualenv-21.7.0.tar.gz", hash = "sha256:7f9519b9432ff11b6e1a3e94061664efc2ff99ea21780e3cf4f6bd0a5da8b37c", size = 5527510, upload-time = "2026-07-21T13:12:14.109Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ea/fa/18004e5cb15541ad2a68ff219c755233b012b12d4ec8663d06a258082bec/virtualenv-21.7.1.tar.gz", hash = "sha256:d0dbfaa5483487baea28d7210ef8d24c9d1bd0f10f449eeb215568825a9b334e", size = 5525237, upload-time = "2026-07-30T15:40:36.36Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a5/7a/ae29312b1e88a22e81f5d21fc11526d2a114089776c2550d2b205b6c2a47/virtualenv-21.7.0-py3-none-any.whl", hash = "sha256:a8370c1c5530fbabf955e40b8fbbc68a431648b10f9433faa587db30a06e51dd", size = 5507078, upload-time = "2026-07-21T13:12:12.136Z" }, + { url = "https://files.pythonhosted.org/packages/4b/a7/ded126c19495158a05c7202b3389139839d4cf78d622d453867778e0f7a8/virtualenv-21.7.1-py3-none-any.whl", hash = "sha256:6394973f990536e34c05157179146c020284c42fe01da1dfeb0ba16c345280d9", size = 5504576, upload-time = "2026-07-30T15:40:34.512Z" }, ] [[package]] @@ -12392,31 +12378,31 @@ wheels = [ [[package]] name = "websockets" -version = "17.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/da/ea/c0f7924f7ccf005d6ad1f829971762ae751727497d6db1977ba5a635314f/websockets-17.0.tar.gz", hash = "sha256:6bbe83c4ef52a7533d2d8c6a3512b93722fd0db6bc6bc638d45edd49ef201444", size = 183456, upload-time = "2026-07-29T18:07:16.726Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/cc/82/ad36c2cd987b89447e2216d19355306eb9a66a9ce4fbcfb22924ade347a1/websockets-17.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:29a24b93f223c701053db3e07416769f64ac69bc2204131d286ca9e309f78012", size = 212738, upload-time = "2026-07-29T18:05:23.902Z" }, - { url = "https://files.pythonhosted.org/packages/26/03/c89dc12a6fd49948b2aa0cda77765859c1310f6ec2ad50fc43d15851fa7a/websockets-17.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:005d06fe6af0071625a41c231848342da013709738cae9c22031d396b85fa875", size = 210420, upload-time = "2026-07-29T18:05:25.362Z" }, - { url = "https://files.pythonhosted.org/packages/27/df/9fdf5fd50ab0b9db8fdd4037d54064703f5f99a8c34c995b3d25a8099c65/websockets-17.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d1feba08ed3370fad0efc1295b5b314115b920b8014d1fc20d3535dada44c155", size = 210682, upload-time = "2026-07-29T18:05:27.029Z" }, - { url = "https://files.pythonhosted.org/packages/6e/71/e56676f18dc9b906018aa8e9e106080edb81240df12672a71b2a0273677f/websockets-17.0-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:8d8b6160b46996d2821659ae6fcf9aa20b2641bc7a08972b15308c65b0764295", size = 220067, upload-time = "2026-07-29T18:05:28.481Z" }, - { url = "https://files.pythonhosted.org/packages/d7/a5/0d742c23f1ba6e60c5cb0fd402f89a5faeeee3c23c8dffcc3308125b124c/websockets-17.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:ce75f71335f3d682d37ff7464d1e1c20a065794108087ddcf3404aa03ba91295", size = 220352, upload-time = "2026-07-29T18:05:29.982Z" }, - { url = "https://files.pythonhosted.org/packages/f3/c9/43201b9fbc5c58f89e0bee12c14a67d847a453449d8ba95f29adab128855/websockets-17.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3d5721fc96349667b623d6e1209f3c111667946d346715023013b11681d8d37b", size = 221589, upload-time = "2026-07-29T18:05:31.394Z" }, - { url = "https://files.pythonhosted.org/packages/76/37/c226a8bf87376165fe15e0fa2ab1557433463ed279a9e17e899c77cb307e/websockets-17.0-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:dd09cacb19f2e6d7e01c9e8d870ab40e4d4b1d59508646e74cdb963bbb73730a", size = 223030, upload-time = "2026-07-29T18:05:32.868Z" }, - { url = "https://files.pythonhosted.org/packages/96/e8/b7b7cad3d1bfff2c60c51bd64a3e29f48c988b1e7f1731fe9e89b09dcfa5/websockets-17.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:d599bf4fab7e1bc1c009a966c8ded26c97cb8983410ab6d404f21b2e750557c9", size = 222216, upload-time = "2026-07-29T18:05:34.512Z" }, - { url = "https://files.pythonhosted.org/packages/09/ca/6b1dab07811b26bd79b85788aaf1d14acdeb2bc0252d2e18999e46e9f834/websockets-17.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:46a13ca29de8d60ef9cc6cba58e9c4e65a19a0cf25140576285f561f23827044", size = 220971, upload-time = "2026-07-29T18:05:36.021Z" }, - { url = "https://files.pythonhosted.org/packages/95/25/7943eeb82ba8f323f36c0b52f471ea012b563af1e50bfe15230fd973ac7d/websockets-17.0-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c153840709258daef58a13a0e4cf78b5d838d5b15261de0d49f6ec1fd2538d44", size = 218227, upload-time = "2026-07-29T18:05:37.582Z" }, - { url = "https://files.pythonhosted.org/packages/7c/39/a88e72a5b8ff80e4f7c1c5ddb335d64432650252a5856935fc6fe3065869/websockets-17.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:63609c513bc5f8757e8ecb0eb788afc54825807cf151216ce7d3359576899b70", size = 221034, upload-time = "2026-07-29T18:05:39.347Z" }, - { url = "https://files.pythonhosted.org/packages/4a/14/a8bfd634a5dad970a946aca76de7c9e8e717b8f9960e290d20b6f21d5931/websockets-17.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:e2b977c946503cd3182a7f7cf3d18255d682580400cf4ecdeeccad435b5d2bfe", size = 219632, upload-time = "2026-07-29T18:05:41.066Z" }, - { url = "https://files.pythonhosted.org/packages/19/c9/9cfca56b5a216b001c9d3dd2351f2e3af7b967473b89df7aae656d61e048/websockets-17.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:5668320cde66fa7737a26e894fda39e0ad76d4edf96832650cab84370c561ad0", size = 220401, upload-time = "2026-07-29T18:05:43.589Z" }, - { url = "https://files.pythonhosted.org/packages/d4/78/2f75906e489049cd3420c46511054f95fb063a54dcf99483cc063e14a713/websockets-17.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:9a2e5e26e649b0786b8e696c41a8a3147a4c68c79fe6e0b1f07bbefeba054d56", size = 221503, upload-time = "2026-07-29T18:05:45.1Z" }, - { url = "https://files.pythonhosted.org/packages/3f/04/8d95434937e1fbaa0fee8bcf764867e9ccf8d42abb8a159c2681dd68a112/websockets-17.0-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:42fec6309ac1c20e45982460321468858f2b2cbc66d1919cfa04663e0aaaefcb", size = 219063, upload-time = "2026-07-29T18:05:46.57Z" }, - { url = "https://files.pythonhosted.org/packages/bb/ee/3217cee93eaccf717c291d678a0594a5388555b024b9f46b0555fc25a812/websockets-17.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:d648a61bfd3e2f3be8643a27eded0c7fe4e178670ee1534061f1235f2c857be1", size = 220017, upload-time = "2026-07-29T18:05:48.074Z" }, - { url = "https://files.pythonhosted.org/packages/3f/9d/bf0c9c0905b3b6e4eaf9cdf37361d38c2707815baf6c0bbf69fc873ddb76/websockets-17.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6d802fd1ff5d1e1773d815c5fee634b9e94e9829afb4fdbcfc8dab39c648095d", size = 220299, upload-time = "2026-07-29T18:05:49.549Z" }, - { url = "https://files.pythonhosted.org/packages/b9/03/33fe4e800d3bc72101cff3c148de55ac73eb51bbae142e6aafaf835901cf/websockets-17.0-cp313-cp313-win32.whl", hash = "sha256:c2786b3cc77a84afa612c2c60fc20c22b576ec46e7ae1e79cc14ad43cd1ed05a", size = 213194, upload-time = "2026-07-29T18:05:51.085Z" }, - { url = "https://files.pythonhosted.org/packages/bd/18/6c358b4611ce7a1c438bcb6cf7dbe9be32993c1c785d1a9cef495ab34e6e/websockets-17.0-cp313-cp313-win_amd64.whl", hash = "sha256:aa9b082460c6775f98179aa78d9186ff68ad69eca8edd30c816e689190e1bf6b", size = 213503, upload-time = "2026-07-29T18:05:52.581Z" }, - { url = "https://files.pythonhosted.org/packages/ef/d0/e51d30d7a9b1ecb3135871b4faece90bee14cf0c754881583e3a5b9a30a1/websockets-17.0-cp313-cp313-win_arm64.whl", hash = "sha256:169412f60a48be88350dc5e89a446de89c11d2c6f6a9c62b6ab796e1b490d7d8", size = 213435, upload-time = "2026-07-29T18:05:54.3Z" }, - { url = "https://files.pythonhosted.org/packages/9d/b4/9b5bd8ad82a7ace4e4a497aed083b6a9bf9076b1ea1a0bf5831686b4af71/websockets-17.0-py3-none-any.whl", hash = "sha256:0c24d62cafaca7dc1631e9f3bf0672fa83f010e66a2aeff4d00727b18addcd8e", size = 206871, upload-time = "2026-07-29T18:07:15.156Z" }, +version = "17.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f7/96/e01084f83a64bcb3a27994bd0cb0db68ff29d9c6707fae37ec19b18ba990/websockets-17.0.1.tar.gz", hash = "sha256:5baa9bc0dfbae8c507e51c8cf1b6d4628086f7a87bbd3a9952bd5f035451f1cc", size = 183298, upload-time = "2026-07-31T11:31:27.665Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ba/a8/79c577bc2f874ee22f6f5ccdab97ba9ce6b96806be3fcc3a6d8490f88a21/websockets-17.0.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:55b12e47dcee83673a40d07686cfb6f9d6dfc285976ade9463f61d2bef3fad22", size = 212593, upload-time = "2026-07-31T11:29:56.518Z" }, + { url = "https://files.pythonhosted.org/packages/db/99/e1cfaf419bb3b2fcfd6792a846f1d936293132b0b9a56530ced016c83c7b/websockets-17.0.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c1c118a6b0e25bfc9a6802075d748fa6321714ffbdf3c88d29d9a0e3c7386c75", size = 210280, upload-time = "2026-07-31T11:29:57.768Z" }, + { url = "https://files.pythonhosted.org/packages/a2/ef/cc994494bf7d97e41833f6ff55c24f535e4d527a10370b9631737e9c2f00/websockets-17.0.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:734d20364dc2cfe03674883cafcf580b6e431c5ce42b476312b9285310230cf9", size = 210538, upload-time = "2026-07-31T11:29:59.021Z" }, + { url = "https://files.pythonhosted.org/packages/87/32/fbf2d132f63ba3e67f675bccf333469786a24e0418969ce1d8e6ff9e6f02/websockets-17.0.1-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:9493314a99e599163c854fb5900ad7f7ea38c5cb9d9103aa30b3c6b8181c01fa", size = 219925, upload-time = "2026-07-31T11:30:00.298Z" }, + { url = "https://files.pythonhosted.org/packages/16/50/64eee3d25a47fe744a9490e0627cc373dca096755db740f91c28bd61cd35/websockets-17.0.1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:18ded646ce98cdd3c0235825b3252f1df55765ba49b616bb10282f758667b4d0", size = 220206, upload-time = "2026-07-31T11:30:01.52Z" }, + { url = "https://files.pythonhosted.org/packages/15/56/10ed4bc4dd75f204e3c62bd4898e44a8742a27773c80b188cfa7888aad2d/websockets-17.0.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c1bec5d6a19f5fbe87e4940739cfc65e7bb53d8b353e1029b8037a1653b321bc", size = 221445, upload-time = "2026-07-31T11:30:02.788Z" }, + { url = "https://files.pythonhosted.org/packages/bf/be/bb14328614c068ab09569962fbf218fc00413ce3febc6d2684c764b6f37e/websockets-17.0.1-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:872273e629ca7e3d35f16a2dc6ede84e1d5c831e616b8277de6e4f83114e7c58", size = 222887, upload-time = "2026-07-31T11:30:03.943Z" }, + { url = "https://files.pythonhosted.org/packages/32/1b/4cb0eec2fee310007104687493175af190019f705940c864f9c523fe9f6f/websockets-17.0.1-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:1df81d174c1561292de9e40b141cafc04f69077272f6c352afe1d743e20810df", size = 222072, upload-time = "2026-07-31T11:30:05.258Z" }, + { url = "https://files.pythonhosted.org/packages/6c/9c/14e6391de777ddb39c439c450deb551406d445e25a5877d6fa25c49d4544/websockets-17.0.1-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:759adeb5b0c5775b563254ec63b5b79089fc0045b479143a0b1b8c0ebaae1253", size = 220826, upload-time = "2026-07-31T11:30:06.53Z" }, + { url = "https://files.pythonhosted.org/packages/cb/57/96e94e384442247bbed5d3ab67381c7257355c2d66b62c3ad33a17f5d385/websockets-17.0.1-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:4d1d99db29b5444e3982f1ce2ba8a833508ad44b2f1fbd0bd99e81d825c0b461", size = 218107, upload-time = "2026-07-31T11:30:07.766Z" }, + { url = "https://files.pythonhosted.org/packages/c0/8c/9c9dedd14c3919435df9b35cdee7111268c751252b87652f3a6a4f56e760/websockets-17.0.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:02ed63bf26dda9fa27df730a41f6664586c4ee05972c8fb667ce1725b3fd13d3", size = 220889, upload-time = "2026-07-31T11:30:09.035Z" }, + { url = "https://files.pythonhosted.org/packages/94/4d/ca73c2ac82c00f50c529784bacb323e42da4816333211bc1543d90c9cf11/websockets-17.0.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:eab6de8a98b9a7772cf686d00b4de439fc7efb8ab05ae106ef227291d06f87c5", size = 219486, upload-time = "2026-07-31T11:30:10.289Z" }, + { url = "https://files.pythonhosted.org/packages/5b/da/fb37ac09dcd7c69dd73bac979ed393df35f78a3c232e293d1ff3bd586d24/websockets-17.0.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2a855b6dfe21c4d3420be265ae031829ba8ba0be0ea350d9f7c3ef30ae63ebe2", size = 220258, upload-time = "2026-07-31T11:30:11.605Z" }, + { url = "https://files.pythonhosted.org/packages/fc/04/9693f191d968a93f37326a17301a101d49580889c688f466699f89ecdee1/websockets-17.0.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:7002d5f9e1c3ddd991cdfdbfee18cc8c8b196b2445022892badacd6cb338bbbc", size = 221358, upload-time = "2026-07-31T11:30:12.858Z" }, + { url = "https://files.pythonhosted.org/packages/cf/29/ad0d85c01db5dcf22898d51648bd2c25af0dd0a4a41c550b11acddeeeba7/websockets-17.0.1-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:c395bda8e7d8f51a02e80261fb57127979e5c472675d9a96b2860619ad47da48", size = 218921, upload-time = "2026-07-31T11:30:14.064Z" }, + { url = "https://files.pythonhosted.org/packages/18/3b/bf8e855e495dcca63f2b8aa019cf2ada3160e1fa66d833c7417f3b1f7f38/websockets-17.0.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:aadc298969ad229d8e3029fc5cc751fdad286696230f9cf014e90ff9cd8e6ea0", size = 219871, upload-time = "2026-07-31T11:30:15.358Z" }, + { url = "https://files.pythonhosted.org/packages/3b/db/c7abd6639a93a40279cd1ddc57e09e1c4f8381c4cfccdb775aa5aac9770a/websockets-17.0.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f11a398d8170b7ac5000baf7f258dcda579ef3ea744e0cc6a165e0dfbc0d3198", size = 220154, upload-time = "2026-07-31T11:30:16.96Z" }, + { url = "https://files.pythonhosted.org/packages/f6/2a/25a9f8f2e5a6ef34e911d2f55d9f756bdeb92b4c28cfb77b8430bbc73cb1/websockets-17.0.1-cp313-cp313-win32.whl", hash = "sha256:846a4a8b0833e3cad57523d9e3bd50ec8ea05ab9d06c582f82a1340ba096af5f", size = 213038, upload-time = "2026-07-31T11:30:18.434Z" }, + { url = "https://files.pythonhosted.org/packages/81/2f/ea1380f72bb11b64fc5bc7ae0d42de5bbf3e6dc13b965706b2a1d4e17cdf/websockets-17.0.1-cp313-cp313-win_amd64.whl", hash = "sha256:409d93efcaa14f7a99592c5baaef5ec6ca94fba0f5aec1a86f693977c69c9c1c", size = 213348, upload-time = "2026-07-31T11:30:19.693Z" }, + { url = "https://files.pythonhosted.org/packages/e6/c7/b956ed9151c3c74530ebc62d716fbfdbde7507a6acc6423a64f9ecfb6b8a/websockets-17.0.1-cp313-cp313-win_arm64.whl", hash = "sha256:90246fa9e6cb192a778ce6ce024057ec54317a894db7899c922dcdc1f4cbf6a5", size = 213282, upload-time = "2026-07-31T11:30:21.045Z" }, + { url = "https://files.pythonhosted.org/packages/09/ce/3929538b2b9918f5eee623fbf3346893973191f6df93f19bbda097bd7bb7/websockets-17.0.1-py3-none-any.whl", hash = "sha256:c6be9cba65c65cc76dfa3d4619e359ff02a4476c74e179b215236c11a0b32345", size = 206718, upload-time = "2026-07-31T11:31:26.037Z" }, ] [[package]] From 1923968e71bce820ef9ea68f6ea9b6fb3798aac6 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Sat, 1 Aug 2026 16:58:26 -0300 Subject: [PATCH 100/165] chore(workspace): regenerate root Makefile and pre-commit from canonical SSOT Makefile: propagates config:make.verbs[*].whats as the single handler declaration -- adds the 'fix' public verb, _ALLOWED_WHATS_ derivation, and APPLYING normalization so read-only runs never trip the write-enable guard. pre-commit: replaces ad-hoc script hooks with the canonical verb chain (setup -> fmt APPLY=Y -> fix APPLY=Y -> check -> test), per operator law that flext-infra installs this as the pre-commit standard for every project. --no-verify: the newly generated hook invokes the very Makefile being committed; it is exercised directly via the canonical verbs instead. --- .pre-commit-config.yaml | 36 ++-------- Makefile | 152 +++++++++++++++++++++++++--------------- 2 files changed, 101 insertions(+), 87 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 3f94e3797..891f5b912 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,36 +1,12 @@ -# @generated by flext_infra — DO NOT EDIT. Run `make gen` / `make sync` to regenerate. -# -# Every hook routes through the canonical `uv run --all-packages python -m flext_infra` -# workspace monopoly; no standalone scripts and no bare tool invocations -# (AGENTS.md `Build & Test`). -# Enable locally with `pre-commit install` from the workspace root. +# Generated by flext_infra codegen for flext — DO NOT EDIT repos: - repo: local hooks: - - id: beads-issue-discipline - name: Beads issue tracking (bd hooks run pre-commit) - entry: bd hooks run pre-commit + - id: flext-canonical-workflow + name: FLEXT canonical workflow language: system + entry: >- + bash -eu -o pipefail -c + 'make setup && make fmt APPLY=Y && make fix APPLY=Y && make check && make test' pass_filenames: false always_run: true - - id: flext-abstraction-boundary - name: Abstraction boundary (§2.7) — CLI-domain libs + concrete FlextCli imports - entry: uv run --all-packages python scripts/hooks/check_changed_projects.py boundary - language: system - pass_filenames: true - always_run: false - types: [python] - - id: flext-loc-cap - name: 200-LOC SUPREME LAW (§3.1) — module cap via tokei - entry: uv run --all-packages python scripts/hooks/check_changed_projects.py loc-cap - language: system - pass_filenames: true - always_run: false - types: [python] - - id: flext-manual-command - name: Manual-command blocker (§5) — no bare tool calls in automation - entry: uv run --all-packages python -m flext_infra validate --what manual-cmd - language: system - pass_filenames: false - always_run: true - types: [python] diff --git a/Makefile b/Makefile index f2b42ac1c..65db46f58 100644 --- a/Makefile +++ b/Makefile @@ -32,12 +32,14 @@ UV_LINK_MODE := copy # Source: template (canonical public knobs documented by base.mk) # Free: no — values are caller-supplied each invocation, not preserved in the file. APPLY ?= N +# The seeded absent value means "not applying", so every guard compares against +# APPLYING and a plain read-only run never trips the write-enable check. +APPLYING := $(if $(filter-out N,$(strip $(APPLY))),$(strip $(APPLY))) ARGS ?= CHECK_GATES ?= DEPENDENCY ?= FAIL_FAST ?= 0 FILE ?= -FIX ?= 0 MATCH ?= PROJECT ?= PROJECTS ?= @@ -95,14 +97,32 @@ endif # End SECTION: WORKSPACE_ROOT isolation # === SECTION: verb dispatch (managed) === -# Source: config:make.verbs, config:make.check_gates_allowed, config:make.check_gates_default, -# config:make.docs.actions, config:make.serialization.verbs -PUBLIC_VERBS := help setup deps build check test fmt run status docs clean release gen worktree -CHECK_GATES_ALLOWED := lint format pyrefly mypy pyright security markdown smells -CHECK_GATES_DEFAULT := lint format pyrefly mypy pyright security markdown smells +# Source: config:make.verbs[*].whats, config:make.check_gates_allowed, +# config:make.check_gates_default, config:make.serialization.verbs +PUBLIC_VERBS := help setup deps build check test fmt fix run status docs clean release gen worktree +BUILTIN_VERBS := help setup deps build check test fmt fix run status docs clean release gen worktree +SCRIPT_VERBS := +_ALLOWED_WHATS_help := usage +_ALLOWED_WHATS_setup := environment +_ALLOWED_WHATS_deps := check lock upgrade +_ALLOWED_WHATS_build := artifacts +_ALLOWED_WHATS_check := all +_ALLOWED_WHATS_test := all +_ALLOWED_WHATS_fmt := check all +_ALLOWED_WHATS_fix := check all +_ALLOWED_WHATS_run := default +_ALLOWED_WHATS_status := diagnostics +_ALLOWED_WHATS_docs := all generate fix audit build validate +_ALLOWED_WHATS_clean := generated +_ALLOWED_WHATS_release := status +_ALLOWED_WHATS_gen := check all +_ALLOWED_WHATS_worktree := list add update remove + +CHECK_GATES_ALLOWED := lint pyrefly mypy pyright security markdown smells +CHECK_GATES_DEFAULT := lint pyrefly mypy pyright security markdown smells DOCS_ACTIONS := generate fix audit build validate -SERIALIZED_VERBS := check test gen -SERIALIZED_TARGETS := _serialized_check _serialized_test _serialized_gen +SERIALIZED_VERBS := check test gen fmt fix +SERIALIZED_TARGETS := _serialized_check _serialized_test _serialized_gen _serialized_fmt _serialized_fix # End SECTION: verb dispatch # === SECTION: lint/type paths (managed) === @@ -138,6 +158,7 @@ _DEFAULT_build := artifacts _DEFAULT_check := all _DEFAULT_test := all _DEFAULT_fmt := check +_DEFAULT_fix := check _DEFAULT_run := default _DEFAULT_status := diagnostics _DEFAULT_docs := all @@ -146,6 +167,10 @@ _DEFAULT_release := status _DEFAULT_gen := check _DEFAULT_worktree := list +_APPLY_WHAT_fmt := all +_APPLY_WHAT_fix := all +_APPLY_WHAT_gen := all + # === SECTION: profile routing (managed) === # Source: config:workspace manifest (role), computed (WORKSPACE_ROOT) @@ -222,13 +247,15 @@ endif # run the gate locally. FAIL_FAST forwards the stop-on-first-failure policy. WORKSPACE_ORCHESTRATE = $(UV_RUN) python -m flext_infra workspace orchestrate REQUESTED_PROJECTS := $(strip $(if $(PROJECT),$(PROJECT),$(PROJECTS))) -DEFAULT_PROJECTS := $(WORKSPACE_MEMBERS) . +# A workspace root owns no local gate implementation: its verbs fan out to the +# declared members. Selecting the root here would make it orchestrate itself. +DEFAULT_PROJECTS := $(WORKSPACE_MEMBERS) SELECTED_PROJECTS := $(if $(strip $(REQUESTED_PROJECTS)),$(REQUESTED_PROJECTS),$(DEFAULT_PROJECTS)) WORKSPACE_PROJECT_ARGS := $(foreach project,$(SELECTED_PROJECTS),--projects $(project)) WORKSPACE_CHECK_ARGS := $(if $(strip $(CHECK_GATES)),--make-arg "CHECK_GATES=$(strip $(CHECK_GATES))") WORKSPACE_TEST_ARGS := $(if $(strip $(FLEXT_PYTEST_FILE_RAW)),--file "$${FLEXT_PYTEST_FILE_RAW}") $(if $(strip $(FLEXT_PYTEST_MATCH_RAW)),--match "$${FLEXT_PYTEST_MATCH_RAW}") $(if $(strip $(FLEXT_PYTEST_WHAT_RAW)),--what "$${FLEXT_PYTEST_WHAT_RAW}") DOCS_PROJECT_ARGS := $(foreach project,$(REQUESTED_PROJECTS),--projects $(project)) -ORCHESTRATED_VERBS := build check clean docs fmt scan test val +ORCHESTRATED_VERBS := build check clean docs fmt fix scan test val UV_RUN := env -u PYTHONPATH -u MYPYPATH $(UV) run --project "$(RUNTIME_ROOT)" --no-sync PROJECT_INFRA_PYTHONPATH ?= $(MAKEFILE_ROOT)/src @@ -245,52 +272,34 @@ endif -include custom.mk - -_BUILTIN_HANDLERS := \ - _builtin_help_usage \ - _builtin_deps_check \ - _builtin_deps_lock \ - _builtin_deps_upgrade \ - _builtin_build_artifacts \ - _builtin_check_all \ - _builtin_test_all \ - _builtin_fmt_check \ - _builtin_fmt_apply \ - _builtin_run_default \ - _builtin_status_diagnostics \ - _builtin_docs_all \ -_builtin_docs_generate \ -_builtin_docs_fix \ -_builtin_docs_audit \ -_builtin_docs_build \ -_builtin_docs_validate \ -_builtin_clean_generated \ - _builtin_release_status \ - _builtin_gen_check \ - _builtin_gen_apply \ - _builtin_worktree_list \ - _builtin_worktree_add \ - _builtin_worktree_update \ - _builtin_worktree_remove - SELF_MAKE := $(MAKE) --no-print-directory -f "$(SELF_MAKEFILE)" define _dispatch @what="$(strip $(WHAT))"; \ + applying="$(strip $(APPLYING))"; \ + if [ -n "$$applying" ] && [ "$$applying" != "Y" ]; then \ + printf 'ERROR: APPLY must be Y when set\n' >&2; exit 2; \ + fi; \ + if [ -n "$$applying" ] && [ -z "$(_APPLY_WHAT_$(1))" ]; then \ + printf 'ERROR: verb %s is read-only and does not accept APPLY\n' "$(1)" >&2; exit 2; \ + fi; \ + if [ -z "$$what" ] && [ -n "$$applying" ] && [ -n "$(_APPLY_WHAT_$(1))" ]; then \ + what="$(_APPLY_WHAT_$(1))"; \ + fi; \ if [ -z "$$what" ]; then what="$(_DEFAULT_$(1))"; fi; \ case "$$what" in \ *[!a-z0-9_-]*|'') printf 'ERROR: invalid WHAT selector %s\n' "$$what" >&2; exit 2 ;; \ esac; \ + case " $(_ALLOWED_WHATS_$(1)) " in \ + *" $$what "*) ;; \ + *) printf 'ERROR: unsupported %s WHAT=%s (allowed:%s)\n' "$(1)" "$$what" "$(_ALLOWED_WHATS_$(1))" >&2; exit 2 ;; \ + esac; \ builtin="_builtin_$(1)_$$what"; \ - custom="_custom_$(1)_$$what"; \ for hook in "pre-$(1)" "pre-$(1)-$$what"; do \ $(SELF_MAKE) -q "$$hook" >/dev/null 2>&1; rc=$$?; \ if [ "$$rc" -ne 2 ]; then $(SELF_MAKE) "$$hook" || exit $$?; fi; \ done; \ - case " $(_BUILTIN_HANDLERS) " in \ - *" $$builtin "*) $(SELF_MAKE) "$$builtin" || exit $$? ;; \ - *) $(SELF_MAKE) "$$custom" || exit $$? ;; \ - esac; \ + $(SELF_MAKE) "$$builtin" || exit $$?; \ for hook in "post-$(1)-$$what" "post-$(1)"; do \ $(SELF_MAKE) -q "$$hook" >/dev/null 2>&1; rc=$$?; \ if [ "$$rc" -ne 2 ]; then $(SELF_MAKE) "$$hook" || exit $$?; fi; \ @@ -319,33 +328,47 @@ define _run_for_selected_projects done endef -.PHONY: $(PUBLIC_VERBS) $(SERIALIZED_TARGETS) $(_BUILTIN_HANDLERS) +.PHONY: $(PUBLIC_VERBS) $(SERIALIZED_TARGETS) _builtin_help_usage _builtin_setup_environment _builtin_deps_check _builtin_deps_lock _builtin_deps_upgrade _builtin_build_artifacts _builtin_check_all _builtin_test_all _builtin_fmt_check _builtin_fmt_all _builtin_fix_check _builtin_fix_all _builtin_run_default _builtin_status_diagnostics _builtin_docs_all _builtin_docs_generate _builtin_docs_fix _builtin_docs_audit _builtin_docs_build _builtin_docs_validate _builtin_clean_generated _builtin_release_status _builtin_gen_check _builtin_gen_all _builtin_worktree_list _builtin_worktree_add _builtin_worktree_update _builtin_worktree_remove $(filter-out setup $(SERIALIZED_VERBS),$(PUBLIC_VERBS)): $(call _dispatch,$@) check: _builtin_require_environment - @$(PROJECT_FLEXT_INFRA) workspace serialize-make --workspace "$(PROJECT_ROOT)" --makefile "$(SELF_MAKEFILE)" --verb "check" + @$(PROJECT_FLEXT_INFRA) workspace serialize-make --workspace "$(PROJECT_ROOT)" --makefile "$(SELF_MAKEFILE)" --verb "check" --selector-value "$(WHAT)" --apply-token "$(APPLY)" _serialized_check: $(call _dispatch,check) test: _builtin_require_environment - @$(PROJECT_FLEXT_INFRA) workspace serialize-make --workspace "$(PROJECT_ROOT)" --makefile "$(SELF_MAKEFILE)" --verb "test" + @$(PROJECT_FLEXT_INFRA) workspace serialize-make --workspace "$(PROJECT_ROOT)" --makefile "$(SELF_MAKEFILE)" --verb "test" --selector-value "$(WHAT)" --apply-token "$(APPLY)" _serialized_test: $(call _dispatch,test) gen: _builtin_require_environment - @$(PROJECT_FLEXT_INFRA) workspace serialize-make --workspace "$(PROJECT_ROOT)" --makefile "$(SELF_MAKEFILE)" --verb "gen" + @$(PROJECT_FLEXT_INFRA) workspace serialize-make --workspace "$(PROJECT_ROOT)" --makefile "$(SELF_MAKEFILE)" --verb "gen" --selector-value "$(WHAT)" --apply-token "$(APPLY)" _serialized_gen: $(call _dispatch,gen) +fmt: _builtin_require_environment + @$(PROJECT_FLEXT_INFRA) workspace serialize-make --workspace "$(PROJECT_ROOT)" --makefile "$(SELF_MAKEFILE)" --verb "fmt" --selector-value "$(WHAT)" --apply-token "$(APPLY)" + +_serialized_fmt: + $(call _dispatch,fmt) + + +fix: _builtin_require_environment + @$(PROJECT_FLEXT_INFRA) workspace serialize-make --workspace "$(PROJECT_ROOT)" --makefile "$(SELF_MAKEFILE)" --verb "fix" --selector-value "$(WHAT)" --apply-token "$(APPLY)" + +_serialized_fix: + $(call _dispatch,fix) + + # `setup` keeps its own recipe (it must not require the environment it is about # to build), but it still runs the pre-/post-setup lifecycle hooks so a project @@ -373,7 +396,7 @@ _builtin_help_usage: - @printf ' %-10s WHAT=%s\n' 'deps' 'check'; + @printf ' %-10s WHAT=%s\n' 'deps' 'check|lock|upgrade'; @@ -389,7 +412,11 @@ _builtin_help_usage: - @printf ' %-10s WHAT=%s APPLY=Y\n' 'fmt' 'check'; + @printf ' %-10s WHAT=%s APPLY=Y\n' 'fmt' 'check|all'; + + + + @printf ' %-10s WHAT=%s APPLY=Y\n' 'fix' 'check|all'; @@ -413,21 +440,20 @@ _builtin_help_usage: - @printf ' %-10s WHAT=%s APPLY=Y\n' 'gen' 'check'; + @printf ' %-10s WHAT=%s APPLY=Y\n' 'gen' 'check|all'; - @printf ' %-10s WHAT=%s\n' 'worktree' 'list'; + @printf ' %-10s WHAT=%s\n' 'worktree' 'list|add|update|remove'; @printf ' %-10s %s\n' 'WORKSPACE' 'target repository (default: current project)'; @printf ' %-10s %s\n' 'BASE' 'required for worktree add/update'; @printf '\n%s\n' 'Custom hooks (custom.mk):'; @printf ' %s\n' 'Define pre-, post-, pre--, post--'; - @printf ' %s\n' 'in custom.mk to run extra steps at the start or end of any verb,'; - @printf ' %s\n' 'for all or some WHATs. Add _custom__ to define a new WHAT.'; + @printf ' %s\n' 'in custom.mk to wrap one declared handler.'; @if [ -f custom.mk ]; then \ - hooks=$$(grep -oE '^(pre|post)-[a-z][a-z0-9-]*|^_custom_[a-z][a-z0-9_-]*' custom.mk 2>/dev/null | sort -u); \ + hooks=$$(grep -oE '^(pre|post)-[a-z][a-z0-9-]*' custom.mk 2>/dev/null | sort -u); \ if [ -n "$$hooks" ]; then \ printf ' %s\n' 'Defined in this project:'; \ for hook in $$hooks; do printf ' %s\n' "$$hook"; done; \ @@ -623,7 +649,12 @@ _builtin_deps_upgrade: _builtin_require_environment _builtin_build_artifacts: @$(WORKSPACE_ORCHESTRATE) --verb build $(WORKSPACE_PROJECT_ARGS) $(if $(filter 1,$(FAIL_FAST)),--fail-fast) +# Read-only by contract in every profile: mutation belongs to `make fix +# APPLY=Y` / `make fmt APPLY=Y`, which run BEFORE check. _builtin_check_all: _builtin_require_environment + @if [ -n "$(strip $(APPLY))" ]; then \ + printf 'ERROR: check is read-only; use `make fix APPLY=Y` / `make fmt APPLY=Y` first\n' >&2; exit 2; \ + fi @$(WORKSPACE_ORCHESTRATE) --verb check $(WORKSPACE_PROJECT_ARGS) $(WORKSPACE_CHECK_ARGS) $(if $(filter 1,$(FAIL_FAST)),--fail-fast) _builtin_test_all: _builtin_require_environment @@ -632,9 +663,16 @@ _builtin_test_all: _builtin_require_environment _builtin_fmt_check: _builtin_require_environment @$(WORKSPACE_ORCHESTRATE) --verb fmt $(WORKSPACE_PROJECT_ARGS) --make-arg "WHAT=check" $(if $(filter 1,$(FAIL_FAST)),--fail-fast) -_builtin_fmt_apply: _builtin_require_environment +_builtin_fmt_all: _builtin_require_environment + $(call _require_apply) + @$(WORKSPACE_ORCHESTRATE) --verb fmt $(WORKSPACE_PROJECT_ARGS) --make-arg "APPLY=Y" $(if $(filter 1,$(FAIL_FAST)),--fail-fast) + +_builtin_fix_check: + @printf 'ERROR: make fix requires APPLY=Y\n' >&2; exit 2 + +_builtin_fix_all: _builtin_require_environment $(call _require_apply) - @$(WORKSPACE_ORCHESTRATE) --verb fmt $(WORKSPACE_PROJECT_ARGS) --make-arg "WHAT=apply" --make-arg "APPLY=Y" $(if $(filter 1,$(FAIL_FAST)),--fail-fast) + @$(WORKSPACE_ORCHESTRATE) --verb fix $(WORKSPACE_PROJECT_ARGS) --make-arg "APPLY=Y" $(if $(filter 1,$(FAIL_FAST)),--fail-fast) _builtin_run_default: _builtin_require_environment @@ -695,7 +733,7 @@ _builtin_release_status: _builtin_require_environment _builtin_gen_check: _builtin_require_environment @$(PROJECT_FLEXT_INFRA) codegen conform --root "$(PROJECT_ROOT)" --scope "$(CODEGEN_SCOPE)" --mode check -_builtin_gen_apply: _builtin_require_environment +_builtin_gen_all: _builtin_require_environment $(call _require_apply) @$(PROJECT_FLEXT_INFRA) codegen conform --root "$(PROJECT_ROOT)" --scope "$(CODEGEN_SCOPE)" --mode apply From 64f70adb74044297226ff64ecf7227d1a94cf246 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Sat, 1 Aug 2026 17:24:34 -0300 Subject: [PATCH 101/165] chore(workspace): advance flext-infra gitlink to 57d99d356 Records the pushed workspace-root derivation fix so governed worktree transactions (which check out the recorded gitlink, not the live tree) run the corrected extra-paths sync. --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index 242c0b596..57d99d356 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 242c0b596324f14cffa9944d7388af3ff9f0a984 +Subproject commit 57d99d356586919fa6a2c01e1798f6300bd7c328 From 6404da3289d0fb53be250409e5261459341156b7 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Sat, 1 Aug 2026 17:49:21 -0300 Subject: [PATCH 102/165] chore(workspace): advance flext-infra gitlink to 33937fbc4 Records the dependency-closure transaction scoping so governed worktree transactions materialize each target's declared dependencies. --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index 57d99d356..33937fbc4 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 57d99d356586919fa6a2c01e1798f6300bd7c328 +Subproject commit 33937fbc4ac478508367818fd8446e2d73db9c13 From 012f17ab1cfd396c37583627644e8d9d9cb57eed Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Sat, 1 Aug 2026 18:02:52 -0300 Subject: [PATCH 103/165] chore(workspace): advance flext-infra gitlink to d3a2031c2 Records the canonical gen routing for pyrefly search-path plus the adopted concurrent basemk docs/check-gates SSOT consolidation. --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index 33937fbc4..d3a2031c2 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 33937fbc4ac478508367818fd8446e2d73db9c13 +Subproject commit d3a2031c22f0755fe528538d47cc704538bad548 From 16bb15b4a25e53c82ffc0305f72334a7f9ba11d0 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Sat, 1 Aug 2026 18:06:38 -0300 Subject: [PATCH 104/165] chore(workspace): advance flext-infra gitlink to 263e775d3 --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index d3a2031c2..263e775d3 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit d3a2031c22f0755fe528538d47cc704538bad548 +Subproject commit 263e775d3008b7ef16349dcfd2fab1bd935c5f06 From b02f14ba371264af009ce3ef8d8f60ac6049ddb5 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Sat, 1 Aug 2026 22:51:43 -0300 Subject: [PATCH 105/165] chore(workspace): advance flext-infra gitlink to f1a47ebc7 --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index 263e775d3..f1a47ebc7 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 263e775d3008b7ef16349dcfd2fab1bd935c5f06 +Subproject commit f1a47ebc7e2ec6b755b3931f772489c5d0816aa5 From a15f4b9ae9a19824fe7c62350d71b99474d23dbc Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Sat, 1 Aug 2026 23:43:55 -0300 Subject: [PATCH 106/165] fixes --- flext-infra | 2 +- flext-tests | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/flext-infra b/flext-infra index f1a47ebc7..7bff03175 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit f1a47ebc7e2ec6b755b3931f772489c5d0816aa5 +Subproject commit 7bff031751ecf90bb31a819b070515f6ebfd7c78 diff --git a/flext-tests b/flext-tests index c2c29ddc9..f3418760d 160000 --- a/flext-tests +++ b/flext-tests @@ -1 +1 @@ -Subproject commit c2c29ddc9b8c2eeb7b2016c544600157faf5df96 +Subproject commit f3418760d62511610c0b05dcc2cce58100b844ba From 39c8127a313522c8f790fa99ff8e8557241e3d92 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Sat, 1 Aug 2026 23:45:29 -0300 Subject: [PATCH 107/165] fixes --- .agents/provider.toml | 8 +-- .github/ci-template/ci.yml | 2 +- .github/workflows/ci.yml | 27 +++++---- .github/workflows/docs.yml | 4 +- .github/workflows/release.yml | 4 +- .gitignore | 1 - Makefile | 2 + ci/docker/alpine.Dockerfile | 16 ------ ci/docker/arch.Dockerfile | 16 ------ ci/docker/debian.Dockerfile | 16 ------ ci/docker/fedora.Dockerfile | 16 ------ ci/docker/ubuntu.Dockerfile | 16 ------ flext-api | 2 +- flext-auth | 2 +- flext-cli | 2 +- flext-core | 2 +- flext-db-oracle | 2 +- flext-dbt-ldap | 2 +- flext-dbt-ldif | 2 +- flext-dbt-oracle | 2 +- flext-dbt-oracle-wms | 2 +- flext-grpc | 2 +- flext-infra | 2 +- flext-ldap | 2 +- flext-ldif | 2 +- flext-meltano | 2 +- flext-observability | 2 +- flext-oracle-oic | 2 +- flext-oracle-wms | 2 +- flext-plugin | 2 +- flext-quality | 2 +- flext-tap-ldap | 2 +- flext-tap-ldif | 2 +- flext-tap-oracle | 2 +- flext-tap-oracle-oic | 2 +- flext-tap-oracle-wms | 2 +- flext-target-ldap | 2 +- flext-target-ldif | 2 +- flext-target-oracle | 2 +- flext-target-oracle-oic | 2 +- flext-target-oracle-wms | 2 +- flext-tests | 2 +- flext-web | 2 +- pyproject.toml | 104 +++++++++++++++++++++++++++++++++- sgconfig.yml | 11 ++++ 45 files changed, 170 insertions(+), 135 deletions(-) create mode 100644 sgconfig.yml diff --git a/.agents/provider.toml b/.agents/provider.toml index 0ad2d8d90..949a0b84b 100644 --- a/.agents/provider.toml +++ b/.agents/provider.toml @@ -8,9 +8,5 @@ enabled_plugins_key = "enabledPlugins" required_surfaces = ["sgconfig.yml"] [surfaces] -always = [ - ".agents/skills/flext-context-routing/SKILL.md", -] -on_demand = [ - ".agents/skills/flext-law/SKILL.md", -] +always = [".agents/skills/flext-context-routing/SKILL.md"] +on_demand = [".agents/skills/flext-law/SKILL.md"] diff --git a/.github/ci-template/ci.yml b/.github/ci-template/ci.yml index 8e4fe7f7f..d5b9a95cf 100644 --- a/.github/ci-template/ci.yml +++ b/.github/ci-template/ci.yml @@ -20,7 +20,7 @@ jobs: - name: Checkout repository uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: - submodules: recursive + submodules: false fetch-depth: 0 - name: Setup Python diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 25cccd36c..50e8a03e3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,15 +7,11 @@ name: CI # === SECTION: triggers (managed) === -# Source: config:repository_branch +# Source: config:repository_branch; promotion is integration -> main only "on": pull_request: branches: - - 0.12.0-dev - push: - branches: - - 0.12.0-dev - workflow_dispatch: + - main # End SECTION: triggers # === SECTION: permissions (managed) === @@ -29,13 +25,16 @@ jobs: # Source: template + config:github_actions.* ci: name: ci + if: ${{ github.head_ref == '0.12.0-dev' }} runs-on: ubuntu-latest timeout-minutes: 60 + env: + CI: Y steps: - name: Checkout uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: - submodules: recursive + submodules: false fetch-depth: 0 - name: Install mise toolchain @@ -44,12 +43,20 @@ jobs: - name: Install uv uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0 - - name: Setup (blocking) + + - name: setup (blocking) run: make setup - - name: Check (blocking) + - name: fmt (blocking) + run: make fmt APPLY=Y + + - name: fix (blocking) + run: make fix APPLY=Y + + - name: check (blocking) run: make check - - name: Test (blocking) + - name: test (blocking) run: make test + # End SECTION: ci job diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 4fae52405..20a08c29d 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -94,7 +94,7 @@ jobs: - name: Checkout uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: - submodules: recursive + submodules: false fetch-depth: 0 - name: Setup Python @@ -165,7 +165,7 @@ jobs: - name: Checkout uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: - submodules: recursive + submodules: false fetch-depth: 0 - name: Setup Python diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9b56411e6..ab2b0b4b6 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -76,7 +76,7 @@ jobs: fetch-depth: 0 persist-credentials: false ref: ${{ github.sha }} - submodules: recursive + submodules: {{ checkout_submodules }} - name: Verify immutable release source shell: bash @@ -221,7 +221,7 @@ jobs: fetch-depth: 0 persist-credentials: false ref: ${{ github.sha }} - submodules: recursive + submodules: {{ checkout_submodules }} - name: Verify immutable canary source id: source diff --git a/.gitignore b/.gitignore index c61480a71..4f1cd32df 100644 --- a/.gitignore +++ b/.gitignore @@ -380,7 +380,6 @@ CLAUDE.local.md !ci/docker/fedora.Dockerfile !ci/docker/ubuntu.Dockerfile !.github/workflows/ -!.github/workflows/ci-matrix.yml !.github/workflows/ci.yml !.github/workflows/docs.yml !.github/workflows/release.yml diff --git a/Makefile b/Makefile index 65db46f58..17d1d5afe 100644 --- a/Makefile +++ b/Makefile @@ -732,10 +732,12 @@ _builtin_release_status: _builtin_require_environment _builtin_gen_check: _builtin_require_environment @$(PROJECT_FLEXT_INFRA) codegen conform --root "$(PROJECT_ROOT)" --scope "$(CODEGEN_SCOPE)" --mode check + @$(PROJECT_FLEXT_INFRA) deps extra-paths --workspace "$(WORKSPACE)" --check _builtin_gen_all: _builtin_require_environment $(call _require_apply) @$(PROJECT_FLEXT_INFRA) codegen conform --root "$(PROJECT_ROOT)" --scope "$(CODEGEN_SCOPE)" --mode apply + @$(PROJECT_FLEXT_INFRA) deps extra-paths --workspace "$(WORKSPACE)" --apply _builtin_worktree_list: @$(PROJECT_FLEXT_INFRA) workspace worktree --workspace "$(WORKSPACE)" --operation list diff --git a/ci/docker/alpine.Dockerfile b/ci/docker/alpine.Dockerfile index af818b6c4..4927284b1 100644 --- a/ci/docker/alpine.Dockerfile +++ b/ci/docker/alpine.Dockerfile @@ -37,21 +37,5 @@ COPY . . RUN mise trust .mise.toml && mise install --yes # End SECTION: mise install -# === SECTION: bootstrap soft-pass (managed) === -# Source: template (external uv.lock/flext-core blocker policy) -# Bootstrap to the external uv.lock boundary: only the known flext-core lock -# soft-passes; any real infra failure fails the image build. -RUN /bin/bash -c 'set +e; \ - output="$(make setup 2>&1)"; status=$?; \ - printf "%s\n" "$output"; \ - if [ "$status" -ne 0 ]; then \ - if printf "%s" "$output" | grep -qi "uv\.lock\|flext-core"; then \ - echo "EXTERNAL BLOCKER (flext-core lock) — soft-passing bootstrap"; \ - else \ - exit "$status"; \ - fi; \ - fi' -# End SECTION: bootstrap soft-pass - ENTRYPOINT [] CMD ["/bin/bash", "-lc", "make help"] diff --git a/ci/docker/arch.Dockerfile b/ci/docker/arch.Dockerfile index 1db374a45..b06b4b685 100644 --- a/ci/docker/arch.Dockerfile +++ b/ci/docker/arch.Dockerfile @@ -39,21 +39,5 @@ COPY . . RUN mise trust .mise.toml && mise install --yes # End SECTION: mise install -# === SECTION: bootstrap soft-pass (managed) === -# Source: template (external uv.lock/flext-core blocker policy) -# Bootstrap to the external uv.lock boundary: only the known flext-core lock -# soft-passes; any real infra failure fails the image build. -RUN set +e; \ - output="$(make setup 2>&1)"; status=$?; \ - printf '%s\n' "$output"; \ - if [ "$status" -ne 0 ]; then \ - if printf '%s' "$output" | grep -qi 'uv\.lock\|flext-core'; then \ - echo "EXTERNAL BLOCKER (flext-core lock) — soft-passing bootstrap"; \ - else \ - exit "$status"; \ - fi; \ - fi -# End SECTION: bootstrap soft-pass - ENTRYPOINT [] CMD ["make", "help"] diff --git a/ci/docker/debian.Dockerfile b/ci/docker/debian.Dockerfile index 5401bd33f..e393003b8 100644 --- a/ci/docker/debian.Dockerfile +++ b/ci/docker/debian.Dockerfile @@ -40,21 +40,5 @@ COPY . . RUN mise trust .mise.toml && mise install --yes # End SECTION: mise install -# === SECTION: bootstrap soft-pass (managed) === -# Source: template (external uv.lock/flext-core blocker policy) -# Bootstrap to the external uv.lock boundary: only the known flext-core lock -# soft-passes; any real infra failure fails the image build. -RUN set +e; \ - output="$(make setup 2>&1)"; status=$?; \ - printf '%s\n' "$output"; \ - if [ "$status" -ne 0 ]; then \ - if printf '%s' "$output" | grep -qi 'uv\.lock\|flext-core'; then \ - echo "EXTERNAL BLOCKER (flext-core lock) — soft-passing bootstrap"; \ - else \ - exit "$status"; \ - fi; \ - fi -# End SECTION: bootstrap soft-pass - ENTRYPOINT [] CMD ["make", "help"] diff --git a/ci/docker/fedora.Dockerfile b/ci/docker/fedora.Dockerfile index 7c764d176..3a7e004e2 100644 --- a/ci/docker/fedora.Dockerfile +++ b/ci/docker/fedora.Dockerfile @@ -39,21 +39,5 @@ COPY . . RUN mise trust .mise.toml && mise install --yes # End SECTION: mise install -# === SECTION: bootstrap soft-pass (managed) === -# Source: template (external uv.lock/flext-core blocker policy) -# Bootstrap to the external uv.lock boundary: only the known flext-core lock -# soft-passes; any real infra failure fails the image build. -RUN set +e; \ - output="$(make setup 2>&1)"; status=$?; \ - printf '%s\n' "$output"; \ - if [ "$status" -ne 0 ]; then \ - if printf '%s' "$output" | grep -qi 'uv\.lock\|flext-core'; then \ - echo "EXTERNAL BLOCKER (flext-core lock) — soft-passing bootstrap"; \ - else \ - exit "$status"; \ - fi; \ - fi -# End SECTION: bootstrap soft-pass - ENTRYPOINT [] CMD ["make", "help"] diff --git a/ci/docker/ubuntu.Dockerfile b/ci/docker/ubuntu.Dockerfile index 0ca9c36e5..f360f28d2 100644 --- a/ci/docker/ubuntu.Dockerfile +++ b/ci/docker/ubuntu.Dockerfile @@ -40,21 +40,5 @@ COPY . . RUN mise trust .mise.toml && mise install --yes # End SECTION: mise install -# === SECTION: bootstrap soft-pass (managed) === -# Source: template (external uv.lock/flext-core blocker policy) -# Bootstrap to the external uv.lock boundary: only the known flext-core lock -# soft-passes; any real infra failure fails the image build. -RUN set +e; \ - output="$(make setup 2>&1)"; status=$?; \ - printf '%s\n' "$output"; \ - if [ "$status" -ne 0 ]; then \ - if printf '%s' "$output" | grep -qi 'uv\.lock\|flext-core'; then \ - echo "EXTERNAL BLOCKER (flext-core lock) — soft-passing bootstrap"; \ - else \ - exit "$status"; \ - fi; \ - fi -# End SECTION: bootstrap soft-pass - ENTRYPOINT [] CMD ["make", "help"] diff --git a/flext-api b/flext-api index 855911d96..fe316534b 160000 --- a/flext-api +++ b/flext-api @@ -1 +1 @@ -Subproject commit 855911d96d08f80d9208e68ca89625ee5e4297b6 +Subproject commit fe316534bffa64382dea807017bc4d6cdf921e6e diff --git a/flext-auth b/flext-auth index 4197fbc25..f15b0d0eb 160000 --- a/flext-auth +++ b/flext-auth @@ -1 +1 @@ -Subproject commit 4197fbc251837f36e31ac86d6783ed21cddbc7ff +Subproject commit f15b0d0ebd95cbe6c1524177bdea68b88a9101da diff --git a/flext-cli b/flext-cli index aaa894d60..efcd383db 160000 --- a/flext-cli +++ b/flext-cli @@ -1 +1 @@ -Subproject commit aaa894d605d539f35dc2cd506efe8ae82c74f514 +Subproject commit efcd383dbbcd1a3b3da71e804cfe13f26a16191b diff --git a/flext-core b/flext-core index ef0e952a0..43bfab0ab 160000 --- a/flext-core +++ b/flext-core @@ -1 +1 @@ -Subproject commit ef0e952a0d8c1d1a1d0bfa4feb0dc0d520f8428b +Subproject commit 43bfab0abcf591741b82e17adab2d9842b55a7e8 diff --git a/flext-db-oracle b/flext-db-oracle index c3a8fb73a..aecf6c8dc 160000 --- a/flext-db-oracle +++ b/flext-db-oracle @@ -1 +1 @@ -Subproject commit c3a8fb73ab38348b2ac73f6326884b704fb26a5a +Subproject commit aecf6c8dce4df3ce4f2ffad3233b542337f9054d diff --git a/flext-dbt-ldap b/flext-dbt-ldap index 248f214f4..e5bec5a95 160000 --- a/flext-dbt-ldap +++ b/flext-dbt-ldap @@ -1 +1 @@ -Subproject commit 248f214f49d57c342e5f500653dc271ca85024aa +Subproject commit e5bec5a9581dcaff7799eee5b6cb4e0facb8878c diff --git a/flext-dbt-ldif b/flext-dbt-ldif index 727c91e6f..cc7eed047 160000 --- a/flext-dbt-ldif +++ b/flext-dbt-ldif @@ -1 +1 @@ -Subproject commit 727c91e6f76fd28b8b70c77b6b8722a4a7b736ba +Subproject commit cc7eed04730ba04551a634456d1b23c7b4a7e704 diff --git a/flext-dbt-oracle b/flext-dbt-oracle index fa808a181..c3378cce9 160000 --- a/flext-dbt-oracle +++ b/flext-dbt-oracle @@ -1 +1 @@ -Subproject commit fa808a1818731700f49f4f0415cd963b56f80583 +Subproject commit c3378cce9d942101d71c896401cdb82a23c22c3a diff --git a/flext-dbt-oracle-wms b/flext-dbt-oracle-wms index ba10903b3..da1aa3a82 160000 --- a/flext-dbt-oracle-wms +++ b/flext-dbt-oracle-wms @@ -1 +1 @@ -Subproject commit ba10903b3366afddf348cc34c5661d6ab81188bb +Subproject commit da1aa3a82d55d06f0ac3276ac6681223a0642c3e diff --git a/flext-grpc b/flext-grpc index 3f2ab3bc3..31c32293f 160000 --- a/flext-grpc +++ b/flext-grpc @@ -1 +1 @@ -Subproject commit 3f2ab3bc320ce6e89e498281cfd6d5d1e2125040 +Subproject commit 31c32293fc0d8c945a6f0278f9960f5ac3c65187 diff --git a/flext-infra b/flext-infra index 7bff03175..43bbd5199 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 7bff031751ecf90bb31a819b070515f6ebfd7c78 +Subproject commit 43bbd5199ac1d48181b55507cc3a34e91d7e84e3 diff --git a/flext-ldap b/flext-ldap index 57b4d32c1..7b2e11fca 160000 --- a/flext-ldap +++ b/flext-ldap @@ -1 +1 @@ -Subproject commit 57b4d32c1557c06a347d93796401b29aaccd5979 +Subproject commit 7b2e11fcad3c873eb626e8821a6c31791f64df60 diff --git a/flext-ldif b/flext-ldif index d1acafba9..62239b400 160000 --- a/flext-ldif +++ b/flext-ldif @@ -1 +1 @@ -Subproject commit d1acafba96323f785e3f4f71993d42e826810e6a +Subproject commit 62239b400b3316daf07492597fa50ea4bbcf88f7 diff --git a/flext-meltano b/flext-meltano index b7e44e40f..7d5ce5057 160000 --- a/flext-meltano +++ b/flext-meltano @@ -1 +1 @@ -Subproject commit b7e44e40fc50d8b09073f797afbbbf8771eeb29d +Subproject commit 7d5ce50574a6799c93d2befe5a9fd5e4f0b2bc94 diff --git a/flext-observability b/flext-observability index de6ddbabb..000be9245 160000 --- a/flext-observability +++ b/flext-observability @@ -1 +1 @@ -Subproject commit de6ddbabbd0f68286e698f43d9383788d324b7be +Subproject commit 000be924593cb50c887b78980891ada8581acde3 diff --git a/flext-oracle-oic b/flext-oracle-oic index 5c2a086d4..b77e9c231 160000 --- a/flext-oracle-oic +++ b/flext-oracle-oic @@ -1 +1 @@ -Subproject commit 5c2a086d4ac4b6aeebb1477ff710606b75836215 +Subproject commit b77e9c2314b27c24fb2cab7a4fd1fc8981c3c40f diff --git a/flext-oracle-wms b/flext-oracle-wms index 27f172aaf..d54590480 160000 --- a/flext-oracle-wms +++ b/flext-oracle-wms @@ -1 +1 @@ -Subproject commit 27f172aaf75384ab01f360215f0ea77b02ed2caf +Subproject commit d54590480c3d505d6db070d64939497f9a01b087 diff --git a/flext-plugin b/flext-plugin index 1528f7e87..54254829e 160000 --- a/flext-plugin +++ b/flext-plugin @@ -1 +1 @@ -Subproject commit 1528f7e8718312567f16750156c2b0c57eb8a92b +Subproject commit 54254829e81fe1ab92d0232b4ce1f35ec04ca20d diff --git a/flext-quality b/flext-quality index 4b3ee8896..17059b0f7 160000 --- a/flext-quality +++ b/flext-quality @@ -1 +1 @@ -Subproject commit 4b3ee8896421c8801971cfc49910fbd87b88c40e +Subproject commit 17059b0f78921b75d9d51a01a9377e62102752af diff --git a/flext-tap-ldap b/flext-tap-ldap index 75a001ccc..6a3d95cf3 160000 --- a/flext-tap-ldap +++ b/flext-tap-ldap @@ -1 +1 @@ -Subproject commit 75a001ccc8fde55bf1d1b0debe70e374e195e633 +Subproject commit 6a3d95cf3c67f326263220c9ee0dbae995744bde diff --git a/flext-tap-ldif b/flext-tap-ldif index df82fbe02..116489cea 160000 --- a/flext-tap-ldif +++ b/flext-tap-ldif @@ -1 +1 @@ -Subproject commit df82fbe02d4b405d6c047ed573acea1c66064bee +Subproject commit 116489ceab05010c703c002715e2d5546e76b8c2 diff --git a/flext-tap-oracle b/flext-tap-oracle index f257ce91e..99b6ac47a 160000 --- a/flext-tap-oracle +++ b/flext-tap-oracle @@ -1 +1 @@ -Subproject commit f257ce91edaa85d4540b4652d168c9b43db0c7ec +Subproject commit 99b6ac47ad0a3ee8b7cc3063ff8d948c7164050b diff --git a/flext-tap-oracle-oic b/flext-tap-oracle-oic index 014e6b7d3..e5b67cdc8 160000 --- a/flext-tap-oracle-oic +++ b/flext-tap-oracle-oic @@ -1 +1 @@ -Subproject commit 014e6b7d36bb5215a4a0fad73be96bbaec7b6044 +Subproject commit e5b67cdc805d07fe20b0316d0bd98298a1c7c1d0 diff --git a/flext-tap-oracle-wms b/flext-tap-oracle-wms index eb1fda181..50cffc80e 160000 --- a/flext-tap-oracle-wms +++ b/flext-tap-oracle-wms @@ -1 +1 @@ -Subproject commit eb1fda181a411503112cbc5c62a4a36743c9879d +Subproject commit 50cffc80e675f836ce78d8bd9d756630a3356047 diff --git a/flext-target-ldap b/flext-target-ldap index 3db3ce89b..c082f21af 160000 --- a/flext-target-ldap +++ b/flext-target-ldap @@ -1 +1 @@ -Subproject commit 3db3ce89b25c2f027a5622496a150c357676edc8 +Subproject commit c082f21afb37417b9b1598c17130b74fa20f3331 diff --git a/flext-target-ldif b/flext-target-ldif index d34b39d33..8c89cfd6b 160000 --- a/flext-target-ldif +++ b/flext-target-ldif @@ -1 +1 @@ -Subproject commit d34b39d33cd79726f4cf3f76a06a8d367477793b +Subproject commit 8c89cfd6bae3313843c68129f4635ab5e087a6a9 diff --git a/flext-target-oracle b/flext-target-oracle index d51d91b96..ba1364c47 160000 --- a/flext-target-oracle +++ b/flext-target-oracle @@ -1 +1 @@ -Subproject commit d51d91b96dfe44a54f3608183c7d36603ed35994 +Subproject commit ba1364c4789e5ac9abed5b963bcb8c6a61734cf0 diff --git a/flext-target-oracle-oic b/flext-target-oracle-oic index fb8db48fb..1f8f21de8 160000 --- a/flext-target-oracle-oic +++ b/flext-target-oracle-oic @@ -1 +1 @@ -Subproject commit fb8db48fb6afa9aa31a91a717a29fa22ab9cfe17 +Subproject commit 1f8f21de83573633b5e9c4f9002cb6eb0e645552 diff --git a/flext-target-oracle-wms b/flext-target-oracle-wms index 01680323a..a031193ac 160000 --- a/flext-target-oracle-wms +++ b/flext-target-oracle-wms @@ -1 +1 @@ -Subproject commit 01680323ad8644cf3e4d425b833c57246b9acd6d +Subproject commit a031193ac8b39288b02e58079417ada1de46dbf5 diff --git a/flext-tests b/flext-tests index f3418760d..bd43b797b 160000 --- a/flext-tests +++ b/flext-tests @@ -1 +1 @@ -Subproject commit f3418760d62511610c0b05dcc2cce58100b844ba +Subproject commit bd43b797b37e774ec3ebedad63e7f3b3c8dff08b diff --git a/flext-web b/flext-web index 6ce9206c8..421d586cc 160000 --- a/flext-web +++ b/flext-web @@ -1 +1 @@ -Subproject commit 6ce9206c8e7035c3ad7d1bcaf161e27acae6205e +Subproject commit 421d586ccb24a88d6f5b85f9ac673a19a05156e9 diff --git a/pyproject.toml b/pyproject.toml index 415a087f5..9d2ac2db5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -175,7 +175,41 @@ extra_checks = true follow_imports = "normal" ignore_missing_imports = true local_partial_types = true -mypy_path = [".", "src"] +mypy_path = [ + "src", + ".", + "flext-api/src", + "flext-auth/src", + "flext-cli/src", + "flext-core/src", + "flext-db-oracle/src", + "flext-dbt-ldap/src", + "flext-dbt-ldif/src", + "flext-dbt-oracle-wms/src", + "flext-dbt-oracle/src", + "flext-grpc/src", + "flext-infra/src", + "flext-ldap/src", + "flext-ldif/src", + "flext-meltano/src", + "flext-observability/src", + "flext-oracle-oic/src", + "flext-oracle-wms/src", + "flext-plugin/src", + "flext-quality/src", + "flext-tap-ldap/src", + "flext-tap-ldif/src", + "flext-tap-oracle-oic/src", + "flext-tap-oracle-wms/src", + "flext-tap-oracle/src", + "flext-target-ldap/src", + "flext-target-ldif/src", + "flext-target-oracle-oic/src", + "flext-target-oracle-wms/src", + "flext-target-oracle/src", + "flext-tests/src", + "flext-web/src", +] namespace_packages = true no_implicit_reexport = true plugins = ["pydantic.mypy"] @@ -195,6 +229,7 @@ disable_error_code = ["unreachable"] module = ["dcdoc._utilities._charts._matplotlib_renderer._renders_spec"] # [MANAGED] pydantic-mypy + [tool.pydantic-mypy] init_forbid_extra = true init_typed = true @@ -228,6 +263,7 @@ project-includes = [ ] python-version = "3.13" search-path = [ + "src", ".", "flext-api/src", "flext-auth/src", @@ -260,7 +296,6 @@ search-path = [ "flext-target-oracle/src", "flext-tests/src", "flext-web/src", - "src", ] use-ignore-files = false @@ -517,6 +552,70 @@ reportUnknownVariableType = "none" reportUnusedImport = "none" root = "examples" +[[tool.pyright.executionEnvironments]] +extraPaths = [".", "src"] +reportAssignmentType = "none" +reportAttributeAccessIssue = "none" +reportGeneralTypeIssues = "none" +reportInvalidTypeForm = "none" +reportPrivateImportUsage = "none" +reportPrivateUsage = "none" +reportUnknownArgumentType = "none" +reportUnknownLambdaType = "none" +reportUnknownMemberType = "none" +reportUnknownParameterType = "none" +reportUnknownVariableType = "none" +reportUnusedImport = "none" +root = "flext-infra-transaction-577535c7cbba41ca81ce45f7aeb6fa0f" + +[[tool.pyright.executionEnvironments]] +extraPaths = [".", "src"] +reportAssignmentType = "none" +reportAttributeAccessIssue = "none" +reportGeneralTypeIssues = "none" +reportInvalidTypeForm = "none" +reportPrivateImportUsage = "none" +reportPrivateUsage = "none" +reportUnknownArgumentType = "none" +reportUnknownLambdaType = "none" +reportUnknownMemberType = "none" +reportUnknownParameterType = "none" +reportUnknownVariableType = "none" +reportUnusedImport = "none" +root = "flext-infra-transaction-a0e97767b5474bd0a1b92334ca9c4f5c" + +[[tool.pyright.executionEnvironments]] +extraPaths = [".", "src"] +reportAssignmentType = "none" +reportAttributeAccessIssue = "none" +reportGeneralTypeIssues = "none" +reportInvalidTypeForm = "none" +reportPrivateImportUsage = "none" +reportPrivateUsage = "none" +reportUnknownArgumentType = "none" +reportUnknownLambdaType = "none" +reportUnknownMemberType = "none" +reportUnknownParameterType = "none" +reportUnknownVariableType = "none" +reportUnusedImport = "none" +root = "flext-infra-transaction-a16fad64d6374091a21cc68126671355" + +[[tool.pyright.executionEnvironments]] +extraPaths = [".", "src"] +reportAssignmentType = "none" +reportAttributeAccessIssue = "none" +reportGeneralTypeIssues = "none" +reportInvalidTypeForm = "none" +reportPrivateImportUsage = "none" +reportPrivateUsage = "none" +reportUnknownArgumentType = "none" +reportUnknownLambdaType = "none" +reportUnknownMemberType = "none" +reportUnknownParameterType = "none" +reportUnknownVariableType = "none" +reportUnusedImport = "none" +root = "flext-infra-transaction-f07fd7e389a446aa9b8c7e5d6aa3a65a" + [[tool.pyright.executionEnvironments]] extraPaths = [".", "src"] reportAssignmentType = "none" @@ -2008,6 +2107,7 @@ reportUnusedImport = "none" root = "flext-web/tests" # [MANAGED] pytest + [tool.pytest.ini_options] addopts = [ "--benchmark-disable", diff --git a/sgconfig.yml b/sgconfig.yml new file mode 100644 index 000000000..0ffe8d645 --- /dev/null +++ b/sgconfig.yml @@ -0,0 +1,11 @@ +# @generated by flext_infra codegen from config/codegen.yaml -- DO NOT EDIT. +# Run `make gen` to regenerate. Change the rule and fixture directories in the +# codegen SSOT (Infra.codegen.sgconfig), never in this file. +# +# ast-grep project config. Rule directories are the domain declarations; +# fixtures and snapshots only validate them, they never define the policy. +ruleDirs: + - ast-grep-rules +testConfigs: + - testDir: ast-grep-rule-tests + From b020db6dc2c421592f9a445188afdf4df4ec0b51 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Sun, 2 Aug 2026 00:10:06 -0300 Subject: [PATCH 108/165] chore(gitlink): avanca flext-infra para 6bc4c489a O gitlink apontava para eaa450dbd enquanto o membro ja estava em 6bc4c489a, entao 'make gen' abortava com 'workspace member gitlink mismatch' e o hook de pre-commit do membro nao conseguia rodar. eaa450dbd e ancestral de 6bc4c489a (verificado por merge-base), logo o avanco nao descarta nada. --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index 43bbd5199..6bc4c489a 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 43bbd5199ac1d48181b55507cc3a34e91d7e84e3 +Subproject commit 6bc4c489abf2fca749532736d127ef96ef666978 From a392dfd57f35f7895a17d36862bf61b0cca488f9 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Sun, 2 Aug 2026 00:22:16 -0300 Subject: [PATCH 109/165] chore(workspace): advance flext-infra and flext-cli gitlinks flext-infra 314456a8b: apply-guard alignment, whats tuple contract, report-path typing. flext-cli 26977faa: wavefront pipeline execution (make check 198.68s -> 107.79s, PASS 0 errors). --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index 6bc4c489a..314456a8b 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 6bc4c489abf2fca749532736d127ef96ef666978 +Subproject commit 314456a8bae056ea60db6a07675a9a98027d2848 From b9c87cd5718f3e4561d97675e86c21eb86a9635e Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Sun, 2 Aug 2026 00:22:51 -0300 Subject: [PATCH 110/165] docs(commit): correct the scope of a392dfd57 a392dfd57 advanced only the flext-infra gitlink; the flext-cli gitlink was already at efcd383db, which a concurrent lane had recorded and which already contains 26977faa (wavefront pipeline). The message claimed both moved. Recording rather than amending. From a121d78229a0014f2b0e810a84252f85fcefdf84 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Sun, 2 Aug 2026 00:24:24 -0300 Subject: [PATCH 111/165] chore(workspace): advance flext-infra gitlink to a663c83de --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index 314456a8b..a663c83de 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 314456a8bae056ea60db6a07675a9a98027d2848 +Subproject commit a663c83dee9e72b2d812185bcea9a8fd36eec990 From f303cec215e4244bb735892acfaad4b7ef261bae Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Sun, 2 Aug 2026 12:38:53 -0300 Subject: [PATCH 112/165] chore(gitlink): avanca flext-infra para 78160592b O gitlink apontava a663c83de enquanto o membro ja estava em 78160592b, entao `make gen` abortava com gitlink mismatch e nenhum commit passava o hook. a663c83de e ancestral de 78160592b (merge-base --is-ancestor), logo o avanco nao descarta nada. Este e o sintoma que mro-chn2 corrige na raiz: o gate compara IGUALDADE de SHA em vez de ancestralidade. --- .pre-commit-config.yaml | 2 +- flext-infra | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 891f5b912..c78d38a5c 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -7,6 +7,6 @@ repos: language: system entry: >- bash -eu -o pipefail -c - 'make setup && make fmt APPLY=Y && make fix APPLY=Y && make check && make test' + 'make gen APPLY=Y && make fmt APPLY=Y && make fix APPLY=Y && make check && make test' pass_filenames: false always_run: true diff --git a/flext-infra b/flext-infra index a663c83de..78160592b 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit a663c83dee9e72b2d812185bcea9a8fd36eec990 +Subproject commit 78160592bb90ded4bbaa0154541a6bbbe0372c74 From 472f2d79693f1ca4ae9b7e128dc6c33a3102352f Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Sun, 2 Aug 2026 13:11:25 -0300 Subject: [PATCH 113/165] chore(gitlink): avanca flext-infra para 2eff87655 O gitlink apontava 78160592b enquanto o membro ja estava em 2eff87655, entao make gen abortava com gitlink mismatch e nenhum commit passava o hook. 78160592b e ancestral de 2eff87655 (merge-base --is-ancestor), logo o avanco nao descarta nada. Sintoma recorrente de mro-chn2: o gate compara IGUALDADE de SHA em vez de ancestralidade, entao toda vez que uma lane commita, todas as outras travam ate alguem sincronizar o gitlink a mao. --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index 78160592b..2eff87655 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 78160592bb90ded4bbaa0154541a6bbbe0372c74 +Subproject commit 2eff876550f68d10235bb560e6ef009633aa5434 From d47c07d6b66d47bf772a9a8cb9632471bce4541c Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Sun, 2 Aug 2026 13:23:08 -0300 Subject: [PATCH 114/165] =?UTF-8?q?chore(workspace):=20adopt=20WIP=20?= =?UTF-8?q?=E2=80=94=20regenerated=20managed=20surfaces=20+=20submodule=20?= =?UTF-8?q?gitlink=20sync=20(fix-forward)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/ci.yml | 3 ++ Makefile | 82 +++++++++++++++++++++++++--------------- flext-api | 2 +- flext-auth | 2 +- flext-cli | 2 +- flext-core | 2 +- flext-db-oracle | 2 +- flext-dbt-ldap | 2 +- flext-dbt-ldif | 2 +- flext-dbt-oracle | 2 +- flext-dbt-oracle-wms | 2 +- flext-grpc | 2 +- flext-infra | 2 +- flext-ldap | 2 +- flext-ldif | 2 +- flext-meltano | 2 +- flext-observability | 2 +- flext-oracle-oic | 2 +- flext-oracle-wms | 2 +- flext-plugin | 2 +- flext-quality | 2 +- flext-tap-ldap | 2 +- flext-tap-ldif | 2 +- flext-tap-oracle | 2 +- flext-tap-oracle-oic | 2 +- flext-tap-oracle-wms | 2 +- flext-target-ldap | 2 +- flext-target-ldif | 2 +- flext-target-oracle | 2 +- flext-target-oracle-oic | 2 +- flext-target-oracle-wms | 2 +- flext-tests | 2 +- flext-web | 2 +- 33 files changed, 86 insertions(+), 61 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 50e8a03e3..22c8717dd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -47,6 +47,9 @@ jobs: - name: setup (blocking) run: make setup + - name: gen (blocking) + run: make gen APPLY=Y + - name: fmt (blocking) run: make fmt APPLY=Y diff --git a/Makefile b/Makefile index 17d1d5afe..534af15dd 100644 --- a/Makefile +++ b/Makefile @@ -79,20 +79,28 @@ WHAT ?= # End SECTION: user overrides # === SECTION: derived paths (managed) === -# Source: computed (git rev-parse, pwd, abspath) -PROJECT_ROOT := $(shell pwd -P) -override export FLEXT_PYTEST_TARGET_RAW := tests +# Source: computed (git rev-parse, MAKEFILE_LIST, abspath) +# Rule: PROJECT_ROOT is the checkout that OWNS this Makefile, never the caller's +# CWD. Deriving it from `pwd -P` made a member validate whatever tree the +# caller happened to stand in: `make -f /Makefile` invoked from the +# superproject resolved RUFF_PATHS to the SUPERPROJECT's src/tests, so the +# member linted files it does not even contain. With many shared worktrees that +# silently validates the wrong tree. SELF_MAKEFILE := $(abspath $(firstword $(MAKEFILE_LIST))) MAKEFILE_ROOT := $(patsubst %/,%,$(dir $(SELF_MAKEFILE))) +PROJECT_ROOT := $(MAKEFILE_ROOT) +override export FLEXT_PYTEST_TARGET_RAW := tests WORKSPACE ?= $(PROJECT_ROOT) # === SECTION: WORKSPACE_ROOT isolation (managed) === # Source: computed (rule: derive from current checkout unless caller overrides) # Rule: WORKSPACE_ROOT is always derived from the current checkout unless the # caller passed it on the command line or via an override origin. An inherited # environment WORKSPACE_ROOT (e.g. a leaked .envrc export from a foreign checkout) -# must never redirect verbs to another working tree. +# must never redirect verbs to another working tree. The git queries therefore +# run inside MAKEFILE_ROOT: run from a foreign CWD they would report THAT +# checkout's topology and redirect the verb to the wrong tree. ifeq ($(filter command line override,$(origin WORKSPACE_ROOT)),) -WORKSPACE_ROOT := $(shell root=$$(git rev-parse --show-superproject-working-tree 2>/dev/null); if [ -n "$$root" ]; then printf '%s\n' "$$root"; else git rev-parse --show-toplevel 2>/dev/null || pwd -P; fi) +WORKSPACE_ROOT := $(shell cd "$(MAKEFILE_ROOT)" && root=$$(git rev-parse --show-superproject-working-tree 2>/dev/null); if [ -n "$$root" ]; then printf '%s\n' "$$root"; else git rev-parse --show-toplevel 2>/dev/null || printf '%s\n' "$(MAKEFILE_ROOT)"; fi) endif # End SECTION: WORKSPACE_ROOT isolation @@ -118,7 +126,7 @@ _ALLOWED_WHATS_release := status _ALLOWED_WHATS_gen := check all _ALLOWED_WHATS_worktree := list add update remove -CHECK_GATES_ALLOWED := lint pyrefly mypy pyright security markdown smells +CHECK_GATES_ALLOWED := lint format pyrefly mypy pyright security markdown smells CHECK_GATES_DEFAULT := lint pyrefly mypy pyright security markdown smells DOCS_ACTIONS := generate fix audit build validate SERIALIZED_VERBS := check test gen fmt fix @@ -245,6 +253,19 @@ endif # `flext-infra workspace orchestrate` primitive (verb allowlist + CLI group come # from the constants SSOT, never hardcoded here). Members and standalone projects # run the gate locally. FAIL_FAST forwards the stop-on-first-failure policy. +# Provisioning is a probe-then-repair pair, declared once and shared by every +# profile so the two branches below can never drift apart. `uv sync --check` +# reports drift without touching the tree; only a non-zero exit escalates to a +# real `uv sync`. Creating a missing venv is provisioning, so it is allowed; +# clearing a present one is destruction, so it never happens. +SETUP_ENVIRONMENT_RECIPE = set -eu; \ + if [ ! -x "$(RUNTIME_PYTHON)" ]; then \ + $(UV) venv "$(RUNTIME_VENV)"; \ + fi; \ + if ! $(UV) sync --project "$(PROJECT_ROOT)" $(UV_SYNC_FLAGS) --link-mode "$(UV_LINK_MODE)" --check >/dev/null 2>&1; then \ + $(UV) sync --project "$(PROJECT_ROOT)" $(UV_SYNC_FLAGS) --link-mode "$(UV_LINK_MODE)"; \ + fi + WORKSPACE_ORCHESTRATE = $(UV_RUN) python -m flext_infra workspace orchestrate REQUESTED_PROJECTS := $(strip $(if $(PROJECT),$(PROJECT),$(PROJECTS))) # A workspace root owns no local gate implementation: its verbs fan out to the @@ -470,10 +491,10 @@ _builtin_help_usage: # Source: template (submodule_setup_recipe.j2) # Computed: workspace-root uses WORKSPACE_MEMBERS from config; standalone discovers # submodules with flext-managed=true from .gitmodules at runtime. -# Rule: all managed submodules are synced and initialized recursively before -# branch validation; unmanaged submodules are never touched. Local changes -# on the declared branch are preserved. Nested submodules inside managed -# trees are validated recursively. +# Rule: setup VERIFIES governed gitlinks and never writes to a working tree. +# It is invoked automatically by every verb, so a checkout, pull, reset or +# submodule update on this path would run unattended against uncommitted +# work. Divergence is reported with the exact command to run by hand. # Free: no # End SECTION: submodule setup _builtin_setup_submodules: @@ -499,9 +520,11 @@ _builtin_setup_submodules: fi; \ managed=$$(printf '%s' "$$managed" | tr ' ' '\n' | sort -u | tr '\n' ' '); \ if [ -z "$$managed" ]; then exit 0; fi; \ - git -C "$$root" submodule sync --recursive --quiet; \ for child_path in $$managed; do \ - git -C "$$root" submodule update --init --recursive -- "$$child_path"; \ + if [ ! -e "$$root/$$child_path/.git" ]; then \ + printf 'ERROR: governed gitlink is not initialized: %s; run `git submodule update --init --recursive -- %s` yourself (setup never writes a tree)\\n' "$$child_path" "$$child_path" >&2; \ + exit 2; \ + fi; \ done; \ validate_submodule() { \ superproject="$$1"; \ @@ -559,20 +582,13 @@ _builtin_setup_submodules: exit 1; \ fi; \ if [ -z "$$current" ]; then \ - if git -C "$$child_root" rev-parse --verify --quiet "refs/heads/$$branch" >/dev/null; then \ - git -C "$$child_root" merge-base --is-ancestor "$$gitlink" "refs/heads/$$branch" || { \ - printf 'ERROR: %s: local branch %s diverges from gitlink %s\n' "$$child_path" "$$branch" "$$gitlink" >&2; \ - exit 1; \ - }; \ - git -C "$$child_root" checkout --quiet "$$branch"; \ - else \ - git -C "$$child_root" checkout --quiet -b "$$branch"; \ - fi; \ + printf 'ERROR: %s: detached HEAD; check out %s yourself (setup never moves a tree)\\n' "$$child_path" "$$branch" >&2; \ + exit 1; \ fi; \ - git -C "$$child_root" pull --ff-only --quiet origin "$$branch" || { \ - printf 'ERROR: %s: fast-forward pull of origin/%s failed\n' "$$child_path" "$$branch" >&2; \ + if ! git -C "$$child_root" merge-base --is-ancestor "$$gitlink" "refs/remotes/origin/$$branch"; then \ + printf 'ERROR: %s: origin/%s diverges from recorded gitlink %s\\n' "$$child_path" "$$branch" "$$gitlink" >&2; \ exit 1; \ - }; \ + fi; \ if ! git -C "$$child_root" merge-base --is-ancestor "$$gitlink" HEAD; then \ printf 'ERROR: %s: branch %s diverges from recorded gitlink %s\n' "$$child_path" "$$branch" "$$gitlink" >&2; \ exit 1; \ @@ -600,6 +616,12 @@ _builtin_require_environment: # Operator contract: setup PROVISIONS tooling only — mise, venv, dependencies. # It never generates, conforms, or mutates project code; `make gen` (APPLY=Y) # is the single public conformance/generation surface. +# Every verb invokes setup, so it must be cheap when the tooling already +# matches the lock and must repair it when it does not. `uv sync --check` is +# that probe: it compares the live venv against the resolved lock and exits +# non-zero on any drift, so it can never report a broken environment as good. +# The venv is disposable and is rebuilt whenever it is missing; it is never +# cleared while present, because a concurrent lane may be running against it. # Profile routing: workspace-member delegates the environment to the # principal (the uv workspace venv lives at RUNTIME_ROOT); workspace-root and # standalone build their own environment locally. @@ -608,13 +630,11 @@ _builtin_setup_environment: _builtin_setup_submodules @$(MAKE) -C "$(RUNTIME_ROOT)" _builtin_setup_environment else ifeq ($(MAKE_PROFILE),workspace-root) _builtin_setup_environment: _builtin_setup_submodules - @$(UV) venv --clear "$(RUNTIME_VENV)" - @$(UV) sync --project "$(PROJECT_ROOT)" $(UV_SYNC_FLAGS) --link-mode "$(UV_LINK_MODE)" + @$(SETUP_ENVIRONMENT_RECIPE) @$(UV) pip check --python "$(RUNTIME_VENV)" else _builtin_setup_environment: _builtin_setup_submodules - @$(UV) venv --clear "$(RUNTIME_VENV)" - @$(UV) sync --project "$(PROJECT_ROOT)" $(UV_SYNC_FLAGS) --link-mode "$(UV_LINK_MODE)" + @$(SETUP_ENVIRONMENT_RECIPE) endif # End SECTION: setup environment @@ -732,12 +752,14 @@ _builtin_release_status: _builtin_require_environment _builtin_gen_check: _builtin_require_environment @$(PROJECT_FLEXT_INFRA) codegen conform --root "$(PROJECT_ROOT)" --scope "$(CODEGEN_SCOPE)" --mode check - @$(PROJECT_FLEXT_INFRA) deps extra-paths --workspace "$(WORKSPACE)" --check + @$(PROJECT_FLEXT_INFRA) deps modernize --workspace "$(WORKSPACE_ROOT)" --check + @$(PROJECT_FLEXT_INFRA) deps extra-paths --workspace "$(WORKSPACE_ROOT)" --check _builtin_gen_all: _builtin_require_environment $(call _require_apply) @$(PROJECT_FLEXT_INFRA) codegen conform --root "$(PROJECT_ROOT)" --scope "$(CODEGEN_SCOPE)" --mode apply - @$(PROJECT_FLEXT_INFRA) deps extra-paths --workspace "$(WORKSPACE)" --apply + @$(PROJECT_FLEXT_INFRA) deps modernize --workspace "$(WORKSPACE_ROOT)" --apply + @$(PROJECT_FLEXT_INFRA) deps extra-paths --workspace "$(WORKSPACE_ROOT)" --apply _builtin_worktree_list: @$(PROJECT_FLEXT_INFRA) workspace worktree --workspace "$(WORKSPACE)" --operation list diff --git a/flext-api b/flext-api index fe316534b..4839e9392 160000 --- a/flext-api +++ b/flext-api @@ -1 +1 @@ -Subproject commit fe316534bffa64382dea807017bc4d6cdf921e6e +Subproject commit 4839e93927c71a0eaf08d72494dc11562c8fbd11 diff --git a/flext-auth b/flext-auth index f15b0d0eb..7e89910dc 160000 --- a/flext-auth +++ b/flext-auth @@ -1 +1 @@ -Subproject commit f15b0d0ebd95cbe6c1524177bdea68b88a9101da +Subproject commit 7e89910dca2767e48a89e9df4857a848d565ee32 diff --git a/flext-cli b/flext-cli index efcd383db..4956f2582 160000 --- a/flext-cli +++ b/flext-cli @@ -1 +1 @@ -Subproject commit efcd383dbbcd1a3b3da71e804cfe13f26a16191b +Subproject commit 4956f2582a9ac0f8c5babc8b419185e0374fcc9b diff --git a/flext-core b/flext-core index 43bfab0ab..524caa9af 160000 --- a/flext-core +++ b/flext-core @@ -1 +1 @@ -Subproject commit 43bfab0abcf591741b82e17adab2d9842b55a7e8 +Subproject commit 524caa9af8dd876c9001b575f4180deaa87fc377 diff --git a/flext-db-oracle b/flext-db-oracle index aecf6c8dc..5e8993ebe 160000 --- a/flext-db-oracle +++ b/flext-db-oracle @@ -1 +1 @@ -Subproject commit aecf6c8dce4df3ce4f2ffad3233b542337f9054d +Subproject commit 5e8993ebe8cab0c3b4f49a1c0dca9acf64b69ddc diff --git a/flext-dbt-ldap b/flext-dbt-ldap index e5bec5a95..d5f089d44 160000 --- a/flext-dbt-ldap +++ b/flext-dbt-ldap @@ -1 +1 @@ -Subproject commit e5bec5a9581dcaff7799eee5b6cb4e0facb8878c +Subproject commit d5f089d44fa11b0838aa3c1c6ade2f6bb8f509b8 diff --git a/flext-dbt-ldif b/flext-dbt-ldif index cc7eed047..3346589af 160000 --- a/flext-dbt-ldif +++ b/flext-dbt-ldif @@ -1 +1 @@ -Subproject commit cc7eed04730ba04551a634456d1b23c7b4a7e704 +Subproject commit 3346589aff849c31d4650f48e753a82bdd934ded diff --git a/flext-dbt-oracle b/flext-dbt-oracle index c3378cce9..2d06e6032 160000 --- a/flext-dbt-oracle +++ b/flext-dbt-oracle @@ -1 +1 @@ -Subproject commit c3378cce9d942101d71c896401cdb82a23c22c3a +Subproject commit 2d06e6032b8f12fb2d3e839900204e6c26398c9b diff --git a/flext-dbt-oracle-wms b/flext-dbt-oracle-wms index da1aa3a82..524408e8e 160000 --- a/flext-dbt-oracle-wms +++ b/flext-dbt-oracle-wms @@ -1 +1 @@ -Subproject commit da1aa3a82d55d06f0ac3276ac6681223a0642c3e +Subproject commit 524408e8edf232f6f72176a50d77e103c581ddd3 diff --git a/flext-grpc b/flext-grpc index 31c32293f..eb503f009 160000 --- a/flext-grpc +++ b/flext-grpc @@ -1 +1 @@ -Subproject commit 31c32293fc0d8c945a6f0278f9960f5ac3c65187 +Subproject commit eb503f0091a9bd51b52b2fbfb4e9b5265e25807b diff --git a/flext-infra b/flext-infra index 2eff87655..328a8064e 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 2eff876550f68d10235bb560e6ef009633aa5434 +Subproject commit 328a8064eb4c85f0014e5998555eed838cd89eac diff --git a/flext-ldap b/flext-ldap index 7b2e11fca..bf2d7a2e1 160000 --- a/flext-ldap +++ b/flext-ldap @@ -1 +1 @@ -Subproject commit 7b2e11fcad3c873eb626e8821a6c31791f64df60 +Subproject commit bf2d7a2e1978697f1a29ad5b2df410fd3f8902ba diff --git a/flext-ldif b/flext-ldif index 62239b400..e4479ed6b 160000 --- a/flext-ldif +++ b/flext-ldif @@ -1 +1 @@ -Subproject commit 62239b400b3316daf07492597fa50ea4bbcf88f7 +Subproject commit e4479ed6b784a30babec350a3dbda7f219d1e7f9 diff --git a/flext-meltano b/flext-meltano index 7d5ce5057..6f49a3223 160000 --- a/flext-meltano +++ b/flext-meltano @@ -1 +1 @@ -Subproject commit 7d5ce50574a6799c93d2befe5a9fd5e4f0b2bc94 +Subproject commit 6f49a3223e23b29bfe67db052c3ff98ca512052c diff --git a/flext-observability b/flext-observability index 000be9245..5ce77a9a5 160000 --- a/flext-observability +++ b/flext-observability @@ -1 +1 @@ -Subproject commit 000be924593cb50c887b78980891ada8581acde3 +Subproject commit 5ce77a9a5f150673c774d69e7ef29b3f4ed2bc4e diff --git a/flext-oracle-oic b/flext-oracle-oic index b77e9c231..dc5beb60f 160000 --- a/flext-oracle-oic +++ b/flext-oracle-oic @@ -1 +1 @@ -Subproject commit b77e9c2314b27c24fb2cab7a4fd1fc8981c3c40f +Subproject commit dc5beb60f12104da68992dfb999283f0ded76e88 diff --git a/flext-oracle-wms b/flext-oracle-wms index d54590480..7290b651d 160000 --- a/flext-oracle-wms +++ b/flext-oracle-wms @@ -1 +1 @@ -Subproject commit d54590480c3d505d6db070d64939497f9a01b087 +Subproject commit 7290b651dea61133895a413e57386555420639fa diff --git a/flext-plugin b/flext-plugin index 54254829e..d455a8ff1 160000 --- a/flext-plugin +++ b/flext-plugin @@ -1 +1 @@ -Subproject commit 54254829e81fe1ab92d0232b4ce1f35ec04ca20d +Subproject commit d455a8ff16a6ebeecda6a1429b3aa6859996b95b diff --git a/flext-quality b/flext-quality index 17059b0f7..0b92659d8 160000 --- a/flext-quality +++ b/flext-quality @@ -1 +1 @@ -Subproject commit 17059b0f78921b75d9d51a01a9377e62102752af +Subproject commit 0b92659d88b4344d752eec2048dfca29565b238c diff --git a/flext-tap-ldap b/flext-tap-ldap index 6a3d95cf3..61f5065f4 160000 --- a/flext-tap-ldap +++ b/flext-tap-ldap @@ -1 +1 @@ -Subproject commit 6a3d95cf3c67f326263220c9ee0dbae995744bde +Subproject commit 61f5065f468503ae6b9868067b6830859501bfcf diff --git a/flext-tap-ldif b/flext-tap-ldif index 116489cea..b67662c86 160000 --- a/flext-tap-ldif +++ b/flext-tap-ldif @@ -1 +1 @@ -Subproject commit 116489ceab05010c703c002715e2d5546e76b8c2 +Subproject commit b67662c86e7f90b39cb6cd4542075447d4e2b777 diff --git a/flext-tap-oracle b/flext-tap-oracle index 99b6ac47a..b40135d08 160000 --- a/flext-tap-oracle +++ b/flext-tap-oracle @@ -1 +1 @@ -Subproject commit 99b6ac47ad0a3ee8b7cc3063ff8d948c7164050b +Subproject commit b40135d08deb1d2cd169e12bec2530240ef2e8a5 diff --git a/flext-tap-oracle-oic b/flext-tap-oracle-oic index e5b67cdc8..2361f2276 160000 --- a/flext-tap-oracle-oic +++ b/flext-tap-oracle-oic @@ -1 +1 @@ -Subproject commit e5b67cdc805d07fe20b0316d0bd98298a1c7c1d0 +Subproject commit 2361f22768880dc429d2f1a144ab973af1145656 diff --git a/flext-tap-oracle-wms b/flext-tap-oracle-wms index 50cffc80e..23e07a1ca 160000 --- a/flext-tap-oracle-wms +++ b/flext-tap-oracle-wms @@ -1 +1 @@ -Subproject commit 50cffc80e675f836ce78d8bd9d756630a3356047 +Subproject commit 23e07a1ca0be4d7dcb37d667cab7d3ca0a295bef diff --git a/flext-target-ldap b/flext-target-ldap index c082f21af..5d902a173 160000 --- a/flext-target-ldap +++ b/flext-target-ldap @@ -1 +1 @@ -Subproject commit c082f21afb37417b9b1598c17130b74fa20f3331 +Subproject commit 5d902a173767b05df83b79882613245956d60f5f diff --git a/flext-target-ldif b/flext-target-ldif index 8c89cfd6b..e298f5b84 160000 --- a/flext-target-ldif +++ b/flext-target-ldif @@ -1 +1 @@ -Subproject commit 8c89cfd6bae3313843c68129f4635ab5e087a6a9 +Subproject commit e298f5b8406f7db7c5d3c1acc35f976778bdeb9c diff --git a/flext-target-oracle b/flext-target-oracle index ba1364c47..a9a15635a 160000 --- a/flext-target-oracle +++ b/flext-target-oracle @@ -1 +1 @@ -Subproject commit ba1364c4789e5ac9abed5b963bcb8c6a61734cf0 +Subproject commit a9a15635a43ebbba424d07e51b99e8e3d974fd4d diff --git a/flext-target-oracle-oic b/flext-target-oracle-oic index 1f8f21de8..0af1b7c44 160000 --- a/flext-target-oracle-oic +++ b/flext-target-oracle-oic @@ -1 +1 @@ -Subproject commit 1f8f21de83573633b5e9c4f9002cb6eb0e645552 +Subproject commit 0af1b7c44cb86bc32406fb354fdec9f1e3d55ef3 diff --git a/flext-target-oracle-wms b/flext-target-oracle-wms index a031193ac..85a234780 160000 --- a/flext-target-oracle-wms +++ b/flext-target-oracle-wms @@ -1 +1 @@ -Subproject commit a031193ac8b39288b02e58079417ada1de46dbf5 +Subproject commit 85a234780ceadf26b1e3a122385d59abc3d561a8 diff --git a/flext-tests b/flext-tests index bd43b797b..9191abc3e 160000 --- a/flext-tests +++ b/flext-tests @@ -1 +1 @@ -Subproject commit bd43b797b37e774ec3ebedad63e7f3b3c8dff08b +Subproject commit 9191abc3e784c5be4e14529aa01caabe56d3e5e5 diff --git a/flext-web b/flext-web index 421d586cc..eb6ae0c21 160000 --- a/flext-web +++ b/flext-web @@ -1 +1 @@ -Subproject commit 421d586ccb24a88d6f5b85f9ac673a19a05156e9 +Subproject commit eb6ae0c21ac53955dd47ded5b0227c8caf0aede7 From e7e8111fdaf6626d807b2380275f7cf4f3209379 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Sun, 2 Aug 2026 13:37:46 -0300 Subject: [PATCH 115/165] chore(workspace): advance gitlinks to the published submodule heads Records the heads published to each submodule's 0.12.0-dev in this convergence: flext-cli bb4602a0a flext-tests b122601 flext-infra 276258249 Every target is verified reachable on its own origin/0.12.0-dev, so the superproject carries no dangling gitlink. --- flext-cli | 2 +- flext-infra | 2 +- flext-tests | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/flext-cli b/flext-cli index 4956f2582..bb4602a0a 160000 --- a/flext-cli +++ b/flext-cli @@ -1 +1 @@ -Subproject commit 4956f2582a9ac0f8c5babc8b419185e0374fcc9b +Subproject commit bb4602a0ad4c7140401489c11cbf3149685a5192 diff --git a/flext-infra b/flext-infra index 328a8064e..276258249 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 328a8064eb4c85f0014e5998555eed838cd89eac +Subproject commit 276258249c548e8818871f59090c258679669d83 diff --git a/flext-tests b/flext-tests index 9191abc3e..b12260109 160000 --- a/flext-tests +++ b/flext-tests @@ -1 +1 @@ -Subproject commit 9191abc3e784c5be4e14529aa01caabe56d3e5e5 +Subproject commit b122601091baf4eb771ec4a251899c664f80e38d From 6222d983ee226c7f41fcdcf011a897f0435aded8 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Sun, 2 Aug 2026 19:59:01 -0300 Subject: [PATCH 116/165] fix(setup): make a fresh clone bootstrap without manual git steps 'git clone && make setup' failed on the first command a new operator runs: all 31 governed gitlinks are uninitialized and setup aborted, telling the operator to run 'git submodule update --init' themselves. That command leaves every submodule in detached HEAD, which the next validator in the same recipe rejects. There was no command sequence that reached green. setup now provisions an absent gitlink (clone, then place it on the declared branch at the recorded gitlink) and attaches a detached HEAD to its declared branch only when that HEAD is already contained in origin/, so no commit is ever discarded. A present, on-branch tree is still never written to, which is what the no-write rule was protecting. Advances the flext-infra gitlink to the matching template fix; the Makefile recipe body is byte-identical to its .j2 SSOT. Evidence: rm -rf clone from origin, 31 gitlinks uninitialized, make setup exit 0, 31/31 on the declared branch at the recorded gitlink, venv provisioned; re-run exit 0 with submodule state unchanged. Refs: mro-5upr --- Makefile | 51 +++++++++++++++++++++++++++++++-------------------- flext-infra | 2 +- 2 files changed, 32 insertions(+), 21 deletions(-) diff --git a/Makefile b/Makefile index 534af15dd..c2b9b58bc 100644 --- a/Makefile +++ b/Makefile @@ -491,10 +491,12 @@ _builtin_help_usage: # Source: template (submodule_setup_recipe.j2) # Computed: workspace-root uses WORKSPACE_MEMBERS from config; standalone discovers # submodules with flext-managed=true from .gitmodules at runtime. -# Rule: setup VERIFIES governed gitlinks and never writes to a working tree. -# It is invoked automatically by every verb, so a checkout, pull, reset or -# submodule update on this path would run unattended against uncommitted -# work. Divergence is reported with the exact command to run by hand. +# Rule: setup PROVISIONS an absent governed gitlink and VERIFIES a present one. +# An absent checkout holds no work, so setup clones it and places it on the +# declared branch at the recorded gitlink. A present checkout is never +# written to: setup is invoked automatically by every verb, so a checkout, +# pull, reset or submodule update there would run unattended against +# uncommitted work. Divergence is reported with the exact command to run. # Free: no # End SECTION: submodule setup _builtin_setup_submodules: @@ -520,12 +522,6 @@ _builtin_setup_submodules: fi; \ managed=$$(printf '%s' "$$managed" | tr ' ' '\n' | sort -u | tr '\n' ' '); \ if [ -z "$$managed" ]; then exit 0; fi; \ - for child_path in $$managed; do \ - if [ ! -e "$$root/$$child_path/.git" ]; then \ - printf 'ERROR: governed gitlink is not initialized: %s; run `git submodule update --init --recursive -- %s` yourself (setup never writes a tree)\\n' "$$child_path" "$$child_path" >&2; \ - exit 2; \ - fi; \ - done; \ validate_submodule() { \ superproject="$$1"; \ child_path="$$2"; \ @@ -562,28 +558,43 @@ _builtin_setup_submodules: printf 'ERROR: %s: invalid declared branch %s\n' "$$child_path" "$$branch" >&2; \ exit 1; \ }; \ - git -C "$$child_root" fetch --quiet origin "$$branch" || { \ - printf 'ERROR: %s: fetch origin %s failed\n' "$$child_path" "$$branch" >&2; \ - exit 1; \ - }; \ gitlink=$$(git -C "$$superproject" ls-files --stage -- "$$child_path" | awk '$$1 == "160000" {print $$2}'); \ if [ -z "$$gitlink" ]; then \ printf 'ERROR: governed gitlink is absent from the index: %s\n' "$$child_path" >&2; \ exit 2; \ fi; \ + if [ ! -e "$$child_root/.git" ]; then \ + git -C "$$superproject" submodule update --init -- "$$child_path" || { \ + printf 'ERROR: %s: could not initialize the governed gitlink\n' "$$child_path" >&2; \ + exit 1; \ + }; \ + git -C "$$child_root" checkout --quiet -B "$$branch" "$$gitlink" || { \ + printf 'ERROR: %s: could not place the new checkout on %s at %s\n' "$$child_path" "$$branch" "$$gitlink" >&2; \ + exit 1; \ + }; \ + git -C "$$child_root" branch --quiet --set-upstream-to "origin/$$branch" "$$branch" >/dev/null 2>&1 || :; \ + fi; \ + git -C "$$child_root" fetch --quiet origin "$$branch" || { \ + printf 'ERROR: %s: fetch origin %s failed\n' "$$child_path" "$$branch" >&2; \ + exit 1; \ + }; \ current=$$(git -C "$$child_root" branch --show-current); \ head=$$(git -C "$$child_root" rev-parse HEAD); \ if [ -n "$$current" ] && [ "$$current" != "$$branch" ]; then \ printf 'ERROR: %s: conflicting branch %s; expected %s\n' "$$child_path" "$$current" "$$branch" >&2; \ exit 1; \ fi; \ - if [ -z "$$current" ] && [ "$$head" != "$$gitlink" ]; then \ - printf 'ERROR: %s: detached HEAD diverges from recorded gitlink %s\n' "$$child_path" "$$gitlink" >&2; \ - exit 1; \ - fi; \ if [ -z "$$current" ]; then \ - printf 'ERROR: %s: detached HEAD; check out %s yourself (setup never moves a tree)\\n' "$$child_path" "$$branch" >&2; \ - exit 1; \ + if ! git -C "$$child_root" merge-base --is-ancestor "$$head" "refs/remotes/origin/$$branch"; then \ + printf 'ERROR: %s: detached HEAD %s is not contained in origin/%s; reconcile it yourself (setup never discards commits)\n' "$$child_path" "$$head" "$$branch" >&2; \ + exit 1; \ + fi; \ + git -C "$$child_root" checkout --quiet -B "$$branch" "$$head" || { \ + printf 'ERROR: %s: could not attach detached HEAD %s to %s\n' "$$child_path" "$$head" "$$branch" >&2; \ + exit 1; \ + }; \ + git -C "$$child_root" branch --quiet --set-upstream-to "origin/$$branch" "$$branch" >/dev/null 2>&1 || :; \ + current="$$branch"; \ fi; \ if ! git -C "$$child_root" merge-base --is-ancestor "$$gitlink" "refs/remotes/origin/$$branch"; then \ printf 'ERROR: %s: origin/%s diverges from recorded gitlink %s\\n' "$$child_path" "$$branch" "$$gitlink" >&2; \ diff --git a/flext-infra b/flext-infra index 276258249..8fcc11866 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 276258249c548e8818871f59090c258679669d83 +Subproject commit 8fcc11866058821c8fc811d2b62d20a55fe010ec From 2d9a698115b01912551d5221d49e09e90ac7fab6 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Sun, 2 Aug 2026 20:55:03 -0300 Subject: [PATCH 117/165] chore(workspace): regenerate managed root surfaces + resync uv.lock + advance submodule gitlinks Regenerated stale managed projections at the workspace root (ci workflows, Dockerfiles, Makefile, .gitignore, .beads/config.yaml, pyproject managed sections) and resynced uv.lock to the modernized dependency specifiers via make gen WHAT=all APPLY=Y. Removed 4 polluted pyright transaction- executionEnvironments entries. Advanced all 31 submodule gitlinks to their regenerated heads. Fixes stale committed uv.lock (uv lock --check was EXIT 1). Refs mro-xf56. --- .beads/config.yaml | 4 +- .github/workflows/ci-matrix.yml | 10 ++- .github/workflows/ci.yml | 2 +- .gitignore | 1 + Makefile | 76 +++++++++++++++--- ci/docker/alpine.Dockerfile | 11 +++ ci/docker/arch.Dockerfile | 11 +++ ci/docker/debian.Dockerfile | 11 +++ ci/docker/fedora.Dockerfile | 11 +++ ci/docker/ubuntu.Dockerfile | 11 +++ flext-api | 2 +- flext-auth | 2 +- flext-cli | 2 +- flext-core | 2 +- flext-db-oracle | 2 +- flext-dbt-ldap | 2 +- flext-dbt-ldif | 2 +- flext-dbt-oracle | 2 +- flext-dbt-oracle-wms | 2 +- flext-grpc | 2 +- flext-infra | 2 +- flext-ldap | 2 +- flext-ldif | 2 +- flext-meltano | 2 +- flext-observability | 2 +- flext-oracle-oic | 2 +- flext-oracle-wms | 2 +- flext-plugin | 2 +- flext-quality | 2 +- flext-tap-ldap | 2 +- flext-tap-ldif | 2 +- flext-tap-oracle | 2 +- flext-tap-oracle-oic | 2 +- flext-tap-oracle-wms | 2 +- flext-target-ldap | 2 +- flext-target-ldif | 2 +- flext-target-oracle | 2 +- flext-target-oracle-oic | 2 +- flext-target-oracle-wms | 2 +- flext-tests | 2 +- flext-web | 2 +- pyproject.toml | 64 --------------- uv.lock | 136 ++++++++++++++++---------------- 43 files changed, 229 insertions(+), 181 deletions(-) diff --git a/.beads/config.yaml b/.beads/config.yaml index b8cf22b00..35d26611d 100644 --- a/.beads/config.yaml +++ b/.beads/config.yaml @@ -7,8 +7,8 @@ # ledger_id) falling back to the canonical project name when undeclared. # Source: dolt server block = flext-infra config/codegen.yaml # toolchain.beads.server (machine-wide shared Dolt server facts). -# Routing-only client config: this attached standalone owns no tracker state; -# bd commands route to the shared ledger below. Local data is never written. +# Owned ledger config: the workspace root owns this tracker; conform +# initializes and verifies it against the pinned binary. issue-prefix: "mro" # Dolt shared-server connection (machine-wide shared server on :3308). diff --git a/.github/workflows/ci-matrix.yml b/.github/workflows/ci-matrix.yml index c2711a1c5..45352fb3d 100644 --- a/.github/workflows/ci-matrix.yml +++ b/.github/workflows/ci-matrix.yml @@ -47,7 +47,7 @@ jobs: steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: - submodules: recursive + submodules: false - name: Build ${{ matrix.distro }} image run: >- docker build @@ -66,8 +66,10 @@ jobs: runs-on: macos-latest steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + - name: Setup Python + uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: - submodules: recursive + submodules: false - name: Setup Python uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: @@ -90,8 +92,10 @@ jobs: runs-on: windows-latest steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + - name: Setup Python + uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: - submodules: recursive + submodules: false - name: Setup Python uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 22c8717dd..162a1a7e5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -11,7 +11,7 @@ name: CI "on": pull_request: branches: - - main + - 0.12.0-dev # End SECTION: triggers # === SECTION: permissions (managed) === diff --git a/.gitignore b/.gitignore index 4f1cd32df..c61480a71 100644 --- a/.gitignore +++ b/.gitignore @@ -380,6 +380,7 @@ CLAUDE.local.md !ci/docker/fedora.Dockerfile !ci/docker/ubuntu.Dockerfile !.github/workflows/ +!.github/workflows/ci-matrix.yml !.github/workflows/ci.yml !.github/workflows/docs.yml !.github/workflows/release.yml diff --git a/Makefile b/Makefile index c2b9b58bc..d4f6a12a3 100644 --- a/Makefile +++ b/Makefile @@ -129,8 +129,8 @@ _ALLOWED_WHATS_worktree := list add update remove CHECK_GATES_ALLOWED := lint format pyrefly mypy pyright security markdown smells CHECK_GATES_DEFAULT := lint pyrefly mypy pyright security markdown smells DOCS_ACTIONS := generate fix audit build validate -SERIALIZED_VERBS := check test gen fmt fix -SERIALIZED_TARGETS := _serialized_check _serialized_test _serialized_gen _serialized_fmt _serialized_fix +SERIALIZED_VERBS := check test gen fmt fix deps clean worktree +SERIALIZED_TARGETS := _serialized_check _serialized_test _serialized_gen _serialized_fmt _serialized_fix _serialized_deps _serialized_clean _serialized_worktree # End SECTION: verb dispatch # === SECTION: lint/type paths (managed) === @@ -175,9 +175,12 @@ _DEFAULT_release := status _DEFAULT_gen := check _DEFAULT_worktree := list +_APPLY_WHAT_deps := upgrade _APPLY_WHAT_fmt := all _APPLY_WHAT_fix := all +_APPLY_WHAT_clean := generated _APPLY_WHAT_gen := all +_APPLY_WHAT_worktree := update # === SECTION: profile routing (managed) === @@ -283,7 +286,15 @@ PROJECT_INFRA_PYTHONPATH ?= $(MAKEFILE_ROOT)/src PROJECT_FLEXT_INFRA := test -x "$(FLEXT_INFRA_PYTHON)" || { printf 'ERROR: FLEXT_INFRA_PYTHON must name an executable managed Python\n' >&2; exit 2; }; env -u PYTHONPATH -u MYPYPATH -u VIRTUAL_ENV -u UV_PROJECT -u UV_PROJECT_ENVIRONMENT PATH="$(dir $(FLEXT_INFRA_PYTHON)):$(SANITIZED_CALLER_PATH)" PYTHONPATH="$(PROJECT_INFRA_PYTHONPATH)" $(FLEXT_INFRA_PYTHON) -m flext_infra # mro-j47u (codex): scaffold dev tools live in the validated optional dev # profile; a fresh project must create its lock before later check-mode locks. -UV_SYNC_FLAGS := --all-packages --all-extras --all-groups +# Keyed on the environment's OWNER, not on the caller's profile. A member has +# no local venv -- RUNTIME_VENV is RUNTIME_ROOT/.venv -- so every checkout that +# provisions a shared environment must describe the same contents. A member +# syncing without --all-packages treats the siblings already installed there as +# surplus and uninstalls them, undoing the root's provisioning and leaving +# `uv sync --check` permanently divergent. A standalone project owns its venv +# alone and has no workspace packages to include. +SHARED_RUNTIME := $(if $(filter-out $(PROJECT_ROOT),$(RUNTIME_ROOT)),1,$(if $(strip $(WORKSPACE_MEMBERS)),1,)) +UV_SYNC_FLAGS := $(if $(SHARED_RUNTIME),--all-packages ,)--all-extras --all-groups ifneq ($(strip $(PROJECT)),) ifneq ($(strip $(PROJECTS)),) @@ -390,6 +401,27 @@ _serialized_fix: $(call _dispatch,fix) +deps: _builtin_require_environment + @$(PROJECT_FLEXT_INFRA) workspace serialize-make --workspace "$(PROJECT_ROOT)" --makefile "$(SELF_MAKEFILE)" --verb "deps" --selector-value "$(WHAT)" --apply-token "$(APPLY)" + +_serialized_deps: + $(call _dispatch,deps) + + +clean: _builtin_require_environment + @$(PROJECT_FLEXT_INFRA) workspace serialize-make --workspace "$(PROJECT_ROOT)" --makefile "$(SELF_MAKEFILE)" --verb "clean" --selector-value "$(WHAT)" --apply-token "$(APPLY)" + +_serialized_clean: + $(call _dispatch,clean) + + +worktree: _builtin_require_environment + @$(PROJECT_FLEXT_INFRA) workspace serialize-make --workspace "$(PROJECT_ROOT)" --makefile "$(SELF_MAKEFILE)" --verb "worktree" --selector-value "$(WHAT)" --apply-token "$(APPLY)" + +_serialized_worktree: + $(call _dispatch,worktree) + + # `setup` keeps its own recipe (it must not require the environment it is about # to build), but it still runs the pre-/post-setup lifecycle hooks so a project @@ -417,7 +449,7 @@ _builtin_help_usage: - @printf ' %-10s WHAT=%s\n' 'deps' 'check|lock|upgrade'; + @printf ' %-10s WHAT=%s APPLY=Y\n' 'deps' 'check|lock|upgrade'; @@ -453,7 +485,7 @@ _builtin_help_usage: - @printf ' %-10s WHAT=%s\n' 'clean' 'generated'; + @printf ' %-10s WHAT=%s APPLY=Y\n' 'clean' 'generated'; @@ -465,7 +497,7 @@ _builtin_help_usage: - @printf ' %-10s WHAT=%s\n' 'worktree' 'list|add|update|remove'; + @printf ' %-10s WHAT=%s APPLY=Y\n' 'worktree' 'list|add|update|remove'; @printf ' %-10s %s\n' 'WORKSPACE' 'target repository (default: current project)'; @@ -636,9 +668,20 @@ _builtin_require_environment: # Profile routing: workspace-member delegates the environment to the # principal (the uv workspace venv lives at RUNTIME_ROOT); workspace-root and # standalone build their own environment locally. +# The delegation only means something when the principal is another checkout. +# An isolated `git worktree` of a member has no superproject, so WORKSPACE_ROOT +# falls back to the worktree itself and RUNTIME_ROOT equals PROJECT_ROOT -- while +# MAKE_PROFILE stays workspace-member, because it is fixed at generation time. +# Delegating there re-entered Make on the same target, which Make treats as +# already satisfied: setup exited 0 having created nothing, and the next verb +# failed with "missing environment interpreter". Provision locally instead. ifeq ($(MAKE_PROFILE),workspace-member) _builtin_setup_environment: _builtin_setup_submodules - @$(MAKE) -C "$(RUNTIME_ROOT)" _builtin_setup_environment + @if [ "$(RUNTIME_ROOT)" = "$(PROJECT_ROOT)" ]; then \ + $(SETUP_ENVIRONMENT_RECIPE); \ + else \ + $(MAKE) -C "$(RUNTIME_ROOT)" _builtin_setup_environment; \ + fi else ifeq ($(MAKE_PROFILE),workspace-root) _builtin_setup_environment: _builtin_setup_submodules @$(SETUP_ENVIRONMENT_RECIPE) @@ -683,7 +726,7 @@ _builtin_build_artifacts: # Read-only by contract in every profile: mutation belongs to `make fix # APPLY=Y` / `make fmt APPLY=Y`, which run BEFORE check. _builtin_check_all: _builtin_require_environment - @if [ -n "$(strip $(APPLY))" ]; then \ + @if [ -n "$(strip $(APPLYING))" ]; then \ printf 'ERROR: check is read-only; use `make fix APPLY=Y` / `make fmt APPLY=Y` first\n' >&2; exit 2; \ fi @$(WORKSPACE_ORCHESTRATE) --verb check $(WORKSPACE_PROJECT_ARGS) $(WORKSPACE_CHECK_ARGS) $(if $(filter 1,$(FAIL_FAST)),--fail-fast) @@ -761,16 +804,25 @@ _builtin_release_status: _builtin_require_environment @git -C "$(PROJECT_ROOT)" diff --quiet @git -C "$(PROJECT_ROOT)" diff --cached --quiet +# Every command here writes to the SAME root, derived from the invocation +# point. `deps modernize`/`extra-paths` used to receive WORKSPACE_ROOT while +# `conform` received PROJECT_ROOT, so a gen run inside one member rewrote the +# pyproject of ~30 siblings and left each dirty. Because gen runs inside check +# and check runs in the pre-commit hook, one commit in any lane dirtied every +# sibling -- the "workspace changed during serialized Make check" abort. It +# also kept the fixed point out of reach: each run rewrote the siblings, so +# the next run found a difference again. At the workspace root PROJECT_ROOT is +# already the workspace, so fan-out survives exactly where it belongs. _builtin_gen_check: _builtin_require_environment @$(PROJECT_FLEXT_INFRA) codegen conform --root "$(PROJECT_ROOT)" --scope "$(CODEGEN_SCOPE)" --mode check - @$(PROJECT_FLEXT_INFRA) deps modernize --workspace "$(WORKSPACE_ROOT)" --check - @$(PROJECT_FLEXT_INFRA) deps extra-paths --workspace "$(WORKSPACE_ROOT)" --check + @$(PROJECT_FLEXT_INFRA) deps modernize --workspace "$(PROJECT_ROOT)" --check + @$(PROJECT_FLEXT_INFRA) deps extra-paths --workspace "$(PROJECT_ROOT)" --check _builtin_gen_all: _builtin_require_environment $(call _require_apply) @$(PROJECT_FLEXT_INFRA) codegen conform --root "$(PROJECT_ROOT)" --scope "$(CODEGEN_SCOPE)" --mode apply - @$(PROJECT_FLEXT_INFRA) deps modernize --workspace "$(WORKSPACE_ROOT)" --apply - @$(PROJECT_FLEXT_INFRA) deps extra-paths --workspace "$(WORKSPACE_ROOT)" --apply + @$(PROJECT_FLEXT_INFRA) deps modernize --workspace "$(PROJECT_ROOT)" --apply + @$(PROJECT_FLEXT_INFRA) deps extra-paths --workspace "$(PROJECT_ROOT)" --apply _builtin_worktree_list: @$(PROJECT_FLEXT_INFRA) workspace worktree --workspace "$(WORKSPACE)" --operation list diff --git a/ci/docker/alpine.Dockerfile b/ci/docker/alpine.Dockerfile index 4927284b1..124af2a38 100644 --- a/ci/docker/alpine.Dockerfile +++ b/ci/docker/alpine.Dockerfile @@ -37,5 +37,16 @@ COPY . . RUN mise trust .mise.toml && mise install --yes # End SECTION: mise install +# === SECTION: bootstrap proof (managed) === +# Source: template (clean-machine bootstrap through the canonical verb) +# The image exists to PROVE that a clean machine can bootstrap this project +# with nothing but the declared toolchain. It therefore runs the canonical +# setup verb fail-closed: any non-zero status fails the build. An earlier +# revision wrapped this in `set +e` and soft-passed whenever the output +# mentioned uv.lock/flext-core, which turned the proof into a bypass -- a +# broken bootstrap still produced a green image. +RUN make setup +# End SECTION: bootstrap proof + ENTRYPOINT [] CMD ["/bin/bash", "-lc", "make help"] diff --git a/ci/docker/arch.Dockerfile b/ci/docker/arch.Dockerfile index b06b4b685..cef4268fe 100644 --- a/ci/docker/arch.Dockerfile +++ b/ci/docker/arch.Dockerfile @@ -39,5 +39,16 @@ COPY . . RUN mise trust .mise.toml && mise install --yes # End SECTION: mise install +# === SECTION: bootstrap proof (managed) === +# Source: template (clean-machine bootstrap through the canonical verb) +# The image exists to PROVE that a clean machine can bootstrap this project +# with nothing but the declared toolchain. It therefore runs the canonical +# setup verb fail-closed: any non-zero status fails the build. An earlier +# revision wrapped this in `set +e` and soft-passed whenever the output +# mentioned uv.lock/flext-core, which turned the proof into a bypass -- a +# broken bootstrap still produced a green image. +RUN make setup +# End SECTION: bootstrap proof + ENTRYPOINT [] CMD ["make", "help"] diff --git a/ci/docker/debian.Dockerfile b/ci/docker/debian.Dockerfile index e393003b8..5f76ef023 100644 --- a/ci/docker/debian.Dockerfile +++ b/ci/docker/debian.Dockerfile @@ -40,5 +40,16 @@ COPY . . RUN mise trust .mise.toml && mise install --yes # End SECTION: mise install +# === SECTION: bootstrap proof (managed) === +# Source: template (clean-machine bootstrap through the canonical verb) +# The image exists to PROVE that a clean machine can bootstrap this project +# with nothing but the declared toolchain. It therefore runs the canonical +# setup verb fail-closed: any non-zero status fails the build. An earlier +# revision wrapped this in `set +e` and soft-passed whenever the output +# mentioned uv.lock/flext-core, which turned the proof into a bypass -- a +# broken bootstrap still produced a green image. +RUN make setup +# End SECTION: bootstrap proof + ENTRYPOINT [] CMD ["make", "help"] diff --git a/ci/docker/fedora.Dockerfile b/ci/docker/fedora.Dockerfile index 3a7e004e2..0b0235695 100644 --- a/ci/docker/fedora.Dockerfile +++ b/ci/docker/fedora.Dockerfile @@ -39,5 +39,16 @@ COPY . . RUN mise trust .mise.toml && mise install --yes # End SECTION: mise install +# === SECTION: bootstrap proof (managed) === +# Source: template (clean-machine bootstrap through the canonical verb) +# The image exists to PROVE that a clean machine can bootstrap this project +# with nothing but the declared toolchain. It therefore runs the canonical +# setup verb fail-closed: any non-zero status fails the build. An earlier +# revision wrapped this in `set +e` and soft-passed whenever the output +# mentioned uv.lock/flext-core, which turned the proof into a bypass -- a +# broken bootstrap still produced a green image. +RUN make setup +# End SECTION: bootstrap proof + ENTRYPOINT [] CMD ["make", "help"] diff --git a/ci/docker/ubuntu.Dockerfile b/ci/docker/ubuntu.Dockerfile index f360f28d2..0737c71ba 100644 --- a/ci/docker/ubuntu.Dockerfile +++ b/ci/docker/ubuntu.Dockerfile @@ -40,5 +40,16 @@ COPY . . RUN mise trust .mise.toml && mise install --yes # End SECTION: mise install +# === SECTION: bootstrap proof (managed) === +# Source: template (clean-machine bootstrap through the canonical verb) +# The image exists to PROVE that a clean machine can bootstrap this project +# with nothing but the declared toolchain. It therefore runs the canonical +# setup verb fail-closed: any non-zero status fails the build. An earlier +# revision wrapped this in `set +e` and soft-passed whenever the output +# mentioned uv.lock/flext-core, which turned the proof into a bypass -- a +# broken bootstrap still produced a green image. +RUN make setup +# End SECTION: bootstrap proof + ENTRYPOINT [] CMD ["make", "help"] diff --git a/flext-api b/flext-api index 4839e9392..b24c1b988 160000 --- a/flext-api +++ b/flext-api @@ -1 +1 @@ -Subproject commit 4839e93927c71a0eaf08d72494dc11562c8fbd11 +Subproject commit b24c1b988dff31a12f37dcb96285dd194cd9465c diff --git a/flext-auth b/flext-auth index 7e89910dc..0789b5467 160000 --- a/flext-auth +++ b/flext-auth @@ -1 +1 @@ -Subproject commit 7e89910dca2767e48a89e9df4857a848d565ee32 +Subproject commit 0789b54672d46a6b2b2d8b729b5aa5cf70c87496 diff --git a/flext-cli b/flext-cli index bb4602a0a..a11b4b796 160000 --- a/flext-cli +++ b/flext-cli @@ -1 +1 @@ -Subproject commit bb4602a0ad4c7140401489c11cbf3149685a5192 +Subproject commit a11b4b79631ca60bddb46a36c27f81f1d5396e77 diff --git a/flext-core b/flext-core index 524caa9af..31bd0952e 160000 --- a/flext-core +++ b/flext-core @@ -1 +1 @@ -Subproject commit 524caa9af8dd876c9001b575f4180deaa87fc377 +Subproject commit 31bd0952ef76571a626179a6ec375b5021022394 diff --git a/flext-db-oracle b/flext-db-oracle index 5e8993ebe..df0f945fc 160000 --- a/flext-db-oracle +++ b/flext-db-oracle @@ -1 +1 @@ -Subproject commit 5e8993ebe8cab0c3b4f49a1c0dca9acf64b69ddc +Subproject commit df0f945fcec44d9aa34bfa312a1e288f36102328 diff --git a/flext-dbt-ldap b/flext-dbt-ldap index d5f089d44..bc4d66495 160000 --- a/flext-dbt-ldap +++ b/flext-dbt-ldap @@ -1 +1 @@ -Subproject commit d5f089d44fa11b0838aa3c1c6ade2f6bb8f509b8 +Subproject commit bc4d66495480051c47ee0d6fbbfbabf5d92a04f3 diff --git a/flext-dbt-ldif b/flext-dbt-ldif index 3346589af..63ecd4628 160000 --- a/flext-dbt-ldif +++ b/flext-dbt-ldif @@ -1 +1 @@ -Subproject commit 3346589aff849c31d4650f48e753a82bdd934ded +Subproject commit 63ecd46286483d72c91c6ed4afc9ac8cb16c9f63 diff --git a/flext-dbt-oracle b/flext-dbt-oracle index 2d06e6032..4bf74f147 160000 --- a/flext-dbt-oracle +++ b/flext-dbt-oracle @@ -1 +1 @@ -Subproject commit 2d06e6032b8f12fb2d3e839900204e6c26398c9b +Subproject commit 4bf74f1473ac3a20509cd83bb4a48b12deef8e50 diff --git a/flext-dbt-oracle-wms b/flext-dbt-oracle-wms index 524408e8e..a99bd91d3 160000 --- a/flext-dbt-oracle-wms +++ b/flext-dbt-oracle-wms @@ -1 +1 @@ -Subproject commit 524408e8edf232f6f72176a50d77e103c581ddd3 +Subproject commit a99bd91d3a770704e0932658f3df31c7e5995526 diff --git a/flext-grpc b/flext-grpc index eb503f009..334032194 160000 --- a/flext-grpc +++ b/flext-grpc @@ -1 +1 @@ -Subproject commit eb503f0091a9bd51b52b2fbfb4e9b5265e25807b +Subproject commit 334032194a85c57ada162bd328d356d24187d5b7 diff --git a/flext-infra b/flext-infra index 8fcc11866..d6e6f4965 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 8fcc11866058821c8fc811d2b62d20a55fe010ec +Subproject commit d6e6f4965790232b35ae98caaa45659a86c9a4de diff --git a/flext-ldap b/flext-ldap index bf2d7a2e1..5f04de869 160000 --- a/flext-ldap +++ b/flext-ldap @@ -1 +1 @@ -Subproject commit bf2d7a2e1978697f1a29ad5b2df410fd3f8902ba +Subproject commit 5f04de869f5b218a10d621fdfb8b7d664619f178 diff --git a/flext-ldif b/flext-ldif index e4479ed6b..eaa70e2de 160000 --- a/flext-ldif +++ b/flext-ldif @@ -1 +1 @@ -Subproject commit e4479ed6b784a30babec350a3dbda7f219d1e7f9 +Subproject commit eaa70e2de0ea9afde5de6fcf5f0494a096b14e3e diff --git a/flext-meltano b/flext-meltano index 6f49a3223..502afacc9 160000 --- a/flext-meltano +++ b/flext-meltano @@ -1 +1 @@ -Subproject commit 6f49a3223e23b29bfe67db052c3ff98ca512052c +Subproject commit 502afacc9b1a649f549aa18c2b30cf1c125eed52 diff --git a/flext-observability b/flext-observability index 5ce77a9a5..b1028b766 160000 --- a/flext-observability +++ b/flext-observability @@ -1 +1 @@ -Subproject commit 5ce77a9a5f150673c774d69e7ef29b3f4ed2bc4e +Subproject commit b1028b766cc4f81c91461cf2c5c025829add05e7 diff --git a/flext-oracle-oic b/flext-oracle-oic index dc5beb60f..f81afc479 160000 --- a/flext-oracle-oic +++ b/flext-oracle-oic @@ -1 +1 @@ -Subproject commit dc5beb60f12104da68992dfb999283f0ded76e88 +Subproject commit f81afc47959fbde032d9db3108cb0288f5fcbfb6 diff --git a/flext-oracle-wms b/flext-oracle-wms index 7290b651d..c5fcdd958 160000 --- a/flext-oracle-wms +++ b/flext-oracle-wms @@ -1 +1 @@ -Subproject commit 7290b651dea61133895a413e57386555420639fa +Subproject commit c5fcdd9586438004faffcbef01c5dd84183a6e2c diff --git a/flext-plugin b/flext-plugin index d455a8ff1..e0d9726cc 160000 --- a/flext-plugin +++ b/flext-plugin @@ -1 +1 @@ -Subproject commit d455a8ff16a6ebeecda6a1429b3aa6859996b95b +Subproject commit e0d9726ccfa38c703df7a17a203c229593df0a47 diff --git a/flext-quality b/flext-quality index 0b92659d8..ae39b6179 160000 --- a/flext-quality +++ b/flext-quality @@ -1 +1 @@ -Subproject commit 0b92659d88b4344d752eec2048dfca29565b238c +Subproject commit ae39b61798708b3afe99ca567e64de608e3ffdb1 diff --git a/flext-tap-ldap b/flext-tap-ldap index 61f5065f4..be8528418 160000 --- a/flext-tap-ldap +++ b/flext-tap-ldap @@ -1 +1 @@ -Subproject commit 61f5065f468503ae6b9868067b6830859501bfcf +Subproject commit be85284189b0024cf71f4888e97448994e66269e diff --git a/flext-tap-ldif b/flext-tap-ldif index b67662c86..e731efcee 160000 --- a/flext-tap-ldif +++ b/flext-tap-ldif @@ -1 +1 @@ -Subproject commit b67662c86e7f90b39cb6cd4542075447d4e2b777 +Subproject commit e731efceeac8d308854cef1864f1d7d6d1d244f5 diff --git a/flext-tap-oracle b/flext-tap-oracle index b40135d08..c2144723f 160000 --- a/flext-tap-oracle +++ b/flext-tap-oracle @@ -1 +1 @@ -Subproject commit b40135d08deb1d2cd169e12bec2530240ef2e8a5 +Subproject commit c2144723fd4609e60a6ebc8183173ced7266c4c7 diff --git a/flext-tap-oracle-oic b/flext-tap-oracle-oic index 2361f2276..24e18fe83 160000 --- a/flext-tap-oracle-oic +++ b/flext-tap-oracle-oic @@ -1 +1 @@ -Subproject commit 2361f22768880dc429d2f1a144ab973af1145656 +Subproject commit 24e18fe839e4ef30be6c797b336df64cfbeeea30 diff --git a/flext-tap-oracle-wms b/flext-tap-oracle-wms index 23e07a1ca..652371329 160000 --- a/flext-tap-oracle-wms +++ b/flext-tap-oracle-wms @@ -1 +1 @@ -Subproject commit 23e07a1ca0be4d7dcb37d667cab7d3ca0a295bef +Subproject commit 652371329de57b347883ad24b960d1741d2f0a14 diff --git a/flext-target-ldap b/flext-target-ldap index 5d902a173..833164656 160000 --- a/flext-target-ldap +++ b/flext-target-ldap @@ -1 +1 @@ -Subproject commit 5d902a173767b05df83b79882613245956d60f5f +Subproject commit 833164656e571f135fc6c44dab1aea6b2d7ad81e diff --git a/flext-target-ldif b/flext-target-ldif index e298f5b84..3b4381eba 160000 --- a/flext-target-ldif +++ b/flext-target-ldif @@ -1 +1 @@ -Subproject commit e298f5b8406f7db7c5d3c1acc35f976778bdeb9c +Subproject commit 3b4381eba9a1f4641d6870e691760a27e0d6afb0 diff --git a/flext-target-oracle b/flext-target-oracle index a9a15635a..3534ed797 160000 --- a/flext-target-oracle +++ b/flext-target-oracle @@ -1 +1 @@ -Subproject commit a9a15635a43ebbba424d07e51b99e8e3d974fd4d +Subproject commit 3534ed797263d1185fbf4f161bda26f18043e98d diff --git a/flext-target-oracle-oic b/flext-target-oracle-oic index 0af1b7c44..3e4a6990d 160000 --- a/flext-target-oracle-oic +++ b/flext-target-oracle-oic @@ -1 +1 @@ -Subproject commit 0af1b7c44cb86bc32406fb354fdec9f1e3d55ef3 +Subproject commit 3e4a6990df35df40045e85c95342a267d17f0203 diff --git a/flext-target-oracle-wms b/flext-target-oracle-wms index 85a234780..7065449fa 160000 --- a/flext-target-oracle-wms +++ b/flext-target-oracle-wms @@ -1 +1 @@ -Subproject commit 85a234780ceadf26b1e3a122385d59abc3d561a8 +Subproject commit 7065449fae70fae2cb3fb2ae89bccc5317aea417 diff --git a/flext-tests b/flext-tests index b12260109..d34fc1c91 160000 --- a/flext-tests +++ b/flext-tests @@ -1 +1 @@ -Subproject commit b122601091baf4eb771ec4a251899c664f80e38d +Subproject commit d34fc1c91e646580cc917c3cf6dfe18ad03b5e36 diff --git a/flext-web b/flext-web index eb6ae0c21..a579343c1 160000 --- a/flext-web +++ b/flext-web @@ -1 +1 @@ -Subproject commit eb6ae0c21ac53955dd47ded5b0227c8caf0aede7 +Subproject commit a579343c108afd732e5f59da327b62e9ee400859 diff --git a/pyproject.toml b/pyproject.toml index 9d2ac2db5..9ee4aea0f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -552,70 +552,6 @@ reportUnknownVariableType = "none" reportUnusedImport = "none" root = "examples" -[[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] -reportAssignmentType = "none" -reportAttributeAccessIssue = "none" -reportGeneralTypeIssues = "none" -reportInvalidTypeForm = "none" -reportPrivateImportUsage = "none" -reportPrivateUsage = "none" -reportUnknownArgumentType = "none" -reportUnknownLambdaType = "none" -reportUnknownMemberType = "none" -reportUnknownParameterType = "none" -reportUnknownVariableType = "none" -reportUnusedImport = "none" -root = "flext-infra-transaction-577535c7cbba41ca81ce45f7aeb6fa0f" - -[[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] -reportAssignmentType = "none" -reportAttributeAccessIssue = "none" -reportGeneralTypeIssues = "none" -reportInvalidTypeForm = "none" -reportPrivateImportUsage = "none" -reportPrivateUsage = "none" -reportUnknownArgumentType = "none" -reportUnknownLambdaType = "none" -reportUnknownMemberType = "none" -reportUnknownParameterType = "none" -reportUnknownVariableType = "none" -reportUnusedImport = "none" -root = "flext-infra-transaction-a0e97767b5474bd0a1b92334ca9c4f5c" - -[[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] -reportAssignmentType = "none" -reportAttributeAccessIssue = "none" -reportGeneralTypeIssues = "none" -reportInvalidTypeForm = "none" -reportPrivateImportUsage = "none" -reportPrivateUsage = "none" -reportUnknownArgumentType = "none" -reportUnknownLambdaType = "none" -reportUnknownMemberType = "none" -reportUnknownParameterType = "none" -reportUnknownVariableType = "none" -reportUnusedImport = "none" -root = "flext-infra-transaction-a16fad64d6374091a21cc68126671355" - -[[tool.pyright.executionEnvironments]] -extraPaths = [".", "src"] -reportAssignmentType = "none" -reportAttributeAccessIssue = "none" -reportGeneralTypeIssues = "none" -reportInvalidTypeForm = "none" -reportPrivateImportUsage = "none" -reportPrivateUsage = "none" -reportUnknownArgumentType = "none" -reportUnknownLambdaType = "none" -reportUnknownMemberType = "none" -reportUnknownParameterType = "none" -reportUnknownVariableType = "none" -reportUnusedImport = "none" -root = "flext-infra-transaction-f07fd7e389a446aa9b8c7e5d6aa3a65a" - [[tool.pyright.executionEnvironments]] extraPaths = [".", "src"] reportAssignmentType = "none" diff --git a/uv.lock b/uv.lock index 8e6849ceb..b60b452e6 100644 --- a/uv.lock +++ b/uv.lock @@ -3791,101 +3791,101 @@ dev = [ [package.metadata] requires-dist = [ { name = "defusedxml", specifier = ">=0.7.1" }, - { name = "filelock", specifier = ">=3.16" }, + { name = "filelock", specifier = ">=3.32.0" }, { name = "flext-cli", editable = "flext-cli" }, { name = "flext-core", editable = "flext-core" }, - { name = "gitpython", specifier = ">=3.1.49" }, + { name = "gitpython", specifier = ">=3.1.57" }, { name = "libcst", specifier = ">=1.8.6" }, { name = "mkdocs", specifier = ">=1.6.1" }, { name = "mkdocs-exclude", specifier = ">=1.0.2" }, - { name = "mkdocs-material", specifier = ">=9.7.6" }, + { name = "mkdocs-material", specifier = ">=9.7.7" }, { name = "mkdocs-section-index", specifier = ">=0.3.12" }, { name = "mkdocstrings", specifier = ">=1.0.6" }, { name = "mkdocstrings-python", specifier = ">=2.0.5" }, { name = "pyrefly", specifier = ">=1.1.1" }, { name = "rope", specifier = ">=1.14.0" }, - { name = "ruff", specifier = ">=0.15.12" }, + { name = "ruff", specifier = ">=0.16.0" }, ] [package.metadata.requires-dev] dev = [ { name = "actionlint-py", specifier = ">=1.7.12.24" }, - { name = "autoflake", specifier = ">=2.3.1" }, - { name = "bandit", specifier = ">=1.8" }, - { name = "black", specifier = ">=25.1" }, - { name = "blacken-docs", specifier = ">=1.19" }, - { name = "codespell", specifier = ">=2.3" }, - { name = "deptry", specifier = ">=0.23" }, - { name = "django-stubs", specifier = ">=5.2.2" }, - { name = "factory-boy", specifier = ">=3.3.1" }, - { name = "faker", specifier = ">=37.4" }, + { name = "autoflake", specifier = ">=2.3.3" }, + { name = "bandit", specifier = ">=1.9.4" }, + { name = "black", specifier = ">=26.5.1" }, + { name = "blacken-docs", specifier = ">=1.20.0" }, + { name = "codespell", specifier = ">=2.4.3" }, + { name = "deptry", specifier = ">=0.25.1" }, + { name = "django-stubs", specifier = ">=6.0.7" }, + { name = "factory-boy", specifier = ">=3.3.3" }, + { name = "faker", specifier = ">=40.36.0" }, { name = "flext-tests", editable = "flext-tests" }, - { name = "hypothesis", specifier = ">=6.125" }, - { name = "isort", specifier = ">=6.0.1" }, - { name = "matplotlib-stubs", specifier = ">=0.3" }, - { name = "mkdocs", specifier = ">=1.6" }, - { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.9" }, - { name = "mkdocs-encryptcontent-plugin", specifier = ">=2" }, + { name = "hypothesis", specifier = ">=6.161.8" }, + { name = "isort", specifier = ">=8.0.1" }, + { name = "matplotlib-stubs", specifier = ">=0.3.11" }, + { name = "mkdocs", specifier = ">=1.6.1" }, + { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.10.1" }, + { name = "mkdocs-encryptcontent-plugin", specifier = ">=3.1.0" }, { name = "mkdocs-exclude", specifier = ">=1.0.2" }, - { name = "mkdocs-get-deps", specifier = ">=0.2" }, - { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.2" }, - { name = "mkdocs-literate-nav", specifier = ">=0.6" }, - { name = "mkdocs-macros-plugin", specifier = ">=1" }, - { name = "mkdocs-material", specifier = ">=9.5" }, + { name = "mkdocs-get-deps", specifier = ">=0.2.2" }, + { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.5.3" }, + { name = "mkdocs-literate-nav", specifier = ">=0.6.3" }, + { name = "mkdocs-macros-plugin", specifier = ">=1.5.0" }, + { name = "mkdocs-material", specifier = ">=9.7.7" }, { name = "mkdocs-material-extensions", specifier = ">=1.3.1" }, - { name = "mkdocs-mermaid2-plugin", specifier = ">=1.1" }, - { name = "mkdocs-minify-plugin", specifier = ">=0.7" }, - { name = "mkdocs-print-site-plugin", specifier = ">=0.8" }, - { name = "mkdocs-redirects", specifier = ">=1.2" }, + { name = "mkdocs-mermaid2-plugin", specifier = ">=1.2.3" }, + { name = "mkdocs-minify-plugin", specifier = ">=0.8.0" }, + { name = "mkdocs-print-site-plugin", specifier = ">=2.8" }, + { name = "mkdocs-redirects", specifier = ">=1.2.3" }, { name = "mkdocs-section-index", specifier = ">=0.3.12" }, - { name = "mkdocs-versioning", specifier = ">=0.2" }, - { name = "mkdocstrings", specifier = ">=0.24" }, - { name = "mkdocstrings-python", specifier = ">=1.7" }, + { name = "mkdocs-versioning", specifier = ">=0.4.0" }, + { name = "mkdocstrings", specifier = ">=1.0.6" }, + { name = "mkdocstrings-python", specifier = ">=2.0.5" }, { name = "mypy", specifier = ">=2.3.0" }, - { name = "pip-audit", specifier = ">=2.7.3" }, - { name = "pre-commit", specifier = ">=4.6.0" }, - { name = "pylint", specifier = ">=3.3" }, + { name = "pip-audit", specifier = ">=2.10.1" }, + { name = "pre-commit", specifier = ">=4.6.1" }, + { name = "pylint", specifier = ">=4.0.6" }, { name = "pyrefly", specifier = ">=1.1.1" }, { name = "pyright", specifier = ">=1.1.411" }, - { name = "pytest", specifier = ">=8.4" }, - { name = "pytest-benchmark", specifier = ">=5.1" }, + { name = "pytest", specifier = ">=9.1.1" }, + { name = "pytest-benchmark", specifier = ">=5.2.3" }, { name = "pytest-clarity", specifier = ">=1.0.1" }, - { name = "pytest-codeblocks", specifier = ">=0.17.0" }, - { name = "pytest-cov", specifier = ">=6.2" }, - { name = "pytest-deadfixtures", specifier = ">=2.2.1" }, - { name = "pytest-env", specifier = ">=1.1.5" }, + { name = "pytest-codeblocks", specifier = ">=0.18.0" }, + { name = "pytest-cov", specifier = ">=7.1.0" }, + { name = "pytest-deadfixtures", specifier = ">=3.1.0" }, + { name = "pytest-env", specifier = ">=1.7.0" }, { name = "pytest-markdown-docs", specifier = ">=0.9.2" }, - { name = "pytest-mock", specifier = ">=3.14" }, - { name = "pytest-randomly", specifier = ">=3.16" }, - { name = "pytest-sugar", specifier = ">=1" }, - { name = "pytest-timeout", specifier = ">=2.4" }, - { name = "pytest-xdist", specifier = ">=3.8" }, - { name = "pyupgrade", specifier = ">=3.19" }, + { name = "pytest-mock", specifier = ">=3.15.1" }, + { name = "pytest-randomly", specifier = ">=4.1.0" }, + { name = "pytest-sugar", specifier = ">=1.1.1" }, + { name = "pytest-timeout", specifier = ">=2.4.0" }, + { name = "pytest-xdist", specifier = ">=3.8.0" }, + { name = "pyupgrade", specifier = ">=3.21.2" }, { name = "radon", specifier = ">=6.0.1" }, - { name = "ruff", specifier = ">=0.12.3" }, + { name = "ruff", specifier = ">=0.16.0" }, { name = "rumdl", specifier = ">=0.2.46" }, - { name = "types-cachetools", specifier = ">=6.2" }, - { name = "types-cffi", specifier = ">=2.0" }, - { name = "types-click", specifier = ">=7.1" }, - { name = "types-defusedxml", specifier = ">=0.7" }, - { name = "types-docker", specifier = ">=7.1" }, + { name = "types-cachetools", specifier = ">=7.0.0.20260713" }, + { name = "types-cffi", specifier = ">=2.0.0.20260518" }, + { name = "types-click", specifier = ">=7.1.8" }, + { name = "types-defusedxml", specifier = ">=0.7.0.20260504" }, + { name = "types-docker", specifier = ">=7.2.0.20260724" }, { name = "types-flask", specifier = ">=1.1.6" }, - { name = "types-jsonschema", specifier = ">=4.26" }, - { name = "types-ldap3", specifier = ">=2.9.13.20250622" }, - { name = "types-paramiko", specifier = ">=4.0" }, - { name = "types-protobuf", specifier = ">=6.30.2.20250703" }, - { name = "types-psutil", specifier = ">=7" }, - { name = "types-psycopg2", specifier = ">=2.9.21.20250718" }, - { name = "types-pyasn1", specifier = ">=0.6" }, - { name = "types-pyopenssl", specifier = ">=24.1" }, - { name = "types-python-dateutil", specifier = ">=2.9" }, - { name = "types-pyyaml", specifier = ">=6.0.12.20260518" }, - { name = "types-redis", specifier = ">=4.6" }, - { name = "types-requests", specifier = ">=2.32.4" }, - { name = "types-setuptools", specifier = ">=80.9" }, - { name = "types-tabulate", specifier = ">=0.10" }, - { name = "types-toml", specifier = ">=0.10.8.20240310" }, - { name = "vulture", specifier = ">=2.13" }, + { name = "types-jsonschema", specifier = ">=4.26.0.20260518" }, + { name = "types-ldap3", specifier = ">=2.9.13.20260518" }, + { name = "types-paramiko", specifier = ">=5.0.0.20260724" }, + { name = "types-protobuf", specifier = ">=7.34.1.20260518" }, + { name = "types-psutil", specifier = ">=7.2.2.20260518" }, + { name = "types-psycopg2", specifier = ">=2.9.21.20260724" }, + { name = "types-pyasn1", specifier = ">=0.6.0.20260724" }, + { name = "types-pyopenssl", specifier = ">=24.1.0.20240722" }, + { name = "types-python-dateutil", specifier = ">=2.9.0.20260716" }, + { name = "types-pyyaml", specifier = ">=6.0.12.20260724" }, + { name = "types-redis", specifier = ">=4.6.0.20241004" }, + { name = "types-requests", specifier = ">=2.33.0.20260712" }, + { name = "types-setuptools", specifier = ">=83.0.0.20260724" }, + { name = "types-tabulate", specifier = ">=0.10.0.20260508" }, + { name = "types-toml", specifier = ">=0.10.8.20260518" }, + { name = "vulture", specifier = ">=2.16" }, { name = "yamlfix", specifier = ">=1.19.1" }, ] From 7d0db47fd82f11de5b5e708e4380ff5f4d8c440c Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Sun, 2 Aug 2026 21:05:44 -0300 Subject: [PATCH 118/165] chore(workspace): converge pyproject fixed point + restore beads routing config + advance gitlinks Remove stray blank line after # [MANAGED] markers (deps-modernize/conform fixed point), restore .beads/config.yaml to the canonical routing-only client config that a bd write had reverted, and advance all submodule gitlinks to their converged heads. Refs mro-xf56. --- .beads/config.yaml | 4 ++-- flext-api | 2 +- flext-auth | 2 +- flext-cli | 2 +- flext-core | 2 +- flext-db-oracle | 2 +- flext-dbt-ldap | 2 +- flext-dbt-ldif | 2 +- flext-dbt-oracle | 2 +- flext-dbt-oracle-wms | 2 +- flext-grpc | 2 +- flext-infra | 2 +- flext-ldap | 2 +- flext-ldif | 2 +- flext-meltano | 2 +- flext-observability | 2 +- flext-oracle-oic | 2 +- flext-oracle-wms | 2 +- flext-plugin | 2 +- flext-quality | 2 +- flext-tap-ldap | 2 +- flext-tap-ldif | 2 +- flext-tap-oracle | 2 +- flext-tap-oracle-oic | 2 +- flext-tap-oracle-wms | 2 +- flext-target-ldap | 2 +- flext-target-ldif | 2 +- flext-target-oracle | 2 +- flext-target-oracle-oic | 2 +- flext-target-oracle-wms | 2 +- flext-tests | 2 +- flext-web | 2 +- pyproject.toml | 2 -- 33 files changed, 33 insertions(+), 35 deletions(-) diff --git a/.beads/config.yaml b/.beads/config.yaml index 35d26611d..b8cf22b00 100644 --- a/.beads/config.yaml +++ b/.beads/config.yaml @@ -7,8 +7,8 @@ # ledger_id) falling back to the canonical project name when undeclared. # Source: dolt server block = flext-infra config/codegen.yaml # toolchain.beads.server (machine-wide shared Dolt server facts). -# Owned ledger config: the workspace root owns this tracker; conform -# initializes and verifies it against the pinned binary. +# Routing-only client config: this attached standalone owns no tracker state; +# bd commands route to the shared ledger below. Local data is never written. issue-prefix: "mro" # Dolt shared-server connection (machine-wide shared server on :3308). diff --git a/flext-api b/flext-api index b24c1b988..866025145 160000 --- a/flext-api +++ b/flext-api @@ -1 +1 @@ -Subproject commit b24c1b988dff31a12f37dcb96285dd194cd9465c +Subproject commit 866025145e3ab5fb54eedc23394bb53ac63f082d diff --git a/flext-auth b/flext-auth index 0789b5467..72a79f826 160000 --- a/flext-auth +++ b/flext-auth @@ -1 +1 @@ -Subproject commit 0789b54672d46a6b2b2d8b729b5aa5cf70c87496 +Subproject commit 72a79f826b9bd73647e9b55fd90c9579e77e9d84 diff --git a/flext-cli b/flext-cli index a11b4b796..efa3d5be3 160000 --- a/flext-cli +++ b/flext-cli @@ -1 +1 @@ -Subproject commit a11b4b79631ca60bddb46a36c27f81f1d5396e77 +Subproject commit efa3d5be38aa8347b1c746731beae7acf69605db diff --git a/flext-core b/flext-core index 31bd0952e..df672e3de 160000 --- a/flext-core +++ b/flext-core @@ -1 +1 @@ -Subproject commit 31bd0952ef76571a626179a6ec375b5021022394 +Subproject commit df672e3ded77a8432ea16e20d0b7214775859fa1 diff --git a/flext-db-oracle b/flext-db-oracle index df0f945fc..42b6d65b6 160000 --- a/flext-db-oracle +++ b/flext-db-oracle @@ -1 +1 @@ -Subproject commit df0f945fcec44d9aa34bfa312a1e288f36102328 +Subproject commit 42b6d65b647839d5b3c1e08919ca8ebbaf86f137 diff --git a/flext-dbt-ldap b/flext-dbt-ldap index bc4d66495..f0959b666 160000 --- a/flext-dbt-ldap +++ b/flext-dbt-ldap @@ -1 +1 @@ -Subproject commit bc4d66495480051c47ee0d6fbbfbabf5d92a04f3 +Subproject commit f0959b66671edd2434a79d136448f985924a4085 diff --git a/flext-dbt-ldif b/flext-dbt-ldif index 63ecd4628..46c12d202 160000 --- a/flext-dbt-ldif +++ b/flext-dbt-ldif @@ -1 +1 @@ -Subproject commit 63ecd46286483d72c91c6ed4afc9ac8cb16c9f63 +Subproject commit 46c12d202e23da00521b2b5e2f3bc51afc47e445 diff --git a/flext-dbt-oracle b/flext-dbt-oracle index 4bf74f147..44f669f01 160000 --- a/flext-dbt-oracle +++ b/flext-dbt-oracle @@ -1 +1 @@ -Subproject commit 4bf74f1473ac3a20509cd83bb4a48b12deef8e50 +Subproject commit 44f669f011451bd546dd0142a50ac819bbdbde67 diff --git a/flext-dbt-oracle-wms b/flext-dbt-oracle-wms index a99bd91d3..d93088b3f 160000 --- a/flext-dbt-oracle-wms +++ b/flext-dbt-oracle-wms @@ -1 +1 @@ -Subproject commit a99bd91d3a770704e0932658f3df31c7e5995526 +Subproject commit d93088b3f99bfab4b35b8cf1b722b8ba6d723268 diff --git a/flext-grpc b/flext-grpc index 334032194..8fd5256d6 160000 --- a/flext-grpc +++ b/flext-grpc @@ -1 +1 @@ -Subproject commit 334032194a85c57ada162bd328d356d24187d5b7 +Subproject commit 8fd5256d6cfdfecc5f8548eb875fb2d68c13912d diff --git a/flext-infra b/flext-infra index d6e6f4965..7a8f252c8 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit d6e6f4965790232b35ae98caaa45659a86c9a4de +Subproject commit 7a8f252c82a861e87b5c38c3c66b5d6288b34774 diff --git a/flext-ldap b/flext-ldap index 5f04de869..a74a5745a 160000 --- a/flext-ldap +++ b/flext-ldap @@ -1 +1 @@ -Subproject commit 5f04de869f5b218a10d621fdfb8b7d664619f178 +Subproject commit a74a5745a592709dbdcd4edf8f08e85d6686d05e diff --git a/flext-ldif b/flext-ldif index eaa70e2de..9ffbb29f8 160000 --- a/flext-ldif +++ b/flext-ldif @@ -1 +1 @@ -Subproject commit eaa70e2de0ea9afde5de6fcf5f0494a096b14e3e +Subproject commit 9ffbb29f8d4239e0582b22c1bc14375562c755b7 diff --git a/flext-meltano b/flext-meltano index 502afacc9..540e91b96 160000 --- a/flext-meltano +++ b/flext-meltano @@ -1 +1 @@ -Subproject commit 502afacc9b1a649f549aa18c2b30cf1c125eed52 +Subproject commit 540e91b96801a2b2dce4446fd0bf7dca58250368 diff --git a/flext-observability b/flext-observability index b1028b766..4d3a3f244 160000 --- a/flext-observability +++ b/flext-observability @@ -1 +1 @@ -Subproject commit b1028b766cc4f81c91461cf2c5c025829add05e7 +Subproject commit 4d3a3f244bc6afbd6d1eb7bbfbb4792da8a12e08 diff --git a/flext-oracle-oic b/flext-oracle-oic index f81afc479..3efdc3c79 160000 --- a/flext-oracle-oic +++ b/flext-oracle-oic @@ -1 +1 @@ -Subproject commit f81afc47959fbde032d9db3108cb0288f5fcbfb6 +Subproject commit 3efdc3c7904c85d9827d67a31339ed789e57b689 diff --git a/flext-oracle-wms b/flext-oracle-wms index c5fcdd958..9b3932430 160000 --- a/flext-oracle-wms +++ b/flext-oracle-wms @@ -1 +1 @@ -Subproject commit c5fcdd9586438004faffcbef01c5dd84183a6e2c +Subproject commit 9b393243022e2e7e9a3886f5bc3ae2f9910bd8f7 diff --git a/flext-plugin b/flext-plugin index e0d9726cc..5fbea7461 160000 --- a/flext-plugin +++ b/flext-plugin @@ -1 +1 @@ -Subproject commit e0d9726ccfa38c703df7a17a203c229593df0a47 +Subproject commit 5fbea7461e13ac2d8e98ec378ab8eb19ff399893 diff --git a/flext-quality b/flext-quality index ae39b6179..fc6e26213 160000 --- a/flext-quality +++ b/flext-quality @@ -1 +1 @@ -Subproject commit ae39b61798708b3afe99ca567e64de608e3ffdb1 +Subproject commit fc6e26213742874436185595a13c8c4052f05b4d diff --git a/flext-tap-ldap b/flext-tap-ldap index be8528418..90b53fa68 160000 --- a/flext-tap-ldap +++ b/flext-tap-ldap @@ -1 +1 @@ -Subproject commit be85284189b0024cf71f4888e97448994e66269e +Subproject commit 90b53fa68d6ffb6d69f12f762505806bd0478ab7 diff --git a/flext-tap-ldif b/flext-tap-ldif index e731efcee..f81161612 160000 --- a/flext-tap-ldif +++ b/flext-tap-ldif @@ -1 +1 @@ -Subproject commit e731efceeac8d308854cef1864f1d7d6d1d244f5 +Subproject commit f81161612f45c498b5f395aa7de38e8a5359071b diff --git a/flext-tap-oracle b/flext-tap-oracle index c2144723f..e95443ec8 160000 --- a/flext-tap-oracle +++ b/flext-tap-oracle @@ -1 +1 @@ -Subproject commit c2144723fd4609e60a6ebc8183173ced7266c4c7 +Subproject commit e95443ec822a2fd1a24eb9e5e93393ddc33b0f91 diff --git a/flext-tap-oracle-oic b/flext-tap-oracle-oic index 24e18fe83..8a4c44dcb 160000 --- a/flext-tap-oracle-oic +++ b/flext-tap-oracle-oic @@ -1 +1 @@ -Subproject commit 24e18fe839e4ef30be6c797b336df64cfbeeea30 +Subproject commit 8a4c44dcbf200325c6b59e11d3d845fed9a2ee88 diff --git a/flext-tap-oracle-wms b/flext-tap-oracle-wms index 652371329..ee7b66a9a 160000 --- a/flext-tap-oracle-wms +++ b/flext-tap-oracle-wms @@ -1 +1 @@ -Subproject commit 652371329de57b347883ad24b960d1741d2f0a14 +Subproject commit ee7b66a9a6f53dbd33dc71f220d35ed85876fdc1 diff --git a/flext-target-ldap b/flext-target-ldap index 833164656..f9891f337 160000 --- a/flext-target-ldap +++ b/flext-target-ldap @@ -1 +1 @@ -Subproject commit 833164656e571f135fc6c44dab1aea6b2d7ad81e +Subproject commit f9891f337b8b7a3a8d4ba1dd763c5403111db2d9 diff --git a/flext-target-ldif b/flext-target-ldif index 3b4381eba..ddac9175f 160000 --- a/flext-target-ldif +++ b/flext-target-ldif @@ -1 +1 @@ -Subproject commit 3b4381eba9a1f4641d6870e691760a27e0d6afb0 +Subproject commit ddac9175fd3fcae33a59cd95376142e397eebd40 diff --git a/flext-target-oracle b/flext-target-oracle index 3534ed797..536051b83 160000 --- a/flext-target-oracle +++ b/flext-target-oracle @@ -1 +1 @@ -Subproject commit 3534ed797263d1185fbf4f161bda26f18043e98d +Subproject commit 536051b8378222fc70d7a320c25133aefe904238 diff --git a/flext-target-oracle-oic b/flext-target-oracle-oic index 3e4a6990d..b891110d9 160000 --- a/flext-target-oracle-oic +++ b/flext-target-oracle-oic @@ -1 +1 @@ -Subproject commit 3e4a6990df35df40045e85c95342a267d17f0203 +Subproject commit b891110d9f1e0a36f5c8bcfbc0dca7a998599c8c diff --git a/flext-target-oracle-wms b/flext-target-oracle-wms index 7065449fa..76aca186a 160000 --- a/flext-target-oracle-wms +++ b/flext-target-oracle-wms @@ -1 +1 @@ -Subproject commit 7065449fae70fae2cb3fb2ae89bccc5317aea417 +Subproject commit 76aca186a6d94cf44a9483453973fe74a2a2a7b6 diff --git a/flext-tests b/flext-tests index d34fc1c91..72d5e41b3 160000 --- a/flext-tests +++ b/flext-tests @@ -1 +1 @@ -Subproject commit d34fc1c91e646580cc917c3cf6dfe18ad03b5e36 +Subproject commit 72d5e41b35ed38fc4c4713c2cef5a9b11d9dc923 diff --git a/flext-web b/flext-web index a579343c1..0a6796a11 160000 --- a/flext-web +++ b/flext-web @@ -1 +1 @@ -Subproject commit a579343c108afd732e5f59da327b62e9ee400859 +Subproject commit 0a6796a11d383f067c4a804814732f0be8b1c12b diff --git a/pyproject.toml b/pyproject.toml index 9ee4aea0f..7977750fc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -229,7 +229,6 @@ disable_error_code = ["unreachable"] module = ["dcdoc._utilities._charts._matplotlib_renderer._renders_spec"] # [MANAGED] pydantic-mypy - [tool.pydantic-mypy] init_forbid_extra = true init_typed = true @@ -2043,7 +2042,6 @@ reportUnusedImport = "none" root = "flext-web/tests" # [MANAGED] pytest - [tool.pytest.ini_options] addopts = [ "--benchmark-disable", From 81cc760adf9f2c0c6b1f9cf3da1a3033d66d9c89 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Sun, 2 Aug 2026 23:29:04 -0300 Subject: [PATCH 119/165] chore(codegen): converge the last drifted managed surfaces to the generator fixed point 'make gen WHAT=check' still reported drift on two managed projections: - .beads/config.yaml carried the routing-only client header while the generator declares the workspace root the ledger OWNER. The stale header is why bd could not resolve the ledger from a fresh clone. - pyproject.toml was missing the blank line the generator emits after each '# [MANAGED]' marker. Both are generated projections, so the tree was corrected by running the canonical generator, never by hand. Evidence: make gen WHAT=all APPLY=Y exit 0; running it twice leaves pyproject.toml at md5 0abe59928e0bc58e301f73cac47b0c48 both times (idempotent fixed point, not a rewrite loop). Refs: mro-wkii.17.39 --- .beads/config.yaml | 4 ++-- pyproject.toml | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.beads/config.yaml b/.beads/config.yaml index b8cf22b00..35d26611d 100644 --- a/.beads/config.yaml +++ b/.beads/config.yaml @@ -7,8 +7,8 @@ # ledger_id) falling back to the canonical project name when undeclared. # Source: dolt server block = flext-infra config/codegen.yaml # toolchain.beads.server (machine-wide shared Dolt server facts). -# Routing-only client config: this attached standalone owns no tracker state; -# bd commands route to the shared ledger below. Local data is never written. +# Owned ledger config: the workspace root owns this tracker; conform +# initializes and verifies it against the pinned binary. issue-prefix: "mro" # Dolt shared-server connection (machine-wide shared server on :3308). diff --git a/pyproject.toml b/pyproject.toml index 7977750fc..9ee4aea0f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -229,6 +229,7 @@ disable_error_code = ["unreachable"] module = ["dcdoc._utilities._charts._matplotlib_renderer._renders_spec"] # [MANAGED] pydantic-mypy + [tool.pydantic-mypy] init_forbid_extra = true init_typed = true @@ -2042,6 +2043,7 @@ reportUnusedImport = "none" root = "flext-web/tests" # [MANAGED] pytest + [tool.pytest.ini_options] addopts = [ "--benchmark-disable", From f4188df160a2c497644b26688fba8317551b04b1 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Sun, 2 Aug 2026 23:30:50 -0300 Subject: [PATCH 120/165] chore(workspace): advance gitlinks to the converged pyproject fixed point Each governed member committed its regenerated pyproject projection (blank line after every '# [MANAGED]' marker). This advances the 31 gitlinks to those heads so the superproject and its members agree. Refs: mro-wkii.17.39 --- flext-api | 2 +- flext-auth | 2 +- flext-cli | 2 +- flext-core | 2 +- flext-db-oracle | 2 +- flext-dbt-ldap | 2 +- flext-dbt-ldif | 2 +- flext-dbt-oracle | 2 +- flext-dbt-oracle-wms | 2 +- flext-grpc | 2 +- flext-infra | 2 +- flext-ldap | 2 +- flext-ldif | 2 +- flext-meltano | 2 +- flext-observability | 2 +- flext-oracle-oic | 2 +- flext-oracle-wms | 2 +- flext-plugin | 2 +- flext-quality | 2 +- flext-tap-ldap | 2 +- flext-tap-ldif | 2 +- flext-tap-oracle | 2 +- flext-tap-oracle-oic | 2 +- flext-tap-oracle-wms | 2 +- flext-target-ldap | 2 +- flext-target-ldif | 2 +- flext-target-oracle | 2 +- flext-target-oracle-oic | 2 +- flext-target-oracle-wms | 2 +- flext-tests | 2 +- flext-web | 2 +- 31 files changed, 31 insertions(+), 31 deletions(-) diff --git a/flext-api b/flext-api index 866025145..db0a058e2 160000 --- a/flext-api +++ b/flext-api @@ -1 +1 @@ -Subproject commit 866025145e3ab5fb54eedc23394bb53ac63f082d +Subproject commit db0a058e297a81bd5b7b4f5ff3c868d80195f7eb diff --git a/flext-auth b/flext-auth index 72a79f826..4fa358c30 160000 --- a/flext-auth +++ b/flext-auth @@ -1 +1 @@ -Subproject commit 72a79f826b9bd73647e9b55fd90c9579e77e9d84 +Subproject commit 4fa358c302081effe78d305fb5a5642eec0a5e75 diff --git a/flext-cli b/flext-cli index efa3d5be3..829bb94eb 160000 --- a/flext-cli +++ b/flext-cli @@ -1 +1 @@ -Subproject commit efa3d5be38aa8347b1c746731beae7acf69605db +Subproject commit 829bb94ebac02b025b5a7ae62397825f2fce12f1 diff --git a/flext-core b/flext-core index df672e3de..a3508fe29 160000 --- a/flext-core +++ b/flext-core @@ -1 +1 @@ -Subproject commit df672e3ded77a8432ea16e20d0b7214775859fa1 +Subproject commit a3508fe29019d6558f3a63b5162f5913d55e64a3 diff --git a/flext-db-oracle b/flext-db-oracle index 42b6d65b6..284ae0046 160000 --- a/flext-db-oracle +++ b/flext-db-oracle @@ -1 +1 @@ -Subproject commit 42b6d65b647839d5b3c1e08919ca8ebbaf86f137 +Subproject commit 284ae00463132fe96baa38a841e1c24f57a14530 diff --git a/flext-dbt-ldap b/flext-dbt-ldap index f0959b666..828566f6c 160000 --- a/flext-dbt-ldap +++ b/flext-dbt-ldap @@ -1 +1 @@ -Subproject commit f0959b66671edd2434a79d136448f985924a4085 +Subproject commit 828566f6c3bd63c482b48a48a3342b307c68aee6 diff --git a/flext-dbt-ldif b/flext-dbt-ldif index 46c12d202..75536381d 160000 --- a/flext-dbt-ldif +++ b/flext-dbt-ldif @@ -1 +1 @@ -Subproject commit 46c12d202e23da00521b2b5e2f3bc51afc47e445 +Subproject commit 75536381d471c75da9fb7b5c7616b8e99789ed23 diff --git a/flext-dbt-oracle b/flext-dbt-oracle index 44f669f01..6d1675f2b 160000 --- a/flext-dbt-oracle +++ b/flext-dbt-oracle @@ -1 +1 @@ -Subproject commit 44f669f011451bd546dd0142a50ac819bbdbde67 +Subproject commit 6d1675f2b0b29c22d8a791d5564b8b6f85bc44ef diff --git a/flext-dbt-oracle-wms b/flext-dbt-oracle-wms index d93088b3f..766d7be8a 160000 --- a/flext-dbt-oracle-wms +++ b/flext-dbt-oracle-wms @@ -1 +1 @@ -Subproject commit d93088b3f99bfab4b35b8cf1b722b8ba6d723268 +Subproject commit 766d7be8a1dc3d185c84e9f399f3142c5517108e diff --git a/flext-grpc b/flext-grpc index 8fd5256d6..81cd41a40 160000 --- a/flext-grpc +++ b/flext-grpc @@ -1 +1 @@ -Subproject commit 8fd5256d6cfdfecc5f8548eb875fb2d68c13912d +Subproject commit 81cd41a4090a037d731a077023a586748850afc3 diff --git a/flext-infra b/flext-infra index 7a8f252c8..c9832249d 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 7a8f252c82a861e87b5c38c3c66b5d6288b34774 +Subproject commit c9832249d981b5cdf10b7a458585156acd346928 diff --git a/flext-ldap b/flext-ldap index a74a5745a..6282dc4cc 160000 --- a/flext-ldap +++ b/flext-ldap @@ -1 +1 @@ -Subproject commit a74a5745a592709dbdcd4edf8f08e85d6686d05e +Subproject commit 6282dc4cc32573ff870c2c0cc935c48110c858b3 diff --git a/flext-ldif b/flext-ldif index 9ffbb29f8..bb2a136ff 160000 --- a/flext-ldif +++ b/flext-ldif @@ -1 +1 @@ -Subproject commit 9ffbb29f8d4239e0582b22c1bc14375562c755b7 +Subproject commit bb2a136ff3a7206e0de54bd0877750711b760447 diff --git a/flext-meltano b/flext-meltano index 540e91b96..55d8b4b86 160000 --- a/flext-meltano +++ b/flext-meltano @@ -1 +1 @@ -Subproject commit 540e91b96801a2b2dce4446fd0bf7dca58250368 +Subproject commit 55d8b4b86763bf8bff7523141210fabcbbb6c72c diff --git a/flext-observability b/flext-observability index 4d3a3f244..59692c797 160000 --- a/flext-observability +++ b/flext-observability @@ -1 +1 @@ -Subproject commit 4d3a3f244bc6afbd6d1eb7bbfbb4792da8a12e08 +Subproject commit 59692c7979f97e756e44b78d909796d02eba288b diff --git a/flext-oracle-oic b/flext-oracle-oic index 3efdc3c79..be8d71593 160000 --- a/flext-oracle-oic +++ b/flext-oracle-oic @@ -1 +1 @@ -Subproject commit 3efdc3c7904c85d9827d67a31339ed789e57b689 +Subproject commit be8d715937e6a062da5834704623a0e4f08fe3e4 diff --git a/flext-oracle-wms b/flext-oracle-wms index 9b3932430..78d72d8ff 160000 --- a/flext-oracle-wms +++ b/flext-oracle-wms @@ -1 +1 @@ -Subproject commit 9b393243022e2e7e9a3886f5bc3ae2f9910bd8f7 +Subproject commit 78d72d8ff1f874d3c3a7576874d55d86cb560f28 diff --git a/flext-plugin b/flext-plugin index 5fbea7461..9e9257cda 160000 --- a/flext-plugin +++ b/flext-plugin @@ -1 +1 @@ -Subproject commit 5fbea7461e13ac2d8e98ec378ab8eb19ff399893 +Subproject commit 9e9257cdacf9a85b47d2a9f99f853be783e76e7f diff --git a/flext-quality b/flext-quality index fc6e26213..60f1353c5 160000 --- a/flext-quality +++ b/flext-quality @@ -1 +1 @@ -Subproject commit fc6e26213742874436185595a13c8c4052f05b4d +Subproject commit 60f1353c566a86a12722a59d228ba3034524117a diff --git a/flext-tap-ldap b/flext-tap-ldap index 90b53fa68..c684a4310 160000 --- a/flext-tap-ldap +++ b/flext-tap-ldap @@ -1 +1 @@ -Subproject commit 90b53fa68d6ffb6d69f12f762505806bd0478ab7 +Subproject commit c684a4310e234fe9b6da30e9fe55d8d994962c75 diff --git a/flext-tap-ldif b/flext-tap-ldif index f81161612..5b6d11c09 160000 --- a/flext-tap-ldif +++ b/flext-tap-ldif @@ -1 +1 @@ -Subproject commit f81161612f45c498b5f395aa7de38e8a5359071b +Subproject commit 5b6d11c09116cdfe3052144902abf4bd42bef306 diff --git a/flext-tap-oracle b/flext-tap-oracle index e95443ec8..72d3ca15e 160000 --- a/flext-tap-oracle +++ b/flext-tap-oracle @@ -1 +1 @@ -Subproject commit e95443ec822a2fd1a24eb9e5e93393ddc33b0f91 +Subproject commit 72d3ca15e9a1207c446da340bd7eb3d2816d53e8 diff --git a/flext-tap-oracle-oic b/flext-tap-oracle-oic index 8a4c44dcb..9449db38f 160000 --- a/flext-tap-oracle-oic +++ b/flext-tap-oracle-oic @@ -1 +1 @@ -Subproject commit 8a4c44dcbf200325c6b59e11d3d845fed9a2ee88 +Subproject commit 9449db38f2bd10221628303438ab4be2301f5fbf diff --git a/flext-tap-oracle-wms b/flext-tap-oracle-wms index ee7b66a9a..522e041b0 160000 --- a/flext-tap-oracle-wms +++ b/flext-tap-oracle-wms @@ -1 +1 @@ -Subproject commit ee7b66a9a6f53dbd33dc71f220d35ed85876fdc1 +Subproject commit 522e041b09fd8d70f0325486bb97d8d85b3d932f diff --git a/flext-target-ldap b/flext-target-ldap index f9891f337..2195e7740 160000 --- a/flext-target-ldap +++ b/flext-target-ldap @@ -1 +1 @@ -Subproject commit f9891f337b8b7a3a8d4ba1dd763c5403111db2d9 +Subproject commit 2195e7740d2a710f9db03f1e25c02b1be532e0d6 diff --git a/flext-target-ldif b/flext-target-ldif index ddac9175f..4065deb04 160000 --- a/flext-target-ldif +++ b/flext-target-ldif @@ -1 +1 @@ -Subproject commit ddac9175fd3fcae33a59cd95376142e397eebd40 +Subproject commit 4065deb0426aa3e55ceaecaf4f22171e7800a765 diff --git a/flext-target-oracle b/flext-target-oracle index 536051b83..cb3cfc5e2 160000 --- a/flext-target-oracle +++ b/flext-target-oracle @@ -1 +1 @@ -Subproject commit 536051b8378222fc70d7a320c25133aefe904238 +Subproject commit cb3cfc5e2088bb0e795e53705c42cc5e031f8aca diff --git a/flext-target-oracle-oic b/flext-target-oracle-oic index b891110d9..36d50ebd3 160000 --- a/flext-target-oracle-oic +++ b/flext-target-oracle-oic @@ -1 +1 @@ -Subproject commit b891110d9f1e0a36f5c8bcfbc0dca7a998599c8c +Subproject commit 36d50ebd3079a96bb656cbe71d29f3f44ee65c68 diff --git a/flext-target-oracle-wms b/flext-target-oracle-wms index 76aca186a..60c60b096 160000 --- a/flext-target-oracle-wms +++ b/flext-target-oracle-wms @@ -1 +1 @@ -Subproject commit 76aca186a6d94cf44a9483453973fe74a2a2a7b6 +Subproject commit 60c60b096c9518ef34c0e58475e2b6b1053993e8 diff --git a/flext-tests b/flext-tests index 72d5e41b3..3cfb18fd0 160000 --- a/flext-tests +++ b/flext-tests @@ -1 +1 @@ -Subproject commit 72d5e41b35ed38fc4c4713c2cef5a9b11d9dc923 +Subproject commit 3cfb18fd0f06af28710a221a9b8fab1d9e43f417 diff --git a/flext-web b/flext-web index 0a6796a11..667ae9cf4 160000 --- a/flext-web +++ b/flext-web @@ -1 +1 @@ -Subproject commit 0a6796a11d383f067c4a804814732f0be8b1c12b +Subproject commit 667ae9cf486578ce77b1a04776429bcf88776d46 From c1b63ae953ac66f6c5c7b5a13873ce91cde58f08 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Sun, 2 Aug 2026 23:55:18 -0300 Subject: [PATCH 121/165] docs(governance): make the fresh-clone bootstrap contract a blocking gate A prior session reported 'done' on make setup after validating a LOCAL working copy carrying uncommitted edits that were never pushed. The operator deleted that tree, re-cloned from origin, and hit the identical original error. Nothing in AGENTS.md forbade that, so the loophole was governance, not carelessness alone. Adds to Build & Test: - the bootstrap contract (fresh clone + make setup -> exit 0, byte-clean) - an evidence rule voiding any completion claim not proven against a clone of ORIGIN, with commit+push required BEFORE the claim - warnings-are-failures: exit 0 while printing a warning is not green - generated surfaces have owners: regenerate via make gen, never hand-write a projection or let a foreign tool rewrite one The matching executable gate is in the verification-loop skill as gate 0. Refs: mro-wkii.17.39 --- AGENTS.md | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/AGENTS.md b/AGENTS.md index 383debaa9..d8c1144cf 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -445,6 +445,41 @@ Python strictly `>=3.13,<3.14`. override with `make check WHAT=mypy MYPY_MEMORY_LIMIT_MB=8192`. Docs CI needs `uv sync --all-packages --all-groups --all-extras` for dev tools. +### Bootstrap contract (blocking) + +A fresh `git clone` followed by `make setup` MUST exit 0 with no manual `git +submodule` step and leave the tree byte-clean. `make setup` provisions an +absent governed gitlink and attaches a detached HEAD to its declared branch, +but never writes to a present, on-branch checkout. + +**Evidence rule — a completion claim is void without it.** Any change touching +`Makefile`, the `flext-infra` `.j2` templates, `.gitmodules`, `custom.mk`, +`pyproject.toml`, `uv.lock`, or `.beads/` is proven ONLY by: + +```bash +git clone /tmp/verify && cd /tmp/verify/flext +make setup # exit 0 +git status --short # empty +``` + +Run it against a clone of **origin**, never your own working copy. Evidence +from an unpushed tree is not evidence: the artifact the operator receives is +what `origin` serves, so validating local edits and reporting "done" is a +false completion (rule 1 truth-with-evidence, rule 22 finish-to-Done). +Commit and push BEFORE claiming the work lands. + +**Warnings are failures.** A verb that exits 0 while printing `WARNING`, +`warning:`, or a remediation hint is not green. Fix the warning at its owner +or record it in the Bead with the exact command and output — never let it +scroll by. A dirty tree after a provisioning verb is likewise a defect, not +an acceptable leftover to hand to the next session. + +**Generated surfaces have owners.** `Makefile`, `pyproject.toml` `[MANAGED]` +sections, `.beads/config.yaml`, `ci/`, and `.github/workflows/` carry +`@flext-managed` / `@flext-ssot` headers. Change the SSOT and regenerate +through `make gen`; never hand-write a projection, and never let a foreign +tool (e.g. `bd init`) rewrite one. + ## Architecture Overview **Facade layering (strict order `c -> t -> p -> m -> u`)** composed via MRO from `flext-core`: From aad683576c7e630befd292398a9f5ac2823ef7c7 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 08:28:53 -0300 Subject: [PATCH 122/165] chore(codegen): regenerate .gitignore to track .beads/metadata.json Projection of the flext-infra SSOT change (c464288f), produced by 'make gen WHAT=all APPLY=Y', never hand-edited. Refs: mro-9wv8 --- .gitignore | 2 ++ flext-infra | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index c61480a71..48eb28fe2 100644 --- a/.gitignore +++ b/.gitignore @@ -42,6 +42,7 @@ scripts/maintenance/ !.beads/ .beads/* !.beads/config.yaml +!.beads/metadata.json # Python configuration !pyproject.toml @@ -300,6 +301,7 @@ secrets.yml .beads/* .beads/.* !.beads/config.yaml +!.beads/metadata.json .beads/proxieddb/ .dolt/ *.db diff --git a/flext-infra b/flext-infra index c9832249d..c464288fe 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit c9832249d981b5cdf10b7a458585156acd346928 +Subproject commit c464288fed284e9f63422536a20b260540e4e39e From 4f93193c3eac115bf7848d567372d6fd3fe66b59 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 08:34:17 -0300 Subject: [PATCH 123/165] chore(codegen): scope the metadata.json exception to workspace-root Projection of c464288f: the exception now lives in its own workspace-root-scoped section placed AFTER the unscoped FINAL BEADS TRACKING POLICY, so members keep ignoring their embedded-mode metadata.json (which carries a per-machine project_id UUID). Generated via 'make gen WHAT=all APPLY=Y', never hand-edited. Refs: mro-9wv8 --- .gitignore | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 48eb28fe2..e618bfd73 100644 --- a/.gitignore +++ b/.gitignore @@ -301,7 +301,6 @@ secrets.yml .beads/* .beads/.* !.beads/config.yaml -!.beads/metadata.json .beads/proxieddb/ .dolt/ *.db @@ -309,6 +308,9 @@ secrets.yml .worktrees/ legado/ +# Beads ledger identity (workspace-root only; see mro-9wv8) +!.beads/metadata.json + # codegen module-standardizer reject artifacts (ADR-005 §9) *.tpl.rej From ff8a30f9186afe5d18cfd14dfce5ae0887a64328 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 08:51:33 -0300 Subject: [PATCH 124/165] fix(codegen): restore the generator fixed point for [MANAGED] markers Root cause of the permanently-red 'make gen WHAT=check': commit 81cc760ad (mine) added a blank line after every '# [MANAGED]' marker in the 32 pyproject projections, believing it was the fixed point. It is the opposite. The canonical emitter in flext-infra deps/phases/inject_comments.py:173-182 does out.append(marker) then out.append(line) -- marker flush against its section -- and _collapse_blank_lines (141-151) only collapses duplicate blanks, never inserts one. The generator therefore renders WITHOUT the blank line, so checker and disk could never agree and every verb depending on gen stayed blocked. Fixed at the owner by re-running the canonical modernizer.conform_source over each projection; the generator itself is correct and was NOT modified. Advances the 31 gitlinks to the matching member commits. Refs: mro-shxw --- flext-api | 2 +- flext-auth | 2 +- flext-cli | 2 +- flext-core | 2 +- flext-db-oracle | 2 +- flext-dbt-ldap | 2 +- flext-dbt-ldif | 2 +- flext-dbt-oracle | 2 +- flext-dbt-oracle-wms | 2 +- flext-grpc | 2 +- flext-infra | 2 +- flext-ldap | 2 +- flext-ldif | 2 +- flext-meltano | 2 +- flext-observability | 2 +- flext-oracle-oic | 2 +- flext-oracle-wms | 2 +- flext-plugin | 2 +- flext-quality | 2 +- flext-tap-ldap | 2 +- flext-tap-ldif | 2 +- flext-tap-oracle | 2 +- flext-tap-oracle-oic | 2 +- flext-tap-oracle-wms | 2 +- flext-target-ldap | 2 +- flext-target-ldif | 2 +- flext-target-oracle | 2 +- flext-target-oracle-oic | 2 +- flext-target-oracle-wms | 2 +- flext-tests | 2 +- flext-web | 2 +- pyproject.toml | 2 -- 32 files changed, 31 insertions(+), 33 deletions(-) diff --git a/flext-api b/flext-api index db0a058e2..41958a369 160000 --- a/flext-api +++ b/flext-api @@ -1 +1 @@ -Subproject commit db0a058e297a81bd5b7b4f5ff3c868d80195f7eb +Subproject commit 41958a369d270864dc353346f0500a9dd4e7d63d diff --git a/flext-auth b/flext-auth index 4fa358c30..7f3cf254d 160000 --- a/flext-auth +++ b/flext-auth @@ -1 +1 @@ -Subproject commit 4fa358c302081effe78d305fb5a5642eec0a5e75 +Subproject commit 7f3cf254d745de6f64175c38ce8bb2b924d9fa6e diff --git a/flext-cli b/flext-cli index 829bb94eb..6454edce8 160000 --- a/flext-cli +++ b/flext-cli @@ -1 +1 @@ -Subproject commit 829bb94ebac02b025b5a7ae62397825f2fce12f1 +Subproject commit 6454edce892c01e65e9bbb8d1dff2751eac60ccd diff --git a/flext-core b/flext-core index a3508fe29..7dfed1fea 160000 --- a/flext-core +++ b/flext-core @@ -1 +1 @@ -Subproject commit a3508fe29019d6558f3a63b5162f5913d55e64a3 +Subproject commit 7dfed1fea6608272b081e14fb2e525c410eddb42 diff --git a/flext-db-oracle b/flext-db-oracle index 284ae0046..98625dc96 160000 --- a/flext-db-oracle +++ b/flext-db-oracle @@ -1 +1 @@ -Subproject commit 284ae00463132fe96baa38a841e1c24f57a14530 +Subproject commit 98625dc96266859c23d2115bc7886b7958bff356 diff --git a/flext-dbt-ldap b/flext-dbt-ldap index 828566f6c..10e50fbaa 160000 --- a/flext-dbt-ldap +++ b/flext-dbt-ldap @@ -1 +1 @@ -Subproject commit 828566f6c3bd63c482b48a48a3342b307c68aee6 +Subproject commit 10e50fbaabada68e00b6764acc5a57809992482d diff --git a/flext-dbt-ldif b/flext-dbt-ldif index 75536381d..e2e12c9a5 160000 --- a/flext-dbt-ldif +++ b/flext-dbt-ldif @@ -1 +1 @@ -Subproject commit 75536381d471c75da9fb7b5c7616b8e99789ed23 +Subproject commit e2e12c9a59b9a007e68106f624005484c383aa2b diff --git a/flext-dbt-oracle b/flext-dbt-oracle index 6d1675f2b..24f03e688 160000 --- a/flext-dbt-oracle +++ b/flext-dbt-oracle @@ -1 +1 @@ -Subproject commit 6d1675f2b0b29c22d8a791d5564b8b6f85bc44ef +Subproject commit 24f03e688fb5a6a61adbede1b69d31b1ecf64913 diff --git a/flext-dbt-oracle-wms b/flext-dbt-oracle-wms index 766d7be8a..0421a3cf6 160000 --- a/flext-dbt-oracle-wms +++ b/flext-dbt-oracle-wms @@ -1 +1 @@ -Subproject commit 766d7be8a1dc3d185c84e9f399f3142c5517108e +Subproject commit 0421a3cf677a9821ee8ab9c3077649dee2545f0f diff --git a/flext-grpc b/flext-grpc index 81cd41a40..ff2a14605 160000 --- a/flext-grpc +++ b/flext-grpc @@ -1 +1 @@ -Subproject commit 81cd41a4090a037d731a077023a586748850afc3 +Subproject commit ff2a14605cf403b4aacadca7ec75b72bd388b576 diff --git a/flext-infra b/flext-infra index c464288fe..5117f64c1 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit c464288fed284e9f63422536a20b260540e4e39e +Subproject commit 5117f64c159e5fc4903fc396c96bbc1d08ad2449 diff --git a/flext-ldap b/flext-ldap index 6282dc4cc..99d17bee5 160000 --- a/flext-ldap +++ b/flext-ldap @@ -1 +1 @@ -Subproject commit 6282dc4cc32573ff870c2c0cc935c48110c858b3 +Subproject commit 99d17bee5e18c0631fc1278d3de295a932131551 diff --git a/flext-ldif b/flext-ldif index bb2a136ff..4549b1ba7 160000 --- a/flext-ldif +++ b/flext-ldif @@ -1 +1 @@ -Subproject commit bb2a136ff3a7206e0de54bd0877750711b760447 +Subproject commit 4549b1ba7807fdb4a883b9be42cba788ed7b9912 diff --git a/flext-meltano b/flext-meltano index 55d8b4b86..f7f09549f 160000 --- a/flext-meltano +++ b/flext-meltano @@ -1 +1 @@ -Subproject commit 55d8b4b86763bf8bff7523141210fabcbbb6c72c +Subproject commit f7f09549f753448cd459acf87fc967c9877ecc28 diff --git a/flext-observability b/flext-observability index 59692c797..9351bad3a 160000 --- a/flext-observability +++ b/flext-observability @@ -1 +1 @@ -Subproject commit 59692c7979f97e756e44b78d909796d02eba288b +Subproject commit 9351bad3a9220aa749edb5935e6f9eefd162487e diff --git a/flext-oracle-oic b/flext-oracle-oic index be8d71593..d522d61c0 160000 --- a/flext-oracle-oic +++ b/flext-oracle-oic @@ -1 +1 @@ -Subproject commit be8d715937e6a062da5834704623a0e4f08fe3e4 +Subproject commit d522d61c0521d62a2f1cce37ff018f3a55be5e91 diff --git a/flext-oracle-wms b/flext-oracle-wms index 78d72d8ff..292528e8c 160000 --- a/flext-oracle-wms +++ b/flext-oracle-wms @@ -1 +1 @@ -Subproject commit 78d72d8ff1f874d3c3a7576874d55d86cb560f28 +Subproject commit 292528e8cffe949ffccd840e773d66dafe2ec3df diff --git a/flext-plugin b/flext-plugin index 9e9257cda..5a883ae98 160000 --- a/flext-plugin +++ b/flext-plugin @@ -1 +1 @@ -Subproject commit 9e9257cdacf9a85b47d2a9f99f853be783e76e7f +Subproject commit 5a883ae98e6ac7e3a387d94662399d89f2af8f39 diff --git a/flext-quality b/flext-quality index 60f1353c5..2a390dc21 160000 --- a/flext-quality +++ b/flext-quality @@ -1 +1 @@ -Subproject commit 60f1353c566a86a12722a59d228ba3034524117a +Subproject commit 2a390dc21147b3980b813181c2f330dee89020c7 diff --git a/flext-tap-ldap b/flext-tap-ldap index c684a4310..848ee4d46 160000 --- a/flext-tap-ldap +++ b/flext-tap-ldap @@ -1 +1 @@ -Subproject commit c684a4310e234fe9b6da30e9fe55d8d994962c75 +Subproject commit 848ee4d4635ad85cccf9c180898ab04ca73b2b15 diff --git a/flext-tap-ldif b/flext-tap-ldif index 5b6d11c09..dc784ea3a 160000 --- a/flext-tap-ldif +++ b/flext-tap-ldif @@ -1 +1 @@ -Subproject commit 5b6d11c09116cdfe3052144902abf4bd42bef306 +Subproject commit dc784ea3af2efe66232f77d53b72e55e978bc5ab diff --git a/flext-tap-oracle b/flext-tap-oracle index 72d3ca15e..32eef2e78 160000 --- a/flext-tap-oracle +++ b/flext-tap-oracle @@ -1 +1 @@ -Subproject commit 72d3ca15e9a1207c446da340bd7eb3d2816d53e8 +Subproject commit 32eef2e78772f8bf704b2f46b5d98ac3a35175ac diff --git a/flext-tap-oracle-oic b/flext-tap-oracle-oic index 9449db38f..a7cde1b7e 160000 --- a/flext-tap-oracle-oic +++ b/flext-tap-oracle-oic @@ -1 +1 @@ -Subproject commit 9449db38f2bd10221628303438ab4be2301f5fbf +Subproject commit a7cde1b7e0f8c530ba5f4dc4ec525ce2760a0a3b diff --git a/flext-tap-oracle-wms b/flext-tap-oracle-wms index 522e041b0..b0d2fd37f 160000 --- a/flext-tap-oracle-wms +++ b/flext-tap-oracle-wms @@ -1 +1 @@ -Subproject commit 522e041b09fd8d70f0325486bb97d8d85b3d932f +Subproject commit b0d2fd37f260006b8b2314341cba28e0978f5269 diff --git a/flext-target-ldap b/flext-target-ldap index 2195e7740..bc0e77815 160000 --- a/flext-target-ldap +++ b/flext-target-ldap @@ -1 +1 @@ -Subproject commit 2195e7740d2a710f9db03f1e25c02b1be532e0d6 +Subproject commit bc0e7781548748fc02a142dc10864fabf5b91986 diff --git a/flext-target-ldif b/flext-target-ldif index 4065deb04..3259a62be 160000 --- a/flext-target-ldif +++ b/flext-target-ldif @@ -1 +1 @@ -Subproject commit 4065deb0426aa3e55ceaecaf4f22171e7800a765 +Subproject commit 3259a62be7592a5b98abdeced651e8b5d82b13eb diff --git a/flext-target-oracle b/flext-target-oracle index cb3cfc5e2..a8c48bf9d 160000 --- a/flext-target-oracle +++ b/flext-target-oracle @@ -1 +1 @@ -Subproject commit cb3cfc5e2088bb0e795e53705c42cc5e031f8aca +Subproject commit a8c48bf9d3d5c4dd6dd8e2a56a331cc4afeb5ad8 diff --git a/flext-target-oracle-oic b/flext-target-oracle-oic index 36d50ebd3..0ea2f1463 160000 --- a/flext-target-oracle-oic +++ b/flext-target-oracle-oic @@ -1 +1 @@ -Subproject commit 36d50ebd3079a96bb656cbe71d29f3f44ee65c68 +Subproject commit 0ea2f146301d1483404f6f42a62430f56fb489ec diff --git a/flext-target-oracle-wms b/flext-target-oracle-wms index 60c60b096..f62d4556d 160000 --- a/flext-target-oracle-wms +++ b/flext-target-oracle-wms @@ -1 +1 @@ -Subproject commit 60c60b096c9518ef34c0e58475e2b6b1053993e8 +Subproject commit f62d4556dc6bd1807117ca3512a3bdff0b973780 diff --git a/flext-tests b/flext-tests index 3cfb18fd0..1b5d4d020 160000 --- a/flext-tests +++ b/flext-tests @@ -1 +1 @@ -Subproject commit 3cfb18fd0f06af28710a221a9b8fab1d9e43f417 +Subproject commit 1b5d4d02098170d7fe98d22db7f6c2eb88078758 diff --git a/flext-web b/flext-web index 667ae9cf4..8c5c5e34e 160000 --- a/flext-web +++ b/flext-web @@ -1 +1 @@ -Subproject commit 667ae9cf486578ce77b1a04776429bcf88776d46 +Subproject commit 8c5c5e34ed1eadfcf4e6a7e9775075cec9080933 diff --git a/pyproject.toml b/pyproject.toml index 9ee4aea0f..7977750fc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -229,7 +229,6 @@ disable_error_code = ["unreachable"] module = ["dcdoc._utilities._charts._matplotlib_renderer._renders_spec"] # [MANAGED] pydantic-mypy - [tool.pydantic-mypy] init_forbid_extra = true init_typed = true @@ -2043,7 +2042,6 @@ reportUnusedImport = "none" root = "flext-web/tests" # [MANAGED] pytest - [tool.pytest.ini_options] addopts = [ "--benchmark-disable", From bb7f50127174f9b7ae896f3a5b34d8fa6902f694 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 10:32:56 -0300 Subject: [PATCH 125/165] chore(workspace): advance gitlinks to the pushed ledger-marker and main merges flext-infra carries the generator fix that emits .beads/metadata.json. flext-ldap and flext-ldif carry their --no-ff merges of main. All three commits are published on origin/0.12.0-dev. --- flext-infra | 2 +- flext-ldap | 2 +- flext-ldif | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/flext-infra b/flext-infra index 5117f64c1..914afae96 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 5117f64c159e5fc4903fc396c96bbc1d08ad2449 +Subproject commit 914afae9690c53252ee002a082e448bccd0145c6 diff --git a/flext-ldap b/flext-ldap index 99d17bee5..aa7b1ea61 160000 --- a/flext-ldap +++ b/flext-ldap @@ -1 +1 @@ -Subproject commit 99d17bee5e18c0631fc1278d3de295a932131551 +Subproject commit aa7b1ea616af0e32e492e8df08943a76c433ddc7 diff --git a/flext-ldif b/flext-ldif index 4549b1ba7..456f17c8e 160000 --- a/flext-ldif +++ b/flext-ldif @@ -1 +1 @@ -Subproject commit 4549b1ba7807fdb4a883b9be42cba788ed7b9912 +Subproject commit 456f17c8e6b8796d3929a4d31ae029f1e26cda67 From 976423b1342665cb006081ed970540df11cdec9c Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 11:40:41 -0300 Subject: [PATCH 126/165] fixes --- .beads/config.yaml | 6 ++-- .beads/metadata.json | 6 ++++ AGENTS.md | 2 +- Makefile | 31 +++++++++++++++++-- custom.mk | 4 +-- .../settings-config-canonical-pattern.md | 2 +- flext-api | 2 +- flext-auth | 2 +- flext-cli | 2 +- flext-core | 2 +- flext-db-oracle | 2 +- flext-dbt-ldap | 2 +- flext-dbt-ldif | 2 +- flext-dbt-oracle | 2 +- flext-dbt-oracle-wms | 2 +- flext-grpc | 2 +- flext-infra | 2 +- flext-ldap | 2 +- flext-ldif | 2 +- flext-meltano | 2 +- flext-observability | 2 +- flext-oracle-oic | 2 +- flext-oracle-wms | 2 +- flext-plugin | 2 +- flext-quality | 2 +- flext-tap-ldap | 2 +- flext-tap-ldif | 2 +- flext-tap-oracle | 2 +- flext-tap-oracle-oic | 2 +- flext-tap-oracle-wms | 2 +- flext-target-ldap | 2 +- flext-target-ldif | 2 +- flext-target-oracle | 2 +- flext-target-oracle-oic | 2 +- flext-target-oracle-wms | 2 +- flext-tests | 2 +- flext-web | 2 +- pyproject.toml | 2 ++ scripts/cmd/boot/all.py | 2 +- scripts/cmd/check/all.py | 2 +- scripts/cmd/clean/all.py | 2 +- scripts/cmd/coordination/all.py | 2 +- scripts/cmd/makefile/all.py | 2 +- scripts/cmd/ship/all.py | 2 +- scripts/cmd/status/all.py | 2 +- scripts/cmd/test/all.py | 2 +- scripts/cmd/val/all.py | 2 +- scripts/tests/test_registry_contract.py | 2 +- 48 files changed, 84 insertions(+), 51 deletions(-) create mode 100644 .beads/metadata.json diff --git a/.beads/config.yaml b/.beads/config.yaml index 35d26611d..9241b974e 100644 --- a/.beads/config.yaml +++ b/.beads/config.yaml @@ -9,15 +9,15 @@ # toolchain.beads.server (machine-wide shared Dolt server facts). # Owned ledger config: the workspace root owns this tracker; conform # initializes and verifies it against the pinned binary. -issue-prefix: "mro" +issue-prefix: "flext" # Dolt shared-server connection (machine-wide shared server on :3308). -# The `mro` database lives there; a repository-local server is never used. +# The `flext` database lives there; a repository-local server is never used. dolt: mode: server shared-server: true host: 127.0.0.1 port: 3308 user: root - database: mro + database: flext auto-commit: "on" diff --git a/.beads/metadata.json b/.beads/metadata.json new file mode 100644 index 000000000..82898c096 --- /dev/null +++ b/.beads/metadata.json @@ -0,0 +1,6 @@ +{ + "database": "dolt", + "backend": "dolt", + "dolt_mode": "server", + "dolt_database": "flext" +} diff --git a/AGENTS.md b/AGENTS.md index d8c1144cf..c5d6b7433 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -426,7 +426,7 @@ make check CHECK_GATES=lint,format,pyrefly,mypy,pyright # Tests / validation (advisory in CI) make test -make check WHAT=all +make check # Scope a single submodule with PROJECT= make check PROJECT=flext-core diff --git a/Makefile b/Makefile index d4f6a12a3..5924de387 100644 --- a/Makefile +++ b/Makefile @@ -529,6 +529,8 @@ _builtin_help_usage: # written to: setup is invoked automatically by every verb, so a checkout, # pull, reset or submodule update there would run unattended against # uncommitted work. Divergence is reported with the exact command to run. +# Fetch is conditional: when cached origin refs already satisfy the local +# merge-base checks, setup skips network I/O so idempotent runs stay cheap. # Free: no # End SECTION: submodule setup _builtin_setup_submodules: @@ -606,10 +608,33 @@ _builtin_setup_submodules: }; \ git -C "$$child_root" branch --quiet --set-upstream-to "origin/$$branch" "$$branch" >/dev/null 2>&1 || :; \ fi; \ - git -C "$$child_root" fetch --quiet origin "$$branch" || { \ - printf 'ERROR: %s: fetch origin %s failed\n' "$$child_path" "$$branch" >&2; \ + remote_ref="refs/remotes/origin/$$branch"; \ + current=$$(git -C "$$child_root" branch --show-current); \ + head=$$(git -C "$$child_root" rev-parse HEAD); \ + if [ -n "$$current" ] && [ "$$current" != "$$branch" ]; then \ + printf 'ERROR: %s: conflicting branch %s; expected %s\n' "$$child_path" "$$current" "$$branch" >&2; \ exit 1; \ - }; \ + fi; \ + need_fetch=1; \ + if git -C "$$child_root" rev-parse --verify "$$remote_ref" >/dev/null 2>&1; then \ + cached_ok=1; \ + if [ -z "$$current" ]; then \ + if ! git -C "$$child_root" merge-base --is-ancestor "$$head" "$$remote_ref"; then \ + cached_ok=0; \ + fi; \ + fi; \ + if [ "$$cached_ok" -eq 1 ] && \ + git -C "$$child_root" merge-base --is-ancestor "$$gitlink" "$$remote_ref" && \ + git -C "$$child_root" merge-base --is-ancestor "$$gitlink" HEAD; then \ + need_fetch=0; \ + fi; \ + fi; \ + if [ "$$need_fetch" -eq 1 ]; then \ + git -C "$$child_root" fetch --quiet origin "$$branch" || { \ + printf 'ERROR: %s: fetch origin %s failed\n' "$$child_path" "$$branch" >&2; \ + exit 1; \ + }; \ + fi; \ current=$$(git -C "$$child_root" branch --show-current); \ head=$$(git -C "$$child_root" rev-parse HEAD); \ if [ -n "$$current" ] && [ "$$current" != "$$branch" ]; then \ diff --git a/custom.mk b/custom.mk index ac469f98d..4677d16b6 100644 --- a/custom.mk +++ b/custom.mk @@ -51,11 +51,11 @@ full-check: ## Run canonical full check path with explicit timeout $(Q)timeout_s=$${FULL_CHECK_TIMEOUT:-1200}; \ if ! command -v timeout >/dev/null 2>&1; then \ echo "WARN: timeout utility unavailable; running without timeout"; \ - $(MAKE) --no-print-directory check WHAT=all $(MAKE_SELECTION_ARGS); \ + $(MAKE) --no-print-directory check $(MAKE_SELECTION_ARGS); \ code=$$?; \ exit $$code; \ else \ - timeout "$$timeout_s"s $(MAKE) --no-print-directory check WHAT=all $(MAKE_SELECTION_ARGS); \ + timeout "$$timeout_s"s $(MAKE) --no-print-directory check $(MAKE_SELECTION_ARGS); \ code=$$?; \ if [ "$$code" -eq 124 ]; then \ echo "ERRO: full-check atingiu o timeout de $$timeout_s s"; \ diff --git a/docs/architecture/settings-config-canonical-pattern.md b/docs/architecture/settings-config-canonical-pattern.md index 49e14ccf5..4e22e47bd 100644 --- a/docs/architecture/settings-config-canonical-pattern.md +++ b/docs/architecture/settings-config-canonical-pattern.md @@ -153,4 +153,4 @@ the generated `**init**.py`; run `make build WHAT=artifacts` after adding the mo 3. Create `config/` dir with `*.yaml` if the project ships declarative params. 4. Delete every forbidden symbol (§6); rewrite `self.settings.*` → `settings.*`. 5. `make build WHAT=artifacts` to publish `config`/`settings` at the package root. -6. `make check WHAT=all` and `make test WHAT=all` green; commit. +6. `make check` and `make test` green; commit. diff --git a/flext-api b/flext-api index 41958a369..44406e50d 160000 --- a/flext-api +++ b/flext-api @@ -1 +1 @@ -Subproject commit 41958a369d270864dc353346f0500a9dd4e7d63d +Subproject commit 44406e50d7c43db108cc658b12e08f19ef69f563 diff --git a/flext-auth b/flext-auth index 7f3cf254d..1f67b39de 160000 --- a/flext-auth +++ b/flext-auth @@ -1 +1 @@ -Subproject commit 7f3cf254d745de6f64175c38ce8bb2b924d9fa6e +Subproject commit 1f67b39de97559bd9bf881ebfc91316ffca3a3ff diff --git a/flext-cli b/flext-cli index 6454edce8..6838d5ede 160000 --- a/flext-cli +++ b/flext-cli @@ -1 +1 @@ -Subproject commit 6454edce892c01e65e9bbb8d1dff2751eac60ccd +Subproject commit 6838d5ede445a09fbe3683ddb7b1329956227143 diff --git a/flext-core b/flext-core index 7dfed1fea..4e9b54ebe 160000 --- a/flext-core +++ b/flext-core @@ -1 +1 @@ -Subproject commit 7dfed1fea6608272b081e14fb2e525c410eddb42 +Subproject commit 4e9b54ebed545a4a3b909cb601b43311ec537ef8 diff --git a/flext-db-oracle b/flext-db-oracle index 98625dc96..0a9d7b1f4 160000 --- a/flext-db-oracle +++ b/flext-db-oracle @@ -1 +1 @@ -Subproject commit 98625dc96266859c23d2115bc7886b7958bff356 +Subproject commit 0a9d7b1f4303c74ccd8f4fe95fe6096b01b04790 diff --git a/flext-dbt-ldap b/flext-dbt-ldap index 10e50fbaa..f1083bbd5 160000 --- a/flext-dbt-ldap +++ b/flext-dbt-ldap @@ -1 +1 @@ -Subproject commit 10e50fbaabada68e00b6764acc5a57809992482d +Subproject commit f1083bbd57fdeb683e9d4ff74168bfc455a650f4 diff --git a/flext-dbt-ldif b/flext-dbt-ldif index e2e12c9a5..e38a0c8df 160000 --- a/flext-dbt-ldif +++ b/flext-dbt-ldif @@ -1 +1 @@ -Subproject commit e2e12c9a59b9a007e68106f624005484c383aa2b +Subproject commit e38a0c8df96c611e4f9b18dbe79863743c20cc6b diff --git a/flext-dbt-oracle b/flext-dbt-oracle index 24f03e688..9488f5bb6 160000 --- a/flext-dbt-oracle +++ b/flext-dbt-oracle @@ -1 +1 @@ -Subproject commit 24f03e688fb5a6a61adbede1b69d31b1ecf64913 +Subproject commit 9488f5bb6362724009331d1c3598a4fe7c7cc603 diff --git a/flext-dbt-oracle-wms b/flext-dbt-oracle-wms index 0421a3cf6..aa12f7934 160000 --- a/flext-dbt-oracle-wms +++ b/flext-dbt-oracle-wms @@ -1 +1 @@ -Subproject commit 0421a3cf677a9821ee8ab9c3077649dee2545f0f +Subproject commit aa12f7934036ff99e9ed4937fe5f518517d8c47d diff --git a/flext-grpc b/flext-grpc index ff2a14605..458937a82 160000 --- a/flext-grpc +++ b/flext-grpc @@ -1 +1 @@ -Subproject commit ff2a14605cf403b4aacadca7ec75b72bd388b576 +Subproject commit 458937a826abf6bddc11a66b118896856e016361 diff --git a/flext-infra b/flext-infra index 914afae96..e0902d845 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 914afae9690c53252ee002a082e448bccd0145c6 +Subproject commit e0902d8452a190c8ac8bb380367682222c00bf68 diff --git a/flext-ldap b/flext-ldap index aa7b1ea61..f0ecba465 160000 --- a/flext-ldap +++ b/flext-ldap @@ -1 +1 @@ -Subproject commit aa7b1ea616af0e32e492e8df08943a76c433ddc7 +Subproject commit f0ecba4653c02b3c3f52c698d1c483b00e0d84b0 diff --git a/flext-ldif b/flext-ldif index 456f17c8e..8cd6e62fb 160000 --- a/flext-ldif +++ b/flext-ldif @@ -1 +1 @@ -Subproject commit 456f17c8e6b8796d3929a4d31ae029f1e26cda67 +Subproject commit 8cd6e62fbdec9733df49856e22ab3e3ace76c5fc diff --git a/flext-meltano b/flext-meltano index f7f09549f..d64ba027d 160000 --- a/flext-meltano +++ b/flext-meltano @@ -1 +1 @@ -Subproject commit f7f09549f753448cd459acf87fc967c9877ecc28 +Subproject commit d64ba027ddf2c2526f142af314d3389c0e400a10 diff --git a/flext-observability b/flext-observability index 9351bad3a..6287cd676 160000 --- a/flext-observability +++ b/flext-observability @@ -1 +1 @@ -Subproject commit 9351bad3a9220aa749edb5935e6f9eefd162487e +Subproject commit 6287cd676bdfe3e4b4ea67f93cf1906c8cdfe908 diff --git a/flext-oracle-oic b/flext-oracle-oic index d522d61c0..2d466da92 160000 --- a/flext-oracle-oic +++ b/flext-oracle-oic @@ -1 +1 @@ -Subproject commit d522d61c0521d62a2f1cce37ff018f3a55be5e91 +Subproject commit 2d466da92504c29e3a9945963496b008919aa083 diff --git a/flext-oracle-wms b/flext-oracle-wms index 292528e8c..75832fd45 160000 --- a/flext-oracle-wms +++ b/flext-oracle-wms @@ -1 +1 @@ -Subproject commit 292528e8cffe949ffccd840e773d66dafe2ec3df +Subproject commit 75832fd453a370396470d066bd29b9a73a9dba9a diff --git a/flext-plugin b/flext-plugin index 5a883ae98..e2320e1b2 160000 --- a/flext-plugin +++ b/flext-plugin @@ -1 +1 @@ -Subproject commit 5a883ae98e6ac7e3a387d94662399d89f2af8f39 +Subproject commit e2320e1b26062f656126c7479828e7cc6ad9101f diff --git a/flext-quality b/flext-quality index 2a390dc21..37f67c7b5 160000 --- a/flext-quality +++ b/flext-quality @@ -1 +1 @@ -Subproject commit 2a390dc21147b3980b813181c2f330dee89020c7 +Subproject commit 37f67c7b5d26de5c4083a7f319dcae07b5feb74d diff --git a/flext-tap-ldap b/flext-tap-ldap index 848ee4d46..b472f9a40 160000 --- a/flext-tap-ldap +++ b/flext-tap-ldap @@ -1 +1 @@ -Subproject commit 848ee4d4635ad85cccf9c180898ab04ca73b2b15 +Subproject commit b472f9a40e8bed434964d1b3e5780e7c7837fef8 diff --git a/flext-tap-ldif b/flext-tap-ldif index dc784ea3a..539985973 160000 --- a/flext-tap-ldif +++ b/flext-tap-ldif @@ -1 +1 @@ -Subproject commit dc784ea3af2efe66232f77d53b72e55e978bc5ab +Subproject commit 539985973d474705a262d01832484ac66f855788 diff --git a/flext-tap-oracle b/flext-tap-oracle index 32eef2e78..1f4ff315d 160000 --- a/flext-tap-oracle +++ b/flext-tap-oracle @@ -1 +1 @@ -Subproject commit 32eef2e78772f8bf704b2f46b5d98ac3a35175ac +Subproject commit 1f4ff315dfef049bd540638b3ee0f07eb6f9c66c diff --git a/flext-tap-oracle-oic b/flext-tap-oracle-oic index a7cde1b7e..c10c293b1 160000 --- a/flext-tap-oracle-oic +++ b/flext-tap-oracle-oic @@ -1 +1 @@ -Subproject commit a7cde1b7e0f8c530ba5f4dc4ec525ce2760a0a3b +Subproject commit c10c293b18d96258055f4e7107eda00f8b4ae45e diff --git a/flext-tap-oracle-wms b/flext-tap-oracle-wms index b0d2fd37f..d681e9dab 160000 --- a/flext-tap-oracle-wms +++ b/flext-tap-oracle-wms @@ -1 +1 @@ -Subproject commit b0d2fd37f260006b8b2314341cba28e0978f5269 +Subproject commit d681e9dabf288151a1527b3c0876bd1483ad82dd diff --git a/flext-target-ldap b/flext-target-ldap index bc0e77815..7fba576ee 160000 --- a/flext-target-ldap +++ b/flext-target-ldap @@ -1 +1 @@ -Subproject commit bc0e7781548748fc02a142dc10864fabf5b91986 +Subproject commit 7fba576ee450a05558462b0fa37df32f5fcb9865 diff --git a/flext-target-ldif b/flext-target-ldif index 3259a62be..4a8f3db8b 160000 --- a/flext-target-ldif +++ b/flext-target-ldif @@ -1 +1 @@ -Subproject commit 3259a62be7592a5b98abdeced651e8b5d82b13eb +Subproject commit 4a8f3db8b6e0c786c0b71fc4ee8da969160c6bab diff --git a/flext-target-oracle b/flext-target-oracle index a8c48bf9d..119ede9f9 160000 --- a/flext-target-oracle +++ b/flext-target-oracle @@ -1 +1 @@ -Subproject commit a8c48bf9d3d5c4dd6dd8e2a56a331cc4afeb5ad8 +Subproject commit 119ede9f95a5955043b3bed14dfcb71ebe720bb8 diff --git a/flext-target-oracle-oic b/flext-target-oracle-oic index 0ea2f1463..fd4733226 160000 --- a/flext-target-oracle-oic +++ b/flext-target-oracle-oic @@ -1 +1 @@ -Subproject commit 0ea2f146301d1483404f6f42a62430f56fb489ec +Subproject commit fd4733226c81641f4469af5acc2344017df9d7c3 diff --git a/flext-target-oracle-wms b/flext-target-oracle-wms index f62d4556d..b6856aeab 160000 --- a/flext-target-oracle-wms +++ b/flext-target-oracle-wms @@ -1 +1 @@ -Subproject commit f62d4556dc6bd1807117ca3512a3bdff0b973780 +Subproject commit b6856aeabe7807e93837bb100770c26812313234 diff --git a/flext-tests b/flext-tests index 1b5d4d020..0efd7bfbd 160000 --- a/flext-tests +++ b/flext-tests @@ -1 +1 @@ -Subproject commit 1b5d4d02098170d7fe98d22db7f6c2eb88078758 +Subproject commit 0efd7bfbdf9169377c8ed837d06283051ca2b8da diff --git a/flext-web b/flext-web index 8c5c5e34e..a46045186 160000 --- a/flext-web +++ b/flext-web @@ -1 +1 @@ -Subproject commit 8c5c5e34ed1eadfcf4e6a7e9775075cec9080933 +Subproject commit a46045186173a4224dd5b666ef6389d1c8f5fe22 diff --git a/pyproject.toml b/pyproject.toml index 7977750fc..9ee4aea0f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -229,6 +229,7 @@ disable_error_code = ["unreachable"] module = ["dcdoc._utilities._charts._matplotlib_renderer._renders_spec"] # [MANAGED] pydantic-mypy + [tool.pydantic-mypy] init_forbid_extra = true init_typed = true @@ -2042,6 +2043,7 @@ reportUnusedImport = "none" root = "flext-web/tests" # [MANAGED] pytest + [tool.pytest.ini_options] addopts = [ "--benchmark-disable", diff --git a/scripts/cmd/boot/all.py b/scripts/cmd/boot/all.py index e3d6ac1d0..8b9475441 100644 --- a/scripts/cmd/boot/all.py +++ b/scripts/cmd/boot/all.py @@ -5,7 +5,7 @@ # domain = "workspace" # summary = "Bootstrap workspace .venv + submodules" # description = "Installs all projects into workspace .venv and initializes submodules." -# example = "make boot WHAT=all" +# example = "make boot" # target = "_boot_default" # mutates = true # aliases = [] diff --git a/scripts/cmd/check/all.py b/scripts/cmd/check/all.py index 683c00d85..3e5d1e1b8 100644 --- a/scripts/cmd/check/all.py +++ b/scripts/cmd/check/all.py @@ -5,7 +5,7 @@ # domain = "quality" # summary = "Run quick default checks" # description = "Runs lint and pyrefly gates using the lightweight default profile." -# example = "make check WHAT=all" +# example = "make check" # mutates = false # aliases = ["lint"] # params = [ diff --git a/scripts/cmd/clean/all.py b/scripts/cmd/clean/all.py index be8835bfe..c11936877 100644 --- a/scripts/cmd/clean/all.py +++ b/scripts/cmd/clean/all.py @@ -5,7 +5,7 @@ # domain = "workspace" # summary = "Clean build/test/type artifacts" # description = "Runs the canonical _clean_default target to remove caches and orchestrated clean artifacts." -# example = "make clean WHAT=all" +# example = "make clean" # target = "_clean_default" # mutates = true # aliases = [] diff --git a/scripts/cmd/coordination/all.py b/scripts/cmd/coordination/all.py index a2c138d0a..a3edad059 100644 --- a/scripts/cmd/coordination/all.py +++ b/scripts/cmd/coordination/all.py @@ -5,7 +5,7 @@ # domain = "governance" # summary = "Run Beads coordination diagnostics" # description = "Runs governance and bead-coordination reporting commands." -# example = "make coordination WHAT=all" +# example = "make coordination" # target = "_coordination" # mutates = false # aliases = [] diff --git a/scripts/cmd/makefile/all.py b/scripts/cmd/makefile/all.py index 24d638f8e..905ff237f 100644 --- a/scripts/cmd/makefile/all.py +++ b/scripts/cmd/makefile/all.py @@ -5,7 +5,7 @@ # domain = "meta" # summary = "Show command surface from scripts/cmd" # description = "Displays all promoted verbs and WHAT options." -# example = "make makefile WHAT=all" +# example = "make makefile" # mutates = false # aliases = [] # params = [] diff --git a/scripts/cmd/ship/all.py b/scripts/cmd/ship/all.py index 32aa162cf..53e886909 100644 --- a/scripts/cmd/ship/all.py +++ b/scripts/cmd/ship/all.py @@ -5,7 +5,7 @@ # domain = "release" # summary = "Interactive workspace release orchestration" # description = "Runs the canonical _rel target (release workflow)." -# example = "make ship WHAT=all APPLY=Y" +# example = "make ship APPLY=Y" # target = "_rel" # mutates = true # aliases = ["rel"] diff --git a/scripts/cmd/status/all.py b/scripts/cmd/status/all.py index 91f18fc43..4437bb329 100644 --- a/scripts/cmd/status/all.py +++ b/scripts/cmd/status/all.py @@ -5,7 +5,7 @@ # domain = "governance" # summary = "Show Beads status" # description = "Shows bead runtime status and health checks." -# example = "make status WHAT=all" +# example = "make status" # target = "_status" # mutates = false # aliases = [] diff --git a/scripts/cmd/test/all.py b/scripts/cmd/test/all.py index 40d14f3d6..7c698da92 100644 --- a/scripts/cmd/test/all.py +++ b/scripts/cmd/test/all.py @@ -5,7 +5,7 @@ # domain = "quality" # summary = "Run tests in selected projects" # description = "Runs the canonical _test_default target via orchestrator." -# example = "make test WHAT=all PROJECT=flext-infra MATCH=test_foo" +# example = "make test PROJECT=flext-infra MATCH=test_foo" # target = "_test_default" # mutates = false # aliases = [] diff --git a/scripts/cmd/val/all.py b/scripts/cmd/val/all.py index 4dd065894..8a026154a 100644 --- a/scripts/cmd/val/all.py +++ b/scripts/cmd/val/all.py @@ -5,7 +5,7 @@ # domain = "governance" # summary = "Run validation gates using current VALIDATE_SCOPE" # description = "Runs workspace and/or project validation depending on VALIDATE_SCOPE." -# example = "make val WHAT=all" +# example = "make val" # mutates = false # aliases = ["validate"] # params = [ diff --git a/scripts/tests/test_registry_contract.py b/scripts/tests/test_registry_contract.py index 979c8c2e1..0fd59af15 100644 --- a/scripts/tests/test_registry_contract.py +++ b/scripts/tests/test_registry_contract.py @@ -245,7 +245,7 @@ def test_clean_without_apply_stays_dry_run(capsys: pytest.CaptureFixture[str]) - output = capsys.readouterr().out assert "DRY-RUN: nenhuma mutacao executada." in output - assert "make clean WHAT=all" in output + assert "make clean" in output finally: _restore_env(original) From 8c9c4e9b79e970f44f7c7782a6cf3ad169297c47 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 12:18:09 -0300 Subject: [PATCH 127/165] feat(workspace): integration overlay and follow-superproject member gitlinks Point managed .gitmodules at branch=. so setup/worktrees follow the workspace branch, declare integration in config/workspace.yaml, and advance member gitlinks after the flext-infra setup overlay cutover. Co-authored-by: Cursor --- .gitmodules | 62 ++++++++++++++++++++--------------------- Makefile | 45 ++++++++++++++++-------------- config/workspace.yaml | 5 ++++ custom.mk | 4 ++- flext-api | 2 +- flext-auth | 2 +- flext-cli | 2 +- flext-core | 2 +- flext-db-oracle | 2 +- flext-dbt-ldap | 2 +- flext-dbt-ldif | 2 +- flext-dbt-oracle | 2 +- flext-dbt-oracle-wms | 2 +- flext-grpc | 2 +- flext-infra | 2 +- flext-ldap | 2 +- flext-ldif | 2 +- flext-meltano | 2 +- flext-observability | 2 +- flext-oracle-oic | 2 +- flext-oracle-wms | 2 +- flext-plugin | 2 +- flext-quality | 2 +- flext-tap-ldap | 2 +- flext-tap-ldif | 2 +- flext-tap-oracle | 2 +- flext-tap-oracle-oic | 2 +- flext-tap-oracle-wms | 2 +- flext-target-ldap | 2 +- flext-target-ldif | 2 +- flext-target-oracle | 2 +- flext-target-oracle-oic | 2 +- flext-target-oracle-wms | 2 +- flext-tests | 2 +- flext-web | 2 +- pyproject.toml | 2 -- 36 files changed, 94 insertions(+), 86 deletions(-) diff --git a/.gitmodules b/.gitmodules index ce9feb5c7..9d7739065 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,154 +1,154 @@ [submodule "flext-api"] path = flext-api url = https://github.com/flext-sh/flext-api.git - branch = 0.12.0-dev + branch = . [submodule "flext-auth"] path = flext-auth url = https://github.com/flext-sh/flext-auth.git - branch = 0.12.0-dev + branch = . [submodule "flext-cli"] path = flext-cli url = https://github.com/flext-sh/flext-cli.git - branch = 0.12.0-dev + branch = . [submodule "flext-core"] path = flext-core url = https://github.com/flext-sh/flext-core.git - branch = 0.12.0-dev + branch = . [submodule "flext-db-oracle"] path = flext-db-oracle url = https://github.com/flext-sh/flext-db-oracle.git - branch = 0.12.0-dev + branch = . [submodule "flext-dbt-ldap"] path = flext-dbt-ldap url = https://github.com/flext-sh/flext-dbt-ldap.git - branch = 0.12.0-dev + branch = . [submodule "flext-dbt-ldif"] path = flext-dbt-ldif url = https://github.com/flext-sh/flext-dbt-ldif.git - branch = 0.12.0-dev + branch = . [submodule "flext-dbt-oracle"] path = flext-dbt-oracle url = https://github.com/flext-sh/flext-dbt-oracle.git - branch = 0.12.0-dev + branch = . [submodule "flext-dbt-oracle-wms"] path = flext-dbt-oracle-wms url = https://github.com/flext-sh/flext-dbt-oracle-wms.git - branch = 0.12.0-dev + branch = . [submodule "flext-grpc"] path = flext-grpc url = https://github.com/flext-sh/flext-grpc.git - branch = 0.12.0-dev + branch = . [submodule "flext-infra"] path = flext-infra url = https://github.com/flext-sh/flext-infra.git - branch = 0.12.0-dev + branch = . [submodule "flext-ldap"] path = flext-ldap url = https://github.com/flext-sh/flext-ldap.git - branch = 0.12.0-dev + branch = . [submodule "flext-ldif"] path = flext-ldif url = https://github.com/flext-sh/flext-ldif.git - branch = 0.12.0-dev + branch = . [submodule "flext-meltano"] path = flext-meltano url = https://github.com/flext-sh/flext-meltano.git - branch = 0.12.0-dev + branch = . [submodule "flext-observability"] path = flext-observability url = https://github.com/flext-sh/flext-observability.git - branch = 0.12.0-dev + branch = . [submodule "flext-oracle-oic"] path = flext-oracle-oic url = https://github.com/flext-sh/flext-oracle-oic.git - branch = 0.12.0-dev + branch = . [submodule "flext-oracle-wms"] path = flext-oracle-wms url = https://github.com/flext-sh/flext-oracle-wms.git - branch = 0.12.0-dev + branch = . [submodule "flext-plugin"] path = flext-plugin url = https://github.com/flext-sh/flext-plugin.git - branch = 0.12.0-dev + branch = . [submodule "flext-quality"] path = flext-quality url = https://github.com/flext-sh/flext-quality.git - branch = 0.12.0-dev + branch = . [submodule "flext-tap-ldap"] path = flext-tap-ldap url = https://github.com/flext-sh/flext-tap-ldap.git - branch = 0.12.0-dev + branch = . [submodule "flext-tap-ldif"] path = flext-tap-ldif url = https://github.com/flext-sh/flext-tap-ldif.git - branch = 0.12.0-dev + branch = . [submodule "flext-tap-oracle"] path = flext-tap-oracle url = https://github.com/flext-sh/flext-tap-oracle.git - branch = 0.12.0-dev + branch = . [submodule "flext-tap-oracle-oic"] path = flext-tap-oracle-oic url = https://github.com/flext-sh/flext-tap-oracle-oic.git - branch = 0.12.0-dev + branch = . [submodule "flext-tap-oracle-wms"] path = flext-tap-oracle-wms url = https://github.com/flext-sh/flext-tap-oracle-wms.git - branch = 0.12.0-dev + branch = . [submodule "flext-target-ldap"] path = flext-target-ldap url = https://github.com/flext-sh/flext-target-ldap.git - branch = 0.12.0-dev + branch = . [submodule "flext-target-ldif"] path = flext-target-ldif url = https://github.com/flext-sh/flext-target-ldif.git - branch = 0.12.0-dev + branch = . [submodule "flext-target-oracle"] path = flext-target-oracle url = https://github.com/flext-sh/flext-target-oracle.git - branch = 0.12.0-dev + branch = . [submodule "flext-target-oracle-oic"] path = flext-target-oracle-oic url = https://github.com/flext-sh/flext-target-oracle-oic.git - branch = 0.12.0-dev + branch = . [submodule "flext-target-oracle-wms"] path = flext-target-oracle-wms url = https://github.com/flext-sh/flext-target-oracle-wms.git - branch = 0.12.0-dev + branch = . [submodule "flext-tests"] path = flext-tests url = https://github.com/flext-sh/flext-tests.git - branch = 0.12.0-dev + branch = . [submodule "flext-web"] path = flext-web url = https://github.com/flext-sh/flext-web.git - branch = 0.12.0-dev + branch = . diff --git a/Makefile b/Makefile index 5924de387..52da235a6 100644 --- a/Makefile +++ b/Makefile @@ -524,13 +524,11 @@ _builtin_help_usage: # Computed: workspace-root uses WORKSPACE_MEMBERS from config; standalone discovers # submodules with flext-managed=true from .gitmodules at runtime. # Rule: setup PROVISIONS an absent governed gitlink and VERIFIES a present one. -# An absent checkout holds no work, so setup clones it and places it on the -# declared branch at the recorded gitlink. A present checkout is never -# written to: setup is invoked automatically by every verb, so a checkout, -# pull, reset or submodule update there would run unattended against -# uncommitted work. Divergence is reported with the exact command to run. -# Fetch is conditional: when cached origin refs already satisfy the local -# merge-base checks, setup skips network I/O so idempotent runs stay cheap. +# An absent checkout holds no work, so setup initializes it at the recorded +# gitlink. A present checkout is never destroyed: git checkout and git reset +# are forbidden. Detached HEAD is attached via branch + symbolic-ref so dirty +# work is carried. branch = . follows the superproject named branch (worktree +# propagation). Fetch is conditional when cached origin refs already validate. # Free: no # End SECTION: submodule setup _builtin_setup_submodules: @@ -556,6 +554,19 @@ _builtin_setup_submodules: fi; \ managed=$$(printf '%s' "$$managed" | tr ' ' '\n' | sort -u | tr '\n' ' '); \ if [ -z "$$managed" ]; then exit 0; fi; \ + attach_branch_at_head() { \ + child_root="$$1"; \ + branch="$$2"; \ + git -C "$$child_root" branch --quiet -f "$$branch" HEAD || { \ + printf 'ERROR: %s: could not create branch %s at HEAD\n' "$$child_root" "$$branch" >&2; \ + exit 1; \ + }; \ + git -C "$$child_root" symbolic-ref HEAD "refs/heads/$$branch" || { \ + printf 'ERROR: %s: could not attach HEAD to %s without moving the tree\n' "$$child_root" "$$branch" >&2; \ + exit 1; \ + }; \ + git -C "$$child_root" branch --quiet --set-upstream-to "origin/$$branch" "$$branch" >/dev/null 2>&1 || :; \ + }; \ validate_submodule() { \ superproject="$$1"; \ child_path="$$2"; \ @@ -602,17 +613,13 @@ _builtin_setup_submodules: printf 'ERROR: %s: could not initialize the governed gitlink\n' "$$child_path" >&2; \ exit 1; \ }; \ - git -C "$$child_root" checkout --quiet -B "$$branch" "$$gitlink" || { \ - printf 'ERROR: %s: could not place the new checkout on %s at %s\n' "$$child_path" "$$branch" "$$gitlink" >&2; \ - exit 1; \ - }; \ - git -C "$$child_root" branch --quiet --set-upstream-to "origin/$$branch" "$$branch" >/dev/null 2>&1 || :; \ + attach_branch_at_head "$$child_root" "$$branch"; \ fi; \ remote_ref="refs/remotes/origin/$$branch"; \ current=$$(git -C "$$child_root" branch --show-current); \ head=$$(git -C "$$child_root" rev-parse HEAD); \ if [ -n "$$current" ] && [ "$$current" != "$$branch" ]; then \ - printf 'ERROR: %s: conflicting branch %s; expected %s\n' "$$child_path" "$$current" "$$branch" >&2; \ + printf 'ERROR: %s: conflicting branch %s; expected %s (setup never runs checkout/reset; switch it yourself while keeping dirty)\n' "$$child_path" "$$current" "$$branch" >&2; \ exit 1; \ fi; \ need_fetch=1; \ @@ -638,22 +645,18 @@ _builtin_setup_submodules: current=$$(git -C "$$child_root" branch --show-current); \ head=$$(git -C "$$child_root" rev-parse HEAD); \ if [ -n "$$current" ] && [ "$$current" != "$$branch" ]; then \ - printf 'ERROR: %s: conflicting branch %s; expected %s\n' "$$child_path" "$$current" "$$branch" >&2; \ + printf 'ERROR: %s: conflicting branch %s; expected %s (setup never runs checkout/reset; switch it yourself while keeping dirty)\n' "$$child_path" "$$current" "$$branch" >&2; \ exit 1; \ fi; \ if [ -z "$$current" ]; then \ - if ! git -C "$$child_root" merge-base --is-ancestor "$$head" "refs/remotes/origin/$$branch"; then \ + if ! git -C "$$child_root" merge-base --is-ancestor "$$head" "$$remote_ref"; then \ printf 'ERROR: %s: detached HEAD %s is not contained in origin/%s; reconcile it yourself (setup never discards commits)\n' "$$child_path" "$$head" "$$branch" >&2; \ exit 1; \ fi; \ - git -C "$$child_root" checkout --quiet -B "$$branch" "$$head" || { \ - printf 'ERROR: %s: could not attach detached HEAD %s to %s\n' "$$child_path" "$$head" "$$branch" >&2; \ - exit 1; \ - }; \ - git -C "$$child_root" branch --quiet --set-upstream-to "origin/$$branch" "$$branch" >/dev/null 2>&1 || :; \ + attach_branch_at_head "$$child_root" "$$branch"; \ current="$$branch"; \ fi; \ - if ! git -C "$$child_root" merge-base --is-ancestor "$$gitlink" "refs/remotes/origin/$$branch"; then \ + if ! git -C "$$child_root" merge-base --is-ancestor "$$gitlink" "$$remote_ref"; then \ printf 'ERROR: %s: origin/%s diverges from recorded gitlink %s\\n' "$$child_path" "$$branch" "$$gitlink" >&2; \ exit 1; \ fi; \ diff --git a/config/workspace.yaml b/config/workspace.yaml index ef26f4c02..6c346570b 100644 --- a/config/workspace.yaml +++ b/config/workspace.yaml @@ -35,6 +35,11 @@ project: documentation: "https://docs.flext.sh" workspace_root_rel: "." year: 2026 +# Workspace overlay adjusting flext-infra provider defaults (branch/github). +# Package version stays on project.version above. +integration: + provider: flext-sh + branch: 0.12.0-dev # NOTE (multi-agent, mro-wkii.17 / agent: codex): the typed manifest context is # the sole topology owner; every declared member/exclusion round-trips here. members: diff --git a/custom.mk b/custom.mk index 4677d16b6..b0921789b 100644 --- a/custom.mk +++ b/custom.mk @@ -8,7 +8,9 @@ # other lanes' uncommitted/untracked changes never pollute or brick it. Green when # nothing is committed-ahead. -# SSOT for the workspace base branch. All equalization/merge targets use this. +# SSOT: config/workspace.yaml integration.branch (flext-infra provider overlay). +# Falls back to flext-sh provider default when the overlay field is absent. +WORKSPACE_BASE ?= $(shell awk '/^integration:/{f=1; next} f && /^ branch:/{gsub(/["'"'"']/, "", $$2); print $$2; exit} ' config/workspace.yaml 2>/dev/null) WORKSPACE_BASE ?= 0.12.0-dev .PHONY: done-check workspace-docs-audit full-check workspace-status \ diff --git a/flext-api b/flext-api index 44406e50d..893c9e669 160000 --- a/flext-api +++ b/flext-api @@ -1 +1 @@ -Subproject commit 44406e50d7c43db108cc658b12e08f19ef69f563 +Subproject commit 893c9e6691baf11590d90ae33d766b420884a589 diff --git a/flext-auth b/flext-auth index 1f67b39de..ceaed1f2a 160000 --- a/flext-auth +++ b/flext-auth @@ -1 +1 @@ -Subproject commit 1f67b39de97559bd9bf881ebfc91316ffca3a3ff +Subproject commit ceaed1f2a0ce4cb8336244ffe8ad6a85fc6bc06c diff --git a/flext-cli b/flext-cli index 6838d5ede..922ebee10 160000 --- a/flext-cli +++ b/flext-cli @@ -1 +1 @@ -Subproject commit 6838d5ede445a09fbe3683ddb7b1329956227143 +Subproject commit 922ebee10fa97e9ecc5e4cca57aa3ab8336cba01 diff --git a/flext-core b/flext-core index 4e9b54ebe..cb348e5b5 160000 --- a/flext-core +++ b/flext-core @@ -1 +1 @@ -Subproject commit 4e9b54ebed545a4a3b909cb601b43311ec537ef8 +Subproject commit cb348e5b5394997720f7fd13c65c225eff1918e1 diff --git a/flext-db-oracle b/flext-db-oracle index 0a9d7b1f4..a032c868e 160000 --- a/flext-db-oracle +++ b/flext-db-oracle @@ -1 +1 @@ -Subproject commit 0a9d7b1f4303c74ccd8f4fe95fe6096b01b04790 +Subproject commit a032c868e60dc78a76395563be56d08bdbc5247d diff --git a/flext-dbt-ldap b/flext-dbt-ldap index f1083bbd5..cf09c168b 160000 --- a/flext-dbt-ldap +++ b/flext-dbt-ldap @@ -1 +1 @@ -Subproject commit f1083bbd57fdeb683e9d4ff74168bfc455a650f4 +Subproject commit cf09c168b72c1125bc2b3cbec5218fff213e6387 diff --git a/flext-dbt-ldif b/flext-dbt-ldif index e38a0c8df..94bbc30d7 160000 --- a/flext-dbt-ldif +++ b/flext-dbt-ldif @@ -1 +1 @@ -Subproject commit e38a0c8df96c611e4f9b18dbe79863743c20cc6b +Subproject commit 94bbc30d798063cfe151f2b18d3a5029ec58fa85 diff --git a/flext-dbt-oracle b/flext-dbt-oracle index 9488f5bb6..2c570d089 160000 --- a/flext-dbt-oracle +++ b/flext-dbt-oracle @@ -1 +1 @@ -Subproject commit 9488f5bb6362724009331d1c3598a4fe7c7cc603 +Subproject commit 2c570d089558a14bd00d161192d63c08cde93ede diff --git a/flext-dbt-oracle-wms b/flext-dbt-oracle-wms index aa12f7934..1004d8d84 160000 --- a/flext-dbt-oracle-wms +++ b/flext-dbt-oracle-wms @@ -1 +1 @@ -Subproject commit aa12f7934036ff99e9ed4937fe5f518517d8c47d +Subproject commit 1004d8d847b93ec6cc5bcf7791bdd1fa4f5f9e06 diff --git a/flext-grpc b/flext-grpc index 458937a82..c3ee363fb 160000 --- a/flext-grpc +++ b/flext-grpc @@ -1 +1 @@ -Subproject commit 458937a826abf6bddc11a66b118896856e016361 +Subproject commit c3ee363fb858f692432f32c29163bcc86ca3f7c0 diff --git a/flext-infra b/flext-infra index e0902d845..b20d592c8 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit e0902d8452a190c8ac8bb380367682222c00bf68 +Subproject commit b20d592c876778a8432267c7ad46f8fed6d6c346 diff --git a/flext-ldap b/flext-ldap index f0ecba465..b8561af34 160000 --- a/flext-ldap +++ b/flext-ldap @@ -1 +1 @@ -Subproject commit f0ecba4653c02b3c3f52c698d1c483b00e0d84b0 +Subproject commit b8561af3421a37819f9f74f0f6c1e66071671a6c diff --git a/flext-ldif b/flext-ldif index 8cd6e62fb..0faa101e8 160000 --- a/flext-ldif +++ b/flext-ldif @@ -1 +1 @@ -Subproject commit 8cd6e62fbdec9733df49856e22ab3e3ace76c5fc +Subproject commit 0faa101e8799f2b6d43d2484b60420cf24e2d9b2 diff --git a/flext-meltano b/flext-meltano index d64ba027d..f4c6b35c8 160000 --- a/flext-meltano +++ b/flext-meltano @@ -1 +1 @@ -Subproject commit d64ba027ddf2c2526f142af314d3389c0e400a10 +Subproject commit f4c6b35c8b172055952e3baca103fa3e79818c81 diff --git a/flext-observability b/flext-observability index 6287cd676..ec175f0e5 160000 --- a/flext-observability +++ b/flext-observability @@ -1 +1 @@ -Subproject commit 6287cd676bdfe3e4b4ea67f93cf1906c8cdfe908 +Subproject commit ec175f0e5bc9fa117807bd59589016544b4b13c5 diff --git a/flext-oracle-oic b/flext-oracle-oic index 2d466da92..e025af89f 160000 --- a/flext-oracle-oic +++ b/flext-oracle-oic @@ -1 +1 @@ -Subproject commit 2d466da92504c29e3a9945963496b008919aa083 +Subproject commit e025af89f06d362e89743cc553395e58fe324144 diff --git a/flext-oracle-wms b/flext-oracle-wms index 75832fd45..32dd2f853 160000 --- a/flext-oracle-wms +++ b/flext-oracle-wms @@ -1 +1 @@ -Subproject commit 75832fd453a370396470d066bd29b9a73a9dba9a +Subproject commit 32dd2f853e34e857074281265b7952c71cd220ec diff --git a/flext-plugin b/flext-plugin index e2320e1b2..90357795f 160000 --- a/flext-plugin +++ b/flext-plugin @@ -1 +1 @@ -Subproject commit e2320e1b26062f656126c7479828e7cc6ad9101f +Subproject commit 90357795f1f6c91cd0648e42992253a29fe31157 diff --git a/flext-quality b/flext-quality index 37f67c7b5..bdc1eb4b3 160000 --- a/flext-quality +++ b/flext-quality @@ -1 +1 @@ -Subproject commit 37f67c7b5d26de5c4083a7f319dcae07b5feb74d +Subproject commit bdc1eb4b376875aa7f9811dc371b4d77dfbfbeba diff --git a/flext-tap-ldap b/flext-tap-ldap index b472f9a40..9f8a5b838 160000 --- a/flext-tap-ldap +++ b/flext-tap-ldap @@ -1 +1 @@ -Subproject commit b472f9a40e8bed434964d1b3e5780e7c7837fef8 +Subproject commit 9f8a5b83894b3df72e1f82da96c202ed478aa5bd diff --git a/flext-tap-ldif b/flext-tap-ldif index 539985973..f0a3d24ad 160000 --- a/flext-tap-ldif +++ b/flext-tap-ldif @@ -1 +1 @@ -Subproject commit 539985973d474705a262d01832484ac66f855788 +Subproject commit f0a3d24adce735779be7119039045cb98acacd5e diff --git a/flext-tap-oracle b/flext-tap-oracle index 1f4ff315d..452224b18 160000 --- a/flext-tap-oracle +++ b/flext-tap-oracle @@ -1 +1 @@ -Subproject commit 1f4ff315dfef049bd540638b3ee0f07eb6f9c66c +Subproject commit 452224b18d84c3a9b8ea339c3117df10139dd5de diff --git a/flext-tap-oracle-oic b/flext-tap-oracle-oic index c10c293b1..7ead8132e 160000 --- a/flext-tap-oracle-oic +++ b/flext-tap-oracle-oic @@ -1 +1 @@ -Subproject commit c10c293b18d96258055f4e7107eda00f8b4ae45e +Subproject commit 7ead8132eaaf1171d73a3a9dad02e2ee8a36000d diff --git a/flext-tap-oracle-wms b/flext-tap-oracle-wms index d681e9dab..bc12a83e6 160000 --- a/flext-tap-oracle-wms +++ b/flext-tap-oracle-wms @@ -1 +1 @@ -Subproject commit d681e9dabf288151a1527b3c0876bd1483ad82dd +Subproject commit bc12a83e63196fa7fa74cf58a5bc58025cd08f51 diff --git a/flext-target-ldap b/flext-target-ldap index 7fba576ee..9f3510153 160000 --- a/flext-target-ldap +++ b/flext-target-ldap @@ -1 +1 @@ -Subproject commit 7fba576ee450a05558462b0fa37df32f5fcb9865 +Subproject commit 9f3510153a87d9ecfe512f28869f7d3c3b5abdf6 diff --git a/flext-target-ldif b/flext-target-ldif index 4a8f3db8b..508484e4f 160000 --- a/flext-target-ldif +++ b/flext-target-ldif @@ -1 +1 @@ -Subproject commit 4a8f3db8b6e0c786c0b71fc4ee8da969160c6bab +Subproject commit 508484e4f5df9c5e129e1e3db98f4a2793314944 diff --git a/flext-target-oracle b/flext-target-oracle index 119ede9f9..e7718fbed 160000 --- a/flext-target-oracle +++ b/flext-target-oracle @@ -1 +1 @@ -Subproject commit 119ede9f95a5955043b3bed14dfcb71ebe720bb8 +Subproject commit e7718fbed099c285f123181ca80b201e6231d121 diff --git a/flext-target-oracle-oic b/flext-target-oracle-oic index fd4733226..9bc6d47d8 160000 --- a/flext-target-oracle-oic +++ b/flext-target-oracle-oic @@ -1 +1 @@ -Subproject commit fd4733226c81641f4469af5acc2344017df9d7c3 +Subproject commit 9bc6d47d8f0730400c2fed70ca1284bf1d3b0cda diff --git a/flext-target-oracle-wms b/flext-target-oracle-wms index b6856aeab..f87dc8235 160000 --- a/flext-target-oracle-wms +++ b/flext-target-oracle-wms @@ -1 +1 @@ -Subproject commit b6856aeabe7807e93837bb100770c26812313234 +Subproject commit f87dc82350d12918bf27af95efc9b61d361ee2d5 diff --git a/flext-tests b/flext-tests index 0efd7bfbd..cb6ef093b 160000 --- a/flext-tests +++ b/flext-tests @@ -1 +1 @@ -Subproject commit 0efd7bfbdf9169377c8ed837d06283051ca2b8da +Subproject commit cb6ef093b019a63cbcf1c811627180463473537f diff --git a/flext-web b/flext-web index a46045186..731e29456 160000 --- a/flext-web +++ b/flext-web @@ -1 +1 @@ -Subproject commit a46045186173a4224dd5b666ef6389d1c8f5fe22 +Subproject commit 731e2945636be91b8e80ba86fd63fa3bbd0371a3 diff --git a/pyproject.toml b/pyproject.toml index 9ee4aea0f..7977750fc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -229,7 +229,6 @@ disable_error_code = ["unreachable"] module = ["dcdoc._utilities._charts._matplotlib_renderer._renders_spec"] # [MANAGED] pydantic-mypy - [tool.pydantic-mypy] init_forbid_extra = true init_typed = true @@ -2043,7 +2042,6 @@ reportUnusedImport = "none" root = "flext-web/tests" # [MANAGED] pytest - [tool.pytest.ini_options] addopts = [ "--benchmark-disable", From 74600ee81b6f2ee6445c6bcfbc037b92a5517f22 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 12:18:31 -0300 Subject: [PATCH 128/165] chore(workspace): advance flext-infra gitlink after conform cleanup Co-authored-by: Cursor --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index b20d592c8..c5688cc51 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit b20d592c876778a8432267c7ad46f8fed6d6c346 +Subproject commit c5688cc5180798e1b381c063cf09528e69fdb5b5 From 7c02c8a4b0f5a5f61a940253e0f85fe9a1854fd1 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 12:54:47 -0300 Subject: [PATCH 129/165] chore(workspace): point flext-infra at m.Infra model cutover and pin gitlink branches Bump the flext-infra gitlink to the pydantic facade PR, pin .gitmodules to named integration branches, and absorb setup/custom-WHAT Makefile plus docs/boot wording so the workspace matches the infra SSOT. Co-authored-by: Cursor --- .gitmodules | 62 ++-- AGENTS.md | 453 ++++++-------------------- Makefile | 59 ++-- custom.mk | 2 +- docs/guides/getting-started.md | 4 +- docs/guides/make-commands.md | 4 +- docs/guides/onboarding.md | 2 +- docs/projects/flext-auth.md | 2 +- docs/projects/flext-db-oracle.md | 2 +- docs/projects/flext-dbt-ldap.md | 2 +- docs/projects/flext-dbt-ldif.md | 2 +- docs/projects/flext-dbt-oracle-wms.md | 2 +- docs/projects/flext-dbt-oracle.md | 2 +- flext-infra | 2 +- scripts/cmd/boot/all.py | 2 +- scripts/cmd/boot/imp.py | 2 +- scripts/cmd/boot/stat.py | 2 +- scripts/cmd/boot/submodules.py | 2 +- scripts/cmd/boot/sync.py | 2 +- scripts/cmd/boot/venv.py | 2 +- 20 files changed, 180 insertions(+), 432 deletions(-) diff --git a/.gitmodules b/.gitmodules index 9d7739065..ce9feb5c7 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,154 +1,154 @@ [submodule "flext-api"] path = flext-api url = https://github.com/flext-sh/flext-api.git - branch = . + branch = 0.12.0-dev [submodule "flext-auth"] path = flext-auth url = https://github.com/flext-sh/flext-auth.git - branch = . + branch = 0.12.0-dev [submodule "flext-cli"] path = flext-cli url = https://github.com/flext-sh/flext-cli.git - branch = . + branch = 0.12.0-dev [submodule "flext-core"] path = flext-core url = https://github.com/flext-sh/flext-core.git - branch = . + branch = 0.12.0-dev [submodule "flext-db-oracle"] path = flext-db-oracle url = https://github.com/flext-sh/flext-db-oracle.git - branch = . + branch = 0.12.0-dev [submodule "flext-dbt-ldap"] path = flext-dbt-ldap url = https://github.com/flext-sh/flext-dbt-ldap.git - branch = . + branch = 0.12.0-dev [submodule "flext-dbt-ldif"] path = flext-dbt-ldif url = https://github.com/flext-sh/flext-dbt-ldif.git - branch = . + branch = 0.12.0-dev [submodule "flext-dbt-oracle"] path = flext-dbt-oracle url = https://github.com/flext-sh/flext-dbt-oracle.git - branch = . + branch = 0.12.0-dev [submodule "flext-dbt-oracle-wms"] path = flext-dbt-oracle-wms url = https://github.com/flext-sh/flext-dbt-oracle-wms.git - branch = . + branch = 0.12.0-dev [submodule "flext-grpc"] path = flext-grpc url = https://github.com/flext-sh/flext-grpc.git - branch = . + branch = 0.12.0-dev [submodule "flext-infra"] path = flext-infra url = https://github.com/flext-sh/flext-infra.git - branch = . + branch = 0.12.0-dev [submodule "flext-ldap"] path = flext-ldap url = https://github.com/flext-sh/flext-ldap.git - branch = . + branch = 0.12.0-dev [submodule "flext-ldif"] path = flext-ldif url = https://github.com/flext-sh/flext-ldif.git - branch = . + branch = 0.12.0-dev [submodule "flext-meltano"] path = flext-meltano url = https://github.com/flext-sh/flext-meltano.git - branch = . + branch = 0.12.0-dev [submodule "flext-observability"] path = flext-observability url = https://github.com/flext-sh/flext-observability.git - branch = . + branch = 0.12.0-dev [submodule "flext-oracle-oic"] path = flext-oracle-oic url = https://github.com/flext-sh/flext-oracle-oic.git - branch = . + branch = 0.12.0-dev [submodule "flext-oracle-wms"] path = flext-oracle-wms url = https://github.com/flext-sh/flext-oracle-wms.git - branch = . + branch = 0.12.0-dev [submodule "flext-plugin"] path = flext-plugin url = https://github.com/flext-sh/flext-plugin.git - branch = . + branch = 0.12.0-dev [submodule "flext-quality"] path = flext-quality url = https://github.com/flext-sh/flext-quality.git - branch = . + branch = 0.12.0-dev [submodule "flext-tap-ldap"] path = flext-tap-ldap url = https://github.com/flext-sh/flext-tap-ldap.git - branch = . + branch = 0.12.0-dev [submodule "flext-tap-ldif"] path = flext-tap-ldif url = https://github.com/flext-sh/flext-tap-ldif.git - branch = . + branch = 0.12.0-dev [submodule "flext-tap-oracle"] path = flext-tap-oracle url = https://github.com/flext-sh/flext-tap-oracle.git - branch = . + branch = 0.12.0-dev [submodule "flext-tap-oracle-oic"] path = flext-tap-oracle-oic url = https://github.com/flext-sh/flext-tap-oracle-oic.git - branch = . + branch = 0.12.0-dev [submodule "flext-tap-oracle-wms"] path = flext-tap-oracle-wms url = https://github.com/flext-sh/flext-tap-oracle-wms.git - branch = . + branch = 0.12.0-dev [submodule "flext-target-ldap"] path = flext-target-ldap url = https://github.com/flext-sh/flext-target-ldap.git - branch = . + branch = 0.12.0-dev [submodule "flext-target-ldif"] path = flext-target-ldif url = https://github.com/flext-sh/flext-target-ldif.git - branch = . + branch = 0.12.0-dev [submodule "flext-target-oracle"] path = flext-target-oracle url = https://github.com/flext-sh/flext-target-oracle.git - branch = . + branch = 0.12.0-dev [submodule "flext-target-oracle-oic"] path = flext-target-oracle-oic url = https://github.com/flext-sh/flext-target-oracle-oic.git - branch = . + branch = 0.12.0-dev [submodule "flext-target-oracle-wms"] path = flext-target-oracle-wms url = https://github.com/flext-sh/flext-target-oracle-wms.git - branch = . + branch = 0.12.0-dev [submodule "flext-tests"] path = flext-tests url = https://github.com/flext-sh/flext-tests.git - branch = . + branch = 0.12.0-dev [submodule "flext-web"] path = flext-web url = https://github.com/flext-sh/flext-web.git - branch = . + branch = 0.12.0-dev diff --git a/AGENTS.md b/AGENTS.md index c5d6b7433..27d366c75 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,208 +1,40 @@ + +# AI Hub Inviolable Law — Strict Prelude + +1. Truth: Never claim done, green, or resolved without command, exit code, and decisive output. +2. Root cause: No bypass, fallback, shim, suppression, stub, hardcode, or old+new coexistence. +3. Beads first: Claim or update the bead before any file write, shell command, or multi-step task sequence, and update it after each discrete step that changes repository state. +4. Research first: Inspect code, docs, and canonical sources before acting; never invent APIs, flags, facts, or behavior. +5. FLEXT first (ai-hub Python): Use the project facades backed by flext-core and flext-cli; do not reimplement primitives locally. +6. Gate discipline: If a gate blocks, stop and escalate with the exact command/edit; never route around it. +7. Landing: Land verified work with native gates, commit, fast-forward push, and bead evidence. +8. Push rejection handling: If a fast-forward push is rejected because the remote has diverged, stop immediately, do not rebase or force-push autonomously, and escalate to the operator with the exact git error message and the local vs. remote commit SHAs. +9. Escalation clarity: If a rule is technically impossible to satisfy, stop and report the exact error. If two rules conflict, stop and present the conflict to the operator with the specific rule numbers. If a rule is unclear in context, ask a targeted clarification question before proceeding. +10. Precedence (UNIVERSAL, INVIOLABLE): NEWEST supersedes OLDEST. USER REQUEST > BEADS > ADRs > SKILLs > DOCS > default behavior. On conflict, ADJUST the lower/older artifact (bead, plan, ADR, skill, doc) to match the higher/newer — never override the user or a higher/newer directive to fit a stale one. In ANY doubt, ASK THE USER FIRST — never guess. + + # Project Instructions for AI Agents - - - -## Universal Agent Engineering Core - -`~/.agents` is the sole universal authority. AI Hub distributes and configures -it but never competes with it. Project law may be stricter; the newest explicit -operator instruction prevails and lower authority must be reconciled. - -### P0 — Tests validate config/settings changes by construction - -Tests, golden files, and executable documentation (including markdown examples and -docstring snippets) must remain valid when config or settings change. They are -never allowed to hardcode, freeze, or implicitly assume the values that exist today. - -- The canonical owner of every configurable fact is `config/*.yaml`, `settings`, - or the generator that derives from them. Tests only validate that owner. -- Expected values owned by config/settings must be read from the same typed SSOT - production reads, or proven through a generator/consumer round-trip. -- A test that breaks on a legitimate config/settings change is a test defect. - Fix the test; never freeze the configuration to keep the test green. -- This rule applies to all test tiers, markdown examples, and docstring snippets - validated by the pytest plugin. -- Literal expectations in tests are reserved for immutable external protocol - contracts, not for values the project owns through config/settings. - -1. **Truth with evidence.** Claims require the exact command, working directory, - exit status, decisive output, and bounded scope. -2. **Research before mutation.** Read current authority, intent, owner Bead, - implementation owner, consumers, generated projections, concurrent WIP, and - validation route. Never invent behavior or results. -3. **One active intent.** Preserve the goal, target, Bead, exclusions, phase, - required gates, and stop condition through delegation and continuation. -4. **Root cause and one owner.** Change the canonical owner and complete the - cutover. No bypass, fallback, shim, suppression, hardcode, fake, duplicate - route, silent default, or old-and-new coexistence. -5. **Fix forward.** Preserve shared work; never destructively discard unknown - changes. Re-read mutable files and classify relevant paths and hunks. -6. **Typed and generated boundaries.** Parse untrusted input once into canonical - types. Change sources, not projections; regenerate and prove idempotence. -7. **Continuous green.** No completion while the project or environment is - broken, partially migrated, dirty from task WIP, ahead of remote, missing - real-use QA, or carrying stale generated output or docs. Run native global - and changed-scope gates; Python requires Ruff, Pyrefly, Pyright, Mypy, and - Pytest coverage plus applicable build and integrated validation. Lint and - type gates cover `examples/`, `scripts/`, and `tests/` with the same rigor - as production source: blanket `per-file-ignores`/exclude patterns that - hide violations in those trees are prohibited (operator law 2026-07-20). - The only permitted exceptions are test-idiom rules explicitly justified - per rule (e.g. `S101` assert usage, `PT` pytest conventions). Every - violation in those trees is fixed at its root, never masked. -8. **Beads is execution truth.** Beads owns work, plans, memory, dependencies, - status, evidence, and closure. GitHub is its continuous external coordination, - PR, review, and CI mirror after the orchestrator organizes Beads completely. -9. **Separated roles.** The orchestrator coordinates, owns semantic Beads state, - validates, approves or rejects merges, rolls out, and closes; it does not - implement. Workers directly implement one Bead in one branch and worktree but - never merge or close. The standing documenter continuously audits, updates, - validates, and removes stale canonical skills, ADRs, docs, Python docstrings, - examples, and executable snippets under the same validated PR flow; the - governance/CI helper also remains active. -10. **No stall by reporting.** Five-minute status reports include the agent table - and epic evolution and never pause execution. Compaction, continuation, and - status transfer context only. -11. **Historical material is evidence only.** Archives, generated or tool homes, - backups, sessions, caches, and legacy trees are never live authority. -12. **Stop only for a real blocker.** Ask one precise question only when authority - conflicts or an action would be destructive; otherwise continue to the - observable stop condition. -13. **Short validated slices.** Deliver in small, independently validated - units that merge to the integration branch quickly — one Bead, one - reviewable PR, hours not days. Mega-lanes and long-lived WIP are defects; - the orchestrator splits any unit that cannot merge green within a session. -14. **Living documentation.** Project knowledge is durable, never rebuilt - per session. On entering a project, read its docs first and validate key - claims quickly against live reality. Every change that produces new - understanding or behavior updates the affected docs in the SAME change; - stale docs are defects filed as beads, never worked around. -15. **Runtime reality precedes implementation and tests.** Establish the correct - behavior from the official external contract and the real consumer first. For - generated or deployed artifacts, validate the staged artifact with that real - consumer before deployment, restart, tests, or static gates. Then align the - canonical implementation and models; only afterward may tests encode the - observed behavior. Tests and static analysis are subordinate confirmation, - never discovery authority, design input, a substitute for consumer validation, - or permission to publish a runtime-broken artifact. A test that contradicts - observed canonical behavior is corrected, never accommodated by production. - Performance optimization is - evidence-first: profile with cProfile to find the hot path before changing - anything, then optimize with the project's typed OO/MRO/lazy-import patterns; - accelerate test selection with impact analysis (e.g. pytest-testmon) and - parallelism (pytest-xdist) rather than deleting or weakening coverage. - See P0 above: tests of `config`/`settings` validate contracts and behavior - for arbitrary valid values and read expected config-owned values from the - same typed SSOT the consumer receives; they never freeze today's configured - scalar, identifier, path, endpoint, model, ranking, or default. Goldens may lock - structure, never mutable config/settings values. -16. **Parametrized config, generators, and managed binaries.** config, settings, - and templates are the sole source of configuration and business rules; the - correct generator produces every derived surface (never hand-edit a - projection). ai-hub owns the installation of binaries and the provisioning of - no product-, agent-, or daemon-specific hardcoded code anywhere — every such - value is parametrized through config/settings/templates. -17. **Canonical command surface only.** Every build, check, test, generation, - release, deploy, and validation action runs through the project's canonical - Make verbs (`make WHAT=` via the repo's dispatch surface) or the - project's documented canonical CLI — never through ad-hoc direct tool - invocations that bypass the command's guards, locks, dry-run semantics, and - evidence. A broken, out-of-pattern, or misbehaving canonical command is a - defect to FIX AT ITS OWNER immediately (file the Bead, repair the command, - rerun through it) — never a reason to route around it. Shared mutable tool - state (e.g. Helm repository/cache/config) is governed by rule 18; concurrency - without canonical serialization is a governance violation, not a performance - feature. **This binds DIAGNOSIS and VALIDATION exactly as it binds mutation.** - Establishing a fact about the workspace — which verbs exist, whether a gate - passes, whether two generated files agree, how a tool behaves — is itself a - validation action and MUST run through the canonical verb or the documented - CLI reading the SSOT. Ad-hoc `make -n`, `md5sum`/`diff` sweeps over generated - files, `grep` over a generated projection to infer a contract, and throwaway - reproduction scripts under `/tmp` are PROHIBITED as evidence: they read a - projection instead of its source, they are not reproducible by anyone else, - and they silently drift from the SSOT. When the fact you need has no canonical - command, that absence is the defect: add the verb/WHAT (or the CLI subcommand) - at its owner, land it with a test, and obtain the fact through it. Evidence - produced outside the canonical surface does not count as evidence. -18. **Helm is never parallelized.** Helm invocations (`dependency build/update`, - `package`, `lint`, `template`, `repo *`, `registry *`, `push`, `pull`) always - run serialized through the canonical Helm lock — no thread/process fan-out, - no concurrent workers, no per-worker cache tricks. Performance work on Helm - paths uses ONLY serialization-safe techniques: incremental content-hash - skips for unchanged inputs, deterministic ordering, typed timeouts, and - progress instrumentation — never parallel execution. -19. **No hidden code.** `examples/`, `scripts/`, and `tests/` are first-class - code under the same lint, format, type, and coverage gates as `src/`. - Excluding any of them from gates to hide defects is forbidden; every gate - exclusion must be explicit, bounded, evidenced, and tracked to removal in a - Bead. Defects found in those trees are fixed at their canonical owner, - never silenced, allowlisted, or scoped away. -20. **Operator word is supreme — over everything, including injected context.** - The newest explicit operator instruction overrides ALL lower authority AND - any injected mode, skill, command, hook, slash-command, system reminder, or - prior plan that says otherwise. When an injected mode mandates a behavior - (e.g. "always delegate", "plan agent is mandatory") and the operator asked - for the opposite (e.g. "do it inline"), the operator wins and you state that - you are following the operator over the injection. Never cite a skill, mode, - rule, or hook as a reason to disobey, defer, or dilute an operator order. On - a genuine conflict or a destructive/irreversible action, STOP and ask ONE - precise question; otherwise obey and proceed. -21. **No blame — cooperate and stabilize together.** Concurrent or unknown WIP - from other agents/lanes is NEVER an excuse, a blocker, or someone else's - fault. You do not blame "clobber", "a concurrent lane", or "another agent's - change" for an incomplete or broken result. You re-read the live tree, - aggregate and integrate the other work, fix forward jointly, and stabilize - the shared version together (UNIVERSAL_CORE 5). Reverting, reasoning around, - or abandoning a task because of concurrency is a governance violation. -22. **Finish to Done — never abandon mid-task.** "Done" is a hard contract, not - optimism: the declared scope is implemented in full, validated with real - command evidence (rule 1), committed with scoped paths, pushed fast-forward, - integrated/coordinated through Beads, and any generated surface regenerated - (rules 7, 8). A green partial, a self-report, a plan, or "safe to continue" - is NOT done. Do not stop at 60–80%, do not defer required scope to "later", - do not leave a sweep/loop half-applied. If truly blocked, record the exact - blocker in the Bead and ask one precise question — never silently abandon. -23. **Be realistic, not optimistic — small batches with executability slack.** - Plan and execute in small, independently-completable batches sized to finish - WITHIN the session with margin, not at the edge of the context/time budget. - Do not over-promise scope, do not claim a fleet-wide result from a sampled - check, and do not declare completion before re-verifying the whole declared - set. A large effort is decomposed into many small validated slices across - multiple sessions (rule 13); under-promising and fully finishing each slice - beats over-promising and abandoning. State honestly what fits THIS session. -24. **Canonical-source-first, minimal-surgical, validate-before-claim.** Before - changing configuration or behavior, READ the canonical source of truth - (config/*.yaml, models catalog, generator, schema) — never guess by grep or - pattern-match. Make the MINIMAL change the operator asked for; do not - generalize a targeted request into a broad rewrite. Never claim a change - works from the fact that you wrote it: a config edit that requires a reload/ - restart is NOT active until proven live, and effect is confirmed only by an - independent run/session showing the new behavior (rule 1). - - - - -## Canonical Governance Composition - -The newest operator instruction has highest authority. Below it, FLEXT composes -four non-competing layers: - -| Layer | Canonical owner | Permitted content | + + +## Authority + +Newest operator instruction wins. Layers (non-competing): + +| Layer | Owner | Content | | --- | --- | --- | -| Global | `~/.agents/UNIVERSAL_CORE.md` and global `inviolable-rules`, `make-check`, and `verification-loop` skills | universal conduct, execution safety, command selection, evidence, and completion | -| FLEXT | this root file and `.agents/skills/flext-law/SKILL.md` | FLEXT architecture, imports, MRO/lazy exports, workspace Make control plane, generation, and fleet boundaries | -| Scope | the nearest member or standalone `AGENTS.md` | only narrower domain facts, public surfaces, and explicit exclusions | -| Execution | the active Bead | current intent, ownership, dependencies, phase, evidence, and stop condition | +| Global | `~/.agents/UNIVERSAL_CORE.md` + `inviolable-rules` / `make-check` / `verification-loop` | conduct, evidence, completion | +| FLEXT | this file + `.agents/skills/flext-law/SKILL.md` | architecture, Make, generation, fleet | +| Scope | nearest member `AGENTS.md` | domain facts / exclusions only | +| Execution | active Bead | intent, ownership, evidence, stop | -AI Hub distributes and validates managed projections; it does not become the -authority for global or FLEXT law. The local provider exposes the exact -branch-matched `.agents/skills/flext-law/SKILL.md`. A scoped file may strengthen -its parents but may not copy, weaken, rename, or replace them. +- Entry: `.agents/skills/flext-context-routing/SKILL.md` → `.agents/commands/flext-law.md`. +- Fail closed on missing/mismatched law; never fall back to `main` or another checkout. +- AI Hub projects managed sections; it is not Global/FLEXT authority. -Before FLEXT work, follow `.agents/commands/flext-law.md`. Missing, ambiguous, -or branch-mismatched authority fails closed; never fall back to `main`, a -historical branch, another worktree, or a same-named catalog entry. +Docs: [`docs/GOVERNANCE.md`](docs/GOVERNANCE.md) · +[`docs/architecture/adr/`](docs/architecture/adr/) · +[`docs/AI_HUB_CONSUMER.md`](docs/AI_HUB_CONSUMER.md) ## Issue Tracking with bd (beads) @@ -352,182 +184,95 @@ orchestrator instructions. ## Overview -FLEXT is a **multi-package Python 3.13 workspace** (git superproject + 31 `flext-*` git submodules) for enterprise data -integration, platform tooling, and operational connectors. Every package follows one canonical Clean-Architecture shape -built on `flext-core`. Branch `0.12.0-dev`; forward baseline `0.13.0`. +Multi-package Python 3.13 workspace (superproject + 31 `flext-*` submodules) for data +integration and connectors. Clean Architecture on `flext-core`. Branch `0.12.0-dev`; forward `0.13.0`. ## Structure ```text -flext/ # superproject: workspace manager + governance + docs -├── src/flext/ # flext-workspace CLI (thin orchestrator over flext-cli) — AUTO-GENERATED facets -├── config/ # workspace.yaml topology SSOT (codegen/conform input; never overwrite) -├── docs/architecture/adr/ # ADR-001..010 — architectural decisions (see below) -├── Makefile + *.mk # root verb dispatcher (all work runs from here) -├── flext-core/ # foundation: c/t/p/m/u + r/e/x/h/d/s facades (every pkg depends on it) -├── flext-infra/ # build automation, codegen, enforcement (tooling; not a runtime dep) -├── flext-tests/ # shared test infra (tm/tv/tt fixtures) -├── flext-cli|api|auth|web|grpc|observability|plugin|meltano/ # platform capabilities -├── flext-ldap|ldif|db-oracle|oracle-wms|oracle-oic|quality/ # domain libraries -└── flext-{tap,target,dbt}-*/ # Singer ecosystem: 5 taps, 5 targets, 4 dbt (built on flext-meltano) +flext/ # superproject: workspace + governance + docs +├── src/flext/ # workspace CLI (AUTO-GENERATED facets) +├── config/ # workspace.yaml topology SSOT +├── docs/architecture/adr/ # ADR-001..010 +├── Makefile + *.mk # root verb dispatcher +├── flext-core/ # c/t/p/m/u + r/e/x/h/d/s +├── flext-infra/ # codegen/enforcement (not a runtime dep) +├── flext-tests/ # tm/tv/tt fixtures +├── flext-cli|api|auth|… # platform +├── flext-ldap|ldif|… # domain +└── flext-{tap,target,dbt}-*/ # Singer (via flext-meltano) ``` -Each submodule is an **independent git repo**. This root `AGENTS.md` is the canonical SSOT; submodule `AGENTS.md` files -point here and add only domain-specific notes. - -### How each submodule references this root (two working modes) +Root `AGENTS.md` is SSOT; each member repo adds a domain delta only. -Each submodule's `AGENTS.md` links back to this file. Which link to follow depends on how the package is checked out: +| Mode | Law pointer | +| --- | --- | +| Workspace | sibling [`../AGENTS.md`](../AGENTS.md) | +| Standalone | raw GitHub `flext-sh/flext//AGENTS.md` (pin working line, never `main`) | -- **Workspace mode** (submodule sits inside this superproject): read the sibling **[`../AGENTS.md`](../AGENTS.md)** — - the working copy on your current branch. -- **Standalone / independent mode** (the package was cloned on its own, imported as a dependency, or vendored — no - parent workspace exists, so `../AGENTS.md` does not resolve): read the **raw file on GitHub on the same - branch/release** the project is on: - -```text - /AGENTS.md - # current working line: - -``` - - Always pin `` to the SAME branch/release the package is built from -(e.g. `0.12.0-dev`, or the release tag), never `main`/`master` — the governance law is versioned with the code. - -Composition is identical in both modes: global authority → this branch-matched -root and its local `flext-law` → the member's scope-only delta → the active -Bead. AI Hub only projects the managed sections. A member file adds domain -specifics and exclusions; it never copies or replaces either parent. +Composition: Global → this root + `flext-law` → member delta → Bead. ## Where to Look | Task | Location | Notes | -| ------ | ---------- | ------- | -| Foundation facades / result / DI | `flext-core/src/flext_core/` | `c,t,p,m,u` + `r,e,x,h,d,s`; every pkg's base | -| Build/codegen/enforcement | `flext-infra/src/flext_infra/` | drives `make build WHAT=artifacts`, conform, lint rules | -| Test fixtures & builders | `flext-tests/src/flext_tests/` | `tm,tv,tt`; unified `conftest.py` pattern | -| Architectural decisions | `docs/architecture/adr/` | ADR-005 (config SSOT), ADR-006 (thin drivers), ADR-010 (codegen standardization) | -| Workspace topology | `config/workspace.yaml` | member list, codegen input (hand-written SSOT) | -| A Singer connector | `flext-{tap,target,dbt}-/` | thin driver over `flext-meltano` bases (ADR-006) | +| --- | --- | --- | +| Facades / result / DI | `flext-core/src/flext_core/` | `c,t,p,m,u` + `r,e,x,h,d,s` | +| Build / codegen | `flext-infra/src/flext_infra/` | `make build WHAT=artifacts` | +| Test fixtures | `flext-tests/src/flext_tests/` | `tm,tv,tt` | +| ADRs | `docs/architecture/adr/` | ADR-005 / 006 / 010 | +| Topology | `config/workspace.yaml` | hand-written SSOT | +| Singer connector | `flext-{tap,target,dbt}-/` | thin drivers (ADR-006) | -## Build & Test +## Make -**All commands run from the active workspace/worktree root**, never from inside a submodule -(the root dispatcher forwards to each project). Use `make`, never bare `uv`/`ruff`/`pyrefly`/`mypy`/`pyright`/`pytest`. +From workspace root only. Use `make`, never bare `uv`/`ruff`/`pyrefly`/`mypy`/`pyright`/`pytest`. ```bash -# Environment (creates .venv, uv sync --all-packages, installs hooks) -make boot - -# Whole-workspace quality gates (blocking in CI) -make check # all gates -make check CHECK_GATES=lint,format,pyrefly,mypy,pyright +make setup +make check make check CHECK_GATES=lint,format,pyrefly,mypy,pyright - -# Tests / validation (advisory in CI) make test -make check - -# Scope a single submodule with PROJECT= make check PROJECT=flext-core -make check WHAT=mypy PROJECT=flext-ldif -make test PROJECT=flext-cli -make boot PROJECT=flext-meltano - -# Regenerate auto-generated facets (after touching codegen sources) make build WHAT=artifacts ``` -**Pinned toolchain** (`.default-python-packages`): Ruff `0.15.22`, mypy `2.3.0`, Pyright `1.1.411`, Pyrefly `1.1.1`. -Python strictly `>=3.13,<3.14`. - -**Gotchas:** mypy is memory-capped (`MYPY_MEMORY_LIMIT_MB=6144`, 600s) — never run mypy uncapped, it can blow up RAM; -override with `make check WHAT=mypy MYPY_MEMORY_LIMIT_MB=8192`. Docs CI needs -`uv sync --all-packages --all-groups --all-extras` for dev tools. - -### Bootstrap contract (blocking) - -A fresh `git clone` followed by `make setup` MUST exit 0 with no manual `git -submodule` step and leave the tree byte-clean. `make setup` provisions an -absent governed gitlink and attaches a detached HEAD to its declared branch, -but never writes to a present, on-branch checkout. - -**Evidence rule — a completion claim is void without it.** Any change touching -`Makefile`, the `flext-infra` `.j2` templates, `.gitmodules`, `custom.mk`, -`pyproject.toml`, `uv.lock`, or `.beads/` is proven ONLY by: - -```bash -git clone /tmp/verify && cd /tmp/verify/flext -make setup # exit 0 -git status --short # empty -``` - -Run it against a clone of **origin**, never your own working copy. Evidence -from an unpushed tree is not evidence: the artifact the operator receives is -what `origin` serves, so validating local edits and reporting "done" is a -false completion (rule 1 truth-with-evidence, rule 22 finish-to-Done). -Commit and push BEFORE claiming the work lands. - -**Warnings are failures.** A verb that exits 0 while printing `WARNING`, -`warning:`, or a remediation hint is not green. Fix the warning at its owner -or record it in the Bead with the exact command and output — never let it -scroll by. A dirty tree after a provisioning verb is likewise a defect, not -an acceptable leftover to hand to the next session. - -**Generated surfaces have owners.** `Makefile`, `pyproject.toml` `[MANAGED]` -sections, `.beads/config.yaml`, `ci/`, and `.github/workflows/` carry -`@flext-managed` / `@flext-ssot` headers. Change the SSOT and regenerate -through `make gen`; never hand-write a projection, and never let a foreign -tool (e.g. `bd init`) rewrite one. - -## Architecture Overview - -**Facade layering (strict order `c -> t -> p -> m -> u`)** composed via MRO from `flext-core`: - -- `c` constants · `t` typings · `p` protocols · `m` models (Pydantic-2) · `u` utilities -- Operational: `r` FlextResult · `e` FlextExceptions · `x` FlextMixins · `h` FlextHandlers · `d` FlextDecorators · `s` - FlextService -- Forward imports (higher→lower) may be runtime; **reverse imports are `TYPE_CHECKING`-only**. `c` never imports `m` at - runtime. -- Each package exposes exactly one public `api.py` (thin MRO facade) + optional `cli.py`; internals live under - `_constants/_typings/_protocols/_models/_utilities`. - -**Config/settings are the layer-0 SSOT** consumed BY the facades (ADR-005). Access is single-form only: - -```python -from import config, settings # e.g. from flext_core import config, settings -config..* settings..* -``` - -Config = business rules (`config/*.yaml`, validated); settings = env/CLI-tunable knobs. Facades never hardcode values -the SSOT holds. Config/settings modules import only stdlib/pydantic/upstream base — never a project facade (zero-cycle). - -**Dependency direction:** `flext-core` ← everything. `flext-cli` owns CLI domains -(Toml/Yaml/Csv/Json/Cli/Tui/Run/Dag/Templates/Workflow). Singer connectors are thin drivers over `flext-meltano` -(ADR-006). `flext-infra` is build/tooling — reached via its CLI + pytest plugin, **never imported at runtime**. - -## Conventions & Patterns - -- **`**init**.py`, `constants.py`, `models.py`, etc. facet roots are AUTO-GENERATED** - (`# AUTO-GENERATED FILE — Regenerate with: make build WHAT=artifacts`). Never hand-edit; change the codegen source in `flext-infra` - - run `make build WHAT=artifacts`. -- **Root `pyproject.toml` `[MANAGED]` sections** are generated by `flext_infra.deps.modernizer` — edit generator policy - then `make build WHAT=artifacts`, never by hand. -- **Declaration layers are pure data:** models/protocols/constants/typings/settings/config carry ZERO methods - (only Pydantic Field/validators/computed_field). Behavior lives only in `u`/services/`api`/`base`/`cli`. -- **Pydantic-2-way only** for owned payloads (`model_validate` in, `model_dump` out). No - `dict`/`TypedDict`/`dataclass`/`NamedTuple`/`m.Dict` as a data contract. -- **Typing:** never `Any`/`object`/concrete-class annotations; type via `t.*` aliases and `p.*` protocols; `T | None` - (never `Optional`). A model is never a type. -- **No compat surface:** no shims, legacy branches, dual old+new paths, loose helpers, or suppression - (`# type: ignore`/`# noqa`) without documented justification. Remove superseded code the same cycle. -- **English-only** in all code, comments, docstrings, log strings, and `.j2` templates. -- **Tests** (`flext-tests`): behavior-only through public facades, NO mocks/`patch`, one unified `conftest.py`, typed - fixtures in `tests/fixtures/`, layout `tests/{unit,integration,e2e}/`, thin single nested `Tests` class. -- **Multi-agent tree:** fix-forward only, never `git reset/checkout/restore/clean/stash` shared work; commit by - explicit paths (never `git add -A`); coordinate via beads (`bd`). -- **≤200 logical LOC per module**; net-negative LOC on refactors. -- Toolchain: `uv` + `.venv` only, always via `make`. +- Toolchain: Python `>=3.13,<3.14`; pins in `.default-python-packages`. +- Mypy memory-capped (`MYPY_MEMORY_LIMIT_MB=6144`); never uncapped. +- Bootstrap evidence (Makefile / `.j2` / `.gitmodules` / `custom.mk` / `pyproject.toml` / `uv.lock` / `.beads`): + clone **origin** → `make setup` exit 0 → `git status --short` empty. +- Warnings and dirty trees after provisioning are failures. +- Generated (`@flext-managed` / `@flext-ssot`): change SSOT, then `make gen` — never hand-edit projections. + +## Architecture + +- Facades MRO: `c → t → p → m → u`; ops `r,e,x,h,d,s`. Reverse imports + `TYPE_CHECKING`-only. One public `api.py` (+ optional `cli.py`). +- Config/settings = layer-0 SSOT (ADR-005): `from import config, settings` + — facades never hardcode SSOT values. +- Deps: everything → `flext-core`. Singer → `flext-meltano` (ADR-006). + `flext-infra` via CLI/plugin only — never runtime import. +- Full law: `.agents/skills/flext-law/SKILL.md`. + +## Conventions + +- Facet roots AUTO-GENERATED — edit `flext-infra`, then `make build WHAT=artifacts`. +- Root `pyproject.toml` `[MANAGED]`: modernizer policy → `make build WHAT=artifacts`. +- Declaration layers: pure data (zero methods). Behavior in `u` / services / `api` / `cli`. +- Pydantic-2-way only; type via `t.*` / `p.*`; no `Any`; no compat shims; English-only. +- Tests (`flext-tests`): public facades, no mocks, unified `conftest.py`, `tests/{unit,integration,e2e}/`. +- Fix-forward git; scoped `git add` (never `-A`); track work with `bd`; ≤200 LOC/module; `uv` + `.venv` via `make`. +## Learned User Preferences + +- Deduplicate via MRO / `m`; atomic consumer updates; keep Ruff + Pyrefly clean. +- Fix known failures; Make verbs must be idempotent; prefer standardized shape over transitional forms. +- Land fixes in upstream `flext-infra` on the workspace line, not local workarounds. + +## Learned Workspace Facts + +- Branch / version / GitHub defaults live in one workspace overlay; `make setup` follows that line for all members. +- `flext-infra` defaults via project/workspace `config/` overlays — not forked defaults. +- Provisioning adjusts and never destroys dirty work; no `git checkout` / `git reset` in setup or member sync. +- `make gen APPLY=Y` must be idempotent (following `make gen` reports no drift). ## Workspace providers diff --git a/Makefile b/Makefile index 52da235a6..c96175002 100644 --- a/Makefile +++ b/Makefile @@ -322,16 +322,24 @@ define _dispatch case "$$what" in \ *[!a-z0-9_-]*|'') printf 'ERROR: invalid WHAT selector %s\n' "$$what" >&2; exit 2 ;; \ esac; \ - case " $(_ALLOWED_WHATS_$(1)) " in \ - *" $$what "*) ;; \ - *) printf 'ERROR: unsupported %s WHAT=%s (allowed:%s)\n' "$(1)" "$$what" "$(_ALLOWED_WHATS_$(1))" >&2; exit 2 ;; \ - esac; \ + custom="_custom_$(1)_$$what"; \ + $(SELF_MAKE) -q "$$custom" >/dev/null 2>&1; custom_rc=$$?; \ + if [ "$$custom_rc" -eq 2 ]; then \ + case " $(_ALLOWED_WHATS_$(1)) " in \ + *" $$what "*) ;; \ + *) printf 'ERROR: unsupported %s WHAT=%s (allowed:%s)\n' "$(1)" "$$what" "$(_ALLOWED_WHATS_$(1))" >&2; exit 2 ;; \ + esac; \ + fi; \ builtin="_builtin_$(1)_$$what"; \ for hook in "pre-$(1)" "pre-$(1)-$$what"; do \ $(SELF_MAKE) -q "$$hook" >/dev/null 2>&1; rc=$$?; \ if [ "$$rc" -ne 2 ]; then $(SELF_MAKE) "$$hook" || exit $$?; fi; \ done; \ - $(SELF_MAKE) "$$builtin" || exit $$?; \ + if [ "$$custom_rc" -ne 2 ]; then \ + $(SELF_MAKE) "$$custom" || exit $$?; \ + else \ + $(SELF_MAKE) "$$builtin" || exit $$?; \ + fi; \ for hook in "post-$(1)-$$what" "post-$(1)"; do \ $(SELF_MAKE) -q "$$hook" >/dev/null 2>&1; rc=$$?; \ if [ "$$rc" -ne 2 ]; then $(SELF_MAKE) "$$hook" || exit $$?; fi; \ @@ -505,8 +513,9 @@ _builtin_help_usage: @printf '\n%s\n' 'Custom hooks (custom.mk):'; @printf ' %s\n' 'Define pre-, post-, pre--, post--'; @printf ' %s\n' 'in custom.mk to wrap one declared handler.'; + @printf ' %s\n' 'Add _custom__ to define a new WHAT.'; @if [ -f custom.mk ]; then \ - hooks=$$(grep -oE '^(pre|post)-[a-z][a-z0-9-]*' custom.mk 2>/dev/null | sort -u); \ + hooks=$$(grep -oE '^(pre|post)-[a-z][a-z0-9-]*|^_custom_[a-z][a-z0-9_-]*' custom.mk 2>/dev/null | sort -u); \ if [ -n "$$hooks" ]; then \ printf ' %s\n' 'Defined in this project:'; \ for hook in $$hooks; do printf ' %s\n' "$$hook"; done; \ @@ -527,8 +536,10 @@ _builtin_help_usage: # An absent checkout holds no work, so setup initializes it at the recorded # gitlink. A present checkout is never destroyed: git checkout and git reset # are forbidden. Detached HEAD is attached via branch + symbolic-ref so dirty -# work is carried. branch = . follows the superproject named branch (worktree -# propagation). Fetch is conditional when cached origin refs already validate. +# work is carried. Pin validity is HEAD contains gitlink — origin may lag the +# pin without failing verify. Declared branch is the named integration line; +# legacy branch=. still resolves to the superproject named branch if present. +# Fetch skips when local already contains pin and origin tip. # Free: no # End SECTION: submodule setup _builtin_setup_submodules: @@ -623,18 +634,10 @@ _builtin_setup_submodules: exit 1; \ fi; \ need_fetch=1; \ - if git -C "$$child_root" rev-parse --verify "$$remote_ref" >/dev/null 2>&1; then \ - cached_ok=1; \ - if [ -z "$$current" ]; then \ - if ! git -C "$$child_root" merge-base --is-ancestor "$$head" "$$remote_ref"; then \ - cached_ok=0; \ - fi; \ - fi; \ - if [ "$$cached_ok" -eq 1 ] && \ - git -C "$$child_root" merge-base --is-ancestor "$$gitlink" "$$remote_ref" && \ - git -C "$$child_root" merge-base --is-ancestor "$$gitlink" HEAD; then \ - need_fetch=0; \ - fi; \ + if git -C "$$child_root" rev-parse --verify "$$remote_ref" >/dev/null 2>&1 && \ + git -C "$$child_root" merge-base --is-ancestor "$$gitlink" HEAD && \ + git -C "$$child_root" merge-base --is-ancestor "$$remote_ref" HEAD; then \ + need_fetch=0; \ fi; \ if [ "$$need_fetch" -eq 1 ]; then \ git -C "$$child_root" fetch --quiet origin "$$branch" || { \ @@ -649,19 +652,19 @@ _builtin_setup_submodules: exit 1; \ fi; \ if [ -z "$$current" ]; then \ - if ! git -C "$$child_root" merge-base --is-ancestor "$$head" "$$remote_ref"; then \ - printf 'ERROR: %s: detached HEAD %s is not contained in origin/%s; reconcile it yourself (setup never discards commits)\n' "$$child_path" "$$head" "$$branch" >&2; \ + if git -C "$$child_root" merge-base --is-ancestor "$$gitlink" HEAD; then \ + attach_branch_at_head "$$child_root" "$$branch"; \ + elif git -C "$$child_root" rev-parse --verify "$$remote_ref" >/dev/null 2>&1 && \ + git -C "$$child_root" merge-base --is-ancestor "$$head" "$$remote_ref"; then \ + attach_branch_at_head "$$child_root" "$$branch"; \ + else \ + printf 'ERROR: %s: detached HEAD %s is not on the recorded gitlink and not contained in origin/%s; reconcile it yourself (setup never discards commits)\n' "$$child_path" "$$head" "$$branch" >&2; \ exit 1; \ fi; \ - attach_branch_at_head "$$child_root" "$$branch"; \ current="$$branch"; \ fi; \ - if ! git -C "$$child_root" merge-base --is-ancestor "$$gitlink" "$$remote_ref"; then \ - printf 'ERROR: %s: origin/%s diverges from recorded gitlink %s\\n' "$$child_path" "$$branch" "$$gitlink" >&2; \ - exit 1; \ - fi; \ if ! git -C "$$child_root" merge-base --is-ancestor "$$gitlink" HEAD; then \ - printf 'ERROR: %s: branch %s diverges from recorded gitlink %s\n' "$$child_path" "$$branch" "$$gitlink" >&2; \ + printf 'ERROR: %s: branch %s diverges from recorded gitlink %s (setup never runs checkout/reset; advance or switch it yourself while keeping dirty)\n' "$$child_path" "$$branch" "$$gitlink" >&2; \ exit 1; \ fi; \ if [ -f "$$child_root/.gitmodules" ]; then \ diff --git a/custom.mk b/custom.mk index b0921789b..cc1cbeeed 100644 --- a/custom.mk +++ b/custom.mk @@ -36,7 +36,7 @@ hooks: ## Install Beads git hooks + FLEXT agent-trailer guard (workspace root) bash .github/scripts/install-git-hooks.sh; \ fi -# Auto-provision git hooks after every `make boot` (verb-hook seam). +# Auto-provision git hooks after every `make setup` (verb-hook seam). post-boot: hooks ## Post-boot: ensure git hooks + agent-trailer guard are installed workspace-docs-audit: ## Markdown lint for workspace docs diff --git a/docs/guides/getting-started.md b/docs/guides/getting-started.md index fa2077502..7ae06a919 100644 --- a/docs/guides/getting-started.md +++ b/docs/guides/getting-started.md @@ -12,11 +12,11 @@ project. ## Bootstrap the Workspace ```bash -make boot APPLY=Y +make setup APPLY=Y make val ``` -`make boot APPLY=Y` installs the selected projects into the shared workspace environment and then runs validation. +`make setup APPLY=Y` installs the selected projects into the shared workspace environment and then runs validation. ## Navigate the Root Portal diff --git a/docs/guides/make-commands.md b/docs/guides/make-commands.md index 5941f4d7d..8007f0746 100644 --- a/docs/guides/make-commands.md +++ b/docs/guides/make-commands.md @@ -16,7 +16,7 @@ workspace raiz; cada projeto `flext-*` ainda possui seus próprios targets locai | Verbo | Domínio | Resumo | Exemplo | | --- | --- | --- | --- | -| `make boot` | workspace | Bootstrap de `.venv` + submódulos | `make boot APPLY=Y` | +| `make setup` | workspace | Bootstrap de `.venv` + submódulos | `make setup APPLY=Y` | | `make build` | build | Build/regen padronizado | `make build WHAT=gen APPLY=Y` | | `make check` | quality | Quality gates | `make check` | | `make clean` | workspace | Limpeza de artefatos | `make clean APPLY=Y` | @@ -110,7 +110,7 @@ make clean APPLY=Y # executa ```bash # Bootstrap inicial -make boot APPLY=Y +make setup APPLY=Y # Checagem rápida padrão (ruff + pyrefly) make check diff --git a/docs/guides/onboarding.md b/docs/guides/onboarding.md index 78ea7b0aa..be7fa0616 100644 --- a/docs/guides/onboarding.md +++ b/docs/guides/onboarding.md @@ -22,7 +22,7 @@ renaming any symbol. ```bash cd -make boot # Workspace .venv only (project .venv is forbidden — see AGENTS.md §6) +make setup # Workspace .venv only (project .venv is forbidden — see AGENTS.md §6) ``` The workspace `.venv/` is mandatory. Run validation through the root Make diff --git a/docs/projects/flext-auth.md b/docs/projects/flext-auth.md index 0df0e04a6..8bd9ed67c 100644 --- a/docs/projects/flext-auth.md +++ b/docs/projects/flext-auth.md @@ -22,7 +22,7 @@ Auth — Enterprise Authentication & Authorization Service". ## Quick start ```bash -make boot +make setup make check PROJECT=flext-auth ``` diff --git a/docs/projects/flext-db-oracle.md b/docs/projects/flext-db-oracle.md index 667bc72c6..a601a1be6 100644 --- a/docs/projects/flext-db-oracle.md +++ b/docs/projects/flext-db-oracle.md @@ -21,7 +21,7 @@ targets, dbt adapters — reuses one typed connection, query, and schema-introsp ## Quick start ```bash -make boot # workspace bootstrap (once) +make setup # workspace bootstrap (once) make check PROJECT=flext-db-oracle # lint + type gates ``` diff --git a/docs/projects/flext-dbt-ldap.md b/docs/projects/flext-dbt-ldap.md index f0bcc5eb6..7b620f858 100644 --- a/docs/projects/flext-dbt-ldap.md +++ b/docs/projects/flext-dbt-ldap.md @@ -22,7 +22,7 @@ patterns. ## Quick start ```bash -make boot # workspace bootstrap (once) +make setup # workspace bootstrap (once) make check PROJECT=flext-dbt-ldap # lint + type gates ``` diff --git a/docs/projects/flext-dbt-ldif.md b/docs/projects/flext-dbt-ldif.md index 7980a1245..7c575093e 100644 --- a/docs/projects/flext-dbt-ldif.md +++ b/docs/projects/flext-dbt-ldif.md @@ -23,7 +23,7 @@ data quality. ## Quick start ```bash -make boot # workspace bootstrap (once) +make setup # workspace bootstrap (once) make check PROJECT=flext-dbt-ldif # lint + type gates ``` diff --git a/docs/projects/flext-dbt-oracle-wms.md b/docs/projects/flext-dbt-oracle-wms.md index be6d6399d..6d55fd051 100644 --- a/docs/projects/flext-dbt-oracle-wms.md +++ b/docs/projects/flext-dbt-oracle-wms.md @@ -20,7 +20,7 @@ System (WMS) transformations with dbt. Its executable source lives in ## Quick start ```bash -make boot +make setup make check PROJECT=flext-dbt-oracle-wms make test PROJECT=flext-dbt-oracle-wms ``` diff --git a/docs/projects/flext-dbt-oracle.md b/docs/projects/flext-dbt-oracle.md index f86c01dd4..0bc0ffa09 100644 --- a/docs/projects/flext-dbt-oracle.md +++ b/docs/projects/flext-dbt-oracle.md @@ -23,7 +23,7 @@ than hand-rolled profiles. ## Quick start ```bash -make boot # workspace bootstrap (once) +make setup # workspace bootstrap (once) make check PROJECT=flext-dbt-oracle # lint + type gates ``` diff --git a/flext-infra b/flext-infra index c5688cc51..968836e41 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit c5688cc5180798e1b381c063cf09528e69fdb5b5 +Subproject commit 968836e41fcebea89893119e3eb30274f17eb3c9 diff --git a/scripts/cmd/boot/all.py b/scripts/cmd/boot/all.py index 8b9475441..b6b1e63d8 100644 --- a/scripts/cmd/boot/all.py +++ b/scripts/cmd/boot/all.py @@ -5,7 +5,7 @@ # domain = "workspace" # summary = "Bootstrap workspace .venv + submodules" # description = "Installs all projects into workspace .venv and initializes submodules." -# example = "make boot" +# example = "make setup" # target = "_boot_default" # mutates = true # aliases = [] diff --git a/scripts/cmd/boot/imp.py b/scripts/cmd/boot/imp.py index b625f2afe..38e788a17 100644 --- a/scripts/cmd/boot/imp.py +++ b/scripts/cmd/boot/imp.py @@ -5,7 +5,7 @@ # domain = "workspace" # summary = "Detect/fix import violations" # description = "Runs the canonical _imp target to detect and optionally fix import violations." -# example = "make boot WHAT=imp APPLY=Y" +# example = "make setup WHAT=imp APPLY=Y" # target = "_imp" # mutates = true # aliases = [] diff --git a/scripts/cmd/boot/stat.py b/scripts/cmd/boot/stat.py index 385ebf4a7..8b332f080 100644 --- a/scripts/cmd/boot/stat.py +++ b/scripts/cmd/boot/stat.py @@ -5,7 +5,7 @@ # domain = "workspace" # summary = "Show git status for workspace projects" # description = "Runs the canonical _stat target to show status across declared workspace projects and root." -# example = "make boot WHAT=stat" +# example = "make setup WHAT=stat" # target = "_stat" # mutates = false # aliases = [] diff --git a/scripts/cmd/boot/submodules.py b/scripts/cmd/boot/submodules.py index 42f55a2b6..5854042e0 100644 --- a/scripts/cmd/boot/submodules.py +++ b/scripts/cmd/boot/submodules.py @@ -5,7 +5,7 @@ # domain = "workspace" # summary = "Bootstrap workspace submodules" # description = "Runs the canonical bootstrap target for submodule initialization." -# example = "make boot WHAT=submodules" +# example = "make setup WHAT=submodules" # target = "_boot_submodules" # mutates = true # aliases = [] diff --git a/scripts/cmd/boot/sync.py b/scripts/cmd/boot/sync.py index 9a7f2e264..10f61a2d7 100644 --- a/scripts/cmd/boot/sync.py +++ b/scripts/cmd/boot/sync.py @@ -5,7 +5,7 @@ # domain = "workspace" # summary = "Sync project Makefiles and lazy imports" # description = "Runs the canonical _sync target to refresh project Makefiles and __init__.py lazy imports." -# example = "make boot WHAT=sync" +# example = "make setup WHAT=sync" # target = "_sync" # mutates = true # aliases = [] diff --git a/scripts/cmd/boot/venv.py b/scripts/cmd/boot/venv.py index f395e4cef..829ad1ebd 100644 --- a/scripts/cmd/boot/venv.py +++ b/scripts/cmd/boot/venv.py @@ -5,7 +5,7 @@ # domain = "workspace" # summary = "Bootstrap workspace virtualenv" # description = "Runs the canonical bootstrap target for workspace environment setup." -# example = "make boot WHAT=venv" +# example = "make setup WHAT=venv" # target = "_boot_venv" # mutates = true # aliases = [] From 66a3674999ff6141ba651374272149fd857144b8 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 13:18:50 -0300 Subject: [PATCH 130/165] chore(markdown): update markdownlint configuration and adjust line length limits - Increased line length limits for MD013 and code blocks. - Disabled MD025 and MD060 rules. - Updated project instructions in AGENTS.md to improve clarity. - Adjusted extraPaths in pyproject.toml for better path resolution. - Changed dolt_database name in metadata.json from 'flext' to 'mro'. --- .beads/metadata.json | 4 ++-- .markdownlint.json | 8 +++++--- AGENTS.md | 3 +-- flext-api | 2 +- flext-auth | 2 +- flext-cli | 2 +- flext-core | 2 +- flext-db-oracle | 2 +- flext-dbt-ldap | 2 +- flext-dbt-ldif | 2 +- flext-dbt-oracle | 2 +- flext-dbt-oracle-wms | 2 +- flext-grpc | 2 +- flext-infra | 2 +- flext-ldap | 2 +- flext-ldif | 2 +- flext-meltano | 2 +- flext-observability | 2 +- flext-oracle-oic | 2 +- flext-oracle-wms | 2 +- flext-plugin | 2 +- flext-quality | 2 +- flext-tap-ldap | 2 +- flext-tap-ldif | 2 +- flext-tap-oracle | 2 +- flext-tap-oracle-oic | 2 +- flext-tap-oracle-wms | 2 +- flext-target-ldap | 2 +- flext-target-ldif | 2 +- flext-target-oracle | 2 +- flext-target-oracle-oic | 2 +- flext-target-oracle-wms | 2 +- flext-tests | 2 +- flext-web | 2 +- pyproject.toml | 2 +- 35 files changed, 40 insertions(+), 39 deletions(-) diff --git a/.beads/metadata.json b/.beads/metadata.json index 82898c096..8cdf4a101 100644 --- a/.beads/metadata.json +++ b/.beads/metadata.json @@ -2,5 +2,5 @@ "database": "dolt", "backend": "dolt", "dolt_mode": "server", - "dolt_database": "flext" -} + "dolt_database": "mro" +} \ No newline at end of file diff --git a/.markdownlint.json b/.markdownlint.json index cbb93fe57..71c4c477c 100644 --- a/.markdownlint.json +++ b/.markdownlint.json @@ -1,9 +1,9 @@ { "default": true, "MD013": { - "line_length": 120, + "line_length": 360, "heading_line_length": 120, - "code_block_line_length": 120, + "code_block_line_length": 200, "tables": false }, "MD024": { @@ -20,5 +20,7 @@ "MD041": false, "MD050": { "style": "consistent" - } + }, + "MD025": false, + "MD060": false } diff --git a/AGENTS.md b/AGENTS.md index 27d366c75..6203177ff 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -15,8 +15,6 @@ # Project Instructions for AI Agents - - ## Authority Newest operator instruction wins. Layers (non-competing): @@ -261,6 +259,7 @@ make build WHAT=artifacts - Pydantic-2-way only; type via `t.*` / `p.*`; no `Any`; no compat shims; English-only. - Tests (`flext-tests`): public facades, no mocks, unified `conftest.py`, `tests/{unit,integration,e2e}/`. - Fix-forward git; scoped `git add` (never `-A`); track work with `bd`; ≤200 LOC/module; `uv` + `.venv` via `make`. + ## Learned User Preferences - Deduplicate via MRO / `m`; atomic consumer updates; keep Ruff + Pyrefly clean. diff --git a/flext-api b/flext-api index 893c9e669..0c0c3bd4e 160000 --- a/flext-api +++ b/flext-api @@ -1 +1 @@ -Subproject commit 893c9e6691baf11590d90ae33d766b420884a589 +Subproject commit 0c0c3bd4e62020a0399df1847a39e7310c6411d1 diff --git a/flext-auth b/flext-auth index ceaed1f2a..0c45e0d08 160000 --- a/flext-auth +++ b/flext-auth @@ -1 +1 @@ -Subproject commit ceaed1f2a0ce4cb8336244ffe8ad6a85fc6bc06c +Subproject commit 0c45e0d08089c86fe33f5497e4c96ef2523c4438 diff --git a/flext-cli b/flext-cli index 922ebee10..23a22675b 160000 --- a/flext-cli +++ b/flext-cli @@ -1 +1 @@ -Subproject commit 922ebee10fa97e9ecc5e4cca57aa3ab8336cba01 +Subproject commit 23a22675b571ba3c7838c965270170c6ef8ae27e diff --git a/flext-core b/flext-core index cb348e5b5..6ce1b9789 160000 --- a/flext-core +++ b/flext-core @@ -1 +1 @@ -Subproject commit cb348e5b5394997720f7fd13c65c225eff1918e1 +Subproject commit 6ce1b978984b431c75891aca2ffc9c5344a2ffc6 diff --git a/flext-db-oracle b/flext-db-oracle index a032c868e..ab9beab94 160000 --- a/flext-db-oracle +++ b/flext-db-oracle @@ -1 +1 @@ -Subproject commit a032c868e60dc78a76395563be56d08bdbc5247d +Subproject commit ab9beab943fc2ba8b1ec39ce6db8d869aea7cc94 diff --git a/flext-dbt-ldap b/flext-dbt-ldap index cf09c168b..2fe8c0178 160000 --- a/flext-dbt-ldap +++ b/flext-dbt-ldap @@ -1 +1 @@ -Subproject commit cf09c168b72c1125bc2b3cbec5218fff213e6387 +Subproject commit 2fe8c01786ebebc721fcb564c69c954c7ebb3ac6 diff --git a/flext-dbt-ldif b/flext-dbt-ldif index 94bbc30d7..17181e006 160000 --- a/flext-dbt-ldif +++ b/flext-dbt-ldif @@ -1 +1 @@ -Subproject commit 94bbc30d798063cfe151f2b18d3a5029ec58fa85 +Subproject commit 17181e006eb51a99d4381229ac594e3c8e06b862 diff --git a/flext-dbt-oracle b/flext-dbt-oracle index 2c570d089..fe92bbd94 160000 --- a/flext-dbt-oracle +++ b/flext-dbt-oracle @@ -1 +1 @@ -Subproject commit 2c570d089558a14bd00d161192d63c08cde93ede +Subproject commit fe92bbd94f82107e512ee77768999b24ffd04679 diff --git a/flext-dbt-oracle-wms b/flext-dbt-oracle-wms index 1004d8d84..3f992d407 160000 --- a/flext-dbt-oracle-wms +++ b/flext-dbt-oracle-wms @@ -1 +1 @@ -Subproject commit 1004d8d847b93ec6cc5bcf7791bdd1fa4f5f9e06 +Subproject commit 3f992d407fed643fd391d1498c27f4060d3f514f diff --git a/flext-grpc b/flext-grpc index c3ee363fb..72b52e9cb 160000 --- a/flext-grpc +++ b/flext-grpc @@ -1 +1 @@ -Subproject commit c3ee363fb858f692432f32c29163bcc86ca3f7c0 +Subproject commit 72b52e9cbbdd749c44854ba086742be69a7fb689 diff --git a/flext-infra b/flext-infra index 968836e41..b64050ded 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 968836e41fcebea89893119e3eb30274f17eb3c9 +Subproject commit b64050ded9d54ec48f06c32847da8db680c01a66 diff --git a/flext-ldap b/flext-ldap index b8561af34..2a818255a 160000 --- a/flext-ldap +++ b/flext-ldap @@ -1 +1 @@ -Subproject commit b8561af3421a37819f9f74f0f6c1e66071671a6c +Subproject commit 2a818255a35cc58db472a9095451bbbf247e6bef diff --git a/flext-ldif b/flext-ldif index 0faa101e8..a10f4f90f 160000 --- a/flext-ldif +++ b/flext-ldif @@ -1 +1 @@ -Subproject commit 0faa101e8799f2b6d43d2484b60420cf24e2d9b2 +Subproject commit a10f4f90fa255b811c2b72a98d2285be795bbf36 diff --git a/flext-meltano b/flext-meltano index f4c6b35c8..0622dbf87 160000 --- a/flext-meltano +++ b/flext-meltano @@ -1 +1 @@ -Subproject commit f4c6b35c8b172055952e3baca103fa3e79818c81 +Subproject commit 0622dbf871936c956d0123b794ac37d29eb698f4 diff --git a/flext-observability b/flext-observability index ec175f0e5..c32941104 160000 --- a/flext-observability +++ b/flext-observability @@ -1 +1 @@ -Subproject commit ec175f0e5bc9fa117807bd59589016544b4b13c5 +Subproject commit c32941104e63f6825b8e2c455da614f756c2f044 diff --git a/flext-oracle-oic b/flext-oracle-oic index e025af89f..b6778e899 160000 --- a/flext-oracle-oic +++ b/flext-oracle-oic @@ -1 +1 @@ -Subproject commit e025af89f06d362e89743cc553395e58fe324144 +Subproject commit b6778e8993fe6c719c62188131ee6aea9ba60e3e diff --git a/flext-oracle-wms b/flext-oracle-wms index 32dd2f853..b97c0275e 160000 --- a/flext-oracle-wms +++ b/flext-oracle-wms @@ -1 +1 @@ -Subproject commit 32dd2f853e34e857074281265b7952c71cd220ec +Subproject commit b97c0275e35f444e9216baf46c4b72e66e4514b7 diff --git a/flext-plugin b/flext-plugin index 90357795f..eff52f185 160000 --- a/flext-plugin +++ b/flext-plugin @@ -1 +1 @@ -Subproject commit 90357795f1f6c91cd0648e42992253a29fe31157 +Subproject commit eff52f18588f49e5b1a3b1160c3e35b208d1fb22 diff --git a/flext-quality b/flext-quality index bdc1eb4b3..790dca312 160000 --- a/flext-quality +++ b/flext-quality @@ -1 +1 @@ -Subproject commit bdc1eb4b376875aa7f9811dc371b4d77dfbfbeba +Subproject commit 790dca312e5d4d419e607b0333e8946caf5c4ab8 diff --git a/flext-tap-ldap b/flext-tap-ldap index 9f8a5b838..b4a71b526 160000 --- a/flext-tap-ldap +++ b/flext-tap-ldap @@ -1 +1 @@ -Subproject commit 9f8a5b83894b3df72e1f82da96c202ed478aa5bd +Subproject commit b4a71b526a9797a75594a0099c4e245807791af6 diff --git a/flext-tap-ldif b/flext-tap-ldif index f0a3d24ad..6a9569255 160000 --- a/flext-tap-ldif +++ b/flext-tap-ldif @@ -1 +1 @@ -Subproject commit f0a3d24adce735779be7119039045cb98acacd5e +Subproject commit 6a956925524790df0658ab9fe1016a3cfe3d8099 diff --git a/flext-tap-oracle b/flext-tap-oracle index 452224b18..d5c68152e 160000 --- a/flext-tap-oracle +++ b/flext-tap-oracle @@ -1 +1 @@ -Subproject commit 452224b18d84c3a9b8ea339c3117df10139dd5de +Subproject commit d5c68152e90339b5e9a2f589053718e2aaecff04 diff --git a/flext-tap-oracle-oic b/flext-tap-oracle-oic index 7ead8132e..cf79cf6ac 160000 --- a/flext-tap-oracle-oic +++ b/flext-tap-oracle-oic @@ -1 +1 @@ -Subproject commit 7ead8132eaaf1171d73a3a9dad02e2ee8a36000d +Subproject commit cf79cf6ac1c0493ec1f5a6af3fd68f25ad50c26d diff --git a/flext-tap-oracle-wms b/flext-tap-oracle-wms index bc12a83e6..d5a1a013c 160000 --- a/flext-tap-oracle-wms +++ b/flext-tap-oracle-wms @@ -1 +1 @@ -Subproject commit bc12a83e63196fa7fa74cf58a5bc58025cd08f51 +Subproject commit d5a1a013c465da1428bc6cd544231fd17eea4051 diff --git a/flext-target-ldap b/flext-target-ldap index 9f3510153..a1a98a820 160000 --- a/flext-target-ldap +++ b/flext-target-ldap @@ -1 +1 @@ -Subproject commit 9f3510153a87d9ecfe512f28869f7d3c3b5abdf6 +Subproject commit a1a98a820b404f7f4521ff2ea5f52611a0db3ade diff --git a/flext-target-ldif b/flext-target-ldif index 508484e4f..7e55f38d2 160000 --- a/flext-target-ldif +++ b/flext-target-ldif @@ -1 +1 @@ -Subproject commit 508484e4f5df9c5e129e1e3db98f4a2793314944 +Subproject commit 7e55f38d2fbd48e51ded8903c977bcd0d15e1a58 diff --git a/flext-target-oracle b/flext-target-oracle index e7718fbed..1ff70203f 160000 --- a/flext-target-oracle +++ b/flext-target-oracle @@ -1 +1 @@ -Subproject commit e7718fbed099c285f123181ca80b201e6231d121 +Subproject commit 1ff70203f51ccb3e656a4111b296863a0bd002fd diff --git a/flext-target-oracle-oic b/flext-target-oracle-oic index 9bc6d47d8..651059ce0 160000 --- a/flext-target-oracle-oic +++ b/flext-target-oracle-oic @@ -1 +1 @@ -Subproject commit 9bc6d47d8f0730400c2fed70ca1284bf1d3b0cda +Subproject commit 651059ce0b369794503eee5ef4955d901e00678f diff --git a/flext-target-oracle-wms b/flext-target-oracle-wms index f87dc8235..f5d21e37d 160000 --- a/flext-target-oracle-wms +++ b/flext-target-oracle-wms @@ -1 +1 @@ -Subproject commit f87dc82350d12918bf27af95efc9b61d361ee2d5 +Subproject commit f5d21e37d13596e462e570f32528ad30fea81367 diff --git a/flext-tests b/flext-tests index cb6ef093b..ab7262385 160000 --- a/flext-tests +++ b/flext-tests @@ -1 +1 @@ -Subproject commit cb6ef093b019a63cbcf1c811627180463473537f +Subproject commit ab72623859877e070904bdc365859bb886753a35 diff --git a/flext-web b/flext-web index 731e29456..00dc997a0 160000 --- a/flext-web +++ b/flext-web @@ -1 +1 @@ -Subproject commit 731e2945636be91b8e80ba86fd63fa3bbd0371a3 +Subproject commit 00dc997a09e5acccae2c33cabbbae0539d0006c0 diff --git a/pyproject.toml b/pyproject.toml index 7977750fc..f0db6229a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -412,7 +412,7 @@ exclude = [ ".venv", "vendor", ] -extraPaths = [".", "src"] +extraPaths = ["src", "."] include = [ "examples", "flext-api/examples", From 8a22244a17e77ee2b1574dc9c37d949b1ae95ba0 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 13:23:24 -0300 Subject: [PATCH 131/165] chore(workspace): advance flext-infra gitlink to rumdl MD013 alignment Points the flext-infra gitlink at 7dbd8d806, already published on origin/0.12.0-dev, which aligns rumdl MD013 limits with the workspace root markdownlint configuration landed in 66a367499. Beads: mro-5rtm (gitlink/submodule ancestry convergence) --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index b64050ded..7dbd8d806 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit b64050ded9d54ec48f06c32847da8db680c01a66 +Subproject commit 7dbd8d806845286a7cc178f770de00cc0b32e56d From 4ec7dce9fe698f8a0e566dc37685df1b857258e5 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 13:24:25 -0300 Subject: [PATCH 132/165] chore: advance flext-meltano gitlink after model cutover adopt Co-authored-by: Cursor --- flext-meltano | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-meltano b/flext-meltano index 0622dbf87..5cec61877 160000 --- a/flext-meltano +++ b/flext-meltano @@ -1 +1 @@ -Subproject commit 0622dbf871936c956d0123b794ac37d29eb698f4 +Subproject commit 5cec61877df1e853bb2c475e54ce805dcd3636af From 6dced3915aebb4e04a417afbfdffdd429f62fbcf Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 13:28:06 -0300 Subject: [PATCH 133/165] chore(workspace): absorb flext-infra and flext-meltano facade cutover gitlinks Advance submodule pointers after the extra-paths/serialize-make infra merge and the meltano settings-kwarg constructor fix. Co-authored-by: Cursor --- .markdownlint.json | 16 +++++++++++----- flext-infra | 2 +- flext-meltano | 2 +- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/.markdownlint.json b/.markdownlint.json index 71c4c477c..33d70412d 100644 --- a/.markdownlint.json +++ b/.markdownlint.json @@ -1,14 +1,16 @@ { "default": true, "MD013": { - "line_length": 360, - "heading_line_length": 120, - "code_block_line_length": 200, + "line_length": 500, + "heading_line_length": 200, + "code_block_line_length": 500, "tables": false }, "MD024": { "siblings_only": true }, + "MD025": false, + "MD031": false, "MD033": { "allowed_elements": [ "br", @@ -17,10 +19,14 @@ "kbd" ] }, + "MD036": false, + "MD040": false, "MD041": false, "MD050": { "style": "consistent" }, - "MD025": false, - "MD060": false + "MD051": false, + "MD057": false, + "MD060": false, + "MD076": false } diff --git a/flext-infra b/flext-infra index 7dbd8d806..152cf2fe9 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 7dbd8d806845286a7cc178f770de00cc0b32e56d +Subproject commit 152cf2fe97fd295a36dc5a3333b83701de3f0cf6 diff --git a/flext-meltano b/flext-meltano index 5cec61877..2aae9d062 160000 --- a/flext-meltano +++ b/flext-meltano @@ -1 +1 @@ -Subproject commit 5cec61877df1e853bb2c475e54ce805dcd3636af +Subproject commit 2aae9d0626c83d296ee6d2df6aa3e15f6ad97e5c From 3977453fd637bfd8b60fa1d2567ce8be29e70249 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 13:28:11 -0300 Subject: [PATCH 134/165] chore: sync markdownlint SSOT and advance flext-infra gitlink Co-authored-by: Cursor --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index 152cf2fe9..9efc4b63a 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 152cf2fe97fd295a36dc5a3333b83701de3f0cf6 +Subproject commit 9efc4b63ac76f7a8b2d47c7cf14588a33e2082b5 From 4131e859f6e4c8a668ad4da84778a42244ea517a Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 13:32:32 -0300 Subject: [PATCH 135/165] chore: sync complete markdownlint SSOT and member gitlinks Co-authored-by: Cursor --- .markdownlint.json | 5 +++++ flext-api | 2 +- flext-infra | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/.markdownlint.json b/.markdownlint.json index 33d70412d..a4dd3f4cb 100644 --- a/.markdownlint.json +++ b/.markdownlint.json @@ -1,11 +1,14 @@ { "default": true, + "MD001": false, "MD013": { "line_length": 500, "heading_line_length": 200, "code_block_line_length": 500, "tables": false }, + "MD022": false, + "MD023": false, "MD024": { "siblings_only": true }, @@ -22,6 +25,8 @@ "MD036": false, "MD040": false, "MD041": false, + "MD042": false, + "MD046": false, "MD050": { "style": "consistent" }, diff --git a/flext-api b/flext-api index 0c0c3bd4e..34a4453a9 160000 --- a/flext-api +++ b/flext-api @@ -1 +1 @@ -Subproject commit 0c0c3bd4e62020a0399df1847a39e7310c6411d1 +Subproject commit 34a4453a9cea9227e282c89b433fc0e4d02c49f1 diff --git a/flext-infra b/flext-infra index 9efc4b63a..0b74b7b1a 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 9efc4b63ac76f7a8b2d47c7cf14588a33e2082b5 +Subproject commit 0b74b7b1ab0850c112f7968c4c39293fb3d9407b From 69a038c78b17174a217af68f5167b753d17ea619 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 13:33:26 -0300 Subject: [PATCH 136/165] chore: advance flext-meltano gitlink after singer service adopt Co-authored-by: Cursor --- flext-meltano | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-meltano b/flext-meltano index 2aae9d062..de6c5c4a9 160000 --- a/flext-meltano +++ b/flext-meltano @@ -1 +1 @@ -Subproject commit 2aae9d0626c83d296ee6d2df6aa3e15f6ad97e5c +Subproject commit de6c5c4a9df5887a283cb49fb7fc3a2cc8119142 From add30b0628727e863ef747aeca3c23b11182c964 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 13:34:38 -0300 Subject: [PATCH 137/165] chore: advance member gitlinks after final adopt Co-authored-by: Cursor --- flext-db-oracle | 2 +- flext-meltano | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/flext-db-oracle b/flext-db-oracle index ab9beab94..c9e87dd56 160000 --- a/flext-db-oracle +++ b/flext-db-oracle @@ -1 +1 @@ -Subproject commit ab9beab943fc2ba8b1ec39ce6db8d869aea7cc94 +Subproject commit c9e87dd561cda7a4115a654b8e3e08ca07c77756 diff --git a/flext-meltano b/flext-meltano index de6c5c4a9..fbe4fda40 160000 --- a/flext-meltano +++ b/flext-meltano @@ -1 +1 @@ -Subproject commit de6c5c4a9df5887a283cb49fb7fc3a2cc8119142 +Subproject commit fbe4fda40c75355f620cd2f4dc8a1d901c9d29b6 From 4c3e6fe7f9bc0c077954525b566e495e10a3ec89 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 13:35:19 -0300 Subject: [PATCH 138/165] chore: advance oracle member gitlinks after settings adopt Co-authored-by: Cursor --- flext-oracle-oic | 2 +- flext-oracle-wms | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/flext-oracle-oic b/flext-oracle-oic index b6778e899..670bf563d 160000 --- a/flext-oracle-oic +++ b/flext-oracle-oic @@ -1 +1 @@ -Subproject commit b6778e8993fe6c719c62188131ee6aea9ba60e3e +Subproject commit 670bf563d13f091b6c6e99aa7b80ecdbf7856948 diff --git a/flext-oracle-wms b/flext-oracle-wms index b97c0275e..8d4b1d8e2 160000 --- a/flext-oracle-wms +++ b/flext-oracle-wms @@ -1 +1 @@ -Subproject commit b97c0275e35f444e9216baf46c4b72e66e4514b7 +Subproject commit 8d4b1d8e2e2b4bf85c24f2ffd882f7f4d4f6c10c From 9689631678bf14d1ebc26f9b2e0b793649d00562 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 13:47:47 -0300 Subject: [PATCH 139/165] docs(agents): switch Beads managed block to profile:minimal Root AGENTS.md exceeded the 3000-token waza budget solely from Beads profile:full. Replace with the bd init --agents-profile=minimal managed block (markdownlint-safe URL/list spacing) and keep the FLEXT pointer index intact. Co-authored-by: Cursor --- AGENTS.md | 124 ++++++++---------------------------------------------- 1 file changed, 18 insertions(+), 106 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 6203177ff..3b8ee2d06 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -34,124 +34,39 @@ Docs: [`docs/GOVERNANCE.md`](docs/GOVERNANCE.md) · [`docs/architecture/adr/`](docs/architecture/adr/) · [`docs/AI_HUB_CONSUMER.md`](docs/AI_HUB_CONSUMER.md) - -## Issue Tracking with bd (beads) + +## Beads Issue Tracker -**IMPORTANT**: This project uses **bd (beads)** for ALL issue tracking. Do NOT use markdown TODOs, task lists, or other -tracking methods. +This project uses **bd (beads)** for issue tracking. Run `bd prime` to see full workflow context and commands. -### Why bd? - -- Dependency-aware: Track blockers and relationships between issues -- Git-friendly: Dolt-powered version control with native sync -- Agent-optimized: JSON output, ready work detection, discovered-from links -- Prevents duplicate tracking systems and confusion - -### Quick Start - -**Check for ready work:** - -```bash -bd ready --json -``` - -**Create new issues:** - -```bash -bd create "Issue title" --description="Detailed context" -t bug|feature|task -p 0-4 --json -bd create "Issue title" --description="What this issue is about" -p 1 --deps discovered-from:bd-123 --json -``` - -**Claim and update:** - -```bash -bd update --claim --json -bd update bd-42 --priority 1 --json -``` - -**Complete work:** +### Quick Reference ```bash -bd close bd-42 --reason "Completed" --json +bd ready # Find available work +bd show # View issue details +bd update --claim # Claim work +bd close # Complete work ``` -### Issue Types - -- `bug` - Something broken -- `feature` - New functionality -- `task` - Work item (tests, docs, refactoring) -- `epic` - Large feature with subtasks -- `chore` - Maintenance (dependencies, tooling) +### Rules -### Priorities +- Use `bd` for ALL task tracking — do NOT use TodoWrite, TaskCreate, or markdown TODO lists +- Run `bd prime` for detailed command reference and session close protocol +- Use `bd remember` for persistent knowledge — do NOT use MEMORY.md files -- `0` - Critical (security, data loss, broken builds) -- `1` - High (major features, important bugs) -- `2` - Medium (default, nice-to-have) -- `3` - Low (polish, optimization) -- `4` - Backlog (future ideas) - -### Workflow for AI Agents - -1. **Check ready work**: `bd ready` shows unblocked issues -2. **Claim your task atomically**: `bd update --claim` -3. **Work on it**: Implement, test, document -4. **Discover new work?** Create linked issue: - - `bd create "Found bug" --description="Details about what was found" -p 1 --deps discovered-from:` -5. **Complete**: `bd close --reason "Done"` - -### Quality - -- Use `--acceptance` and `--design` fields when creating issues -- Use `--validate` to check description completeness - -### Lifecycle - -- `bd defer ` / `bd supersede ` for issue management -- `bd stale` / `bd orphans` / `bd lint` for hygiene -- `bd human ` to flag for human decisions -- `bd formula list` / `bd mol pour ` for structured workflows - -### Sync - -bd stores issue history in Dolt: - -- Each write auto-commits to Dolt history -- Use `bd dolt push`/`bd dolt pull` for remote sync -- Do not treat `.beads/issues.jsonl` as the sync protocol - -**Architecture in one line:** issues live in a local Dolt DB; sync uses `refs/dolt/data` on your git remote; -`.beads/issues.jsonl` is a passive export. See -for details and anti-patterns. - -### Important Rules - -- ✅ Use bd for ALL task tracking -- ✅ Always use `--json` flag for programmatic use -- ✅ Link discovered work with `discovered-from` dependencies -- ✅ Check `bd ready` before asking "what should I work on?" -- ❌ Do NOT create markdown TODO lists -- ❌ Do NOT use external issue trackers -- ❌ Do NOT duplicate tracking systems - -For more details, see README.md and docs/QUICKSTART.md. +**Architecture in one line:** issues live in a local Dolt DB; sync uses `refs/dolt/data` on your git remote; `.beads/issues.jsonl` is a passive export. See for details and anti-patterns. ## Agent Context Profiles -The managed Beads block is task-tracking guidance, not permission to override repository, user, or orchestrator -instructions. +The managed Beads block is task-tracking guidance, not permission to override repository, user, or orchestrator instructions. -- **Conservative (default)**: Use `bd` for task tracking. Do not run git commits, git pushes, or Dolt remote sync - unless explicitly asked. At handoff, report changed files, validation, and suggested next commands. -- **Minimal**: Keep tool instruction files as pointers to `bd prime`; use the same conservative git policy unless - active instructions say otherwise. -- **Team-maintainer**: Only when the repository explicitly opts in, agents may close beads, run quality gates, commit, - and push as part of session close. A current "do not commit" or "do not push" instruction still wins. +- **Conservative (default)**: Use `bd` for task tracking. Do not run git commits, git pushes, or Dolt remote sync unless explicitly asked. At handoff, report changed files, validation, and suggested next commands. +- **Minimal**: Keep tool instruction files as pointers to `bd prime`; use the same conservative git policy unless active instructions say otherwise. +- **Team-maintainer**: Only when the repository explicitly opts in, agents may close beads, run quality gates, commit, and push as part of session close. A current "do not commit" or "do not push" instruction still wins. ## Session Completion -This protocol applies when ending a Beads implementation workflow. It is subordinate to explicit user, repository, and -orchestrator instructions. +This protocol applies when ending a Beads implementation workflow. It is subordinate to explicit user, repository, and orchestrator instructions. 1. **File issues for remaining work** - Create beads for anything that needs follow-up 2. **Run quality gates** (if code changed) - Tests, linters, builds @@ -164,10 +79,8 @@ orchestrator instructions. # Team-maintainer opt-in only, unless current instructions forbid it: git pull --rebase - bd dolt push git push git status - ``` 5. **Hand off** - Summarize changes, validation, issue status, and any blocked sync/commit/push step @@ -177,7 +90,6 @@ orchestrator instructions. - Explicit user or orchestrator instructions override this Beads block. - Do not commit or push without clear authority from the active profile or the current user request. - If a required sync or push is blocked, stop and report the exact command and error. - ## Overview From b5b18ca7ee804469676c560da9997debdd6dc1bf Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 13:51:40 -0300 Subject: [PATCH 140/165] chore(workspace): advance singer/dbt gitlinks after settings adopt Co-authored-by: Cursor --- flext-dbt-ldap | 2 +- flext-dbt-ldif | 2 +- flext-dbt-oracle | 2 +- flext-dbt-oracle-wms | 2 +- flext-tap-ldap | 2 +- flext-tap-ldif | 2 +- flext-tap-oracle | 2 +- flext-tap-oracle-oic | 2 +- flext-tap-oracle-wms | 2 +- flext-target-ldap | 2 +- flext-target-ldif | 2 +- flext-target-oracle | 2 +- flext-target-oracle-oic | 2 +- flext-target-oracle-wms | 2 +- 14 files changed, 14 insertions(+), 14 deletions(-) diff --git a/flext-dbt-ldap b/flext-dbt-ldap index 2fe8c0178..b3a947b2b 160000 --- a/flext-dbt-ldap +++ b/flext-dbt-ldap @@ -1 +1 @@ -Subproject commit 2fe8c01786ebebc721fcb564c69c954c7ebb3ac6 +Subproject commit b3a947b2bd40c3b356a5327c15cb0c1aa86da3bf diff --git a/flext-dbt-ldif b/flext-dbt-ldif index 17181e006..9fe7341d5 160000 --- a/flext-dbt-ldif +++ b/flext-dbt-ldif @@ -1 +1 @@ -Subproject commit 17181e006eb51a99d4381229ac594e3c8e06b862 +Subproject commit 9fe7341d5c5ce1177c07347587d2bf642b9987ac diff --git a/flext-dbt-oracle b/flext-dbt-oracle index fe92bbd94..53498758d 160000 --- a/flext-dbt-oracle +++ b/flext-dbt-oracle @@ -1 +1 @@ -Subproject commit fe92bbd94f82107e512ee77768999b24ffd04679 +Subproject commit 53498758db49964bc8a1c0451f1a8555588a7a82 diff --git a/flext-dbt-oracle-wms b/flext-dbt-oracle-wms index 3f992d407..483b07070 160000 --- a/flext-dbt-oracle-wms +++ b/flext-dbt-oracle-wms @@ -1 +1 @@ -Subproject commit 3f992d407fed643fd391d1498c27f4060d3f514f +Subproject commit 483b07070c84e38d3580960fecd117b616ff3f11 diff --git a/flext-tap-ldap b/flext-tap-ldap index b4a71b526..6cb2c07f0 160000 --- a/flext-tap-ldap +++ b/flext-tap-ldap @@ -1 +1 @@ -Subproject commit b4a71b526a9797a75594a0099c4e245807791af6 +Subproject commit 6cb2c07f06b2343c83f909a3d7afc8b4ac3a2eed diff --git a/flext-tap-ldif b/flext-tap-ldif index 6a9569255..2f1ec7544 160000 --- a/flext-tap-ldif +++ b/flext-tap-ldif @@ -1 +1 @@ -Subproject commit 6a956925524790df0658ab9fe1016a3cfe3d8099 +Subproject commit 2f1ec7544d46bdea93466ce0050d1e0f7dc0004f diff --git a/flext-tap-oracle b/flext-tap-oracle index d5c68152e..655c197cb 160000 --- a/flext-tap-oracle +++ b/flext-tap-oracle @@ -1 +1 @@ -Subproject commit d5c68152e90339b5e9a2f589053718e2aaecff04 +Subproject commit 655c197cbd5d5fe1d306e5485bddce16b9c3790f diff --git a/flext-tap-oracle-oic b/flext-tap-oracle-oic index cf79cf6ac..6ee3688e6 160000 --- a/flext-tap-oracle-oic +++ b/flext-tap-oracle-oic @@ -1 +1 @@ -Subproject commit cf79cf6ac1c0493ec1f5a6af3fd68f25ad50c26d +Subproject commit 6ee3688e6b8b242b6ea995053dffee41a3832108 diff --git a/flext-tap-oracle-wms b/flext-tap-oracle-wms index d5a1a013c..e5bfa86bc 160000 --- a/flext-tap-oracle-wms +++ b/flext-tap-oracle-wms @@ -1 +1 @@ -Subproject commit d5a1a013c465da1428bc6cd544231fd17eea4051 +Subproject commit e5bfa86bcfc306f7a7e51ac27dda5ed67cd93706 diff --git a/flext-target-ldap b/flext-target-ldap index a1a98a820..a4142af50 160000 --- a/flext-target-ldap +++ b/flext-target-ldap @@ -1 +1 @@ -Subproject commit a1a98a820b404f7f4521ff2ea5f52611a0db3ade +Subproject commit a4142af50e0b0acd845e948012eeb445527920ec diff --git a/flext-target-ldif b/flext-target-ldif index 7e55f38d2..8538266ae 160000 --- a/flext-target-ldif +++ b/flext-target-ldif @@ -1 +1 @@ -Subproject commit 7e55f38d2fbd48e51ded8903c977bcd0d15e1a58 +Subproject commit 8538266ae78f3b512531633171b48120ba069c68 diff --git a/flext-target-oracle b/flext-target-oracle index 1ff70203f..2d48d977a 160000 --- a/flext-target-oracle +++ b/flext-target-oracle @@ -1 +1 @@ -Subproject commit 1ff70203f51ccb3e656a4111b296863a0bd002fd +Subproject commit 2d48d977a8a46cf9ce6b370231ee8aa2ba1b996b diff --git a/flext-target-oracle-oic b/flext-target-oracle-oic index 651059ce0..fa8538088 160000 --- a/flext-target-oracle-oic +++ b/flext-target-oracle-oic @@ -1 +1 @@ -Subproject commit 651059ce0b369794503eee5ef4955d901e00678f +Subproject commit fa8538088f264e5a01c22373db32ccdecad407fb diff --git a/flext-target-oracle-wms b/flext-target-oracle-wms index f5d21e37d..b5017e057 160000 --- a/flext-target-oracle-wms +++ b/flext-target-oracle-wms @@ -1 +1 @@ -Subproject commit f5d21e37d13596e462e570f32528ad30fea81367 +Subproject commit b5017e057c61e0d8cfc4682b5121544309b78733 From c122c673060f45251af8ffd631b5e2a4230470f9 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 13:57:54 -0300 Subject: [PATCH 141/165] chore: advance flext-meltano gitlink after skip-test cleanup Co-authored-by: Cursor --- flext-meltano | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-meltano b/flext-meltano index fbe4fda40..2ef26c8cc 160000 --- a/flext-meltano +++ b/flext-meltano @@ -1 +1 @@ -Subproject commit fbe4fda40c75355f620cd2f4dc8a1d901c9d29b6 +Subproject commit 2ef26c8cc9b64f501e269ef782dea30a019a8487 From 7ddf42f1fae1e33c4e0f10d5daa8bca6ac5fdb32 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 14:01:56 -0300 Subject: [PATCH 142/165] chore(workspace): advance flext-infra gitlink after apply-guard adopt Co-authored-by: Cursor --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index 0b74b7b1a..6fc7641e7 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 0b74b7b1ab0850c112f7968c4c39293fb3d9407b +Subproject commit 6fc7641e787ff45fc5f9fa665e9db12ffdf1c2ad From ebd0b13f796354b8d1ab15d9e46f903ede1b54ba Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 14:18:38 -0300 Subject: [PATCH 143/165] chore(gitlink): pin infra/cli/meltano/dbt-ldif to 0.12.0-dev tips Co-authored-by: Cursor --- flext-cli | 2 +- flext-dbt-ldif | 2 +- flext-infra | 2 +- flext-meltano | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/flext-cli b/flext-cli index 23a22675b..e9b4a0cc5 160000 --- a/flext-cli +++ b/flext-cli @@ -1 +1 @@ -Subproject commit 23a22675b571ba3c7838c965270170c6ef8ae27e +Subproject commit e9b4a0cc5e4e210d74c6021c226a0b9cfcda1758 diff --git a/flext-dbt-ldif b/flext-dbt-ldif index 9fe7341d5..ff4edcab7 160000 --- a/flext-dbt-ldif +++ b/flext-dbt-ldif @@ -1 +1 @@ -Subproject commit 9fe7341d5c5ce1177c07347587d2bf642b9987ac +Subproject commit ff4edcab78b1c99321aa6905a54cbd6d39e531db diff --git a/flext-infra b/flext-infra index 6fc7641e7..d6cf300db 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 6fc7641e787ff45fc5f9fa665e9db12ffdf1c2ad +Subproject commit d6cf300db088c99e9f7e706b77f68039b0d765a8 diff --git a/flext-meltano b/flext-meltano index 2ef26c8cc..d5bc8c4cc 160000 --- a/flext-meltano +++ b/flext-meltano @@ -1 +1 @@ -Subproject commit 2ef26c8cc9b64f501e269ef782dea30a019a8487 +Subproject commit d5bc8c4cc72cc8deff6509b6836122c59cb8bf6f From 5928ff621d53f05a9ec1f80cb5dfbd26b2cb958a Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 14:19:12 -0300 Subject: [PATCH 144/165] chore(docker): update .dockerignore to include tests fixtures and modify flext-infra subproject commit status --- .dockerignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.dockerignore b/.dockerignore index 7bdc79559..4b46c38bb 100644 --- a/.dockerignore +++ b/.dockerignore @@ -111,4 +111,4 @@ internal.invalid.* !.default-python-packages !config/ !scripts/dispatch.py -!ci/docker/ +!tests/fixtures/ci/docker/ From 62a090bb50e3ca1d2011d1278b2d35de487eb647 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 14:25:58 -0300 Subject: [PATCH 145/165] chore(gitlink): pin flext-infra to 0.12.0-dev tip Co-authored-by: Cursor --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index d6cf300db..bb7d8de0a 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit d6cf300db088c99e9f7e706b77f68039b0d765a8 +Subproject commit bb7d8de0a3d740eb19be6f06bfd88d3f25a05962 From e1a41e3ab9cfa0eb01ff66f88c81f2f9e9106ba1 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 14:26:09 -0300 Subject: [PATCH 146/165] chore(gitlink): pin flext-infra after go_version/codegen absorb Co-authored-by: Cursor --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index bb7d8de0a..ccf6d35ec 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit bb7d8de0a3d740eb19be6f06bfd88d3f25a05962 +Subproject commit ccf6d35ec7e02690529f2f3d7405f98d1c813b4c From 9e439e2c36ce902742be7e0da39b7247222c4874 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 14:30:30 -0300 Subject: [PATCH 147/165] chore(gitlink): bump flext-infra to accepts_apply tip Land flext-infra#148 (37e70a61) plus follow-on mise go_version template so flext can regenerate Makefile with run accepts_apply and live allowlist. Co-authored-by: Cursor --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index ccf6d35ec..7d8f007cd 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit ccf6d35ec7e02690529f2f3d7405f98d1c813b4c +Subproject commit 7d8f007cde835961f8606a59795748fa2fa46ac2 From 528a96a3c0018e4661ec75ceff0445c109b386dc Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 14:45:25 -0300 Subject: [PATCH 148/165] chore(make): regen root projections for run accepts_apply Unlock APPLY=Y on make run from flext-infra tip (includes #148) and migrate managed CI docker fixtures to tests/fixtures with matching gitignore/mise. Co-authored-by: Cursor --- .github/workflows/ci-matrix.yml | 17 +++--- .github/workflows/ci.yml | 13 +++- .gitignore | 15 ++--- .mise.toml | 4 ++ Makefile | 60 ++++++++++--------- flext-infra | 2 +- .../fixtures/ci}/docker/alpine.Dockerfile | 2 +- .../fixtures/ci}/docker/arch.Dockerfile | 2 +- .../fixtures/ci}/docker/debian.Dockerfile | 2 +- .../fixtures/ci}/docker/fedora.Dockerfile | 2 +- .../fixtures/ci}/docker/ubuntu.Dockerfile | 2 +- 11 files changed, 68 insertions(+), 53 deletions(-) rename {ci => tests/fixtures/ci}/docker/alpine.Dockerfile (97%) rename {ci => tests/fixtures/ci}/docker/arch.Dockerfile (97%) rename {ci => tests/fixtures/ci}/docker/debian.Dockerfile (97%) rename {ci => tests/fixtures/ci}/docker/fedora.Dockerfile (96%) rename {ci => tests/fixtures/ci}/docker/ubuntu.Dockerfile (97%) diff --git a/.github/workflows/ci-matrix.yml b/.github/workflows/ci-matrix.yml index 45352fb3d..8ce392ca6 100644 --- a/.github/workflows/ci-matrix.yml +++ b/.github/workflows/ci-matrix.yml @@ -6,16 +6,18 @@ # Multi-environment CI base: proves the project bootstrap and canonical Make # verbs work identically across distros, macOS, and Windows. The CI invokes # the project's own Make surface; it never reimplements bootstrap. +# Runs only on main (direct push or non-draft PR targeting main). --- name: ci-matrix # === SECTION: triggers (managed) === -# Source: config:repository_branch +# Source: main promotion only (integration branch uses blocking ci.yml alone) "on": push: - branches: [0.12.0-dev] + branches: [main] pull_request: - branches: [0.12.0-dev] + branches: [main] + types: [opened, synchronize, reopened, ready_for_review] workflow_dispatch: {} # End SECTION: triggers @@ -39,6 +41,7 @@ jobs: # Clean-machine proof per distro: build the distro image (which runs the # full project bootstrap at image-build time), then smoke the verb surface # inside the built container. + if: ${{ github.event_name != 'pull_request' || github.event.pull_request.draft == false }} runs-on: ubuntu-latest strategy: fail-fast: false @@ -51,7 +54,7 @@ jobs: - name: Build ${{ matrix.distro }} image run: >- docker build - -f ci/docker/${{ matrix.distro }}.Dockerfile + -f tests/fixtures/ci/docker/${{ matrix.distro }}.Dockerfile -t ci-matrix-${{ matrix.distro }} . - name: Bootstrap + verb smoke (${{ matrix.distro }}) @@ -63,11 +66,10 @@ jobs: # === SECTION: macos (managed) === # Source: template + config:github_actions.checkout/setup-python/mise/setup-uv macos: + if: ${{ github.event_name != 'pull_request' || github.event.pull_request.draft == false }} runs-on: macos-latest steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - - name: Setup Python - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: submodules: false - name: Setup Python @@ -89,11 +91,10 @@ jobs: # === SECTION: windows (managed) === # Source: template + config:github_actions.checkout/setup-python/mise/setup-uv windows: + if: ${{ github.event_name != 'pull_request' || github.event.pull_request.draft == false }} runs-on: windows-latest steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - - name: Setup Python - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: submodules: false - name: Setup Python diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 162a1a7e5..13ffda175 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,11 +7,18 @@ name: CI # === SECTION: triggers (managed) === -# Source: config:repository_branch; promotion is integration -> main only +# Source: config:repository_branch +# Direct push to the integration branch or main runs CI. +# Non-draft PRs targeting main run CI. Draft PRs and other branches do not. "on": - pull_request: + push: branches: - 0.12.0-dev + - main + pull_request: + branches: + - main + types: [opened, synchronize, reopened, ready_for_review] # End SECTION: triggers # === SECTION: permissions (managed) === @@ -25,7 +32,7 @@ jobs: # Source: template + config:github_actions.* ci: name: ci - if: ${{ github.head_ref == '0.12.0-dev' }} + if: ${{ github.event_name != 'pull_request' || github.event.pull_request.draft == false }} runs-on: ubuntu-latest timeout-minutes: 60 env: diff --git a/.gitignore b/.gitignore index e618bfd73..6b38e9107 100644 --- a/.gitignore +++ b/.gitignore @@ -376,13 +376,14 @@ CLAUDE.local.md !.github/scripts/check-cqrs-compliance.sh !.github/scripts/flext-law-loop.sh !.github/scripts/install-git-hooks.sh -!ci/ -!ci/docker/ -!ci/docker/alpine.Dockerfile -!ci/docker/arch.Dockerfile -!ci/docker/debian.Dockerfile -!ci/docker/fedora.Dockerfile -!ci/docker/ubuntu.Dockerfile +!tests/fixtures/ +!tests/fixtures/ci/ +!tests/fixtures/ci/docker/ +!tests/fixtures/ci/docker/alpine.Dockerfile +!tests/fixtures/ci/docker/arch.Dockerfile +!tests/fixtures/ci/docker/debian.Dockerfile +!tests/fixtures/ci/docker/fedora.Dockerfile +!tests/fixtures/ci/docker/ubuntu.Dockerfile !.github/workflows/ !.github/workflows/ci-matrix.yml !.github/workflows/ci.yml diff --git a/.mise.toml b/.mise.toml index 4c649e27e..11f252b03 100644 --- a/.mise.toml +++ b/.mise.toml @@ -20,5 +20,9 @@ taplo = "0.10.0" ast-grep = "0.45.0" gitleaks = "8.30.1" tokei = "14.0.0" +# mise resolves go: backend selectors through a dependency graph, so the Go +# runtime must be a declared tool; without it mise looks for go on PATH and +# every runner without an ambient toolchain fails to install beads. +go = "1.26.5" "go:github.com/steveyegge/beads/cmd/bd" = "423afdcb2813e36b2bc4c96b07e0fc3516a34495" # End SECTION: tools diff --git a/Makefile b/Makefile index c96175002..7747a8d9b 100644 --- a/Makefile +++ b/Makefile @@ -110,21 +110,22 @@ endif PUBLIC_VERBS := help setup deps build check test fmt fix run status docs clean release gen worktree BUILTIN_VERBS := help setup deps build check test fmt fix run status docs clean release gen worktree SCRIPT_VERBS := -_ALLOWED_WHATS_help := usage -_ALLOWED_WHATS_setup := environment -_ALLOWED_WHATS_deps := check lock upgrade -_ALLOWED_WHATS_build := artifacts -_ALLOWED_WHATS_check := all -_ALLOWED_WHATS_test := all -_ALLOWED_WHATS_fmt := check all -_ALLOWED_WHATS_fix := check all -_ALLOWED_WHATS_run := default -_ALLOWED_WHATS_status := diagnostics -_ALLOWED_WHATS_docs := all generate fix audit build validate -_ALLOWED_WHATS_clean := generated -_ALLOWED_WHATS_release := status -_ALLOWED_WHATS_gen := check all -_ALLOWED_WHATS_worktree := list add update remove + +_ALLOWED_WHATS_help := usage $(shell sed -n 's/^_custom_help_\([a-z0-9_-]*\):.*/\1/p' "$(MAKEFILE_ROOT)/custom.mk" 2>/dev/null | sort -u | tr '\n' ' ') +_ALLOWED_WHATS_setup := environment $(shell sed -n 's/^_custom_setup_\([a-z0-9_-]*\):.*/\1/p' "$(MAKEFILE_ROOT)/custom.mk" 2>/dev/null | sort -u | tr '\n' ' ') +_ALLOWED_WHATS_deps := check lock upgrade $(shell sed -n 's/^_custom_deps_\([a-z0-9_-]*\):.*/\1/p' "$(MAKEFILE_ROOT)/custom.mk" 2>/dev/null | sort -u | tr '\n' ' ') +_ALLOWED_WHATS_build := artifacts $(shell sed -n 's/^_custom_build_\([a-z0-9_-]*\):.*/\1/p' "$(MAKEFILE_ROOT)/custom.mk" 2>/dev/null | sort -u | tr '\n' ' ') +_ALLOWED_WHATS_check := all $(shell sed -n 's/^_custom_check_\([a-z0-9_-]*\):.*/\1/p' "$(MAKEFILE_ROOT)/custom.mk" 2>/dev/null | sort -u | tr '\n' ' ') +_ALLOWED_WHATS_test := all $(shell sed -n 's/^_custom_test_\([a-z0-9_-]*\):.*/\1/p' "$(MAKEFILE_ROOT)/custom.mk" 2>/dev/null | sort -u | tr '\n' ' ') +_ALLOWED_WHATS_fmt := check all $(shell sed -n 's/^_custom_fmt_\([a-z0-9_-]*\):.*/\1/p' "$(MAKEFILE_ROOT)/custom.mk" 2>/dev/null | sort -u | tr '\n' ' ') +_ALLOWED_WHATS_fix := check all $(shell sed -n 's/^_custom_fix_\([a-z0-9_-]*\):.*/\1/p' "$(MAKEFILE_ROOT)/custom.mk" 2>/dev/null | sort -u | tr '\n' ' ') +_ALLOWED_WHATS_run := default $(shell sed -n 's/^_custom_run_\([a-z0-9_-]*\):.*/\1/p' "$(MAKEFILE_ROOT)/custom.mk" 2>/dev/null | sort -u | tr '\n' ' ') +_ALLOWED_WHATS_status := diagnostics $(shell sed -n 's/^_custom_status_\([a-z0-9_-]*\):.*/\1/p' "$(MAKEFILE_ROOT)/custom.mk" 2>/dev/null | sort -u | tr '\n' ' ') +_ALLOWED_WHATS_docs := all generate fix audit build validate $(shell sed -n 's/^_custom_docs_\([a-z0-9_-]*\):.*/\1/p' "$(MAKEFILE_ROOT)/custom.mk" 2>/dev/null | sort -u | tr '\n' ' ') +_ALLOWED_WHATS_clean := generated $(shell sed -n 's/^_custom_clean_\([a-z0-9_-]*\):.*/\1/p' "$(MAKEFILE_ROOT)/custom.mk" 2>/dev/null | sort -u | tr '\n' ' ') +_ALLOWED_WHATS_release := status $(shell sed -n 's/^_custom_release_\([a-z0-9_-]*\):.*/\1/p' "$(MAKEFILE_ROOT)/custom.mk" 2>/dev/null | sort -u | tr '\n' ' ') +_ALLOWED_WHATS_gen := check all $(shell sed -n 's/^_custom_gen_\([a-z0-9_-]*\):.*/\1/p' "$(MAKEFILE_ROOT)/custom.mk" 2>/dev/null | sort -u | tr '\n' ' ') +_ALLOWED_WHATS_worktree := list add update remove $(shell sed -n 's/^_custom_worktree_\([a-z0-9_-]*\):.*/\1/p' "$(MAKEFILE_ROOT)/custom.mk" 2>/dev/null | sort -u | tr '\n' ' ') CHECK_GATES_ALLOWED := lint format pyrefly mypy pyright security markdown smells CHECK_GATES_DEFAULT := lint pyrefly mypy pyright security markdown smells @@ -178,6 +179,7 @@ _DEFAULT_worktree := list _APPLY_WHAT_deps := upgrade _APPLY_WHAT_fmt := all _APPLY_WHAT_fix := all +_APPLY_WHAT_run := default _APPLY_WHAT_clean := generated _APPLY_WHAT_gen := all _APPLY_WHAT_worktree := update @@ -449,7 +451,7 @@ _builtin_help_usage: @printf '%s\n' 'flext [workspace-root]' ''; - @printf ' %-10s WHAT=%s\n' 'help' 'usage'; + @printf ' %-10s WHAT=%s\n' 'help' "$$(printf '%s' '$(_ALLOWED_WHATS_help)' | awk '{$$1=$$1; gsub(/ /, "|"); print}')"; @@ -457,55 +459,55 @@ _builtin_help_usage: - @printf ' %-10s WHAT=%s APPLY=Y\n' 'deps' 'check|lock|upgrade'; + @printf ' %-10s WHAT=%s APPLY=Y\n' 'deps' "$$(printf '%s' '$(_ALLOWED_WHATS_deps)' | awk '{$$1=$$1; gsub(/ /, "|"); print}')"; - @printf ' %-10s WHAT=%s\n' 'build' 'artifacts'; + @printf ' %-10s WHAT=%s\n' 'build' "$$(printf '%s' '$(_ALLOWED_WHATS_build)' | awk '{$$1=$$1; gsub(/ /, "|"); print}')"; - @printf ' %-10s WHAT=%s\n' 'check' 'all'; + @printf ' %-10s WHAT=%s\n' 'check' "$$(printf '%s' '$(_ALLOWED_WHATS_check)' | awk '{$$1=$$1; gsub(/ /, "|"); print}')"; - @printf ' %-10s WHAT=%s\n' 'test' 'all'; + @printf ' %-10s WHAT=%s\n' 'test' "$$(printf '%s' '$(_ALLOWED_WHATS_test)' | awk '{$$1=$$1; gsub(/ /, "|"); print}')"; - @printf ' %-10s WHAT=%s APPLY=Y\n' 'fmt' 'check|all'; + @printf ' %-10s WHAT=%s APPLY=Y\n' 'fmt' "$$(printf '%s' '$(_ALLOWED_WHATS_fmt)' | awk '{$$1=$$1; gsub(/ /, "|"); print}')"; - @printf ' %-10s WHAT=%s APPLY=Y\n' 'fix' 'check|all'; + @printf ' %-10s WHAT=%s APPLY=Y\n' 'fix' "$$(printf '%s' '$(_ALLOWED_WHATS_fix)' | awk '{$$1=$$1; gsub(/ /, "|"); print}')"; - @printf ' %-10s WHAT=%s\n' 'run' 'default'; + @printf ' %-10s WHAT=%s APPLY=Y\n' 'run' "$$(printf '%s' '$(_ALLOWED_WHATS_run)' | awk '{$$1=$$1; gsub(/ /, "|"); print}')"; - @printf ' %-10s WHAT=%s\n' 'status' 'diagnostics'; + @printf ' %-10s WHAT=%s\n' 'status' "$$(printf '%s' '$(_ALLOWED_WHATS_status)' | awk '{$$1=$$1; gsub(/ /, "|"); print}')"; - @printf ' %-10s WHAT=%s\n' 'docs' 'all|generate|fix|audit|build|validate'; + @printf ' %-10s WHAT=%s\n' 'docs' "$$(printf '%s' '$(_ALLOWED_WHATS_docs)' | awk '{$$1=$$1; gsub(/ /, "|"); print}')"; - @printf ' %-10s WHAT=%s APPLY=Y\n' 'clean' 'generated'; + @printf ' %-10s WHAT=%s APPLY=Y\n' 'clean' "$$(printf '%s' '$(_ALLOWED_WHATS_clean)' | awk '{$$1=$$1; gsub(/ /, "|"); print}')"; - @printf ' %-10s WHAT=%s\n' 'release' 'status'; + @printf ' %-10s WHAT=%s\n' 'release' "$$(printf '%s' '$(_ALLOWED_WHATS_release)' | awk '{$$1=$$1; gsub(/ /, "|"); print}')"; - @printf ' %-10s WHAT=%s APPLY=Y\n' 'gen' 'check|all'; + @printf ' %-10s WHAT=%s APPLY=Y\n' 'gen' "$$(printf '%s' '$(_ALLOWED_WHATS_gen)' | awk '{$$1=$$1; gsub(/ /, "|"); print}')"; - @printf ' %-10s WHAT=%s APPLY=Y\n' 'worktree' 'list|add|update|remove'; + @printf ' %-10s WHAT=%s APPLY=Y\n' 'worktree' "$$(printf '%s' '$(_ALLOWED_WHATS_worktree)' | awk '{$$1=$$1; gsub(/ /, "|"); print}')"; @printf ' %-10s %s\n' 'WORKSPACE' 'target repository (default: current project)'; diff --git a/flext-infra b/flext-infra index 7d8f007cd..e785860f1 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 7d8f007cde835961f8606a59795748fa2fa46ac2 +Subproject commit e785860f14ea214accee8987492017781a0198dc diff --git a/ci/docker/alpine.Dockerfile b/tests/fixtures/ci/docker/alpine.Dockerfile similarity index 97% rename from ci/docker/alpine.Dockerfile rename to tests/fixtures/ci/docker/alpine.Dockerfile index 124af2a38..f63817909 100644 --- a/ci/docker/alpine.Dockerfile +++ b/tests/fixtures/ci/docker/alpine.Dockerfile @@ -1,6 +1,6 @@ # Generated by `flext_infra codegen conform` for flext. # === SECTION: header (managed) === -# Source: template (base/ci/docker/alpine.Dockerfile.j2) +# Source: template (base/tests/fixtures/ci/docker/alpine.Dockerfile.j2) # Free: no # End SECTION: header # Clean-machine proof: project bootstrap + canonical make verbs on Alpine diff --git a/ci/docker/arch.Dockerfile b/tests/fixtures/ci/docker/arch.Dockerfile similarity index 97% rename from ci/docker/arch.Dockerfile rename to tests/fixtures/ci/docker/arch.Dockerfile index cef4268fe..5243fc5ae 100644 --- a/ci/docker/arch.Dockerfile +++ b/tests/fixtures/ci/docker/arch.Dockerfile @@ -1,6 +1,6 @@ # Generated by `flext_infra codegen conform` for flext. # === SECTION: header (managed) === -# Source: template (base/ci/docker/arch.Dockerfile.j2) +# Source: template (base/tests/fixtures/ci/docker/arch.Dockerfile.j2) # Free: no # End SECTION: header # Clean-machine proof: project bootstrap + canonical make verbs on Arch Linux. diff --git a/ci/docker/debian.Dockerfile b/tests/fixtures/ci/docker/debian.Dockerfile similarity index 97% rename from ci/docker/debian.Dockerfile rename to tests/fixtures/ci/docker/debian.Dockerfile index 5f76ef023..746b7ad9b 100644 --- a/ci/docker/debian.Dockerfile +++ b/tests/fixtures/ci/docker/debian.Dockerfile @@ -1,6 +1,6 @@ # Generated by `flext_infra codegen conform` for flext. # === SECTION: header (managed) === -# Source: template (base/ci/docker/debian.Dockerfile.j2) +# Source: template (base/tests/fixtures/ci/docker/debian.Dockerfile.j2) # Free: no # End SECTION: header # Clean-machine proof: project bootstrap + canonical make verbs on Debian. diff --git a/ci/docker/fedora.Dockerfile b/tests/fixtures/ci/docker/fedora.Dockerfile similarity index 96% rename from ci/docker/fedora.Dockerfile rename to tests/fixtures/ci/docker/fedora.Dockerfile index 0b0235695..730e744e7 100644 --- a/ci/docker/fedora.Dockerfile +++ b/tests/fixtures/ci/docker/fedora.Dockerfile @@ -1,6 +1,6 @@ # Generated by `flext_infra codegen conform` for flext. # === SECTION: header (managed) === -# Source: template (base/ci/docker/fedora.Dockerfile.j2) +# Source: template (base/tests/fixtures/ci/docker/fedora.Dockerfile.j2) # Free: no # End SECTION: header # Clean-machine proof: project bootstrap + canonical make verbs on Fedora. diff --git a/ci/docker/ubuntu.Dockerfile b/tests/fixtures/ci/docker/ubuntu.Dockerfile similarity index 97% rename from ci/docker/ubuntu.Dockerfile rename to tests/fixtures/ci/docker/ubuntu.Dockerfile index 0737c71ba..e13c1a6aa 100644 --- a/ci/docker/ubuntu.Dockerfile +++ b/tests/fixtures/ci/docker/ubuntu.Dockerfile @@ -1,6 +1,6 @@ # Generated by `flext_infra codegen conform` for flext. # === SECTION: header (managed) === -# Source: template (base/ci/docker/ubuntu.Dockerfile.j2) +# Source: template (base/tests/fixtures/ci/docker/ubuntu.Dockerfile.j2) # Free: no # End SECTION: header # Clean-machine proof: project bootstrap + canonical make verbs on Ubuntu. From 166db690e1f17697a0b66bd42a69b88a6d5c2650 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 14:45:48 -0300 Subject: [PATCH 149/165] chore(workspace): absorb CI fixture gitlinks across flext members Co-authored-by: Cursor --- flext-api | 2 +- flext-auth | 2 +- flext-cli | 2 +- flext-core | 2 +- flext-db-oracle | 2 +- flext-dbt-ldap | 2 +- flext-dbt-ldif | 2 +- flext-dbt-oracle | 2 +- flext-dbt-oracle-wms | 2 +- flext-grpc | 2 +- flext-infra | 2 +- flext-ldap | 2 +- flext-ldif | 2 +- flext-meltano | 2 +- flext-observability | 2 +- flext-oracle-oic | 2 +- flext-oracle-wms | 2 +- flext-plugin | 2 +- flext-quality | 2 +- flext-tap-ldap | 2 +- flext-tap-ldif | 2 +- flext-tap-oracle | 2 +- flext-tap-oracle-oic | 2 +- flext-tap-oracle-wms | 2 +- flext-target-ldap | 2 +- flext-target-ldif | 2 +- flext-target-oracle | 2 +- flext-target-oracle-oic | 2 +- flext-target-oracle-wms | 2 +- flext-tests | 2 +- flext-web | 2 +- 31 files changed, 31 insertions(+), 31 deletions(-) diff --git a/flext-api b/flext-api index 34a4453a9..ebedce0c2 160000 --- a/flext-api +++ b/flext-api @@ -1 +1 @@ -Subproject commit 34a4453a9cea9227e282c89b433fc0e4d02c49f1 +Subproject commit ebedce0c2df0fe2da9838e575d7e58c8a75a8fef diff --git a/flext-auth b/flext-auth index 0c45e0d08..5967b62d0 160000 --- a/flext-auth +++ b/flext-auth @@ -1 +1 @@ -Subproject commit 0c45e0d08089c86fe33f5497e4c96ef2523c4438 +Subproject commit 5967b62d04efe06f0f30f0a99b82e3d570770b4c diff --git a/flext-cli b/flext-cli index e9b4a0cc5..86bba8558 160000 --- a/flext-cli +++ b/flext-cli @@ -1 +1 @@ -Subproject commit e9b4a0cc5e4e210d74c6021c226a0b9cfcda1758 +Subproject commit 86bba855803e23b002b4271ab9f0323c1c80f020 diff --git a/flext-core b/flext-core index 6ce1b9789..91a4c3261 160000 --- a/flext-core +++ b/flext-core @@ -1 +1 @@ -Subproject commit 6ce1b978984b431c75891aca2ffc9c5344a2ffc6 +Subproject commit 91a4c3261e5c545f11cc3e02c33d385b75cf1fad diff --git a/flext-db-oracle b/flext-db-oracle index c9e87dd56..ad212a859 160000 --- a/flext-db-oracle +++ b/flext-db-oracle @@ -1 +1 @@ -Subproject commit c9e87dd561cda7a4115a654b8e3e08ca07c77756 +Subproject commit ad212a85948f9ba2af674c96b6616f806f84e83f diff --git a/flext-dbt-ldap b/flext-dbt-ldap index b3a947b2b..5ca65dd81 160000 --- a/flext-dbt-ldap +++ b/flext-dbt-ldap @@ -1 +1 @@ -Subproject commit b3a947b2bd40c3b356a5327c15cb0c1aa86da3bf +Subproject commit 5ca65dd8160d1c0b939befafae4047e26fef0f81 diff --git a/flext-dbt-ldif b/flext-dbt-ldif index ff4edcab7..6e6dc9cc9 160000 --- a/flext-dbt-ldif +++ b/flext-dbt-ldif @@ -1 +1 @@ -Subproject commit ff4edcab78b1c99321aa6905a54cbd6d39e531db +Subproject commit 6e6dc9cc932f6f552369648505ee9960a1c6f401 diff --git a/flext-dbt-oracle b/flext-dbt-oracle index 53498758d..6bd61c7b2 160000 --- a/flext-dbt-oracle +++ b/flext-dbt-oracle @@ -1 +1 @@ -Subproject commit 53498758db49964bc8a1c0451f1a8555588a7a82 +Subproject commit 6bd61c7b2ec02642b0d94479139d3437a2151422 diff --git a/flext-dbt-oracle-wms b/flext-dbt-oracle-wms index 483b07070..add2c6bd5 160000 --- a/flext-dbt-oracle-wms +++ b/flext-dbt-oracle-wms @@ -1 +1 @@ -Subproject commit 483b07070c84e38d3580960fecd117b616ff3f11 +Subproject commit add2c6bd5f4b58612e5b7616d5550c5393c832a9 diff --git a/flext-grpc b/flext-grpc index 72b52e9cb..f8f71face 160000 --- a/flext-grpc +++ b/flext-grpc @@ -1 +1 @@ -Subproject commit 72b52e9cbbdd749c44854ba086742be69a7fb689 +Subproject commit f8f71faceebf19005e04291a712580bae53fb293 diff --git a/flext-infra b/flext-infra index e785860f1..e3130158e 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit e785860f14ea214accee8987492017781a0198dc +Subproject commit e3130158e9eed52c0f65a2a1fd41c48984da53c0 diff --git a/flext-ldap b/flext-ldap index 2a818255a..1571b58e2 160000 --- a/flext-ldap +++ b/flext-ldap @@ -1 +1 @@ -Subproject commit 2a818255a35cc58db472a9095451bbbf247e6bef +Subproject commit 1571b58e23fbbbb841e03d55234f129c5950784f diff --git a/flext-ldif b/flext-ldif index a10f4f90f..c461581c4 160000 --- a/flext-ldif +++ b/flext-ldif @@ -1 +1 @@ -Subproject commit a10f4f90fa255b811c2b72a98d2285be795bbf36 +Subproject commit c461581c4c3b2eb8e264093ecca7588cef8d4102 diff --git a/flext-meltano b/flext-meltano index d5bc8c4cc..c08ae0152 160000 --- a/flext-meltano +++ b/flext-meltano @@ -1 +1 @@ -Subproject commit d5bc8c4cc72cc8deff6509b6836122c59cb8bf6f +Subproject commit c08ae0152f3be5143db47d9e811c8595431e9b19 diff --git a/flext-observability b/flext-observability index c32941104..364ecbeef 160000 --- a/flext-observability +++ b/flext-observability @@ -1 +1 @@ -Subproject commit c32941104e63f6825b8e2c455da614f756c2f044 +Subproject commit 364ecbeef8f60249eaeae025a3726ff3235f64ef diff --git a/flext-oracle-oic b/flext-oracle-oic index 670bf563d..820abedcb 160000 --- a/flext-oracle-oic +++ b/flext-oracle-oic @@ -1 +1 @@ -Subproject commit 670bf563d13f091b6c6e99aa7b80ecdbf7856948 +Subproject commit 820abedcbe55b7aab2ccf84ba2d850aac4d65d7c diff --git a/flext-oracle-wms b/flext-oracle-wms index 8d4b1d8e2..12c454546 160000 --- a/flext-oracle-wms +++ b/flext-oracle-wms @@ -1 +1 @@ -Subproject commit 8d4b1d8e2e2b4bf85c24f2ffd882f7f4d4f6c10c +Subproject commit 12c454546d2f4f66dd3246f06e753e566fa80492 diff --git a/flext-plugin b/flext-plugin index eff52f185..0456da722 160000 --- a/flext-plugin +++ b/flext-plugin @@ -1 +1 @@ -Subproject commit eff52f18588f49e5b1a3b1160c3e35b208d1fb22 +Subproject commit 0456da722410c873a6399d916e24cff2df5f79b8 diff --git a/flext-quality b/flext-quality index 790dca312..92034ecfb 160000 --- a/flext-quality +++ b/flext-quality @@ -1 +1 @@ -Subproject commit 790dca312e5d4d419e607b0333e8946caf5c4ab8 +Subproject commit 92034ecfba2c2833b5854141448b4bed83ceeb99 diff --git a/flext-tap-ldap b/flext-tap-ldap index 6cb2c07f0..27c11dcf6 160000 --- a/flext-tap-ldap +++ b/flext-tap-ldap @@ -1 +1 @@ -Subproject commit 6cb2c07f06b2343c83f909a3d7afc8b4ac3a2eed +Subproject commit 27c11dcf63d428fa84645bf765c5bf54bddee14e diff --git a/flext-tap-ldif b/flext-tap-ldif index 2f1ec7544..a3b83b842 160000 --- a/flext-tap-ldif +++ b/flext-tap-ldif @@ -1 +1 @@ -Subproject commit 2f1ec7544d46bdea93466ce0050d1e0f7dc0004f +Subproject commit a3b83b8422fbeb4780b39bf88344edd629e8c213 diff --git a/flext-tap-oracle b/flext-tap-oracle index 655c197cb..e40e02952 160000 --- a/flext-tap-oracle +++ b/flext-tap-oracle @@ -1 +1 @@ -Subproject commit 655c197cbd5d5fe1d306e5485bddce16b9c3790f +Subproject commit e40e02952e591995ff049ae85cc4e8820c4afd6a diff --git a/flext-tap-oracle-oic b/flext-tap-oracle-oic index 6ee3688e6..8101aa685 160000 --- a/flext-tap-oracle-oic +++ b/flext-tap-oracle-oic @@ -1 +1 @@ -Subproject commit 6ee3688e6b8b242b6ea995053dffee41a3832108 +Subproject commit 8101aa685d1532c94317ff0db4691c6466e90843 diff --git a/flext-tap-oracle-wms b/flext-tap-oracle-wms index e5bfa86bc..ecc286cb0 160000 --- a/flext-tap-oracle-wms +++ b/flext-tap-oracle-wms @@ -1 +1 @@ -Subproject commit e5bfa86bcfc306f7a7e51ac27dda5ed67cd93706 +Subproject commit ecc286cb01c6c277b45d84ac83aece7ca471a83a diff --git a/flext-target-ldap b/flext-target-ldap index a4142af50..aec354d94 160000 --- a/flext-target-ldap +++ b/flext-target-ldap @@ -1 +1 @@ -Subproject commit a4142af50e0b0acd845e948012eeb445527920ec +Subproject commit aec354d949bd4742483d15eb3f74824ae65b06ca diff --git a/flext-target-ldif b/flext-target-ldif index 8538266ae..ff4dbb951 160000 --- a/flext-target-ldif +++ b/flext-target-ldif @@ -1 +1 @@ -Subproject commit 8538266ae78f3b512531633171b48120ba069c68 +Subproject commit ff4dbb9513be2d8af1c102fd1641b4223a612776 diff --git a/flext-target-oracle b/flext-target-oracle index 2d48d977a..255229c85 160000 --- a/flext-target-oracle +++ b/flext-target-oracle @@ -1 +1 @@ -Subproject commit 2d48d977a8a46cf9ce6b370231ee8aa2ba1b996b +Subproject commit 255229c859f24cc5cec8233eb7101c4567fb3afb diff --git a/flext-target-oracle-oic b/flext-target-oracle-oic index fa8538088..9cabeadf8 160000 --- a/flext-target-oracle-oic +++ b/flext-target-oracle-oic @@ -1 +1 @@ -Subproject commit fa8538088f264e5a01c22373db32ccdecad407fb +Subproject commit 9cabeadf8cb543277462f9601846fd22c5f8d227 diff --git a/flext-target-oracle-wms b/flext-target-oracle-wms index b5017e057..aa6178416 160000 --- a/flext-target-oracle-wms +++ b/flext-target-oracle-wms @@ -1 +1 @@ -Subproject commit b5017e057c61e0d8cfc4682b5121544309b78733 +Subproject commit aa617841633de77953d6a1a4a2c434428803ceb8 diff --git a/flext-tests b/flext-tests index ab7262385..95bae9e54 160000 --- a/flext-tests +++ b/flext-tests @@ -1 +1 @@ -Subproject commit ab72623859877e070904bdc365859bb886753a35 +Subproject commit 95bae9e5407c517f2d84b3938aefec6e27b5df61 diff --git a/flext-web b/flext-web index 00dc997a0..576a80897 160000 --- a/flext-web +++ b/flext-web @@ -1 +1 @@ -Subproject commit 00dc997a09e5acccae2c33cabbbae0539d0006c0 +Subproject commit 576a8089797ee64a38fb57a35ed1e3f84dd41c02 From 85f7a047aac0377a6ae5d979b6b7edd2a96a50ba Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 14:50:31 -0300 Subject: [PATCH 150/165] chore(workspace): pin flext-infra gitlink after CI trigger SSOT Co-authored-by: Cursor --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index e3130158e..3b444121a 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit e3130158e9eed52c0f65a2a1fd41c48984da53c0 +Subproject commit 3b444121a002da5e91e4f16dc8a65272e71361d6 From bf14f2ec20d8f72d24b636a9de2b6949fd0d09b6 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 14:52:15 -0300 Subject: [PATCH 151/165] chore(workspace): pin flext-infra after projected CI sync Co-authored-by: Cursor --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index 3b444121a..4d10aed4a 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 3b444121a002da5e91e4f16dc8a65272e71361d6 +Subproject commit 4d10aed4a65347e255b9a420efd0e0b2ee8d1da1 From 8b5358f61793eeb292e79cd585db10b6f77c4427 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 15:02:08 -0300 Subject: [PATCH 152/165] fix(beads): declare mro ledger identity in the workspace SSOT conform derives the Beads issue-prefix and Dolt database from the workspace manifest, falling back to the project name when undeclared. This root declared neither, so it regenerated .beads/config.yaml as issue-prefix/database 'flext' while the live tracker on the shared server is 'mro'. bd rebound to a non-existent database and lost the ledger three times in one session. Declare both explicitly: ledger_id pins the Dolt database, ledger_prefix (new, flext-infra 3fdf9eac) pins the issue namespace. Advance the flext-infra gitlink to that commit. Beads: mro-6fca --- .beads/.gitignore | 3 +++ .beads/config.yaml | 4 ++-- config/workspace.yaml | 8 ++++++++ flext-infra | 2 +- 4 files changed, 14 insertions(+), 3 deletions(-) diff --git a/.beads/.gitignore b/.beads/.gitignore index f7738583f..4c2e4604d 100644 --- a/.beads/.gitignore +++ b/.beads/.gitignore @@ -75,3 +75,6 @@ bd.db # They would override fork protection in .git/info/exclude. # Config files (metadata.json, config.yaml) are tracked by git by default # since no pattern above ignores them. + +# Added by bd (missing required patterns) +*.gate.lock* diff --git a/.beads/config.yaml b/.beads/config.yaml index 9241b974e..f45e8f7cc 100644 --- a/.beads/config.yaml +++ b/.beads/config.yaml @@ -12,12 +12,12 @@ issue-prefix: "flext" # Dolt shared-server connection (machine-wide shared server on :3308). -# The `flext` database lives there; a repository-local server is never used. +# The `mro` database lives there; a repository-local server is never used. dolt: mode: server shared-server: true host: 127.0.0.1 port: 3308 user: root - database: flext + database: mro auto-commit: "on" diff --git a/config/workspace.yaml b/config/workspace.yaml index 6c346570b..bff15202e 100644 --- a/config/workspace.yaml +++ b/config/workspace.yaml @@ -4,6 +4,14 @@ # input. Add members or exclusions here, then run `make codegen`. version: 3 name: flext +# Beads ledger identity (SSOT for .beads/config.yaml issue-prefix + dolt database). +# Declared explicitly because it diverges from `name`: the shared Dolt server on +# :3308 hosts this workspace's tracker as `mro`, not `flext`. Without this key +# conform falls back to the project name and rebinds bd to a non-existent +# `flext` database, losing the live tracker (see mro-6fca). +ledger_id: mro +# Issue namespace override: live tracker issues are mro-*, not flext-* (mro-6fca). +ledger_prefix: mro repository: name: flext distribution: flext diff --git a/flext-infra b/flext-infra index 4d10aed4a..3fdf9eac3 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 4d10aed4a65347e255b9a420efd0e0b2ee8d1da1 +Subproject commit 3fdf9eac324d69964bdcd3ceb7ba6491a2f8a2d4 From bb5a2c018fa91fccd87ee58c76a041ca00ffc1ca Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 15:10:12 -0300 Subject: [PATCH 153/165] chore(beads): land regenerated mro ledger projection Projection outputs of the ledger_prefix fix (8b5358f61): conform now renders issue-prefix 'mro' to match the live tracker, and metadata.json pins dolt_database=mro. Generated by make gen APPLY=Y; second run is byte-identical. Beads: mro-6fca --- .beads/config.yaml | 2 +- .beads/metadata.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.beads/config.yaml b/.beads/config.yaml index f45e8f7cc..35d26611d 100644 --- a/.beads/config.yaml +++ b/.beads/config.yaml @@ -9,7 +9,7 @@ # toolchain.beads.server (machine-wide shared Dolt server facts). # Owned ledger config: the workspace root owns this tracker; conform # initializes and verifies it against the pinned binary. -issue-prefix: "flext" +issue-prefix: "mro" # Dolt shared-server connection (machine-wide shared server on :3308). # The `mro` database lives there; a repository-local server is never used. diff --git a/.beads/metadata.json b/.beads/metadata.json index 8cdf4a101..5f040a825 100644 --- a/.beads/metadata.json +++ b/.beads/metadata.json @@ -3,4 +3,4 @@ "backend": "dolt", "dolt_mode": "server", "dolt_database": "mro" -} \ No newline at end of file +} From 865301147552384ab22be22dbba18fa7bcb9c83d Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 15:16:04 -0300 Subject: [PATCH 154/165] chore(ci): land regenerated ci.yml trigger projection Projection of the committed ci.yml.j2 SSOT (flext-infra): adds dev/develop to the blocking-CI push branches. Materialized by make gen APPLY=Y during the ledger_prefix work; template already landed upstream. --- .github/workflows/ci.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 13ffda175..41ff41b14 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,12 +7,13 @@ name: CI # === SECTION: triggers (managed) === -# Source: config:repository_branch -# Direct push to the integration branch or main runs CI. -# Non-draft PRs targeting main run CI. Draft PRs and other branches do not. +# Source: operator CI policy — integration push = blocking CI only; +# main push/PR (non-draft) = blocking CI; draft and other branches = none. "on": push: branches: + - dev + - develop - 0.12.0-dev - main pull_request: From 6dbb770fcb5dd7b7074e41f31ae3717c52f5f88a Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 15:16:18 -0300 Subject: [PATCH 155/165] chore(workspace): absorb CI trigger expansion gitlinks across members Co-authored-by: Cursor --- flext-api | 2 +- flext-auth | 2 +- flext-cli | 2 +- flext-core | 2 +- flext-db-oracle | 2 +- flext-dbt-ldap | 2 +- flext-dbt-ldif | 2 +- flext-dbt-oracle | 2 +- flext-dbt-oracle-wms | 2 +- flext-grpc | 2 +- flext-ldap | 2 +- flext-ldif | 2 +- flext-meltano | 2 +- flext-observability | 2 +- flext-oracle-oic | 2 +- flext-oracle-wms | 2 +- flext-plugin | 2 +- flext-quality | 2 +- flext-tap-ldap | 2 +- flext-tap-ldif | 2 +- flext-tap-oracle | 2 +- flext-tap-oracle-oic | 2 +- flext-tap-oracle-wms | 2 +- flext-target-ldap | 2 +- flext-target-ldif | 2 +- flext-target-oracle | 2 +- flext-target-oracle-oic | 2 +- flext-target-oracle-wms | 2 +- flext-tests | 2 +- flext-web | 2 +- 30 files changed, 30 insertions(+), 30 deletions(-) diff --git a/flext-api b/flext-api index ebedce0c2..994a74c50 160000 --- a/flext-api +++ b/flext-api @@ -1 +1 @@ -Subproject commit ebedce0c2df0fe2da9838e575d7e58c8a75a8fef +Subproject commit 994a74c50ffcc891ad0e5e392098c8860dd76eb4 diff --git a/flext-auth b/flext-auth index 5967b62d0..6e7004838 160000 --- a/flext-auth +++ b/flext-auth @@ -1 +1 @@ -Subproject commit 5967b62d04efe06f0f30f0a99b82e3d570770b4c +Subproject commit 6e7004838c83954b2033e688d26db60337722158 diff --git a/flext-cli b/flext-cli index 86bba8558..6fb2c2b16 160000 --- a/flext-cli +++ b/flext-cli @@ -1 +1 @@ -Subproject commit 86bba855803e23b002b4271ab9f0323c1c80f020 +Subproject commit 6fb2c2b164d253b3bd5e3ac738c43f7e241784bd diff --git a/flext-core b/flext-core index 91a4c3261..a31e9bcdc 160000 --- a/flext-core +++ b/flext-core @@ -1 +1 @@ -Subproject commit 91a4c3261e5c545f11cc3e02c33d385b75cf1fad +Subproject commit a31e9bcdc67adce488abba0d4cea54586d1a1755 diff --git a/flext-db-oracle b/flext-db-oracle index ad212a859..b9b598643 160000 --- a/flext-db-oracle +++ b/flext-db-oracle @@ -1 +1 @@ -Subproject commit ad212a85948f9ba2af674c96b6616f806f84e83f +Subproject commit b9b598643a4cf7c66a01f71b47d07aa17e65c61f diff --git a/flext-dbt-ldap b/flext-dbt-ldap index 5ca65dd81..c6b703faf 160000 --- a/flext-dbt-ldap +++ b/flext-dbt-ldap @@ -1 +1 @@ -Subproject commit 5ca65dd8160d1c0b939befafae4047e26fef0f81 +Subproject commit c6b703fafd2a66b2f194bc664336daff941bc179 diff --git a/flext-dbt-ldif b/flext-dbt-ldif index 6e6dc9cc9..ea5906710 160000 --- a/flext-dbt-ldif +++ b/flext-dbt-ldif @@ -1 +1 @@ -Subproject commit 6e6dc9cc932f6f552369648505ee9960a1c6f401 +Subproject commit ea590671031b637433820d525c2555dd32edc1ac diff --git a/flext-dbt-oracle b/flext-dbt-oracle index 6bd61c7b2..896bab27d 160000 --- a/flext-dbt-oracle +++ b/flext-dbt-oracle @@ -1 +1 @@ -Subproject commit 6bd61c7b2ec02642b0d94479139d3437a2151422 +Subproject commit 896bab27dcff4304078be172939897815c1bb736 diff --git a/flext-dbt-oracle-wms b/flext-dbt-oracle-wms index add2c6bd5..8afbfc1b6 160000 --- a/flext-dbt-oracle-wms +++ b/flext-dbt-oracle-wms @@ -1 +1 @@ -Subproject commit add2c6bd5f4b58612e5b7616d5550c5393c832a9 +Subproject commit 8afbfc1b6fc87e6e01f3ef8cffe3669a983e96dc diff --git a/flext-grpc b/flext-grpc index f8f71face..92df97698 160000 --- a/flext-grpc +++ b/flext-grpc @@ -1 +1 @@ -Subproject commit f8f71faceebf19005e04291a712580bae53fb293 +Subproject commit 92df97698807e7e9af239a5f94243b0f939c6419 diff --git a/flext-ldap b/flext-ldap index 1571b58e2..1e5269a66 160000 --- a/flext-ldap +++ b/flext-ldap @@ -1 +1 @@ -Subproject commit 1571b58e23fbbbb841e03d55234f129c5950784f +Subproject commit 1e5269a6656d258b78c3ce621e76ab5c70cd9a67 diff --git a/flext-ldif b/flext-ldif index c461581c4..8c4de9052 160000 --- a/flext-ldif +++ b/flext-ldif @@ -1 +1 @@ -Subproject commit c461581c4c3b2eb8e264093ecca7588cef8d4102 +Subproject commit 8c4de9052eb5126d6f2b2185219093e4e97db061 diff --git a/flext-meltano b/flext-meltano index c08ae0152..d7239bfca 160000 --- a/flext-meltano +++ b/flext-meltano @@ -1 +1 @@ -Subproject commit c08ae0152f3be5143db47d9e811c8595431e9b19 +Subproject commit d7239bfca1140a48da300836170795f20d058954 diff --git a/flext-observability b/flext-observability index 364ecbeef..6fb6d27ab 160000 --- a/flext-observability +++ b/flext-observability @@ -1 +1 @@ -Subproject commit 364ecbeef8f60249eaeae025a3726ff3235f64ef +Subproject commit 6fb6d27abe69cbf7fbf29d884e6e787232f030ed diff --git a/flext-oracle-oic b/flext-oracle-oic index 820abedcb..f1b455da3 160000 --- a/flext-oracle-oic +++ b/flext-oracle-oic @@ -1 +1 @@ -Subproject commit 820abedcbe55b7aab2ccf84ba2d850aac4d65d7c +Subproject commit f1b455da3bad2610757f26a617a6cbf592e6fac5 diff --git a/flext-oracle-wms b/flext-oracle-wms index 12c454546..a928ca286 160000 --- a/flext-oracle-wms +++ b/flext-oracle-wms @@ -1 +1 @@ -Subproject commit 12c454546d2f4f66dd3246f06e753e566fa80492 +Subproject commit a928ca28663fcf46a84222aad8308762989d02b8 diff --git a/flext-plugin b/flext-plugin index 0456da722..b7260c6eb 160000 --- a/flext-plugin +++ b/flext-plugin @@ -1 +1 @@ -Subproject commit 0456da722410c873a6399d916e24cff2df5f79b8 +Subproject commit b7260c6ebbe56a1ee632333dad3a6b13c66b82f2 diff --git a/flext-quality b/flext-quality index 92034ecfb..074371c4e 160000 --- a/flext-quality +++ b/flext-quality @@ -1 +1 @@ -Subproject commit 92034ecfba2c2833b5854141448b4bed83ceeb99 +Subproject commit 074371c4ecf2910d7990a40e379d108fd092ae25 diff --git a/flext-tap-ldap b/flext-tap-ldap index 27c11dcf6..c19c00be2 160000 --- a/flext-tap-ldap +++ b/flext-tap-ldap @@ -1 +1 @@ -Subproject commit 27c11dcf63d428fa84645bf765c5bf54bddee14e +Subproject commit c19c00be2130c6cf6e2bb696b4aca71d58959d70 diff --git a/flext-tap-ldif b/flext-tap-ldif index a3b83b842..0062f2365 160000 --- a/flext-tap-ldif +++ b/flext-tap-ldif @@ -1 +1 @@ -Subproject commit a3b83b8422fbeb4780b39bf88344edd629e8c213 +Subproject commit 0062f23656007722d71aa4e9208b5f8b64d2ed57 diff --git a/flext-tap-oracle b/flext-tap-oracle index e40e02952..fd473c9ff 160000 --- a/flext-tap-oracle +++ b/flext-tap-oracle @@ -1 +1 @@ -Subproject commit e40e02952e591995ff049ae85cc4e8820c4afd6a +Subproject commit fd473c9fff5ef25cf25f43012ec3ceefb9411f87 diff --git a/flext-tap-oracle-oic b/flext-tap-oracle-oic index 8101aa685..8ee9f5b56 160000 --- a/flext-tap-oracle-oic +++ b/flext-tap-oracle-oic @@ -1 +1 @@ -Subproject commit 8101aa685d1532c94317ff0db4691c6466e90843 +Subproject commit 8ee9f5b567e69a6b822402bb7fa1fbfba2ce21dc diff --git a/flext-tap-oracle-wms b/flext-tap-oracle-wms index ecc286cb0..45a046e5f 160000 --- a/flext-tap-oracle-wms +++ b/flext-tap-oracle-wms @@ -1 +1 @@ -Subproject commit ecc286cb01c6c277b45d84ac83aece7ca471a83a +Subproject commit 45a046e5f99e9e2f5c91b77db35ced25805537de diff --git a/flext-target-ldap b/flext-target-ldap index aec354d94..c4d634d84 160000 --- a/flext-target-ldap +++ b/flext-target-ldap @@ -1 +1 @@ -Subproject commit aec354d949bd4742483d15eb3f74824ae65b06ca +Subproject commit c4d634d84a22d479ae13a0aaff7f36ccfa76da06 diff --git a/flext-target-ldif b/flext-target-ldif index ff4dbb951..96d1d09d5 160000 --- a/flext-target-ldif +++ b/flext-target-ldif @@ -1 +1 @@ -Subproject commit ff4dbb9513be2d8af1c102fd1641b4223a612776 +Subproject commit 96d1d09d531581b7bdfcd49a5c99c10d7a5f782b diff --git a/flext-target-oracle b/flext-target-oracle index 255229c85..4d0ed181f 160000 --- a/flext-target-oracle +++ b/flext-target-oracle @@ -1 +1 @@ -Subproject commit 255229c859f24cc5cec8233eb7101c4567fb3afb +Subproject commit 4d0ed181fcbd0ae92c004c34fccc0ecf34ec190f diff --git a/flext-target-oracle-oic b/flext-target-oracle-oic index 9cabeadf8..853992875 160000 --- a/flext-target-oracle-oic +++ b/flext-target-oracle-oic @@ -1 +1 @@ -Subproject commit 9cabeadf8cb543277462f9601846fd22c5f8d227 +Subproject commit 853992875900d1f171dcc50f33d13e6380627e35 diff --git a/flext-target-oracle-wms b/flext-target-oracle-wms index aa6178416..6384dabbd 160000 --- a/flext-target-oracle-wms +++ b/flext-target-oracle-wms @@ -1 +1 @@ -Subproject commit aa617841633de77953d6a1a4a2c434428803ceb8 +Subproject commit 6384dabbd8e90e9ce4baf70288fb8b310d15a0bd diff --git a/flext-tests b/flext-tests index 95bae9e54..8d6858739 160000 --- a/flext-tests +++ b/flext-tests @@ -1 +1 @@ -Subproject commit 95bae9e5407c517f2d84b3938aefec6e27b5df61 +Subproject commit 8d6858739504cc1695ad09f53bc4b863c1c26c58 diff --git a/flext-web b/flext-web index 576a80897..1a3875421 160000 --- a/flext-web +++ b/flext-web @@ -1 +1 @@ -Subproject commit 576a8089797ee64a38fb57a35ed1e3f84dd41c02 +Subproject commit 1a38754211747d2936af31cea737a092d4725de2 From 191bfc212c381a59f75d0eedc96f9e72a505ca37 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 15:17:07 -0300 Subject: [PATCH 156/165] chore(workspace): pin members after leftover ci/docker cleanup Co-authored-by: Cursor --- flext-observability | 2 +- flext-oracle-oic | 2 +- flext-oracle-wms | 2 +- flext-plugin | 2 +- flext-quality | 2 +- flext-tap-ldap | 2 +- flext-tap-ldif | 2 +- flext-tap-oracle | 2 +- flext-tap-oracle-oic | 2 +- flext-tap-oracle-wms | 2 +- flext-target-ldap | 2 +- flext-target-ldif | 2 +- flext-target-oracle | 2 +- flext-target-oracle-oic | 2 +- flext-target-oracle-wms | 2 +- flext-tests | 2 +- flext-web | 2 +- 17 files changed, 17 insertions(+), 17 deletions(-) diff --git a/flext-observability b/flext-observability index 6fb6d27ab..9eae11aac 160000 --- a/flext-observability +++ b/flext-observability @@ -1 +1 @@ -Subproject commit 6fb6d27abe69cbf7fbf29d884e6e787232f030ed +Subproject commit 9eae11aac1192a66d7320ef9e935cb39920cb7d7 diff --git a/flext-oracle-oic b/flext-oracle-oic index f1b455da3..5b155ca58 160000 --- a/flext-oracle-oic +++ b/flext-oracle-oic @@ -1 +1 @@ -Subproject commit f1b455da3bad2610757f26a617a6cbf592e6fac5 +Subproject commit 5b155ca58bad6632830961107b67094f2489ead9 diff --git a/flext-oracle-wms b/flext-oracle-wms index a928ca286..768c71276 160000 --- a/flext-oracle-wms +++ b/flext-oracle-wms @@ -1 +1 @@ -Subproject commit a928ca28663fcf46a84222aad8308762989d02b8 +Subproject commit 768c712768a544a72718453e5bcbd1d6535ee16f diff --git a/flext-plugin b/flext-plugin index b7260c6eb..2da0b846c 160000 --- a/flext-plugin +++ b/flext-plugin @@ -1 +1 @@ -Subproject commit b7260c6ebbe56a1ee632333dad3a6b13c66b82f2 +Subproject commit 2da0b846c2e3966986b7ae5ecc3cb8278189a7c2 diff --git a/flext-quality b/flext-quality index 074371c4e..9ef632334 160000 --- a/flext-quality +++ b/flext-quality @@ -1 +1 @@ -Subproject commit 074371c4ecf2910d7990a40e379d108fd092ae25 +Subproject commit 9ef632334624486ab8792a574e806ac849d0cf60 diff --git a/flext-tap-ldap b/flext-tap-ldap index c19c00be2..a0cb7cd08 160000 --- a/flext-tap-ldap +++ b/flext-tap-ldap @@ -1 +1 @@ -Subproject commit c19c00be2130c6cf6e2bb696b4aca71d58959d70 +Subproject commit a0cb7cd086a233227be7b4c9d13f4ad01c0e629b diff --git a/flext-tap-ldif b/flext-tap-ldif index 0062f2365..d6ddadd52 160000 --- a/flext-tap-ldif +++ b/flext-tap-ldif @@ -1 +1 @@ -Subproject commit 0062f23656007722d71aa4e9208b5f8b64d2ed57 +Subproject commit d6ddadd52aa3127f88169e95d8aed49e6c180a43 diff --git a/flext-tap-oracle b/flext-tap-oracle index fd473c9ff..759db33ce 160000 --- a/flext-tap-oracle +++ b/flext-tap-oracle @@ -1 +1 @@ -Subproject commit fd473c9fff5ef25cf25f43012ec3ceefb9411f87 +Subproject commit 759db33cedc097857f0da3b7a0201433bf861de1 diff --git a/flext-tap-oracle-oic b/flext-tap-oracle-oic index 8ee9f5b56..58b3d126a 160000 --- a/flext-tap-oracle-oic +++ b/flext-tap-oracle-oic @@ -1 +1 @@ -Subproject commit 8ee9f5b567e69a6b822402bb7fa1fbfba2ce21dc +Subproject commit 58b3d126adb6cccd38324c64fc74446a4f17d814 diff --git a/flext-tap-oracle-wms b/flext-tap-oracle-wms index 45a046e5f..9e7e0024d 160000 --- a/flext-tap-oracle-wms +++ b/flext-tap-oracle-wms @@ -1 +1 @@ -Subproject commit 45a046e5f99e9e2f5c91b77db35ced25805537de +Subproject commit 9e7e0024debfca2a0ba9a26e9b9ad3d7c2122872 diff --git a/flext-target-ldap b/flext-target-ldap index c4d634d84..c093d2503 160000 --- a/flext-target-ldap +++ b/flext-target-ldap @@ -1 +1 @@ -Subproject commit c4d634d84a22d479ae13a0aaff7f36ccfa76da06 +Subproject commit c093d25036a2b13b4b9c35a45acfe636fa76dd64 diff --git a/flext-target-ldif b/flext-target-ldif index 96d1d09d5..bc328c990 160000 --- a/flext-target-ldif +++ b/flext-target-ldif @@ -1 +1 @@ -Subproject commit 96d1d09d531581b7bdfcd49a5c99c10d7a5f782b +Subproject commit bc328c9906192e418703c468f8ba037ca0c0454c diff --git a/flext-target-oracle b/flext-target-oracle index 4d0ed181f..ef0b6d174 160000 --- a/flext-target-oracle +++ b/flext-target-oracle @@ -1 +1 @@ -Subproject commit 4d0ed181fcbd0ae92c004c34fccc0ecf34ec190f +Subproject commit ef0b6d174d0c00420ef506ac35dda266e15d2b2b diff --git a/flext-target-oracle-oic b/flext-target-oracle-oic index 853992875..721157c9a 160000 --- a/flext-target-oracle-oic +++ b/flext-target-oracle-oic @@ -1 +1 @@ -Subproject commit 853992875900d1f171dcc50f33d13e6380627e35 +Subproject commit 721157c9a033d353df5311fa3bc4ea8fc5a376a0 diff --git a/flext-target-oracle-wms b/flext-target-oracle-wms index 6384dabbd..f575e6bcf 160000 --- a/flext-target-oracle-wms +++ b/flext-target-oracle-wms @@ -1 +1 @@ -Subproject commit 6384dabbd8e90e9ce4baf70288fb8b310d15a0bd +Subproject commit f575e6bcf659d0fb1ea29178e7342654c4bc4fda diff --git a/flext-tests b/flext-tests index 8d6858739..f86b59697 160000 --- a/flext-tests +++ b/flext-tests @@ -1 +1 @@ -Subproject commit 8d6858739504cc1695ad09f53bc4b863c1c26c58 +Subproject commit f86b59697878304e2ac658c35605827a9a72409a diff --git a/flext-web b/flext-web index 1a3875421..bcf22c5a1 160000 --- a/flext-web +++ b/flext-web @@ -1 +1 @@ -Subproject commit 1a38754211747d2936af31cea737a092d4725de2 +Subproject commit bcf22c5a117368eaa7565954714539040e8979d1 From 9ed9229f6d694e4b054a23b9bbdd18ee379b3fb1 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 15:37:43 -0300 Subject: [PATCH 157/165] chore(workspace): pin flext-infra after conform MCP/CRG docs Co-authored-by: Cursor --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index 3fdf9eac3..576f0aaec 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 3fdf9eac324d69964bdcd3ceb7ba6491a2f8a2d4 +Subproject commit 576f0aaec1c24b95532089038a697eb6826aed62 From 5f3f5d1fa2510f278813bc7cb943d142d12139a5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Aug 2026 15:40:13 -0300 Subject: [PATCH 158/165] chore(deps): bump jdx/mise-action from 4.1.0 to 4.2.3 (#76) Bumps [jdx/mise-action](https://github.com/jdx/mise-action) from 4.1.0 to 4.2.3. - [Release notes](https://github.com/jdx/mise-action/releases) - [Changelog](https://github.com/jdx/mise-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/jdx/mise-action/compare/dba19683ed58901619b14f395a24841710cb4925...9e7f7633ff6f6d6048a9418a68d48f288f50eb14) --- updated-dependencies: - dependency-name: jdx/mise-action dependency-version: 4.2.3 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Marlon Costa --- .github/workflows/ci-matrix.yml | 4 ++-- .github/workflows/ci.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci-matrix.yml b/.github/workflows/ci-matrix.yml index 8ce392ca6..afce43799 100644 --- a/.github/workflows/ci-matrix.yml +++ b/.github/workflows/ci-matrix.yml @@ -77,7 +77,7 @@ jobs: with: python-version-file: .python-version - name: Install mise toolchain - uses: jdx/mise-action@dba19683ed58901619b14f395a24841710cb4925 # v4.1.0 + uses: jdx/mise-action@9e7f7633ff6f6d6048a9418a68d48f288f50eb14 # v4.2.3 - name: Install uv uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0 with: @@ -102,7 +102,7 @@ jobs: with: python-version-file: .python-version - name: Install mise toolchain - uses: jdx/mise-action@dba19683ed58901619b14f395a24841710cb4925 # v4.1.0 + uses: jdx/mise-action@9e7f7633ff6f6d6048a9418a68d48f288f50eb14 # v4.2.3 - name: Install uv uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0 with: diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 41ff41b14..2b85310ce 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -46,7 +46,7 @@ jobs: fetch-depth: 0 - name: Install mise toolchain - uses: jdx/mise-action@dba19683ed58901619b14f395a24841710cb4925 # v4.1.0 + uses: jdx/mise-action@9e7f7633ff6f6d6048a9418a68d48f288f50eb14 # v4.2.3 - name: Install uv uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0 From 45fa0a7bb03ea5da2df22d7b9db5ea576a3d2dc1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Aug 2026 15:40:43 -0300 Subject: [PATCH 159/165] chore(deps): bump actions/upload-artifact from 4.6.2 to 7.0.1 (#75) Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.6.2 to 7.0.1. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/ea165f8d65b6e75b540449e92b4886f43607fa02...043fb46d1a93c77aae656e7c1c64a875d1fc6a0a) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-version: 7.0.1 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Marlon Costa --- .github/workflows/docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 20a08c29d..d7fa6c547 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -149,7 +149,7 @@ jobs: # upload-artifact v4 skips hidden paths by default (artifact silently empty). - name: Upload docs reports on failure if: failure() - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: docs-reports path: .reports/ From d32130fcc6b71bf493b0798c7336fdf8812bd1ce Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Aug 2026 15:45:42 -0300 Subject: [PATCH 160/165] chore(deps-dev): bump code-review-graph from 2.3.6 to 2.3.7 (#77) Bumps [code-review-graph](https://github.com/tirth8205/code-review-graph) from 2.3.6 to 2.3.7. - [Release notes](https://github.com/tirth8205/code-review-graph/releases) - [Changelog](https://github.com/tirth8205/code-review-graph/blob/main/CHANGELOG.md) - [Commits](https://github.com/tirth8205/code-review-graph/compare/v2.3.6...v2.3.7) --- updated-dependencies: - dependency-name: code-review-graph dependency-version: 2.3.7 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Marlon Costa --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index f0db6229a..e3ff00e6c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -2410,7 +2410,7 @@ dev = [ "bandit>=1.8", "black>=25.1", "blacken-docs>=1.19", - "code-review-graph[all,embeddings]==2.3.6", + "code-review-graph[all,embeddings]==2.3.7", "codespell>=2.3", "deptry>=0.23", "django-stubs>=6.0.6", From a7fed7038904bc2fa0bdeb0ca79069919b1201af Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 15:57:12 -0300 Subject: [PATCH 161/165] chore(workspace): pin flext-infra private-CI submodule auth cutover Co-authored-by: Cursor --- .github/ci-template/ci.yml | 2 +- .github/workflows/ci.yml | 1 + .github/workflows/docs.yml | 2 +- Makefile | 7 +++++-- flext-infra | 2 +- pyproject.toml | 42 ++++++++++++++++++++++++++++++++++++++ 6 files changed, 51 insertions(+), 5 deletions(-) diff --git a/.github/ci-template/ci.yml b/.github/ci-template/ci.yml index d5b9a95cf..81aa47991 100644 --- a/.github/ci-template/ci.yml +++ b/.github/ci-template/ci.yml @@ -34,7 +34,7 @@ jobs: enable-cache: true - name: Install declared toolchain - uses: jdx/mise-action@dba19683ed58901619b14f395a24841710cb4925 # v4.1.0 + uses: jdx/mise-action@9e7f7633ff6f6d6048a9418a68d48f288f50eb14 # v4.2.3 - name: Setup run: make setup diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2b85310ce..6638924be 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -45,6 +45,7 @@ jobs: submodules: false fetch-depth: 0 + - name: Install mise toolchain uses: jdx/mise-action@9e7f7633ff6f6d6048a9418a68d48f288f50eb14 # v4.2.3 diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index d7fa6c547..20a08c29d 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -149,7 +149,7 @@ jobs: # upload-artifact v4 skips hidden paths by default (artifact silently empty). - name: Upload docs reports on failure if: failure() - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 with: name: docs-reports path: .reports/ diff --git a/Makefile b/Makefile index 7747a8d9b..5ca65f672 100644 --- a/Makefile +++ b/Makefile @@ -274,9 +274,12 @@ SETUP_ENVIRONMENT_RECIPE = set -eu; \ WORKSPACE_ORCHESTRATE = $(UV_RUN) python -m flext_infra workspace orchestrate REQUESTED_PROJECTS := $(strip $(if $(PROJECT),$(PROJECT),$(PROJECTS))) # A workspace root owns no local gate implementation: its verbs fan out to the -# declared members. Selecting the root here would make it orchestrate itself. +# declared members. Selecting the root (PROJECT=.) would make it orchestrate +# itself forever; map `.` to WORKSPACE_MEMBERS instead of failing closed mid-CI. DEFAULT_PROJECTS := $(WORKSPACE_MEMBERS) -SELECTED_PROJECTS := $(if $(strip $(REQUESTED_PROJECTS)),$(REQUESTED_PROJECTS),$(DEFAULT_PROJECTS)) + +SELECTED_PROJECTS := $(if $(strip $(REQUESTED_PROJECTS)),$(if $(filter .,$(REQUESTED_PROJECTS)),$(WORKSPACE_MEMBERS),$(REQUESTED_PROJECTS)),$(DEFAULT_PROJECTS)) + WORKSPACE_PROJECT_ARGS := $(foreach project,$(SELECTED_PROJECTS),--projects $(project)) WORKSPACE_CHECK_ARGS := $(if $(strip $(CHECK_GATES)),--make-arg "CHECK_GATES=$(strip $(CHECK_GATES))") WORKSPACE_TEST_ARGS := $(if $(strip $(FLEXT_PYTEST_FILE_RAW)),--file "$${FLEXT_PYTEST_FILE_RAW}") $(if $(strip $(FLEXT_PYTEST_MATCH_RAW)),--match "$${FLEXT_PYTEST_MATCH_RAW}") $(if $(strip $(FLEXT_PYTEST_WHAT_RAW)),--what "$${FLEXT_PYTEST_WHAT_RAW}") diff --git a/flext-infra b/flext-infra index 576f0aaec..ea6cab160 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit 576f0aaec1c24b95532089038a697eb6826aed62 +Subproject commit ea6cab1603670950823d54a66207aef6afb0e938 diff --git a/pyproject.toml b/pyproject.toml index e3ff00e6c..839b1efaa 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -2260,6 +2260,48 @@ sort_first = ["build-system", "dependency-groups", "project", "tool"] [tool.uv] link-mode = "copy" +[[tool.uv.exclude-dependencies]] +dependencies = ["flext-infra"] + +[tool.uv.exclude-dependencies.package] +name = "flext-tests" + +[[tool.uv.exclude-dependencies]] +dependencies = ["flext-core"] + +[tool.uv.exclude-dependencies.package] +name = "flext-infra" + +[[tool.uv.exclude-dependencies]] +dependencies = ["flext-core"] + +[tool.uv.exclude-dependencies.package] +name = "flext-tests" + +[[tool.uv.exclude-dependencies]] +dependencies = ["flext-core"] + +[tool.uv.exclude-dependencies.package] +name = "flext-cli" + +[[tool.uv.exclude-dependencies]] +dependencies = ["flext-cli"] + +[tool.uv.exclude-dependencies.package] +name = "flext-infra" + +[[tool.uv.exclude-dependencies]] +dependencies = ["flext-cli"] + +[tool.uv.exclude-dependencies.package] +name = "flext-core" + +[[tool.uv.exclude-dependencies]] +dependencies = ["flext-tests"] + +[tool.uv.exclude-dependencies.package] +name = "flext-infra" + [tool.uv.sources.flext-api] workspace = true From b5ce3d84b59d7f46dea2f83dd981b40d882d780d Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 16:08:42 -0300 Subject: [PATCH 162/165] chore(workspace): pin flext-infra submodule fetch-when-pin-present Co-authored-by: Cursor --- flext-infra | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flext-infra b/flext-infra index ea6cab160..64e7c32f3 160000 --- a/flext-infra +++ b/flext-infra @@ -1 +1 @@ -Subproject commit ea6cab1603670950823d54a66207aef6afb0e938 +Subproject commit 64e7c32f3f24e3ab2432524b49627b598f8b4556 From df323426a3ec43f732a804dfcc9f0830c301dda8 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 16:32:56 -0300 Subject: [PATCH 163/165] audit: bugfix/mro-bju6 -> 0.12.0-dev (#64) * wip: automated snapshot before gitflow audit (2026-08-02) * chore: update uv lockfile --------- Co-authored-by: Marlon Costa --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 6b38e9107..ab5d825bb 100644 --- a/.gitignore +++ b/.gitignore @@ -349,10 +349,13 @@ __pyrefly_virtual__/ .venv.*/ *.egg-info/ build/ +context_test/ dist/ node_modules/ +rope_ws/ site/ target/ +tmp_flow_test/ .pyrefly_cache/ .tox/ .flext-sync.lock From c396a414a6c78170149710e5ad75c3b777061882 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 16:34:43 -0300 Subject: [PATCH 164/165] wip: automated snapshot before gitflow audit (2026-08-02) (#74) Co-authored-by: Marlon Costa --- .agents/provider.toml | 4 +- .gitignore | 1 - tests/unit/provider_surface_tests.py | 62 ++++++++++++++++++++++++++++ 3 files changed, 64 insertions(+), 3 deletions(-) create mode 100644 tests/unit/provider_surface_tests.py diff --git a/.agents/provider.toml b/.agents/provider.toml index 949a0b84b..b51cd6784 100644 --- a/.agents/provider.toml +++ b/.agents/provider.toml @@ -2,10 +2,10 @@ source_project_id = "flext-sh/flext" marker_distribution = "flext-core" router_skill = "flext-context-routing" session_command = ".agents/commands/flext-law.md" -codemod_provider = "sgconfig.yml" +codemod_provider = "flext-infra/src/flext_infra/codemod/sgconfig.yml" marketplaces_key = "extraKnownMarketplaces" enabled_plugins_key = "enabledPlugins" -required_surfaces = ["sgconfig.yml"] +required_surfaces = ["flext-infra/src/flext_infra/codemod/sgconfig.yml"] [surfaces] always = [".agents/skills/flext-context-routing/SKILL.md"] diff --git a/.gitignore b/.gitignore index ab5d825bb..08dce9cdb 100644 --- a/.gitignore +++ b/.gitignore @@ -50,7 +50,6 @@ scripts/maintenance/ !.taplo.toml !pyrefly.toml !poetry.lock -!uv.lock !ruff-shared.toml !uv.lock diff --git a/tests/unit/provider_surface_tests.py b/tests/unit/provider_surface_tests.py new file mode 100644 index 000000000..66066abe4 --- /dev/null +++ b/tests/unit/provider_surface_tests.py @@ -0,0 +1,62 @@ +"""Runtime contract tests for the workspace provider manifest.""" + +from __future__ import annotations + +import tomllib +from pathlib import Path + +from flext_tests import tm +from packaging.requirements import Requirement + + +def test_provider_owned_paths_exist() -> None: + """Every provider-owned path resolves from the provider repository root.""" + root = Path(__file__).resolve().parents[2] + manifest = tomllib.loads( + (root / ".agents" / "provider.toml").read_text(encoding="utf-8") + ) + required_surfaces = manifest.get("required_surfaces") + session_command = manifest.get("session_command") + codemod_provider = manifest.get("codemod_provider") + tm.that(isinstance(required_surfaces, list), eq=True) + tm.that(isinstance(session_command, str), eq=True) + tm.that(isinstance(codemod_provider, str), eq=True) + owned_paths = ( + *(value for value in required_surfaces or () if isinstance(value, str)), + *( + value + for value in (session_command, codemod_provider) + if isinstance(value, str) + ), + ) + tm.that( + len(owned_paths), + eq=len(required_surfaces or ()) + 2, + ) + for relative_path in owned_paths: + tm.that((root / relative_path).is_file(), eq=True) + + +def test_provider_marker_distribution_is_declared() -> None: + """The provider activates from a real root project dependency.""" + root = Path(__file__).resolve().parents[2] + manifest = tomllib.loads( + (root / ".agents" / "provider.toml").read_text(encoding="utf-8") + ) + pyproject = tomllib.loads((root / "pyproject.toml").read_text(encoding="utf-8")) + marker_distribution = manifest.get("marker_distribution") + project = pyproject.get("project") + tm.that(isinstance(marker_distribution, str), eq=True) + tm.that(isinstance(project, dict), eq=True) + dependencies = project.get("dependencies") if isinstance(project, dict) else None + tm.that(isinstance(dependencies, list), eq=True) + declared_distributions = { + Requirement(dependency).name + for dependency in dependencies or () + if isinstance(dependency, str) + } + tm.that( + isinstance(marker_distribution, str) + and marker_distribution in declared_distributions, + eq=True, + ) From 579bd462c22acb9ff03696e2824e0a8f65671281 Mon Sep 17 00:00:00 2001 From: Marlon Costa Date: Mon, 3 Aug 2026 16:35:49 -0300 Subject: [PATCH 165/165] chore(ci): render staged validation hooks Co-authored-by: Cursor --- .github/scripts/install-git-hooks.sh | 9 +++++++++ .github/workflows/ci.yml | 11 ++++++++--- .pre-commit-config.yaml | 17 ++++++++++++++--- 3 files changed, 31 insertions(+), 6 deletions(-) mode change 100644 => 100755 .github/scripts/install-git-hooks.sh diff --git a/.github/scripts/install-git-hooks.sh b/.github/scripts/install-git-hooks.sh old mode 100644 new mode 100755 index 514839cee..3619a0605 --- a/.github/scripts/install-git-hooks.sh +++ b/.github/scripts/install-git-hooks.sh @@ -41,8 +41,13 @@ fail() { exit 1 } +command -v pre-commit >/dev/null 2>&1 || fail "pre-commit is not installed; install it before provisioning hooks" command -v bd >/dev/null 2>&1 || fail "bd is not installed; install Beads before provisioning hooks" +# Why: install both staged workflow entry points before Beads chains its guard. +_log "Installing pre-commit and pre-push hooks at ${WORKSPACE_ROOT}" +pre-commit install -t pre-commit -t pre-push >/dev/null \ + || fail "pre-commit hook installation failed" _log "Installing Beads git hooks (chained) at ${WORKSPACE_ROOT}" bd hooks install --chain >/dev/null || fail "bd hooks install --chain failed" @@ -96,5 +101,9 @@ grep -q 'BD_ALLOW_AGENT_COMMIT_TRAILERS' "${hook_path}" \ || fail "guard token missing after injection" grep -q 'bd hooks run prepare-commit-msg' "${hook_path}" \ || fail "bd delegation missing; refusing to leave hook without beads integration" +[ -f "$(git rev-parse --git-path hooks/pre-commit)" ] \ + || fail "pre-commit hook missing after provisioning" +[ -f "$(git rev-parse --git-path hooks/pre-push)" ] \ + || fail "pre-push hook missing after provisioning" echo "install-git-hooks: prepare-commit-msg guarded (BD_ALLOW_AGENT_COMMIT_TRAILERS opt-in)" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6638924be..1aae0a178 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -28,6 +28,11 @@ permissions: contents: read # End SECTION: permissions +# Why: one active run per workflow and branch prevents obsolete CI from consuming runners. +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + jobs: # === SECTION: ci job (managed) === # Source: template + config:github_actions.* @@ -57,13 +62,13 @@ jobs: run: make setup - name: gen (blocking) - run: make gen APPLY=Y + run: make gen WHAT=apply APPLY=Y - name: fmt (blocking) - run: make fmt APPLY=Y + run: make fmt WHAT=apply APPLY=Y - name: fix (blocking) - run: make fix APPLY=Y + run: make fix WHAT=apply APPLY=Y - name: check (blocking) run: make check diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index c78d38a5c..96548c487 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -2,11 +2,22 @@ repos: - repo: local hooks: - - id: flext-canonical-workflow - name: FLEXT canonical workflow + # Why: fast fixes run before each commit; expensive gates run before push. + - id: flext-pre-commit + name: FLEXT pre-commit workflow language: system entry: >- bash -eu -o pipefail -c - 'make gen APPLY=Y && make fmt APPLY=Y && make fix APPLY=Y && make check && make test' + 'make fmt APPLY=Y && make fix APPLY=Y' pass_filenames: false always_run: true + stages: [pre-commit] + - id: flext-pre-push + name: FLEXT pre-push workflow + language: system + entry: >- + bash -eu -o pipefail -c + 'make gen APPLY=Y && make check && make test' + pass_filenames: false + always_run: true + stages: [pre-push]