mainsequence 4.3.6__tar.gz → 4.3.7__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.3.6/mainsequence.egg-info → mainsequence-4.3.7}/PKG-INFO +1 -1
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/metatables/core.py +10 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7/mainsequence.egg-info}/PKG-INFO +1 -1
- {mainsequence-4.3.6 → mainsequence-4.3.7}/pyproject.toml +1 -1
- {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_meta_tables_client_models.py +29 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/LICENSE +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/README.md +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/agent_scaffold/AGENTS.md +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/agent_scaffold/skills/a2a_communication/SKILL.md +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/agent_scaffold/skills/application_surfaces/api_surfaces/SKILL.md +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/agent_scaffold/skills/command_center/adapter_from_api/SKILL.md +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/agent_scaffold/skills/command_center/api_mock_prototyping/SKILL.md +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/agent_scaffold/skills/command_center/app_components/SKILL.md +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/agent_scaffold/skills/command_center/connections/SKILL.md +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/agent_scaffold/skills/command_center/workspace_analysis/SKILL.md +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/agent_scaffold/skills/command_center/workspace_builder/SKILL.md +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/agent_scaffold/skills/command_center/workspace_design/SKILL.md +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/agent_scaffold/skills/dashboards/streamlit/SKILL.md +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/agent_scaffold/skills/data_access/exploration/SKILL.md +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/agent_scaffold/skills/data_publishing/data_nodes/SKILL.md +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/agent_scaffold/skills/data_publishing/meta_tables/SKILL.md +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/agent_scaffold/skills/maintenance/bug_auditor/SKILL.md +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/agent_scaffold/skills/ms-markets/SKILL.md +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/agent_scaffold/skills/platform_operations/access_control_and_sharing/SKILL.md +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/agent_scaffold/skills/platform_operations/orchestration_and_releases/SKILL.md +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/agent_scaffold/skills/project_builder/SKILL.md +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/agent_scaffold/skills/project_to_agent/SKILL.md +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/__init__.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/__main__.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/bootstrap.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/cli/__init__.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/cli/api.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/cli/browser_auth.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/cli/cli.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/cli/config.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/cli/docker_utils.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/cli/doctor.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/cli/local_ops.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/cli/migrations.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/cli/model_filters.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/cli/project_status.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/cli/pydantic_cli.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/cli/sdk_utils.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/cli/ssh_utils.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/cli/ui.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/__init__.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/agent_runtime_models.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/base.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/client.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/command_center/__init__.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/command_center/app_component.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/command_center/connections.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/command_center/data_models.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/command_center/workspace.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/command_center/workspace_snapshot.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/compute_validation.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/data_sources_interfaces/__init__.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/data_sources_interfaces/duckdb.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/data_sources_interfaces/local_paths.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/data_sources_interfaces/sqlite.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/dtype_codec.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/exceptions.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/fastapi/__init__.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/fastapi/auth.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/metatables/__init__.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/models_foundry.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/models_helpers.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/models_user.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/utils.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/defaults.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/instrumentation/__init__.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/instrumentation/utils.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/logconf.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/meta_tables/__init__.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/meta_tables/__main__.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/meta_tables/compiled_sql/__init__.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/meta_tables/compiled_sql/v1.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/meta_tables/data_nodes/__init__.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/meta_tables/data_nodes/build_operations.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/meta_tables/data_nodes/data_nodes.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/meta_tables/data_nodes/models.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/meta_tables/data_nodes/namespacing.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/meta_tables/data_nodes/persist_managers.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/meta_tables/data_nodes/run_operations.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/meta_tables/data_nodes/utils.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/meta_tables/future_registry.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/meta_tables/hashing.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/meta_tables/migrations.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/meta_tables/pydantic_metadata.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/meta_tables/schema_names.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/meta_tables/sqlalchemy_contracts.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/runtime_flags.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence.egg-info/SOURCES.txt +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence.egg-info/dependency_links.txt +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence.egg-info/entry_points.txt +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence.egg-info/requires.txt +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence.egg-info/top_level.txt +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/setup.cfg +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_auth_precedence.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_build_operations_hashing.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_cli.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_cli_browser_auth.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_cli_migrations.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_client.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_command_center_app_component_models.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_command_center_data_models.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_command_center_models.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_data_access_mixin_dimension_audit.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_data_node_storage_dimension_queries.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_data_node_update_flow.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_dependency_extras.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_duckdb_interface_dimensions.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_filter_normalization.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_instrumentation.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_logconf.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_meta_table_migrations.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_meta_tables_sqlalchemy_contracts.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_models_user_request_bound_auth.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_pod_project_resolution.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_project_batch_jobs_from_file.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_run_configuration.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_schema_names.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_secret_client_model.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_source_table_configuration.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_sqlite_interface_dimensions.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_update_runner_uid_runtime.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_update_statistics.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_update_uid_guards.py +0 -0
- {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_workspace_snapshot.py +0 -0
|
@@ -3023,6 +3023,11 @@ class TimeIndexMetaTable(MetaTable):
|
|
|
3023
3023
|
default=False, description="Whether the data source is open for everyone"
|
|
3024
3024
|
)
|
|
3025
3025
|
source_class_name: str | None = None
|
|
3026
|
+
cadence: str | None = Field(
|
|
3027
|
+
None,
|
|
3028
|
+
max_length=32,
|
|
3029
|
+
description="Optional declared cadence for the time-indexed table.",
|
|
3030
|
+
)
|
|
3026
3031
|
time_indexed_profile: TimeIndexedProfile | None = None
|
|
3027
3032
|
table_index_names: dict | None = None
|
|
3028
3033
|
|
|
@@ -3033,6 +3038,11 @@ class TimeIndexMetaTable(MetaTable):
|
|
|
3033
3038
|
_drop_indices: bool = False # for direct incertion we can pass this values
|
|
3034
3039
|
_rebuild_indices: bool = False # for direct incertion we can pass this values
|
|
3035
3040
|
|
|
3041
|
+
@field_validator("cadence")
|
|
3042
|
+
@classmethod
|
|
3043
|
+
def _normalize_cadence(cls, value: str | None) -> str | None:
|
|
3044
|
+
return _normalize_time_indexed_cadence(value)
|
|
3045
|
+
|
|
3036
3046
|
def _time_indexed_dynamic_contract(self) -> dict[str, Any]:
|
|
3037
3047
|
return _dynamic_table_contract_fragment(self.table_contract)
|
|
3038
3048
|
|
|
@@ -201,6 +201,35 @@ def test_time_index_meta_table_bulk_create_posts_raw_collection_payload(monkeypa
|
|
|
201
201
|
assert captured["payload"]["json"] == [row]
|
|
202
202
|
|
|
203
203
|
|
|
204
|
+
def test_time_index_meta_table_accepts_backend_top_level_cadence():
|
|
205
|
+
table = meta_table_models.TimeIndexMetaTable(
|
|
206
|
+
**_meta_table_response(
|
|
207
|
+
cadence="1D",
|
|
208
|
+
time_indexed_profile={
|
|
209
|
+
"time_index_name": "time_index",
|
|
210
|
+
"cadence": "1D",
|
|
211
|
+
"index_names": ["time_index"],
|
|
212
|
+
},
|
|
213
|
+
)
|
|
214
|
+
)
|
|
215
|
+
|
|
216
|
+
assert table.cadence == "1d"
|
|
217
|
+
assert table.time_indexed_profile is not None
|
|
218
|
+
assert table.time_indexed_profile.cadence == "1d"
|
|
219
|
+
|
|
220
|
+
table_with_null_cadence = meta_table_models.TimeIndexMetaTable(
|
|
221
|
+
**_meta_table_response(
|
|
222
|
+
cadence=None,
|
|
223
|
+
time_indexed_profile={
|
|
224
|
+
"time_index_name": "time_index",
|
|
225
|
+
"index_names": ["time_index"],
|
|
226
|
+
},
|
|
227
|
+
)
|
|
228
|
+
)
|
|
229
|
+
|
|
230
|
+
assert table_with_null_cadence.cadence is None
|
|
231
|
+
|
|
232
|
+
|
|
204
233
|
def test_metatable_accepts_projection_relation_fields():
|
|
205
234
|
meta_table = meta_table_models.MetaTable(
|
|
206
235
|
**_meta_table_response(
|
|
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.3.6 → mainsequence-4.3.7}/agent_scaffold/skills/command_center/connections/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-4.3.6 → mainsequence-4.3.7}/agent_scaffold/skills/dashboards/streamlit/SKILL.md
RENAMED
|
File without changes
|
{mainsequence-4.3.6 → mainsequence-4.3.7}/agent_scaffold/skills/data_access/exploration/SKILL.md
RENAMED
|
File without changes
|
{mainsequence-4.3.6 → mainsequence-4.3.7}/agent_scaffold/skills/data_publishing/data_nodes/SKILL.md
RENAMED
|
File without changes
|
{mainsequence-4.3.6 → mainsequence-4.3.7}/agent_scaffold/skills/data_publishing/meta_tables/SKILL.md
RENAMED
|
File without changes
|
{mainsequence-4.3.6 → mainsequence-4.3.7}/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
|
|
File without changes
|
{mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/command_center/app_component.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/command_center/workspace_snapshot.py
RENAMED
|
File without changes
|
|
File without changes
|
{mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/data_sources_interfaces/__init__.py
RENAMED
|
File without changes
|
{mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/data_sources_interfaces/duckdb.py
RENAMED
|
File without changes
|
{mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/data_sources_interfaces/local_paths.py
RENAMED
|
File without changes
|
{mainsequence-4.3.6 → mainsequence-4.3.7}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/meta_tables/data_nodes/build_operations.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/meta_tables/data_nodes/namespacing.py
RENAMED
|
File without changes
|
{mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/meta_tables/data_nodes/persist_managers.py
RENAMED
|
File without changes
|
{mainsequence-4.3.6 → mainsequence-4.3.7}/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
|
|
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
|