py-data-engine 0.2.2__tar.gz → 0.2.3__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.2.2/src/py_data_engine.egg-info → py_data_engine-0.2.3}/PKG-INFO +2 -1
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/pyproject.toml +1 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/application/actions.py +2 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/application/control.py +14 -14
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/application/runtime.py +63 -21
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_modules/data_engine/authoring/flow.html +1 -1
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_modules/data_engine/core/flow.html +1 -1
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_modules/data_engine/core/model.html +1 -1
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_modules/data_engine/core/primitives.html +1 -1
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_modules/data_engine/helpers/duckdb.html +1 -1
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_modules/data_engine/helpers/polars.html +512 -1
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_modules/data_engine/helpers/schema.html +1 -1
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_modules/data_engine/hosts/scheduler.html +1 -1
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_modules/data_engine/runtime/engine.html +1 -1
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_modules/data_engine/runtime/execution/grouped.html +1 -1
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_modules/data_engine/runtime/execution/single.html +41 -12
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_modules/data_engine/runtime/file_watch.html +1 -1
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_modules/data_engine/runtime/stop.html +1 -1
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_modules/data_engine/services/daemon.html +1 -1
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_modules/data_engine/services/daemon_state.html +1 -1
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_modules/data_engine/services/flow_catalog.html +10 -1
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_modules/data_engine/services/flow_execution.html +1 -1
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_modules/data_engine/services/ledger.html +1 -1
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_modules/data_engine/services/logs.html +1 -1
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_modules/data_engine/services/runtime_binding.html +9 -1
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_modules/data_engine/services/runtime_execution.html +10 -2
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_modules/data_engine/services/runtime_history.html +1 -1
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_modules/data_engine/services/settings.html +1 -1
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_modules/data_engine/services/shared_state.html +1 -1
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_modules/data_engine/services/theme.html +1 -1
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_modules/data_engine/services/workspace_provisioning.html +1 -1
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_modules/data_engine/services/workspaces.html +1 -1
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_modules/index.html +1 -1
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_sources/guides/project-inventory.md.txt +252 -4
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_sources/guides/project-map.md.txt +16 -16
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_sources/guides/recipes.md.txt +52 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/documentation_options.js +1 -1
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/api.html +315 -6
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/genindex.html +22 -4
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/guides/app-runtime-and-workspaces.html +1 -1
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/guides/authoring-flow-modules.html +1 -1
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/guides/configuring-flows.html +1 -1
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/guides/core-concepts.html +1 -1
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/guides/database-methods.html +1 -1
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/guides/duckdb-helpers.html +1 -1
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/guides/flow-context.html +1 -1
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/guides/flow-methods.html +1 -1
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/guides/getting-started.html +1 -1
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/guides/project-inventory.html +403 -5
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/guides/project-map.html +50 -50
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/guides/recipes.html +53 -1
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/index.html +3 -1
- py_data_engine-0.2.3/src/data_engine/docs/html/objects.inv +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/py-modindex.html +1 -1
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/search.html +1 -1
- py_data_engine-0.2.3/src/data_engine/docs/html/searchindex.js +1 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/sphinx_source/guides/project-inventory.md +252 -4
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/sphinx_source/guides/project-map.md +16 -16
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/sphinx_source/guides/recipes.md +52 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/domain/actions.py +1 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/domain/catalog.py +2 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/domain/details.py +2 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/domain/operations.py +13 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/flow_modules/flow_module_compiler.py +39 -21
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/helpers/__init__.py +4 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/helpers/polars.py +493 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/hosts/daemon/app.py +36 -2
- py_data_engine-0.2.3/src/data_engine/hosts/daemon/commands.py +76 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/hosts/daemon/composition.py +17 -6
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/hosts/daemon/manager.py +86 -69
- py_data_engine-0.2.3/src/data_engine/hosts/daemon/runtime_commands.py +234 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/hosts/daemon/runtime_control.py +5 -2
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/hosts/daemon/server.py +42 -8
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/platform/identity.py +1 -1
- py_data_engine-0.2.3/src/data_engine/platform/instrumentation.py +184 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/runtime/execution/single.py +40 -11
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/services/flow_catalog.py +9 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/services/runtime_binding.py +5 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/services/runtime_execution.py +9 -1
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/cli/app.py +6 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/bootstrapper.py +15 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/control_support.py +12 -26
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/controllers/flows.py +180 -54
- py_data_engine-0.2.3/src/data_engine/ui/gui/controllers/runtime.py +461 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/presenters/workspace_binding.py +13 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/presenters/workspace_settings.py +141 -78
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/runtime.py +1 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/surface.py +15 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/theme.py +26 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/widgets/panels.py +3 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/widgets/sidebar.py +1 -1
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/widgets/steps.py +7 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/views/actions.py +35 -9
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/views/models.py +3 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3/src/py_data_engine.egg-info}/PKG-INFO +2 -1
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/py_data_engine.egg-info/SOURCES.txt +2 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/py_data_engine.egg-info/requires.txt +1 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/tests/test_application.py +280 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/tests/test_daemon.py +240 -18
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/tests/test_domain_details.py +2 -1
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/tests/test_domain_inspection.py +21 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/tests/test_flow_module_compiler.py +47 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/tests/test_helpers_polars.py +154 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/tests/test_integration.py +64 -0
- py_data_engine-0.2.3/tests/test_platform_instrumentation.py +78 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/tests/test_qt_ui.py +535 -9
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/tests/test_services.py +15 -3
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/tests/test_ui_models.py +87 -1
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/tests/test_views_helpers.py +4 -1
- py_data_engine-0.2.2/src/data_engine/docs/html/objects.inv +0 -0
- py_data_engine-0.2.2/src/data_engine/docs/html/searchindex.js +0 -1
- py_data_engine-0.2.2/src/data_engine/hosts/daemon/commands.py +0 -66
- py_data_engine-0.2.2/src/data_engine/hosts/daemon/runtime_commands.py +0 -188
- py_data_engine-0.2.2/src/data_engine/ui/gui/controllers/runtime.py +0 -273
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/LICENSE +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/README.md +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/setup.cfg +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/setup.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/__init__.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/application/__init__.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/application/catalog.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/application/details.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/application/workspace.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/authoring/__init__.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/authoring/flow.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/authoring/services.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/core/__init__.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/core/flow.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/core/helpers.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/core/model.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/core/primitives.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/devtools/__init__.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/devtools/project_ast_map.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/devtools/smoke_data.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/__init__.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_sources/api.rst.txt +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_sources/guides/app-runtime-and-workspaces.md.txt +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_sources/guides/authoring-flow-modules.md.txt +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_sources/guides/configuring-flows.md.txt +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_sources/guides/core-concepts.md.txt +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_sources/guides/database-methods.md.txt +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_sources/guides/duckdb-helpers.md.txt +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_sources/guides/flow-context.md.txt +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_sources/guides/flow-methods.md.txt +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_sources/guides/getting-started.md.txt +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_sources/index.rst.txt +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/_sphinx_javascript_frameworks_compat.js +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/base-stemmer.js +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/basic.css +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/css/badge_only.css +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/css/fonts/Roboto-Slab-Bold.woff +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/css/fonts/Roboto-Slab-Bold.woff2 +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/css/fonts/Roboto-Slab-Regular.woff +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/css/fonts/Roboto-Slab-Regular.woff2 +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/css/fonts/fontawesome-webfont.eot +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/css/fonts/fontawesome-webfont.svg +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/css/fonts/fontawesome-webfont.ttf +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/css/fonts/fontawesome-webfont.woff +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/css/fonts/fontawesome-webfont.woff2 +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/css/fonts/lato-bold-italic.woff +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/css/fonts/lato-bold-italic.woff2 +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/css/fonts/lato-bold.woff +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/css/fonts/lato-bold.woff2 +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/css/fonts/lato-normal-italic.woff +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/css/fonts/lato-normal-italic.woff2 +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/css/fonts/lato-normal.woff +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/css/fonts/lato-normal.woff2 +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/css/theme.css +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/custom.css +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/doctools.js +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/english-stemmer.js +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/file.png +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/fonts/Lato/lato-bold.eot +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/fonts/Lato/lato-bold.ttf +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/fonts/Lato/lato-bold.woff +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/fonts/Lato/lato-bold.woff2 +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/fonts/Lato/lato-bolditalic.eot +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/fonts/Lato/lato-bolditalic.ttf +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/fonts/Lato/lato-bolditalic.woff +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/fonts/Lato/lato-bolditalic.woff2 +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/fonts/Lato/lato-italic.eot +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/fonts/Lato/lato-italic.ttf +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/fonts/Lato/lato-italic.woff +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/fonts/Lato/lato-italic.woff2 +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/fonts/Lato/lato-regular.eot +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/fonts/Lato/lato-regular.ttf +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/fonts/Lato/lato-regular.woff +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/fonts/Lato/lato-regular.woff2 +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2 +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/jquery.js +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/js/badge_only.js +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/js/theme.js +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/js/versions.js +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/language_data.js +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/minus.png +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/plus.png +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/pygments.css +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/searchtools.js +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/html/_static/sphinx_highlight.js +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/sphinx_source/_static/custom.css +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/sphinx_source/api.rst +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/sphinx_source/conf.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/sphinx_source/guides/app-runtime-and-workspaces.md +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/sphinx_source/guides/authoring-flow-modules.md +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/sphinx_source/guides/configuring-flows.md +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/sphinx_source/guides/core-concepts.md +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/sphinx_source/guides/database-methods.md +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/sphinx_source/guides/duckdb-helpers.md +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/sphinx_source/guides/flow-context.md +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/sphinx_source/guides/flow-methods.md +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/sphinx_source/guides/getting-started.md +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/docs/sphinx_source/index.rst +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/domain/__init__.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/domain/diagnostics.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/domain/errors.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/domain/inspection.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/domain/logs.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/domain/operator.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/domain/runs.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/domain/runtime.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/domain/source_state.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/domain/support.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/domain/time.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/domain/workspace.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/flow_modules/__init__.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/flow_modules/flow_module_loader.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/helpers/duckdb.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/helpers/schema.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/hosts/__init__.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/hosts/daemon/__init__.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/hosts/daemon/bootstrap.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/hosts/daemon/client.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/hosts/daemon/constants.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/hosts/daemon/entrypoints.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/hosts/daemon/lifecycle.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/hosts/daemon/ownership.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/hosts/daemon/shared_state.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/hosts/daemon/state_sync.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/hosts/scheduler.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/platform/__init__.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/platform/interpreters.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/platform/local_settings.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/platform/paths.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/platform/processes.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/platform/theme.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/platform/workspace_models.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/platform/workspace_policy.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/runtime/__init__.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/runtime/engine.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/runtime/execution/__init__.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/runtime/execution/app.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/runtime/execution/context.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/runtime/execution/continuous.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/runtime/execution/grouped.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/runtime/execution/logging.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/runtime/execution/polling.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/runtime/execution/runner.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/runtime/file_watch.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/runtime/ledger_models.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/runtime/runtime_cache_store.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/runtime/runtime_control_store.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/runtime/runtime_db.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/runtime/shared_state.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/runtime/sqlite_store.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/runtime/stop.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/services/__init__.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/services/daemon.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/services/daemon_state.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/services/flow_execution.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/services/ledger.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/services/logs.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/services/reset.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/services/runtime_history.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/services/runtime_ports.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/services/settings.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/services/shared_state.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/services/theme.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/services/workspace_provisioning.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/services/workspaces.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/__init__.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/cli/__init__.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/cli/commands_doctor.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/cli/commands_run.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/cli/commands_start.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/cli/commands_workspace.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/cli/dependencies.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/cli/parser.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/__init__.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/app.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/bootstrap.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/cache_models.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/controllers/__init__.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/dialogs/__init__.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/dialogs/messages.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/dialogs/previews.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/helpers/__init__.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/helpers/inspection.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/helpers/lifecycle.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/helpers/scroll.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/helpers/theming.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/icons/dark_light.svg +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/icons/documentation.svg +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/icons/failed.svg +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/icons/group.svg +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/icons/home.svg +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/icons/manual.svg +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/icons/poll.svg +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/icons/schedule.svg +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/icons/settings.svg +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/icons/started.svg +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/icons/success.svg +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/icons/view-log.svg +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/icons.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/launcher.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/presenters/__init__.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/presenters/docs.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/presenters/logs.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/presenters/runtime_projection.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/presenters/sidebar.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/presenters/steps.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/presenters/workspace.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/preview_models.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/render_support.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/rendering/__init__.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/rendering/artifacts.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/rendering/icons.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/state_support.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/support.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/widgets/__init__.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/widgets/config.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/gui/widgets/logs.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/tui/__init__.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/tui/app.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/tui/bootstrap.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/tui/bootstrapper.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/tui/controllers/__init__.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/tui/controllers/flows.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/tui/controllers/runtime.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/tui/runtime.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/tui/state_support.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/tui/support.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/tui/theme.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/ui/tui/widgets.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/views/__init__.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/views/artifacts.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/views/flow_display.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/views/logs.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/views/presentation.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/views/runs.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/views/state.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/views/status.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/data_engine/views/text.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/py_data_engine.egg-info/dependency_links.txt +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/py_data_engine.egg-info/entry_points.txt +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/src/py_data_engine.egg-info/top_level.txt +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/tests/test_authoring_helpers.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/tests/test_authoring_services.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/tests/test_builder.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/tests/test_cli.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/tests/test_cli_helpers.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/tests/test_domain_actions.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/tests/test_domain_catalog.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/tests/test_domain_errors.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/tests/test_domain_logs.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/tests/test_domain_operations.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/tests/test_domain_operator.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/tests/test_domain_runs.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/tests/test_domain_runtime.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/tests/test_domain_support.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/tests/test_domain_workspace.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/tests/test_export_project_bundle_script.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/tests/test_flow_module_loader.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/tests/test_helpers_duckdb.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/tests/test_live_runtime_suite.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/tests/test_local_settings.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/tests/test_logs.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/tests/test_platform_identity.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/tests/test_project_ast_map.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/tests/test_reset_service.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/tests/test_runtime_db.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/tests/test_runtime_history_service.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/tests/test_runtime_logging.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/tests/test_scheduler_host.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/tests/test_schema_helper.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/tests/test_shared_state.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/tests/test_smoke_data.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/tests/test_sources.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/tests/test_theme.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/tests/test_tui.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/tests/test_tui_widgets.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/tests/test_ui_bootstrap.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/tests/test_ui_runtime_theme.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/tests/test_ui_state.py +0 -0
- {py_data_engine-0.2.2 → py_data_engine-0.2.3}/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.2.
|
|
3
|
+
Version: 0.2.3
|
|
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
|
|
@@ -66,6 +66,7 @@ Requires-Dist: pytest-cov>=7.0.0; extra == "dev"
|
|
|
66
66
|
Requires-Dist: ruff>=0.15.10; extra == "dev"
|
|
67
67
|
Requires-Dist: Sphinx>=9.1.0; extra == "dev"
|
|
68
68
|
Requires-Dist: sphinx_rtd_theme>=3.1.0; extra == "dev"
|
|
69
|
+
Requires-Dist: viztracer>=1.1.0; extra == "dev"
|
|
69
70
|
Dynamic: license-file
|
|
70
71
|
|
|
71
72
|
# Data Engine
|
|
@@ -20,6 +20,7 @@ class ActionStateApplication:
|
|
|
20
20
|
has_automated_flows: bool,
|
|
21
21
|
workspace_available: bool = True,
|
|
22
22
|
selected_run_group_present: bool = False,
|
|
23
|
+
local_request_pending: bool = False,
|
|
23
24
|
) -> OperatorActionContext:
|
|
24
25
|
"""Return one operator action context from current runtime and selection state."""
|
|
25
26
|
selected_flow = SelectedFlowState.from_runtime(
|
|
@@ -36,6 +37,7 @@ class ActionStateApplication:
|
|
|
36
37
|
has_automated_flows=has_automated_flows,
|
|
37
38
|
workspace_available=workspace_available,
|
|
38
39
|
selected_run_group_present=selected_run_group_present,
|
|
40
|
+
local_request_pending=local_request_pending,
|
|
39
41
|
)
|
|
40
42
|
|
|
41
43
|
|
|
@@ -68,7 +68,7 @@ class OperatorControlApplication:
|
|
|
68
68
|
requested=False,
|
|
69
69
|
status_text=f"{selected_flow_name} is invalid and cannot run.",
|
|
70
70
|
)
|
|
71
|
-
if selected_flow_group_active
|
|
71
|
+
if selected_flow_group_active:
|
|
72
72
|
return OperatorActionResult(requested=False)
|
|
73
73
|
if not runtime_session.control_available:
|
|
74
74
|
return OperatorActionResult(requested=False, status_text=blocked_status_text)
|
|
@@ -128,27 +128,27 @@ class OperatorControlApplication:
|
|
|
128
128
|
timeout: float = 2.0,
|
|
129
129
|
) -> OperatorActionResult:
|
|
130
130
|
"""Validate and request stop for the engine or selected manual flow."""
|
|
131
|
-
|
|
132
|
-
|
|
131
|
+
manual_flow_name = runtime_session.active_manual_runs.get(selected_flow_group)
|
|
132
|
+
if manual_flow_name is None and len(runtime_session.manual_runs) == 1:
|
|
133
|
+
manual_flow_name = runtime_session.manual_runs[0].flow_name
|
|
134
|
+
if manual_flow_name is not None:
|
|
135
|
+
if not runtime_session.control_available:
|
|
136
|
+
return OperatorActionResult(requested=False, status_text=blocked_status_text)
|
|
137
|
+
result = self.runtime_application.stop_flow(paths, name=manual_flow_name, timeout=timeout)
|
|
133
138
|
if not result.ok:
|
|
134
139
|
return OperatorActionResult(
|
|
135
140
|
requested=False,
|
|
136
|
-
error_text=_verbose_action_error("stop
|
|
141
|
+
error_text=_verbose_action_error(f"stop {manual_flow_name}", result.error),
|
|
137
142
|
)
|
|
138
|
-
return OperatorActionResult(requested=True, sync_after=True, status_text="Stopping
|
|
139
|
-
if runtime_session.
|
|
140
|
-
|
|
141
|
-
return OperatorActionResult(requested=False, status_text=blocked_status_text)
|
|
142
|
-
flow_name = runtime_session.active_manual_runs.get(selected_flow_group)
|
|
143
|
-
if flow_name is None:
|
|
144
|
-
return OperatorActionResult(requested=False)
|
|
145
|
-
result = self.runtime_application.stop_flow(paths, name=flow_name, timeout=timeout)
|
|
143
|
+
return OperatorActionResult(requested=True, sync_after=True, status_text="Stopping selected flow...")
|
|
144
|
+
if runtime_session.runtime_active:
|
|
145
|
+
result = self.runtime_application.stop_engine(paths, timeout=timeout)
|
|
146
146
|
if not result.ok:
|
|
147
147
|
return OperatorActionResult(
|
|
148
148
|
requested=False,
|
|
149
|
-
error_text=_verbose_action_error(
|
|
149
|
+
error_text=_verbose_action_error("stop the engine", result.error),
|
|
150
150
|
)
|
|
151
|
-
return OperatorActionResult(requested=True, sync_after=True, status_text="Stopping
|
|
151
|
+
return OperatorActionResult(requested=True, sync_after=True, status_text="Stopping engine...")
|
|
152
152
|
return OperatorActionResult(requested=False)
|
|
153
153
|
|
|
154
154
|
def request_control(self, daemon_manager: WorkspaceDaemonManager) -> OperatorActionResult:
|
|
@@ -19,6 +19,7 @@ from data_engine.domain import (
|
|
|
19
19
|
)
|
|
20
20
|
from data_engine.domain.catalog import FlowCatalogLike
|
|
21
21
|
from data_engine.hosts.daemon.manager import WorkspaceDaemonManager
|
|
22
|
+
from data_engine.platform.instrumentation import dev_instrumentation_enabled, new_request_id, timed_operation
|
|
22
23
|
from data_engine.platform.workspace_models import WorkspacePaths, authored_workspace_is_available
|
|
23
24
|
from data_engine.services import DaemonService, DaemonStateService, SharedStateService
|
|
24
25
|
|
|
@@ -57,12 +58,13 @@ class RuntimeSnapshotPresentation:
|
|
|
57
58
|
|
|
58
59
|
operation_tracker: OperationSessionState
|
|
59
60
|
flow_states: dict[str, str]
|
|
61
|
+
active_runtime_flow_names: tuple[str, ...] = ()
|
|
60
62
|
|
|
61
63
|
def signature_for(self, runtime_session: RuntimeSessionState) -> tuple[object, ...]:
|
|
62
64
|
"""Return a stable signature for render-diff decisions."""
|
|
63
65
|
return (
|
|
64
66
|
tuple(sorted(self.flow_states.items())),
|
|
65
|
-
tuple(sorted(runtime_session.active_runtime_flow_names)),
|
|
67
|
+
tuple(sorted(self.active_runtime_flow_names or runtime_session.active_runtime_flow_names)),
|
|
66
68
|
tuple(sorted(runtime_session.active_manual_runs.items())),
|
|
67
69
|
runtime_session.workspace_owned,
|
|
68
70
|
runtime_session.leased_by_machine_id,
|
|
@@ -133,7 +135,7 @@ class RuntimeApplication:
|
|
|
133
135
|
) -> RuntimeSyncState:
|
|
134
136
|
"""Return normalized daemon/runtime state for one host surface."""
|
|
135
137
|
snapshot = self.daemon_state_service.sync(daemon_manager)
|
|
136
|
-
if snapshot.source
|
|
138
|
+
if snapshot.source in {"lease", "cached"} and not snapshot.workspace_owned:
|
|
137
139
|
self.shared_state_service.hydrate_local_runtime(paths, runtime_ledger)
|
|
138
140
|
daemon_status = DaemonStatusState.from_snapshot(snapshot)
|
|
139
141
|
return RuntimeSyncState(
|
|
@@ -184,7 +186,18 @@ class RuntimeApplication:
|
|
|
184
186
|
)
|
|
185
187
|
for flow_name in list(states):
|
|
186
188
|
tracker = tracker.normalize_completed(flow_name)
|
|
187
|
-
|
|
189
|
+
active_runtime_flow_names = runtime_session.active_runtime_flow_names
|
|
190
|
+
if runtime_session.runtime_stopping:
|
|
191
|
+
active_runtime_flow_names = tuple(
|
|
192
|
+
flow_name
|
|
193
|
+
for flow_name in runtime_session.active_runtime_flow_names
|
|
194
|
+
if (
|
|
195
|
+
(flow_state := tracker.state_for(flow_name)) is None
|
|
196
|
+
or not flow_state.has_observed_activity
|
|
197
|
+
or flow_state.has_running_rows
|
|
198
|
+
)
|
|
199
|
+
)
|
|
200
|
+
for flow_name in active_runtime_flow_names:
|
|
188
201
|
card = cards_by_name.get(flow_name)
|
|
189
202
|
if card is None or states.get(flow_name) == "failed":
|
|
190
203
|
continue
|
|
@@ -199,6 +212,7 @@ class RuntimeApplication:
|
|
|
199
212
|
return RuntimeSnapshotPresentation(
|
|
200
213
|
operation_tracker=tracker,
|
|
201
214
|
flow_states=states,
|
|
215
|
+
active_runtime_flow_names=active_runtime_flow_names,
|
|
202
216
|
)
|
|
203
217
|
|
|
204
218
|
def plan_flow_state_refresh(
|
|
@@ -366,13 +380,20 @@ class RuntimeApplication:
|
|
|
366
380
|
*,
|
|
367
381
|
timeout: float = 0.0,
|
|
368
382
|
) -> DaemonCommandResult:
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
)
|
|
375
|
-
|
|
383
|
+
request_payload = self._instrumented_payload(payload)
|
|
384
|
+
with timed_operation(
|
|
385
|
+
self._client_timing_log_path(paths),
|
|
386
|
+
scope="client.daemon",
|
|
387
|
+
event=f"spawn_and_request:{request_payload.get('command', 'unknown')}",
|
|
388
|
+
fields={"request_id": request_payload.get("request_id"), "workspace": paths.workspace_id},
|
|
389
|
+
):
|
|
390
|
+
spawn_result = self.spawn_daemon(paths)
|
|
391
|
+
if not spawn_result.ok:
|
|
392
|
+
return DaemonCommandResult(
|
|
393
|
+
ok=False,
|
|
394
|
+
error=_daemon_command_error_text(request_payload, spawn_result.error),
|
|
395
|
+
)
|
|
396
|
+
return self._request(paths, request_payload, timeout=timeout)
|
|
376
397
|
|
|
377
398
|
def _request(
|
|
378
399
|
self,
|
|
@@ -381,17 +402,38 @@ class RuntimeApplication:
|
|
|
381
402
|
*,
|
|
382
403
|
timeout: float = 0.0,
|
|
383
404
|
) -> DaemonCommandResult:
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
405
|
+
request_payload = self._instrumented_payload(payload)
|
|
406
|
+
with timed_operation(
|
|
407
|
+
self._client_timing_log_path(paths),
|
|
408
|
+
scope="client.daemon",
|
|
409
|
+
event=str(request_payload.get("command", "unknown")),
|
|
410
|
+
fields={"request_id": request_payload.get("request_id"), "timeout": timeout, "workspace": paths.workspace_id},
|
|
411
|
+
):
|
|
412
|
+
try:
|
|
413
|
+
response = self.daemon_service.request(paths, request_payload, timeout=timeout)
|
|
414
|
+
except self.daemon_service.client_error_type as exc:
|
|
415
|
+
return DaemonCommandResult(ok=False, error=_daemon_command_error_text(request_payload, exc))
|
|
416
|
+
if not response.get("ok"):
|
|
417
|
+
return DaemonCommandResult(
|
|
418
|
+
ok=False,
|
|
419
|
+
error=_daemon_command_error_text(request_payload, response.get("error")),
|
|
420
|
+
payload=response,
|
|
421
|
+
)
|
|
422
|
+
return DaemonCommandResult(ok=True, payload=response)
|
|
423
|
+
|
|
424
|
+
@staticmethod
|
|
425
|
+
def _client_timing_log_path(paths: WorkspacePaths):
|
|
426
|
+
if not paths.workspace_configured:
|
|
427
|
+
return None
|
|
428
|
+
return paths.runtime_state_dir / "client_timing.log"
|
|
429
|
+
|
|
430
|
+
@staticmethod
|
|
431
|
+
def _instrumented_payload(payload: dict[str, Any]) -> dict[str, Any]:
|
|
432
|
+
if "request_id" in payload or not dev_instrumentation_enabled():
|
|
433
|
+
return dict(payload)
|
|
434
|
+
instrumented = dict(payload)
|
|
435
|
+
instrumented["request_id"] = new_request_id(str(payload.get("command", "cmd")))
|
|
436
|
+
return instrumented
|
|
395
437
|
|
|
396
438
|
|
|
397
439
|
def _daemon_command_error_text(payload: dict[str, Any], detail: object | None) -> str:
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
|
|
14
14
|
<script src="../../../_static/jquery.js?v=5d32c60e"></script>
|
|
15
15
|
<script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
|
16
|
-
<script src="../../../_static/documentation_options.js?v=
|
|
16
|
+
<script src="../../../_static/documentation_options.js?v=a47416a6"></script>
|
|
17
17
|
<script src="../../../_static/doctools.js?v=fd6eb6e6"></script>
|
|
18
18
|
<script src="../../../_static/sphinx_highlight.js?v=6ffebe34"></script>
|
|
19
19
|
<script src="../../../_static/js/theme.js"></script>
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
|
|
14
14
|
<script src="../../../_static/jquery.js?v=5d32c60e"></script>
|
|
15
15
|
<script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
|
16
|
-
<script src="../../../_static/documentation_options.js?v=
|
|
16
|
+
<script src="../../../_static/documentation_options.js?v=a47416a6"></script>
|
|
17
17
|
<script src="../../../_static/doctools.js?v=fd6eb6e6"></script>
|
|
18
18
|
<script src="../../../_static/sphinx_highlight.js?v=6ffebe34"></script>
|
|
19
19
|
<script src="../../../_static/js/theme.js"></script>
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
|
|
14
14
|
<script src="../../../_static/jquery.js?v=5d32c60e"></script>
|
|
15
15
|
<script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
|
16
|
-
<script src="../../../_static/documentation_options.js?v=
|
|
16
|
+
<script src="../../../_static/documentation_options.js?v=a47416a6"></script>
|
|
17
17
|
<script src="../../../_static/doctools.js?v=fd6eb6e6"></script>
|
|
18
18
|
<script src="../../../_static/sphinx_highlight.js?v=6ffebe34"></script>
|
|
19
19
|
<script src="../../../_static/js/theme.js"></script>
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
|
|
14
14
|
<script src="../../../_static/jquery.js?v=5d32c60e"></script>
|
|
15
15
|
<script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
|
16
|
-
<script src="../../../_static/documentation_options.js?v=
|
|
16
|
+
<script src="../../../_static/documentation_options.js?v=a47416a6"></script>
|
|
17
17
|
<script src="../../../_static/doctools.js?v=fd6eb6e6"></script>
|
|
18
18
|
<script src="../../../_static/sphinx_highlight.js?v=6ffebe34"></script>
|
|
19
19
|
<script src="../../../_static/js/theme.js"></script>
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
|
|
14
14
|
<script src="../../../_static/jquery.js?v=5d32c60e"></script>
|
|
15
15
|
<script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
|
16
|
-
<script src="../../../_static/documentation_options.js?v=
|
|
16
|
+
<script src="../../../_static/documentation_options.js?v=a47416a6"></script>
|
|
17
17
|
<script src="../../../_static/doctools.js?v=fd6eb6e6"></script>
|
|
18
18
|
<script src="../../../_static/sphinx_highlight.js?v=6ffebe34"></script>
|
|
19
19
|
<script src="../../../_static/js/theme.js"></script>
|