lsst-daf-butler 29.2025.4400__tar.gz → 29.2025.4700__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.
- {lsst_daf_butler-29.2025.4400/python/lsst_daf_butler.egg-info → lsst_daf_butler-29.2025.4700}/PKG-INFO +1 -2
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/pyproject.toml +1 -2
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/__init__.py +0 -3
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/_butler.py +23 -2
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/_dataset_provenance.py +44 -9
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/configs/datastores/formatters.yaml +1 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/configs/datastores/writeRecipes.yaml +8 -21
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/configs/storageClasses.yaml +2 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/delegates/arrowtable.py +3 -1
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/dimensions/_schema.py +2 -24
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/direct_butler/_direct_butler.py +19 -15
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/direct_query_driver/_driver.py +3 -3
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/direct_query_driver/_query_builder.py +1 -1
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/formatters/logs.py +2 -2
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/logging.py +289 -109
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/queries/_expression_strings.py +3 -3
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/queries/_general_query_results.py +9 -1
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/queries/_query.py +11 -3
- {lsst_daf_butler-29.2025.4400/python/lsst/daf/butler/registry → lsst_daf_butler-29.2025.4700/python/lsst/daf/butler}/queries/expressions/__init__.py +0 -2
- lsst_daf_butler-29.2025.4700/python/lsst/daf/butler/queries/expressions/categorize.py +59 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/queries/result_specs.py +2 -2
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/queries/tree/_base.py +3 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/queries/tree/_column_set.py +3 -3
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/_registry.py +1 -2
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/_registry_base.py +1 -2
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/collections/nameKey.py +20 -3
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/collections/synthIntKey.py +20 -6
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/datasets/byDimensions/_dataset_type_cache.py +12 -52
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/datasets/byDimensions/_manager.py +145 -366
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/datasets/byDimensions/tables.py +17 -12
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/dimensions/static.py +1 -72
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/interfaces/_collections.py +45 -8
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/interfaces/_datasets.py +23 -59
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/interfaces/_dimensions.py +0 -42
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/interfaces/_obscore.py +15 -5
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/managers.py +0 -22
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/obscore/_manager.py +50 -42
- lsst_daf_butler-29.2025.4700/python/lsst/daf/butler/registry/queries/__init__.py +31 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/queries/_query_datasets.py +2 -2
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/sql_registry.py +17 -18
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/tests/_database.py +2 -2
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/tests/_registry.py +110 -3
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/remote_butler/_remote_butler.py +14 -1
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/remote_butler/server/handlers/_external.py +11 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/remote_butler/server_models.py +8 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/tests/hybrid_butler.py +4 -1
- lsst_daf_butler-29.2025.4700/python/lsst/daf/butler/version.py +2 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700/python/lsst_daf_butler.egg-info}/PKG-INFO +1 -2
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst_daf_butler.egg-info/SOURCES.txt +11 -26
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst_daf_butler.egg-info/requires.txt +0 -1
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_butler.py +6 -2
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_datasets.py +39 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_datastore.py +1 -1
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_dimensions.py +8 -6
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_exprParserLex.py +1 -1
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_exprParserYacc.py +2 -2
- lsst_daf_butler-29.2025.4700/tests/test_logFormatter.py +209 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_logging.py +3 -3
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_parquet.py +3 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_versioning.py +1 -1
- lsst_daf_butler-29.2025.4400/python/lsst/daf/butler/_column_categorization.py +0 -83
- lsst_daf_butler-29.2025.4400/python/lsst/daf/butler/_column_tags.py +0 -210
- lsst_daf_butler-29.2025.4400/python/lsst/daf/butler/_column_type_info.py +0 -180
- lsst_daf_butler-29.2025.4400/python/lsst/daf/butler/registry/queries/__init__.py +0 -36
- lsst_daf_butler-29.2025.4400/python/lsst/daf/butler/registry/queries/_query_backend.py +0 -711
- lsst_daf_butler-29.2025.4400/python/lsst/daf/butler/registry/queries/_query_context.py +0 -474
- lsst_daf_butler-29.2025.4400/python/lsst/daf/butler/registry/queries/_readers.py +0 -348
- lsst_daf_butler-29.2025.4400/python/lsst/daf/butler/registry/queries/_sql_query_backend.py +0 -217
- lsst_daf_butler-29.2025.4400/python/lsst/daf/butler/registry/queries/_sql_query_context.py +0 -555
- lsst_daf_butler-29.2025.4400/python/lsst/daf/butler/registry/queries/butler_sql_engine.py +0 -226
- lsst_daf_butler-29.2025.4400/python/lsst/daf/butler/registry/queries/expressions/_predicate.py +0 -538
- lsst_daf_butler-29.2025.4400/python/lsst/daf/butler/registry/queries/expressions/categorize.py +0 -339
- lsst_daf_butler-29.2025.4400/python/lsst/daf/butler/registry/queries/expressions/check.py +0 -540
- lsst_daf_butler-29.2025.4400/python/lsst/daf/butler/registry/queries/expressions/normalForm.py +0 -1186
- lsst_daf_butler-29.2025.4400/python/lsst/daf/butler/registry/queries/find_first_dataset.py +0 -102
- lsst_daf_butler-29.2025.4400/python/lsst/daf/butler/version.py +0 -2
- lsst_daf_butler-29.2025.4400/tests/test_expressions.py +0 -395
- lsst_daf_butler-29.2025.4400/tests/test_logFormatter.py +0 -103
- lsst_daf_butler-29.2025.4400/tests/test_normalFormExpression.py +0 -238
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/COPYRIGHT +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/LICENSE +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/MANIFEST.in +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/README.md +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/bsd_license.txt +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/doc/lsst.daf.butler/CHANGES.rst +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/doc/lsst.daf.butler/concreteStorageClasses.rst +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/doc/lsst.daf.butler/configuring.rst +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/doc/lsst.daf.butler/datastores.rst +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/doc/lsst.daf.butler/dimensions.rst +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/doc/lsst.daf.butler/formatters.rst +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/doc/lsst.daf.butler/index.rst +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/doc/lsst.daf.butler/organizing.rst +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/doc/lsst.daf.butler/queries.rst +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/doc/lsst.daf.butler/use-in-tests.rst +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/doc/lsst.daf.butler/writing-subcommands.rst +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/gpl-v3.0.txt +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/_butler_collections.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/_butler_config.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/_butler_instance_options.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/_butler_metrics.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/_butler_repo_index.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/_collection_type.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/_config.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/_config_support.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/_dataset_association.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/_dataset_existence.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/_dataset_ref.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/_dataset_type.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/_deferredDatasetHandle.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/_exceptions.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/_exceptions_legacy.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/_file_dataset.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/_file_descriptor.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/_formatter.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/_labeled_butler_factory.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/_limited_butler.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/_location.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/_named.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/_quantum.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/_quantum_backed.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/_query_all_datasets.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/_registry_shim.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/_rubin/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/_rubin/file_datasets.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/_standalone_datastore.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/_storage_class.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/_storage_class_delegate.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/_timespan.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/_topology.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/_utilities/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/_utilities/locked_object.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/_utilities/named_locks.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/_utilities/thread_safe_cache.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/_uuid.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/arrow_utils.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/cli/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/cli/butler.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/cli/cliLog.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/cli/cmd/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/cli/cmd/_remove_collections.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/cli/cmd/_remove_runs.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/cli/cmd/commands.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/cli/opt/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/cli/opt/arguments.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/cli/opt/optionGroups.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/cli/opt/options.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/cli/progress.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/cli/utils.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/column_spec.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/configs/datastore.yaml +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/configs/datastores/composites.yaml +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/configs/datastores/fileDatastore.yaml +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/configs/dimensions.yaml +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/configs/old_dimensions/daf_butler_universe0.yaml +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/configs/old_dimensions/daf_butler_universe1.yaml +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/configs/old_dimensions/daf_butler_universe2.yaml +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/configs/old_dimensions/daf_butler_universe3.yaml +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/configs/old_dimensions/daf_butler_universe4.yaml +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/configs/old_dimensions/daf_butler_universe5.yaml +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/configs/old_dimensions/daf_butler_universe6.yaml +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/configs/old_dimensions/daf_butler_universe7.yaml +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/configs/registry.yaml +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/configs/repo_transfer_formats.yaml +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/datastore/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/datastore/_datastore.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/datastore/_transfer.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/datastore/cache_manager.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/datastore/composites.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/datastore/constraints.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/datastore/file_templates.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/datastore/generic_base.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/datastore/record_data.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/datastore/stored_file_info.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/datastores/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/datastores/chainedDatastore.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/datastores/fileDatastore.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/datastores/file_datastore/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/datastores/file_datastore/get.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/datastores/file_datastore/retrieve_artifacts.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/datastores/file_datastore/transfer.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/datastores/inMemoryDatastore.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/ddl.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/delegates/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/dimensions/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/dimensions/_config.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/dimensions/_coordinate.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/dimensions/_data_coordinate_iterable.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/dimensions/_database.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/dimensions/_elements.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/dimensions/_governor.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/dimensions/_group.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/dimensions/_packer.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/dimensions/_record_set.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/dimensions/_record_table.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/dimensions/_records.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/dimensions/_skypix.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/dimensions/_universe.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/dimensions/construction.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/dimensions/record_cache.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/direct_butler/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/direct_butler/_direct_butler_collections.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/direct_query_driver/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/direct_query_driver/_postprocessing.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/direct_query_driver/_query_analysis.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/direct_query_driver/_result_page_converter.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/direct_query_driver/_sql_builders.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/direct_query_driver/_sql_column_visitor.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/formatters/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/formatters/astropyTable.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/formatters/file.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/formatters/json.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/formatters/matplotlib.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/formatters/packages.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/formatters/parquet.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/formatters/pickle.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/formatters/typeless.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/formatters/yaml.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/json.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/mapping_factory.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/name_shrinker.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/nonempty_mapping.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/persistence_context.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/progress.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/py.typed +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/pydantic_utils.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/queries/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/queries/_base.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/queries/_data_coordinate_query_results.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/queries/_dataset_query_results.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/queries/_dimension_record_query_results.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/queries/_identifiers.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/queries/convert_args.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/queries/driver.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/queries/expression_factory.py +0 -0
- {lsst_daf_butler-29.2025.4400/python/lsst/daf/butler/registry → lsst_daf_butler-29.2025.4700/python/lsst/daf/butler}/queries/expressions/parser/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4400/python/lsst/daf/butler/registry → lsst_daf_butler-29.2025.4700/python/lsst/daf/butler}/queries/expressions/parser/exprTree.py +0 -0
- {lsst_daf_butler-29.2025.4400/python/lsst/daf/butler/registry → lsst_daf_butler-29.2025.4700/python/lsst/daf/butler}/queries/expressions/parser/parser.py +0 -0
- {lsst_daf_butler-29.2025.4400/python/lsst/daf/butler/registry → lsst_daf_butler-29.2025.4700/python/lsst/daf/butler}/queries/expressions/parser/parserLex.py +0 -0
- {lsst_daf_butler-29.2025.4400/python/lsst/daf/butler/registry → lsst_daf_butler-29.2025.4700/python/lsst/daf/butler}/queries/expressions/parser/parserYacc.py +0 -0
- {lsst_daf_butler-29.2025.4400/python/lsst/daf/butler/registry → lsst_daf_butler-29.2025.4700/python/lsst/daf/butler}/queries/expressions/parser/ply/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4400/python/lsst/daf/butler/registry → lsst_daf_butler-29.2025.4700/python/lsst/daf/butler}/queries/expressions/parser/ply/lex.py +0 -0
- {lsst_daf_butler-29.2025.4400/python/lsst/daf/butler/registry → lsst_daf_butler-29.2025.4700/python/lsst/daf/butler}/queries/expressions/parser/ply/yacc.py +0 -0
- {lsst_daf_butler-29.2025.4400/python/lsst/daf/butler/registry → lsst_daf_butler-29.2025.4700/python/lsst/daf/butler}/queries/expressions/parser/treeVisitor.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/queries/overlaps.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/queries/predicate_constraints_summary.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/queries/tree/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/queries/tree/_column_expression.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/queries/tree/_column_literal.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/queries/tree/_column_reference.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/queries/tree/_predicate.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/queries/tree/_query_tree.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/queries/visitors.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/_caching_context.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/_collection_record_cache.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/_collection_summary.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/_collection_summary_cache.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/_config.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/_defaults.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/_exceptions.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/_registry_factory.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/attributes.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/bridge/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/bridge/ephemeral.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/bridge/monolithic.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/collections/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/collections/_base.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/connectionString.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/databases/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/databases/postgresql.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/databases/sqlite.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/datasets/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/datasets/byDimensions/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/datasets/byDimensions/summaries.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/dimensions/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/interfaces/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/interfaces/_attributes.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/interfaces/_bridge.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/interfaces/_database.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/interfaces/_database_explain.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/interfaces/_opaque.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/interfaces/_versioning.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/nameShrinker.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/obscore/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/obscore/_config.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/obscore/_records.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/obscore/_schema.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/obscore/_spatial.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/obscore/default_spatial.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/obscore/pgsphere.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/opaque.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/queries/_query_common.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/queries/_query_data_coordinates.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/queries/_query_dimension_records.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/queries/_results.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/tests/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/versions.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/registry/wildcards.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/remote_butler/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/remote_butler/_collection_args.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/remote_butler/_config.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/remote_butler/_defaults.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/remote_butler/_errors.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/remote_butler/_factory.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/remote_butler/_get.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/remote_butler/_http_connection.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/remote_butler/_query_driver.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/remote_butler/_query_results.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/remote_butler/_ref_utils.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/remote_butler/_registry.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/remote_butler/_remote_butler_collections.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/remote_butler/_remote_file_transfer_source.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/remote_butler/authentication/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/remote_butler/authentication/cadc.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/remote_butler/authentication/interface.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/remote_butler/authentication/rubin.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/remote_butler/registry/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/remote_butler/server/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/remote_butler/server/_config.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/remote_butler/server/_dependencies.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/remote_butler/server/_factory.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/remote_butler/server/_gafaelfawr.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/remote_butler/server/_server.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/remote_butler/server/_telemetry.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/remote_butler/server/handlers/_external_query.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/remote_butler/server/handlers/_file_info.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/remote_butler/server/handlers/_internal.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/remote_butler/server/handlers/_query_limits.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/remote_butler/server/handlers/_query_serialization.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/remote_butler/server/handlers/_query_streaming.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/remote_butler/server/handlers/_utils.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/repo_relocation.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/script/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/script/_associate.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/script/_pruneDatasets.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/script/butlerImport.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/script/certifyCalibrations.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/script/collectionChain.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/script/configDump.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/script/configValidate.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/script/createRepo.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/script/exportCalibs.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/script/ingest_files.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/script/ingest_zip.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/script/queryCollections.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/script/queryDataIds.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/script/queryDatasetTypes.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/script/queryDatasets.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/script/queryDimensionRecords.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/script/register_dataset_type.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/script/removeCollections.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/script/removeDatasetType.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/script/removeRuns.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/script/retrieveArtifacts.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/script/transferDatasets.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/tests/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/tests/_datasetsHelper.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/tests/_dummyRegistry.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/tests/_examplePythonTypes.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/tests/_testRepo.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/tests/butler_queries.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/tests/cliCmdTestBase.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/tests/cliLogTestBase.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/tests/deferredFormatter.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/tests/dict_convertible_model.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/tests/hybrid_butler_collections.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/tests/hybrid_butler_registry.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/tests/postgresql.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/tests/registry_data/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/tests/registry_data/base.yaml +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/tests/registry_data/ci_hsc-subset-skymap.yaml +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/tests/registry_data/ci_hsc-subset.yaml +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/tests/registry_data/datasets.yaml +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/tests/registry_data/hsc-rc2-subset-v0.yaml +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/tests/registry_data/spatial.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/tests/registry_data/spatial.yaml +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/tests/server.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/tests/server_available.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/tests/server_utils.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/tests/testFormatters.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/tests/utils.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/time_utils.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/timespan_database_representation.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/transfers/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/transfers/_context.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/transfers/_interfaces.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/transfers/_yaml.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/utils.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst_daf_butler.egg-info/dependency_links.txt +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst_daf_butler.egg-info/entry_points.txt +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst_daf_butler.egg-info/top_level.txt +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst_daf_butler.egg-info/zip-safe +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/setup.cfg +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_astropyTableFormatter.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_authentication.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_butler_factory.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_cliCmdAssociate.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_cliCmdConfigDump.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_cliCmdConfigValidate.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_cliCmdCreate.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_cliCmdImport.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_cliCmdIngestFiles.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_cliCmdPruneDatasets.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_cliCmdQueryCollections.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_cliCmdQueryDataIds.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_cliCmdQueryDatasetTypes.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_cliCmdQueryDatasets.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_cliCmdQueryDimensionRecords.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_cliCmdRemoveCollections.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_cliCmdRemoveRuns.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_cliCmdRetrieveArtifacts.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_cliLog.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_cliPluginLoader.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_cliUtilSplitCommas.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_cliUtilSplitKv.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_cliUtilToUpper.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_cliUtils.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_column_spec.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_composites.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_config.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_connectionString.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_constraints.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_ddl.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_dimension_record_containers.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_formatter.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_gafaelfawr.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_location.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_matplotlibFormatter.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_nonempty_mapping.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_obscore.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_packages.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_postgresql.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_progress.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_pydantic_utils.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_quantum.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_quantumBackedButler.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_query_direct_postgresql.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_query_direct_sqlite.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_query_interface.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_query_remote.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_query_utilities.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_remote_butler.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_server.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_simpleButler.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_sqlite.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_storageClass.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_templates.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_testRepo.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_thread_utils.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_time_utils.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_timespan.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_utils.py +0 -0
- {lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/tests/test_uuid.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: lsst-daf-butler
|
|
3
|
-
Version: 29.2025.
|
|
3
|
+
Version: 29.2025.4700
|
|
4
4
|
Summary: An abstraction layer for reading and writing astronomical data to datastores.
|
|
5
5
|
Author-email: Rubin Observatory Data Management <dm-admin@lists.lsst.org>
|
|
6
6
|
License-Expression: BSD-3-Clause OR GPL-3.0-or-later
|
|
@@ -26,7 +26,6 @@ Requires-Dist: click>=7.0
|
|
|
26
26
|
Requires-Dist: lsst-sphgeom
|
|
27
27
|
Requires-Dist: lsst-utils
|
|
28
28
|
Requires-Dist: lsst-resources
|
|
29
|
-
Requires-Dist: lsst-daf-relation
|
|
30
29
|
Requires-Dist: deprecated>=1.2
|
|
31
30
|
Requires-Dist: pydantic<3.0,>=2
|
|
32
31
|
Requires-Dist: pyarrow>=0.16
|
|
@@ -30,7 +30,6 @@ dependencies = [
|
|
|
30
30
|
"lsst-sphgeom",
|
|
31
31
|
"lsst-utils",
|
|
32
32
|
"lsst-resources",
|
|
33
|
-
"lsst-daf-relation",
|
|
34
33
|
"deprecated >= 1.2",
|
|
35
34
|
"pydantic >=2,<3.0",
|
|
36
35
|
"pyarrow >= 0.16",
|
|
@@ -205,7 +204,7 @@ extend-select = [
|
|
|
205
204
|
|
|
206
205
|
[tool.ruff.lint.per-file-ignores]
|
|
207
206
|
# parserYacc docstrings can not be fixed. Docstrings are used to define grammar.
|
|
208
|
-
"python/lsst/daf/butler/
|
|
207
|
+
"python/lsst/daf/butler/queries/expressions/parser/parserYacc.py" = ["D401", "D403"]
|
|
209
208
|
|
|
210
209
|
[tool.ruff.lint.isort]
|
|
211
210
|
known-first-party = ["lsst"]
|
{lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/__init__.py
RENAMED
|
@@ -41,9 +41,6 @@ from ._butler_config import *
|
|
|
41
41
|
from ._butler_metrics import *
|
|
42
42
|
from ._butler_repo_index import *
|
|
43
43
|
from ._collection_type import CollectionType
|
|
44
|
-
from ._column_categorization import *
|
|
45
|
-
from ._column_tags import *
|
|
46
|
-
from ._column_type_info import *
|
|
47
44
|
from ._config import *
|
|
48
45
|
from ._config_support import LookupKey
|
|
49
46
|
from ._dataset_association import *
|
{lsst_daf_butler-29.2025.4400 → lsst_daf_butler-29.2025.4700}/python/lsst/daf/butler/_butler.py
RENAMED
|
@@ -1012,7 +1012,7 @@ class Butler(LimitedButler): # numpydoc ignore=PR02
|
|
|
1012
1012
|
@abstractmethod
|
|
1013
1013
|
def get_dataset(
|
|
1014
1014
|
self,
|
|
1015
|
-
id: DatasetId,
|
|
1015
|
+
id: DatasetId | str,
|
|
1016
1016
|
*,
|
|
1017
1017
|
storage_class: str | StorageClass | None = None,
|
|
1018
1018
|
dimension_records: bool = False,
|
|
@@ -1023,7 +1023,8 @@ class Butler(LimitedButler): # numpydoc ignore=PR02
|
|
|
1023
1023
|
Parameters
|
|
1024
1024
|
----------
|
|
1025
1025
|
id : `DatasetId`
|
|
1026
|
-
The unique identifier for the dataset
|
|
1026
|
+
The unique identifier for the dataset, as an instance of
|
|
1027
|
+
`uuid.UUID` or a string containing a hexadecimal number.
|
|
1027
1028
|
storage_class : `str` or `StorageClass` or `None`
|
|
1028
1029
|
A storage class to use when creating the returned entry. If given
|
|
1029
1030
|
it must be compatible with the default storage class.
|
|
@@ -1040,6 +1041,26 @@ class Butler(LimitedButler): # numpydoc ignore=PR02
|
|
|
1040
1041
|
"""
|
|
1041
1042
|
raise NotImplementedError()
|
|
1042
1043
|
|
|
1044
|
+
@abstractmethod
|
|
1045
|
+
def get_many_datasets(self, ids: Iterable[DatasetId | str]) -> list[DatasetRef]:
|
|
1046
|
+
"""Retrieve a list of dataset entries.
|
|
1047
|
+
|
|
1048
|
+
Parameters
|
|
1049
|
+
----------
|
|
1050
|
+
ids : `~collections.abc.Iterable` [ `DatasetId` or `str` ]
|
|
1051
|
+
The unique identifiers for the datasets, as instances of
|
|
1052
|
+
`uuid.UUID` or strings containing a hexadecimal number.
|
|
1053
|
+
|
|
1054
|
+
Returns
|
|
1055
|
+
-------
|
|
1056
|
+
refs : `list` [ `DatasetRef` ]
|
|
1057
|
+
A list containing a `DatasetRef` for each of the given dataset IDs.
|
|
1058
|
+
If a dataset was not found, no error is thrown -- it is just not
|
|
1059
|
+
included in the list. The returned datasets are in no particular
|
|
1060
|
+
order.
|
|
1061
|
+
"""
|
|
1062
|
+
raise NotImplementedError()
|
|
1063
|
+
|
|
1043
1064
|
@abstractmethod
|
|
1044
1065
|
def find_dataset(
|
|
1045
1066
|
self,
|
|
@@ -112,6 +112,8 @@ class DatasetProvenance(pydantic.BaseModel):
|
|
|
112
112
|
sep: str = ".",
|
|
113
113
|
simple_types: bool = False,
|
|
114
114
|
use_upper: bool | None = None,
|
|
115
|
+
max_inputs: int | None = None,
|
|
116
|
+
store_minimalist_inputs: bool = False,
|
|
115
117
|
) -> dict[str, _PROV_TYPES]:
|
|
116
118
|
"""Return provenance as a flattened dictionary.
|
|
117
119
|
|
|
@@ -137,6 +139,13 @@ class DatasetProvenance(pydantic.BaseModel):
|
|
|
137
139
|
character of the prefix (defined by whether `str.isupper()` returns
|
|
138
140
|
true, else they will be lower case). If `False` the case will be
|
|
139
141
|
lower case, and if `True` the case will be upper case.
|
|
142
|
+
max_inputs : `int` or `None`, optional
|
|
143
|
+
Maximum number of inputs to be recorded in provenance. `None`
|
|
144
|
+
results in all inputs being recorded. If the number of inputs
|
|
145
|
+
exceeds this value no input provenance will be recorded.
|
|
146
|
+
store_minimalist_inputs : `bool`, optional
|
|
147
|
+
If `True` only the ID of the input is stored along with explicit
|
|
148
|
+
extras. If `False` the run and dataset type are also recorded.
|
|
140
149
|
|
|
141
150
|
Returns
|
|
142
151
|
-------
|
|
@@ -155,7 +164,13 @@ class DatasetProvenance(pydantic.BaseModel):
|
|
|
155
164
|
|
|
156
165
|
Each input dataset will have the ``id``, ``run``, and ``datasettype``
|
|
157
166
|
keys as defined above (but no ``dataid`` key) with an ``input N``
|
|
158
|
-
prefix where ``N`` starts counting at 0.
|
|
167
|
+
prefix where ``N`` starts counting at 0. It is possible to drop
|
|
168
|
+
the ``datasettype`` and ``run`` to save space by using the
|
|
169
|
+
``store_minimalist_inputs`` flag.
|
|
170
|
+
|
|
171
|
+
If there are too many inputs (see the ``max_inputs`` parameters)
|
|
172
|
+
no inputs will be recorded. The number of inputs is always recorded
|
|
173
|
+
to indicate that the inputs were dropped.
|
|
159
174
|
|
|
160
175
|
The quantum ID, if present, will use key ``quantum``.
|
|
161
176
|
|
|
@@ -171,6 +186,7 @@ class DatasetProvenance(pydantic.BaseModel):
|
|
|
171
186
|
"lsst.butler.dataid.detector": 10,
|
|
172
187
|
"lsst.butler.dataid.instrument": "LSSTCam",
|
|
173
188
|
"lsst.butler.quantum": "d93a735b-08f0-477d-bc95-2cc32d6d898b",
|
|
189
|
+
"lsst.butler.n_inputs": 2,
|
|
174
190
|
"lsst.butler.input.0.id": "3dfd7ba5-5e35-4565-9d87-4b33880ed06c",
|
|
175
191
|
"lsst.butler.input.0.run": "other_run",
|
|
176
192
|
"lsst.butler.input.0.datasettype": "astropy_parquet",
|
|
@@ -206,12 +222,28 @@ class DatasetProvenance(pydantic.BaseModel):
|
|
|
206
222
|
if self.quantum_id is not None:
|
|
207
223
|
prov[_make_key("quantum")] = self.quantum_id if not simple_types else str(self.quantum_id)
|
|
208
224
|
|
|
209
|
-
|
|
225
|
+
# Record the number of inputs so that people can determine how many
|
|
226
|
+
# there were even if they were dropped because they exceeded the
|
|
227
|
+
# allowed maximum. Do not record the count if we have a null provenance
|
|
228
|
+
# state with no ref and no inputs.
|
|
229
|
+
if ref is not None or len(self.inputs) > 0:
|
|
230
|
+
prov[_make_key("n_inputs")] = len(self.inputs)
|
|
231
|
+
|
|
232
|
+
# Remove all inputs if the maximum is found. Truncating to the
|
|
233
|
+
# maximum (or auto switching to minimalist mode and increasing the
|
|
234
|
+
# maximum by 3) is not preferred.
|
|
235
|
+
inputs = (
|
|
236
|
+
self.inputs
|
|
237
|
+
if max_inputs is None or (max_inputs is not None and len(self.inputs) <= max_inputs)
|
|
238
|
+
else []
|
|
239
|
+
)
|
|
240
|
+
for i, input in enumerate(inputs):
|
|
210
241
|
prov[_make_key("input", i, "id")] = input.id if not simple_types else str(input.id)
|
|
211
|
-
if
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
242
|
+
if not store_minimalist_inputs:
|
|
243
|
+
if input.run is not None: # for mypy
|
|
244
|
+
prov[_make_key("input", i, "run")] = input.run
|
|
245
|
+
if input.datasetType is not None: # for mypy
|
|
246
|
+
prov[_make_key("input", i, "datasettype")] = input.datasetType.name
|
|
215
247
|
|
|
216
248
|
if input.id in self.extras:
|
|
217
249
|
for xk, xv in self.extras[input.id].items():
|
|
@@ -369,7 +401,9 @@ class DatasetProvenance(pydantic.BaseModel):
|
|
|
369
401
|
# Prefix will always include the separator if it is defined.
|
|
370
402
|
prefix += sep
|
|
371
403
|
|
|
372
|
-
core_provenance = tuple(
|
|
404
|
+
core_provenance = tuple(
|
|
405
|
+
f"{prefix}{k}".lower() for k in ("run", "id", "datasettype", "quantum", "n_inputs")
|
|
406
|
+
)
|
|
373
407
|
|
|
374
408
|
# Need to escape the prefix and separator for regex usage.
|
|
375
409
|
esc_sep = re.escape(sep)
|
|
@@ -445,7 +479,7 @@ class DatasetProvenance(pydantic.BaseModel):
|
|
|
445
479
|
|
|
446
480
|
quantum_id = None
|
|
447
481
|
ref_id = None
|
|
448
|
-
input_ids = {}
|
|
482
|
+
input_ids: dict[int, uuid.UUID] = {}
|
|
449
483
|
extras: dict[int, dict[str, Any]] = {}
|
|
450
484
|
|
|
451
485
|
for k, standard in prov_keys.items():
|
|
@@ -475,8 +509,9 @@ class DatasetProvenance(pydantic.BaseModel):
|
|
|
475
509
|
|
|
476
510
|
provenance = cls(quantum_id=quantum_id)
|
|
477
511
|
|
|
512
|
+
input_refs = {ref.id: ref for ref in butler.get_many_datasets(input_ids.values())}
|
|
478
513
|
for i in sorted(input_ids):
|
|
479
|
-
input_ref =
|
|
514
|
+
input_ref = input_refs.get(input_ids[i])
|
|
480
515
|
if input_ref is None:
|
|
481
516
|
raise ValueError(f"Input dataset ({input_ids[i]}) is not known to this butler.")
|
|
482
517
|
provenance.add_input(input_ref)
|
|
@@ -97,3 +97,4 @@ QPEnsemble: lsst.meas.pz.qp_formatter.QPFormatter
|
|
|
97
97
|
PZModel: lsst.meas.pz.model_formatter.ModelFormatter
|
|
98
98
|
VisitBackgroundModel: lsst.daf.butler.formatters.json.JsonFormatter
|
|
99
99
|
VignettingCorrection: lsst.ts.observatory.control.utils.extras.vignetting_storage.VignettingCorrectionFormatter
|
|
100
|
+
SSPAuxiliaryFile: lsst.pipe.tasks.sspAuxiliaryFile.SSPAuxiliaryFileFormatter
|
|
@@ -1,23 +1,12 @@
|
|
|
1
1
|
lsst.obs.base.formatters.fitsExposure.StandardFitsImageFormatterBase: &StandardFitsImageFormatterBase
|
|
2
2
|
# No compression
|
|
3
3
|
noCompression: &noCompression
|
|
4
|
-
|
|
5
|
-
compression:
|
|
6
|
-
algorithm: NONE
|
|
7
|
-
scaling:
|
|
8
|
-
algorithm: NONE
|
|
9
|
-
mask:
|
|
10
|
-
<<: *noCompressionOptions
|
|
11
|
-
variance:
|
|
12
|
-
<<: *noCompressionOptions
|
|
4
|
+
null
|
|
13
5
|
|
|
14
6
|
# Lossless compression
|
|
15
7
|
lossless: &lossless
|
|
16
8
|
image: &losslessOptions
|
|
17
|
-
|
|
18
|
-
algorithm: GZIP_SHUFFLE
|
|
19
|
-
scaling:
|
|
20
|
-
algorithm: NONE
|
|
9
|
+
algorithm: GZIP_2
|
|
21
10
|
mask:
|
|
22
11
|
<<: *losslessOptions
|
|
23
12
|
variance:
|
|
@@ -26,14 +15,12 @@ lsst.obs.base.formatters.fitsExposure.StandardFitsImageFormatterBase: &StandardF
|
|
|
26
15
|
# Basic lossy (quantizing) compression
|
|
27
16
|
lossyBasic: &lossyBasic
|
|
28
17
|
image: &lossyBasicOptions
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
quantizeLevel: 10.0
|
|
36
|
-
quantizePad: 10.0
|
|
18
|
+
algorithm: RICE_1
|
|
19
|
+
quantization:
|
|
20
|
+
dither: SUBTRACTIVE_DITHER_2
|
|
21
|
+
scaling: STDEV_MASKED
|
|
22
|
+
mask_planes: ["NO_DATA"]
|
|
23
|
+
level: 10.0
|
|
37
24
|
mask:
|
|
38
25
|
<<: *losslessOptions
|
|
39
26
|
variance:
|
|
@@ -437,3 +437,5 @@ storageClasses:
|
|
|
437
437
|
pytype: lsst.drp.tasks.fit_visit_background.VisitBackgroundModel
|
|
438
438
|
VignettingCorrection:
|
|
439
439
|
pytype: lsst.ts.observatory.control.utils.extras.vignetting_correction.VignettingCorrection
|
|
440
|
+
SSPAuxiliaryFile:
|
|
441
|
+
pytype: lsst.pipe.tasks.sspAuxiliaryFile.SSPAuxiliaryFile
|
|
@@ -229,7 +229,9 @@ def _add_arrow_provenance(
|
|
|
229
229
|
type_string = _checkArrowCompatibleType(in_memory_dataset)
|
|
230
230
|
if type_string == "astropy":
|
|
231
231
|
provenance = provenance if provenance is not None else DatasetProvenance()
|
|
232
|
-
prov_dict = provenance.to_flat_dict(
|
|
232
|
+
prov_dict = provenance.to_flat_dict(
|
|
233
|
+
ref, prefix="LSST.BUTLER", sep=".", simple_types=True, max_inputs=2000
|
|
234
|
+
)
|
|
233
235
|
|
|
234
236
|
# Strip any previous provenance.
|
|
235
237
|
DatasetProvenance.strip_provenance_from_flat_dict(in_memory_dataset.meta)
|
|
@@ -29,20 +29,17 @@ from __future__ import annotations
|
|
|
29
29
|
__all__ = ("DimensionRecordSchema", "addDimensionForeignKey")
|
|
30
30
|
|
|
31
31
|
import copy
|
|
32
|
-
from collections.abc import
|
|
32
|
+
from collections.abc import Set
|
|
33
33
|
from typing import TYPE_CHECKING
|
|
34
34
|
|
|
35
|
-
from lsst.utils.classes import
|
|
35
|
+
from lsst.utils.classes import immutable
|
|
36
36
|
|
|
37
37
|
from .. import arrow_utils, ddl
|
|
38
|
-
from .._column_tags import DimensionKeyColumnTag, DimensionRecordColumnTag
|
|
39
38
|
from .._named import NamedValueAbstractSet, NamedValueSet
|
|
40
39
|
from ..column_spec import RegionColumnSpec, TimespanColumnSpec
|
|
41
40
|
from ..timespan_database_representation import TimespanDatabaseRepresentation
|
|
42
41
|
|
|
43
42
|
if TYPE_CHECKING: # Imports needed only for type annotations; may be circular.
|
|
44
|
-
from lsst.daf.relation import ColumnTag
|
|
45
|
-
|
|
46
43
|
from ._elements import Dimension, DimensionElement, KeyColumnSpec, MetadataColumnSpec
|
|
47
44
|
from ._group import DimensionGroup
|
|
48
45
|
|
|
@@ -387,25 +384,6 @@ class DimensionElementFields:
|
|
|
387
384
|
lines.append(" timespan: lsst.daf.butler.Timespan")
|
|
388
385
|
return "\n".join(lines)
|
|
389
386
|
|
|
390
|
-
@property
|
|
391
|
-
@cached_getter
|
|
392
|
-
def columns(self) -> Mapping[ColumnTag, str]:
|
|
393
|
-
"""A mapping from `ColumnTag` to field name for all fields in this
|
|
394
|
-
element's records (`~collections.abc.Mapping`).
|
|
395
|
-
"""
|
|
396
|
-
result: dict[ColumnTag, str] = {}
|
|
397
|
-
for dimension_name, field_name in zip(
|
|
398
|
-
self.element.dimensions.names, self.dimensions.names, strict=True
|
|
399
|
-
):
|
|
400
|
-
result[DimensionKeyColumnTag(dimension_name)] = field_name
|
|
401
|
-
for field_name in self.facts.names:
|
|
402
|
-
result[DimensionRecordColumnTag(self.element.name, field_name)] = field_name
|
|
403
|
-
if self.element.spatial:
|
|
404
|
-
result[DimensionRecordColumnTag(self.element.name, "region")] = "region"
|
|
405
|
-
if self.element.temporal:
|
|
406
|
-
result[DimensionRecordColumnTag(self.element.name, "timespan")] = "timespan"
|
|
407
|
-
return result
|
|
408
|
-
|
|
409
387
|
element: DimensionElement
|
|
410
388
|
"""The dimension element these fields correspond to.
|
|
411
389
|
|
|
@@ -1256,12 +1256,13 @@ class DirectButler(Butler): # numpydoc ignore=PR02
|
|
|
1256
1256
|
|
|
1257
1257
|
def get_dataset(
|
|
1258
1258
|
self,
|
|
1259
|
-
id: DatasetId,
|
|
1259
|
+
id: DatasetId | str,
|
|
1260
1260
|
*,
|
|
1261
1261
|
storage_class: str | StorageClass | None = None,
|
|
1262
1262
|
dimension_records: bool = False,
|
|
1263
1263
|
datastore_records: bool = False,
|
|
1264
1264
|
) -> DatasetRef | None:
|
|
1265
|
+
id = _to_uuid(id)
|
|
1265
1266
|
ref = self._registry.getDataset(id)
|
|
1266
1267
|
if ref is not None:
|
|
1267
1268
|
if dimension_records:
|
|
@@ -1274,6 +1275,10 @@ class DirectButler(Butler): # numpydoc ignore=PR02
|
|
|
1274
1275
|
ref = self._registry.get_datastore_records(ref)
|
|
1275
1276
|
return ref
|
|
1276
1277
|
|
|
1278
|
+
def get_many_datasets(self, ids: Iterable[DatasetId | str]) -> list[DatasetRef]:
|
|
1279
|
+
uuids = [_to_uuid(id) for id in ids]
|
|
1280
|
+
return self._registry._managers.datasets.get_dataset_refs(uuids)
|
|
1281
|
+
|
|
1277
1282
|
def find_dataset(
|
|
1278
1283
|
self,
|
|
1279
1284
|
dataset_type: DatasetType | str,
|
|
@@ -1411,20 +1416,12 @@ class DirectButler(Butler): # numpydoc ignore=PR02
|
|
|
1411
1416
|
# Docstring inherited.
|
|
1412
1417
|
existence = {ref: DatasetExistence.UNRECOGNIZED for ref in refs}
|
|
1413
1418
|
|
|
1414
|
-
#
|
|
1415
|
-
for ref in
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
# When checking a single ref we raise, but it's impolite to
|
|
1421
|
-
# do that when potentially hundreds of refs are being checked.
|
|
1422
|
-
# We could change the API to only accept UUIDs and that would
|
|
1423
|
-
# remove the ability to even check and remove the worry
|
|
1424
|
-
# about differing storage classes. Given the ongoing discussion
|
|
1425
|
-
# on refs vs UUIDs and whether to raise or have a new
|
|
1426
|
-
# private flag, treat this as a private API for now.
|
|
1427
|
-
existence[ref] |= DatasetExistence.RECORDED
|
|
1419
|
+
# Check which refs exist in the registry.
|
|
1420
|
+
id_map = {ref.id: ref for ref in existence.keys()}
|
|
1421
|
+
for registry_ref in self.get_many_datasets(id_map.keys()):
|
|
1422
|
+
# Consistency between the given DatasetRef and the information
|
|
1423
|
+
# recorded in the registry is not verified.
|
|
1424
|
+
existence[id_map[registry_ref.id]] |= DatasetExistence.RECORDED
|
|
1428
1425
|
|
|
1429
1426
|
# Ask datastore if it knows about these refs.
|
|
1430
1427
|
knows = self._datastore.knows_these(refs)
|
|
@@ -2610,3 +2607,10 @@ class _ImportDatasetsInfo(NamedTuple):
|
|
|
2610
2607
|
|
|
2611
2608
|
grouped_refs: defaultdict[_RefGroup, list[DatasetRef]]
|
|
2612
2609
|
dimension_records: dict[DimensionElement, dict[DataCoordinate, DimensionRecord]]
|
|
2610
|
+
|
|
2611
|
+
|
|
2612
|
+
def _to_uuid(id: DatasetId | str) -> uuid.UUID:
|
|
2613
|
+
if isinstance(id, uuid.UUID):
|
|
2614
|
+
return id
|
|
2615
|
+
else:
|
|
2616
|
+
return uuid.UUID(id)
|
|
@@ -1437,7 +1437,7 @@ class DirectQueryDriver(QueryDriver):
|
|
|
1437
1437
|
self,
|
|
1438
1438
|
joins_builder: SqlJoinsBuilder,
|
|
1439
1439
|
resolved_search: ResolvedDatasetSearch[list[str]],
|
|
1440
|
-
fields: Set[
|
|
1440
|
+
fields: Set[qt.AnyDatasetFieldName],
|
|
1441
1441
|
union_dataset_type_name: str,
|
|
1442
1442
|
) -> None: ...
|
|
1443
1443
|
|
|
@@ -1446,14 +1446,14 @@ class DirectQueryDriver(QueryDriver):
|
|
|
1446
1446
|
self,
|
|
1447
1447
|
joins_builder: SqlJoinsBuilder,
|
|
1448
1448
|
resolved_search: ResolvedDatasetSearch[str],
|
|
1449
|
-
fields: Set[
|
|
1449
|
+
fields: Set[qt.AnyDatasetFieldName],
|
|
1450
1450
|
) -> None: ...
|
|
1451
1451
|
|
|
1452
1452
|
def join_dataset_search(
|
|
1453
1453
|
self,
|
|
1454
1454
|
joins_builder: SqlJoinsBuilder,
|
|
1455
1455
|
resolved_search: ResolvedDatasetSearch[Any],
|
|
1456
|
-
fields: Set[
|
|
1456
|
+
fields: Set[qt.AnyDatasetFieldName],
|
|
1457
1457
|
union_dataset_type_name: str | None = None,
|
|
1458
1458
|
) -> None:
|
|
1459
1459
|
"""Join a dataset search into an under-construction query.
|
|
@@ -284,7 +284,7 @@ class QueryBuilder(ABC):
|
|
|
284
284
|
raise NotImplementedError()
|
|
285
285
|
|
|
286
286
|
def _needs_collection_key_field(
|
|
287
|
-
self, dataset_search: ResolvedDatasetSearch, fields_for_dataset: set[
|
|
287
|
+
self, dataset_search: ResolvedDatasetSearch, fields_for_dataset: set[qt.AnyDatasetFieldName]
|
|
288
288
|
) -> bool:
|
|
289
289
|
"""Return `True` if the ``collection_key`` dataset field is needed to
|
|
290
290
|
provide uniqueness for rows.
|
|
@@ -66,5 +66,5 @@ class ButlerLogRecordsFormatter(FormatterV2):
|
|
|
66
66
|
# over pre-downloading the whole file (which can be very large).
|
|
67
67
|
return self._get_read_pytype().from_file(path)
|
|
68
68
|
|
|
69
|
-
def to_bytes(self, in_memory_dataset:
|
|
70
|
-
return in_memory_dataset.
|
|
69
|
+
def to_bytes(self, in_memory_dataset: ButlerLogRecords) -> bytes:
|
|
70
|
+
return in_memory_dataset.to_json_data().encode()
|