py-data-engine 0.1.3__tar.gz → 0.2.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.
- {py_data_engine-0.1.3/src/py_data_engine.egg-info → py_data_engine-0.2.1}/PKG-INFO +2 -1
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/pyproject.toml +3 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/__init__.py +6 -6
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/application/catalog.py +13 -2
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/application/runtime.py +1 -1
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/authoring/__init__.py +1 -1
- py_data_engine-0.2.1/src/data_engine/authoring/flow.py +198 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/authoring/services.py +7 -2
- py_data_engine-0.2.1/src/data_engine/core/__init__.py +35 -0
- {py_data_engine-0.1.3/src/data_engine/authoring → py_data_engine-0.2.1/src/data_engine/core}/flow.py +106 -180
- {py_data_engine-0.1.3/src/data_engine/authoring → py_data_engine-0.2.1/src/data_engine/core}/helpers.py +18 -7
- {py_data_engine-0.1.3/src/data_engine/authoring → py_data_engine-0.2.1/src/data_engine/core}/model.py +2 -1
- {py_data_engine-0.1.3/src/data_engine/authoring → py_data_engine-0.2.1/src/data_engine/core}/primitives.py +79 -26
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/devtools/project_ast_map.py +2 -1
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/devtools/smoke_data.py +40 -10
- py_data_engine-0.2.1/src/data_engine/docs/html/_modules/data_engine/authoring/flow.html +336 -0
- {py_data_engine-0.1.3/src/data_engine/docs/html/_modules/data_engine/authoring → py_data_engine-0.2.1/src/data_engine/docs/html/_modules/data_engine/core}/flow.html +118 -213
- {py_data_engine-0.1.3/src/data_engine/docs/html/_modules/data_engine/authoring → py_data_engine-0.2.1/src/data_engine/docs/html/_modules/data_engine/core}/model.html +9 -8
- {py_data_engine-0.1.3/src/data_engine/docs/html/_modules/data_engine/authoring → py_data_engine-0.2.1/src/data_engine/docs/html/_modules/data_engine/core}/primitives.html +113 -60
- py_data_engine-0.2.1/src/data_engine/docs/html/_modules/data_engine/helpers/duckdb.html +1124 -0
- py_data_engine-0.2.1/src/data_engine/docs/html/_modules/data_engine/helpers/polars.html +959 -0
- py_data_engine-0.2.1/src/data_engine/docs/html/_modules/data_engine/helpers/schema.html +555 -0
- py_data_engine-0.2.1/src/data_engine/docs/html/_modules/data_engine/hosts/scheduler.html +282 -0
- py_data_engine-0.2.1/src/data_engine/docs/html/_modules/data_engine/runtime/engine.html +254 -0
- py_data_engine-0.2.1/src/data_engine/docs/html/_modules/data_engine/runtime/execution/grouped.html +233 -0
- py_data_engine-0.2.1/src/data_engine/docs/html/_modules/data_engine/runtime/execution/single.html +349 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_modules/data_engine/runtime/file_watch.html +2 -2
- py_data_engine-0.2.1/src/data_engine/docs/html/_modules/data_engine/runtime/stop.html +184 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_modules/data_engine/services/daemon.html +1 -1
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_modules/data_engine/services/daemon_state.html +1 -1
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_modules/data_engine/services/flow_catalog.html +4 -4
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_modules/data_engine/services/flow_execution.html +9 -9
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_modules/data_engine/services/ledger.html +15 -14
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_modules/data_engine/services/logs.html +11 -16
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_modules/data_engine/services/runtime_binding.html +152 -22
- py_data_engine-0.2.1/src/data_engine/docs/html/_modules/data_engine/services/runtime_execution.html +362 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_modules/data_engine/services/runtime_history.html +8 -8
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_modules/data_engine/services/settings.html +1 -1
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_modules/data_engine/services/shared_state.html +4 -5
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_modules/data_engine/services/theme.html +1 -1
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_modules/data_engine/services/workspace_provisioning.html +1 -1
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_modules/data_engine/services/workspaces.html +1 -1
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_modules/index.html +12 -3
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_sources/api.rst.txt +57 -5
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_sources/guides/database-methods.md.txt +5 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_sources/guides/duckdb-helpers.md.txt +6 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_sources/guides/flow-methods.md.txt +13 -7
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_sources/guides/getting-started.md.txt +2 -2
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_sources/guides/project-inventory.md.txt +1390 -641
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_sources/guides/project-map.md.txt +24 -22
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/documentation_options.js +1 -1
- py_data_engine-0.2.1/src/data_engine/docs/html/api.html +5125 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/genindex.html +442 -115
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/guides/app-runtime-and-workspaces.html +1 -1
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/guides/authoring-flow-modules.html +1 -1
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/guides/configuring-flows.html +1 -1
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/guides/core-concepts.html +1 -1
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/guides/database-methods.html +5 -1
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/guides/duckdb-helpers.html +6 -1
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/guides/flow-context.html +1 -1
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/guides/flow-methods.html +13 -8
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/guides/getting-started.html +3 -3
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/guides/project-inventory.html +3868 -2585
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/guides/project-map.html +80 -72
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/guides/recipes.html +1 -1
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/index.html +7 -3
- py_data_engine-0.2.1/src/data_engine/docs/html/objects.inv +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/py-modindex.html +43 -3
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/search.html +1 -1
- py_data_engine-0.2.1/src/data_engine/docs/html/searchindex.js +1 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/sphinx_source/api.rst +57 -5
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/sphinx_source/guides/database-methods.md +5 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/sphinx_source/guides/duckdb-helpers.md +6 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/sphinx_source/guides/flow-methods.md +13 -7
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/sphinx_source/guides/getting-started.md +2 -2
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/sphinx_source/guides/project-inventory.md +1390 -641
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/sphinx_source/guides/project-map.md +24 -22
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/flow_modules/flow_module_compiler.py +1 -1
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/flow_modules/flow_module_loader.py +12 -9
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/helpers/__init__.py +10 -0
- py_data_engine-0.2.1/src/data_engine/helpers/polars.py +773 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/helpers/schema.py +131 -27
- py_data_engine-0.2.1/src/data_engine/hosts/__init__.py +5 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/hosts/daemon/app.py +0 -5
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/hosts/daemon/composition.py +0 -8
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/hosts/daemon/lifecycle.py +2 -2
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/hosts/daemon/runtime_commands.py +2 -2
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/hosts/daemon/shared_state.py +5 -5
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/hosts/daemon/state_sync.py +1 -1
- py_data_engine-0.2.1/src/data_engine/hosts/scheduler.py +135 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/platform/identity.py +1 -1
- py_data_engine-0.2.1/src/data_engine/runtime/engine.py +116 -0
- py_data_engine-0.2.1/src/data_engine/runtime/execution/__init__.py +6 -0
- py_data_engine-0.2.1/src/data_engine/runtime/execution/app.py +6 -0
- {py_data_engine-0.1.3/src/data_engine/authoring → py_data_engine-0.2.1/src/data_engine/runtime}/execution/context.py +4 -4
- {py_data_engine-0.1.3/src/data_engine/authoring → py_data_engine-0.2.1/src/data_engine/runtime}/execution/continuous.py +12 -69
- {py_data_engine-0.1.3/src/data_engine/authoring → py_data_engine-0.2.1/src/data_engine/runtime}/execution/grouped.py +18 -13
- {py_data_engine-0.1.3/src/data_engine/authoring → py_data_engine-0.2.1/src/data_engine/runtime}/execution/logging.py +21 -5
- {py_data_engine-0.1.3/src/data_engine/authoring → py_data_engine-0.2.1/src/data_engine/runtime}/execution/polling.py +33 -18
- py_data_engine-0.2.1/src/data_engine/runtime/execution/runner.py +379 -0
- {py_data_engine-0.1.3/src/data_engine/authoring → py_data_engine-0.2.1/src/data_engine/runtime}/execution/single.py +76 -35
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/runtime/file_watch.py +1 -1
- py_data_engine-0.1.3/src/data_engine/runtime/runtime_db.py → py_data_engine-0.2.1/src/data_engine/runtime/runtime_cache_store.py +374 -590
- py_data_engine-0.2.1/src/data_engine/runtime/runtime_control_store.py +231 -0
- py_data_engine-0.2.1/src/data_engine/runtime/runtime_db.py +30 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/runtime/shared_state.py +76 -31
- py_data_engine-0.2.1/src/data_engine/runtime/sqlite_store.py +70 -0
- py_data_engine-0.2.1/src/data_engine/runtime/stop.py +52 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/services/flow_catalog.py +3 -3
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/services/flow_execution.py +8 -8
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/services/ledger.py +14 -13
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/services/logs.py +10 -15
- py_data_engine-0.2.1/src/data_engine/services/runtime_binding.py +266 -0
- py_data_engine-0.2.1/src/data_engine/services/runtime_execution.py +215 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/services/runtime_history.py +7 -7
- py_data_engine-0.2.1/src/data_engine/services/runtime_ports.py +89 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/services/shared_state.py +3 -4
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/cli/app.py +1 -1
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/cli/commands_doctor.py +1 -1
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/cli/commands_run.py +1 -1
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/cli/commands_start.py +1 -1
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/cli/commands_workspace.py +1 -1
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/bootstrap.py +5 -3
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/control_support.py +2 -2
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/controllers/runtime.py +8 -6
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/helpers/inspection.py +2 -2
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/presenters/workspace_settings.py +1 -14
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/state_support.py +2 -7
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/tui/app.py +1 -1
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/tui/bootstrap.py +5 -3
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/tui/controllers/runtime.py +4 -5
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/tui/state_support.py +2 -7
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/views/logs.py +8 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1/src/py_data_engine.egg-info}/PKG-INFO +2 -1
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/py_data_engine.egg-info/SOURCES.txt +35 -15
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/py_data_engine.egg-info/requires.txt +1 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/tests/test_application.py +43 -1
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/tests/test_authoring_helpers.py +2 -2
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/tests/test_builder.py +53 -36
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/tests/test_daemon.py +19 -19
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/tests/test_flow_module_compiler.py +1 -1
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/tests/test_flow_module_loader.py +1 -1
- py_data_engine-0.2.1/tests/test_helpers_polars.py +255 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/tests/test_integration.py +32 -27
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/tests/test_logs.py +3 -3
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/tests/test_qt_ui.py +16 -16
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/tests/test_runtime_db.py +118 -50
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/tests/test_runtime_history_service.py +9 -9
- py_data_engine-0.2.1/tests/test_scheduler_host.py +105 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/tests/test_schema_helper.py +40 -8
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/tests/test_services.py +184 -7
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/tests/test_shared_state.py +103 -49
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/tests/test_tui.py +9 -9
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/tests/test_ui_bootstrap.py +4 -2
- py_data_engine-0.1.3/src/data_engine/authoring/builder.py +0 -31
- py_data_engine-0.1.3/src/data_engine/authoring/execution/__init__.py +0 -6
- py_data_engine-0.1.3/src/data_engine/authoring/execution/app.py +0 -6
- py_data_engine-0.1.3/src/data_engine/authoring/execution/runner.py +0 -210
- py_data_engine-0.1.3/src/data_engine/docs/html/_modules/data_engine/services/runtime_execution.html +0 -260
- py_data_engine-0.1.3/src/data_engine/docs/html/api.html +0 -2951
- py_data_engine-0.1.3/src/data_engine/docs/html/objects.inv +0 -0
- py_data_engine-0.1.3/src/data_engine/docs/html/searchindex.js +0 -1
- py_data_engine-0.1.3/src/data_engine/hosts/__init__.py +0 -1
- py_data_engine-0.1.3/src/data_engine/services/runtime_binding.py +0 -151
- py_data_engine-0.1.3/src/data_engine/services/runtime_execution.py +0 -125
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/LICENSE +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/README.md +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/setup.cfg +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/setup.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/application/__init__.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/application/actions.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/application/control.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/application/details.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/application/workspace.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/devtools/__init__.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/__init__.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_sources/guides/app-runtime-and-workspaces.md.txt +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_sources/guides/authoring-flow-modules.md.txt +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_sources/guides/configuring-flows.md.txt +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_sources/guides/core-concepts.md.txt +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_sources/guides/flow-context.md.txt +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_sources/guides/recipes.md.txt +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_sources/index.rst.txt +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/_sphinx_javascript_frameworks_compat.js +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/base-stemmer.js +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/basic.css +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/css/badge_only.css +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/css/fonts/Roboto-Slab-Bold.woff +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/css/fonts/Roboto-Slab-Bold.woff2 +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/css/fonts/Roboto-Slab-Regular.woff +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/css/fonts/Roboto-Slab-Regular.woff2 +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/css/fonts/fontawesome-webfont.eot +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/css/fonts/fontawesome-webfont.svg +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/css/fonts/fontawesome-webfont.ttf +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/css/fonts/fontawesome-webfont.woff +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/css/fonts/fontawesome-webfont.woff2 +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/css/fonts/lato-bold-italic.woff +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/css/fonts/lato-bold-italic.woff2 +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/css/fonts/lato-bold.woff +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/css/fonts/lato-bold.woff2 +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/css/fonts/lato-normal-italic.woff +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/css/fonts/lato-normal-italic.woff2 +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/css/fonts/lato-normal.woff +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/css/fonts/lato-normal.woff2 +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/css/theme.css +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/custom.css +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/doctools.js +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/english-stemmer.js +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/file.png +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/fonts/Lato/lato-bold.eot +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/fonts/Lato/lato-bold.ttf +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/fonts/Lato/lato-bold.woff +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/fonts/Lato/lato-bold.woff2 +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/fonts/Lato/lato-bolditalic.eot +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/fonts/Lato/lato-bolditalic.ttf +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/fonts/Lato/lato-bolditalic.woff +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/fonts/Lato/lato-bolditalic.woff2 +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/fonts/Lato/lato-italic.eot +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/fonts/Lato/lato-italic.ttf +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/fonts/Lato/lato-italic.woff +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/fonts/Lato/lato-italic.woff2 +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/fonts/Lato/lato-regular.eot +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/fonts/Lato/lato-regular.ttf +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/fonts/Lato/lato-regular.woff +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/fonts/Lato/lato-regular.woff2 +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2 +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/jquery.js +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/js/badge_only.js +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/js/theme.js +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/js/versions.js +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/language_data.js +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/minus.png +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/plus.png +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/pygments.css +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/searchtools.js +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/html/_static/sphinx_highlight.js +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/sphinx_source/_static/custom.css +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/sphinx_source/conf.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/sphinx_source/guides/app-runtime-and-workspaces.md +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/sphinx_source/guides/authoring-flow-modules.md +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/sphinx_source/guides/configuring-flows.md +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/sphinx_source/guides/core-concepts.md +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/sphinx_source/guides/flow-context.md +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/sphinx_source/guides/recipes.md +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/docs/sphinx_source/index.rst +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/domain/__init__.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/domain/actions.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/domain/catalog.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/domain/details.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/domain/diagnostics.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/domain/errors.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/domain/inspection.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/domain/logs.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/domain/operations.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/domain/operator.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/domain/runs.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/domain/runtime.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/domain/source_state.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/domain/support.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/domain/time.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/domain/workspace.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/flow_modules/__init__.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/helpers/duckdb.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/hosts/daemon/__init__.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/hosts/daemon/bootstrap.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/hosts/daemon/client.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/hosts/daemon/commands.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/hosts/daemon/constants.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/hosts/daemon/entrypoints.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/hosts/daemon/manager.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/hosts/daemon/ownership.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/hosts/daemon/runtime_control.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/hosts/daemon/server.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/platform/__init__.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/platform/interpreters.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/platform/local_settings.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/platform/paths.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/platform/processes.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/platform/theme.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/platform/workspace_models.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/platform/workspace_policy.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/runtime/__init__.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/runtime/ledger_models.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/services/__init__.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/services/daemon.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/services/daemon_state.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/services/settings.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/services/theme.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/services/workspace_provisioning.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/services/workspaces.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/__init__.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/cli/__init__.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/cli/dependencies.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/cli/parser.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/__init__.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/app.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/bootstrapper.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/cache_models.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/controllers/__init__.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/controllers/flows.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/dialogs/__init__.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/dialogs/messages.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/dialogs/previews.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/helpers/__init__.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/helpers/lifecycle.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/helpers/scroll.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/helpers/theming.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/icons/dark_light.svg +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/icons/documentation.svg +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/icons/failed.svg +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/icons/group.svg +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/icons/home.svg +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/icons/manual.svg +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/icons/poll.svg +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/icons/schedule.svg +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/icons/settings.svg +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/icons/started.svg +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/icons/success.svg +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/icons/view-log.svg +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/icons.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/launcher.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/presenters/__init__.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/presenters/docs.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/presenters/logs.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/presenters/runtime_projection.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/presenters/sidebar.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/presenters/steps.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/presenters/workspace.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/presenters/workspace_binding.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/preview_models.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/render_support.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/rendering/__init__.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/rendering/artifacts.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/rendering/icons.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/runtime.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/support.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/surface.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/theme.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/widgets/__init__.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/widgets/config.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/widgets/logs.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/widgets/panels.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/widgets/sidebar.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/gui/widgets/steps.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/tui/__init__.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/tui/bootstrapper.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/tui/controllers/__init__.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/tui/controllers/flows.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/tui/runtime.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/tui/support.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/tui/theme.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/ui/tui/widgets.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/views/__init__.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/views/actions.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/views/artifacts.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/views/flow_display.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/views/models.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/views/presentation.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/views/runs.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/views/state.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/views/status.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/data_engine/views/text.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/py_data_engine.egg-info/dependency_links.txt +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/py_data_engine.egg-info/entry_points.txt +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/src/py_data_engine.egg-info/top_level.txt +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/tests/test_authoring_services.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/tests/test_cli.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/tests/test_cli_helpers.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/tests/test_domain_actions.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/tests/test_domain_catalog.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/tests/test_domain_details.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/tests/test_domain_errors.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/tests/test_domain_inspection.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/tests/test_domain_logs.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/tests/test_domain_operations.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/tests/test_domain_operator.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/tests/test_domain_runs.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/tests/test_domain_runtime.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/tests/test_domain_support.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/tests/test_domain_workspace.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/tests/test_export_project_bundle_script.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/tests/test_helpers_duckdb.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/tests/test_live_runtime_suite.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/tests/test_local_settings.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/tests/test_platform_identity.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/tests/test_project_ast_map.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/tests/test_smoke_data.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/tests/test_sources.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/tests/test_theme.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/tests/test_tui_widgets.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/tests/test_ui_models.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/tests/test_ui_runtime_theme.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/tests/test_ui_state.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/tests/test_views_helpers.py +0 -0
- {py_data_engine-0.1.3 → py_data_engine-0.2.1}/tests/test_workspace_provisioning.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: py-data-engine
|
|
3
|
-
Version: 0.1
|
|
3
|
+
Version: 0.2.1
|
|
4
4
|
Summary: Workbook-driven workflow jobs with strict filename parsing and DuckDB-backed processing.
|
|
5
5
|
Author: Data Engine contributors
|
|
6
6
|
License-Expression: MIT
|
|
@@ -18,6 +18,7 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
|
18
18
|
Requires-Python: >=3.14
|
|
19
19
|
Description-Content-Type: text/markdown
|
|
20
20
|
License-File: LICENSE
|
|
21
|
+
Requires-Dist: APScheduler>=3.11.0
|
|
21
22
|
Requires-Dist: duckdb>=1.5.0
|
|
22
23
|
Requires-Dist: fastexcel>=0.19.0
|
|
23
24
|
Requires-Dist: polars>=1.39.0
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
requires = [
|
|
3
3
|
"setuptools>=68",
|
|
4
4
|
"wheel",
|
|
5
|
+
"APScheduler>=3.11.0",
|
|
6
|
+
"duckdb>=1.5.0",
|
|
5
7
|
"polars>=1.39.0",
|
|
6
8
|
"myst-parser>=4.0.0",
|
|
7
9
|
"Sphinx>=9.1.0",
|
|
@@ -31,6 +33,7 @@ classifiers = [
|
|
|
31
33
|
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
32
34
|
]
|
|
33
35
|
dependencies = [
|
|
36
|
+
"APScheduler>=3.11.0",
|
|
34
37
|
"duckdb>=1.5.0",
|
|
35
38
|
"fastexcel>=0.19.0",
|
|
36
39
|
"polars>=1.39.0",
|
|
@@ -7,9 +7,9 @@ from typing import TYPE_CHECKING
|
|
|
7
7
|
if TYPE_CHECKING:
|
|
8
8
|
from data_engine.authoring.flow import Flow
|
|
9
9
|
from data_engine.authoring.flow import discover_flows, load_flow, run
|
|
10
|
-
from data_engine.
|
|
11
|
-
from data_engine.
|
|
12
|
-
from data_engine.
|
|
10
|
+
from data_engine.core.primitives import Batch
|
|
11
|
+
from data_engine.core.primitives import FileRef
|
|
12
|
+
from data_engine.core.primitives import FlowContext
|
|
13
13
|
|
|
14
14
|
__all__ = ["Batch", "FileRef", "Flow", "FlowContext", "discover_flows", "load_flow", "run"]
|
|
15
15
|
|
|
@@ -21,9 +21,9 @@ def __getattr__(name: str):
|
|
|
21
21
|
from data_engine.authoring.flow import discover_flows
|
|
22
22
|
from data_engine.authoring.flow import load_flow
|
|
23
23
|
from data_engine.authoring.flow import run
|
|
24
|
-
from data_engine.
|
|
25
|
-
from data_engine.
|
|
26
|
-
from data_engine.
|
|
24
|
+
from data_engine.core.primitives import Batch
|
|
25
|
+
from data_engine.core.primitives import FileRef
|
|
26
|
+
from data_engine.core.primitives import FlowContext
|
|
27
27
|
|
|
28
28
|
return {
|
|
29
29
|
"Batch": Batch,
|
|
@@ -5,7 +5,7 @@ from __future__ import annotations
|
|
|
5
5
|
from dataclasses import dataclass
|
|
6
6
|
from pathlib import Path
|
|
7
7
|
|
|
8
|
-
from data_engine.
|
|
8
|
+
from data_engine.core.model import FlowValidationError
|
|
9
9
|
from data_engine.domain import FlowCatalogEntry, FlowCatalogLike, FlowCatalogState
|
|
10
10
|
from data_engine.platform.workspace_models import WorkspacePaths
|
|
11
11
|
from data_engine.services import FlowCatalogService
|
|
@@ -86,7 +86,10 @@ class FlowCatalogApplication:
|
|
|
86
86
|
"""Load discovered entries and merge them into one catalog state."""
|
|
87
87
|
base = current_state or FlowCatalogState.empty()
|
|
88
88
|
entries = self.flow_catalog_service.load_entries(workspace_root=workspace_root)
|
|
89
|
-
|
|
89
|
+
state = base.with_entries(entries).with_empty_message("")
|
|
90
|
+
if base.selected_flow_name is not None and state.selected_flow_name == base.selected_flow_name:
|
|
91
|
+
return state
|
|
92
|
+
return state.with_selected_flow_name(_first_grouped_entry_name(state.entries))
|
|
90
93
|
|
|
91
94
|
def empty_state(
|
|
92
95
|
self,
|
|
@@ -149,3 +152,11 @@ class FlowCatalogApplication:
|
|
|
149
152
|
error_text=message,
|
|
150
153
|
)
|
|
151
154
|
return FlowCatalogLoadResult(catalog_state=catalog_state, loaded=True)
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
def _first_grouped_entry_name(entries: tuple[FlowCatalogEntry, ...]) -> str | None:
|
|
158
|
+
"""Return the first entry name in the same grouped order used by operator surfaces."""
|
|
159
|
+
for bucket in group_cards(entries):
|
|
160
|
+
if bucket.entries:
|
|
161
|
+
return bucket.entries[0].name
|
|
162
|
+
return None
|
|
@@ -7,7 +7,7 @@ from datetime import UTC, datetime
|
|
|
7
7
|
from typing import Any
|
|
8
8
|
from collections.abc import Iterable
|
|
9
9
|
|
|
10
|
-
from data_engine.
|
|
10
|
+
from data_engine.core.model import FlowStoppedError
|
|
11
11
|
from data_engine.domain import (
|
|
12
12
|
DaemonLifecyclePolicy,
|
|
13
13
|
DaemonStatusState,
|
|
@@ -13,5 +13,5 @@ def __getattr__(name: str):
|
|
|
13
13
|
if name in {"Flow", "discover_flows", "load_flow", "run"}:
|
|
14
14
|
module = import_module("data_engine.authoring.flow")
|
|
15
15
|
return getattr(module, name)
|
|
16
|
-
module = import_module("data_engine.
|
|
16
|
+
module = import_module("data_engine.core.primitives")
|
|
17
17
|
return getattr(module, name)
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
"""Flow DSL and public authoring entrypoints."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from pathlib import Path
|
|
6
|
+
from typing import TYPE_CHECKING
|
|
7
|
+
|
|
8
|
+
from data_engine.core.flow import Flow as _CoreFlow
|
|
9
|
+
from data_engine.core.helpers import _validate_slot_name
|
|
10
|
+
from data_engine.core.model import FlowValidationError
|
|
11
|
+
from data_engine.core.primitives import FlowContext
|
|
12
|
+
|
|
13
|
+
if TYPE_CHECKING:
|
|
14
|
+
from data_engine.authoring.services import AuthoringServices
|
|
15
|
+
from data_engine.services.flow_execution import FlowExecutionService
|
|
16
|
+
from data_engine.services.runtime_execution import RuntimeExecutionService
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def _resolve_authoring_services(
|
|
20
|
+
*,
|
|
21
|
+
authoring_services: AuthoringServices | None = None,
|
|
22
|
+
runtime_execution_service: RuntimeExecutionService | None = None,
|
|
23
|
+
flow_execution_service: FlowExecutionService | None = None,
|
|
24
|
+
) -> AuthoringServices:
|
|
25
|
+
"""Return one authoring collaborator bundle with explicit overrides applied."""
|
|
26
|
+
from data_engine.authoring.services import build_authoring_services, default_authoring_services
|
|
27
|
+
|
|
28
|
+
services = authoring_services or default_authoring_services()
|
|
29
|
+
if runtime_execution_service is None and flow_execution_service is None:
|
|
30
|
+
return services
|
|
31
|
+
return build_authoring_services(
|
|
32
|
+
runtime_execution_service=runtime_execution_service or services.runtime_execution_service,
|
|
33
|
+
flow_execution_service=flow_execution_service or services.flow_execution_service,
|
|
34
|
+
)
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
class Flow(_CoreFlow):
|
|
38
|
+
"""Public authoring flow with execution conveniences layered over core definitions."""
|
|
39
|
+
|
|
40
|
+
def run_once(
|
|
41
|
+
self,
|
|
42
|
+
*,
|
|
43
|
+
authoring_services: AuthoringServices | None = None,
|
|
44
|
+
runtime_execution_service: RuntimeExecutionService | None = None,
|
|
45
|
+
) -> list[FlowContext]:
|
|
46
|
+
"""Run this flow once and return completed runtime contexts.
|
|
47
|
+
|
|
48
|
+
Parameters
|
|
49
|
+
----------
|
|
50
|
+
authoring_services : AuthoringServices | None
|
|
51
|
+
Optional service bundle used by tests or embedded hosts.
|
|
52
|
+
runtime_execution_service : RuntimeExecutionService | None
|
|
53
|
+
Optional runtime execution service override.
|
|
54
|
+
|
|
55
|
+
Returns
|
|
56
|
+
-------
|
|
57
|
+
list[FlowContext]
|
|
58
|
+
One context per executed source.
|
|
59
|
+
"""
|
|
60
|
+
service = _resolve_authoring_services(
|
|
61
|
+
authoring_services=authoring_services,
|
|
62
|
+
runtime_execution_service=runtime_execution_service,
|
|
63
|
+
).runtime_execution_service
|
|
64
|
+
return service.run_once(self)
|
|
65
|
+
|
|
66
|
+
def preview(
|
|
67
|
+
self,
|
|
68
|
+
*,
|
|
69
|
+
use: str | None = None,
|
|
70
|
+
authoring_services: AuthoringServices | None = None,
|
|
71
|
+
runtime_execution_service: RuntimeExecutionService | None = None,
|
|
72
|
+
) -> object:
|
|
73
|
+
"""Run this flow in preview mode and return one preview value.
|
|
74
|
+
|
|
75
|
+
Parameters
|
|
76
|
+
----------
|
|
77
|
+
use : str | None
|
|
78
|
+
Optional named object slot to preview instead of the final current
|
|
79
|
+
value.
|
|
80
|
+
authoring_services : AuthoringServices | None
|
|
81
|
+
Optional service bundle used by tests or embedded hosts.
|
|
82
|
+
runtime_execution_service : RuntimeExecutionService | None
|
|
83
|
+
Optional runtime execution service override.
|
|
84
|
+
|
|
85
|
+
Returns
|
|
86
|
+
-------
|
|
87
|
+
object
|
|
88
|
+
Preview value returned by the runtime execution service.
|
|
89
|
+
|
|
90
|
+
Raises
|
|
91
|
+
------
|
|
92
|
+
FlowValidationError
|
|
93
|
+
If preview is requested from inside a compiled flow module.
|
|
94
|
+
"""
|
|
95
|
+
from data_engine.flow_modules.flow_module_loader import in_compiled_flow_module_context
|
|
96
|
+
|
|
97
|
+
if in_compiled_flow_module_context():
|
|
98
|
+
raise FlowValidationError("preview() is not available inside compiled flow modules.")
|
|
99
|
+
normalized_use = _validate_slot_name(method_name="preview", slot_name="use", value=use)
|
|
100
|
+
service = _resolve_authoring_services(
|
|
101
|
+
authoring_services=authoring_services,
|
|
102
|
+
runtime_execution_service=runtime_execution_service,
|
|
103
|
+
).runtime_execution_service
|
|
104
|
+
return service.preview(self, use=normalized_use)
|
|
105
|
+
|
|
106
|
+
def show(self) -> object:
|
|
107
|
+
"""Run this flow once and return the single final current value.
|
|
108
|
+
|
|
109
|
+
Returns
|
|
110
|
+
-------
|
|
111
|
+
object
|
|
112
|
+
Final ``context.current`` value.
|
|
113
|
+
|
|
114
|
+
Raises
|
|
115
|
+
------
|
|
116
|
+
FlowValidationError
|
|
117
|
+
If called from a compiled flow module or the flow produces anything
|
|
118
|
+
other than one result.
|
|
119
|
+
"""
|
|
120
|
+
from data_engine.flow_modules.flow_module_loader import in_compiled_flow_module_context
|
|
121
|
+
|
|
122
|
+
if in_compiled_flow_module_context():
|
|
123
|
+
raise FlowValidationError("show() is not available inside compiled flow modules.")
|
|
124
|
+
results = self.run_once()
|
|
125
|
+
if len(results) != 1:
|
|
126
|
+
raise FlowValidationError(f"show() requires exactly one result, found {len(results)}.")
|
|
127
|
+
return results[0].current
|
|
128
|
+
|
|
129
|
+
def run(
|
|
130
|
+
self,
|
|
131
|
+
*,
|
|
132
|
+
authoring_services: AuthoringServices | None = None,
|
|
133
|
+
runtime_execution_service: RuntimeExecutionService | None = None,
|
|
134
|
+
) -> list[FlowContext]:
|
|
135
|
+
"""Run this flow continuously according to its trigger.
|
|
136
|
+
|
|
137
|
+
Parameters
|
|
138
|
+
----------
|
|
139
|
+
authoring_services : AuthoringServices | None
|
|
140
|
+
Optional service bundle used by tests or embedded hosts.
|
|
141
|
+
runtime_execution_service : RuntimeExecutionService | None
|
|
142
|
+
Optional runtime execution service override.
|
|
143
|
+
|
|
144
|
+
Returns
|
|
145
|
+
-------
|
|
146
|
+
list[FlowContext]
|
|
147
|
+
Completed contexts collected before the runtime exits.
|
|
148
|
+
"""
|
|
149
|
+
service = _resolve_authoring_services(
|
|
150
|
+
authoring_services=authoring_services,
|
|
151
|
+
runtime_execution_service=runtime_execution_service,
|
|
152
|
+
).runtime_execution_service
|
|
153
|
+
return service.run_continuous(self)
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
def load_flow(
|
|
157
|
+
name: str,
|
|
158
|
+
*,
|
|
159
|
+
data_root: Path | None = None,
|
|
160
|
+
authoring_services: AuthoringServices | None = None,
|
|
161
|
+
flow_execution_service: FlowExecutionService | None = None,
|
|
162
|
+
) -> Flow:
|
|
163
|
+
"""Load one code-defined flow by flow-module name."""
|
|
164
|
+
service = _resolve_authoring_services(
|
|
165
|
+
authoring_services=authoring_services,
|
|
166
|
+
flow_execution_service=flow_execution_service,
|
|
167
|
+
).flow_execution_service
|
|
168
|
+
return service.load_flow(name, workspace_root=data_root)
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
def discover_flows(
|
|
172
|
+
*,
|
|
173
|
+
data_root: Path | None = None,
|
|
174
|
+
authoring_services: AuthoringServices | None = None,
|
|
175
|
+
flow_execution_service: FlowExecutionService | None = None,
|
|
176
|
+
) -> tuple[Flow, ...]:
|
|
177
|
+
"""Discover and build all code-defined flows from compiled flow modules."""
|
|
178
|
+
service = _resolve_authoring_services(
|
|
179
|
+
authoring_services=authoring_services,
|
|
180
|
+
flow_execution_service=flow_execution_service,
|
|
181
|
+
).flow_execution_service
|
|
182
|
+
return service.discover_flows(workspace_root=data_root)
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
def run(
|
|
186
|
+
*flows: Flow,
|
|
187
|
+
authoring_services: AuthoringServices | None = None,
|
|
188
|
+
runtime_execution_service: RuntimeExecutionService | None = None,
|
|
189
|
+
) -> list[FlowContext]:
|
|
190
|
+
"""Run multiple flows with sequential execution per group and parallel groups."""
|
|
191
|
+
service = _resolve_authoring_services(
|
|
192
|
+
authoring_services=authoring_services,
|
|
193
|
+
runtime_execution_service=runtime_execution_service,
|
|
194
|
+
).runtime_execution_service
|
|
195
|
+
return service.run_grouped_continuous(tuple(flows))
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
__all__ = ["Flow", "discover_flows", "load_flow", "run"]
|
|
@@ -4,9 +4,11 @@ from __future__ import annotations
|
|
|
4
4
|
|
|
5
5
|
from dataclasses import dataclass
|
|
6
6
|
from functools import lru_cache
|
|
7
|
+
from typing import TYPE_CHECKING
|
|
7
8
|
|
|
8
|
-
|
|
9
|
-
from data_engine.services.
|
|
9
|
+
if TYPE_CHECKING:
|
|
10
|
+
from data_engine.services.flow_execution import FlowExecutionService
|
|
11
|
+
from data_engine.services.runtime_execution import RuntimeExecutionService
|
|
10
12
|
|
|
11
13
|
|
|
12
14
|
@dataclass(frozen=True)
|
|
@@ -23,6 +25,9 @@ def build_authoring_services(
|
|
|
23
25
|
flow_execution_service: FlowExecutionService | None = None,
|
|
24
26
|
) -> AuthoringServices:
|
|
25
27
|
"""Build one authoring collaborator bundle with optional overrides."""
|
|
28
|
+
from data_engine.services.flow_execution import FlowExecutionService
|
|
29
|
+
from data_engine.services.runtime_execution import RuntimeExecutionService
|
|
30
|
+
|
|
26
31
|
return AuthoringServices(
|
|
27
32
|
runtime_execution_service=runtime_execution_service or RuntimeExecutionService(),
|
|
28
33
|
flow_execution_service=flow_execution_service or FlowExecutionService(),
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"""Core flow definitions and runtime primitives."""
|
|
2
|
+
|
|
3
|
+
from data_engine.core.flow import Flow
|
|
4
|
+
from data_engine.core.model import FlowExecutionError, FlowStoppedError, FlowValidationError
|
|
5
|
+
from data_engine.core.primitives import (
|
|
6
|
+
Batch,
|
|
7
|
+
FileRef,
|
|
8
|
+
FlowContext,
|
|
9
|
+
MirrorContext,
|
|
10
|
+
MirrorSpec,
|
|
11
|
+
SourceContext,
|
|
12
|
+
SourceMetadata,
|
|
13
|
+
StepSpec,
|
|
14
|
+
WatchSpec,
|
|
15
|
+
WorkspaceConfigContext,
|
|
16
|
+
collect_files,
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
__all__ = [
|
|
20
|
+
"Batch",
|
|
21
|
+
"FileRef",
|
|
22
|
+
"Flow",
|
|
23
|
+
"FlowContext",
|
|
24
|
+
"FlowExecutionError",
|
|
25
|
+
"FlowStoppedError",
|
|
26
|
+
"FlowValidationError",
|
|
27
|
+
"MirrorContext",
|
|
28
|
+
"MirrorSpec",
|
|
29
|
+
"SourceContext",
|
|
30
|
+
"SourceMetadata",
|
|
31
|
+
"StepSpec",
|
|
32
|
+
"WatchSpec",
|
|
33
|
+
"WorkspaceConfigContext",
|
|
34
|
+
"collect_files",
|
|
35
|
+
]
|