lsst-daf-butler 29.2025.1500__tar.gz → 29.2025.1600__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.1500/python/lsst_daf_butler.egg-info → lsst_daf_butler-29.2025.1600}/PKG-INFO +1 -1
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/_config.py +1 -1
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/configs/datastores/formatters.yaml +1 -1
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/configs/storageClasses.yaml +3 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/direct_query_driver/_driver.py +1 -1
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/queries/_query.py +48 -1
- lsst_daf_butler-29.2025.1500/python/lsst/daf/butler/direct_query_driver/_predicate_constraints_summary.py → lsst_daf_butler-29.2025.1600/python/lsst/daf/butler/queries/predicate_constraints_summary.py +2 -2
- lsst_daf_butler-29.2025.1600/python/lsst/daf/butler/version.py +2 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600/python/lsst_daf_butler.egg-info}/PKG-INFO +1 -1
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst_daf_butler.egg-info/SOURCES.txt +1 -1
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_config.py +3 -3
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_query_interface.py +39 -1
- lsst_daf_butler-29.2025.1500/python/lsst/daf/butler/version.py +0 -2
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/COPYRIGHT +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/LICENSE +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/MANIFEST.in +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/README.md +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/bsd_license.txt +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/doc/lsst.daf.butler/CHANGES.rst +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/doc/lsst.daf.butler/concreteStorageClasses.rst +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/doc/lsst.daf.butler/configuring.rst +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/doc/lsst.daf.butler/datastores.rst +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/doc/lsst.daf.butler/dimensions.rst +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/doc/lsst.daf.butler/formatters.rst +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/doc/lsst.daf.butler/index.rst +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/doc/lsst.daf.butler/organizing.rst +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/doc/lsst.daf.butler/queries.rst +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/doc/lsst.daf.butler/use-in-tests.rst +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/doc/lsst.daf.butler/writing-subcommands.rst +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/gpl-v3.0.txt +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/pyproject.toml +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/__init__.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/__init__.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/__init__.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/_butler.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/_butler_collections.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/_butler_config.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/_butler_instance_options.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/_butler_repo_index.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/_collection_type.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/_column_categorization.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/_column_tags.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/_column_type_info.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/_config_support.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/_dataset_association.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/_dataset_existence.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/_dataset_provenance.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/_dataset_ref.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/_dataset_type.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/_deferredDatasetHandle.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/_exceptions.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/_exceptions_legacy.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/_file_dataset.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/_file_descriptor.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/_formatter.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/_labeled_butler_factory.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/_limited_butler.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/_location.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/_named.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/_quantum.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/_quantum_backed.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/_query_all_datasets.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/_registry_shim.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/_storage_class.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/_storage_class_delegate.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/_timespan.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/_topology.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/_utilities/__init__.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/_utilities/locked_object.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/_utilities/named_locks.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/_utilities/thread_safe_cache.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/arrow_utils.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/cli/__init__.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/cli/butler.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/cli/cliLog.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/cli/cmd/__init__.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/cli/cmd/_remove_collections.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/cli/cmd/_remove_runs.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/cli/cmd/commands.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/cli/opt/__init__.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/cli/opt/arguments.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/cli/opt/optionGroups.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/cli/opt/options.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/cli/progress.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/cli/utils.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/column_spec.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/configs/datastore.yaml +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/configs/datastores/composites.yaml +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/configs/datastores/fileDatastore.yaml +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/configs/datastores/writeRecipes.yaml +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/configs/dimensions.yaml +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/configs/old_dimensions/daf_butler_universe0.yaml +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/configs/old_dimensions/daf_butler_universe1.yaml +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/configs/old_dimensions/daf_butler_universe2.yaml +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/configs/old_dimensions/daf_butler_universe3.yaml +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/configs/old_dimensions/daf_butler_universe4.yaml +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/configs/old_dimensions/daf_butler_universe5.yaml +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/configs/old_dimensions/daf_butler_universe6.yaml +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/configs/old_dimensions/daf_butler_universe7.yaml +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/configs/registry.yaml +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/configs/repo_transfer_formats.yaml +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/datastore/__init__.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/datastore/_datastore.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/datastore/cache_manager.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/datastore/composites.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/datastore/constraints.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/datastore/file_templates.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/datastore/generic_base.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/datastore/record_data.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/datastore/stored_file_info.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/datastores/__init__.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/datastores/chainedDatastore.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/datastores/fileDatastore.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/datastores/fileDatastoreClient.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/datastores/file_datastore/__init__.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/datastores/file_datastore/get.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/datastores/file_datastore/retrieve_artifacts.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/datastores/inMemoryDatastore.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/ddl.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/delegates/__init__.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/delegates/arrowtable.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/dimensions/__init__.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/dimensions/_config.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/dimensions/_coordinate.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/dimensions/_data_coordinate_iterable.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/dimensions/_database.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/dimensions/_elements.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/dimensions/_governor.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/dimensions/_group.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/dimensions/_packer.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/dimensions/_record_set.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/dimensions/_record_table.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/dimensions/_records.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/dimensions/_schema.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/dimensions/_skypix.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/dimensions/_universe.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/dimensions/construction.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/dimensions/record_cache.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/direct_butler/__init__.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/direct_butler/_direct_butler.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/direct_butler/_direct_butler_collections.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/direct_query_driver/__init__.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/direct_query_driver/_postprocessing.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/direct_query_driver/_query_analysis.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/direct_query_driver/_query_builder.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/direct_query_driver/_result_page_converter.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/direct_query_driver/_sql_builders.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/direct_query_driver/_sql_column_visitor.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/formatters/__init__.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/formatters/astropyTable.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/formatters/file.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/formatters/json.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/formatters/logs.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/formatters/matplotlib.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/formatters/packages.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/formatters/parquet.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/formatters/pickle.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/formatters/typeless.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/formatters/yaml.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/json.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/logging.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/mapping_factory.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/name_shrinker.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/nonempty_mapping.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/persistence_context.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/progress.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/py.typed +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/pydantic_utils.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/queries/__init__.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/queries/_base.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/queries/_data_coordinate_query_results.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/queries/_dataset_query_results.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/queries/_dimension_record_query_results.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/queries/_expression_strings.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/queries/_general_query_results.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/queries/_identifiers.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/queries/convert_args.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/queries/driver.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/queries/expression_factory.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/queries/overlaps.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/queries/result_specs.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/queries/tree/__init__.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/queries/tree/_base.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/queries/tree/_column_expression.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/queries/tree/_column_literal.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/queries/tree/_column_reference.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/queries/tree/_column_set.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/queries/tree/_predicate.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/queries/tree/_query_tree.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/queries/visitors.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/__init__.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/_caching_context.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/_collection_record_cache.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/_collection_summary.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/_collection_summary_cache.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/_config.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/_defaults.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/_exceptions.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/_registry.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/_registry_factory.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/attributes.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/bridge/__init__.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/bridge/ephemeral.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/bridge/monolithic.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/collections/__init__.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/collections/_base.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/collections/nameKey.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/collections/synthIntKey.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/connectionString.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/databases/__init__.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/databases/postgresql.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/databases/sqlite.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/datasets/__init__.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/datasets/byDimensions/__init__.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/datasets/byDimensions/_dataset_type_cache.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/datasets/byDimensions/_manager.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/datasets/byDimensions/summaries.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/datasets/byDimensions/tables.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/dimensions/__init__.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/dimensions/static.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/interfaces/__init__.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/interfaces/_attributes.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/interfaces/_bridge.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/interfaces/_collections.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/interfaces/_database.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/interfaces/_database_explain.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/interfaces/_datasets.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/interfaces/_dimensions.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/interfaces/_obscore.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/interfaces/_opaque.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/interfaces/_versioning.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/managers.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/nameShrinker.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/obscore/__init__.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/obscore/_config.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/obscore/_manager.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/obscore/_records.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/obscore/_schema.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/obscore/_spatial.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/obscore/default_spatial.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/obscore/pgsphere.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/opaque.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/queries/__init__.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/queries/_builder.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/queries/_query.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/queries/_query_backend.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/queries/_query_context.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/queries/_readers.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/queries/_results.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/queries/_sql_query_backend.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/queries/_sql_query_context.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/queries/_structs.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/queries/butler_sql_engine.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/queries/expressions/__init__.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/queries/expressions/_predicate.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/queries/expressions/categorize.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/queries/expressions/check.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/queries/expressions/normalForm.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/queries/expressions/parser/__init__.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/queries/expressions/parser/exprTree.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/queries/expressions/parser/parser.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/queries/expressions/parser/parserLex.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/queries/expressions/parser/parserYacc.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/queries/expressions/parser/ply/__init__.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/queries/expressions/parser/ply/lex.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/queries/expressions/parser/ply/yacc.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/queries/expressions/parser/treeVisitor.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/queries/find_first_dataset.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/sql_registry.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/tests/__init__.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/tests/_database.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/tests/_registry.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/versions.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/registry/wildcards.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/remote_butler/__init__.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/remote_butler/_authentication.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/remote_butler/_collection_args.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/remote_butler/_config.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/remote_butler/_defaults.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/remote_butler/_errors.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/remote_butler/_factory.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/remote_butler/_http_connection.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/remote_butler/_query_driver.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/remote_butler/_query_results.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/remote_butler/_ref_utils.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/remote_butler/_registry.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/remote_butler/_remote_butler.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/remote_butler/_remote_butler_collections.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/remote_butler/registry/__init__.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/remote_butler/registry/_query_common.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/remote_butler/registry/_query_data_coordinates.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/remote_butler/registry/_query_datasets.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/remote_butler/registry/_query_dimension_records.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/remote_butler/server/__init__.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/remote_butler/server/_config.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/remote_butler/server/_dependencies.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/remote_butler/server/_factory.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/remote_butler/server/_server.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/remote_butler/server/handlers/_external.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/remote_butler/server/handlers/_external_query.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/remote_butler/server/handlers/_internal.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/remote_butler/server/handlers/_query_serialization.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/remote_butler/server/handlers/_query_streaming.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/remote_butler/server/handlers/_utils.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/remote_butler/server_models.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/repo_relocation.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/script/__init__.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/script/_associate.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/script/_pruneDatasets.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/script/butlerImport.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/script/certifyCalibrations.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/script/collectionChain.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/script/configDump.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/script/configValidate.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/script/createRepo.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/script/exportCalibs.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/script/ingest_files.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/script/ingest_zip.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/script/queryCollections.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/script/queryDataIds.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/script/queryDatasetTypes.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/script/queryDatasets.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/script/queryDimensionRecords.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/script/register_dataset_type.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/script/removeCollections.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/script/removeDatasetType.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/script/removeRuns.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/script/retrieveArtifacts.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/script/transferDatasets.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/tests/__init__.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/tests/_datasetsHelper.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/tests/_dummyRegistry.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/tests/_examplePythonTypes.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/tests/_testRepo.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/tests/butler_queries.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/tests/cliCmdTestBase.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/tests/cliLogTestBase.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/tests/deferredFormatter.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/tests/dict_convertible_model.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/tests/hybrid_butler.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/tests/hybrid_butler_collections.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/tests/hybrid_butler_registry.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/tests/postgresql.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/tests/server.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/tests/server_utils.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/tests/testFormatters.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/tests/utils.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/time_utils.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/timespan_database_representation.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/transfers/__init__.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/transfers/_context.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/transfers/_interfaces.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/transfers/_yaml.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/utils.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst_daf_butler.egg-info/dependency_links.txt +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst_daf_butler.egg-info/entry_points.txt +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst_daf_butler.egg-info/requires.txt +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst_daf_butler.egg-info/top_level.txt +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst_daf_butler.egg-info/zip-safe +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/setup.cfg +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_astropyTableFormatter.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_authentication.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_butler.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_butler_factory.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_cliCmdAssociate.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_cliCmdConfigDump.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_cliCmdConfigValidate.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_cliCmdCreate.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_cliCmdImport.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_cliCmdIngestFiles.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_cliCmdPruneDatasets.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_cliCmdQueryCollections.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_cliCmdQueryDataIds.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_cliCmdQueryDatasetTypes.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_cliCmdQueryDatasets.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_cliCmdQueryDimensionRecords.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_cliCmdRemoveCollections.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_cliCmdRemoveRuns.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_cliCmdRetrieveArtifacts.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_cliLog.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_cliPluginLoader.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_cliUtilSplitCommas.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_cliUtilSplitKv.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_cliUtilToUpper.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_cliUtils.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_column_spec.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_composites.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_connectionString.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_constraints.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_datasets.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_datastore.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_ddl.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_dimension_record_containers.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_dimensions.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_exprParserLex.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_exprParserYacc.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_expressions.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_formatter.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_location.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_logFormatter.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_logging.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_matplotlibFormatter.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_nonempty_mapping.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_normalFormExpression.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_obscore.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_packages.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_parquet.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_postgresql.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_progress.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_pydantic_utils.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_quantum.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_quantumBackedButler.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_query_direct_postgresql.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_query_direct_sqlite.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_query_relations.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_query_remote.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_query_utilities.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_remote_butler.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_server.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_simpleButler.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_sqlite.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_storageClass.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_templates.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_testRepo.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_thread_utils.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_time_utils.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_timespan.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/tests/test_utils.py +0 -0
- {lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/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.1600
|
|
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
|
{lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/_config.py
RENAMED
|
@@ -1254,7 +1254,7 @@ class ConfigSubset(Config):
|
|
|
1254
1254
|
|
|
1255
1255
|
Global defaults, at lowest priority, are found in the ``config``
|
|
1256
1256
|
directory of the butler source tree. Additional defaults can be
|
|
1257
|
-
defined using the environment variable ``$
|
|
1257
|
+
defined using the environment variable ``$DAF_BUTLER_CONFIG_PATH``
|
|
1258
1258
|
which is a PATH-like variable where paths at the front of the list
|
|
1259
1259
|
have priority over those later.
|
|
1260
1260
|
|
|
@@ -86,7 +86,7 @@ TaskMetadata: lsst.daf.butler.formatters.json.JsonFormatter
|
|
|
86
86
|
SpectractorSpectrum: lsst.atmospec.formatters.SpectractorSpectrumFormatter
|
|
87
87
|
SpectractorImage: lsst.atmospec.formatters.SpectractorImageFormatter
|
|
88
88
|
SpectractorFitParameters: lsst.atmospec.formatters.SpectractorFitParametersFormatter
|
|
89
|
-
ScarletModelData: lsst.
|
|
89
|
+
ScarletModelData: lsst.meas.extensions.scarlet.io.ScarletModelFormatter
|
|
90
90
|
MetricMeasurementBundle: lsst.daf.butler.formatters.json.JsonFormatter
|
|
91
91
|
MultipleCellCoadd: lsst.cell_coadds.CellCoaddFitsFormatter
|
|
92
92
|
NNModelPackagePayload: lsst.meas.transiNet.modelPackages.NNModelPackageFormatter
|
|
@@ -409,6 +409,9 @@ storageClasses:
|
|
|
409
409
|
pytype: spectractor.fit.fitter.FitParameters
|
|
410
410
|
ScarletModelData:
|
|
411
411
|
pytype: lsst.scarlet.lite.io.ScarletModelData
|
|
412
|
+
parameters:
|
|
413
|
+
- blend_id
|
|
414
|
+
delegate: lsst.meas.extensions.scarlet.io.ScarletModelDelegate
|
|
412
415
|
MetricMeasurementBundle:
|
|
413
416
|
pytype: lsst.analysis.tools.interfaces.MetricMeasurementBundle
|
|
414
417
|
MultipleCellCoadd:
|
|
@@ -56,6 +56,7 @@ from ..queries.driver import (
|
|
|
56
56
|
QueryDriver,
|
|
57
57
|
ResultPage,
|
|
58
58
|
)
|
|
59
|
+
from ..queries.predicate_constraints_summary import PredicateConstraintsSummary
|
|
59
60
|
from ..queries.result_specs import (
|
|
60
61
|
DataCoordinateResultSpec,
|
|
61
62
|
DatasetRefResultSpec,
|
|
@@ -68,7 +69,6 @@ from ..registry.interfaces import ChainedCollectionRecord, CollectionRecord
|
|
|
68
69
|
from ..registry.managers import RegistryManagerInstances
|
|
69
70
|
from ..registry.wildcards import CollectionWildcard
|
|
70
71
|
from ._postprocessing import Postprocessing
|
|
71
|
-
from ._predicate_constraints_summary import PredicateConstraintsSummary
|
|
72
72
|
from ._query_analysis import (
|
|
73
73
|
QueryCollectionAnalysis,
|
|
74
74
|
QueryFindFirstAnalysis,
|
|
@@ -33,6 +33,8 @@ from collections.abc import Iterable, Mapping, Set
|
|
|
33
33
|
from types import EllipsisType
|
|
34
34
|
from typing import Any, final
|
|
35
35
|
|
|
36
|
+
import astropy.table
|
|
37
|
+
|
|
36
38
|
from lsst.utils.iteration import ensure_iterable
|
|
37
39
|
|
|
38
40
|
from .._dataset_type import DatasetType
|
|
@@ -49,6 +51,7 @@ from ._identifiers import IdentifierContext, interpret_identifier
|
|
|
49
51
|
from .convert_args import convert_where_args
|
|
50
52
|
from .driver import QueryDriver
|
|
51
53
|
from .expression_factory import ExpressionFactory
|
|
54
|
+
from .predicate_constraints_summary import PredicateConstraintsSummary
|
|
52
55
|
from .result_specs import (
|
|
53
56
|
DataCoordinateResultSpec,
|
|
54
57
|
DatasetRefResultSpec,
|
|
@@ -586,7 +589,7 @@ class Query(QueryBase):
|
|
|
586
589
|
return query
|
|
587
590
|
|
|
588
591
|
def join_data_coordinates(self, iterable: Iterable[DataCoordinate]) -> Query:
|
|
589
|
-
"""Return a new query that joins in an explicit
|
|
592
|
+
"""Return a new query that joins in an explicit iterable of data IDs.
|
|
590
593
|
|
|
591
594
|
Parameters
|
|
592
595
|
----------
|
|
@@ -618,6 +621,50 @@ class Query(QueryBase):
|
|
|
618
621
|
driver=self._driver,
|
|
619
622
|
)
|
|
620
623
|
|
|
624
|
+
def join_data_coordinate_table(self, table: astropy.table.Table) -> Query:
|
|
625
|
+
"""Return a new query that joins in an explicit table of data IDs.
|
|
626
|
+
|
|
627
|
+
Parameters
|
|
628
|
+
----------
|
|
629
|
+
table : `astropy.table.Table`
|
|
630
|
+
A table of data IDs to join. Columns must be dimension names, and
|
|
631
|
+
columns for dimensions whose values that are implied by others are
|
|
632
|
+
ignored. If there is no column for a required dimension is missing
|
|
633
|
+
but is fully constrained to a literal by a previous `where` call, a
|
|
634
|
+
constant-valued column will be added.
|
|
635
|
+
|
|
636
|
+
Returns
|
|
637
|
+
-------
|
|
638
|
+
query : `Query`
|
|
639
|
+
A new query object with the data IDs joined in.
|
|
640
|
+
"""
|
|
641
|
+
if not len(table):
|
|
642
|
+
raise InvalidQueryError("Cannot upload an empty data coordinate set.")
|
|
643
|
+
column_names = set(table.colnames)
|
|
644
|
+
dimensions = self._driver.universe.conform(column_names)
|
|
645
|
+
# To avoid numpy scalar types that will upset SQLAlchemy, we turn the
|
|
646
|
+
# columns we care about into lists of regular Python scalars. We do
|
|
647
|
+
# this in dimensions.required order so we can zip the values of this
|
|
648
|
+
# dict later to make data ID 'required_values' tuples.
|
|
649
|
+
column_lists = {d: table[d].data.tolist() if d in column_names else None for d in dimensions.required}
|
|
650
|
+
if not column_names.issuperset(dimensions.required):
|
|
651
|
+
# If columns are missing, see if they're fixed by a previous
|
|
652
|
+
# `where` call or equivalent.
|
|
653
|
+
predicate_summary = PredicateConstraintsSummary(self._tree.predicate)
|
|
654
|
+
missing = dimensions.required - column_names
|
|
655
|
+
provided_by_predicate = predicate_summary.constraint_data_id.keys() & missing
|
|
656
|
+
missing -= provided_by_predicate
|
|
657
|
+
if missing:
|
|
658
|
+
raise InvalidQueryError(f"Data coordinate table is missing required dimension(s) {missing}.")
|
|
659
|
+
if provided_by_predicate:
|
|
660
|
+
for k in provided_by_predicate:
|
|
661
|
+
column_lists[k] = [predicate_summary.constraint_data_id[k]] * len(table)
|
|
662
|
+
key = self._driver.upload_data_coordinates(dimensions, zip(*column_lists.values(), strict=True))
|
|
663
|
+
return Query(
|
|
664
|
+
tree=self._tree.join_data_coordinate_upload(dimensions=dimensions, key=key),
|
|
665
|
+
driver=self._driver,
|
|
666
|
+
)
|
|
667
|
+
|
|
621
668
|
def join_dimensions(self, dimensions: Iterable[str] | DimensionGroup) -> Query:
|
|
622
669
|
"""Return a new query that joins the logical tables for additional
|
|
623
670
|
dimensions.
|
|
@@ -31,8 +31,8 @@ from typing import Any
|
|
|
31
31
|
|
|
32
32
|
from .._exceptions import InvalidQueryError
|
|
33
33
|
from ..dimensions import DataCoordinate, DataIdValue, DimensionGroup, DimensionUniverse
|
|
34
|
-
from
|
|
35
|
-
from
|
|
34
|
+
from . import tree as qt
|
|
35
|
+
from .visitors import ColumnExpressionVisitor, PredicateVisitFlags, SimplePredicateVisitor
|
|
36
36
|
|
|
37
37
|
|
|
38
38
|
class PredicateConstraintsSummary:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: lsst-daf-butler
|
|
3
|
-
Version: 29.2025.
|
|
3
|
+
Version: 29.2025.1600
|
|
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
|
|
@@ -147,7 +147,6 @@ python/lsst/daf/butler/direct_butler/_direct_butler_collections.py
|
|
|
147
147
|
python/lsst/daf/butler/direct_query_driver/__init__.py
|
|
148
148
|
python/lsst/daf/butler/direct_query_driver/_driver.py
|
|
149
149
|
python/lsst/daf/butler/direct_query_driver/_postprocessing.py
|
|
150
|
-
python/lsst/daf/butler/direct_query_driver/_predicate_constraints_summary.py
|
|
151
150
|
python/lsst/daf/butler/direct_query_driver/_query_analysis.py
|
|
152
151
|
python/lsst/daf/butler/direct_query_driver/_query_builder.py
|
|
153
152
|
python/lsst/daf/butler/direct_query_driver/_result_page_converter.py
|
|
@@ -177,6 +176,7 @@ python/lsst/daf/butler/queries/convert_args.py
|
|
|
177
176
|
python/lsst/daf/butler/queries/driver.py
|
|
178
177
|
python/lsst/daf/butler/queries/expression_factory.py
|
|
179
178
|
python/lsst/daf/butler/queries/overlaps.py
|
|
179
|
+
python/lsst/daf/butler/queries/predicate_constraints_summary.py
|
|
180
180
|
python/lsst/daf/butler/queries/result_specs.py
|
|
181
181
|
python/lsst/daf/butler/queries/visitors.py
|
|
182
182
|
python/lsst/daf/butler/queries/tree/__init__.py
|
|
@@ -42,11 +42,11 @@ TESTDIR = os.path.abspath(os.path.dirname(__file__))
|
|
|
42
42
|
def modified_environment(**environ):
|
|
43
43
|
"""Temporarily set environment variables.
|
|
44
44
|
|
|
45
|
-
>>> with modified_environment(
|
|
46
|
-
... os.environ["
|
|
45
|
+
>>> with modified_environment(DAF_BUTLER_CONFIG_PATH="/somewhere"):
|
|
46
|
+
... os.environ["DAF_BUTLER_CONFIG_PATH"] == "/somewhere"
|
|
47
47
|
True
|
|
48
48
|
|
|
49
|
-
>>> "
|
|
49
|
+
>>> "DAF_BUTLER_CONFIG_PATH" != "/somewhere"
|
|
50
50
|
True
|
|
51
51
|
|
|
52
52
|
Parameters
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
# You should have received a copy of the GNU General Public License
|
|
26
26
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
27
27
|
|
|
28
|
-
"""Tests for the public Butler.
|
|
28
|
+
"""Tests for the public Butler.query interface and the Pydantic models that
|
|
29
29
|
back it using a mock column-expression visitor and a mock QueryDriver
|
|
30
30
|
implementation.
|
|
31
31
|
|
|
@@ -46,7 +46,9 @@ import uuid
|
|
|
46
46
|
from collections.abc import Iterable, Iterator, Mapping, Set
|
|
47
47
|
from typing import Any
|
|
48
48
|
|
|
49
|
+
import astropy.table
|
|
49
50
|
import astropy.time
|
|
51
|
+
import numpy as np
|
|
50
52
|
|
|
51
53
|
from lsst.daf.butler import (
|
|
52
54
|
CollectionType,
|
|
@@ -1475,6 +1477,42 @@ class QueryTestCase(unittest.TestCase):
|
|
|
1475
1477
|
]
|
|
1476
1478
|
)
|
|
1477
1479
|
|
|
1480
|
+
def test_join_data_coordinate_table(self) -> None:
|
|
1481
|
+
"""Test joining a data coordinates via a table."""
|
|
1482
|
+
query = self.query()
|
|
1483
|
+
x = query.expression_factory
|
|
1484
|
+
self.assertFalse(query.constraint_dimensions)
|
|
1485
|
+
query = query.where(x.skymap == "m")
|
|
1486
|
+
self.assertEqual(query.constraint_dimensions, self.universe.conform(["skymap"]))
|
|
1487
|
+
with self.assertRaises(InvalidQueryError):
|
|
1488
|
+
# Cannot join a table with no rows.
|
|
1489
|
+
query.join_data_coordinate_table(
|
|
1490
|
+
astropy.table.Table({"instrument": np.array([]), "visit": np.array([])})
|
|
1491
|
+
)
|
|
1492
|
+
with self.assertRaises(InvalidQueryError):
|
|
1493
|
+
# Cannot join a table with missing required dimensions.
|
|
1494
|
+
query.join_data_coordinate_table(astropy.table.Table({"visit": np.array([1, 3, 5])}))
|
|
1495
|
+
upload_table = astropy.table.Table({"tract": np.array([2, 5, 7], dtype=np.int64)})
|
|
1496
|
+
raw_rows = frozenset([("m", 2), ("m", 5), ("m", 7)])
|
|
1497
|
+
query = query.join_data_coordinate_table(upload_table)
|
|
1498
|
+
self.assertEqual(query.constraint_dimensions, self.universe.conform(["skymap", "tract"]))
|
|
1499
|
+
results = query.dimension_records("patch")
|
|
1500
|
+
with self.assertRaises(_TestQueryExecution) as cm:
|
|
1501
|
+
list(results)
|
|
1502
|
+
tree = cm.exception.tree
|
|
1503
|
+
driver = cm.exception.driver
|
|
1504
|
+
self.assertEqual(str(tree.predicate), "skymap == 'm'")
|
|
1505
|
+
self.assertEqual(tree.dimensions, self.universe.conform(["patch"]))
|
|
1506
|
+
self.assertFalse(tree.materializations)
|
|
1507
|
+
self.assertFalse(tree.datasets)
|
|
1508
|
+
((key, upload_dimensions),) = tree.data_coordinate_uploads.items()
|
|
1509
|
+
self.assertEqual(upload_dimensions, self.universe.conform(["tract"]))
|
|
1510
|
+
self.assertEqual(driver.data_coordinate_uploads[key], (upload_dimensions, raw_rows))
|
|
1511
|
+
for row in driver.data_coordinate_uploads[key][1]:
|
|
1512
|
+
for value in row:
|
|
1513
|
+
# Make sure numpy scalar types have been cast to builtins.
|
|
1514
|
+
self.assertIsInstance(value, (int, str))
|
|
1515
|
+
|
|
1478
1516
|
def test_dimension_record_iteration(self) -> None:
|
|
1479
1517
|
"""Tests for DimensionRecordQueryResult iteration."""
|
|
1480
1518
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/doc/lsst.daf.butler/CHANGES.rst
RENAMED
|
File without changes
|
|
File without changes
|
{lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/doc/lsst.daf.butler/configuring.rst
RENAMED
|
File without changes
|
{lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/doc/lsst.daf.butler/datastores.rst
RENAMED
|
File without changes
|
{lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/doc/lsst.daf.butler/dimensions.rst
RENAMED
|
File without changes
|
{lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/doc/lsst.daf.butler/formatters.rst
RENAMED
|
File without changes
|
|
File without changes
|
{lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/doc/lsst.daf.butler/organizing.rst
RENAMED
|
File without changes
|
{lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/doc/lsst.daf.butler/queries.rst
RENAMED
|
File without changes
|
{lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/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.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/__init__.py
RENAMED
|
File without changes
|
{lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/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-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/_column_tags.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.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/_dataset_ref.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/_exceptions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/_formatter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/_location.py
RENAMED
|
File without changes
|
{lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/_named.py
RENAMED
|
File without changes
|
{lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/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.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/_timespan.py
RENAMED
|
File without changes
|
{lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/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.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/arrow_utils.py
RENAMED
|
File without changes
|
{lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/cli/__init__.py
RENAMED
|
File without changes
|
{lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/cli/butler.py
RENAMED
|
File without changes
|
{lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/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.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/cli/progress.py
RENAMED
|
File without changes
|
{lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/python/lsst/daf/butler/cli/utils.py
RENAMED
|
File without changes
|
{lsst_daf_butler-29.2025.1500 → lsst_daf_butler-29.2025.1600}/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
|