dataenginex 1.0.2__tar.gz → 1.1.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- dataenginex-1.1.1/.github/workflows/auto-pr.yml +23 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/.github/workflows/docs-notify.yml +1 -1
- dataenginex-1.1.1/.github/workflows/release.yml +69 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/.gitignore +3 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/.gitleaks.toml +0 -4
- {dataenginex-1.0.2 → dataenginex-1.1.1}/.pre-commit-config.yaml +7 -12
- dataenginex-1.1.1/.release-please-manifest.json +3 -0
- dataenginex-1.1.1/CHANGELOG.md +540 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/PKG-INFO +18 -15
- {dataenginex-1.0.2 → dataenginex-1.1.1}/README.md +1 -1
- {dataenginex-1.0.2 → dataenginex-1.1.1}/docs/release-notes.md +25 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/examples/02_api_quickstart.py +1 -2
- {dataenginex-1.0.2 → dataenginex-1.1.1}/examples/07_api_ingestion.py +2 -1
- {dataenginex-1.0.2 → dataenginex-1.1.1}/examples/08_spark_ml.py +1 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/examples/09_feature_engineering.py +1 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/examples/10_model_analysis.py +1 -0
- dataenginex-1.1.1/examples/data/events.csv +11 -0
- dataenginex-1.1.1/examples/data/users.csv +11 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/examples/dex.yaml +4 -4
- dataenginex-1.1.1/examples/ecommerce/data/customers.csv +21 -0
- dataenginex-1.1.1/examples/ecommerce/data/orders.csv +51 -0
- dataenginex-1.1.1/examples/ecommerce/data/products.csv +11 -0
- dataenginex-1.1.1/examples/ecommerce/dex.yaml +142 -0
- dataenginex-1.1.1/examples/ecommerce/run_all.py +426 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/poe_tasks.toml +3 -20
- {dataenginex-1.0.2 → dataenginex-1.1.1}/pyproject.toml +40 -44
- {dataenginex-1.0.2 → dataenginex-1.1.1}/sonar-project.properties +1 -1
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/__init__.py +1 -1
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/ai/observability/audit.py +11 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/api/factory.py +18 -9
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/api/health.py +17 -24
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/api/routers/ai.py +64 -1
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/api/routers/data.py +24 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/api/routers/ml.py +13 -1
- dataenginex-1.1.1/src/dataenginex/api/routers/pipelines.py +194 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/api/scim.py +240 -2
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/cli/main.py +29 -25
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/cli/run.py +14 -17
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/cli/train.py +21 -31
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/data/connectors/csv.py +11 -5
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/data/connectors/legacy.py +2 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/data/transforms/sql.py +25 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/ml/__init__.py +3 -3
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/ml/training.py +8 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/ml/vectorstore.py +105 -80
- dataenginex-1.1.1/src/dataenginex/warehouse/lineage.py +455 -0
- dataenginex-1.1.1/src/dataenginex/worker.py +180 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/integration/test_api_middleware_integration.py +1 -1
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/integration/test_full_app.py +1 -1
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_api_factory.py +7 -6
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_data_router.py +22 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_pipeline_router_extended.py +19 -14
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_sql_transforms.py +43 -10
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_vectorstore.py +13 -8
- {dataenginex-1.0.2 → dataenginex-1.1.1}/uv.lock +668 -768
- dataenginex-1.0.2/.github/workflows/auto-pr-dev-to-main.yml +0 -15
- dataenginex-1.0.2/.github/workflows/auto-pr-to-dev.yml +0 -16
- dataenginex-1.0.2/.github/workflows/claude.yml +0 -23
- dataenginex-1.0.2/.github/workflows/pypi-publish.yml +0 -290
- dataenginex-1.0.2/.github/workflows/release-dex.yml +0 -150
- dataenginex-1.0.2/.github/workflows/release-please.yml +0 -16
- dataenginex-1.0.2/.release-please-manifest.json +0 -3
- dataenginex-1.0.2/CHANGELOG.md +0 -285
- dataenginex-1.0.2/docs/roadmap/project-roadmap.csv +0 -37
- dataenginex-1.0.2/docs/roadmap/project-roadmap.json +0 -11
- dataenginex-1.0.2/docs/superpowers/plans/2026-03-21-phase-0-foundation.md +0 -2242
- dataenginex-1.0.2/docs/superpowers/plans/2026-03-22-dataenginex-1.0-master-plan.md +0 -490
- dataenginex-1.0.2/docs/superpowers/plans/2026-03-22-phase-1-data-layer.md +0 -2016
- dataenginex-1.0.2/docs/superpowers/plans/2026-03-22-phase-6a-dex-engine-integration.md +0 -2235
- dataenginex-1.0.2/docs/superpowers/plans/2026-03-22-phase-6b-dex-studio-redesign.md +0 -2050
- dataenginex-1.0.2/docs/superpowers/plans/2026-03-23-careerdex-example.md +0 -1006
- dataenginex-1.0.2/docs/superpowers/plans/2026-03-23-dex-studio-direct-import.md +0 -1645
- dataenginex-1.0.2/docs/superpowers/plans/2026-03-24-dex-naming-architecture-dry.md +0 -1093
- dataenginex-1.0.2/docs/superpowers/plans/2026-03-28-unified-docs-and-tooling.md +0 -2137
- dataenginex-1.0.2/docs/superpowers/specs/2026-03-21-dataenginex-v2-system-redesign.md +0 -853
- dataenginex-1.0.2/docs/superpowers/specs/2026-03-22-phase-6-integration-design.md +0 -596
- dataenginex-1.0.2/docs/superpowers/specs/2026-03-23-dex-studio-direct-import-design.md +0 -469
- dataenginex-1.0.2/docs/superpowers/specs/2026-03-24-dex-naming-architecture-dry-design.md +0 -412
- dataenginex-1.0.2/docs/superpowers/specs/2026-03-28-unified-docs-and-tooling-design.md +0 -683
- dataenginex-1.0.2/scripts/GUIDE.md +0 -128
- dataenginex-1.0.2/scripts/localstack/create-buckets.sh +0 -4
- dataenginex-1.0.2/scripts/promote.sh +0 -125
- dataenginex-1.0.2/src/dataenginex/api/routers/pipelines.py +0 -80
- dataenginex-1.0.2/src/dataenginex/dashboard/__init__.py +0 -29
- dataenginex-1.0.2/src/dataenginex/dashboard/app.py +0 -165
- dataenginex-1.0.2/src/dataenginex/dashboard/panels.py +0 -129
- dataenginex-1.0.2/src/dataenginex/warehouse/lineage.py +0 -204
- dataenginex-1.0.2/tasks/findings.md +0 -71
- dataenginex-1.0.2/tasks/lessons.md +0 -63
- {dataenginex-1.0.2 → dataenginex-1.1.1}/.claude/commands/new-feature.md +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/.claude/commands/validate.md +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/.claude/settings.json +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/.env.template +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/.github/dependabot.yml +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/.github/labels.yml +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/.github/release-pr-template.md +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/.github/workflows/ci.yml +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/.github/workflows/docker-build-push.yml +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/.github/workflows/enforce-dev-to-main.yml +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/.github/workflows/label-sync.yml +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/.github/workflows/security.yml +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/.python-version +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/CLAUDE.md +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/CODEOWNERS +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/CODE_OF_CONDUCT.md +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/CONTRIBUTING.md +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/Dockerfile +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/LICENSE +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/SECURITY.md +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/docker-compose.test.yml +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/docs/adr/0000-template.md +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/docs/adr/0001-medallion-architecture.md +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/docs/api-reference/api.md +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/docs/api-reference/core.md +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/docs/api-reference/dashboard.md +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/docs/api-reference/data.md +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/docs/api-reference/index.md +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/docs/api-reference/lakehouse.md +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/docs/api-reference/middleware.md +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/docs/api-reference/ml.md +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/docs/api-reference/plugins.md +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/docs/api-reference/warehouse.md +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/docs/architecture.md +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/docs/ci-cd.md +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/docs/contributing.md +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/docs/development.md +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/docs/index.md +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/docs/observability.md +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/docs/quickstart.md +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/docs/sdlc.md +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/docs/security-scanning.md +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/examples/01_hello_pipeline.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/examples/03_quality_gate.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/examples/04_ml_training.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/examples/05_rag_demo.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/examples/06_llm_quickstart.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/examples/GUIDE.md +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/examples/dashboard/dashboard_config.yaml +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/examples/dashboard/run_dashboard.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/examples/movies.csv +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/release-please-config.json +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/README.md +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/RELEASE_NOTES.md +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/ai/__init__.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/ai/agents/__init__.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/ai/agents/builtin.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/ai/memory/__init__.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/ai/memory/base.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/ai/memory/episodic.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/ai/memory/long_term.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/ai/observability/__init__.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/ai/observability/cost.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/ai/observability/langfuse.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/ai/observability/metrics.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/ai/retrieval/__init__.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/ai/retrieval/builtin.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/ai/retrieval/graph.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/ai/routing/__init__.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/ai/routing/anthropic.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/ai/routing/huggingface.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/ai/routing/ollama.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/ai/routing/openai.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/ai/routing/router.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/ai/runtime/__init__.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/ai/runtime/checkpoint.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/ai/runtime/executor.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/ai/runtime/sandbox.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/ai/tools/__init__.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/ai/tools/builtin.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/ai/workflows/__init__.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/ai/workflows/conditions.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/ai/workflows/dag.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/ai/workflows/human_loop.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/api/__init__.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/api/auth.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/api/errors.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/api/jwks.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/api/ldap_sync.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/api/pagination.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/api/rate_limit.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/api/rbac.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/api/routers/__init__.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/api/routers/health.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/api/routers/root.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/api/routers/system.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/api/schemas.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/cli/__init__.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/cli/serve.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/config/__init__.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/config/defaults.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/config/loader.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/config/schema.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/core/__init__.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/core/exceptions.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/core/interfaces.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/core/medallion_architecture.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/core/quality.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/core/registry.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/core/schemas.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/core/validators.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/data/__init__.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/data/connectors/__init__.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/data/connectors/duckdb.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/data/pipeline/__init__.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/data/pipeline/dag.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/data/pipeline/run_history.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/data/pipeline/runner.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/data/profiler.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/data/quality/__init__.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/data/quality/gates.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/data/quality/spark.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/data/registry.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/data/transforms/__init__.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/lakehouse/__init__.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/lakehouse/catalog.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/lakehouse/partitioning.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/lakehouse/storage.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/middleware/__init__.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/middleware/domain_metrics.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/middleware/logging_config.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/middleware/metrics.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/middleware/metrics_middleware.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/middleware/request_logging.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/middleware/tracing.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/ml/drift.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/ml/features/__init__.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/ml/features/builtin.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/ml/llm.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/ml/metrics.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/ml/mlflow_registry.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/ml/registry.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/ml/scheduler.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/ml/serving.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/ml/serving_engine/__init__.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/ml/serving_engine/builtin.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/ml/tracking/__init__.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/ml/tracking/builtin.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/orchestration/__init__.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/orchestration/builtin.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/plugins/__init__.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/plugins/registry.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/py.typed +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/secops/__init__.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/secops/audit.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/secops/gate.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/secops/masking.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/secops/pii.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/warehouse/__init__.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/src/dataenginex/warehouse/transforms.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/__init__.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/conformance/__init__.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/conformance/test_connector.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/conformance/test_feature_store.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/conformance/test_tracker.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/conformance/test_transform.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/conftest.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/fixtures/__init__.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/fixtures/sample_data.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/fixtures/sample_jobs.csv +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/fixtures/sample_jobs.json +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/integration/__init__.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/integration/test_ai_integration.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/integration/test_cli_run.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/integration/test_config_cli.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/integration/test_lineage_integration.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/integration/test_ml_integration.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/integration/test_pipeline_e2e.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/integration/test_secops_integration.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/integration/test_storage_real.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/load/__init__.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/__init__.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_agent_runtime.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_ai_modules.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_ai_router.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_ai_router_extended.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_api_auth.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_api_jwks.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_api_pagination.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_api_rate_limit.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_api_rbac.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_api_schemas.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_api_scim.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_api_validators.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_builtin_agent.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_builtin_feature_store.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_builtin_serving.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_builtin_tracker.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_cli_train.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_config_loader.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_config_schema.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_core_exceptions.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_core_interfaces.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_core_registry.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_csv_connector.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_data.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_domain_metrics.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_domain_metrics_wiring.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_drift_scheduler.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_duckdb_connector.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_errors.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_health.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_lakehouse.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_llm.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_llm_litellm_vllm.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_logging.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_medallion.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_metrics.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_middleware.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_ml.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_ml_router.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_observability_langfuse.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_pipeline_dag.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_pipeline_runner.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_plugins.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_quality_gates.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_quality_spark.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_retriever.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_retriever_graph.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_run_history.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_scheduler.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_secops.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_security_extended.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_spark_fixtures.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_storage_abstraction.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_system_router.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_tracing.py +0 -0
- {dataenginex-1.0.2 → dataenginex-1.1.1}/tests/unit/test_warehouse.py +0 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
name: Auto PR
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- dev
|
|
7
|
+
- 'feature/**'
|
|
8
|
+
- 'fix/**'
|
|
9
|
+
|
|
10
|
+
permissions:
|
|
11
|
+
contents: write
|
|
12
|
+
pull-requests: write
|
|
13
|
+
|
|
14
|
+
jobs:
|
|
15
|
+
feature-to-dev:
|
|
16
|
+
if: startsWith(github.ref, 'refs/heads/feature/') || startsWith(github.ref, 'refs/heads/fix/')
|
|
17
|
+
uses: TheDataEngineX/.github/.github/workflows/auto-pr-to-dev.yml@main
|
|
18
|
+
secrets: inherit
|
|
19
|
+
|
|
20
|
+
dev-to-main:
|
|
21
|
+
if: github.ref == 'refs/heads/dev'
|
|
22
|
+
uses: TheDataEngineX/.github/.github/workflows/auto-pr-dev-to-main.yml@main
|
|
23
|
+
secrets: inherit
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
name: Release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- 'v[0-9]+.[0-9]+.[0-9]+'
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
build:
|
|
10
|
+
name: Build
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
permissions:
|
|
13
|
+
contents: read
|
|
14
|
+
steps:
|
|
15
|
+
- uses: actions/checkout@v6
|
|
16
|
+
- uses: astral-sh/setup-uv@v7
|
|
17
|
+
with:
|
|
18
|
+
version: "latest"
|
|
19
|
+
python-version: "3.13"
|
|
20
|
+
- run: uv build
|
|
21
|
+
- uses: actions/upload-artifact@v4
|
|
22
|
+
with:
|
|
23
|
+
name: dist
|
|
24
|
+
path: dist/
|
|
25
|
+
|
|
26
|
+
publish-pypi:
|
|
27
|
+
name: Publish to PyPI
|
|
28
|
+
needs: build
|
|
29
|
+
runs-on: ubuntu-latest
|
|
30
|
+
environment: ${{ vars.PYPI_ENVIRONMENT }}
|
|
31
|
+
permissions:
|
|
32
|
+
contents: read
|
|
33
|
+
id-token: write
|
|
34
|
+
steps:
|
|
35
|
+
- uses: actions/download-artifact@v4
|
|
36
|
+
with:
|
|
37
|
+
name: dist
|
|
38
|
+
path: dist/
|
|
39
|
+
- uses: pypa/gh-action-pypi-publish@release/v1
|
|
40
|
+
|
|
41
|
+
github-release:
|
|
42
|
+
name: GitHub Release + SBOM
|
|
43
|
+
needs: build
|
|
44
|
+
runs-on: ubuntu-latest
|
|
45
|
+
permissions:
|
|
46
|
+
contents: write
|
|
47
|
+
steps:
|
|
48
|
+
- uses: actions/checkout@v6
|
|
49
|
+
- uses: astral-sh/setup-uv@v7
|
|
50
|
+
with:
|
|
51
|
+
version: "latest"
|
|
52
|
+
- name: Extract version
|
|
53
|
+
id: version
|
|
54
|
+
run: |
|
|
55
|
+
VERSION=$(grep -m 1 "^version = " pyproject.toml | sed 's/version = "//;s/".*//')
|
|
56
|
+
echo "version=$VERSION" >> "$GITHUB_OUTPUT"
|
|
57
|
+
- name: Generate CycloneDX SBOM
|
|
58
|
+
run: |
|
|
59
|
+
uvx --from cyclonedx-bom cyclonedx-py environment \
|
|
60
|
+
-o sbom-dex-${{ steps.version.outputs.version }}.json \
|
|
61
|
+
--of json
|
|
62
|
+
- name: Create GitHub release + attach SBOM
|
|
63
|
+
env:
|
|
64
|
+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
65
|
+
run: |
|
|
66
|
+
gh release create ${{ github.ref_name }} \
|
|
67
|
+
--title "DEX ${{ github.ref_name }}" \
|
|
68
|
+
--generate-notes \
|
|
69
|
+
"sbom-dex-${{ steps.version.outputs.version }}.json"
|
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
|
|
5
5
|
repos:
|
|
6
6
|
- repo: https://github.com/gitleaks/gitleaks
|
|
7
|
-
rev: v8.
|
|
7
|
+
rev: v8.30.1
|
|
8
8
|
hooks:
|
|
9
9
|
- id: gitleaks
|
|
10
10
|
|
|
11
11
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
12
|
-
rev:
|
|
12
|
+
rev: v6.0.0
|
|
13
13
|
hooks:
|
|
14
14
|
- id: trailing-whitespace
|
|
15
15
|
- id: end-of-file-fixer
|
|
@@ -28,23 +28,18 @@ repos:
|
|
|
28
28
|
exclude: '^(site/|\.github/)'
|
|
29
29
|
|
|
30
30
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
31
|
-
rev: v0.15.
|
|
31
|
+
rev: v0.15.12
|
|
32
32
|
hooks:
|
|
33
33
|
- id: ruff
|
|
34
34
|
args: ["--fix"]
|
|
35
35
|
- id: ruff-format
|
|
36
36
|
|
|
37
|
-
- repo:
|
|
38
|
-
rev: v1.16.1
|
|
37
|
+
- repo: local
|
|
39
38
|
hooks:
|
|
40
39
|
- id: mypy
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
- google-cloud-storage>=2.18.0
|
|
45
|
-
- types-pyyaml
|
|
46
|
-
- types-requests
|
|
40
|
+
name: mypy
|
|
41
|
+
entry: uv run mypy
|
|
42
|
+
language: system
|
|
47
43
|
args: ["--config-file=pyproject.toml", "--no-incremental", "src/dataenginex"]
|
|
48
|
-
language_version: python3.13
|
|
49
44
|
pass_filenames: false
|
|
50
45
|
files: ^src/dataenginex/
|