lsst-daf-butler 29.2025.2600__tar.gz → 29.2025.2700__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.2600/python/lsst_daf_butler.egg-info → lsst_daf_butler-29.2025.2700}/PKG-INFO +1 -1
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/dimensions/_record_set.py +65 -45
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/dimensions/_records.py +24 -9
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/sql_registry.py +41 -14
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/transfers/_context.py +3 -7
- lsst_daf_butler-29.2025.2700/python/lsst/daf/butler/version.py +2 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700/python/lsst_daf_butler.egg-info}/PKG-INFO +1 -1
- lsst_daf_butler-29.2025.2600/python/lsst/daf/butler/version.py +0 -2
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/COPYRIGHT +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/LICENSE +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/MANIFEST.in +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/README.md +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/bsd_license.txt +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/doc/lsst.daf.butler/CHANGES.rst +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/doc/lsst.daf.butler/concreteStorageClasses.rst +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/doc/lsst.daf.butler/configuring.rst +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/doc/lsst.daf.butler/datastores.rst +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/doc/lsst.daf.butler/dimensions.rst +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/doc/lsst.daf.butler/formatters.rst +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/doc/lsst.daf.butler/index.rst +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/doc/lsst.daf.butler/organizing.rst +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/doc/lsst.daf.butler/queries.rst +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/doc/lsst.daf.butler/use-in-tests.rst +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/doc/lsst.daf.butler/writing-subcommands.rst +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/gpl-v3.0.txt +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/pyproject.toml +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/__init__.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/__init__.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/__init__.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/_butler.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/_butler_collections.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/_butler_config.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/_butler_instance_options.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/_butler_metrics.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/_butler_repo_index.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/_collection_type.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/_column_categorization.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/_column_tags.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/_column_type_info.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/_config.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/_config_support.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/_dataset_association.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/_dataset_existence.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/_dataset_provenance.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/_dataset_ref.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/_dataset_type.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/_deferredDatasetHandle.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/_exceptions.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/_exceptions_legacy.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/_file_dataset.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/_file_descriptor.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/_formatter.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/_labeled_butler_factory.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/_limited_butler.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/_location.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/_named.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/_quantum.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/_quantum_backed.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/_query_all_datasets.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/_registry_shim.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/_storage_class.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/_storage_class_delegate.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/_timespan.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/_topology.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/_utilities/__init__.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/_utilities/locked_object.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/_utilities/named_locks.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/_utilities/thread_safe_cache.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/arrow_utils.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/cli/__init__.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/cli/butler.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/cli/cliLog.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/cli/cmd/__init__.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/cli/cmd/_remove_collections.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/cli/cmd/_remove_runs.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/cli/cmd/commands.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/cli/opt/__init__.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/cli/opt/arguments.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/cli/opt/optionGroups.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/cli/opt/options.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/cli/progress.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/cli/utils.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/column_spec.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/configs/datastore.yaml +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/configs/datastores/composites.yaml +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/configs/datastores/fileDatastore.yaml +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/configs/datastores/formatters.yaml +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/configs/datastores/writeRecipes.yaml +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/configs/dimensions.yaml +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/configs/old_dimensions/daf_butler_universe0.yaml +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/configs/old_dimensions/daf_butler_universe1.yaml +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/configs/old_dimensions/daf_butler_universe2.yaml +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/configs/old_dimensions/daf_butler_universe3.yaml +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/configs/old_dimensions/daf_butler_universe4.yaml +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/configs/old_dimensions/daf_butler_universe5.yaml +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/configs/old_dimensions/daf_butler_universe6.yaml +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/configs/old_dimensions/daf_butler_universe7.yaml +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/configs/registry.yaml +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/configs/repo_transfer_formats.yaml +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/configs/storageClasses.yaml +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/datastore/__init__.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/datastore/_datastore.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/datastore/_transfer.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/datastore/cache_manager.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/datastore/composites.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/datastore/constraints.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/datastore/file_templates.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/datastore/generic_base.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/datastore/record_data.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/datastore/stored_file_info.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/datastores/__init__.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/datastores/chainedDatastore.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/datastores/fileDatastore.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/datastores/fileDatastoreClient.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/datastores/file_datastore/__init__.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/datastores/file_datastore/get.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/datastores/file_datastore/retrieve_artifacts.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/datastores/file_datastore/transfer.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/datastores/inMemoryDatastore.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/ddl.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/delegates/__init__.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/delegates/arrowtable.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/dimensions/__init__.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/dimensions/_config.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/dimensions/_coordinate.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/dimensions/_data_coordinate_iterable.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/dimensions/_database.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/dimensions/_elements.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/dimensions/_governor.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/dimensions/_group.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/dimensions/_packer.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/dimensions/_record_table.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/dimensions/_schema.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/dimensions/_skypix.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/dimensions/_universe.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/dimensions/construction.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/dimensions/record_cache.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/direct_butler/__init__.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/direct_butler/_direct_butler.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/direct_butler/_direct_butler_collections.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/direct_query_driver/__init__.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/direct_query_driver/_driver.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/direct_query_driver/_postprocessing.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/direct_query_driver/_query_analysis.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/direct_query_driver/_query_builder.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/direct_query_driver/_result_page_converter.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/direct_query_driver/_sql_builders.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/direct_query_driver/_sql_column_visitor.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/formatters/__init__.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/formatters/astropyTable.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/formatters/file.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/formatters/json.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/formatters/logs.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/formatters/matplotlib.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/formatters/packages.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/formatters/parquet.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/formatters/pickle.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/formatters/typeless.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/formatters/yaml.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/json.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/logging.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/mapping_factory.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/name_shrinker.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/nonempty_mapping.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/persistence_context.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/progress.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/py.typed +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/pydantic_utils.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/queries/__init__.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/queries/_base.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/queries/_data_coordinate_query_results.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/queries/_dataset_query_results.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/queries/_dimension_record_query_results.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/queries/_expression_strings.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/queries/_general_query_results.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/queries/_identifiers.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/queries/_query.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/queries/convert_args.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/queries/driver.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/queries/expression_factory.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/queries/overlaps.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/queries/predicate_constraints_summary.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/queries/result_specs.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/queries/tree/__init__.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/queries/tree/_base.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/queries/tree/_column_expression.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/queries/tree/_column_literal.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/queries/tree/_column_reference.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/queries/tree/_column_set.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/queries/tree/_predicate.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/queries/tree/_query_tree.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/queries/visitors.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/__init__.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/_caching_context.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/_collection_record_cache.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/_collection_summary.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/_collection_summary_cache.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/_config.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/_defaults.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/_exceptions.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/_registry.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/_registry_factory.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/attributes.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/bridge/__init__.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/bridge/ephemeral.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/bridge/monolithic.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/collections/__init__.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/collections/_base.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/collections/nameKey.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/collections/synthIntKey.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/connectionString.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/databases/__init__.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/databases/postgresql.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/databases/sqlite.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/datasets/__init__.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/datasets/byDimensions/__init__.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/datasets/byDimensions/_dataset_type_cache.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/datasets/byDimensions/_manager.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/datasets/byDimensions/summaries.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/datasets/byDimensions/tables.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/dimensions/__init__.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/dimensions/static.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/interfaces/__init__.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/interfaces/_attributes.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/interfaces/_bridge.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/interfaces/_collections.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/interfaces/_database.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/interfaces/_database_explain.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/interfaces/_datasets.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/interfaces/_dimensions.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/interfaces/_obscore.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/interfaces/_opaque.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/interfaces/_versioning.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/managers.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/nameShrinker.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/obscore/__init__.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/obscore/_config.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/obscore/_manager.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/obscore/_records.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/obscore/_schema.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/obscore/_spatial.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/obscore/default_spatial.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/obscore/pgsphere.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/opaque.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/queries/__init__.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/queries/_builder.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/queries/_query.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/queries/_query_backend.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/queries/_query_context.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/queries/_readers.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/queries/_results.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/queries/_sql_query_backend.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/queries/_sql_query_context.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/queries/_structs.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/queries/butler_sql_engine.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/queries/expressions/__init__.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/queries/expressions/_predicate.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/queries/expressions/categorize.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/queries/expressions/check.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/queries/expressions/normalForm.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/queries/expressions/parser/__init__.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/queries/expressions/parser/exprTree.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/queries/expressions/parser/parser.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/queries/expressions/parser/parserLex.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/queries/expressions/parser/parserYacc.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/queries/expressions/parser/ply/__init__.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/queries/expressions/parser/ply/lex.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/queries/expressions/parser/ply/yacc.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/queries/expressions/parser/treeVisitor.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/queries/find_first_dataset.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/tests/__init__.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/tests/_database.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/tests/_registry.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/versions.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/registry/wildcards.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/remote_butler/__init__.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/remote_butler/_authentication.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/remote_butler/_collection_args.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/remote_butler/_config.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/remote_butler/_defaults.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/remote_butler/_errors.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/remote_butler/_factory.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/remote_butler/_http_connection.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/remote_butler/_query_driver.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/remote_butler/_query_results.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/remote_butler/_ref_utils.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/remote_butler/_registry.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/remote_butler/_remote_butler.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/remote_butler/_remote_butler_collections.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/remote_butler/_remote_file_transfer_source.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/remote_butler/registry/__init__.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/remote_butler/registry/_query_common.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/remote_butler/registry/_query_data_coordinates.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/remote_butler/registry/_query_datasets.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/remote_butler/registry/_query_dimension_records.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/remote_butler/server/__init__.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/remote_butler/server/_config.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/remote_butler/server/_dependencies.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/remote_butler/server/_factory.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/remote_butler/server/_gafaelfawr.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/remote_butler/server/_server.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/remote_butler/server/_telemetry.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/remote_butler/server/handlers/_external.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/remote_butler/server/handlers/_external_query.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/remote_butler/server/handlers/_internal.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/remote_butler/server/handlers/_query_limits.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/remote_butler/server/handlers/_query_serialization.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/remote_butler/server/handlers/_query_streaming.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/remote_butler/server/handlers/_utils.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/remote_butler/server_models.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/repo_relocation.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/script/__init__.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/script/_associate.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/script/_pruneDatasets.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/script/butlerImport.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/script/certifyCalibrations.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/script/collectionChain.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/script/configDump.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/script/configValidate.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/script/createRepo.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/script/exportCalibs.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/script/ingest_files.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/script/ingest_zip.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/script/queryCollections.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/script/queryDataIds.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/script/queryDatasetTypes.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/script/queryDatasets.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/script/queryDimensionRecords.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/script/register_dataset_type.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/script/removeCollections.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/script/removeDatasetType.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/script/removeRuns.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/script/retrieveArtifacts.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/script/transferDatasets.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/tests/__init__.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/tests/_datasetsHelper.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/tests/_dummyRegistry.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/tests/_examplePythonTypes.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/tests/_testRepo.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/tests/butler_queries.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/tests/cliCmdTestBase.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/tests/cliLogTestBase.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/tests/deferredFormatter.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/tests/dict_convertible_model.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/tests/hybrid_butler.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/tests/hybrid_butler_collections.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/tests/hybrid_butler_registry.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/tests/postgresql.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/tests/registry_data/__init__.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/tests/registry_data/base.yaml +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/tests/registry_data/ci_hsc-subset-skymap.yaml +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/tests/registry_data/ci_hsc-subset.yaml +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/tests/registry_data/datasets.yaml +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/tests/registry_data/hsc-rc2-subset-v0.yaml +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/tests/registry_data/spatial.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/tests/registry_data/spatial.yaml +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/tests/server.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/tests/server_utils.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/tests/testFormatters.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/tests/utils.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/time_utils.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/timespan_database_representation.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/transfers/__init__.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/transfers/_interfaces.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/transfers/_yaml.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/utils.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst_daf_butler.egg-info/SOURCES.txt +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst_daf_butler.egg-info/dependency_links.txt +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst_daf_butler.egg-info/entry_points.txt +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst_daf_butler.egg-info/requires.txt +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst_daf_butler.egg-info/top_level.txt +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst_daf_butler.egg-info/zip-safe +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/setup.cfg +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_astropyTableFormatter.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_authentication.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_butler.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_butler_factory.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_cliCmdAssociate.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_cliCmdConfigDump.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_cliCmdConfigValidate.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_cliCmdCreate.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_cliCmdImport.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_cliCmdIngestFiles.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_cliCmdPruneDatasets.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_cliCmdQueryCollections.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_cliCmdQueryDataIds.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_cliCmdQueryDatasetTypes.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_cliCmdQueryDatasets.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_cliCmdQueryDimensionRecords.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_cliCmdRemoveCollections.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_cliCmdRemoveRuns.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_cliCmdRetrieveArtifacts.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_cliLog.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_cliPluginLoader.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_cliUtilSplitCommas.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_cliUtilSplitKv.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_cliUtilToUpper.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_cliUtils.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_column_spec.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_composites.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_config.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_connectionString.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_constraints.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_datasets.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_datastore.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_ddl.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_dimension_record_containers.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_dimensions.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_exprParserLex.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_exprParserYacc.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_expressions.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_formatter.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_gafaelfawr.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_location.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_logFormatter.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_logging.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_matplotlibFormatter.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_nonempty_mapping.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_normalFormExpression.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_obscore.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_packages.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_parquet.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_postgresql.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_progress.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_pydantic_utils.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_quantum.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_quantumBackedButler.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_query_direct_postgresql.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_query_direct_sqlite.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_query_interface.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_query_relations.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_query_remote.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_query_utilities.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_remote_butler.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_server.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_simpleButler.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_sqlite.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_storageClass.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_templates.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_testRepo.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_thread_utils.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_time_utils.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_timespan.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_utils.py +0 -0
- {lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/tests/test_versioning.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.2700
|
|
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
|
|
@@ -809,8 +809,7 @@ class DimensionDataAttacher:
|
|
|
809
809
|
been referenced in at least one of the constructor arguments.
|
|
810
810
|
data_ids : `~collections.abc.Iterable` [ `DataCoordinate` ]
|
|
811
811
|
Data IDs to attach dimension records to (not in place; data
|
|
812
|
-
coordinates are immutable).
|
|
813
|
-
as well as required dimensions).
|
|
812
|
+
coordinates are immutable).
|
|
814
813
|
query : `.queries.Query`, optional
|
|
815
814
|
A butler query that can be used to look up missing dimension
|
|
816
815
|
records. Records fetched via query are cached in the `records`
|
|
@@ -822,49 +821,41 @@ class DimensionDataAttacher:
|
|
|
822
821
|
Data IDs with dimension records attached, in the same order as the
|
|
823
822
|
original iterable.
|
|
824
823
|
"""
|
|
825
|
-
incomplete: list[_InProgressRecordDicts] = []
|
|
826
824
|
lookup_helpers = [
|
|
827
825
|
_DimensionRecordLookupHelper.build(dimensions, element_name, self)
|
|
828
|
-
for element_name in dimensions.
|
|
826
|
+
for element_name in dimensions.lookup_order
|
|
829
827
|
]
|
|
830
|
-
|
|
831
|
-
for
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
if
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
f"No dimension record for element(s) {list(records.missing.keys())} "
|
|
856
|
-
f"for data ID {result[records.index]}. "
|
|
857
|
-
f"{len(incomplete)} data ID{' was' if len(incomplete) == 1 else 's were'} "
|
|
858
|
-
"missing at least one record."
|
|
859
|
-
)
|
|
860
|
-
return result
|
|
828
|
+
records = [_InProgressRecordDicts(data_id) for data_id in data_ids]
|
|
829
|
+
for lookup_helper in lookup_helpers:
|
|
830
|
+
for r in records:
|
|
831
|
+
lookup_helper.lookup(r)
|
|
832
|
+
incomplete = lookup_helper.incomplete_records
|
|
833
|
+
if incomplete:
|
|
834
|
+
if query is not None:
|
|
835
|
+
lookup_helper.fetch_missing(query)
|
|
836
|
+
# We may still be missing records at this point, if they
|
|
837
|
+
# were not available in the database.
|
|
838
|
+
# This is intentional, because in existing Butler
|
|
839
|
+
# repositories dimension records are not always fully
|
|
840
|
+
# populated. (For example, it is common for a visit to
|
|
841
|
+
# exist without corresponding visit_detector_region
|
|
842
|
+
# records, since these are populated at different times
|
|
843
|
+
# by different processes.)
|
|
844
|
+
else:
|
|
845
|
+
raise LookupError(
|
|
846
|
+
f"No dimension record for element '{lookup_helper.element}' "
|
|
847
|
+
f"for data ID {incomplete[0].data_id}. "
|
|
848
|
+
f"{len(incomplete)} data ID{' was' if len(incomplete) == 1 else 's were'} "
|
|
849
|
+
"missing at least one record."
|
|
850
|
+
)
|
|
851
|
+
|
|
852
|
+
return [r.data_id.expanded(r.done) for r in records]
|
|
861
853
|
|
|
862
854
|
|
|
863
855
|
@dataclasses.dataclass
|
|
864
856
|
class _InProgressRecordDicts:
|
|
865
|
-
|
|
857
|
+
data_id: DataCoordinate
|
|
866
858
|
done: dict[str, DimensionRecord] = dataclasses.field(default_factory=dict)
|
|
867
|
-
missing: dict[str, tuple[DataIdValue, ...]] = dataclasses.field(default_factory=dict)
|
|
868
859
|
|
|
869
860
|
|
|
870
861
|
@dataclasses.dataclass
|
|
@@ -873,7 +864,7 @@ class _DimensionRecordLookupHelper:
|
|
|
873
864
|
# tuple in the to-be-expanded data ID's full-values tuple.
|
|
874
865
|
indices: list[int]
|
|
875
866
|
record_set: DimensionRecordSet
|
|
876
|
-
|
|
867
|
+
incomplete_records: list[_InProgressRecordDicts] = dataclasses.field(default_factory=list)
|
|
877
868
|
|
|
878
869
|
@property
|
|
879
870
|
def element(self) -> str:
|
|
@@ -902,33 +893,62 @@ class _DimensionRecordLookupHelper:
|
|
|
902
893
|
else:
|
|
903
894
|
return _DimensionRecordLookupHelper(indices, attacher.records[element])
|
|
904
895
|
|
|
905
|
-
def lookup(self,
|
|
906
|
-
required_values =
|
|
896
|
+
def lookup(self, records: _InProgressRecordDicts) -> None:
|
|
897
|
+
required_values = self._get_required_values(records)
|
|
907
898
|
if (result := self.record_set._by_required_values.get(required_values)) is None:
|
|
908
899
|
result = self.fallback(required_values)
|
|
909
900
|
if result is not None:
|
|
910
901
|
self.record_set.add(result)
|
|
911
902
|
records.done[self.element] = result
|
|
912
903
|
else:
|
|
913
|
-
|
|
914
|
-
self.missing.add(required_values)
|
|
904
|
+
self.incomplete_records.append(records)
|
|
915
905
|
else:
|
|
916
906
|
records.done[self.element] = result
|
|
917
907
|
|
|
908
|
+
def _get_required_values(self, records: _InProgressRecordDicts) -> tuple[DataIdValue, ...]:
|
|
909
|
+
if records.data_id.hasFull():
|
|
910
|
+
full_values = records.data_id.full_values
|
|
911
|
+
return tuple([full_values[i] for i in self.indices])
|
|
912
|
+
else:
|
|
913
|
+
values = []
|
|
914
|
+
dimensions = self.record_set.element.minimal_group.required
|
|
915
|
+
for dimension in dimensions:
|
|
916
|
+
value = records.data_id.get(dimension)
|
|
917
|
+
if value is None:
|
|
918
|
+
value = self._find_implied_value(dimension, records)
|
|
919
|
+
values.append(value)
|
|
920
|
+
return tuple(values)
|
|
921
|
+
|
|
922
|
+
def _find_implied_value(self, implied_dimension: str, records: _InProgressRecordDicts) -> DataIdValue:
|
|
923
|
+
for rec in records.done.values():
|
|
924
|
+
if implied_dimension in rec.definition.implied:
|
|
925
|
+
return rec.get(implied_dimension)
|
|
926
|
+
|
|
927
|
+
raise LookupError(
|
|
928
|
+
f"Implied value for dimension '{implied_dimension}' not found in records for"
|
|
929
|
+
f" {list(records.done.keys())}"
|
|
930
|
+
)
|
|
931
|
+
|
|
918
932
|
def fallback(self, required_values: tuple[DataIdValue, ...]) -> DimensionRecord | None:
|
|
919
933
|
return None
|
|
920
934
|
|
|
921
935
|
def fetch_missing(self, query: Query) -> None:
|
|
922
|
-
if self.
|
|
936
|
+
if self.incomplete_records:
|
|
937
|
+
missing_values = set(self._get_required_values(r) for r in self.incomplete_records)
|
|
923
938
|
self.record_set.update(
|
|
924
939
|
query.join_data_coordinates(
|
|
925
940
|
[
|
|
926
|
-
DataCoordinate.from_required_values(self.record_set.element.minimal_group,
|
|
927
|
-
for
|
|
941
|
+
DataCoordinate.from_required_values(self.record_set.element.minimal_group, values)
|
|
942
|
+
for values in missing_values
|
|
928
943
|
]
|
|
929
944
|
).dimension_records(self.record_set.element.name)
|
|
930
945
|
)
|
|
931
946
|
|
|
947
|
+
missing = self.incomplete_records
|
|
948
|
+
self.incomplete_records = list()
|
|
949
|
+
for record in missing:
|
|
950
|
+
self.lookup(record)
|
|
951
|
+
|
|
932
952
|
|
|
933
953
|
@dataclasses.dataclass
|
|
934
954
|
class _DeserializingDimensionRecordLookupHelper(_DimensionRecordLookupHelper):
|
|
@@ -34,15 +34,7 @@ from collections.abc import Hashable
|
|
|
34
34
|
from typing import TYPE_CHECKING, Any, ClassVar, TypeAlias
|
|
35
35
|
|
|
36
36
|
import pydantic
|
|
37
|
-
from pydantic import
|
|
38
|
-
BaseModel,
|
|
39
|
-
Field,
|
|
40
|
-
StrictBool,
|
|
41
|
-
StrictFloat,
|
|
42
|
-
StrictInt,
|
|
43
|
-
StrictStr,
|
|
44
|
-
create_model,
|
|
45
|
-
)
|
|
37
|
+
from pydantic import BaseModel, Field, StrictBool, StrictFloat, StrictInt, StrictStr, create_model
|
|
46
38
|
|
|
47
39
|
import lsst.sphgeom
|
|
48
40
|
from lsst.utils.classes import immutable
|
|
@@ -533,6 +525,29 @@ class DimensionRecord:
|
|
|
533
525
|
results["datetime_end"] = timespan.end
|
|
534
526
|
return results
|
|
535
527
|
|
|
528
|
+
def get(self, name: str) -> Any:
|
|
529
|
+
"""Return a single metadata value associated with this record.
|
|
530
|
+
|
|
531
|
+
Parameters
|
|
532
|
+
----------
|
|
533
|
+
name : `str`
|
|
534
|
+
Key of the metadata value to be retrieved.
|
|
535
|
+
|
|
536
|
+
Returns
|
|
537
|
+
-------
|
|
538
|
+
value
|
|
539
|
+
The metadata value.
|
|
540
|
+
|
|
541
|
+
Raises
|
|
542
|
+
------
|
|
543
|
+
KeyError
|
|
544
|
+
If the given name is not a valid key in this dimension record.
|
|
545
|
+
"""
|
|
546
|
+
if name not in self.__slots__:
|
|
547
|
+
raise KeyError(f"'{name}' is not a valid record key for dimension '{self.definition.name}'")
|
|
548
|
+
|
|
549
|
+
return getattr(self, name)
|
|
550
|
+
|
|
536
551
|
def serialize_key_value(self) -> SerializedKeyValueDimensionRecord:
|
|
537
552
|
"""Serialize this record to a `list` that can be sliced into a key
|
|
538
553
|
(data ID values) / value (everything else) pair.
|
|
@@ -34,6 +34,7 @@ __all__ = ("SqlRegistry",)
|
|
|
34
34
|
import contextlib
|
|
35
35
|
import logging
|
|
36
36
|
import warnings
|
|
37
|
+
from collections import defaultdict
|
|
37
38
|
from collections.abc import Iterable, Iterator, Mapping, Sequence
|
|
38
39
|
from typing import TYPE_CHECKING, Any, Literal, cast
|
|
39
40
|
|
|
@@ -61,6 +62,7 @@ from ..dimensions import (
|
|
|
61
62
|
DataCoordinate,
|
|
62
63
|
DataId,
|
|
63
64
|
DimensionConfig,
|
|
65
|
+
DimensionDataAttacher,
|
|
64
66
|
DimensionElement,
|
|
65
67
|
DimensionGroup,
|
|
66
68
|
DimensionRecord,
|
|
@@ -1060,16 +1062,15 @@ class SqlRegistry:
|
|
|
1060
1062
|
f"Given collection is of type {runRecord.type.name}; RUN collection required."
|
|
1061
1063
|
)
|
|
1062
1064
|
assert isinstance(runRecord, RunRecord)
|
|
1063
|
-
|
|
1065
|
+
|
|
1066
|
+
expandedDataIds = [
|
|
1067
|
+
DataCoordinate.standardize(dataId, dimensions=datasetType.dimensions) for dataId in dataIds
|
|
1068
|
+
]
|
|
1064
1069
|
if expand:
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
else:
|
|
1070
|
-
expandedDataIds = [
|
|
1071
|
-
DataCoordinate.standardize(dataId, dimensions=datasetType.dimensions) for dataId in dataIds
|
|
1072
|
-
]
|
|
1070
|
+
_LOG.debug("Expanding %d data IDs", len(expandedDataIds))
|
|
1071
|
+
expandedDataIds = self.expand_data_ids(expandedDataIds)
|
|
1072
|
+
_LOG.debug("Finished expanding data IDs")
|
|
1073
|
+
|
|
1073
1074
|
try:
|
|
1074
1075
|
refs = list(
|
|
1075
1076
|
self._managers.datasets.insert(datasetType.name, runRecord, expandedDataIds, idGenerationMode)
|
|
@@ -1161,12 +1162,10 @@ class SqlRegistry:
|
|
|
1161
1162
|
)
|
|
1162
1163
|
assert isinstance(runRecord, RunRecord)
|
|
1163
1164
|
|
|
1164
|
-
progress = Progress("daf.butler.Registry.importDatasets", level=logging.DEBUG)
|
|
1165
1165
|
if expand:
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
]
|
|
1166
|
+
_LOG.debug("Expanding %d data IDs", len(datasets))
|
|
1167
|
+
datasets = self.expand_refs(datasets)
|
|
1168
|
+
_LOG.debug("Finished expanding data IDs")
|
|
1170
1169
|
|
|
1171
1170
|
try:
|
|
1172
1171
|
self._managers.datasets.import_(runRecord, datasets)
|
|
@@ -1545,6 +1544,34 @@ class SqlRegistry:
|
|
|
1545
1544
|
)
|
|
1546
1545
|
return DataCoordinate.standardize(keys, dimensions=standardized.dimensions).expanded(records=records)
|
|
1547
1546
|
|
|
1547
|
+
def expand_data_ids(self, data_ids: Iterable[DataCoordinate]) -> list[DataCoordinate]:
|
|
1548
|
+
output = list(data_ids)
|
|
1549
|
+
|
|
1550
|
+
grouped_by_dimensions: defaultdict[DimensionGroup, list[int]] = defaultdict(list)
|
|
1551
|
+
for i, data_id in enumerate(data_ids):
|
|
1552
|
+
if not data_id.hasRecords():
|
|
1553
|
+
grouped_by_dimensions[data_id.dimensions].append(i)
|
|
1554
|
+
|
|
1555
|
+
if not grouped_by_dimensions:
|
|
1556
|
+
# All given DataCoordinate values are already expanded.
|
|
1557
|
+
return output
|
|
1558
|
+
|
|
1559
|
+
attacher = DimensionDataAttacher(
|
|
1560
|
+
cache=self.dimension_record_cache,
|
|
1561
|
+
dimensions=DimensionGroup.union(*grouped_by_dimensions.keys(), universe=self.dimensions),
|
|
1562
|
+
)
|
|
1563
|
+
with self._query() as query:
|
|
1564
|
+
for dimensions, indexes in grouped_by_dimensions.items():
|
|
1565
|
+
expanded = attacher.attach(dimensions, (output[index] for index in indexes), query)
|
|
1566
|
+
for index, data_id in zip(indexes, expanded):
|
|
1567
|
+
output[index] = data_id
|
|
1568
|
+
|
|
1569
|
+
return output
|
|
1570
|
+
|
|
1571
|
+
def expand_refs(self, dataset_refs: list[DatasetRef]) -> list[DatasetRef]:
|
|
1572
|
+
expanded_ids = self.expand_data_ids([ref.dataId for ref in dataset_refs])
|
|
1573
|
+
return [ref.expanded(data_id) for ref, data_id in zip(dataset_refs, expanded_ids)]
|
|
1574
|
+
|
|
1548
1575
|
def insertDimensionData(
|
|
1549
1576
|
self,
|
|
1550
1577
|
element: DimensionElement | str,
|
|
@@ -174,13 +174,9 @@ class RepoExportContext:
|
|
|
174
174
|
element = self._butler.dimensions[element]
|
|
175
175
|
if element.has_own_table:
|
|
176
176
|
standardized_elements.add(element)
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
# if the data ID is already expanded, and DM-26692 will add (or at
|
|
181
|
-
# least start to add / unblock) query functionality that should
|
|
182
|
-
# let us speed this up internally as well.
|
|
183
|
-
dataId = self._butler.registry.expandDataId(dataId)
|
|
177
|
+
|
|
178
|
+
expanded_data_ids = self._butler._registry.expand_data_ids(dataIds)
|
|
179
|
+
for dataId in expanded_data_ids:
|
|
184
180
|
for element_name in dataId.dimensions.elements:
|
|
185
181
|
record = dataId.records[element_name]
|
|
186
182
|
if record is not None and record.definition in standardized_elements:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: lsst-daf-butler
|
|
3
|
-
Version: 29.2025.
|
|
3
|
+
Version: 29.2025.2700
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/doc/lsst.daf.butler/CHANGES.rst
RENAMED
|
File without changes
|
|
File without changes
|
{lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/doc/lsst.daf.butler/configuring.rst
RENAMED
|
File without changes
|
{lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/doc/lsst.daf.butler/datastores.rst
RENAMED
|
File without changes
|
{lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/doc/lsst.daf.butler/dimensions.rst
RENAMED
|
File without changes
|
{lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/doc/lsst.daf.butler/formatters.rst
RENAMED
|
File without changes
|
|
File without changes
|
{lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/doc/lsst.daf.butler/organizing.rst
RENAMED
|
File without changes
|
{lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/doc/lsst.daf.butler/queries.rst
RENAMED
|
File without changes
|
{lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/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-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/__init__.py
RENAMED
|
File without changes
|
{lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/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
|
|
File without changes
|
{lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/_column_tags.py
RENAMED
|
File without changes
|
|
File without changes
|
{lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/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-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/_dataset_ref.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/_exceptions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/_formatter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/_location.py
RENAMED
|
File without changes
|
{lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/_named.py
RENAMED
|
File without changes
|
{lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/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-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/_timespan.py
RENAMED
|
File without changes
|
{lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/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-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/arrow_utils.py
RENAMED
|
File without changes
|
{lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/cli/__init__.py
RENAMED
|
File without changes
|
{lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/cli/butler.py
RENAMED
|
File without changes
|
{lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/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-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/cli/progress.py
RENAMED
|
File without changes
|
{lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/python/lsst/daf/butler/cli/utils.py
RENAMED
|
File without changes
|
{lsst_daf_butler-29.2025.2600 → lsst_daf_butler-29.2025.2700}/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
|