firecube 0.1.7__tar.gz → 0.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.
Files changed (1675) hide show
  1. firecube-0.1.8/.github/PULL_REQUEST_TEMPLATE.md +50 -0
  2. firecube-0.1.8/.prompts/make-release.md +249 -0
  3. firecube-0.1.8/AGENTS.md +265 -0
  4. firecube-0.1.8/CHANGELOG.md +1671 -0
  5. firecube-0.1.8/CONTRIBUTING.md +256 -0
  6. firecube-0.1.8/PKG-INFO +260 -0
  7. firecube-0.1.8/README.md +200 -0
  8. firecube-0.1.8/docs/concepts/glossary.md +69 -0
  9. firecube-0.1.8/docs/concepts/observability/logs.md +73 -0
  10. firecube-0.1.8/docs/concepts/observability/traces.md +86 -0
  11. firecube-0.1.8/docs/concepts/orchestration/retries.md +73 -0
  12. firecube-0.1.8/docs/concepts/orchestration.md +51 -0
  13. firecube-0.1.8/docs/concepts/output-formats/zarr/chunk-ownership.md +118 -0
  14. firecube-0.1.8/docs/concepts/output-formats/zarr/direct-region.md +154 -0
  15. firecube-0.1.8/docs/concepts/output-formats/zarr/parallel-writes.md +91 -0
  16. firecube-0.1.8/docs/concepts/performance.md +179 -0
  17. firecube-0.1.8/docs/concepts/production-guide.md +162 -0
  18. firecube-0.1.8/docs/concepts/storage.md +100 -0
  19. firecube-0.1.8/docs/contributing/firecube-contributors.md +155 -0
  20. firecube-0.1.8/docs/guides/plugins/add-config-options.md +142 -0
  21. firecube-0.1.8/docs/guides/plugins/base-ingestor.md +147 -0
  22. firecube-0.1.8/docs/guides/plugins/configure-zarr-chunking.md +145 -0
  23. firecube-0.1.8/docs/guides/plugins/configure-zarr-compression.md +123 -0
  24. firecube-0.1.8/docs/guides/plugins/configure-zarr-sharding.md +106 -0
  25. firecube-0.1.8/docs/guides/plugins/declare-a-calendar.md +342 -0
  26. firecube-0.1.8/docs/guides/plugins/direct-zarr-auto.md +198 -0
  27. firecube-0.1.8/docs/guides/plugins/direct-zarr.md +375 -0
  28. firecube-0.1.8/docs/guides/plugins/discover-zipped-data.md +83 -0
  29. firecube-0.1.8/docs/guides/plugins/generic-parquet.md +116 -0
  30. firecube-0.1.8/docs/guides/plugins/generic-zarr.md +248 -0
  31. firecube-0.1.8/docs/guides/plugins/multi-group-writes.md +86 -0
  32. firecube-0.1.8/docs/guides/plugins/paired-source-files.md +200 -0
  33. firecube-0.1.8/docs/guides/plugins/parse-filename-fields.md +233 -0
  34. firecube-0.1.8/docs/guides/plugins/source-discovery.md +121 -0
  35. firecube-0.1.8/docs/index.md +66 -0
  36. firecube-0.1.8/docs/operations/archive/create.md +164 -0
  37. firecube-0.1.8/docs/operations/archive/index.md +47 -0
  38. firecube-0.1.8/docs/operations/archive/inspect.md +156 -0
  39. firecube-0.1.8/docs/operations/archive/restore.md +169 -0
  40. firecube-0.1.8/docs/operations/chunk-manager/delete.md +304 -0
  41. firecube-0.1.8/docs/operations/chunk-manager/index.md +83 -0
  42. firecube-0.1.8/docs/operations/chunk-manager/post-crash-recovery.md +317 -0
  43. firecube-0.1.8/docs/operations/chunk-manager/recover.md +287 -0
  44. firecube-0.1.8/docs/operations/firecube-index.md +254 -0
  45. firecube-0.1.8/docs/operations/fix-chunk-ownership-refusal.md +194 -0
  46. firecube-0.1.8/docs/operations/ingest-from-a-stac-api.md +153 -0
  47. firecube-0.1.8/docs/operations/parallel-zarr-writes.md +280 -0
  48. firecube-0.1.8/docs/operations/s3-access.md +80 -0
  49. firecube-0.1.8/docs/quickstart/ingestion.md +101 -0
  50. firecube-0.1.8/docs/quickstart/source-data.md +43 -0
  51. firecube-0.1.8/docs/reference/control-plane-spec.md +313 -0
  52. firecube-0.1.8/docs/reference/core-utilities.md +152 -0
  53. firecube-0.1.8/docs/showcase/mtg-fci-l1c-benchmarks.ipynb +572 -0
  54. firecube-0.1.8/docs/showcase/netcdf-to-zarr-requirements.txt +8 -0
  55. firecube-0.1.8/docs/showcase/netcdf-to-zarr.ipynb +538 -0
  56. firecube-0.1.8/docs/showcase/requirements.txt +7 -0
  57. firecube-0.1.8/docs/showcase/sentinel3-fire-detections.ipynb +15081 -0
  58. firecube-0.1.8/mkdocs.yml +221 -0
  59. firecube-0.1.8/plans/DESIGN.md +256 -0
  60. firecube-0.1.8/plans/DONE.md +2622 -0
  61. firecube-0.1.8/plans/IDEAS.md +345 -0
  62. firecube-0.1.8/plans/RELEASE.md +138 -0
  63. firecube-0.1.8/plans/TEST.md +168 -0
  64. firecube-0.1.8/plans/TESTING_STANDARDS.md +276 -0
  65. firecube-0.1.8/plans/TEST_GAPS.md +114 -0
  66. firecube-0.1.8/plans/TODO.md +893 -0
  67. firecube-0.1.8/pyproject.toml +159 -0
  68. firecube-0.1.8/src/firecube/cli/_command_schemas.py +104 -0
  69. firecube-0.1.8/src/firecube/cli/_ctx.py +88 -0
  70. firecube-0.1.8/src/firecube/cli/_errors.py +129 -0
  71. firecube-0.1.8/src/firecube/cli/_input_filters.py +98 -0
  72. firecube-0.1.8/src/firecube/cli/_input_sources.py +132 -0
  73. firecube-0.1.8/src/firecube/cli/_product.py +39 -0
  74. firecube-0.1.8/src/firecube/cli/_recovery.py +219 -0
  75. firecube-0.1.8/src/firecube/cli/_typed_options.py +188 -0
  76. firecube-0.1.8/src/firecube/cli/_uri_policy.py +197 -0
  77. firecube-0.1.8/src/firecube/cli/advise.py +331 -0
  78. firecube-0.1.8/src/firecube/cli/archive/__init__.py +59 -0
  79. firecube-0.1.8/src/firecube/cli/archive/_common.py +58 -0
  80. firecube-0.1.8/src/firecube/cli/archive/_create.py +260 -0
  81. firecube-0.1.8/src/firecube/cli/archive/_inspect.py +245 -0
  82. firecube-0.1.8/src/firecube/cli/archive/_restore.py +190 -0
  83. firecube-0.1.8/src/firecube/cli/catalog.py +203 -0
  84. firecube-0.1.8/src/firecube/cli/chunks/_claims.py +242 -0
  85. firecube-0.1.8/src/firecube/cli/chunks/_delete.py +500 -0
  86. firecube-0.1.8/src/firecube/cli/chunks/_list.py +357 -0
  87. firecube-0.1.8/src/firecube/cli/chunks/_manager.py +168 -0
  88. firecube-0.1.8/src/firecube/cli/chunks/_runs.py +347 -0
  89. firecube-0.1.8/src/firecube/cli/index.py +439 -0
  90. firecube-0.1.8/src/firecube/cli/main.py +960 -0
  91. firecube-0.1.8/src/firecube/cli/parquet.py +305 -0
  92. firecube-0.1.8/src/firecube/cli/plugins/commands.py +290 -0
  93. firecube-0.1.8/src/firecube/cli/zarr/_common.py +66 -0
  94. firecube-0.1.8/src/firecube/cli/zarr/_consolidate.py +172 -0
  95. firecube-0.1.8/src/firecube/cli/zarr/_multires.py +161 -0
  96. firecube-0.1.8/src/firecube/cli/zarr/_preallocate.py +304 -0
  97. firecube-0.1.8/src/firecube/cli/zarr/_slots.py +496 -0
  98. firecube-0.1.8/src/firecube/cli/zarr/_validate.py +248 -0
  99. firecube-0.1.8/src/firecube/core/api.py +194 -0
  100. firecube-0.1.8/src/firecube/core/config.py +353 -0
  101. firecube-0.1.8/src/firecube/core/controlplane/_helpers.py +78 -0
  102. firecube-0.1.8/src/firecube/core/controlplane/_projection.py +390 -0
  103. firecube-0.1.8/src/firecube/core/controlplane/_snapshot.py +217 -0
  104. firecube-0.1.8/src/firecube/core/controlplane/claims.py +359 -0
  105. firecube-0.1.8/src/firecube/core/controlplane/deletion.py +1915 -0
  106. firecube-0.1.8/src/firecube/core/controlplane/manager.py +2175 -0
  107. firecube-0.1.8/src/firecube/core/controlplane/repo.py +968 -0
  108. firecube-0.1.8/src/firecube/core/controlplane/repo_utils.py +76 -0
  109. firecube-0.1.8/src/firecube/core/controlplane/time_dim.py +125 -0
  110. firecube-0.1.8/src/firecube/core/controlplane/types.py +850 -0
  111. firecube-0.1.8/src/firecube/core/discovery/__init__.py +132 -0
  112. firecube-0.1.8/src/firecube/core/discovery/_filters.py +108 -0
  113. firecube-0.1.8/src/firecube/core/discovery/_registry.py +52 -0
  114. firecube-0.1.8/src/firecube/core/discovery/_stac.py +239 -0
  115. firecube-0.1.8/src/firecube/core/discovery/_stac_compat.py +39 -0
  116. firecube-0.1.8/src/firecube/core/discovery/_types.py +192 -0
  117. firecube-0.1.8/src/firecube/core/discovery/_walk.py +257 -0
  118. firecube-0.1.8/src/firecube/core/discovery/errors.py +121 -0
  119. firecube-0.1.8/src/firecube/core/duckdb/bridge.py +90 -0
  120. firecube-0.1.8/src/firecube/core/errors.py +630 -0
  121. firecube-0.1.8/src/firecube/core/filesystem/fsspec_backend.py +377 -0
  122. firecube-0.1.8/src/firecube/core/filesystem/obstore_backend.py +456 -0
  123. firecube-0.1.8/src/firecube/core/filesystem/ops.py +488 -0
  124. firecube-0.1.8/src/firecube/core/filesystem/protocol.py +160 -0
  125. firecube-0.1.8/src/firecube/core/filesystem/publication.py +89 -0
  126. firecube-0.1.8/src/firecube/core/filesystem/store_factory.py +191 -0
  127. firecube-0.1.8/src/firecube/core/formats/__init__.py +43 -0
  128. firecube-0.1.8/src/firecube/core/index_resolve.py +867 -0
  129. firecube-0.1.8/src/firecube/core/index_spec.py +815 -0
  130. firecube-0.1.8/src/firecube/core/indexed_write.py +206 -0
  131. firecube-0.1.8/src/firecube/core/intake.py +558 -0
  132. firecube-0.1.8/src/firecube/core/product/resolver.py +127 -0
  133. firecube-0.1.8/src/firecube/core/product/target.py +125 -0
  134. firecube-0.1.8/src/firecube/core/storage/completion.py +402 -0
  135. firecube-0.1.8/src/firecube/core/storage/results.py +31 -0
  136. firecube-0.1.8/src/firecube/core/storage/session.py +902 -0
  137. firecube-0.1.8/src/firecube/core/tensogram/converter.py +465 -0
  138. firecube-0.1.8/src/firecube/core/tensogram/inspection.py +322 -0
  139. firecube-0.1.8/src/firecube/core/tensogram/metadata.py +292 -0
  140. firecube-0.1.8/src/firecube/core/tensogram/restore.py +386 -0
  141. firecube-0.1.8/src/firecube/core/time/__init__.py +23 -0
  142. firecube-0.1.8/src/firecube/core/time/_codecs.py +33 -0
  143. firecube-0.1.8/src/firecube/core/time/calendar.py +194 -0
  144. firecube-0.1.8/src/firecube/core/time/canonical.py +92 -0
  145. firecube-0.1.8/src/firecube/core/time/convert.py +48 -0
  146. firecube-0.1.8/src/firecube/core/time/encode.py +222 -0
  147. firecube-0.1.8/src/firecube/core/time/encoding.py +299 -0
  148. firecube-0.1.8/src/firecube/core/time/gregorian.py +308 -0
  149. firecube-0.1.8/src/firecube/core/time/guard.py +74 -0
  150. firecube-0.1.8/src/firecube/core/uris.py +211 -0
  151. firecube-0.1.8/src/firecube/core/zarr/_coord_common.py +129 -0
  152. firecube-0.1.8/src/firecube/core/zarr/_coord_lifecycle.py +91 -0
  153. firecube-0.1.8/src/firecube/core/zarr/_drift.py +306 -0
  154. firecube-0.1.8/src/firecube/core/zarr/_fill.py +83 -0
  155. firecube-0.1.8/src/firecube/core/zarr/_reserved_attrs.py +109 -0
  156. firecube-0.1.8/src/firecube/core/zarr/_sealing_markers.py +83 -0
  157. firecube-0.1.8/src/firecube/core/zarr/_zarr_compat.py +30 -0
  158. firecube-0.1.8/src/firecube/core/zarr/coord_consolidation.py +770 -0
  159. firecube-0.1.8/src/firecube/core/zarr/coord_materialization.py +772 -0
  160. firecube-0.1.8/src/firecube/core/zarr/coord_rematerialization.py +516 -0
  161. firecube-0.1.8/src/firecube/core/zarr/guard/__init__.py +171 -0
  162. firecube-0.1.8/src/firecube/core/zarr/guard/_layout.py +260 -0
  163. firecube-0.1.8/src/firecube/core/zarr/guard/_unit_locks.py +119 -0
  164. firecube-0.1.8/src/firecube/core/zarr/guard/chunk_geometry.py +486 -0
  165. firecube-0.1.8/src/firecube/core/zarr/guard/engine_owned.py +699 -0
  166. firecube-0.1.8/src/firecube/core/zarr/guard/guarded_write.py +492 -0
  167. firecube-0.1.8/src/firecube/core/zarr/guard/metadata_authority.py +794 -0
  168. firecube-0.1.8/src/firecube/core/zarr/guard/promotion_plan.py +215 -0
  169. firecube-0.1.8/src/firecube/core/zarr/guard/unit_ownership.py +393 -0
  170. firecube-0.1.8/src/firecube/core/zarr/io.py +98 -0
  171. firecube-0.1.8/src/firecube/core/zarr/layers.py +221 -0
  172. firecube-0.1.8/src/firecube/core/zarr/multires.py +190 -0
  173. firecube-0.1.8/src/firecube/core/zarr/planning.py +373 -0
  174. firecube-0.1.8/src/firecube/core/zarr/region_writer.py +1606 -0
  175. firecube-0.1.8/src/firecube/core/zarr/state.py +295 -0
  176. firecube-0.1.8/src/firecube/core/zarr/time_decode.py +161 -0
  177. firecube-0.1.8/src/firecube/core/zarr/validation.py +1530 -0
  178. firecube-0.1.8/src/firecube/core/zarr/zip_archive.py +499 -0
  179. firecube-0.1.8/src/firecube/ingestor/config/coercion.py +186 -0
  180. firecube-0.1.8/src/firecube/ingestor/config/engine.py +273 -0
  181. firecube-0.1.8/src/firecube/ingestor/contracts/interfaces.py +396 -0
  182. firecube-0.1.8/src/firecube/ingestor/devtools/_templates/readme.md.tpl +88 -0
  183. firecube-0.1.8/src/firecube/ingestor/devtools/scaffolding.py +459 -0
  184. firecube-0.1.8/src/firecube/ingestor/errors.py +323 -0
  185. firecube-0.1.8/src/firecube/ingestor/runtime/archive.py +639 -0
  186. firecube-0.1.8/src/firecube/ingestor/runtime/base.py +1311 -0
  187. firecube-0.1.8/src/firecube/ingestor/runtime/batching.py +216 -0
  188. firecube-0.1.8/src/firecube/ingestor/runtime/configure.py +280 -0
  189. firecube-0.1.8/src/firecube/ingestor/runtime/engine.py +1051 -0
  190. firecube-0.1.8/src/firecube/ingestor/runtime/index_binding.py +358 -0
  191. firecube-0.1.8/src/firecube/ingestor/runtime/index_record.py +404 -0
  192. firecube-0.1.8/src/firecube/ingestor/runtime/parallel_gate.py +270 -0
  193. firecube-0.1.8/src/firecube/ingestor/runtime/preallocate.py +1211 -0
  194. firecube-0.1.8/src/firecube/ingestor/runtime/recording.py +712 -0
  195. firecube-0.1.8/src/firecube/ingestor/runtime/resume_guard.py +773 -0
  196. firecube-0.1.8/src/firecube/ingestor/runtime/slot_plan.py +516 -0
  197. firecube-0.1.8/src/firecube/ingestor/runtime/telemetry.py +163 -0
  198. firecube-0.1.8/src/firecube/ingestor/runtime/workspace.py +290 -0
  199. firecube-0.1.8/src/firecube/ingestor/runtime/zarr/append.py +1144 -0
  200. firecube-0.1.8/src/firecube/ingestor/runtime/zarr/append_failure.py +289 -0
  201. firecube-0.1.8/src/firecube/ingestor/runtime/zarr/append_order.py +145 -0
  202. firecube-0.1.8/src/firecube/ingestor/runtime/zarr/append_services.py +1419 -0
  203. firecube-0.1.8/src/firecube/ingestor/runtime/zarr/batch_runner.py +260 -0
  204. firecube-0.1.8/src/firecube/ingestor/runtime/zarr/direct_region_adapter.py +420 -0
  205. firecube-0.1.8/src/firecube/ingestor/runtime/zarr/existing_cube_check.py +297 -0
  206. firecube-0.1.8/src/firecube/ingestor/runtime/zarr/root_group.py +68 -0
  207. firecube-0.1.8/src/firecube/ingestor/runtime/zarr/schema.py +256 -0
  208. firecube-0.1.8/src/firecube/ingestor/runtime/zarr/staged_metadata.py +616 -0
  209. firecube-0.1.8/src/firecube/ingestor/runtime/zarr/strategies/indexed_region.py +1339 -0
  210. firecube-0.1.8/src/firecube/ingestor/runtime/zarr/write.py +690 -0
  211. firecube-0.1.8/src/firecube/ingestor/runtime/zarr/write_session.py +762 -0
  212. firecube-0.1.8/src/firecube/ingestor/templates/config.py +366 -0
  213. firecube-0.1.8/src/firecube/ingestor/templates/direct_zarr.py +1924 -0
  214. firecube-0.1.8/src/firecube/ingestor/templates/generic.py +701 -0
  215. firecube-0.1.8/src/firecube/ingestor/templates/generic_tensogram.py +195 -0
  216. firecube-0.1.8/src/firecube/ingestor/types/context.py +626 -0
  217. firecube-0.1.8/src/firecube/ingestor/types/planned_range.py +176 -0
  218. firecube-0.1.8/tests/README.md +112 -0
  219. firecube-0.1.8/tests/architecture/conftest.py +27 -0
  220. firecube-0.1.8/tests/architecture/test_cli_boundary.py +407 -0
  221. firecube-0.1.8/tests/architecture/test_core_independence.py +72 -0
  222. firecube-0.1.8/tests/architecture/test_fixture_plugin_list_consistency.py +206 -0
  223. firecube-0.1.8/tests/architecture/test_import_boundaries.py +149 -0
  224. firecube-0.1.8/tests/architecture/test_no_cli_inference.py +146 -0
  225. firecube-0.1.8/tests/architecture/test_no_naked_fill_value_comparison.py +140 -0
  226. firecube-0.1.8/tests/architecture/test_storage_flows.py +714 -0
  227. firecube-0.1.8/tests/cli/test_archive_artifact_uri_contract.py +116 -0
  228. firecube-0.1.8/tests/cli/test_archive_create_contract.py +179 -0
  229. firecube-0.1.8/tests/cli/test_archive_restore_contract.py +90 -0
  230. firecube-0.1.8/tests/cli/test_audience_groups.py +92 -0
  231. firecube-0.1.8/tests/cli/test_catalog_intake_contract.py +195 -0
  232. firecube-0.1.8/tests/cli/test_chunks_delete_record_only.py +96 -0
  233. firecube-0.1.8/tests/cli/test_chunks_manager_typed.py +166 -0
  234. firecube-0.1.8/tests/cli/test_chunks_storage_banner.py +117 -0
  235. firecube-0.1.8/tests/cli/test_click_error_boundary.py +163 -0
  236. firecube-0.1.8/tests/cli/test_ingest_decorator_consistency.py +116 -0
  237. firecube-0.1.8/tests/cli/test_parquet_consolidate_output_artifact.py +68 -0
  238. firecube-0.1.8/tests/cli/test_range_help_names_axis.py +153 -0
  239. firecube-0.1.8/tests/cli/test_rename_hints.py +109 -0
  240. firecube-0.1.8/tests/cli/test_uri_policy_stac.py +131 -0
  241. firecube-0.1.8/tests/cli/test_uri_scheme_policy.py +139 -0
  242. firecube-0.1.8/tests/cli/test_zarr_multires_contract.py +208 -0
  243. firecube-0.1.8/tests/cli/test_zarr_validate_contract.py +126 -0
  244. firecube-0.1.8/tests/cli/test_zarr_validate_static_marker.py +78 -0
  245. firecube-0.1.8/tests/conftest.py +291 -0
  246. firecube-0.1.8/tests/fixtures/firecube_test_plugins/pyproject.toml +55 -0
  247. firecube-0.1.8/tests/fixtures/firecube_test_plugins/src/cf_time_dim_test_plugin/ingestor.py +198 -0
  248. firecube-0.1.8/tests/fixtures/firecube_test_plugins/src/irregular_axis_test_plugin/__init__.py +337 -0
  249. firecube-0.1.8/tests/fixtures/firecube_test_plugins/src/regular_axis_test_plugin/__init__.py +413 -0
  250. firecube-0.1.8/tests/fixtures/firecube_test_plugins/src/w14_single_discovery_plugin/__init__.py +95 -0
  251. firecube-0.1.8/tests/helpers/cli_hints.py +52 -0
  252. firecube-0.1.8/tests/helpers/contention.py +133 -0
  253. firecube-0.1.8/tests/helpers/fake_stac.py +221 -0
  254. firecube-0.1.8/tests/helpers/rows.py +91 -0
  255. firecube-0.1.8/tests/helpers/storage.py +203 -0
  256. firecube-0.1.8/tests/helpers/test_storage_helpers.py +241 -0
  257. firecube-0.1.8/tests/integration/_staged_helpers.py +138 -0
  258. firecube-0.1.8/tests/integration/test_alignment_cli.py +145 -0
  259. firecube-0.1.8/tests/integration/test_append_failure_messages.py +338 -0
  260. firecube-0.1.8/tests/integration/test_append_group_attrs_first_write_wins.py +116 -0
  261. firecube-0.1.8/tests/integration/test_append_static_var_drift_raises.py +302 -0
  262. firecube-0.1.8/tests/integration/test_architecture_invariants.py +522 -0
  263. firecube-0.1.8/tests/integration/test_byte_parity_existing_indexes.py +168 -0
  264. firecube-0.1.8/tests/integration/test_callable_payload_integration.py +184 -0
  265. firecube-0.1.8/tests/integration/test_cf_time_dim_value_dedup.py +183 -0
  266. firecube-0.1.8/tests/integration/test_chunk_ownership_races.py +88 -0
  267. firecube-0.1.8/tests/integration/test_cli_chunks_runs_target.py +379 -0
  268. firecube-0.1.8/tests/integration/test_cli_fresh_target_ingest.py +149 -0
  269. firecube-0.1.8/tests/integration/test_cli_index_rebuild.py +654 -0
  270. firecube-0.1.8/tests/integration/test_cli_index_show.py +191 -0
  271. firecube-0.1.8/tests/integration/test_cli_index_verify.py +465 -0
  272. firecube-0.1.8/tests/integration/test_cli_inference_baseline.py +79 -0
  273. firecube-0.1.8/tests/integration/test_cli_input_data_presence.py +275 -0
  274. firecube-0.1.8/tests/integration/test_cli_zarr_preallocate.py +127 -0
  275. firecube-0.1.8/tests/integration/test_cli_zarr_preallocate_slot_index.py +235 -0
  276. firecube-0.1.8/tests/integration/test_cli_zarr_preallocate_spec_attrs.py +342 -0
  277. firecube-0.1.8/tests/integration/test_compat_matrix.py +129 -0
  278. firecube-0.1.8/tests/integration/test_concurrent_same_product.py +314 -0
  279. firecube-0.1.8/tests/integration/test_consolidate_custom_time_dim.py +171 -0
  280. firecube-0.1.8/tests/integration/test_consolidate_error_wrapping.py +78 -0
  281. firecube-0.1.8/tests/integration/test_consolidate_time_coord_command.py +539 -0
  282. firecube-0.1.8/tests/integration/test_crash_recovery_bulk_sweep.py +415 -0
  283. firecube-0.1.8/tests/integration/test_cross_regime_marker_refusals.py +186 -0
  284. firecube-0.1.8/tests/integration/test_delete_span_collateral_guard.py +308 -0
  285. firecube-0.1.8/tests/integration/test_delete_span_region_nan_fill.py +920 -0
  286. firecube-0.1.8/tests/integration/test_direct_zarr_codec_cli_routing.py +162 -0
  287. firecube-0.1.8/tests/integration/test_direct_zarr_codec_end_to_end.py +231 -0
  288. firecube-0.1.8/tests/integration/test_direct_zarr_resolved_index.py +314 -0
  289. firecube-0.1.8/tests/integration/test_direct_zarr_shard_sharing_reproduction.py +78 -0
  290. firecube-0.1.8/tests/integration/test_discovery_obstore_single_object.py +75 -0
  291. firecube-0.1.8/tests/integration/test_e2e_time_dim_plugin.py +237 -0
  292. firecube-0.1.8/tests/integration/test_e2e_zarr_ingest_preflight_wiring.py +379 -0
  293. firecube-0.1.8/tests/integration/test_engine_ingest_with_peer_run.py +443 -0
  294. firecube-0.1.8/tests/integration/test_engine_owned_arrays.py +356 -0
  295. firecube-0.1.8/tests/integration/test_existing_cube_check_parallel_path.py +120 -0
  296. firecube-0.1.8/tests/integration/test_existing_cube_mismatch.py +321 -0
  297. firecube-0.1.8/tests/integration/test_force_reingest_region_overwrite.py +190 -0
  298. firecube-0.1.8/tests/integration/test_force_reingest_state.py +737 -0
  299. firecube-0.1.8/tests/integration/test_generic_zarr_codec_cli_defaults.py +173 -0
  300. firecube-0.1.8/tests/integration/test_generic_zarr_static_vars_span.py +226 -0
  301. firecube-0.1.8/tests/integration/test_horizon_growth_rejects_shape_drift.py +197 -0
  302. firecube-0.1.8/tests/integration/test_indexed_write_pipeline.py +569 -0
  303. firecube-0.1.8/tests/integration/test_ingest_command_typed.py +198 -0
  304. firecube-0.1.8/tests/integration/test_ingest_stac_options.py +626 -0
  305. firecube-0.1.8/tests/integration/test_input_filters_cli.py +229 -0
  306. firecube-0.1.8/tests/integration/test_integer_axis_e2e.py +207 -0
  307. firecube-0.1.8/tests/integration/test_irregular_axis_pipeline.py +486 -0
  308. firecube-0.1.8/tests/integration/test_irregular_coord_materialization.py +247 -0
  309. firecube-0.1.8/tests/integration/test_legacy_slot_index_detection.py +281 -0
  310. firecube-0.1.8/tests/integration/test_maintenance_audit.py +501 -0
  311. firecube-0.1.8/tests/integration/test_maintenance_claims.py +531 -0
  312. firecube-0.1.8/tests/integration/test_manifest_explicit_null.py +233 -0
  313. firecube-0.1.8/tests/integration/test_marker_lifecycle.py +194 -0
  314. firecube-0.1.8/tests/integration/test_multiprocess_race_managed_coord.py +266 -0
  315. firecube-0.1.8/tests/integration/test_nd_region_pipeline.py +283 -0
  316. firecube-0.1.8/tests/integration/test_obstore_claim_atomicity.py +240 -0
  317. firecube-0.1.8/tests/integration/test_off_grid_floor_ingest_e2e.py +334 -0
  318. firecube-0.1.8/tests/integration/test_parallel_materialize.py +405 -0
  319. firecube-0.1.8/tests/integration/test_parquet_drivers.py +234 -0
  320. firecube-0.1.8/tests/integration/test_phase3_5_blocked_ranges.py +138 -0
  321. firecube-0.1.8/tests/integration/test_planner_window_alignment.py +236 -0
  322. firecube-0.1.8/tests/integration/test_plugin_config_validated.py +142 -0
  323. firecube-0.1.8/tests/integration/test_post_write_integrity_guard.py +222 -0
  324. firecube-0.1.8/tests/integration/test_preallocate_auto_rebuild.py +162 -0
  325. firecube-0.1.8/tests/integration/test_preallocate_claim_release_on_terminal_failure.py +417 -0
  326. firecube-0.1.8/tests/integration/test_preallocate_empty_discovery.py +196 -0
  327. firecube-0.1.8/tests/integration/test_preallocate_error_wrapping.py +151 -0
  328. firecube-0.1.8/tests/integration/test_preallocate_idempotent.py +458 -0
  329. firecube-0.1.8/tests/integration/test_preallocate_marker_at_creation.py +228 -0
  330. firecube-0.1.8/tests/integration/test_preallocate_recovery.py +412 -0
  331. firecube-0.1.8/tests/integration/test_preallocate_regular_axis_dense.py +700 -0
  332. firecube-0.1.8/tests/integration/test_preallocate_release_failure.py +265 -0
  333. firecube-0.1.8/tests/integration/test_preallocate_slot_group_env.py +333 -0
  334. firecube-0.1.8/tests/integration/test_resolved_index_precedence_matrix.py +305 -0
  335. firecube-0.1.8/tests/integration/test_resume_refills_state2_hole.py +159 -0
  336. firecube-0.1.8/tests/integration/test_run_terminal_slot_preservation.py +240 -0
  337. firecube-0.1.8/tests/integration/test_serial_peer_blocks_materializer.py +181 -0
  338. firecube-0.1.8/tests/integration/test_serial_unbounded_axis.py +150 -0
  339. firecube-0.1.8/tests/integration/test_slots_auto_input_data.py +133 -0
  340. firecube-0.1.8/tests/integration/test_staged_mode_template_parity.py +572 -0
  341. firecube-0.1.8/tests/integration/test_staged_partial_chunk_preserves_data.py +541 -0
  342. firecube-0.1.8/tests/integration/test_staged_retains_all_batches.py +214 -0
  343. firecube-0.1.8/tests/integration/test_storage_driver_integration.py +264 -0
  344. firecube-0.1.8/tests/integration/test_stored_chunk_coverage.py +120 -0
  345. firecube-0.1.8/tests/integration/test_tensogram_archive.py +560 -0
  346. firecube-0.1.8/tests/integration/test_timestamps_skipped_surfaces.py +178 -0
  347. firecube-0.1.8/tests/integration/test_upload_tree_hard_fail.py +254 -0
  348. firecube-0.1.8/tests/integration/test_zarr_default_compressed_resume.py +182 -0
  349. firecube-0.1.8/tests/integration/test_zarr_index_show_derived.py +262 -0
  350. firecube-0.1.8/tests/integration/test_zarr_preallocate_dry_run.py +146 -0
  351. firecube-0.1.8/tests/integration/test_zero_input_no_firecube_created.py +169 -0
  352. firecube-0.1.8/tests/unit/_helpers/counting_fs.py +128 -0
  353. firecube-0.1.8/tests/unit/ingestor/extensions/test_grid.py +81 -0
  354. firecube-0.1.8/tests/unit/ingestor/extensions/test_healpix.py +153 -0
  355. firecube-0.1.8/tests/unit/test_advise_cli.py +104 -0
  356. firecube-0.1.8/tests/unit/test_anonymous_config_file.py +80 -0
  357. firecube-0.1.8/tests/unit/test_anonymous_env.py +93 -0
  358. firecube-0.1.8/tests/unit/test_append_coverage_builder_time_decode.py +173 -0
  359. firecube-0.1.8/tests/unit/test_append_overwrite_errors.py +108 -0
  360. firecube-0.1.8/tests/unit/test_append_region_overwrite.py +271 -0
  361. firecube-0.1.8/tests/unit/test_append_regression.py +405 -0
  362. firecube-0.1.8/tests/unit/test_append_stale_consolidated_metadata.py +259 -0
  363. firecube-0.1.8/tests/unit/test_append_state_aware_overlap.py +271 -0
  364. firecube-0.1.8/tests/unit/test_append_write_executor.py +133 -0
  365. firecube-0.1.8/tests/unit/test_as_resolved_index_record.py +224 -0
  366. firecube-0.1.8/tests/unit/test_bare_glob_via_coerce.py +85 -0
  367. firecube-0.1.8/tests/unit/test_base_aggregate_contract.py +131 -0
  368. firecube-0.1.8/tests/unit/test_batching_metadata.py +81 -0
  369. firecube-0.1.8/tests/unit/test_bulk_abandon_stale_runs.py +879 -0
  370. firecube-0.1.8/tests/unit/test_bulk_clear_stale_claims.py +548 -0
  371. firecube-0.1.8/tests/unit/test_catalog_intake.py +292 -0
  372. firecube-0.1.8/tests/unit/test_cf_validator.py +334 -0
  373. firecube-0.1.8/tests/unit/test_chunk_geometry.py +205 -0
  374. firecube-0.1.8/tests/unit/test_chunk_manager.py +798 -0
  375. firecube-0.1.8/tests/unit/test_chunk_manager_queries.py +303 -0
  376. firecube-0.1.8/tests/unit/test_chunk_manager_resolved_index.py +244 -0
  377. firecube-0.1.8/tests/unit/test_chunk_manager_slot_index.py +515 -0
  378. firecube-0.1.8/tests/unit/test_chunks_list_cli.py +199 -0
  379. firecube-0.1.8/tests/unit/test_claims_clear_product_mismatch.py +188 -0
  380. firecube-0.1.8/tests/unit/test_cli_archive_safety.py +309 -0
  381. firecube-0.1.8/tests/unit/test_cli_chunks_delete.py +396 -0
  382. firecube-0.1.8/tests/unit/test_cli_completion.py +46 -0
  383. firecube-0.1.8/tests/unit/test_cli_errors.py +80 -0
  384. firecube-0.1.8/tests/unit/test_cli_output_options.py +119 -0
  385. firecube-0.1.8/tests/unit/test_cli_runs_all_stale.py +218 -0
  386. firecube-0.1.8/tests/unit/test_cli_slot_planning.py +134 -0
  387. firecube-0.1.8/tests/unit/test_cli_zarr_preallocate.py +395 -0
  388. firecube-0.1.8/tests/unit/test_cli_zarr_preallocate_static.py +56 -0
  389. firecube-0.1.8/tests/unit/test_cli_zarr_slots.py +672 -0
  390. firecube-0.1.8/tests/unit/test_codec_semantic_matrix.py +226 -0
  391. firecube-0.1.8/tests/unit/test_coerce_append_value.py +56 -0
  392. firecube-0.1.8/tests/unit/test_compare_zarr_stores.py +269 -0
  393. firecube-0.1.8/tests/unit/test_compute_schema_hash.py +174 -0
  394. firecube-0.1.8/tests/unit/test_config.py +39 -0
  395. firecube-0.1.8/tests/unit/test_config_file_strict.py +171 -0
  396. firecube-0.1.8/tests/unit/test_context_hook_signature_validation.py +83 -0
  397. firecube-0.1.8/tests/unit/test_controlplane_types.py +284 -0
  398. firecube-0.1.8/tests/unit/test_coord_chunks.py +53 -0
  399. firecube-0.1.8/tests/unit/test_coord_lifecycle.py +80 -0
  400. firecube-0.1.8/tests/unit/test_coord_rematerialization.py +136 -0
  401. firecube-0.1.8/tests/unit/test_coverage_tracker.py +161 -0
  402. firecube-0.1.8/tests/unit/test_credentials.py +60 -0
  403. firecube-0.1.8/tests/unit/test_default_suffixes_include_common_hdf5_families.py +41 -0
  404. firecube-0.1.8/tests/unit/test_deletion_alignment_from_store.py +603 -0
  405. firecube-0.1.8/tests/unit/test_deletion_engine_errors.py +68 -0
  406. firecube-0.1.8/tests/unit/test_deletion_fill_value.py +226 -0
  407. firecube-0.1.8/tests/unit/test_deletion_missing_key_not_error.py +139 -0
  408. firecube-0.1.8/tests/unit/test_deletion_time_dim_resolution.py +393 -0
  409. firecube-0.1.8/tests/unit/test_direct_zarr_ingestor.py +708 -0
  410. firecube-0.1.8/tests/unit/test_direct_zarr_parallel_contract.py +59 -0
  411. firecube-0.1.8/tests/unit/test_direct_zarr_per_slot_claims.py +775 -0
  412. firecube-0.1.8/tests/unit/test_direct_zarr_slot_index_subclass.py +107 -0
  413. firecube-0.1.8/tests/unit/test_direct_zarr_time_dim_wiring.py +213 -0
  414. firecube-0.1.8/tests/unit/test_discover_empty_source_fails.py +193 -0
  415. firecube-0.1.8/tests/unit/test_discovery_file_uri_hdf5_sniff.py +64 -0
  416. firecube-0.1.8/tests/unit/test_discovery_stac.py +267 -0
  417. firecube-0.1.8/tests/unit/test_driver_parity_deletion.py +389 -0
  418. firecube-0.1.8/tests/unit/test_driver_parity_zarr_to_tgm.py +85 -0
  419. firecube-0.1.8/tests/unit/test_duckdb_bridge.py +131 -0
  420. firecube-0.1.8/tests/unit/test_duckdb_capability_check.py +160 -0
  421. firecube-0.1.8/tests/unit/test_engine_config_slot_group_warning.py +50 -0
  422. firecube-0.1.8/tests/unit/test_engine_fail_stop.py +325 -0
  423. firecube-0.1.8/tests/unit/test_engine_failure_handling.py +139 -0
  424. firecube-0.1.8/tests/unit/test_engine_resilience.py +308 -0
  425. firecube-0.1.8/tests/unit/test_engine_sequential_slot_filter_call.py +181 -0
  426. firecube-0.1.8/tests/unit/test_engine_time_dim_hook.py +68 -0
  427. firecube-0.1.8/tests/unit/test_epoch_parse_helper.py +62 -0
  428. firecube-0.1.8/tests/unit/test_filesystem_capabilities.py +123 -0
  429. firecube-0.1.8/tests/unit/test_fsspec_atomic_writer.py +395 -0
  430. firecube-0.1.8/tests/unit/test_generic_template_logging.py +108 -0
  431. firecube-0.1.8/tests/unit/test_global_expected_coverage.py +303 -0
  432. firecube-0.1.8/tests/unit/test_group_identity_hash.py +183 -0
  433. firecube-0.1.8/tests/unit/test_index_binding_filter.py +121 -0
  434. firecube-0.1.8/tests/unit/test_index_ensured_event.py +86 -0
  435. firecube-0.1.8/tests/unit/test_index_ensured_telemetry.py +386 -0
  436. firecube-0.1.8/tests/unit/test_index_resolve_byte_parity.py +96 -0
  437. firecube-0.1.8/tests/unit/test_index_resolve_irregular.py +149 -0
  438. firecube-0.1.8/tests/unit/test_index_spec.py +105 -0
  439. firecube-0.1.8/tests/unit/test_indexed_region_custom_dim.py +93 -0
  440. firecube-0.1.8/tests/unit/test_indexed_region_schema_claim.py +99 -0
  441. firecube-0.1.8/tests/unit/test_indexed_region_slot_group.py +217 -0
  442. firecube-0.1.8/tests/unit/test_indexed_region_static_dispatch.py +400 -0
  443. firecube-0.1.8/tests/unit/test_indexed_region_strategy_ordering.py +108 -0
  444. firecube-0.1.8/tests/unit/test_indexed_write.py +128 -0
  445. firecube-0.1.8/tests/unit/test_indexed_write_compile.py +246 -0
  446. firecube-0.1.8/tests/unit/test_indexed_write_compile_matrix.py +393 -0
  447. firecube-0.1.8/tests/unit/test_indexed_write_exception.py +82 -0
  448. firecube-0.1.8/tests/unit/test_ingest_command_config.py +148 -0
  449. firecube-0.1.8/tests/unit/test_input_filters.py +207 -0
  450. firecube-0.1.8/tests/unit/test_intake_catalog_entry_args.py +71 -0
  451. firecube-0.1.8/tests/unit/test_integer_axis.py +82 -0
  452. firecube-0.1.8/tests/unit/test_integer_resolver.py +75 -0
  453. firecube-0.1.8/tests/unit/test_list_runs_is_wal_scan_free_after_terminal.py +122 -0
  454. firecube-0.1.8/tests/unit/test_manifest_repo_cache.py +63 -0
  455. firecube-0.1.8/tests/unit/test_materialize_irregular_coord_array.py +304 -0
  456. firecube-0.1.8/tests/unit/test_materialize_regular_coord_array.py +323 -0
  457. firecube-0.1.8/tests/unit/test_nd_region_writes.py +150 -0
  458. firecube-0.1.8/tests/unit/test_netcdf_utils.py +363 -0
  459. firecube-0.1.8/tests/unit/test_no_raw_fsspec_usage.py +900 -0
  460. firecube-0.1.8/tests/unit/test_otel_lifecycle.py +159 -0
  461. firecube-0.1.8/tests/unit/test_output_name_rejected.py +61 -0
  462. firecube-0.1.8/tests/unit/test_parallel_gate_slot_group.py +161 -0
  463. firecube-0.1.8/tests/unit/test_parallel_run_id.py +48 -0
  464. firecube-0.1.8/tests/unit/test_parallel_run_id_path_safety.py +49 -0
  465. firecube-0.1.8/tests/unit/test_parallel_schema_sizing.py +268 -0
  466. firecube-0.1.8/tests/unit/test_per_array_codec_override.py +130 -0
  467. firecube-0.1.8/tests/unit/test_pipeline_result_typed_metrics.py +91 -0
  468. firecube-0.1.8/tests/unit/test_planned_range.py +74 -0
  469. firecube-0.1.8/tests/unit/test_plugin_context_sources.py +189 -0
  470. firecube-0.1.8/tests/unit/test_plugin_scaffolding.py +587 -0
  471. firecube-0.1.8/tests/unit/test_pod_startup_phantom_group.py +220 -0
  472. firecube-0.1.8/tests/unit/test_pod_startup_schema_verification.py +264 -0
  473. firecube-0.1.8/tests/unit/test_pre_batch_filter.py +281 -0
  474. firecube-0.1.8/tests/unit/test_product_resolver.py +53 -0
  475. firecube-0.1.8/tests/unit/test_product_target.py +179 -0
  476. firecube-0.1.8/tests/unit/test_ranges_overlap_helper.py +32 -0
  477. firecube-0.1.8/tests/unit/test_read_hdf5_array_dtype.py +90 -0
  478. firecube-0.1.8/tests/unit/test_region_zarr_writer.py +870 -0
  479. firecube-0.1.8/tests/unit/test_resume_guard.py +256 -0
  480. firecube-0.1.8/tests/unit/test_resume_guard_enforce_op_counts.py +169 -0
  481. firecube-0.1.8/tests/unit/test_resume_guard_group_aware.py +111 -0
  482. firecube-0.1.8/tests/unit/test_resume_guard_slot_ranges.py +155 -0
  483. firecube-0.1.8/tests/unit/test_run_id_slot_parser.py +85 -0
  484. firecube-0.1.8/tests/unit/test_schema_verification_audit.py +96 -0
  485. firecube-0.1.8/tests/unit/test_seed_touched_data_chunks.py +351 -0
  486. firecube-0.1.8/tests/unit/test_serial_unbounded_axis.py +136 -0
  487. firecube-0.1.8/tests/unit/test_session_upload_tree.py +1067 -0
  488. firecube-0.1.8/tests/unit/test_setup_global_zarr_schema_concurrent.py +209 -0
  489. firecube-0.1.8/tests/unit/test_slot_index_model.py +209 -0
  490. firecube-0.1.8/tests/unit/test_slot_index_record.py +263 -0
  491. firecube-0.1.8/tests/unit/test_state_dim_threading.py +112 -0
  492. firecube-0.1.8/tests/unit/test_storage_cache_key.py +96 -0
  493. firecube-0.1.8/tests/unit/test_storage_completion.py +1041 -0
  494. firecube-0.1.8/tests/unit/test_storage_config_anonymous.py +214 -0
  495. firecube-0.1.8/tests/unit/test_storage_errors.py +78 -0
  496. firecube-0.1.8/tests/unit/test_storage_metadata.py +220 -0
  497. firecube-0.1.8/tests/unit/test_telemetry_schema_snapshot.py +94 -0
  498. firecube-0.1.8/tests/unit/test_tensogram_cli.py +103 -0
  499. firecube-0.1.8/tests/unit/test_tensogram_core.py +665 -0
  500. firecube-0.1.8/tests/unit/test_tensogram_ingest.py +170 -0
  501. firecube-0.1.8/tests/unit/test_tensogram_input.py +77 -0
  502. firecube-0.1.8/tests/unit/test_tensogram_time_dim.py +141 -0
  503. firecube-0.1.8/tests/unit/test_time_axis_declaration.py +208 -0
  504. firecube-0.1.8/tests/unit/test_time_coord_consolidations_scan.py +323 -0
  505. firecube-0.1.8/tests/unit/test_time_decode.py +184 -0
  506. firecube-0.1.8/tests/unit/test_time_encode.py +187 -0
  507. firecube-0.1.8/tests/unit/test_typed_options_param.py +92 -0
  508. firecube-0.1.8/tests/unit/test_unsorted_existing_refused.py +144 -0
  509. firecube-0.1.8/tests/unit/test_uri_handling.py +182 -0
  510. firecube-0.1.8/tests/unit/test_uris.py +79 -0
  511. firecube-0.1.8/tests/unit/test_validate_chunk_alignment_terminal.py +55 -0
  512. firecube-0.1.8/tests/unit/test_validate_directzarr_passes.py +149 -0
  513. firecube-0.1.8/tests/unit/test_validate_time_coord_uniqueness.py +196 -0
  514. firecube-0.1.8/tests/unit/test_validate_zarr_specs_against_template.py +96 -0
  515. firecube-0.1.8/tests/unit/test_verify_array_spec.py +298 -0
  516. firecube-0.1.8/tests/unit/test_verify_array_spec_codec_drift.py +74 -0
  517. firecube-0.1.8/tests/unit/test_wal_reader_run_id_safety.py +111 -0
  518. firecube-0.1.8/tests/unit/test_workspace_manager.py +110 -0
  519. firecube-0.1.8/tests/unit/test_write_intent_kinds.py +28 -0
  520. firecube-0.1.8/tests/unit/test_write_mode_policy.py +239 -0
  521. firecube-0.1.8/tests/unit/test_writeintent_callable_dispatch.py +409 -0
  522. firecube-0.1.8/tests/unit/test_zarr_array_spec_codec_fields.py +58 -0
  523. firecube-0.1.8/tests/unit/test_zarr_array_spec_new_fields.py +133 -0
  524. firecube-0.1.8/tests/unit/test_zarr_codec_mutual_exclusion.py +57 -0
  525. firecube-0.1.8/tests/unit/test_zarr_drift.py +297 -0
  526. firecube-0.1.8/tests/unit/test_zarr_encoding_time_chunk_honored.py +157 -0
  527. firecube-0.1.8/tests/unit/test_zarr_fill.py +80 -0
  528. firecube-0.1.8/tests/unit/test_zarr_group_attrs.py +827 -0
  529. firecube-0.1.8/tests/unit/test_zarr_multi_res_config_rejected.py +108 -0
  530. firecube-0.1.8/tests/unit/test_zarr_staged_metadata.py +704 -0
  531. firecube-0.1.8/tests/unit/test_zarr_validation.py +240 -0
  532. firecube-0.1.8/tests/unit/test_zarr_write_context.py +134 -0
  533. firecube-0.1.8/tests/unit/test_zarr_write_empty_chunks.py +488 -0
  534. firecube-0.1.8/uv.lock +4653 -0
  535. firecube-0.1.7/.github/PULL_REQUEST_TEMPLATE.md +0 -50
  536. firecube-0.1.7/.prompts/make-release.md +0 -249
  537. firecube-0.1.7/AGENTS.md +0 -146
  538. firecube-0.1.7/CHANGELOG.md +0 -847
  539. firecube-0.1.7/CONTRIBUTING.md +0 -256
  540. firecube-0.1.7/PKG-INFO +0 -253
  541. firecube-0.1.7/README.md +0 -196
  542. firecube-0.1.7/docs/concepts/glossary.md +0 -65
  543. firecube-0.1.7/docs/concepts/observability/logs.md +0 -73
  544. firecube-0.1.7/docs/concepts/observability/traces.md +0 -86
  545. firecube-0.1.7/docs/concepts/orchestration/retries.md +0 -73
  546. firecube-0.1.7/docs/concepts/orchestration.md +0 -51
  547. firecube-0.1.7/docs/concepts/output-formats/zarr/direct-region.md +0 -154
  548. firecube-0.1.7/docs/concepts/output-formats/zarr/parallel-writes.md +0 -91
  549. firecube-0.1.7/docs/concepts/performance.md +0 -165
  550. firecube-0.1.7/docs/concepts/production-guide.md +0 -162
  551. firecube-0.1.7/docs/concepts/storage.md +0 -100
  552. firecube-0.1.7/docs/contributing/firecube-contributors.md +0 -159
  553. firecube-0.1.7/docs/guides/plugins/add-config-options.md +0 -142
  554. firecube-0.1.7/docs/guides/plugins/base-ingestor.md +0 -147
  555. firecube-0.1.7/docs/guides/plugins/configure-zarr-chunking.md +0 -129
  556. firecube-0.1.7/docs/guides/plugins/configure-zarr-compression.md +0 -123
  557. firecube-0.1.7/docs/guides/plugins/configure-zarr-sharding.md +0 -106
  558. firecube-0.1.7/docs/guides/plugins/direct-zarr-auto.md +0 -195
  559. firecube-0.1.7/docs/guides/plugins/direct-zarr.md +0 -250
  560. firecube-0.1.7/docs/guides/plugins/discover-zipped-data.md +0 -83
  561. firecube-0.1.7/docs/guides/plugins/generic-parquet.md +0 -116
  562. firecube-0.1.7/docs/guides/plugins/generic-zarr.md +0 -224
  563. firecube-0.1.7/docs/guides/plugins/multi-group-writes.md +0 -77
  564. firecube-0.1.7/docs/guides/plugins/paired-source-files.md +0 -200
  565. firecube-0.1.7/docs/guides/plugins/parse-filename-fields.md +0 -233
  566. firecube-0.1.7/docs/guides/plugins/source-discovery.md +0 -118
  567. firecube-0.1.7/docs/index.md +0 -66
  568. firecube-0.1.7/docs/operations/archive/create.md +0 -92
  569. firecube-0.1.7/docs/operations/archive/index.md +0 -43
  570. firecube-0.1.7/docs/operations/archive/inspect.md +0 -106
  571. firecube-0.1.7/docs/operations/archive/restore.md +0 -86
  572. firecube-0.1.7/docs/operations/chunk-manager/delete.md +0 -248
  573. firecube-0.1.7/docs/operations/chunk-manager/index.md +0 -64
  574. firecube-0.1.7/docs/operations/chunk-manager/post-crash-recovery.md +0 -206
  575. firecube-0.1.7/docs/operations/chunk-manager/recover.md +0 -220
  576. firecube-0.1.7/docs/operations/firecube-index.md +0 -178
  577. firecube-0.1.7/docs/operations/parallel-zarr-writes.md +0 -242
  578. firecube-0.1.7/docs/operations/s3-access.md +0 -80
  579. firecube-0.1.7/docs/quickstart/ingestion.md +0 -101
  580. firecube-0.1.7/docs/quickstart/source-data.md +0 -43
  581. firecube-0.1.7/docs/reference/control-plane-spec.md +0 -282
  582. firecube-0.1.7/docs/reference/core-utilities.md +0 -143
  583. firecube-0.1.7/docs/showcase/mtg-fci-l1c-benchmarks.ipynb +0 -572
  584. firecube-0.1.7/docs/showcase/netcdf-to-zarr-requirements.txt +0 -8
  585. firecube-0.1.7/docs/showcase/netcdf-to-zarr.ipynb +0 -538
  586. firecube-0.1.7/docs/showcase/requirements.txt +0 -7
  587. firecube-0.1.7/docs/showcase/sentinel3-fire-detections.ipynb +0 -15080
  588. firecube-0.1.7/mkdocs.yml +0 -217
  589. firecube-0.1.7/plans/DESIGN.md +0 -161
  590. firecube-0.1.7/plans/DONE.md +0 -2055
  591. firecube-0.1.7/plans/IDEAS.md +0 -333
  592. firecube-0.1.7/plans/RELEASE.md +0 -138
  593. firecube-0.1.7/plans/TEST.md +0 -163
  594. firecube-0.1.7/plans/TESTING_STANDARDS.md +0 -269
  595. firecube-0.1.7/plans/TEST_GAPS.md +0 -98
  596. firecube-0.1.7/plans/TODO.md +0 -617
  597. firecube-0.1.7/pyproject.toml +0 -158
  598. firecube-0.1.7/src/firecube/cli/_command_schemas.py +0 -115
  599. firecube-0.1.7/src/firecube/cli/_ctx.py +0 -85
  600. firecube-0.1.7/src/firecube/cli/_errors.py +0 -107
  601. firecube-0.1.7/src/firecube/cli/_input_filters.py +0 -88
  602. firecube-0.1.7/src/firecube/cli/_product.py +0 -47
  603. firecube-0.1.7/src/firecube/cli/_slot_planning.py +0 -200
  604. firecube-0.1.7/src/firecube/cli/_typed_options.py +0 -187
  605. firecube-0.1.7/src/firecube/cli/_uri_policy.py +0 -110
  606. firecube-0.1.7/src/firecube/cli/advise.py +0 -331
  607. firecube-0.1.7/src/firecube/cli/archive.py +0 -899
  608. firecube-0.1.7/src/firecube/cli/catalog.py +0 -202
  609. firecube-0.1.7/src/firecube/cli/chunks/_claims.py +0 -241
  610. firecube-0.1.7/src/firecube/cli/chunks/_delete.py +0 -467
  611. firecube-0.1.7/src/firecube/cli/chunks/_list.py +0 -349
  612. firecube-0.1.7/src/firecube/cli/chunks/_manager.py +0 -161
  613. firecube-0.1.7/src/firecube/cli/chunks/_runs.py +0 -317
  614. firecube-0.1.7/src/firecube/cli/index.py +0 -444
  615. firecube-0.1.7/src/firecube/cli/main.py +0 -959
  616. firecube-0.1.7/src/firecube/cli/parquet.py +0 -299
  617. firecube-0.1.7/src/firecube/cli/plugins/commands.py +0 -289
  618. firecube-0.1.7/src/firecube/cli/zarr/_common.py +0 -78
  619. firecube-0.1.7/src/firecube/cli/zarr/_consolidate.py +0 -798
  620. firecube-0.1.7/src/firecube/cli/zarr/_multires.py +0 -128
  621. firecube-0.1.7/src/firecube/cli/zarr/_preallocate.py +0 -860
  622. firecube-0.1.7/src/firecube/cli/zarr/_slots.py +0 -448
  623. firecube-0.1.7/src/firecube/cli/zarr/_validate.py +0 -242
  624. firecube-0.1.7/src/firecube/core/api.py +0 -186
  625. firecube-0.1.7/src/firecube/core/config.py +0 -346
  626. firecube-0.1.7/src/firecube/core/controlplane/_helpers.py +0 -114
  627. firecube-0.1.7/src/firecube/core/controlplane/_projection.py +0 -339
  628. firecube-0.1.7/src/firecube/core/controlplane/_snapshot.py +0 -215
  629. firecube-0.1.7/src/firecube/core/controlplane/claims.py +0 -306
  630. firecube-0.1.7/src/firecube/core/controlplane/deletion.py +0 -1314
  631. firecube-0.1.7/src/firecube/core/controlplane/manager.py +0 -1679
  632. firecube-0.1.7/src/firecube/core/controlplane/repo.py +0 -858
  633. firecube-0.1.7/src/firecube/core/controlplane/repo_utils.py +0 -73
  634. firecube-0.1.7/src/firecube/core/controlplane/time_dim.py +0 -111
  635. firecube-0.1.7/src/firecube/core/controlplane/types.py +0 -833
  636. firecube-0.1.7/src/firecube/core/duckdb/bridge.py +0 -82
  637. firecube-0.1.7/src/firecube/core/errors.py +0 -170
  638. firecube-0.1.7/src/firecube/core/filesystem/fsspec_backend.py +0 -354
  639. firecube-0.1.7/src/firecube/core/filesystem/obstore_backend.py +0 -435
  640. firecube-0.1.7/src/firecube/core/filesystem/ops.py +0 -465
  641. firecube-0.1.7/src/firecube/core/filesystem/protocol.py +0 -141
  642. firecube-0.1.7/src/firecube/core/filesystem/store_factory.py +0 -159
  643. firecube-0.1.7/src/firecube/core/formats/__init__.py +0 -46
  644. firecube-0.1.7/src/firecube/core/formats/_input_filters.py +0 -61
  645. firecube-0.1.7/src/firecube/core/formats/discovery.py +0 -213
  646. firecube-0.1.7/src/firecube/core/index_resolve.py +0 -733
  647. firecube-0.1.7/src/firecube/core/index_spec.py +0 -562
  648. firecube-0.1.7/src/firecube/core/indexed_write.py +0 -205
  649. firecube-0.1.7/src/firecube/core/intake.py +0 -552
  650. firecube-0.1.7/src/firecube/core/product/resolver.py +0 -121
  651. firecube-0.1.7/src/firecube/core/product/target.py +0 -120
  652. firecube-0.1.7/src/firecube/core/storage/completion.py +0 -257
  653. firecube-0.1.7/src/firecube/core/storage/results.py +0 -30
  654. firecube-0.1.7/src/firecube/core/storage/session.py +0 -432
  655. firecube-0.1.7/src/firecube/core/tensogram/converter.py +0 -390
  656. firecube-0.1.7/src/firecube/core/tensogram/metadata.py +0 -274
  657. firecube-0.1.7/src/firecube/core/tensogram/restore.py +0 -303
  658. firecube-0.1.7/src/firecube/core/uris.py +0 -182
  659. firecube-0.1.7/src/firecube/core/zarr/_coord_lifecycle.py +0 -77
  660. firecube-0.1.7/src/firecube/core/zarr/_drift.py +0 -306
  661. firecube-0.1.7/src/firecube/core/zarr/_reserved_attrs.py +0 -106
  662. firecube-0.1.7/src/firecube/core/zarr/_sealing_markers.py +0 -50
  663. firecube-0.1.7/src/firecube/core/zarr/chunk_geometry.py +0 -187
  664. firecube-0.1.7/src/firecube/core/zarr/coord_materialization.py +0 -637
  665. firecube-0.1.7/src/firecube/core/zarr/io.py +0 -88
  666. firecube-0.1.7/src/firecube/core/zarr/layers.py +0 -180
  667. firecube-0.1.7/src/firecube/core/zarr/multires.py +0 -182
  668. firecube-0.1.7/src/firecube/core/zarr/planning.py +0 -78
  669. firecube-0.1.7/src/firecube/core/zarr/region_writer.py +0 -1047
  670. firecube-0.1.7/src/firecube/core/zarr/state.py +0 -279
  671. firecube-0.1.7/src/firecube/core/zarr/time_decode.py +0 -118
  672. firecube-0.1.7/src/firecube/core/zarr/validation.py +0 -1490
  673. firecube-0.1.7/src/firecube/ingestor/config/coercion.py +0 -180
  674. firecube-0.1.7/src/firecube/ingestor/config/engine.py +0 -239
  675. firecube-0.1.7/src/firecube/ingestor/contracts/interfaces.py +0 -296
  676. firecube-0.1.7/src/firecube/ingestor/devtools/_templates/readme.md.tpl +0 -87
  677. firecube-0.1.7/src/firecube/ingestor/devtools/scaffolding.py +0 -459
  678. firecube-0.1.7/src/firecube/ingestor/errors.py +0 -252
  679. firecube-0.1.7/src/firecube/ingestor/runtime/base.py +0 -1102
  680. firecube-0.1.7/src/firecube/ingestor/runtime/batching.py +0 -196
  681. firecube-0.1.7/src/firecube/ingestor/runtime/configure.py +0 -200
  682. firecube-0.1.7/src/firecube/ingestor/runtime/engine.py +0 -913
  683. firecube-0.1.7/src/firecube/ingestor/runtime/index_binding.py +0 -317
  684. firecube-0.1.7/src/firecube/ingestor/runtime/parallel_gate.py +0 -220
  685. firecube-0.1.7/src/firecube/ingestor/runtime/recording.py +0 -700
  686. firecube-0.1.7/src/firecube/ingestor/runtime/resume_guard.py +0 -676
  687. firecube-0.1.7/src/firecube/ingestor/runtime/telemetry.py +0 -174
  688. firecube-0.1.7/src/firecube/ingestor/runtime/workspace.py +0 -252
  689. firecube-0.1.7/src/firecube/ingestor/runtime/zarr/append.py +0 -1141
  690. firecube-0.1.7/src/firecube/ingestor/runtime/zarr/append_failure.py +0 -272
  691. firecube-0.1.7/src/firecube/ingestor/runtime/zarr/append_order.py +0 -136
  692. firecube-0.1.7/src/firecube/ingestor/runtime/zarr/append_services.py +0 -1355
  693. firecube-0.1.7/src/firecube/ingestor/runtime/zarr/batch_runner.py +0 -233
  694. firecube-0.1.7/src/firecube/ingestor/runtime/zarr/existing_cube_check.py +0 -290
  695. firecube-0.1.7/src/firecube/ingestor/runtime/zarr/schema.py +0 -97
  696. firecube-0.1.7/src/firecube/ingestor/runtime/zarr/staged_metadata.py +0 -492
  697. firecube-0.1.7/src/firecube/ingestor/runtime/zarr/strategies/indexed_region.py +0 -1114
  698. firecube-0.1.7/src/firecube/ingestor/runtime/zarr/write.py +0 -670
  699. firecube-0.1.7/src/firecube/ingestor/templates/config.py +0 -361
  700. firecube-0.1.7/src/firecube/ingestor/templates/direct_zarr.py +0 -1515
  701. firecube-0.1.7/src/firecube/ingestor/templates/generic.py +0 -692
  702. firecube-0.1.7/src/firecube/ingestor/templates/generic_tensogram.py +0 -193
  703. firecube-0.1.7/src/firecube/ingestor/types/context.py +0 -562
  704. firecube-0.1.7/src/firecube/ingestor/types/planned_range.py +0 -162
  705. firecube-0.1.7/tests/README.md +0 -93
  706. firecube-0.1.7/tests/architecture/conftest.py +0 -22
  707. firecube-0.1.7/tests/architecture/test_core_independence.py +0 -70
  708. firecube-0.1.7/tests/architecture/test_fixture_plugin_list_consistency.py +0 -164
  709. firecube-0.1.7/tests/architecture/test_import_boundaries.py +0 -116
  710. firecube-0.1.7/tests/architecture/test_no_cli_inference.py +0 -140
  711. firecube-0.1.7/tests/architecture/test_no_naked_fill_value_comparison.py +0 -139
  712. firecube-0.1.7/tests/architecture/test_product_name_required.py +0 -44
  713. firecube-0.1.7/tests/architecture/test_storage_flows.py +0 -881
  714. firecube-0.1.7/tests/benchmarks/bench_resume_queries.py +0 -214
  715. firecube-0.1.7/tests/benchmarks/lazy_writeintent_harness/__init__.py +0 -13
  716. firecube-0.1.7/tests/benchmarks/lazy_writeintent_harness/conftest.py +0 -429
  717. firecube-0.1.7/tests/benchmarks/lazy_writeintent_harness/test_peak_retained_payload.py +0 -354
  718. firecube-0.1.7/tests/cli/test_archive_artifact_uri_contract.py +0 -73
  719. firecube-0.1.7/tests/cli/test_archive_create_contract.py +0 -99
  720. firecube-0.1.7/tests/cli/test_archive_restore_contract.py +0 -61
  721. firecube-0.1.7/tests/cli/test_audience_groups.py +0 -97
  722. firecube-0.1.7/tests/cli/test_catalog_intake_contract.py +0 -182
  723. firecube-0.1.7/tests/cli/test_chunks_manager_typed.py +0 -165
  724. firecube-0.1.7/tests/cli/test_chunks_storage_banner.py +0 -155
  725. firecube-0.1.7/tests/cli/test_click_error_boundary.py +0 -80
  726. firecube-0.1.7/tests/cli/test_ingest_decorator_consistency.py +0 -113
  727. firecube-0.1.7/tests/cli/test_parquet_consolidate_output_artifact.py +0 -56
  728. firecube-0.1.7/tests/cli/test_range_help_names_axis.py +0 -149
  729. firecube-0.1.7/tests/cli/test_rename_hints.py +0 -142
  730. firecube-0.1.7/tests/cli/test_uri_scheme_policy.py +0 -177
  731. firecube-0.1.7/tests/cli/test_zarr_multires_contract.py +0 -65
  732. firecube-0.1.7/tests/cli/test_zarr_validate_contract.py +0 -124
  733. firecube-0.1.7/tests/cli/test_zarr_validate_static_marker.py +0 -84
  734. firecube-0.1.7/tests/conftest.py +0 -290
  735. firecube-0.1.7/tests/fixtures/firecube_test_plugins/pyproject.toml +0 -52
  736. firecube-0.1.7/tests/fixtures/firecube_test_plugins/src/cf_time_dim_test_plugin/ingestor.py +0 -180
  737. firecube-0.1.7/tests/fixtures/firecube_test_plugins/src/irregular_axis_test_plugin/__init__.py +0 -309
  738. firecube-0.1.7/tests/fixtures/firecube_test_plugins/src/regular_axis_test_plugin/__init__.py +0 -343
  739. firecube-0.1.7/tests/fixtures/firecube_test_plugins/src/w14_single_discovery_plugin/__init__.py +0 -94
  740. firecube-0.1.7/tests/helpers/__init__.py +0 -14
  741. firecube-0.1.7/tests/helpers/storage.py +0 -200
  742. firecube-0.1.7/tests/helpers/test_storage_helpers.py +0 -155
  743. firecube-0.1.7/tests/integration/_staged_helpers.py +0 -138
  744. firecube-0.1.7/tests/integration/test_alignment_cli.py +0 -145
  745. firecube-0.1.7/tests/integration/test_append_failure_messages.py +0 -359
  746. firecube-0.1.7/tests/integration/test_append_group_attrs_first_write_wins.py +0 -125
  747. firecube-0.1.7/tests/integration/test_append_static_var_drift_raises.py +0 -193
  748. firecube-0.1.7/tests/integration/test_architecture_invariants.py +0 -516
  749. firecube-0.1.7/tests/integration/test_auto_discovery.py +0 -78
  750. firecube-0.1.7/tests/integration/test_byte_parity_existing_indexes.py +0 -183
  751. firecube-0.1.7/tests/integration/test_callable_payload_integration.py +0 -185
  752. firecube-0.1.7/tests/integration/test_cf_time_dim_value_dedup.py +0 -124
  753. firecube-0.1.7/tests/integration/test_cli_chunks_runs_target.py +0 -354
  754. firecube-0.1.7/tests/integration/test_cli_fresh_target_ingest.py +0 -149
  755. firecube-0.1.7/tests/integration/test_cli_index_rebuild.py +0 -559
  756. firecube-0.1.7/tests/integration/test_cli_index_show.py +0 -181
  757. firecube-0.1.7/tests/integration/test_cli_index_verify.py +0 -298
  758. firecube-0.1.7/tests/integration/test_cli_inference_baseline.py +0 -79
  759. firecube-0.1.7/tests/integration/test_cli_input_data_presence.py +0 -247
  760. firecube-0.1.7/tests/integration/test_cli_zarr_preallocate.py +0 -127
  761. firecube-0.1.7/tests/integration/test_cli_zarr_preallocate_slot_index.py +0 -299
  762. firecube-0.1.7/tests/integration/test_cli_zarr_preallocate_spec_attrs.py +0 -163
  763. firecube-0.1.7/tests/integration/test_compat_matrix.py +0 -130
  764. firecube-0.1.7/tests/integration/test_concurrent_same_product.py +0 -319
  765. firecube-0.1.7/tests/integration/test_consolidate_custom_time_dim.py +0 -191
  766. firecube-0.1.7/tests/integration/test_consolidate_error_wrapping.py +0 -78
  767. firecube-0.1.7/tests/integration/test_consolidate_time_coord_command.py +0 -337
  768. firecube-0.1.7/tests/integration/test_crash_recovery_bulk_sweep.py +0 -415
  769. firecube-0.1.7/tests/integration/test_cross_regime_marker_refusals.py +0 -161
  770. firecube-0.1.7/tests/integration/test_delete_span_collateral_guard.py +0 -246
  771. firecube-0.1.7/tests/integration/test_delete_span_region_nan_fill.py +0 -426
  772. firecube-0.1.7/tests/integration/test_direct_zarr_codec_cli_routing.py +0 -162
  773. firecube-0.1.7/tests/integration/test_direct_zarr_codec_end_to_end.py +0 -273
  774. firecube-0.1.7/tests/integration/test_direct_zarr_resolved_index.py +0 -276
  775. firecube-0.1.7/tests/integration/test_direct_zarr_shard_sharing_reproduction.py +0 -78
  776. firecube-0.1.7/tests/integration/test_discovery_obstore_single_object.py +0 -75
  777. firecube-0.1.7/tests/integration/test_e2e_time_dim_plugin.py +0 -237
  778. firecube-0.1.7/tests/integration/test_e2e_zarr_ingest_preflight_wiring.py +0 -329
  779. firecube-0.1.7/tests/integration/test_engine_ingest_with_peer_run.py +0 -443
  780. firecube-0.1.7/tests/integration/test_existing_cube_check_parallel_path.py +0 -125
  781. firecube-0.1.7/tests/integration/test_existing_cube_mismatch.py +0 -218
  782. firecube-0.1.7/tests/integration/test_force_reingest_region_overwrite.py +0 -190
  783. firecube-0.1.7/tests/integration/test_force_reingest_state.py +0 -754
  784. firecube-0.1.7/tests/integration/test_generic_zarr_codec_cli_defaults.py +0 -173
  785. firecube-0.1.7/tests/integration/test_horizon_growth_rejects_shape_drift.py +0 -185
  786. firecube-0.1.7/tests/integration/test_indexed_write_pipeline.py +0 -571
  787. firecube-0.1.7/tests/integration/test_ingest_command_typed.py +0 -240
  788. firecube-0.1.7/tests/integration/test_input_filters_cli.py +0 -229
  789. firecube-0.1.7/tests/integration/test_integer_axis_e2e.py +0 -239
  790. firecube-0.1.7/tests/integration/test_irregular_axis_pipeline.py +0 -459
  791. firecube-0.1.7/tests/integration/test_irregular_coord_materialization.py +0 -265
  792. firecube-0.1.7/tests/integration/test_legacy_slot_index_detection.py +0 -302
  793. firecube-0.1.7/tests/integration/test_maintenance_audit.py +0 -359
  794. firecube-0.1.7/tests/integration/test_maintenance_claims.py +0 -219
  795. firecube-0.1.7/tests/integration/test_manifest_explicit_null.py +0 -249
  796. firecube-0.1.7/tests/integration/test_marker_lifecycle.py +0 -203
  797. firecube-0.1.7/tests/integration/test_multiprocess_race_managed_coord.py +0 -266
  798. firecube-0.1.7/tests/integration/test_obstore_claim_atomicity.py +0 -207
  799. firecube-0.1.7/tests/integration/test_off_grid_floor_ingest_e2e.py +0 -334
  800. firecube-0.1.7/tests/integration/test_parallel_materialize.py +0 -294
  801. firecube-0.1.7/tests/integration/test_parquet_drivers.py +0 -234
  802. firecube-0.1.7/tests/integration/test_phase3_5_blocked_ranges.py +0 -124
  803. firecube-0.1.7/tests/integration/test_planner_window_alignment.py +0 -212
  804. firecube-0.1.7/tests/integration/test_plugin_config_validated.py +0 -142
  805. firecube-0.1.7/tests/integration/test_post_write_integrity_guard.py +0 -193
  806. firecube-0.1.7/tests/integration/test_preallocate_auto_rebuild.py +0 -162
  807. firecube-0.1.7/tests/integration/test_preallocate_claim_release_on_terminal_failure.py +0 -363
  808. firecube-0.1.7/tests/integration/test_preallocate_empty_discovery.py +0 -196
  809. firecube-0.1.7/tests/integration/test_preallocate_error_wrapping.py +0 -151
  810. firecube-0.1.7/tests/integration/test_preallocate_idempotent.py +0 -458
  811. firecube-0.1.7/tests/integration/test_preallocate_marker_at_creation.py +0 -228
  812. firecube-0.1.7/tests/integration/test_preallocate_recovery.py +0 -412
  813. firecube-0.1.7/tests/integration/test_preallocate_regular_axis_dense.py +0 -607
  814. firecube-0.1.7/tests/integration/test_preallocate_release_failure.py +0 -265
  815. firecube-0.1.7/tests/integration/test_preallocate_slot_group_env.py +0 -319
  816. firecube-0.1.7/tests/integration/test_resolved_index_precedence_matrix.py +0 -321
  817. firecube-0.1.7/tests/integration/test_resume_refills_state2_hole.py +0 -159
  818. firecube-0.1.7/tests/integration/test_run_terminal_slot_preservation.py +0 -240
  819. firecube-0.1.7/tests/integration/test_serial_peer_blocks_materializer.py +0 -176
  820. firecube-0.1.7/tests/integration/test_serial_unbounded_axis.py +0 -150
  821. firecube-0.1.7/tests/integration/test_slots_auto_input_data.py +0 -133
  822. firecube-0.1.7/tests/integration/test_staged_mode_template_parity.py +0 -652
  823. firecube-0.1.7/tests/integration/test_staged_partial_chunk_preserves_data.py +0 -228
  824. firecube-0.1.7/tests/integration/test_staged_retains_all_batches.py +0 -214
  825. firecube-0.1.7/tests/integration/test_storage_driver_integration.py +0 -277
  826. firecube-0.1.7/tests/integration/test_stored_chunk_coverage.py +0 -120
  827. firecube-0.1.7/tests/integration/test_tensogram_archive.py +0 -457
  828. firecube-0.1.7/tests/integration/test_timestamps_skipped_surfaces.py +0 -175
  829. firecube-0.1.7/tests/integration/test_upload_tree_hard_fail.py +0 -251
  830. firecube-0.1.7/tests/integration/test_zarr_default_compressed_resume.py +0 -182
  831. firecube-0.1.7/tests/integration/test_zarr_index_show_derived.py +0 -257
  832. firecube-0.1.7/tests/integration/test_zarr_preallocate_dry_run.py +0 -161
  833. firecube-0.1.7/tests/integration/test_zero_input_no_firecube_created.py +0 -189
  834. firecube-0.1.7/tests/unit/_helpers/counting_fs.py +0 -128
  835. firecube-0.1.7/tests/unit/ingestor/extensions/test_grid.py +0 -79
  836. firecube-0.1.7/tests/unit/ingestor/extensions/test_healpix.py +0 -155
  837. firecube-0.1.7/tests/unit/test_advise_cli.py +0 -102
  838. firecube-0.1.7/tests/unit/test_anonymous_config_file.py +0 -93
  839. firecube-0.1.7/tests/unit/test_anonymous_env.py +0 -103
  840. firecube-0.1.7/tests/unit/test_append_coverage_builder_time_decode.py +0 -127
  841. firecube-0.1.7/tests/unit/test_append_overwrite_errors.py +0 -77
  842. firecube-0.1.7/tests/unit/test_append_region_overwrite.py +0 -213
  843. firecube-0.1.7/tests/unit/test_append_regression.py +0 -752
  844. firecube-0.1.7/tests/unit/test_append_stale_consolidated_metadata.py +0 -210
  845. firecube-0.1.7/tests/unit/test_append_state_aware_overlap.py +0 -404
  846. firecube-0.1.7/tests/unit/test_append_write_executor.py +0 -132
  847. firecube-0.1.7/tests/unit/test_as_resolved_index_record.py +0 -201
  848. firecube-0.1.7/tests/unit/test_bare_glob_via_coerce.py +0 -69
  849. firecube-0.1.7/tests/unit/test_base_aggregate_contract.py +0 -128
  850. firecube-0.1.7/tests/unit/test_batching_metadata.py +0 -66
  851. firecube-0.1.7/tests/unit/test_bulk_abandon_stale_runs.py +0 -777
  852. firecube-0.1.7/tests/unit/test_bulk_clear_stale_claims.py +0 -548
  853. firecube-0.1.7/tests/unit/test_catalog_intake.py +0 -272
  854. firecube-0.1.7/tests/unit/test_cf_validator.py +0 -369
  855. firecube-0.1.7/tests/unit/test_chunk_geometry.py +0 -162
  856. firecube-0.1.7/tests/unit/test_chunk_manager.py +0 -799
  857. firecube-0.1.7/tests/unit/test_chunk_manager_queries.py +0 -228
  858. firecube-0.1.7/tests/unit/test_chunk_manager_resolved_index.py +0 -216
  859. firecube-0.1.7/tests/unit/test_chunk_manager_slot_index.py +0 -438
  860. firecube-0.1.7/tests/unit/test_chunks_list_cli.py +0 -181
  861. firecube-0.1.7/tests/unit/test_claims_clear_product_mismatch.py +0 -178
  862. firecube-0.1.7/tests/unit/test_cli_archive_safety.py +0 -202
  863. firecube-0.1.7/tests/unit/test_cli_chunks_delete.py +0 -113
  864. firecube-0.1.7/tests/unit/test_cli_completion.py +0 -45
  865. firecube-0.1.7/tests/unit/test_cli_errors.py +0 -79
  866. firecube-0.1.7/tests/unit/test_cli_output_options.py +0 -134
  867. firecube-0.1.7/tests/unit/test_cli_runs_all_stale.py +0 -192
  868. firecube-0.1.7/tests/unit/test_cli_slot_planning.py +0 -114
  869. firecube-0.1.7/tests/unit/test_cli_zarr_preallocate.py +0 -229
  870. firecube-0.1.7/tests/unit/test_cli_zarr_preallocate_static.py +0 -67
  871. firecube-0.1.7/tests/unit/test_cli_zarr_slots.py +0 -469
  872. firecube-0.1.7/tests/unit/test_codec_semantic_matrix.py +0 -239
  873. firecube-0.1.7/tests/unit/test_coerce_append_value.py +0 -54
  874. firecube-0.1.7/tests/unit/test_compare_zarr_stores.py +0 -269
  875. firecube-0.1.7/tests/unit/test_compute_schema_hash.py +0 -214
  876. firecube-0.1.7/tests/unit/test_config.py +0 -48
  877. firecube-0.1.7/tests/unit/test_config_file_strict.py +0 -127
  878. firecube-0.1.7/tests/unit/test_context_hook_signature_validation.py +0 -82
  879. firecube-0.1.7/tests/unit/test_controlplane_types.py +0 -293
  880. firecube-0.1.7/tests/unit/test_coord_chunks.py +0 -57
  881. firecube-0.1.7/tests/unit/test_coord_lifecycle.py +0 -71
  882. firecube-0.1.7/tests/unit/test_coverage_tracker.py +0 -166
  883. firecube-0.1.7/tests/unit/test_credentials.py +0 -67
  884. firecube-0.1.7/tests/unit/test_default_suffixes_include_common_hdf5_families.py +0 -41
  885. firecube-0.1.7/tests/unit/test_deletion_alignment_from_store.py +0 -411
  886. firecube-0.1.7/tests/unit/test_deletion_engine_errors.py +0 -63
  887. firecube-0.1.7/tests/unit/test_deletion_missing_key_not_error.py +0 -135
  888. firecube-0.1.7/tests/unit/test_deletion_time_dim_resolution.py +0 -393
  889. firecube-0.1.7/tests/unit/test_direct_zarr_ingestor.py +0 -550
  890. firecube-0.1.7/tests/unit/test_direct_zarr_parallel_contract.py +0 -56
  891. firecube-0.1.7/tests/unit/test_direct_zarr_per_slot_claims.py +0 -263
  892. firecube-0.1.7/tests/unit/test_direct_zarr_slot_index_subclass.py +0 -99
  893. firecube-0.1.7/tests/unit/test_direct_zarr_time_dim_wiring.py +0 -211
  894. firecube-0.1.7/tests/unit/test_discover_empty_source_fails.py +0 -184
  895. firecube-0.1.7/tests/unit/test_discovery_file_uri_hdf5_sniff.py +0 -64
  896. firecube-0.1.7/tests/unit/test_driver_parity_deletion.py +0 -218
  897. firecube-0.1.7/tests/unit/test_driver_parity_zarr_to_tgm.py +0 -83
  898. firecube-0.1.7/tests/unit/test_duckdb_bridge.py +0 -131
  899. firecube-0.1.7/tests/unit/test_duckdb_capability_check.py +0 -150
  900. firecube-0.1.7/tests/unit/test_engine_config_slot_group_warning.py +0 -48
  901. firecube-0.1.7/tests/unit/test_engine_fail_stop.py +0 -318
  902. firecube-0.1.7/tests/unit/test_engine_failure_handling.py +0 -103
  903. firecube-0.1.7/tests/unit/test_engine_resilience.py +0 -326
  904. firecube-0.1.7/tests/unit/test_engine_sequential_slot_filter_call.py +0 -179
  905. firecube-0.1.7/tests/unit/test_engine_time_dim_hook.py +0 -63
  906. firecube-0.1.7/tests/unit/test_epoch_parse_helper.py +0 -64
  907. firecube-0.1.7/tests/unit/test_filesystem_capabilities.py +0 -133
  908. firecube-0.1.7/tests/unit/test_fsspec_atomic_writer.py +0 -403
  909. firecube-0.1.7/tests/unit/test_generic_template_logging.py +0 -103
  910. firecube-0.1.7/tests/unit/test_global_expected_coverage.py +0 -299
  911. firecube-0.1.7/tests/unit/test_group_identity_hash.py +0 -147
  912. firecube-0.1.7/tests/unit/test_index_binding_filter.py +0 -115
  913. firecube-0.1.7/tests/unit/test_index_ensured_event.py +0 -98
  914. firecube-0.1.7/tests/unit/test_index_ensured_telemetry.py +0 -388
  915. firecube-0.1.7/tests/unit/test_index_resolve_byte_parity.py +0 -97
  916. firecube-0.1.7/tests/unit/test_index_resolve_irregular.py +0 -52
  917. firecube-0.1.7/tests/unit/test_index_spec.py +0 -99
  918. firecube-0.1.7/tests/unit/test_indexed_region_custom_dim.py +0 -84
  919. firecube-0.1.7/tests/unit/test_indexed_region_schema_claim.py +0 -92
  920. firecube-0.1.7/tests/unit/test_indexed_region_slot_group.py +0 -197
  921. firecube-0.1.7/tests/unit/test_indexed_region_static_dispatch.py +0 -322
  922. firecube-0.1.7/tests/unit/test_indexed_region_strategy_ordering.py +0 -108
  923. firecube-0.1.7/tests/unit/test_indexed_write.py +0 -128
  924. firecube-0.1.7/tests/unit/test_indexed_write_compile.py +0 -259
  925. firecube-0.1.7/tests/unit/test_indexed_write_compile_matrix.py +0 -397
  926. firecube-0.1.7/tests/unit/test_indexed_write_exception.py +0 -82
  927. firecube-0.1.7/tests/unit/test_ingest_command_config.py +0 -163
  928. firecube-0.1.7/tests/unit/test_input_filters.py +0 -207
  929. firecube-0.1.7/tests/unit/test_intake_catalog_entry_args.py +0 -67
  930. firecube-0.1.7/tests/unit/test_integer_axis.py +0 -79
  931. firecube-0.1.7/tests/unit/test_integer_resolver.py +0 -84
  932. firecube-0.1.7/tests/unit/test_list_runs_is_wal_scan_free_after_terminal.py +0 -118
  933. firecube-0.1.7/tests/unit/test_manifest_repo_cache.py +0 -72
  934. firecube-0.1.7/tests/unit/test_materialize_irregular_coord_array.py +0 -299
  935. firecube-0.1.7/tests/unit/test_materialize_regular_coord_array.py +0 -267
  936. firecube-0.1.7/tests/unit/test_multi_group_fixture.py +0 -73
  937. firecube-0.1.7/tests/unit/test_netcdf_utils.py +0 -469
  938. firecube-0.1.7/tests/unit/test_no_raw_fsspec_usage.py +0 -785
  939. firecube-0.1.7/tests/unit/test_otel_lifecycle.py +0 -159
  940. firecube-0.1.7/tests/unit/test_output_name_rejected.py +0 -35
  941. firecube-0.1.7/tests/unit/test_parallel_gate_slot_group.py +0 -171
  942. firecube-0.1.7/tests/unit/test_parallel_run_id.py +0 -61
  943. firecube-0.1.7/tests/unit/test_parallel_run_id_path_safety.py +0 -56
  944. firecube-0.1.7/tests/unit/test_parallel_schema_sizing.py +0 -266
  945. firecube-0.1.7/tests/unit/test_per_array_codec_override.py +0 -207
  946. firecube-0.1.7/tests/unit/test_pipeline_result_typed_metrics.py +0 -92
  947. firecube-0.1.7/tests/unit/test_planned_range.py +0 -76
  948. firecube-0.1.7/tests/unit/test_plugin_scaffolding.py +0 -587
  949. firecube-0.1.7/tests/unit/test_pod_startup_phantom_group.py +0 -187
  950. firecube-0.1.7/tests/unit/test_pod_startup_schema_verification.py +0 -262
  951. firecube-0.1.7/tests/unit/test_pre_batch_filter.py +0 -279
  952. firecube-0.1.7/tests/unit/test_product_resolver.py +0 -59
  953. firecube-0.1.7/tests/unit/test_product_target.py +0 -160
  954. firecube-0.1.7/tests/unit/test_ranges_overlap_helper.py +0 -37
  955. firecube-0.1.7/tests/unit/test_read_hdf5_array_dtype.py +0 -107
  956. firecube-0.1.7/tests/unit/test_region_writer_fill_helpers.py +0 -80
  957. firecube-0.1.7/tests/unit/test_region_zarr_writer.py +0 -364
  958. firecube-0.1.7/tests/unit/test_resume_guard.py +0 -329
  959. firecube-0.1.7/tests/unit/test_resume_guard_enforce_op_counts.py +0 -169
  960. firecube-0.1.7/tests/unit/test_resume_guard_group_aware.py +0 -114
  961. firecube-0.1.7/tests/unit/test_resume_guard_slot_ranges.py +0 -189
  962. firecube-0.1.7/tests/unit/test_run_id_slot_parser.py +0 -77
  963. firecube-0.1.7/tests/unit/test_schema_verification_audit.py +0 -103
  964. firecube-0.1.7/tests/unit/test_seed_touched_data_chunks.py +0 -256
  965. firecube-0.1.7/tests/unit/test_serial_unbounded_axis.py +0 -135
  966. firecube-0.1.7/tests/unit/test_session_upload_tree.py +0 -476
  967. firecube-0.1.7/tests/unit/test_setup_global_zarr_schema_concurrent.py +0 -118
  968. firecube-0.1.7/tests/unit/test_slot_index_model.py +0 -207
  969. firecube-0.1.7/tests/unit/test_slot_index_record.py +0 -280
  970. firecube-0.1.7/tests/unit/test_state_dim_threading.py +0 -62
  971. firecube-0.1.7/tests/unit/test_storage_cache_key.py +0 -98
  972. firecube-0.1.7/tests/unit/test_storage_completion.py +0 -237
  973. firecube-0.1.7/tests/unit/test_storage_config_anonymous.py +0 -203
  974. firecube-0.1.7/tests/unit/test_storage_errors.py +0 -74
  975. firecube-0.1.7/tests/unit/test_storage_metadata.py +0 -217
  976. firecube-0.1.7/tests/unit/test_telemetry_schema_snapshot.py +0 -114
  977. firecube-0.1.7/tests/unit/test_tensogram_cli.py +0 -122
  978. firecube-0.1.7/tests/unit/test_tensogram_core.py +0 -485
  979. firecube-0.1.7/tests/unit/test_tensogram_ingest.py +0 -134
  980. firecube-0.1.7/tests/unit/test_tensogram_input.py +0 -77
  981. firecube-0.1.7/tests/unit/test_tensogram_time_dim.py +0 -129
  982. firecube-0.1.7/tests/unit/test_time_axis_declaration.py +0 -155
  983. firecube-0.1.7/tests/unit/test_time_coord_consolidations_scan.py +0 -323
  984. firecube-0.1.7/tests/unit/test_time_decode.py +0 -159
  985. firecube-0.1.7/tests/unit/test_typed_options_param.py +0 -92
  986. firecube-0.1.7/tests/unit/test_unsorted_existing_refused.py +0 -129
  987. firecube-0.1.7/tests/unit/test_uri_handling.py +0 -187
  988. firecube-0.1.7/tests/unit/test_uris.py +0 -83
  989. firecube-0.1.7/tests/unit/test_validate_chunk_alignment_terminal.py +0 -55
  990. firecube-0.1.7/tests/unit/test_validate_directzarr_passes.py +0 -112
  991. firecube-0.1.7/tests/unit/test_validate_time_coord_uniqueness.py +0 -135
  992. firecube-0.1.7/tests/unit/test_validate_zarr_specs_against_template.py +0 -156
  993. firecube-0.1.7/tests/unit/test_verify_array_spec.py +0 -284
  994. firecube-0.1.7/tests/unit/test_verify_array_spec_codec_drift.py +0 -108
  995. firecube-0.1.7/tests/unit/test_wal_reader_run_id_safety.py +0 -119
  996. firecube-0.1.7/tests/unit/test_workspace_manager.py +0 -55
  997. firecube-0.1.7/tests/unit/test_write_intent_kinds.py +0 -34
  998. firecube-0.1.7/tests/unit/test_write_mode_policy.py +0 -238
  999. firecube-0.1.7/tests/unit/test_writeintent_callable_dispatch.py +0 -431
  1000. firecube-0.1.7/tests/unit/test_zarr_array_spec_codec_fields.py +0 -70
  1001. firecube-0.1.7/tests/unit/test_zarr_array_spec_new_fields.py +0 -151
  1002. firecube-0.1.7/tests/unit/test_zarr_codec_mutual_exclusion.py +0 -61
  1003. firecube-0.1.7/tests/unit/test_zarr_drift.py +0 -463
  1004. firecube-0.1.7/tests/unit/test_zarr_encoding_time_chunk_honored.py +0 -157
  1005. firecube-0.1.7/tests/unit/test_zarr_group_attrs.py +0 -149
  1006. firecube-0.1.7/tests/unit/test_zarr_multi_res_config_rejected.py +0 -103
  1007. firecube-0.1.7/tests/unit/test_zarr_staged_metadata.py +0 -452
  1008. firecube-0.1.7/tests/unit/test_zarr_validation.py +0 -221
  1009. firecube-0.1.7/tests/unit/test_zarr_write_context.py +0 -124
  1010. firecube-0.1.7/tests/unit/test_zarr_write_empty_chunks.py +0 -155
  1011. firecube-0.1.7/uv.lock +0 -4141
  1012. {firecube-0.1.7 → firecube-0.1.8}/.github/ISSUE_TEMPLATE/1-bug_report.yml +0 -0
  1013. {firecube-0.1.7 → firecube-0.1.8}/.github/ISSUE_TEMPLATE/2-feature_request.yml +0 -0
  1014. {firecube-0.1.7 → firecube-0.1.8}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  1015. {firecube-0.1.7 → firecube-0.1.8}/.github/dependabot.yml +0 -0
  1016. {firecube-0.1.7 → firecube-0.1.8}/.github/workflows/ci.yml +0 -0
  1017. {firecube-0.1.7 → firecube-0.1.8}/.github/workflows/docs-deploy.yml +0 -0
  1018. {firecube-0.1.7 → firecube-0.1.8}/.github/workflows/publish.yml +0 -0
  1019. {firecube-0.1.7 → firecube-0.1.8}/.gitignore +0 -0
  1020. {firecube-0.1.7 → firecube-0.1.8}/.prompts/address-pr-comments.md +0 -0
  1021. {firecube-0.1.7 → firecube-0.1.8}/.prompts/doc-fact-check.md +0 -0
  1022. {firecube-0.1.7 → firecube-0.1.8}/.prompts/docs-policy.md +0 -0
  1023. {firecube-0.1.7 → firecube-0.1.8}/.prompts/improve-code-coverage.md +0 -0
  1024. {firecube-0.1.7 → firecube-0.1.8}/.prompts/improve-edge-cases.md +0 -0
  1025. {firecube-0.1.7 → firecube-0.1.8}/.prompts/improve-error-handling.md +0 -0
  1026. {firecube-0.1.7 → firecube-0.1.8}/.prompts/make-further-pass.md +0 -0
  1027. {firecube-0.1.7 → firecube-0.1.8}/.prompts/prepare-make-pr.md +0 -0
  1028. {firecube-0.1.7 → firecube-0.1.8}/.prompts/write-internal-doc.md +0 -0
  1029. {firecube-0.1.7 → firecube-0.1.8}/.prompts/write-operator-doc.md +0 -0
  1030. {firecube-0.1.7 → firecube-0.1.8}/.prompts/write-plugin-doc.md +0 -0
  1031. {firecube-0.1.7 → firecube-0.1.8}/.prompts/write-user-doc.md +0 -0
  1032. {firecube-0.1.7 → firecube-0.1.8}/AUTHORS.md +0 -0
  1033. {firecube-0.1.7 → firecube-0.1.8}/CLAUDE.md +0 -0
  1034. {firecube-0.1.7 → firecube-0.1.8}/CODE_OF_CONDUCT.md +0 -0
  1035. {firecube-0.1.7 → firecube-0.1.8}/LICENSE +0 -0
  1036. {firecube-0.1.7 → firecube-0.1.8}/Makefile +0 -0
  1037. {firecube-0.1.7 → firecube-0.1.8}/dist/.gitignore +0 -0
  1038. {firecube-0.1.7 → firecube-0.1.8}/docs/_macros.py +0 -0
  1039. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/firecube-amblem-white.png +0 -0
  1040. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/firecube-amblem-white.png.ABOUT +0 -0
  1041. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/firecube-favicon.png +0 -0
  1042. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/firecube-favicon.png.ABOUT +0 -0
  1043. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/firecube-logo-title-2x.png +0 -0
  1044. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/firecube-logo-title-2x.png.ABOUT +0 -0
  1045. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/firecube-logo-title.png +0 -0
  1046. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/firecube-logo-title.png.ABOUT +0 -0
  1047. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/firecube-chunkmanager-records.svg +0 -0
  1048. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/firecube-chunkmanager-records.svg.ABOUT +0 -0
  1049. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/firecube-concepts-flow.svg +0 -0
  1050. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/firecube-concepts-flow.svg.ABOUT +0 -0
  1051. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/firecube-direct-zarr-golden-path.svg +0 -0
  1052. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/firecube-direct-zarr-golden-path.svg.ABOUT +0 -0
  1053. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/firecube-direct-zarr-region.svg +0 -0
  1054. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/firecube-direct-zarr-region.svg.ABOUT +0 -0
  1055. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/firecube-execution-shapes.svg +0 -0
  1056. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/firecube-execution-shapes.svg.ABOUT +0 -0
  1057. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/firecube-external-orchestrator-contract.svg +0 -0
  1058. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/firecube-external-orchestrator-contract.svg.ABOUT +0 -0
  1059. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/firecube-generic-zarr-append.svg +0 -0
  1060. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/firecube-generic-zarr-append.svg.ABOUT +0 -0
  1061. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/firecube-generic-zarr-parallel-groups.svg +0 -0
  1062. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/firecube-generic-zarr-parallel-groups.svg.ABOUT +0 -0
  1063. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/firecube-observability-signals.svg +0 -0
  1064. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/firecube-observability-signals.svg.ABOUT +0 -0
  1065. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/firecube-orchestration-overview.svg +0 -0
  1066. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/firecube-orchestration-overview.svg.ABOUT +0 -0
  1067. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/firecube-orchestration-write-safety.svg +0 -0
  1068. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/firecube-orchestration-write-safety.svg.ABOUT +0 -0
  1069. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/firecube-output-format-choice.svg +0 -0
  1070. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/firecube-output-format-choice.svg.ABOUT +0 -0
  1071. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/firecube-parallel-zarr-slots.svg +0 -0
  1072. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/firecube-parallel-zarr-slots.svg.ABOUT +0 -0
  1073. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/firecube-parallelism-models.svg +0 -0
  1074. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/firecube-parallelism-models.svg.ABOUT +0 -0
  1075. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/firecube-parquet-file-layout.svg +0 -0
  1076. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/firecube-parquet-file-layout.svg.ABOUT +0 -0
  1077. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/firecube-performance-bottlenecks.svg +0 -0
  1078. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/firecube-performance-bottlenecks.svg.ABOUT +0 -0
  1079. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/firecube-plugin-authoring-flow.svg +0 -0
  1080. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/firecube-plugin-authoring-flow.svg.ABOUT +0 -0
  1081. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/firecube-storage-chunkmanager-flow.svg +0 -0
  1082. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/firecube-storage-chunkmanager-flow.svg.ABOUT +0 -0
  1083. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/firecube-tensogram-flow.svg +0 -0
  1084. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/firecube-tensogram-flow.svg.ABOUT +0 -0
  1085. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/firecube-time-axis-ownership.svg +0 -0
  1086. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/firecube-time-axis-ownership.svg.ABOUT +0 -0
  1087. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/firecube-tutorial-direct-zarr-slots.svg +0 -0
  1088. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/firecube-tutorial-direct-zarr-slots.svg.ABOUT +0 -0
  1089. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/firecube-tutorial-netcdf-zarr.svg +0 -0
  1090. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/firecube-tutorial-netcdf-zarr.svg.ABOUT +0 -0
  1091. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/firecube-tutorial-zip-parquet.svg +0 -0
  1092. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/firecube-tutorial-zip-parquet.svg.ABOUT +0 -0
  1093. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/firecube-zarr-store-layout.svg +0 -0
  1094. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/firecube-zarr-store-layout.svg.ABOUT +0 -0
  1095. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/mtg-fci-benchmark-preview.png +0 -0
  1096. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/mtg-fci-benchmark-preview.png.ABOUT +0 -0
  1097. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/netcdf-to-zarr-preview.png +0 -0
  1098. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/netcdf-to-zarr-preview.png.ABOUT +0 -0
  1099. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/sentinel3-frp-preview.png +0 -0
  1100. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/images/sentinel3-frp-preview.png.ABOUT +0 -0
  1101. {firecube-0.1.7 → firecube-0.1.8}/docs/assets/stylesheets/showcase.css +0 -0
  1102. {firecube-0.1.7 → firecube-0.1.8}/docs/concepts/benchmarks.md +0 -0
  1103. {firecube-0.1.7 → firecube-0.1.8}/docs/concepts/best-practices.md +0 -0
  1104. {firecube-0.1.7 → firecube-0.1.8}/docs/concepts/chunk-management.md +0 -0
  1105. {firecube-0.1.7 → firecube-0.1.8}/docs/concepts/chunkmanager.md +0 -0
  1106. {firecube-0.1.7 → firecube-0.1.8}/docs/concepts/configuration.md +0 -0
  1107. {firecube-0.1.7 → firecube-0.1.8}/docs/concepts/index.md +0 -0
  1108. {firecube-0.1.7 → firecube-0.1.8}/docs/concepts/observability/index.md +0 -0
  1109. {firecube-0.1.7 → firecube-0.1.8}/docs/concepts/observability/metrics.md +0 -0
  1110. {firecube-0.1.7 → firecube-0.1.8}/docs/concepts/orchestration/execution-shapes.md +0 -0
  1111. {firecube-0.1.7 → firecube-0.1.8}/docs/concepts/orchestration/external-orchestrator.md +0 -0
  1112. {firecube-0.1.7 → firecube-0.1.8}/docs/concepts/orchestration/write-safety.md +0 -0
  1113. {firecube-0.1.7 → firecube-0.1.8}/docs/concepts/output-formats/archive.md +0 -0
  1114. {firecube-0.1.7 → firecube-0.1.8}/docs/concepts/output-formats/index.md +0 -0
  1115. {firecube-0.1.7 → firecube-0.1.8}/docs/concepts/output-formats/parquet.md +0 -0
  1116. {firecube-0.1.7 → firecube-0.1.8}/docs/concepts/output-formats/zarr/generic-append.md +0 -0
  1117. {firecube-0.1.7 → firecube-0.1.8}/docs/concepts/output-formats/zarr/index.md +0 -0
  1118. {firecube-0.1.7 → firecube-0.1.8}/docs/concepts/parallelism.md +0 -0
  1119. {firecube-0.1.7 → firecube-0.1.8}/docs/concepts/plugins/index.md +0 -0
  1120. {firecube-0.1.7 → firecube-0.1.8}/docs/concepts/reproducibility.md +0 -0
  1121. {firecube-0.1.7 → firecube-0.1.8}/docs/contributing/index.md +0 -0
  1122. {firecube-0.1.7 → firecube-0.1.8}/docs/guides/plugins/contract.md +0 -0
  1123. {firecube-0.1.7 → firecube-0.1.8}/docs/guides/plugins/create-a-plugin.md +0 -0
  1124. {firecube-0.1.7 → firecube-0.1.8}/docs/guides/plugins/customize-source-discovery.md +0 -0
  1125. {firecube-0.1.7 → firecube-0.1.8}/docs/guides/plugins/extensions.md +0 -0
  1126. {firecube-0.1.7 → firecube-0.1.8}/docs/guides/plugins/index.md +0 -0
  1127. {firecube-0.1.7 → firecube-0.1.8}/docs/guides/plugins/install-a-plugin.md +0 -0
  1128. {firecube-0.1.7 → firecube-0.1.8}/docs/guides/plugins/observability.md +0 -0
  1129. {firecube-0.1.7 → firecube-0.1.8}/docs/operations/chunk-manager/inspect.md +0 -0
  1130. {firecube-0.1.7 → firecube-0.1.8}/docs/operations/chunk-manager/snapshots.md +0 -0
  1131. {firecube-0.1.7 → firecube-0.1.8}/docs/operations/index.md +0 -0
  1132. {firecube-0.1.7 → firecube-0.1.8}/docs/operations/intake-catalog.md +0 -0
  1133. {firecube-0.1.7 → firecube-0.1.8}/docs/operations/zarr-compare.md +0 -0
  1134. {firecube-0.1.7 → firecube-0.1.8}/docs/quickstart/catalogs.md +0 -0
  1135. {firecube-0.1.7 → firecube-0.1.8}/docs/quickstart/configuration.md +0 -0
  1136. {firecube-0.1.7 → firecube-0.1.8}/docs/quickstart/index.md +0 -0
  1137. {firecube-0.1.7 → firecube-0.1.8}/docs/quickstart/installation.md +0 -0
  1138. {firecube-0.1.7 → firecube-0.1.8}/docs/quickstart/plugins.md +0 -0
  1139. {firecube-0.1.7 → firecube-0.1.8}/docs/reference/cli.md +0 -0
  1140. {firecube-0.1.7 → firecube-0.1.8}/docs/reference/config.md +0 -0
  1141. {firecube-0.1.7 → firecube-0.1.8}/docs/reference/context.md +0 -0
  1142. {firecube-0.1.7 → firecube-0.1.8}/docs/reference/exceptions.md +0 -0
  1143. {firecube-0.1.7 → firecube-0.1.8}/docs/reference/extensions.md +0 -0
  1144. {firecube-0.1.7 → firecube-0.1.8}/docs/reference/hooks.md +0 -0
  1145. {firecube-0.1.7 → firecube-0.1.8}/docs/reference/index.md +0 -0
  1146. {firecube-0.1.7 → firecube-0.1.8}/docs/reference/observability.md +0 -0
  1147. {firecube-0.1.7 → firecube-0.1.8}/docs/reference/parallelism.md +0 -0
  1148. {firecube-0.1.7 → firecube-0.1.8}/docs/reference/storage-drivers.md +0 -0
  1149. {firecube-0.1.7 → firecube-0.1.8}/docs/reference/templates.md +0 -0
  1150. {firecube-0.1.7 → firecube-0.1.8}/docs/showcase/benchmark-requirements.txt +0 -0
  1151. {firecube-0.1.7 → firecube-0.1.8}/docs/showcase/index.md +0 -0
  1152. {firecube-0.1.7 → firecube-0.1.8}/plans/STYLE.md +0 -0
  1153. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/__init__.py +0 -0
  1154. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/__main__.py +0 -0
  1155. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/_version.py +0 -0
  1156. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/cli/_audience.py +0 -0
  1157. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/cli/_formatter.py +0 -0
  1158. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/cli/_rename_hints.py +0 -0
  1159. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/cli/_shared_options.py +0 -0
  1160. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/cli/_slot_env.py +0 -0
  1161. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/cli/chunks/__init__.py +0 -0
  1162. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/cli/chunks/_common.py +0 -0
  1163. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/cli/chunks/_snapshots.py +0 -0
  1164. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/cli/completion.py +0 -0
  1165. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/cli/plugins/__init__.py +0 -0
  1166. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/cli/plugins/introspect.py +0 -0
  1167. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/cli/plugins/mgmt.py +0 -0
  1168. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/cli/plugins/registry.py +0 -0
  1169. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/cli/zarr/__init__.py +0 -0
  1170. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/core/__init__.py +0 -0
  1171. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/core/batch_registry.py +0 -0
  1172. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/core/cf/__init__.py +0 -0
  1173. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/core/cf/check_ids.py +0 -0
  1174. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/core/cf/report.py +0 -0
  1175. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/core/cf/validator.py +0 -0
  1176. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/core/controlplane/__init__.py +0 -0
  1177. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/core/controlplane/_event_processor.py +0 -0
  1178. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/core/controlplane/_paths.py +0 -0
  1179. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/core/controlplane/_wal_reader.py +0 -0
  1180. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/core/controlplane/_wal_writer.py +0 -0
  1181. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/core/controlplane/events.py +0 -0
  1182. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/core/controlplane/metrics.py +0 -0
  1183. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/core/controlplane/ranges.py +0 -0
  1184. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/core/credentials.py +0 -0
  1185. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/core/duckdb/__init__.py +0 -0
  1186. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/core/duckdb/io.py +0 -0
  1187. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/core/filesystem/__init__.py +0 -0
  1188. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/core/filesystem/_obstore_compat.py +0 -0
  1189. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/core/filesystem/instrumentation.py +0 -0
  1190. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/core/formats/_iso.py +0 -0
  1191. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/core/formats/hdf5.py +0 -0
  1192. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/core/formats/netcdf.py +0 -0
  1193. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/core/formats/zip.py +0 -0
  1194. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/core/observability/__init__.py +0 -0
  1195. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/core/observability/_state.py +0 -0
  1196. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/core/observability/logging.py +0 -0
  1197. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/core/observability/metrics.py +0 -0
  1198. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/core/observability/telemetry/__init__.py +0 -0
  1199. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/core/observability/telemetry/pushgateway.py +0 -0
  1200. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/core/observability/telemetry/sinks.py +0 -0
  1201. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/core/observability/tracing.py +0 -0
  1202. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/core/product/__init__.py +0 -0
  1203. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/core/product/identity.py +0 -0
  1204. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/core/runtime.py +0 -0
  1205. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/core/slot_index.py +0 -0
  1206. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/core/storage/__init__.py +0 -0
  1207. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/core/storage/binding.py +0 -0
  1208. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/core/storage/cache_key.py +0 -0
  1209. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/core/storage/driver_config.py +0 -0
  1210. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/core/storage/transfer.py +0 -0
  1211. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/core/storage/uri.py +0 -0
  1212. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/core/tensogram/__init__.py +0 -0
  1213. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/core/tensogram/_compat.py +0 -0
  1214. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/core/tensogram/controlplane_codec.py +0 -0
  1215. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/core/tensogram/schema.py +0 -0
  1216. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/core/workspaces.py +0 -0
  1217. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/core/zarr/__init__.py +0 -0
  1218. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/core/zarr/_coord_chunks.py +0 -0
  1219. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/core/zarr/_reserved_root_attrs.py +0 -0
  1220. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/core/zarr/codec_pipeline.py +0 -0
  1221. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/core/zarr/scrub.py +0 -0
  1222. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/ingestor/__init__.py +0 -0
  1223. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/ingestor/api.py +0 -0
  1224. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/ingestor/config/__init__.py +0 -0
  1225. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/ingestor/contracts/__init__.py +0 -0
  1226. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/ingestor/devtools/_templates/__init__.py +0 -0
  1227. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/ingestor/devtools/_templates/ingestor_base.py.tpl +0 -0
  1228. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/ingestor/devtools/_templates/ingestor_direct_zarr.py.tpl +0 -0
  1229. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/ingestor/devtools/_templates/ingestor_parquet.py.tpl +0 -0
  1230. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/ingestor/devtools/_templates/ingestor_zarr.py.tpl +0 -0
  1231. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/ingestor/extensions/__init__.py +0 -0
  1232. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/ingestor/extensions/_binning.py +0 -0
  1233. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/ingestor/extensions/duck.py +0 -0
  1234. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/ingestor/extensions/grid.py +0 -0
  1235. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/ingestor/extensions/healpix.py +0 -0
  1236. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/ingestor/extensions/patterns.py +0 -0
  1237. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/ingestor/registry/__init__.py +0 -0
  1238. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/ingestor/registry/loader.py +0 -0
  1239. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/ingestor/registry/metadata.py +0 -0
  1240. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/ingestor/registry/version_compat.py +0 -0
  1241. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/ingestor/runtime/__init__.py +0 -0
  1242. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/ingestor/runtime/_metrics_helpers.py +0 -0
  1243. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/ingestor/runtime/aggregation.py +0 -0
  1244. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/ingestor/runtime/base_hooks.py +0 -0
  1245. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/ingestor/runtime/coverage.py +0 -0
  1246. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/ingestor/runtime/output_guard.py +0 -0
  1247. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/ingestor/runtime/parallel_evidence.py +0 -0
  1248. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/ingestor/runtime/parallel_execution_state.py +0 -0
  1249. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/ingestor/runtime/parallel_run_id.py +0 -0
  1250. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/ingestor/runtime/preflight.py +0 -0
  1251. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/ingestor/runtime/resume_types.py +0 -0
  1252. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/ingestor/runtime/tensogram/__init__.py +0 -0
  1253. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/ingestor/runtime/tensogram/strategy.py +0 -0
  1254. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/ingestor/runtime/zarr/__init__.py +0 -0
  1255. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/ingestor/runtime/zarr/alignment.py +0 -0
  1256. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/ingestor/runtime/zarr/contracts.py +0 -0
  1257. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/ingestor/runtime/zarr/ordered_gate.py +0 -0
  1258. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/ingestor/runtime/zarr/resume_cache.py +0 -0
  1259. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/ingestor/runtime/zarr/strategies/__init__.py +0 -0
  1260. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/ingestor/runtime/zarr/strategies/append.py +0 -0
  1261. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/ingestor/runtime/zarr/write_context.py +0 -0
  1262. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/ingestor/templates/__init__.py +0 -0
  1263. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/ingestor/templates/_parquet.py +0 -0
  1264. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/ingestor/types/__init__.py +0 -0
  1265. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/ingestor/types/config.py +0 -0
  1266. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/ingestor/types/manifest.py +0 -0
  1267. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/ingestor/types/result_metrics.py +0 -0
  1268. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/ingestor/utils/__init__.py +0 -0
  1269. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/ingestor/utils/duckdb_utils.py +0 -0
  1270. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/ingestor/validation.py +0 -0
  1271. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/py.typed +0 -0
  1272. {firecube-0.1.7 → firecube-0.1.8}/src/firecube/py.typed.ABOUT +0 -0
  1273. {firecube-0.1.7 → firecube-0.1.8}/tests/__init__.py +0 -0
  1274. {firecube-0.1.7 → firecube-0.1.8}/tests/architecture/test_chunks_manager_no_parent_reconstruction.py +0 -0
  1275. {firecube-0.1.7 → firecube-0.1.8}/tests/architecture/test_cli_no_private_cross_subsystem_imports.py +0 -0
  1276. {firecube-0.1.7 → firecube-0.1.8}/tests/architecture/test_no_dead_force_reingest.py +0 -0
  1277. {firecube-0.1.7 → firecube-0.1.8}/tests/architecture/test_no_internal_output_path_reads.py +0 -0
  1278. {firecube-0.1.7 → firecube-0.1.8}/tests/architecture/test_no_planning_notation_leaks.py +0 -0
  1279. {firecube-0.1.7 → firecube-0.1.8}/tests/architecture/test_no_raw_pd_timestamp_numeric.py +0 -0
  1280. {firecube-0.1.7 → firecube-0.1.8}/tests/architecture/test_no_storage_config_subclasses.py +0 -0
  1281. {firecube-0.1.7 → firecube-0.1.8}/tests/architecture/test_no_unguarded_time_count_substitution.py +0 -0
  1282. {firecube-0.1.7 → firecube-0.1.8}/tests/architecture/test_plugin_isolation.py +0 -0
  1283. {firecube-0.1.7 → firecube-0.1.8}/tests/architecture/test_scaffold_license_headers.py +0 -0
  1284. {firecube-0.1.7 → firecube-0.1.8}/tests/architecture/test_storage_driver_config_boundary.py +0 -0
  1285. {firecube-0.1.7 → firecube-0.1.8}/tests/architecture/test_storage_redaction.py +0 -0
  1286. {firecube-0.1.7 → firecube-0.1.8}/tests/architecture/test_storage_type_coherence.py +0 -0
  1287. {firecube-0.1.7 → firecube-0.1.8}/tests/architecture/test_template_config_class_declared.py +0 -0
  1288. {firecube-0.1.7 → firecube-0.1.8}/tests/architecture/test_typed_pipeline_result.py +0 -0
  1289. {firecube-0.1.7 → firecube-0.1.8}/tests/architecture/test_wal_release_fixture.py +0 -0
  1290. {firecube-0.1.7 → firecube-0.1.8}/tests/architecture/test_wal_schema_backward_compat.py +0 -0
  1291. {firecube-0.1.7/tests/benchmarks → firecube-0.1.8/tests/cli}/__init__.py +0 -0
  1292. {firecube-0.1.7 → firecube-0.1.8}/tests/cli/_cli_introspection.py +0 -0
  1293. {firecube-0.1.7 → firecube-0.1.8}/tests/cli/_command_contracts.py +0 -0
  1294. {firecube-0.1.7 → firecube-0.1.8}/tests/cli/conftest.py +0 -0
  1295. {firecube-0.1.7 → firecube-0.1.8}/tests/cli/test_advise_batch_size_contract.py +0 -0
  1296. {firecube-0.1.7 → firecube-0.1.8}/tests/cli/test_advise_compliance_contract.py +0 -0
  1297. {firecube-0.1.7 → firecube-0.1.8}/tests/cli/test_archive_no_double_pass.py +0 -0
  1298. {firecube-0.1.7 → firecube-0.1.8}/tests/cli/test_chunks_list_no_info_json_line.py +0 -0
  1299. {firecube-0.1.7 → firecube-0.1.8}/tests/cli/test_cli_contract_matrix.py +0 -0
  1300. {firecube-0.1.7 → firecube-0.1.8}/tests/cli/test_cli_introspection_drift.py +0 -0
  1301. {firecube-0.1.7 → firecube-0.1.8}/tests/cli/test_help_conformance.py +0 -0
  1302. {firecube-0.1.7 → firecube-0.1.8}/tests/cli/test_parquet_validate_contract.py +0 -0
  1303. {firecube-0.1.7 → firecube-0.1.8}/tests/cli/test_per_command_contracts.py +0 -0
  1304. {firecube-0.1.7 → firecube-0.1.8}/tests/cli/test_runs_list_slot_fields.py +0 -0
  1305. {firecube-0.1.7 → firecube-0.1.8}/tests/cli/test_shared_options.py +0 -0
  1306. {firecube-0.1.7 → firecube-0.1.8}/tests/cli/test_write_mode_error_message.py +0 -0
  1307. {firecube-0.1.7 → firecube-0.1.8}/tests/cli/test_zarr_compare.py +0 -0
  1308. {firecube-0.1.7 → firecube-0.1.8}/tests/cli/test_zarr_slots_static_owner.py +0 -0
  1309. {firecube-0.1.7 → firecube-0.1.8}/tests/fixtures/cf_dataset_fixtures.py +0 -0
  1310. {firecube-0.1.7 → firecube-0.1.8}/tests/fixtures/demo_plugin/pyproject.toml +0 -0
  1311. {firecube-0.1.7/tests/cli → firecube-0.1.8/tests/fixtures/demo_plugin/src/demo_plugin}/__init__.py +0 -0
  1312. {firecube-0.1.7 → firecube-0.1.8}/tests/fixtures/demo_plugin/src/demo_plugin/plugin.py +0 -0
  1313. {firecube-0.1.7 → firecube-0.1.8}/tests/fixtures/demo_plugin/src/demo_plugin/plugin_cli.py +0 -0
  1314. {firecube-0.1.7 → firecube-0.1.8}/tests/fixtures/firecube_test_plugins/src/callable_payload_test_plugin/__init__.py +0 -0
  1315. {firecube-0.1.7 → firecube-0.1.8}/tests/fixtures/firecube_test_plugins/src/cf_time_dim_test_plugin/__init__.py +0 -0
  1316. {firecube-0.1.7 → firecube-0.1.8}/tests/fixtures/firecube_test_plugins/src/cli_test_plugin/__init__.py +0 -0
  1317. {firecube-0.1.7 → firecube-0.1.8}/tests/fixtures/firecube_test_plugins/src/direct_zarr_capable_test_plugin/__init__.py +0 -0
  1318. {firecube-0.1.7 → firecube-0.1.8}/tests/fixtures/firecube_test_plugins/src/direct_zarr_non_capable_test_plugin/__init__.py +0 -0
  1319. {firecube-0.1.7 → firecube-0.1.8}/tests/fixtures/firecube_test_plugins/src/e2e_zarr_test_plugin/__init__.py +0 -0
  1320. {firecube-0.1.7 → firecube-0.1.8}/tests/fixtures/firecube_test_plugins/src/e2e_zarr_test_plugin/ingestor.py +0 -0
  1321. {firecube-0.1.7 → firecube-0.1.8}/tests/fixtures/firecube_test_plugins/src/index_spec_integer_test_plugin/__init__.py +0 -0
  1322. {firecube-0.1.7 → firecube-0.1.8}/tests/fixtures/firecube_test_plugins/src/index_spec_test_plugin/__init__.py +0 -0
  1323. {firecube-0.1.7 → firecube-0.1.8}/tests/fixtures/firecube_test_plugins/src/indexed_write_test_plugin/__init__.py +0 -0
  1324. {firecube-0.1.7 → firecube-0.1.8}/tests/fixtures/firecube_test_plugins/src/mixed_bounded_unbounded_test_plugin/__init__.py +0 -0
  1325. {firecube-0.1.7 → firecube-0.1.8}/tests/fixtures/firecube_test_plugins/src/multi_group_capable_test_plugin/__init__.py +0 -0
  1326. {firecube-0.1.7 → firecube-0.1.8}/tests/fixtures/firecube_test_plugins/src/precip_daily_test_plugin/__init__.py +0 -0
  1327. {firecube-0.1.7 → firecube-0.1.8}/tests/fixtures/firecube_test_plugins/src/precip_daily_test_plugin/ingestor.py +0 -0
  1328. {firecube-0.1.7 → firecube-0.1.8}/tests/fixtures/firecube_test_plugins/src/slot_shape_test_plugin/__init__.py +0 -0
  1329. {firecube-0.1.7 → firecube-0.1.8}/tests/fixtures/firecube_test_plugins/tests/callable_payload_test_plugin/test_safe_ingestor.py +0 -0
  1330. {firecube-0.1.7 → firecube-0.1.8}/tests/fixtures/firecube_test_plugins/tests/callable_payload_test_plugin/test_static_resume_documented_behavior.py +0 -0
  1331. {firecube-0.1.7 → firecube-0.1.8}/tests/fixtures/firecube_test_plugins/tests/callable_payload_test_plugin/test_unsafe_ingestor.py +0 -0
  1332. {firecube-0.1.7 → firecube-0.1.8}/tests/fixtures/firecube_test_plugins/tests/indexed_write_test_plugin/test_indexed_write_ingestor.py +0 -0
  1333. {firecube-0.1.7 → firecube-0.1.8}/tests/fixtures/firecube_test_plugins/tests/irregular_axis_test_plugin/test_ingestor.py +0 -0
  1334. {firecube-0.1.7 → firecube-0.1.8}/tests/fixtures/gen_synthetic_precip_daily.py +0 -0
  1335. {firecube-0.1.7 → firecube-0.1.8}/tests/fixtures/test_stub_ingestor/__init__.py +0 -0
  1336. {firecube-0.1.7 → firecube-0.1.8}/tests/fixtures/test_stub_ingestor/plugin.py +0 -0
  1337. {firecube-0.1.7 → firecube-0.1.8}/tests/fixtures/test_stub_ingestor/run_firecube.py +0 -0
  1338. {firecube-0.1.7 → firecube-0.1.8}/tests/fixtures/wal_v0.1.5/README.md +0 -0
  1339. {firecube-0.1.7 → firecube-0.1.8}/tests/fixtures/wal_v0.1.5/events_sample.jsonl +0 -0
  1340. {firecube-0.1.7 → firecube-0.1.8}/tests/fixtures/wal_v0.1.5/events_sample.jsonl.ABOUT +0 -0
  1341. {firecube-0.1.7/tests/fixtures/demo_plugin/src/demo_plugin → firecube-0.1.8/tests/helpers}/__init__.py +0 -0
  1342. {firecube-0.1.7 → firecube-0.1.8}/tests/ingestor/test_config_architecture.py +0 -0
  1343. {firecube-0.1.7 → firecube-0.1.8}/tests/ingestor/test_refactor_safeties.py +0 -0
  1344. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/__init__.py +0 -0
  1345. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/_bt_helpers.py +0 -0
  1346. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_append_coordinate_safety.py +0 -0
  1347. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_append_failed_batch_repair.py +0 -0
  1348. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_append_ordered_commit.py +0 -0
  1349. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_append_strategy_behavior.py +0 -0
  1350. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_archive_drivers.py +0 -0
  1351. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_archive_remote.py +0 -0
  1352. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_archive_restore_audit.py +0 -0
  1353. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_catalog_intake_anonymous.py +0 -0
  1354. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_cf_time_dim_telemetry.py +0 -0
  1355. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_cli_advise_compliance.py +0 -0
  1356. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_cli_chunks_fallback_unchanged.py +0 -0
  1357. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_cli_chunks_s3_basename_mismatch.py +0 -0
  1358. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_cli_chunks_storage_config_fallback.py +0 -0
  1359. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_cli_plugin_shims.py +0 -0
  1360. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_cli_zarr_preallocate_lifecycle.py +0 -0
  1361. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_cli_zarr_preallocate_typed_config.py +0 -0
  1362. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_concurrent_preallocate_race.py +0 -0
  1363. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_consolidate_partial_recovery.py +0 -0
  1364. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_consolidate_s3_refusal.py +0 -0
  1365. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_consolidate_time_coord_dry_run.py +0 -0
  1366. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_consolidate_wal_backfill.py +0 -0
  1367. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_convergence_policy_alignment.py +0 -0
  1368. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_direct_zarr_index_spec_integration.py +0 -0
  1369. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_direct_zarr_parity_slot_range.py +0 -0
  1370. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_direct_zarr_schema_claim_retry.py +0 -0
  1371. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_direct_zarr_startup_slot_index.py +0 -0
  1372. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_direct_zarr_xr_open_roundtrip.py +0 -0
  1373. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_driver_compliance_vertical_slice.py +0 -0
  1374. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_dryrun_no_maintenance_run.py +0 -0
  1375. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_dtype_subsecond_no_false_drift.py +0 -0
  1376. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_engine_failed_batch_wal.py +0 -0
  1377. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_existing_cube_check_directzarr.py +0 -0
  1378. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_existing_cube_check_multigroup_plugin.py +0 -0
  1379. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_existing_cube_check_static_arrays.py +0 -0
  1380. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_fillvalue_attribute.py +0 -0
  1381. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_frozen_index_safety.py +0 -0
  1382. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_group_hash_survives_consolidate.py +0 -0
  1383. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_group_hash_survives_staged_seed.py +0 -0
  1384. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_index_rebuild_unbounded.py +0 -0
  1385. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_index_show_derived_label.py +0 -0
  1386. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_index_spec_recursion_regression.py +0 -0
  1387. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_indexed_region_behavior.py +0 -0
  1388. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_ingest_anonymous_moto.py +0 -0
  1389. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_mixed_spec_skip_persistence.py +0 -0
  1390. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_observed_coord_reconciliation.py +0 -0
  1391. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_obstore_s3_keys.py +0 -0
  1392. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_obstore_streaming_upload.py +0 -0
  1393. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_one_driver_invariant.py +0 -0
  1394. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_open_time_default_reader.py +0 -0
  1395. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_ordering_pollution_regression.py +0 -0
  1396. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_otel_context_concurrency.py +0 -0
  1397. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_parquet_target_safety.py +0 -0
  1398. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_partial_replacement_via_overwrites_meta.py +0 -0
  1399. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_per_group_identity_restore.py +0 -0
  1400. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_phase2_behavior_preserved.py +0 -0
  1401. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_phase3_2_multi_group_run_isolation.py +0 -0
  1402. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_phase3_3_encoded_run_id_lifecycle.py +0 -0
  1403. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_phase3_3_phantom_group_e2e.py +0 -0
  1404. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_phase3_3_plan_to_ingest_contract.py +0 -0
  1405. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_phase3_3_sequential_slot_filter.py +0 -0
  1406. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_phase3_4_cli_phantom_group.py +0 -0
  1407. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_phase3_single_group_preserved.py +0 -0
  1408. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_pipeline_manifest_creation.py +0 -0
  1409. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_plugin_lifecycle.py +0 -0
  1410. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_post_write_integrity_guard_coord_values.py +0 -0
  1411. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_preallocate_end_date_bounded.py +0 -0
  1412. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_preallocate_epilog_wording.py +0 -0
  1413. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_preallocate_input_data_routing.py +0 -0
  1414. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_preallocate_parallel_zero_loss.py +0 -0
  1415. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_preallocate_unbounded_axis.py +0 -0
  1416. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_prefill_verify_first.py +0 -0
  1417. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_prefill_window_scoped.py +0 -0
  1418. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_resolved_index_concurrency.py +0 -0
  1419. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_slot_index_concurrency.py +0 -0
  1420. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_slot_index_fixture_plugins.py +0 -0
  1421. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_slot_index_non_parallel.py +0 -0
  1422. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_slot_index_precedence_matrix.py +0 -0
  1423. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_slot_index_s3_precondition_retry.py +0 -0
  1424. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_staged_force_reingest_chunk_integrity.py +0 -0
  1425. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_staged_reoffer_skip_isolation.py +0 -0
  1426. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_staged_seed_publish_s3.py +0 -0
  1427. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_staged_write_resume.py +0 -0
  1428. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_static_intent_nan_fill.py +0 -0
  1429. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_static_spec_shape_preservation.py +0 -0
  1430. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_static_suppression.py +0 -0
  1431. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_version_compat.py +0 -0
  1432. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_wal_concurrent_ordering.py +0 -0
  1433. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_workspace_materialization_race.py +0 -0
  1434. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_xarray_open_cost.py +0 -0
  1435. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_zarr_codec_end_to_end.py +0 -0
  1436. {firecube-0.1.7 → firecube-0.1.8}/tests/integration/test_zarr_preallocate_codec_cli.py +0 -0
  1437. {firecube-0.1.7 → firecube-0.1.8}/tests/scripts/create_legacy_cube.py +0 -0
  1438. {firecube-0.1.7 → firecube-0.1.8}/tests/scripts/create_legacy_cube_with_nat.py +0 -0
  1439. {firecube-0.1.7 → firecube-0.1.8}/tests/sdk/test_api_docs_coverage.py +0 -0
  1440. {firecube-0.1.7 → firecube-0.1.8}/tests/sdk/test_control_plane_spec_consistency.py +0 -0
  1441. {firecube-0.1.7 → firecube-0.1.8}/tests/sdk/test_facade_exports.py +0 -0
  1442. {firecube-0.1.7 → firecube-0.1.8}/tests/sdk/test_plugin_contract.py +0 -0
  1443. {firecube-0.1.7 → firecube-0.1.8}/tests/sdk/test_public_api_surface.py +0 -0
  1444. {firecube-0.1.7 → firecube-0.1.8}/tests/sdk/test_py_typed_marker.py +0 -0
  1445. {firecube-0.1.7 → firecube-0.1.8}/tests/sdk/test_reference_pages_stay_generated.py +0 -0
  1446. {firecube-0.1.7 → firecube-0.1.8}/tests/sdk/test_scratch_module_deleted.py +0 -0
  1447. {firecube-0.1.7 → firecube-0.1.8}/tests/test_zarr_sharding.py +0 -0
  1448. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/__init__.py +0 -0
  1449. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/_helpers/__init__.py +0 -0
  1450. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/_helpers/conftest.py +0 -0
  1451. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/_helpers/test_counting_fs.py +0 -0
  1452. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/ingestor/extensions/test_lazy_duckdb.py +0 -0
  1453. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/ingestor/extensions/test_patterns.py +0 -0
  1454. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/ingestor/runtime/test_output_resolution.py +0 -0
  1455. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/ingestor/types/test_ingest_context.py +0 -0
  1456. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/ingestor/types/test_ingest_context_contract.py +0 -0
  1457. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/observability/test_factory.py +0 -0
  1458. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/observability/test_label_sanitization.py +0 -0
  1459. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/observability/test_protocol_surface.py +0 -0
  1460. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/observability/test_pushgateway_emit.py +0 -0
  1461. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/observability/test_pushgateway_flush.py +0 -0
  1462. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/observability/test_pushgateway_labels.py +0 -0
  1463. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_alignment_warn.py +0 -0
  1464. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_all_arrays_chunk_alignment.py +0 -0
  1465. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_append_configured_state_array.py +0 -0
  1466. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_append_coverage_builder.py +0 -0
  1467. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_append_indexed_coordinate_helper.py +0 -0
  1468. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_append_resume_service.py +0 -0
  1469. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_append_services_custom_dim.py +0 -0
  1470. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_append_services_require_time_dim.py +0 -0
  1471. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_append_state_dim_propagation.py +0 -0
  1472. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_append_strategy.py +0 -0
  1473. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_append_strategy_custom_dim.py +0 -0
  1474. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_append_timestamp_state.py +0 -0
  1475. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_append_with_custom_time_dim.py +0 -0
  1476. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_batch_registry.py +0 -0
  1477. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_batch_runner.py +0 -0
  1478. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_batching_index_metadata.py +0 -0
  1479. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_build_write_intents_compilation.py +0 -0
  1480. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_cf_dataset_fixtures.py +0 -0
  1481. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_cf_report.py +0 -0
  1482. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_chunk_event_writer.py +0 -0
  1483. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_chunk_honored_larger_than_batch.py +0 -0
  1484. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_chunks_admin_cli.py +0 -0
  1485. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_chunks_manager_factory.py +0 -0
  1486. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_claim_heartbeat_warning.py +0 -0
  1487. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_claims_stale_query.py +0 -0
  1488. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_cli_audience.py +0 -0
  1489. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_cli_bridge_consumers.py +0 -0
  1490. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_cli_chunks_claims.py +0 -0
  1491. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_cli_chunks_delete_time_range_option.py +0 -0
  1492. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_cli_chunks_runs.py +0 -0
  1493. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_cli_chunks_snapshots.py +0 -0
  1494. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_cli_claims_all_stale.py +0 -0
  1495. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_cli_shared_options.py +0 -0
  1496. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_cli_slot_group.py +0 -0
  1497. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_cli_slot_range_env_discovery.py +0 -0
  1498. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_cli_slot_range_options.py +0 -0
  1499. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_cli_zarr_multires.py +0 -0
  1500. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_codec_pipeline_normalization.py +0 -0
  1501. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_concurrency.py +0 -0
  1502. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_consolidated_time_coord_event.py +0 -0
  1503. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_context_mutation_contract.py +0 -0
  1504. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_controlplane_events.py +0 -0
  1505. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_cooperative_batch_hooks.py +0 -0
  1506. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_coverage_tracker_custom_dim.py +0 -0
  1507. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_ctx_escape_removed.py +0 -0
  1508. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_data_chunk_seeding_call_order.py +0 -0
  1509. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_dataset_for_batch_contract.py +0 -0
  1510. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_deletion_dim_lookup.py +0 -0
  1511. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_derive_target_uri.py +0 -0
  1512. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_direct_zarr_contract_stability.py +0 -0
  1513. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_direct_zarr_parallel_capability.py +0 -0
  1514. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_domain_defaults_removed.py +0 -0
  1515. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_driver_parity_append_resume.py +0 -0
  1516. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_driver_parity_cli.py +0 -0
  1517. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_driver_parity_storage_session.py +0 -0
  1518. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_driver_parity_validation.py +0 -0
  1519. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_driver_parity_write_zarr.py +0 -0
  1520. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_duckdb_tier_scoping.py +0 -0
  1521. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_emit_index_ensured_full.py +0 -0
  1522. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_encode_time_array.py +0 -0
  1523. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_engine_config_allow_empty_source.py +0 -0
  1524. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_engine_config_slot_range.py +0 -0
  1525. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_engine_prefix_preservation.py +0 -0
  1526. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_engine_typed_result_access.py +0 -0
  1527. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_ensure_group_new_kwargs.py +0 -0
  1528. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_env_var_compatibility.py +0 -0
  1529. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_errors_messages.py +0 -0
  1530. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_execution_mode_selection.py +0 -0
  1531. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_existing_cube_check_read_bytes.py +0 -0
  1532. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_experimental_options.py +0 -0
  1533. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_extensions_duck.py +0 -0
  1534. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_failed_run_recovery_hint.py +0 -0
  1535. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_filesystem_claim_service_read_by_domain.py +0 -0
  1536. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_filesystem_instrumentation.py +0 -0
  1537. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_filesystem_metrics.py +0 -0
  1538. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_from_storage_config_or_default.py +0 -0
  1539. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_generic_zarr_claim_category.py +0 -0
  1540. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_generic_zarr_process_batch.py +0 -0
  1541. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_hash_read_exception_categorization.py +0 -0
  1542. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_index_binding.py +0 -0
  1543. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_indexed_region_bounded_concurrency.py +0 -0
  1544. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_indexed_region_static_array_slot_check.py +0 -0
  1545. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_indexed_region_time_1d_coverage.py +0 -0
  1546. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_ingest_result_typed_metrics.py +0 -0
  1547. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_ingestor_errors.py +0 -0
  1548. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_insert_recovery_guidance.py +0 -0
  1549. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_intake_discovery_error_visibility.py +0 -0
  1550. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_intake_explicit_storage.py +0 -0
  1551. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_iso_to_epoch_s_utc_strict.py +0 -0
  1552. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_list_runs_lazy_cache.py +0 -0
  1553. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_loader_cache.py +0 -0
  1554. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_logging_json_formatter.py +0 -0
  1555. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_maintenance_events.py +0 -0
  1556. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_manifest_repo_parity.py +0 -0
  1557. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_manifest_repository_safety.py +0 -0
  1558. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_manifest_versioning.py +0 -0
  1559. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_metrics_no_import_cycle.py +0 -0
  1560. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_no_storage_config_view.py +0 -0
  1561. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_normalize_for_coord_compare.py +0 -0
  1562. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_observability_boundaries.py +0 -0
  1563. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_obstore_atomic_writer.py +0 -0
  1564. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_obstore_streaming_buffer.py +0 -0
  1565. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_ordered_write_gate.py +0 -0
  1566. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_overlap_keys_unit_safe.py +0 -0
  1567. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_parallel_evidence.py +0 -0
  1568. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_parallel_execution_state.py +0 -0
  1569. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_parallel_gate_capability.py +0 -0
  1570. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_parallel_gate_chunk_alignment.py +0 -0
  1571. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_parallel_gate_phantom_group.py +0 -0
  1572. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_parallel_gate_static_array_chunks.py +0 -0
  1573. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_parallel_post_intent_assertion.py +0 -0
  1574. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_parquet_cli.py +0 -0
  1575. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_parquet_storage_invariant.py +0 -0
  1576. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_per_array_codec_override_preserved.py +0 -0
  1577. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_pipeline_spans.py +0 -0
  1578. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_pipeline_summary_schema_no_warning.py +0 -0
  1579. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_plugin_config_type_coercion.py +0 -0
  1580. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_plugin_context_boundary.py +0 -0
  1581. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_plugins_install_output_names_mode.py +0 -0
  1582. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_preflight.py +0 -0
  1583. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_prewrite_dim_check.py +0 -0
  1584. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_product_identity.py +0 -0
  1585. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_product_name_contract.py +0 -0
  1586. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_projection_orphan_slot_fallback.py +0 -0
  1587. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_recording_coverage_contract.py +0 -0
  1588. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_recording_failed_batch_spans.py +0 -0
  1589. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_recording_typed_result.py +0 -0
  1590. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_region_write_schema_drift.py +0 -0
  1591. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_region_writer_custom_coord.py +0 -0
  1592. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_region_writer_marker_aware.py +0 -0
  1593. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_region_writer_write_static.py +0 -0
  1594. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_region_zarr_writer_preallocation.py +0 -0
  1595. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_reserved_attrs.py +0 -0
  1596. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_reserved_root_attrs.py +0 -0
  1597. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_resolve_codec_pipeline.py +0 -0
  1598. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_resolved_index_attrs.py +0 -0
  1599. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_resolved_index_conflict_diff.py +0 -0
  1600. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_resolved_index_record.py +0 -0
  1601. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_restore_group_attrs_atomic.py +0 -0
  1602. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_result_constructor_contract.py +0 -0
  1603. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_resume_guard_completed_spans.py +0 -0
  1604. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_resume_guard_consolidated.py +0 -0
  1605. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_resume_guard_telemetry.py +0 -0
  1606. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_resume_meta_orphan_slot_fallback.py +0 -0
  1607. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_resume_types.py +0 -0
  1608. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_run_dir_for.py +0 -0
  1609. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_run_record_slot_group.py +0 -0
  1610. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_run_record_slot_range.py +0 -0
  1611. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_runs_stale_query.py +0 -0
  1612. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_runtime.py +0 -0
  1613. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_scaffold_defaults_direct.py +0 -0
  1614. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_scaffold_header_uses_author.py +0 -0
  1615. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_scaffold_install_hint_offers_editable.py +0 -0
  1616. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_schema_drift_error.py +0 -0
  1617. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_seeding_claim_held.py +0 -0
  1618. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_seeding_ownership_invariant.py +0 -0
  1619. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_setup_global_schema_static.py +0 -0
  1620. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_setup_global_zarr_schema_strict.py +0 -0
  1621. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_sharding_config_validation.py +0 -0
  1622. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_slot_range_validators.py +0 -0
  1623. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_snapshot_derivation.py +0 -0
  1624. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_span_coverage_neutral.py +0 -0
  1625. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_spdx_handling.py +0 -0
  1626. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_staged_metadata_error_contract.py +0 -0
  1627. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_staged_metadata_workspace_idempotency.py +0 -0
  1628. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_staged_metrics.py +0 -0
  1629. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_staged_seed_strips_static_marker.py +0 -0
  1630. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_start_overlap_plus_new_tail.py +0 -0
  1631. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_storage_binding.py +0 -0
  1632. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_storage_config.py +0 -0
  1633. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_storage_config_binding_roundtrip.py +0 -0
  1634. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_storage_driver.py +0 -0
  1635. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_storage_driver_config.py +0 -0
  1636. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_storage_driver_config_lockdown.py +0 -0
  1637. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_storage_filesystem.py +0 -0
  1638. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_storage_filesystem_protocol.py +0 -0
  1639. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_storage_session.py +0 -0
  1640. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_storage_transfer.py +0 -0
  1641. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_storage_uri.py +0 -0
  1642. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_strategy_protocols.py +0 -0
  1643. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_suppress_logger_warnings.py +0 -0
  1644. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_telemetry_schema.py +0 -0
  1645. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_telemetry_typed_result.py +0 -0
  1646. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_template_hierarchy.py +0 -0
  1647. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_template_product_name.py +0 -0
  1648. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_template_typed_metrics_population.py +0 -0
  1649. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_tensogram_routing.py +0 -0
  1650. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_tier_configurator.py +0 -0
  1651. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_time_dim_name_resolution.py +0 -0
  1652. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_tracing_facade.py +0 -0
  1653. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_unaligned_warn_once_per_group.py +0 -0
  1654. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_unknown_summary_key_warns.py +0 -0
  1655. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_validate_group_iterates_arrays.py +0 -0
  1656. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_version_consistency.py +0 -0
  1657. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_wal_metrics.py +0 -0
  1658. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_wal_reader_read_run_entry.py +0 -0
  1659. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_warn_if_misaligned_terminal.py +0 -0
  1660. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_write_view_strips_static_and_attrs.py +0 -0
  1661. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_zarr_append_engine.py +0 -0
  1662. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_zarr_array_spec_fill_value_validation.py +0 -0
  1663. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_zarr_chunk_alias_removed.py +0 -0
  1664. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_zarr_codec_api_assumptions.py +0 -0
  1665. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_zarr_codecs_entry_validation.py +0 -0
  1666. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_zarr_compare_cli.py +0 -0
  1667. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_zarr_compare_layout_vs_content.py +0 -0
  1668. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_zarr_compression_string_form_removed.py +0 -0
  1669. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_zarr_config_validation.py +0 -0
  1670. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_zarr_discover_groups.py +0 -0
  1671. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_zarr_store_factory.py +0 -0
  1672. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_zarr_store_factory_contract.py +0 -0
  1673. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_zarr_time_encoding.py +0 -0
  1674. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_zarr_write_preflight_narrow_exception.py +0 -0
  1675. {firecube-0.1.7 → firecube-0.1.8}/tests/unit/test_zip_extract_safety.py +0 -0
