mainsequence 4.4.10__tar.gz → 4.4.11__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.
- {mainsequence-4.4.10/mainsequence.egg-info → mainsequence-4.4.11}/PKG-INFO +1 -1
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/base.py +1 -1
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/metatables/core.py +28 -9
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/models_foundry.py +3 -1
- {mainsequence-4.4.10 → mainsequence-4.4.11/mainsequence.egg-info}/PKG-INFO +1 -1
- {mainsequence-4.4.10 → mainsequence-4.4.11}/pyproject.toml +1 -1
- {mainsequence-4.4.10 → mainsequence-4.4.11}/tests/test_pod_project_resolution.py +38 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/LICENSE +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/README.md +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/agent_scaffold/AGENTS.md +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/agent_scaffold/skills/a2a_communication/SKILL.md +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/agent_scaffold/skills/application_surfaces/api_surfaces/SKILL.md +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/agent_scaffold/skills/command_center/adapter_from_api/SKILL.md +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/agent_scaffold/skills/command_center/api_mock_prototyping/SKILL.md +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/agent_scaffold/skills/command_center/connections/SKILL.md +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/agent_scaffold/skills/command_center/widgets/app_components/SKILL.md +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/agent_scaffold/skills/command_center/widgets/tables/SKILL.md +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/agent_scaffold/skills/command_center/widgets/tabular_transform/SKILL.md +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/agent_scaffold/skills/command_center/workspace_analysis/SKILL.md +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/agent_scaffold/skills/command_center/workspace_builder/SKILL.md +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/agent_scaffold/skills/command_center/workspace_design/SKILL.md +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/agent_scaffold/skills/dashboards/streamlit/SKILL.md +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/agent_scaffold/skills/data_access/exploration/SKILL.md +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/agent_scaffold/skills/data_publishing/data_nodes/SKILL.md +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/agent_scaffold/skills/data_publishing/meta_table_migrations/SKILL.md +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/agent_scaffold/skills/data_publishing/meta_tables/SKILL.md +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/agent_scaffold/skills/maintenance/bug_auditor/SKILL.md +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/agent_scaffold/skills/ms-markets/SKILL.md +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/agent_scaffold/skills/platform_operations/access_control_and_sharing/SKILL.md +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/agent_scaffold/skills/platform_operations/orchestration_and_releases/SKILL.md +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/agent_scaffold/skills/project_builder/SKILL.md +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/agent_scaffold/skills/project_to_agent/SKILL.md +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/__init__.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/__main__.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/bootstrap.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/cli/__init__.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/cli/api.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/cli/browser_auth.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/cli/cli.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/cli/config.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/cli/docker_utils.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/cli/doctor.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/cli/local_ops.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/cli/migrations.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/cli/model_filters.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/cli/project_status.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/cli/pydantic_cli.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/cli/sdk_utils.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/cli/ssh_utils.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/cli/ui.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/__init__.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/agent_runtime_models.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/client.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/command_center/__init__.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/command_center/app_component.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/command_center/connections.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/command_center/contracts/__init__.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/command_center/contracts/adapter_from_api.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/command_center/contracts/response_mapping.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/command_center/contracts/table_visuals.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/command_center/contracts/tabular.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/command_center/contracts/ui.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/command_center/data_models.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/command_center/providers/__init__.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/command_center/providers/adapter_from_api.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/command_center/widgets/__init__.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/command_center/widgets/bindings.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/command_center/widgets/connection_query.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/command_center/widgets/registry.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/command_center/widgets/table.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/command_center/widgets/tabular_transform.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/command_center/workspace.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/command_center/workspace_snapshot.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/command_center/workspaces/__init__.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/command_center/workspaces/documents.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/command_center/workspaces/mounted_widgets.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/compute_validation.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/data_sources_interfaces/__init__.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/data_sources_interfaces/duckdb.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/data_sources_interfaces/local_paths.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/data_sources_interfaces/sqlite.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/dtype_codec.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/exceptions.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/fastapi/__init__.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/fastapi/auth.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/metatables/__init__.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/models_helpers.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/models_user.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/utils.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/defaults.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/instrumentation/__init__.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/instrumentation/utils.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/logconf.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/meta_tables/__init__.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/meta_tables/__main__.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/meta_tables/compiled_sql/__init__.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/meta_tables/compiled_sql/v1.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/meta_tables/data_nodes/__init__.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/meta_tables/data_nodes/build_operations.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/meta_tables/data_nodes/data_nodes.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/meta_tables/data_nodes/models.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/meta_tables/data_nodes/namespacing.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/meta_tables/data_nodes/persist_managers.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/meta_tables/data_nodes/run_operations.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/meta_tables/data_nodes/utils.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/meta_tables/future_registry.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/meta_tables/hashing.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/meta_tables/migrations/__init__.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/meta_tables/migrations/alembic.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/meta_tables/migrations/env.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/meta_tables/migrations/provider.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/meta_tables/migrations/registry.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/meta_tables/migrations/scaffold.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/meta_tables/migrations/templates/__init__.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/meta_tables/migrations/templates/env.py.mako +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/meta_tables/migrations/templates/script.py.mako +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/meta_tables/pydantic_metadata.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/meta_tables/schema_names.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/meta_tables/sqlalchemy_contracts.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/runtime_flags.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/scaffold_skills.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence.egg-info/SOURCES.txt +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence.egg-info/dependency_links.txt +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence.egg-info/entry_points.txt +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence.egg-info/requires.txt +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence.egg-info/top_level.txt +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/setup.cfg +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/tests/test_auth_precedence.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/tests/test_build_operations_hashing.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/tests/test_cli.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/tests/test_cli_browser_auth.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/tests/test_cli_migrations.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/tests/test_client.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/tests/test_command_center_app_component_models.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/tests/test_command_center_data_models.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/tests/test_command_center_models.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/tests/test_command_center_table_contracts.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/tests/test_command_center_tabular_transform.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/tests/test_data_access_mixin_dimension_audit.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/tests/test_data_node_storage_dimension_queries.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/tests/test_data_node_update_flow.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/tests/test_dependency_extras.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/tests/test_duckdb_interface_dimensions.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/tests/test_filter_normalization.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/tests/test_instrumentation.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/tests/test_logconf.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/tests/test_meta_table_migrations.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/tests/test_meta_tables_client_models.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/tests/test_meta_tables_sqlalchemy_contracts.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/tests/test_models_user_request_bound_auth.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/tests/test_project_batch_jobs_from_file.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/tests/test_run_configuration.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/tests/test_scaffold_skills.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/tests/test_schema_names.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/tests/test_secret_client_model.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/tests/test_source_table_configuration.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/tests/test_sqlite_interface_dimensions.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/tests/test_update_runner_uid_runtime.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/tests/test_update_statistics.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/tests/test_update_uid_guards.py +0 -0
- {mainsequence-4.4.10 → mainsequence-4.4.11}/tests/test_workspace_snapshot.py +0 -0
|
@@ -89,7 +89,7 @@ class BaseObjectOrm:
|
|
|
89
89
|
"DataNodeUpdateDetails": "ts_manager/local_time_serie_update_details",
|
|
90
90
|
"LocalTimeSerieHistoricalUpdate": "ts_manager/lts_historical_update",
|
|
91
91
|
"DynamicTableDataSource": "ts_manager/dynamic_table_data_source",
|
|
92
|
-
"DataSource": "
|
|
92
|
+
"DataSource": "connections/data_source",
|
|
93
93
|
"Project": "pods/projects",
|
|
94
94
|
"Artifact": "pods/artifact",
|
|
95
95
|
"Job": "pods/job",
|
|
@@ -142,6 +142,7 @@ MetaTableSchemaManagementMode = Literal[
|
|
|
142
142
|
"external_registered",
|
|
143
143
|
]
|
|
144
144
|
MetaTableOperation = Literal["select", "insert", "update", "delete", "upsert"]
|
|
145
|
+
StorageAccessMode = Literal["read_write", "read_only", "disabled"]
|
|
145
146
|
COMPILED_SQL_V1 = "compiled-sql.v1"
|
|
146
147
|
MetaTableCompiledSQLVersion = Literal["compiled-sql.v1"]
|
|
147
148
|
MetaTableCompiledSQLDialect = Literal["postgresql"]
|
|
@@ -792,6 +793,8 @@ class ManagedMetaTableFinalizeResponse(BasePydanticModel):
|
|
|
792
793
|
|
|
793
794
|
|
|
794
795
|
class DataSource(BasePydanticModel, BaseObjectOrm):
|
|
796
|
+
model_config = ConfigDict(extra="allow")
|
|
797
|
+
|
|
795
798
|
uid: str | None = Field(
|
|
796
799
|
None,
|
|
797
800
|
description="Public uid of the data source.",
|
|
@@ -801,7 +804,7 @@ class DataSource(BasePydanticModel, BaseObjectOrm):
|
|
|
801
804
|
description="Compatibility alias for the public data source uid.",
|
|
802
805
|
)
|
|
803
806
|
id: int | None = Field(None, description="The unique identifier of the Local Disk Source Lake")
|
|
804
|
-
display_name: str
|
|
807
|
+
display_name: str | None = None
|
|
805
808
|
organization: int | None = Field(
|
|
806
809
|
None, description="The unique identifier of the Local Disk Source Lake"
|
|
807
810
|
)
|
|
@@ -809,11 +812,26 @@ class DataSource(BasePydanticModel, BaseObjectOrm):
|
|
|
809
812
|
None,
|
|
810
813
|
description="Public uid of the owning organization.",
|
|
811
814
|
)
|
|
812
|
-
class_type: str
|
|
813
|
-
status: str
|
|
815
|
+
class_type: str | None = None
|
|
816
|
+
status: str | None = None
|
|
817
|
+
storage_access_mode: StorageAccessMode | None = Field(
|
|
818
|
+
default="read_write",
|
|
819
|
+
description="Runtime storage access gate: read_write, read_only, or disabled.",
|
|
820
|
+
)
|
|
814
821
|
extra_arguments: dict | None = None
|
|
815
822
|
|
|
816
823
|
STATUS_AVAILABLE: ClassVar[str] = "AVAILABLE"
|
|
824
|
+
STORAGE_ACCESS_MODE_READ_WRITE: ClassVar[str] = "read_write"
|
|
825
|
+
STORAGE_ACCESS_MODE_READ_ONLY: ClassVar[str] = "read_only"
|
|
826
|
+
STORAGE_ACCESS_MODE_DISABLED: ClassVar[str] = "disabled"
|
|
827
|
+
|
|
828
|
+
@property
|
|
829
|
+
def allows_runtime_reads(self) -> bool:
|
|
830
|
+
return self.storage_access_mode in {"read_write", "read_only"}
|
|
831
|
+
|
|
832
|
+
@property
|
|
833
|
+
def allows_runtime_writes(self) -> bool:
|
|
834
|
+
return self.storage_access_mode == "read_write"
|
|
817
835
|
|
|
818
836
|
@classmethod
|
|
819
837
|
def get_or_create_duck_db(cls, time_out=None, *args, **kwargs):
|
|
@@ -1019,6 +1037,8 @@ class DataSource(BasePydanticModel, BaseObjectOrm):
|
|
|
1019
1037
|
|
|
1020
1038
|
|
|
1021
1039
|
class DynamicTableDataSource(BasePydanticModel, BaseObjectOrm):
|
|
1040
|
+
model_config = ConfigDict(extra="allow", use_enum_values=True)
|
|
1041
|
+
|
|
1022
1042
|
uid: str | None = Field(
|
|
1023
1043
|
None,
|
|
1024
1044
|
description="Public uid of the dynamic table data source.",
|
|
@@ -1027,15 +1047,14 @@ class DynamicTableDataSource(BasePydanticModel, BaseObjectOrm):
|
|
|
1027
1047
|
None,
|
|
1028
1048
|
description="Backend numeric row identifier of the time-indexed data source.",
|
|
1029
1049
|
)
|
|
1030
|
-
related_resource: DataSource
|
|
1031
|
-
related_resource_class_type: str
|
|
1032
|
-
|
|
1033
|
-
class Config:
|
|
1034
|
-
use_enum_values = True
|
|
1050
|
+
related_resource: DataSource | None = None
|
|
1051
|
+
related_resource_class_type: str | None = None
|
|
1035
1052
|
|
|
1036
1053
|
def model_dump_json(self, **json_dumps_kwargs) -> str:
|
|
1037
1054
|
dump = self.model_dump()
|
|
1038
|
-
dump["related_resource"] =
|
|
1055
|
+
dump["related_resource"] = (
|
|
1056
|
+
self.related_resource.model_dump() if self.related_resource is not None else None
|
|
1057
|
+
)
|
|
1039
1058
|
return json.dumps(dump, **json_dumps_kwargs)
|
|
1040
1059
|
|
|
1041
1060
|
def _public_uid(self) -> str:
|
|
@@ -10,7 +10,7 @@ from uuid import UUID
|
|
|
10
10
|
import pandas as pd
|
|
11
11
|
import yaml
|
|
12
12
|
from cachetools import TTLCache, cachedmethod
|
|
13
|
-
from pydantic import Field, SecretStr
|
|
13
|
+
from pydantic import ConfigDict, Field, SecretStr
|
|
14
14
|
|
|
15
15
|
from mainsequence.logconf import logger
|
|
16
16
|
|
|
@@ -143,6 +143,8 @@ class ProjectQuickSearchResult(BasePydanticModel):
|
|
|
143
143
|
|
|
144
144
|
|
|
145
145
|
class Project(LabelableObjectMixin, ShareableObjectMixin, BasePydanticModel, BaseObjectOrm):
|
|
146
|
+
model_config = ConfigDict(extra="allow")
|
|
147
|
+
|
|
146
148
|
FILTERSET_FIELDS: ClassVar[dict[str, list[str]]] = {
|
|
147
149
|
"project_name": ["in", "exact", "contains"],
|
|
148
150
|
"uid": ["in", "exact"],
|
|
@@ -25,6 +25,7 @@ def _project_payload_public() -> dict:
|
|
|
25
25
|
"project_name": "Markets Repository",
|
|
26
26
|
"data_source": {
|
|
27
27
|
"uid": DATA_SOURCE_UID,
|
|
28
|
+
"backend_can_add_fields": "ignored",
|
|
28
29
|
"related_resource": {
|
|
29
30
|
"uid": DATA_SOURCE_UID,
|
|
30
31
|
"data_source_uid": DATA_SOURCE_UID,
|
|
@@ -32,6 +33,8 @@ def _project_payload_public() -> dict:
|
|
|
32
33
|
"organization_uid": ORGANIZATION_UID,
|
|
33
34
|
"class_type": "timescale_db_remote",
|
|
34
35
|
"status": "AVAILABLE",
|
|
36
|
+
"storage_access_mode": "read_write",
|
|
37
|
+
"backend_can_add_nested_fields": "ignored",
|
|
35
38
|
},
|
|
36
39
|
"related_resource_class_type": "timescale_db_remote",
|
|
37
40
|
},
|
|
@@ -39,6 +42,7 @@ def _project_payload_public() -> dict:
|
|
|
39
42
|
"is_initialized": True,
|
|
40
43
|
"created_by": "user-4",
|
|
41
44
|
"labels": ["markets"],
|
|
45
|
+
"backend_can_add_project_fields": "ignored",
|
|
42
46
|
}
|
|
43
47
|
|
|
44
48
|
|
|
@@ -53,6 +57,40 @@ def test_project_deserializes_public_uid_serializer_payload():
|
|
|
53
57
|
assert project.data_source.related_resource.data_source_uid == DATA_SOURCE_UID
|
|
54
58
|
assert project.data_source.related_resource.organization_uid == ORGANIZATION_UID
|
|
55
59
|
assert project.data_source.related_resource.class_type == "timescale_db_remote"
|
|
60
|
+
assert project.data_source.related_resource.storage_access_mode == "read_write"
|
|
61
|
+
assert project.data_source.related_resource.allows_runtime_reads is True
|
|
62
|
+
assert project.data_source.related_resource.allows_runtime_writes is True
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
def test_project_deserializes_nullable_datasource_related_resource_edge_case():
|
|
66
|
+
payload = _project_payload_public()
|
|
67
|
+
payload["data_source"]["related_resource"] = {
|
|
68
|
+
"uid": None,
|
|
69
|
+
"data_source_uid": None,
|
|
70
|
+
"display_name": None,
|
|
71
|
+
"organization_uid": None,
|
|
72
|
+
"class_type": None,
|
|
73
|
+
"status": None,
|
|
74
|
+
"storage_access_mode": None,
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
project = models_foundry.Project(**payload)
|
|
78
|
+
|
|
79
|
+
assert project.data_source is not None
|
|
80
|
+
assert project.data_source.related_resource is not None
|
|
81
|
+
assert project.data_source.related_resource.storage_access_mode is None
|
|
82
|
+
assert project.data_source.related_resource.allows_runtime_reads is False
|
|
83
|
+
assert project.data_source.related_resource.allows_runtime_writes is False
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
def test_project_deserializes_null_datasource_related_resource_edge_case():
|
|
87
|
+
payload = _project_payload_public()
|
|
88
|
+
payload["data_source"]["related_resource"] = None
|
|
89
|
+
|
|
90
|
+
project = models_foundry.Project(**payload)
|
|
91
|
+
|
|
92
|
+
assert project.data_source is not None
|
|
93
|
+
assert project.data_source.related_resource is None
|
|
56
94
|
|
|
57
95
|
|
|
58
96
|
def test_data_node_update_get_or_create_uses_current_project_uid(monkeypatch):
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-4.4.10 → mainsequence-4.4.11}/agent_scaffold/skills/a2a_communication/SKILL.md
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
|
{mainsequence-4.4.10 → mainsequence-4.4.11}/agent_scaffold/skills/dashboards/streamlit/SKILL.md
RENAMED
|
File without changes
|
{mainsequence-4.4.10 → mainsequence-4.4.11}/agent_scaffold/skills/data_access/exploration/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-4.4.10 → mainsequence-4.4.11}/agent_scaffold/skills/maintenance/bug_auditor/SKILL.md
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
|
{mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/command_center/app_component.py
RENAMED
|
File without changes
|
{mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/command_center/connections.py
RENAMED
|
File without changes
|
{mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/command_center/contracts/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/command_center/contracts/tabular.py
RENAMED
|
File without changes
|
{mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/command_center/contracts/ui.py
RENAMED
|
File without changes
|
{mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/command_center/data_models.py
RENAMED
|
File without changes
|
{mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/command_center/providers/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/command_center/widgets/__init__.py
RENAMED
|
File without changes
|
{mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/command_center/widgets/bindings.py
RENAMED
|
File without changes
|
|
File without changes
|
{mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/command_center/widgets/registry.py
RENAMED
|
File without changes
|
{mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/command_center/widgets/table.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/command_center/workspace_snapshot.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/data_sources_interfaces/__init__.py
RENAMED
|
File without changes
|
{mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/data_sources_interfaces/duckdb.py
RENAMED
|
File without changes
|
|
File without changes
|
{mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/client/data_sources_interfaces/sqlite.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
|
{mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/meta_tables/compiled_sql/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/meta_tables/data_nodes/build_operations.py
RENAMED
|
File without changes
|
{mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/meta_tables/data_nodes/data_nodes.py
RENAMED
|
File without changes
|
|
File without changes
|
{mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/meta_tables/data_nodes/namespacing.py
RENAMED
|
File without changes
|
{mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/meta_tables/data_nodes/persist_managers.py
RENAMED
|
File without changes
|
{mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/meta_tables/data_nodes/run_operations.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
|
{mainsequence-4.4.10 → mainsequence-4.4.11}/mainsequence/meta_tables/sqlalchemy_contracts.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
|
{mainsequence-4.4.10 → mainsequence-4.4.11}/tests/test_command_center_app_component_models.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-4.4.10 → mainsequence-4.4.11}/tests/test_data_node_storage_dimension_queries.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
|