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.
Files changed (129) hide show
  1. {mainsequence-4.3.6/mainsequence.egg-info → mainsequence-4.3.7}/PKG-INFO +1 -1
  2. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/metatables/core.py +10 -0
  3. {mainsequence-4.3.6 → mainsequence-4.3.7/mainsequence.egg-info}/PKG-INFO +1 -1
  4. {mainsequence-4.3.6 → mainsequence-4.3.7}/pyproject.toml +1 -1
  5. {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_meta_tables_client_models.py +29 -0
  6. {mainsequence-4.3.6 → mainsequence-4.3.7}/LICENSE +0 -0
  7. {mainsequence-4.3.6 → mainsequence-4.3.7}/README.md +0 -0
  8. {mainsequence-4.3.6 → mainsequence-4.3.7}/agent_scaffold/AGENTS.md +0 -0
  9. {mainsequence-4.3.6 → mainsequence-4.3.7}/agent_scaffold/skills/a2a_communication/SKILL.md +0 -0
  10. {mainsequence-4.3.6 → mainsequence-4.3.7}/agent_scaffold/skills/application_surfaces/api_surfaces/SKILL.md +0 -0
  11. {mainsequence-4.3.6 → mainsequence-4.3.7}/agent_scaffold/skills/command_center/adapter_from_api/SKILL.md +0 -0
  12. {mainsequence-4.3.6 → mainsequence-4.3.7}/agent_scaffold/skills/command_center/api_mock_prototyping/SKILL.md +0 -0
  13. {mainsequence-4.3.6 → mainsequence-4.3.7}/agent_scaffold/skills/command_center/app_components/SKILL.md +0 -0
  14. {mainsequence-4.3.6 → mainsequence-4.3.7}/agent_scaffold/skills/command_center/connections/SKILL.md +0 -0
  15. {mainsequence-4.3.6 → mainsequence-4.3.7}/agent_scaffold/skills/command_center/workspace_analysis/SKILL.md +0 -0
  16. {mainsequence-4.3.6 → mainsequence-4.3.7}/agent_scaffold/skills/command_center/workspace_builder/SKILL.md +0 -0
  17. {mainsequence-4.3.6 → mainsequence-4.3.7}/agent_scaffold/skills/command_center/workspace_design/SKILL.md +0 -0
  18. {mainsequence-4.3.6 → mainsequence-4.3.7}/agent_scaffold/skills/dashboards/streamlit/SKILL.md +0 -0
  19. {mainsequence-4.3.6 → mainsequence-4.3.7}/agent_scaffold/skills/data_access/exploration/SKILL.md +0 -0
  20. {mainsequence-4.3.6 → mainsequence-4.3.7}/agent_scaffold/skills/data_publishing/data_nodes/SKILL.md +0 -0
  21. {mainsequence-4.3.6 → mainsequence-4.3.7}/agent_scaffold/skills/data_publishing/meta_tables/SKILL.md +0 -0
  22. {mainsequence-4.3.6 → mainsequence-4.3.7}/agent_scaffold/skills/maintenance/bug_auditor/SKILL.md +0 -0
  23. {mainsequence-4.3.6 → mainsequence-4.3.7}/agent_scaffold/skills/ms-markets/SKILL.md +0 -0
  24. {mainsequence-4.3.6 → mainsequence-4.3.7}/agent_scaffold/skills/platform_operations/access_control_and_sharing/SKILL.md +0 -0
  25. {mainsequence-4.3.6 → mainsequence-4.3.7}/agent_scaffold/skills/platform_operations/orchestration_and_releases/SKILL.md +0 -0
  26. {mainsequence-4.3.6 → mainsequence-4.3.7}/agent_scaffold/skills/project_builder/SKILL.md +0 -0
  27. {mainsequence-4.3.6 → mainsequence-4.3.7}/agent_scaffold/skills/project_to_agent/SKILL.md +0 -0
  28. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/__init__.py +0 -0
  29. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/__main__.py +0 -0
  30. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/bootstrap.py +0 -0
  31. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/cli/__init__.py +0 -0
  32. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/cli/api.py +0 -0
  33. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/cli/browser_auth.py +0 -0
  34. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/cli/cli.py +0 -0
  35. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/cli/config.py +0 -0
  36. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/cli/docker_utils.py +0 -0
  37. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/cli/doctor.py +0 -0
  38. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/cli/local_ops.py +0 -0
  39. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/cli/migrations.py +0 -0
  40. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/cli/model_filters.py +0 -0
  41. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/cli/project_status.py +0 -0
  42. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/cli/pydantic_cli.py +0 -0
  43. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/cli/sdk_utils.py +0 -0
  44. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/cli/ssh_utils.py +0 -0
  45. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/cli/ui.py +0 -0
  46. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/__init__.py +0 -0
  47. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/agent_runtime_models.py +0 -0
  48. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/base.py +0 -0
  49. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/client.py +0 -0
  50. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/command_center/__init__.py +0 -0
  51. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/command_center/app_component.py +0 -0
  52. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/command_center/connections.py +0 -0
  53. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/command_center/data_models.py +0 -0
  54. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/command_center/workspace.py +0 -0
  55. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/command_center/workspace_snapshot.py +0 -0
  56. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/compute_validation.py +0 -0
  57. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/data_sources_interfaces/__init__.py +0 -0
  58. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/data_sources_interfaces/duckdb.py +0 -0
  59. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/data_sources_interfaces/local_paths.py +0 -0
  60. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/data_sources_interfaces/sqlite.py +0 -0
  61. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/dtype_codec.py +0 -0
  62. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/exceptions.py +0 -0
  63. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/fastapi/__init__.py +0 -0
  64. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/fastapi/auth.py +0 -0
  65. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/metatables/__init__.py +0 -0
  66. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/models_foundry.py +0 -0
  67. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/models_helpers.py +0 -0
  68. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/models_user.py +0 -0
  69. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/client/utils.py +0 -0
  70. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/defaults.py +0 -0
  71. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/instrumentation/__init__.py +0 -0
  72. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/instrumentation/utils.py +0 -0
  73. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/logconf.py +0 -0
  74. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/meta_tables/__init__.py +0 -0
  75. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/meta_tables/__main__.py +0 -0
  76. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/meta_tables/compiled_sql/__init__.py +0 -0
  77. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/meta_tables/compiled_sql/v1.py +0 -0
  78. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/meta_tables/data_nodes/__init__.py +0 -0
  79. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/meta_tables/data_nodes/build_operations.py +0 -0
  80. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/meta_tables/data_nodes/data_nodes.py +0 -0
  81. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/meta_tables/data_nodes/models.py +0 -0
  82. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/meta_tables/data_nodes/namespacing.py +0 -0
  83. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/meta_tables/data_nodes/persist_managers.py +0 -0
  84. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/meta_tables/data_nodes/run_operations.py +0 -0
  85. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/meta_tables/data_nodes/utils.py +0 -0
  86. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/meta_tables/future_registry.py +0 -0
  87. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/meta_tables/hashing.py +0 -0
  88. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/meta_tables/migrations.py +0 -0
  89. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/meta_tables/pydantic_metadata.py +0 -0
  90. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/meta_tables/schema_names.py +0 -0
  91. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/meta_tables/sqlalchemy_contracts.py +0 -0
  92. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence/runtime_flags.py +0 -0
  93. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence.egg-info/SOURCES.txt +0 -0
  94. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence.egg-info/dependency_links.txt +0 -0
  95. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence.egg-info/entry_points.txt +0 -0
  96. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence.egg-info/requires.txt +0 -0
  97. {mainsequence-4.3.6 → mainsequence-4.3.7}/mainsequence.egg-info/top_level.txt +0 -0
  98. {mainsequence-4.3.6 → mainsequence-4.3.7}/setup.cfg +0 -0
  99. {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_auth_precedence.py +0 -0
  100. {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_build_operations_hashing.py +0 -0
  101. {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_cli.py +0 -0
  102. {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_cli_browser_auth.py +0 -0
  103. {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_cli_migrations.py +0 -0
  104. {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_client.py +0 -0
  105. {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_command_center_app_component_models.py +0 -0
  106. {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_command_center_data_models.py +0 -0
  107. {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_command_center_models.py +0 -0
  108. {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_data_access_mixin_dimension_audit.py +0 -0
  109. {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_data_node_storage_dimension_queries.py +0 -0
  110. {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_data_node_update_flow.py +0 -0
  111. {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_dependency_extras.py +0 -0
  112. {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_duckdb_interface_dimensions.py +0 -0
  113. {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_filter_normalization.py +0 -0
  114. {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_instrumentation.py +0 -0
  115. {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_logconf.py +0 -0
  116. {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_meta_table_migrations.py +0 -0
  117. {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_meta_tables_sqlalchemy_contracts.py +0 -0
  118. {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_models_user_request_bound_auth.py +0 -0
  119. {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_pod_project_resolution.py +0 -0
  120. {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_project_batch_jobs_from_file.py +0 -0
  121. {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_run_configuration.py +0 -0
  122. {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_schema_names.py +0 -0
  123. {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_secret_client_model.py +0 -0
  124. {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_source_table_configuration.py +0 -0
  125. {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_sqlite_interface_dimensions.py +0 -0
  126. {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_update_runner_uid_runtime.py +0 -0
  127. {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_update_statistics.py +0 -0
  128. {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_update_uid_guards.py +0 -0
  129. {mainsequence-4.3.6 → mainsequence-4.3.7}/tests/test_workspace_snapshot.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mainsequence
3
- Version: 4.3.6
3
+ Version: 4.3.7
4
4
  Summary: Main Sequence SDK
5
5
  Author-email: Main Sequence GmbH <dev@main-sequence.io>
6
6
  License: MainSequence GmbH SDK License Agreement
@@ -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
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mainsequence
3
- Version: 4.3.6
3
+ Version: 4.3.7
4
4
  Summary: Main Sequence SDK
5
5
  Author-email: Main Sequence GmbH <dev@main-sequence.io>
6
6
  License: MainSequence GmbH SDK License Agreement
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "mainsequence"
7
- version = "4.3.6"
7
+ version = "4.3.7"
8
8
  description = "Main Sequence SDK "
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -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