lsst-daf-butler 28.2025.900__tar.gz → 29.2025.1000__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-28.2025.900/python/lsst_daf_butler.egg-info → lsst_daf_butler-29.2025.1000}/PKG-INFO +1 -1
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/datastores/fileDatastore.py +14 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/datasets/byDimensions/_manager.py +10 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/tests/_registry.py +12 -1
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/tests/hybrid_butler_registry.py +10 -0
- lsst_daf_butler-29.2025.1000/python/lsst/daf/butler/version.py +2 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000/python/lsst_daf_butler.egg-info}/PKG-INFO +1 -1
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_simpleButler.py +10 -0
- lsst_daf_butler-28.2025.900/python/lsst/daf/butler/version.py +0 -2
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/COPYRIGHT +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/LICENSE +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/MANIFEST.in +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/README.md +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/bsd_license.txt +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/doc/lsst.daf.butler/CHANGES.rst +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/doc/lsst.daf.butler/concreteStorageClasses.rst +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/doc/lsst.daf.butler/configuring.rst +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/doc/lsst.daf.butler/datastores.rst +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/doc/lsst.daf.butler/dimensions.rst +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/doc/lsst.daf.butler/formatters.rst +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/doc/lsst.daf.butler/index.rst +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/doc/lsst.daf.butler/organizing.rst +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/doc/lsst.daf.butler/queries.rst +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/doc/lsst.daf.butler/use-in-tests.rst +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/doc/lsst.daf.butler/writing-subcommands.rst +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/gpl-v3.0.txt +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/pyproject.toml +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/__init__.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/__init__.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/__init__.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/_butler.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/_butler_collections.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/_butler_config.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/_butler_instance_options.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/_butler_repo_index.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/_collection_type.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/_column_categorization.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/_column_tags.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/_column_type_info.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/_config.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/_config_support.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/_dataset_association.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/_dataset_existence.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/_dataset_provenance.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/_dataset_ref.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/_dataset_type.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/_deferredDatasetHandle.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/_exceptions.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/_exceptions_legacy.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/_file_dataset.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/_file_descriptor.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/_formatter.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/_labeled_butler_factory.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/_limited_butler.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/_location.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/_named.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/_quantum.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/_quantum_backed.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/_query_all_datasets.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/_registry_shim.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/_storage_class.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/_storage_class_delegate.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/_timespan.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/_topology.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/_utilities/__init__.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/_utilities/locked_object.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/_utilities/named_locks.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/_utilities/thread_safe_cache.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/arrow_utils.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/cli/__init__.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/cli/butler.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/cli/cliLog.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/cli/cmd/__init__.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/cli/cmd/_remove_collections.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/cli/cmd/_remove_runs.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/cli/cmd/commands.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/cli/opt/__init__.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/cli/opt/arguments.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/cli/opt/optionGroups.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/cli/opt/options.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/cli/progress.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/cli/utils.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/column_spec.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/configs/datastore.yaml +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/configs/datastores/composites.yaml +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/configs/datastores/fileDatastore.yaml +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/configs/datastores/formatters.yaml +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/configs/datastores/writeRecipes.yaml +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/configs/dimensions.yaml +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/configs/old_dimensions/daf_butler_universe0.yaml +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/configs/old_dimensions/daf_butler_universe1.yaml +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/configs/old_dimensions/daf_butler_universe2.yaml +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/configs/old_dimensions/daf_butler_universe3.yaml +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/configs/old_dimensions/daf_butler_universe4.yaml +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/configs/old_dimensions/daf_butler_universe5.yaml +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/configs/old_dimensions/daf_butler_universe6.yaml +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/configs/old_dimensions/daf_butler_universe7.yaml +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/configs/registry.yaml +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/configs/repo_transfer_formats.yaml +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/configs/storageClasses.yaml +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/datastore/__init__.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/datastore/_datastore.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/datastore/cache_manager.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/datastore/composites.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/datastore/constraints.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/datastore/file_templates.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/datastore/generic_base.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/datastore/record_data.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/datastore/stored_file_info.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/datastores/__init__.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/datastores/chainedDatastore.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/datastores/fileDatastoreClient.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/datastores/file_datastore/__init__.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/datastores/file_datastore/get.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/datastores/file_datastore/retrieve_artifacts.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/datastores/inMemoryDatastore.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/ddl.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/delegates/__init__.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/delegates/arrowtable.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/dimensions/__init__.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/dimensions/_config.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/dimensions/_coordinate.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/dimensions/_data_coordinate_iterable.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/dimensions/_database.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/dimensions/_elements.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/dimensions/_governor.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/dimensions/_group.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/dimensions/_packer.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/dimensions/_record_set.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/dimensions/_record_table.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/dimensions/_records.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/dimensions/_schema.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/dimensions/_skypix.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/dimensions/_universe.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/dimensions/construction.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/dimensions/record_cache.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/direct_butler/__init__.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/direct_butler/_direct_butler.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/direct_butler/_direct_butler_collections.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/direct_query_driver/__init__.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/direct_query_driver/_driver.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/direct_query_driver/_postprocessing.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/direct_query_driver/_predicate_constraints_summary.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/direct_query_driver/_query_analysis.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/direct_query_driver/_query_builder.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/direct_query_driver/_result_page_converter.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/direct_query_driver/_sql_builders.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/direct_query_driver/_sql_column_visitor.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/formatters/__init__.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/formatters/astropyTable.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/formatters/file.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/formatters/json.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/formatters/logs.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/formatters/matplotlib.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/formatters/packages.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/formatters/parquet.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/formatters/pickle.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/formatters/typeless.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/formatters/yaml.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/json.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/logging.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/mapping_factory.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/name_shrinker.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/nonempty_mapping.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/persistence_context.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/progress.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/py.typed +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/pydantic_utils.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/queries/__init__.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/queries/_base.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/queries/_data_coordinate_query_results.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/queries/_dataset_query_results.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/queries/_dimension_record_query_results.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/queries/_expression_strings.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/queries/_general_query_results.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/queries/_identifiers.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/queries/_query.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/queries/convert_args.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/queries/driver.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/queries/expression_factory.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/queries/overlaps.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/queries/result_specs.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/queries/tree/__init__.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/queries/tree/_base.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/queries/tree/_column_expression.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/queries/tree/_column_literal.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/queries/tree/_column_reference.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/queries/tree/_column_set.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/queries/tree/_predicate.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/queries/tree/_query_tree.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/queries/visitors.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/__init__.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/_caching_context.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/_collection_record_cache.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/_collection_summary.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/_collection_summary_cache.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/_config.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/_defaults.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/_exceptions.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/_registry.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/_registry_factory.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/attributes.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/bridge/__init__.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/bridge/ephemeral.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/bridge/monolithic.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/collections/__init__.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/collections/_base.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/collections/nameKey.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/collections/synthIntKey.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/connectionString.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/databases/__init__.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/databases/postgresql.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/databases/sqlite.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/datasets/__init__.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/datasets/byDimensions/__init__.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/datasets/byDimensions/_dataset_type_cache.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/datasets/byDimensions/summaries.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/datasets/byDimensions/tables.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/dimensions/__init__.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/dimensions/static.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/interfaces/__init__.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/interfaces/_attributes.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/interfaces/_bridge.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/interfaces/_collections.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/interfaces/_database.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/interfaces/_database_explain.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/interfaces/_datasets.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/interfaces/_dimensions.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/interfaces/_obscore.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/interfaces/_opaque.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/interfaces/_versioning.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/managers.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/nameShrinker.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/obscore/__init__.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/obscore/_config.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/obscore/_manager.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/obscore/_records.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/obscore/_schema.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/obscore/_spatial.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/obscore/default_spatial.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/obscore/pgsphere.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/opaque.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/queries/__init__.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/queries/_builder.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/queries/_query.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/queries/_query_backend.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/queries/_query_context.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/queries/_readers.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/queries/_results.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/queries/_sql_query_backend.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/queries/_sql_query_context.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/queries/_structs.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/queries/butler_sql_engine.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/queries/expressions/__init__.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/queries/expressions/_predicate.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/queries/expressions/categorize.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/queries/expressions/check.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/queries/expressions/normalForm.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/queries/expressions/parser/__init__.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/queries/expressions/parser/exprTree.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/queries/expressions/parser/parser.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/queries/expressions/parser/parserLex.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/queries/expressions/parser/parserYacc.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/queries/expressions/parser/ply/__init__.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/queries/expressions/parser/ply/lex.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/queries/expressions/parser/ply/yacc.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/queries/expressions/parser/treeVisitor.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/queries/find_first_dataset.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/sql_registry.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/tests/__init__.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/tests/_database.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/versions.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/registry/wildcards.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/remote_butler/__init__.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/remote_butler/_authentication.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/remote_butler/_collection_args.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/remote_butler/_config.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/remote_butler/_defaults.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/remote_butler/_errors.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/remote_butler/_factory.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/remote_butler/_http_connection.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/remote_butler/_query_driver.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/remote_butler/_query_results.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/remote_butler/_ref_utils.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/remote_butler/_registry.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/remote_butler/_remote_butler.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/remote_butler/_remote_butler_collections.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/remote_butler/registry/__init__.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/remote_butler/registry/_query_common.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/remote_butler/registry/_query_data_coordinates.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/remote_butler/registry/_query_datasets.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/remote_butler/registry/_query_dimension_records.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/remote_butler/server/__init__.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/remote_butler/server/_config.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/remote_butler/server/_dependencies.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/remote_butler/server/_factory.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/remote_butler/server/_server.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/remote_butler/server/handlers/_external.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/remote_butler/server/handlers/_external_query.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/remote_butler/server/handlers/_internal.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/remote_butler/server/handlers/_query_serialization.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/remote_butler/server/handlers/_query_streaming.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/remote_butler/server/handlers/_utils.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/remote_butler/server_models.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/repo_relocation.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/script/__init__.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/script/_associate.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/script/_pruneDatasets.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/script/butlerImport.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/script/certifyCalibrations.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/script/collectionChain.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/script/configDump.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/script/configValidate.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/script/createRepo.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/script/exportCalibs.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/script/ingest_files.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/script/ingest_zip.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/script/queryCollections.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/script/queryDataIds.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/script/queryDatasetTypes.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/script/queryDatasets.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/script/queryDimensionRecords.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/script/register_dataset_type.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/script/removeCollections.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/script/removeDatasetType.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/script/removeRuns.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/script/retrieveArtifacts.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/script/transferDatasets.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/tests/__init__.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/tests/_datasetsHelper.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/tests/_dummyRegistry.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/tests/_examplePythonTypes.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/tests/_testRepo.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/tests/butler_queries.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/tests/cliCmdTestBase.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/tests/cliLogTestBase.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/tests/deferredFormatter.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/tests/dict_convertible_model.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/tests/hybrid_butler.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/tests/hybrid_butler_collections.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/tests/postgresql.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/tests/server.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/tests/server_utils.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/tests/testFormatters.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/tests/utils.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/time_utils.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/timespan_database_representation.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/transfers/__init__.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/transfers/_context.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/transfers/_interfaces.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/transfers/_yaml.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/utils.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst_daf_butler.egg-info/SOURCES.txt +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst_daf_butler.egg-info/dependency_links.txt +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst_daf_butler.egg-info/entry_points.txt +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst_daf_butler.egg-info/requires.txt +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst_daf_butler.egg-info/top_level.txt +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst_daf_butler.egg-info/zip-safe +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/setup.cfg +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_astropyTableFormatter.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_authentication.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_butler.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_butler_factory.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_cliCmdAssociate.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_cliCmdConfigDump.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_cliCmdConfigValidate.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_cliCmdCreate.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_cliCmdImport.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_cliCmdIngestFiles.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_cliCmdPruneDatasets.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_cliCmdQueryCollections.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_cliCmdQueryDataIds.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_cliCmdQueryDatasetTypes.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_cliCmdQueryDatasets.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_cliCmdQueryDimensionRecords.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_cliCmdRemoveCollections.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_cliCmdRemoveRuns.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_cliCmdRetrieveArtifacts.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_cliLog.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_cliPluginLoader.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_cliUtilSplitCommas.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_cliUtilSplitKv.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_cliUtilToUpper.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_cliUtils.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_composites.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_config.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_connectionString.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_constraints.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_datasets.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_datastore.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_ddl.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_dimension_record_containers.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_dimensions.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_exprParserLex.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_exprParserYacc.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_expressions.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_formatter.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_location.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_logFormatter.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_logging.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_matplotlibFormatter.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_nonempty_mapping.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_normalFormExpression.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_obscore.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_packages.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_parquet.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_postgresql.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_progress.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_pydantic_utils.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_quantum.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_quantumBackedButler.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_query_direct_postgresql.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_query_direct_sqlite.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_query_interface.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_query_relations.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_query_remote.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_query_utilities.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_remote_butler.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_server.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_sqlite.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_storageClass.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_templates.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_testRepo.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_thread_utils.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_time_utils.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_timespan.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_utils.py +0 -0
- {lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/tests/test_versioning.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: lsst-daf-butler
|
|
3
|
-
Version:
|
|
3
|
+
Version: 29.2025.1000
|
|
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: BSD 3-Clause License
|
|
@@ -2649,6 +2649,7 @@ class FileDatastore(GenericBaseDatastore[StoredFileInfo]):
|
|
|
2649
2649
|
artifact_existence: dict[ResourcePath, bool] | None = None,
|
|
2650
2650
|
dry_run: bool = False,
|
|
2651
2651
|
) -> tuple[set[DatasetRef], set[DatasetRef]]:
|
|
2652
|
+
log.verbose("transfer_from %s to %s", source_datastore.name, self.name)
|
|
2652
2653
|
# Docstring inherited
|
|
2653
2654
|
if type(self) is not type(source_datastore):
|
|
2654
2655
|
raise TypeError(
|
|
@@ -2693,6 +2694,7 @@ class FileDatastore(GenericBaseDatastore[StoredFileInfo]):
|
|
|
2693
2694
|
# What we really want is all the records in the source datastore
|
|
2694
2695
|
# associated with these refs. Or derived ones if they don't exist
|
|
2695
2696
|
# in the source.
|
|
2697
|
+
log.verbose("Looking up source datastore records in %s", source_datastore.name)
|
|
2696
2698
|
source_records = source_datastore._get_stored_records_associated_with_refs(
|
|
2697
2699
|
refs, ignore_datastore_records=True
|
|
2698
2700
|
)
|
|
@@ -2726,6 +2728,9 @@ class FileDatastore(GenericBaseDatastore[StoredFileInfo]):
|
|
|
2726
2728
|
source_records.update(found_records)
|
|
2727
2729
|
|
|
2728
2730
|
# See if we already have these records
|
|
2731
|
+
log.verbose(
|
|
2732
|
+
"Looking up existing datastore records in target %s for %d refs", self.name, len(requested_ids)
|
|
2733
|
+
)
|
|
2729
2734
|
target_records = self._get_stored_records_associated_with_refs(refs, ignore_datastore_records=True)
|
|
2730
2735
|
|
|
2731
2736
|
# The artifacts to register
|
|
@@ -2744,6 +2749,7 @@ class FileDatastore(GenericBaseDatastore[StoredFileInfo]):
|
|
|
2744
2749
|
direct_transfers = []
|
|
2745
2750
|
|
|
2746
2751
|
# Now can transfer the artifacts
|
|
2752
|
+
log.verbose("Transferring artifacts")
|
|
2747
2753
|
for ref in refs:
|
|
2748
2754
|
if not self.constraints.isAcceptable(ref):
|
|
2749
2755
|
# This datastore should not be accepting this dataset.
|
|
@@ -2818,6 +2824,7 @@ class FileDatastore(GenericBaseDatastore[StoredFileInfo]):
|
|
|
2818
2824
|
# to difficulties if the dataset has previously been ingested
|
|
2819
2825
|
# disassembled and is somehow now assembled, or vice versa.
|
|
2820
2826
|
if not dry_run:
|
|
2827
|
+
log.verbose("Registering datastore records in database")
|
|
2821
2828
|
self._register_datasets(artifacts, insert_mode=DatabaseInsertMode.REPLACE)
|
|
2822
2829
|
|
|
2823
2830
|
if already_present:
|
|
@@ -2828,6 +2835,13 @@ class FileDatastore(GenericBaseDatastore[StoredFileInfo]):
|
|
|
2828
2835
|
"" if n_skipped == 1 else "s",
|
|
2829
2836
|
)
|
|
2830
2837
|
|
|
2838
|
+
log.verbose(
|
|
2839
|
+
"Finished transfer_from %s to %s with %d accepted, %d rejected",
|
|
2840
|
+
source_datastore.name,
|
|
2841
|
+
self.name,
|
|
2842
|
+
len(accepted),
|
|
2843
|
+
len(rejected),
|
|
2844
|
+
)
|
|
2831
2845
|
return accepted, rejected
|
|
2832
2846
|
|
|
2833
2847
|
@transactional
|
|
@@ -317,6 +317,16 @@ class ByDimensionsDatasetRecordStorageManagerUUID(DatasetRecordStorageManager):
|
|
|
317
317
|
raise ValueError(
|
|
318
318
|
f"Component dataset types can not be stored in registry. Rejecting {dataset_type.name}"
|
|
319
319
|
)
|
|
320
|
+
|
|
321
|
+
# If database universe and dimension group universe are different it
|
|
322
|
+
# can cause unexpected effects.
|
|
323
|
+
if dataset_type.dimensions.universe is not self._dimensions.universe:
|
|
324
|
+
raise ValueError(
|
|
325
|
+
"Incompatible dimension universe versions - "
|
|
326
|
+
f"database universe: {self._dimensions.universe}, "
|
|
327
|
+
f"dataset type universe: {dataset_type.dimensions.universe}."
|
|
328
|
+
)
|
|
329
|
+
|
|
320
330
|
record = self._fetch_dataset_type_record(dataset_type.name)
|
|
321
331
|
if record is None:
|
|
322
332
|
if (dynamic_tables := self._cache.get_by_dimensions(dataset_type.dimensions)) is None:
|
|
@@ -75,7 +75,7 @@ from ..._exceptions import (
|
|
|
75
75
|
from ..._exceptions_legacy import DatasetTypeError
|
|
76
76
|
from ..._storage_class import StorageClass
|
|
77
77
|
from ..._timespan import Timespan
|
|
78
|
-
from ...dimensions import DataCoordinate, DataCoordinateSet, SkyPixDimension
|
|
78
|
+
from ...dimensions import DataCoordinate, DataCoordinateSet, DimensionUniverse, SkyPixDimension
|
|
79
79
|
from .._collection_summary import CollectionSummary
|
|
80
80
|
from .._config import RegistryConfig
|
|
81
81
|
from .._exceptions import (
|
|
@@ -326,6 +326,17 @@ class RegistryTests(ABC):
|
|
|
326
326
|
self.assertCountEqual([dt.name for dt in types], ["test", "testNoneTemplate"])
|
|
327
327
|
self.assertEqual(missing, ["notarealdatasettype"])
|
|
328
328
|
|
|
329
|
+
# Trying to register a dataset type with different universe version or
|
|
330
|
+
# namespace will raise.
|
|
331
|
+
wrong_universes = (DimensionUniverse(version=-1), DimensionUniverse(namespace="🔭"))
|
|
332
|
+
for universe in wrong_universes:
|
|
333
|
+
storageClass = StorageClass("testDatasetType")
|
|
334
|
+
dataset_type = DatasetType(
|
|
335
|
+
"wrong_universe", ("instrument", "visit"), storageClass, universe=universe
|
|
336
|
+
)
|
|
337
|
+
with self.assertRaisesRegex(ValueError, "Incompatible dimension universe versions"):
|
|
338
|
+
registry.registerDatasetType(dataset_type)
|
|
339
|
+
|
|
329
340
|
def testDatasetTypeCache(self):
|
|
330
341
|
"""Test for dataset type cache update logic after a cache miss."""
|
|
331
342
|
butler1 = self.make_butler()
|
|
@@ -144,6 +144,16 @@ class HybridButlerRegistry(Registry):
|
|
|
144
144
|
return self._remote.getCollectionSummary(collection)
|
|
145
145
|
|
|
146
146
|
def registerDatasetType(self, datasetType: DatasetType) -> bool:
|
|
147
|
+
# We need to make sure that dataset type universe is the same as
|
|
148
|
+
# direct registry universe.
|
|
149
|
+
if datasetType.dimensions.universe is self._remote.dimensions:
|
|
150
|
+
datasetType = DatasetType(
|
|
151
|
+
datasetType.name,
|
|
152
|
+
datasetType.dimensions.names,
|
|
153
|
+
datasetType.storageClass,
|
|
154
|
+
universe=self._direct.dimensions,
|
|
155
|
+
isCalibration=datasetType.isCalibration(),
|
|
156
|
+
)
|
|
147
157
|
return self._direct.registerDatasetType(datasetType)
|
|
148
158
|
|
|
149
159
|
def removeDatasetType(self, name: str | tuple[str, ...]) -> None:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: lsst-daf-butler
|
|
3
|
-
Version:
|
|
3
|
+
Version: 29.2025.1000
|
|
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: BSD 3-Clause License
|
|
@@ -847,6 +847,16 @@ class SimpleButlerTests(TestCaseMixin):
|
|
|
847
847
|
self.assertEqual(butler1.get_dataset_type("b"), b)
|
|
848
848
|
# Register them in the opposite order in a new repo.
|
|
849
849
|
butler2 = self.makeButler(writeable=True)
|
|
850
|
+
# Dataset types have to use correct universe and with RemoteButler
|
|
851
|
+
# each butler instance has its own universe instance.
|
|
852
|
+
a = DatasetType("a", ["instrument"], universe=butler2.dimensions, storageClass="StructuredDataDict")
|
|
853
|
+
b = DatasetType(
|
|
854
|
+
"b",
|
|
855
|
+
["instrument"],
|
|
856
|
+
universe=butler2.dimensions,
|
|
857
|
+
storageClass="StructuredDataDict",
|
|
858
|
+
isCalibration=True,
|
|
859
|
+
)
|
|
850
860
|
butler2.registry.registerDatasetType(b)
|
|
851
861
|
butler2.registry.registerDatasetType(a)
|
|
852
862
|
self.assertEqual(butler2.get_dataset_type("a"), a)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/doc/lsst.daf.butler/CHANGES.rst
RENAMED
|
File without changes
|
|
File without changes
|
{lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/doc/lsst.daf.butler/configuring.rst
RENAMED
|
File without changes
|
{lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/doc/lsst.daf.butler/datastores.rst
RENAMED
|
File without changes
|
{lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/doc/lsst.daf.butler/dimensions.rst
RENAMED
|
File without changes
|
{lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/doc/lsst.daf.butler/formatters.rst
RENAMED
|
File without changes
|
|
File without changes
|
{lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/doc/lsst.daf.butler/organizing.rst
RENAMED
|
File without changes
|
{lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/doc/lsst.daf.butler/queries.rst
RENAMED
|
File without changes
|
{lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/doc/lsst.daf.butler/use-in-tests.rst
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/__init__.py
RENAMED
|
File without changes
|
{lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/_butler.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/_column_tags.py
RENAMED
|
File without changes
|
|
File without changes
|
{lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/_config.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/_dataset_ref.py
RENAMED
|
File without changes
|
{lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/_dataset_type.py
RENAMED
|
File without changes
|
|
File without changes
|
{lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/_exceptions.py
RENAMED
|
File without changes
|
|
File without changes
|
{lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/_file_dataset.py
RENAMED
|
File without changes
|
|
File without changes
|
{lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/_formatter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/_location.py
RENAMED
|
File without changes
|
{lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/_named.py
RENAMED
|
File without changes
|
{lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/_quantum.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/_timespan.py
RENAMED
|
File without changes
|
{lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/_topology.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/arrow_utils.py
RENAMED
|
File without changes
|
{lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/cli/__init__.py
RENAMED
|
File without changes
|
{lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/cli/butler.py
RENAMED
|
File without changes
|
{lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/cli/cliLog.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/cli/progress.py
RENAMED
|
File without changes
|
{lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/cli/utils.py
RENAMED
|
File without changes
|
{lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/column_spec.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/logging.py
RENAMED
|
File without changes
|
|
File without changes
|
{lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/name_shrinker.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/progress.py
RENAMED
|
File without changes
|
{lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/py.typed
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lsst_daf_butler-28.2025.900 → lsst_daf_butler-29.2025.1000}/python/lsst/daf/butler/queries/_base.py
RENAMED
|
File without changes
|