sibi-flux 2026.1.7__tar.gz → 2026.1.8__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.
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/PKG-INFO +1 -1
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/pyproject.toml +1 -1
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/datacube/cli.py +123 -2
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/README.md +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_dst/__init__.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/__init__.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/artifacts/__init__.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/artifacts/base.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/artifacts/parquet.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/artifacts/parquet_engine/__init__.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/artifacts/parquet_engine/executor.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/artifacts/parquet_engine/manifest.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/artifacts/parquet_engine/planner.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/cli.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/config/__init__.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/config/manager.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/config/settings.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/core/__init__.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/core/managed_resource/__init__.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/core/managed_resource/_managed_resource.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/core/type_maps/__init__.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/dask_cluster/__init__.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/dask_cluster/async_core.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/dask_cluster/client_manager.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/dask_cluster/core.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/dask_cluster/exceptions.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/dask_cluster/utils.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/datacube/__init__.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/datacube/_data_cube.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/datacube/config_engine.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/datacube/field_factory.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/datacube/field_mapper.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/datacube/field_registry.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/datacube/generator.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/datacube/orchestrator.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/datacube/router.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/dataset/__init__.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/dataset/_dataset.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/dataset/hybrid_loader.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/df_enricher/__init__.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/df_enricher/async_enricher.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/df_enricher/attacher.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/df_enricher/merger.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/df_enricher/specs.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/df_enricher/types.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/df_helper/__init__.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/df_helper/_df_helper.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/df_helper/backends/__init__.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/df_helper/backends/_params.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/df_helper/backends/_strategies.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/df_helper/backends/http/__init__.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/df_helper/backends/http/_http_config.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/df_helper/backends/parquet/__init__.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/df_helper/backends/parquet/_parquet_options.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/df_helper/backends/sqlalchemy/__init__.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/df_helper/backends/sqlalchemy/_db_connection.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/df_helper/backends/sqlalchemy/_db_gatekeeper.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/df_helper/backends/sqlalchemy/_io_dask.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/df_helper/backends/sqlalchemy/_load_from_db.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/df_helper/backends/sqlalchemy/_model_registry.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/df_helper/backends/sqlalchemy/_sql_model_builder.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/df_helper/backends/utils.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/df_helper/core/__init__.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/df_helper/core/_defaults.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/df_helper/core/_filter_handler.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/df_helper/core/_params_config.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/df_helper/core/_query_config.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/df_validator/__init__.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/df_validator/_df_validator.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/init/__init__.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/init/app.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/init/core.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/init/cube_extender.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/init/cube_proposer.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/init/discovery_updater.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/init/env.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/init/env_engine.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/init/env_generator.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/init/rule_generator.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/init/templates/__init__.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/init/templates/discovery_params.yaml +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/init/templates/gen_dc.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/init/templates/property_template.yaml +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/logger/__init__.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/logger/_logger.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/mcp/__init__.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/mcp/client.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/mcp/router.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/orchestration/__init__.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/orchestration/_artifact_orchestrator.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/orchestration/_pipeline_executor.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/osmnx_helper/__init__.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/osmnx_helper/_pbf_handler.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/osmnx_helper/graph_loader.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/osmnx_helper/utils.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/parquet/__init__.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/parquet/readers/__init__.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/parquet/readers/base.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/parquet/readers/parquet.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/parquet/saver/__init__.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/parquet/saver/_parquet_saver.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/parquet/saver/_write_gatekeeper.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/pipelines/__init__.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/pipelines/base.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/pipelines/template.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/py.typed +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/readers/__init__.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/readers/base.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/storage/__init__.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/storage/_fs_registry.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/storage/_storage_manager.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/storage/factory.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/utils/__init__.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/utils/clickhouse_writer/__init__.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/utils/clickhouse_writer/_clickhouse_writer.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/utils/common.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/utils/dask_utils.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/utils/data_utils/__init__.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/utils/data_utils/_data_utils.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/utils/dataframe_utils.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/utils/date_utils/__init__.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/utils/date_utils/_business_days.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/utils/date_utils/_date_utils.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/utils/date_utils/_file_age_checker.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/utils/file_utils.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/utils/filepath_generator/__init__.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/utils/filepath_generator/_filepath_generator.py +0 -0
- {sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/utils/retry.py +0 -0
|
@@ -1014,8 +1014,21 @@ def scan(
|
|
|
1014
1014
|
raise typer.Exit(code=1)
|
|
1015
1015
|
|
|
1016
1016
|
# Resolve global output file
|
|
1017
|
-
|
|
1018
|
-
|
|
1017
|
+
# First check nested discovery block (standard), then root (fallback)
|
|
1018
|
+
discovery_conf = params.get("discovery", {})
|
|
1019
|
+
global_tables_file = (
|
|
1020
|
+
discovery_conf.get("all_tables_file")
|
|
1021
|
+
or params.get("all_tables_file")
|
|
1022
|
+
or "all_tables.yaml"
|
|
1023
|
+
)
|
|
1024
|
+
|
|
1025
|
+
# If using absolute path (resolved from context), use it directly
|
|
1026
|
+
# Otherwise treat as relative to config file location
|
|
1027
|
+
path_obj = Path(global_tables_file)
|
|
1028
|
+
if path_obj.is_absolute():
|
|
1029
|
+
global_tables_path = path_obj
|
|
1030
|
+
else:
|
|
1031
|
+
global_tables_path = config_path.parent / global_tables_file
|
|
1019
1032
|
|
|
1020
1033
|
# Load existing data to preserve config for DBs not being scanned
|
|
1021
1034
|
all_tables_data = {}
|
|
@@ -1493,6 +1506,114 @@ def map(
|
|
|
1493
1506
|
return
|
|
1494
1507
|
|
|
1495
1508
|
|
|
1509
|
+
@app.command()
|
|
1510
|
+
def workflow(
|
|
1511
|
+
config_file: Optional[Path] = typer.Option(None, "--config"),
|
|
1512
|
+
db_url_map: Optional[str] = typer.Option(None, "--db-urls"),
|
|
1513
|
+
env_file: Optional[Path] = typer.Option(None, "--env-file", "-e"),
|
|
1514
|
+
db_name: Optional[str] = typer.Option(
|
|
1515
|
+
None, "--db", help="Target specific database (filtering map/sync)"
|
|
1516
|
+
),
|
|
1517
|
+
app_name: Optional[str] = typer.Option(
|
|
1518
|
+
None, "--app-name", help="Run create_cubes for the specified application"
|
|
1519
|
+
),
|
|
1520
|
+
force: bool = typer.Option(False, "--force", "-f", help="Force rebuild/overwrite"),
|
|
1521
|
+
dry_run: bool = typer.Option(
|
|
1522
|
+
False, "--dry-run", help="Preview changes without executing"
|
|
1523
|
+
),
|
|
1524
|
+
) -> None:
|
|
1525
|
+
"""
|
|
1526
|
+
Executes the full Datacube workflow: Scan -> Propose -> Discover -> Map -> Sync -> (Optional) Create Cubes.
|
|
1527
|
+
"""
|
|
1528
|
+
console.rule("[bold magenta]Starting Datacube Workflow[/]")
|
|
1529
|
+
|
|
1530
|
+
# Resolve env_file: CLI > Params > Default (Consistent with discover/sync)
|
|
1531
|
+
if env_file:
|
|
1532
|
+
env_path = env_file
|
|
1533
|
+
elif context.params and context.params.get("defaults", {}).get("env_file"):
|
|
1534
|
+
env_path = Path(context.params.get("defaults", {})["env_file"])
|
|
1535
|
+
else:
|
|
1536
|
+
env_path = Path(".env.linux")
|
|
1537
|
+
load_environment(env_path, logger=console.print)
|
|
1538
|
+
|
|
1539
|
+
# Ensure context is configured with params from the config file
|
|
1540
|
+
config_path = config_file or context.default_config
|
|
1541
|
+
if config_path and config_path.exists():
|
|
1542
|
+
# Load and resolve config to ensure context.params is populated
|
|
1543
|
+
# This is critical for 'discover' to find 'databases' list
|
|
1544
|
+
try:
|
|
1545
|
+
config_data = _load_and_resolve_config(config_path)
|
|
1546
|
+
context.params = config_data
|
|
1547
|
+
context.default_config = config_path
|
|
1548
|
+
# We don't have easy access to other set_context_defaults args here,
|
|
1549
|
+
# but params is what 'discover' needs most.
|
|
1550
|
+
console.print(f"[dim]Loaded workflow context from {config_path}[/dim]")
|
|
1551
|
+
except Exception as e:
|
|
1552
|
+
console.print(f"[yellow]Warning: Failed to load context from {config_path}: {e}[/yellow]")
|
|
1553
|
+
|
|
1554
|
+
# Step 0: Scan & Propose Rules (Critical for new projects/drift)
|
|
1555
|
+
console.print(f"\n[bold cyan]Step 0a: Scan (Introspection)[/]")
|
|
1556
|
+
scan(
|
|
1557
|
+
config_file=config_file,
|
|
1558
|
+
db_url_map=db_url_map,
|
|
1559
|
+
env_file=env_file,
|
|
1560
|
+
db_name=db_name,
|
|
1561
|
+
)
|
|
1562
|
+
|
|
1563
|
+
console.print(f"\n[bold cyan]Step 0b: Propose Rules[/]")
|
|
1564
|
+
propose_rules(
|
|
1565
|
+
config_file=config_file,
|
|
1566
|
+
dry_run=dry_run, # Preview rules if dry-running
|
|
1567
|
+
)
|
|
1568
|
+
|
|
1569
|
+
# Step 1: Discover
|
|
1570
|
+
# Note: Discover currently runs for all DBs in config.
|
|
1571
|
+
console.print(f"\n[bold cyan]Step 1: Discovery[/]")
|
|
1572
|
+
discover(
|
|
1573
|
+
config_file=config_file,
|
|
1574
|
+
db_conf="replica_db_conf", # Pass explicit string to avoid Typer OptionInfo default
|
|
1575
|
+
db_url_map=db_url_map,
|
|
1576
|
+
env_file=env_file,
|
|
1577
|
+
update=True, # Always update registry to enable chaining
|
|
1578
|
+
prune=False, # Safer default? Or should we expose prune?
|
|
1579
|
+
run_sync=False, # We handle sync explicitly later
|
|
1580
|
+
dry_run=dry_run,
|
|
1581
|
+
generate_fields=False, # We use map command for this
|
|
1582
|
+
force=False, # Discovery force is about fields usually?
|
|
1583
|
+
)
|
|
1584
|
+
|
|
1585
|
+
# Step 2: Map
|
|
1586
|
+
console.print(f"\n[bold cyan]Step 2: Map Generation[/]")
|
|
1587
|
+
map(
|
|
1588
|
+
config_file=config_file,
|
|
1589
|
+
db_url_map=db_url_map,
|
|
1590
|
+
env_file=env_file,
|
|
1591
|
+
db_name=db_name,
|
|
1592
|
+
force=force,
|
|
1593
|
+
)
|
|
1594
|
+
|
|
1595
|
+
# Step 3: Sync
|
|
1596
|
+
console.print(f"\n[bold cyan]Step 3: Sync (Code Generation)[/]")
|
|
1597
|
+
sync(
|
|
1598
|
+
config_file=config_file,
|
|
1599
|
+
db_url_map=db_url_map,
|
|
1600
|
+
env_file=env_file, # sync command has env_file
|
|
1601
|
+
force=force,
|
|
1602
|
+
dry_run=dry_run,
|
|
1603
|
+
)
|
|
1604
|
+
|
|
1605
|
+
# Step 4: Create Cubes (Optional)
|
|
1606
|
+
if app_name:
|
|
1607
|
+
console.print(f"\n[bold cyan]Step 4: Application Cubes ({app_name})[/]")
|
|
1608
|
+
if dry_run:
|
|
1609
|
+
console.print("[yellow]Skipping create_cubes in dry-run mode.[/yellow]")
|
|
1610
|
+
else:
|
|
1611
|
+
from sibi_flux.init.cube_extender import create_cubes
|
|
1612
|
+
create_cubes(app_name)
|
|
1613
|
+
|
|
1614
|
+
console.rule("[bold magenta]Workflow Completed[/]")
|
|
1615
|
+
|
|
1616
|
+
|
|
1496
1617
|
@app.command()
|
|
1497
1618
|
def init(
|
|
1498
1619
|
config_file: Optional[Path] = typer.Option(None, "--config"),
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/artifacts/parquet_engine/__init__.py
RENAMED
|
File without changes
|
{sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/artifacts/parquet_engine/executor.py
RENAMED
|
File without changes
|
{sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/artifacts/parquet_engine/manifest.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/core/managed_resource/_managed_resource.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/df_helper/backends/http/_http_config.py
RENAMED
|
File without changes
|
{sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/df_helper/backends/parquet/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/df_helper/backends/sqlalchemy/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/df_helper/backends/sqlalchemy/_io_dask.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/init/templates/discovery_params.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/init/templates/property_template.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/orchestration/_artifact_orchestrator.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/utils/date_utils/_file_age_checker.py
RENAMED
|
File without changes
|
|
File without changes
|
{sibi_flux-2026.1.7 → sibi_flux-2026.1.8}/src/sibi_flux/utils/filepath_generator/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|