@@ -0,0 +1,50 @@
1
+ <!--
2
+ Thanks for contributing to Firecube. Please read CONTRIBUTING.md first.
3
+ Keep pull requests focused: one logical change per PR.
4
+ -->
5
+
6
+ ## What changed
7
+
8
+ <!-- A clear description of the change. -->
9
+
10
+ ## Why
11
+
12
+ <!-- The motivation. Link the issue this closes, e.g. "Closes #123". -->
13
+
14
+ ## Affected behavior
15
+
16
+ <!-- Which user, operator, plugin, or maintainer behavior changes? -->
17
+
18
+ - User / CLI:
19
+ - Plugin authors:
20
+ - Operators / production:
21
+ - Stored formats or control-plane state:
22
+
23
+ ## Type of change
24
+
25
+ - [ ] Bug fix (non-breaking)
26
+ - [ ] New feature (non-breaking)
27
+ - [ ] Breaking change (CLI flags, plugin contract, config, or stored format)
28
+ - [ ] Documentation
29
+ - [ ] CI / build / chore
30
+
31
+ ## Checks run
32
+
33
+ <!-- Tick what you ran; paste anything notable. -->
34
+
35
+ - [ ] `uv run ruff check .`
36
+ - [ ] `uv run ruff format --check .`
37
+ - [ ] `uv run pyright`
38
+ - [ ] `uv run --with bandit bandit -c pyproject.toml -r src scripts -lll`
39
+ - [ ] `uv run pytest --strict-deps -m "not slow and not s3 and not docs_static and not snapshot and not race" -q`
40
+ - [ ] Docs build (if docs changed): `uv run mkdocs build --strict`
41
+
42
+ ## Follow-up work
43
+
44
+ <!-- Known gaps or planned follow-ups, or "none". -->
45
+
46
+ ## Contributor certification
47
+
48
+ - [ ] Commits are signed off (`git commit -s`) with my real name and a reachable email.
49
+ - [ ] No credentials, generated products, caches, or virtualenvs are included in this PR.
50
+ - [ ] If AI assistance materially shaped this change, I disclosed it here and added an `Assisted-by` trailer.
@@ -0,0 +1,249 @@
1
+ ---
2
+ description: Prepare a Firecube release with checks, version update, and publishing notes
3
+ agent: build
4
+ ---
5
+
6
+ # Make Release
7
+
8
+ Prepare a new Firecube release.
9
+
10
+ ## Arguments
11
+
12
+ Provide the target package version as `$ARGUMENTS`, for example `/make-release 0.2.0`.
13
+ If no version is given, ask the user for the intended version. Do not infer a
14
+ major version bump. The package version is bare PEP 440-compatible SemVer; the
15
+ git tag is `v<version>`.
16
+
17
+ ## Pre-Release Checks
18
+
19
+ Run all relevant checks. If any required step fails, stop and report the failure.
20
+
21
+ ### 1. Clean Working Tree
22
+
23
+ ```bash
24
+ git status --short
25
+ git diff --stat
26
+ ```
27
+
28
+ The release should start from a reviewed, intentional state. Do not discard or
29
+ overwrite user changes.
30
+
31
+ ### 2. Dependencies And Fixtures
32
+
33
+ ```bash
34
+ uv sync --locked --extra test --group docs
35
+ uv pip install -e tests/fixtures/cli_test_plugin
36
+ uv pip install -e tests/fixtures/direct_zarr_capable_test_plugin
37
+ uv pip install -e tests/fixtures/direct_zarr_non_capable_test_plugin
38
+ uv pip install -e tests/fixtures/multi_group_capable_test_plugin
39
+ uv pip install -e tests/fixtures/cf_time_dim_test_plugin
40
+ ```
41
+
42
+ ### 3. Lint And Tests
43
+
44
+ ```bash
45
+ uv run ruff check .
46
+ uv run ruff format --check .
47
+ uv run pyright
48
+ uv run pytest --strict-deps -q --tb=short -W error::DeprecationWarning
49
+ uv run pytest --strict-deps -m "not slow and not s3 and not race" --cov=firecube --cov-report=term-missing --cov-report=xml -q
50
+ uv run pytest tests/unit/test_version_consistency.py -q
51
+ ```
52
+
53
+ If the full suite requires unavailable credentials or external services, run the
54
+ publishable local suite and report what was skipped.
55
+
56
+ ### 4. Documentation
57
+
58
+ ```bash
59
+ uv run mkdocs build --strict --site-dir /tmp/firecube-mkdocs-check
60
+ ```
61
+
62
+ Run `/doc-fact-check` on changed or high-traffic docs before publishing.
63
+
64
+ ### 5. Package Build
65
+
66
+ ```bash
67
+ rm -rf dist
68
+ uv build
69
+ uv run --with twine twine check dist/*
70
+ ```
71
+
72
+ Inspect the generated wheel/sdist filenames and contents before publishing.
73
+
74
+ ### 6. Version And Contract Audit
75
+
76
+ Check for stale hardcoded package versions after the version bump. If there is a
77
+ previous release tag, use its package version as the value to search for:
78
+
79
+ ```bash
80
+ PREVIOUS_TAG="$(git describe --tags --abbrev=0 --match 'v[0-9]*' 2>/dev/null || true)"
81
+ if [ -n "$PREVIOUS_TAG" ]; then
82
+ PREVIOUS_VERSION="$(git show "${PREVIOUS_TAG}:pyproject.toml" | awk -F'"' '
83
+ /^\[project\]$/ { in_project=1; next }
84
+ /^\[/ { in_project=0 }
85
+ in_project && /^version = / { print $2; exit }
86
+ ')"
87
+ if [ -n "$PREVIOUS_VERSION" ]; then
88
+ rg -n "${PREVIOUS_VERSION}" \
89
+ --glob '!uv.lock' \
90
+ --glob '!CHANGELOG.md' \
91
+ --glob '!dist/**' \
92
+ --glob '!site/**' \
93
+ . || true
94
+ fi
95
+ fi
96
+ ```
97
+
98
+ Any remaining old package-version hits must be intentional historical references,
99
+ not runtime code, docs examples, CI metadata, or release artifacts.
100
+
101
+ Audit contract/schema versions separately:
102
+
103
+ ```bash
104
+ rg -n "schema_version|SCHEMA_VERSION|ARCHIVE_VERSION|PLAN_SCHEMA_VERSION|CURRENT_SCHEMA_VERSION" src tests docs plans
105
+ ```
106
+
107
+ Do not change schema or contract versions just because the package version
108
+ changed. Change them only when the persisted format or machine-readable output
109
+ contract changes, and update `plans/RELEASE.md` if the contract map changes.
110
+
111
+ ## Release Process
112
+
113
+ ### 1. Version Update
114
+
115
+ Update `pyproject.toml` `[project].version` to the target version and refresh
116
+ `uv.lock`.
117
+
118
+ Do not hardcode the package version in runtime code or public docs. Runtime
119
+ version exports and docs examples should derive from the package version.
120
+
121
+ Update `CHANGELOG.md`.
122
+
123
+ If `CHANGELOG.md` does not exist, create it using Keep a Changelog format with
124
+ an `[Unreleased]` section.
125
+
126
+ ### 2. Changelog Entry
127
+
128
+ Write a `CHANGELOG.md` entry for the target version following the existing Keep
129
+ a Changelog format. Use a dated header:
130
+
131
+ ```markdown
132
+ ## [X.Y.Z] - YYYY-MM-DD
133
+ ```
134
+
135
+ Insert the entry below `[Unreleased]`. Do not leave this as a manual follow-up
136
+ unless the user explicitly asks to skip changelog editing.
137
+
138
+ Find the previous release tag:
139
+
140
+ ```bash
141
+ git describe --tags --abbrev=0 --match 'v[0-9]*' 2>/dev/null || true
142
+ ```
143
+
144
+ Build the draft from commits since the previous tag. If there is no previous
145
+ tag, use all reachable commits:
146
+
147
+ ```bash
148
+ PREVIOUS_TAG="$(git describe --tags --abbrev=0 --match 'v[0-9]*' 2>/dev/null || true)"
149
+ if [ -n "$PREVIOUS_TAG" ]; then
150
+ git log --oneline "${PREVIOUS_TAG}..HEAD"
151
+ else
152
+ git log --oneline
153
+ fi
154
+ ```
155
+
156
+ Organize into:
157
+
158
+ - Added
159
+ - Changed
160
+ - Fixed
161
+ - Removed
162
+ - Migration Notes
163
+ - Stats
164
+
165
+ Use the section only when it has real content. Keep user-facing behavior first.
166
+ Put internal refactors only when they affect users, plugin authors, operators,
167
+ release artifacts, or public contracts.
168
+
169
+ For `Stats`, use the current release checks and CI output. Include:
170
+
171
+ - test count summary, for example `pytest: 1234 passed`
172
+ - type-check result, for example `pyright: 0 errors`
173
+ - coverage percentage from the pytest coverage `TOTAL` line
174
+ - docs build result
175
+ - package/container build result, when run
176
+
177
+ Do not invent stats. If a stat is unavailable, write the check result and why the
178
+ number is unavailable.
179
+
180
+ ### 3. Release Notes
181
+
182
+ Prepare release notes from the changelog entry. Keep them shorter than the
183
+ changelog and focused on user, plugin-author, and operator consequences.
184
+
185
+ ### 4. Commit Release Edits
186
+
187
+ Only after user approval:
188
+
189
+ ```bash
190
+ git add pyproject.toml uv.lock CHANGELOG.md docs README.md
191
+ git commit -m "chore: release X.Y.Z"
192
+ ```
193
+
194
+ Do not tag from a feature branch. The release commit should be reviewed and
195
+ merged to the default branch first.
196
+
197
+ Do not push without explicit user approval.
198
+
199
+ ### 5. Merge
200
+
201
+ Push the release branch and open a pull request. Let branch CI pass, review the
202
+ release diff, and merge it to `main`.
203
+
204
+ ### 6. Tag And Publish
205
+
206
+ After the release commit is merged to `main`, tag from a clean, up-to-date local
207
+ `main` checkout:
208
+
209
+ ```bash
210
+ git switch main
211
+ git pull --ff-only origin main
212
+ make release VERSION=X.Y.Z
213
+ ```
214
+
215
+ `make release` creates and pushes the annotated tag `vX.Y.Z` only when
216
+ `VERSION` matches `pyproject.toml`, the working tree is clean, and local `main`
217
+ matches `origin/main`.
218
+
219
+ The tag pipeline should run validation, container build, scan, patch, smoke
220
+ test, and push jobs. Watch the tag pipeline and confirm:
221
+
222
+ - `version_check` accepts `CI_COMMIT_TAG == v<pyproject version>`
223
+ - the container image is pushed as `:vX.Y.Z`
224
+ - the image label `org.opencontainers.image.version` is the bare package version
225
+
226
+ Create the GitHub Release manually from the matching `CHANGELOG.md` entry and
227
+ include the pushed container image reference.
228
+
229
+ For package smoke testing in a clean environment:
230
+
231
+ ```bash
232
+ uv venv /tmp/firecube-release-smoke
233
+ /tmp/firecube-release-smoke/bin/python -m pip install dist/firecube-X.Y.Z-py3-none-any.whl
234
+ /tmp/firecube-release-smoke/bin/firecube --help
235
+ ```
236
+
237
+ If publishing to a package index, wait for propagation and test install from the
238
+ published artifact.
239
+
240
+ ## Report
241
+
242
+ Return:
243
+
244
+ - version
245
+ - checks run and result
246
+ - files changed
247
+ - release notes draft
248
+ - remaining manual steps
249
+ - whether anything was skipped and why