lsst-daf-butler 29.2025.4800__tar.gz → 30.0.0rc1__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.4800/python/lsst_daf_butler.egg-info → lsst_daf_butler-30.0.0rc1}/PKG-INFO +1 -1
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_butler.py +2 -23
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_limited_butler.py +29 -4
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/formatters/parquet.py +30 -18
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/logging.py +17 -7
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/script/_pruneDatasets.py +2 -1
- lsst_daf_butler-30.0.0rc1/python/lsst/daf/butler/version.py +2 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1/python/lsst_daf_butler.egg-info}/PKG-INFO +1 -1
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_cliCmdPruneDatasets.py +62 -3
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_cliUtilSplitKv.py +4 -2
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_logFormatter.py +48 -0
- lsst_daf_butler-29.2025.4800/python/lsst/daf/butler/version.py +0 -2
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/COPYRIGHT +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/LICENSE +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/MANIFEST.in +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/README.md +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/bsd_license.txt +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/doc/lsst.daf.butler/CHANGES.rst +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/doc/lsst.daf.butler/concreteStorageClasses.rst +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/doc/lsst.daf.butler/configuring.rst +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/doc/lsst.daf.butler/datastores.rst +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/doc/lsst.daf.butler/dimensions.rst +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/doc/lsst.daf.butler/formatters.rst +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/doc/lsst.daf.butler/index.rst +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/doc/lsst.daf.butler/organizing.rst +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/doc/lsst.daf.butler/queries.rst +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/doc/lsst.daf.butler/use-in-tests.rst +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/doc/lsst.daf.butler/writing-subcommands.rst +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/gpl-v3.0.txt +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/pyproject.toml +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_butler_collections.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_butler_config.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_butler_instance_options.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_butler_metrics.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_butler_repo_index.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_collection_type.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_config.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_config_support.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_dataset_association.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_dataset_existence.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_dataset_provenance.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_dataset_ref.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_dataset_type.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_deferredDatasetHandle.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_exceptions.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_exceptions_legacy.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_file_dataset.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_file_descriptor.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_formatter.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_labeled_butler_factory.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_location.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_named.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_quantum.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_quantum_backed.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_query_all_datasets.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_registry_shim.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_rubin/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_rubin/file_datasets.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_standalone_datastore.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_storage_class.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_storage_class_delegate.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_timespan.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_topology.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_utilities/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_utilities/locked_object.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_utilities/named_locks.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_utilities/thread_safe_cache.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_uuid.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/arrow_utils.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/cli/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/cli/butler.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/cli/cliLog.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/cli/cmd/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/cli/cmd/_remove_collections.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/cli/cmd/_remove_runs.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/cli/cmd/commands.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/cli/opt/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/cli/opt/arguments.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/cli/opt/optionGroups.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/cli/opt/options.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/cli/progress.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/cli/utils.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/column_spec.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/configs/datastore.yaml +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/configs/datastores/composites.yaml +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/configs/datastores/fileDatastore.yaml +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/configs/datastores/formatters.yaml +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/configs/datastores/writeRecipes.yaml +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/configs/dimensions.yaml +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/configs/old_dimensions/daf_butler_universe0.yaml +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/configs/old_dimensions/daf_butler_universe1.yaml +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/configs/old_dimensions/daf_butler_universe2.yaml +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/configs/old_dimensions/daf_butler_universe3.yaml +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/configs/old_dimensions/daf_butler_universe4.yaml +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/configs/old_dimensions/daf_butler_universe5.yaml +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/configs/old_dimensions/daf_butler_universe6.yaml +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/configs/old_dimensions/daf_butler_universe7.yaml +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/configs/registry.yaml +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/configs/repo_transfer_formats.yaml +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/configs/storageClasses.yaml +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/datastore/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/datastore/_datastore.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/datastore/_transfer.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/datastore/cache_manager.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/datastore/composites.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/datastore/constraints.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/datastore/file_templates.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/datastore/generic_base.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/datastore/record_data.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/datastore/stored_file_info.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/datastores/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/datastores/chainedDatastore.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/datastores/fileDatastore.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/datastores/file_datastore/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/datastores/file_datastore/get.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/datastores/file_datastore/retrieve_artifacts.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/datastores/file_datastore/transfer.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/datastores/inMemoryDatastore.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/ddl.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/delegates/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/delegates/arrowtable.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/dimensions/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/dimensions/_config.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/dimensions/_coordinate.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/dimensions/_data_coordinate_iterable.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/dimensions/_database.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/dimensions/_elements.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/dimensions/_governor.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/dimensions/_group.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/dimensions/_packer.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/dimensions/_record_set.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/dimensions/_record_table.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/dimensions/_records.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/dimensions/_schema.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/dimensions/_skypix.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/dimensions/_universe.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/dimensions/construction.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/dimensions/record_cache.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/direct_butler/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/direct_butler/_direct_butler.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/direct_butler/_direct_butler_collections.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/direct_query_driver/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/direct_query_driver/_driver.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/direct_query_driver/_postprocessing.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/direct_query_driver/_query_analysis.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/direct_query_driver/_query_builder.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/direct_query_driver/_result_page_converter.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/direct_query_driver/_sql_builders.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/direct_query_driver/_sql_column_visitor.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/formatters/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/formatters/astropyTable.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/formatters/file.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/formatters/json.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/formatters/logs.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/formatters/matplotlib.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/formatters/packages.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/formatters/pickle.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/formatters/typeless.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/formatters/yaml.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/json.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/mapping_factory.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/name_shrinker.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/nonempty_mapping.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/persistence_context.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/progress.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/py.typed +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/pydantic_utils.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/queries/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/queries/_base.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/queries/_data_coordinate_query_results.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/queries/_dataset_query_results.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/queries/_dimension_record_query_results.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/queries/_expression_strings.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/queries/_general_query_results.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/queries/_identifiers.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/queries/_query.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/queries/convert_args.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/queries/driver.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/queries/expression_factory.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/queries/expressions/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/queries/expressions/categorize.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/queries/expressions/parser/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/queries/expressions/parser/exprTree.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/queries/expressions/parser/parser.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/queries/expressions/parser/parserLex.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/queries/expressions/parser/parserYacc.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/queries/expressions/parser/ply/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/queries/expressions/parser/ply/lex.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/queries/expressions/parser/ply/yacc.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/queries/expressions/parser/treeVisitor.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/queries/overlaps.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/queries/predicate_constraints_summary.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/queries/result_specs.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/queries/tree/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/queries/tree/_base.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/queries/tree/_column_expression.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/queries/tree/_column_literal.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/queries/tree/_column_reference.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/queries/tree/_column_set.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/queries/tree/_predicate.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/queries/tree/_query_tree.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/queries/visitors.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/_caching_context.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/_collection_record_cache.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/_collection_summary.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/_collection_summary_cache.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/_config.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/_defaults.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/_exceptions.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/_registry.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/_registry_base.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/_registry_factory.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/attributes.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/bridge/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/bridge/ephemeral.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/bridge/monolithic.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/collections/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/collections/_base.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/collections/nameKey.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/collections/synthIntKey.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/connectionString.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/databases/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/databases/postgresql.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/databases/sqlite.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/datasets/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/datasets/byDimensions/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/datasets/byDimensions/_dataset_type_cache.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/datasets/byDimensions/_manager.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/datasets/byDimensions/summaries.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/datasets/byDimensions/tables.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/dimensions/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/dimensions/static.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/interfaces/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/interfaces/_attributes.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/interfaces/_bridge.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/interfaces/_collections.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/interfaces/_database.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/interfaces/_database_explain.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/interfaces/_datasets.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/interfaces/_dimensions.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/interfaces/_obscore.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/interfaces/_opaque.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/interfaces/_versioning.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/managers.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/nameShrinker.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/obscore/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/obscore/_config.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/obscore/_manager.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/obscore/_records.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/obscore/_schema.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/obscore/_spatial.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/obscore/default_spatial.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/obscore/pgsphere.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/opaque.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/queries/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/queries/_query_common.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/queries/_query_data_coordinates.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/queries/_query_datasets.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/queries/_query_dimension_records.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/queries/_results.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/sql_registry.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/tests/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/tests/_database.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/tests/_registry.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/versions.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/registry/wildcards.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/remote_butler/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/remote_butler/_collection_args.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/remote_butler/_config.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/remote_butler/_defaults.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/remote_butler/_errors.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/remote_butler/_factory.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/remote_butler/_get.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/remote_butler/_http_connection.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/remote_butler/_query_driver.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/remote_butler/_query_results.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/remote_butler/_ref_utils.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/remote_butler/_registry.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/remote_butler/_remote_butler.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/remote_butler/_remote_butler_collections.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/remote_butler/_remote_file_transfer_source.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/remote_butler/authentication/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/remote_butler/authentication/cadc.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/remote_butler/authentication/interface.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/remote_butler/authentication/rubin.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/remote_butler/registry/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/remote_butler/server/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/remote_butler/server/_config.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/remote_butler/server/_dependencies.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/remote_butler/server/_factory.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/remote_butler/server/_gafaelfawr.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/remote_butler/server/_server.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/remote_butler/server/_telemetry.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/remote_butler/server/handlers/_external.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/remote_butler/server/handlers/_external_query.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/remote_butler/server/handlers/_file_info.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/remote_butler/server/handlers/_internal.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/remote_butler/server/handlers/_query_limits.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/remote_butler/server/handlers/_query_serialization.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/remote_butler/server/handlers/_query_streaming.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/remote_butler/server/handlers/_utils.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/remote_butler/server_models.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/repo_relocation.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/script/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/script/_associate.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/script/butlerImport.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/script/certifyCalibrations.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/script/collectionChain.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/script/configDump.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/script/configValidate.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/script/createRepo.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/script/exportCalibs.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/script/ingest_files.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/script/ingest_zip.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/script/queryCollections.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/script/queryDataIds.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/script/queryDatasetTypes.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/script/queryDatasets.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/script/queryDimensionRecords.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/script/register_dataset_type.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/script/removeCollections.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/script/removeDatasetType.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/script/removeRuns.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/script/retrieveArtifacts.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/script/transferDatasets.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/tests/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/tests/_datasetsHelper.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/tests/_dummyRegistry.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/tests/_examplePythonTypes.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/tests/_testRepo.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/tests/butler_queries.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/tests/cliCmdTestBase.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/tests/cliLogTestBase.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/tests/deferredFormatter.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/tests/dict_convertible_model.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/tests/hybrid_butler.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/tests/hybrid_butler_collections.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/tests/hybrid_butler_registry.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/tests/postgresql.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/tests/registry_data/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/tests/registry_data/base.yaml +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/tests/registry_data/ci_hsc-subset-skymap.yaml +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/tests/registry_data/ci_hsc-subset.yaml +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/tests/registry_data/datasets.yaml +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/tests/registry_data/hsc-rc2-subset-v0.yaml +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/tests/registry_data/spatial.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/tests/registry_data/spatial.yaml +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/tests/server.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/tests/server_available.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/tests/server_utils.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/tests/testFormatters.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/tests/utils.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/time_utils.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/timespan_database_representation.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/transfers/__init__.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/transfers/_context.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/transfers/_interfaces.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/transfers/_yaml.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/utils.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst_daf_butler.egg-info/SOURCES.txt +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst_daf_butler.egg-info/dependency_links.txt +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst_daf_butler.egg-info/entry_points.txt +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst_daf_butler.egg-info/requires.txt +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst_daf_butler.egg-info/top_level.txt +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst_daf_butler.egg-info/zip-safe +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/setup.cfg +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_astropyTableFormatter.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_authentication.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_butler.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_butler_factory.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_cliCmdAssociate.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_cliCmdConfigDump.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_cliCmdConfigValidate.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_cliCmdCreate.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_cliCmdImport.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_cliCmdIngestFiles.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_cliCmdQueryCollections.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_cliCmdQueryDataIds.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_cliCmdQueryDatasetTypes.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_cliCmdQueryDatasets.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_cliCmdQueryDimensionRecords.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_cliCmdRemoveCollections.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_cliCmdRemoveRuns.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_cliCmdRetrieveArtifacts.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_cliLog.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_cliPluginLoader.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_cliUtilSplitCommas.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_cliUtilToUpper.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_cliUtils.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_column_spec.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_composites.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_config.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_connectionString.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_constraints.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_datasets.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_datastore.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_ddl.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_dimension_record_containers.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_dimensions.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_exprParserLex.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_exprParserYacc.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_formatter.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_gafaelfawr.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_location.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_logging.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_matplotlibFormatter.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_nonempty_mapping.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_obscore.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_packages.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_parquet.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_postgresql.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_progress.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_pydantic_utils.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_quantum.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_quantumBackedButler.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_query_direct_postgresql.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_query_direct_sqlite.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_query_interface.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_query_remote.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_query_utilities.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_remote_butler.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_server.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_simpleButler.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_sqlite.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_storageClass.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_templates.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_testRepo.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_thread_utils.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_time_utils.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_timespan.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_utils.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_uuid.py +0 -0
- {lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_versioning.py +0 -0
{lsst_daf_butler-29.2025.4800/python/lsst_daf_butler.egg-info → lsst_daf_butler-30.0.0rc1}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: lsst-daf-butler
|
|
3
|
-
Version:
|
|
3
|
+
Version: 30.0.0rc1
|
|
4
4
|
Summary: An abstraction layer for reading and writing astronomical data to datastores.
|
|
5
5
|
Author-email: Rubin Observatory Data Management <dm-admin@lists.lsst.org>
|
|
6
6
|
License-Expression: BSD-3-Clause OR GPL-3.0-or-later
|
{lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_butler.py
RENAMED
|
@@ -36,7 +36,7 @@ from abc import abstractmethod
|
|
|
36
36
|
from collections.abc import Collection, Iterable, Iterator, Mapping, Sequence
|
|
37
37
|
from contextlib import AbstractContextManager
|
|
38
38
|
from types import EllipsisType
|
|
39
|
-
from typing import TYPE_CHECKING, Any,
|
|
39
|
+
from typing import TYPE_CHECKING, Any, TextIO
|
|
40
40
|
|
|
41
41
|
from lsst.resources import ResourcePath, ResourcePathExpression
|
|
42
42
|
from lsst.utils import doImportType
|
|
@@ -94,7 +94,7 @@ class _DeprecatedDefault:
|
|
|
94
94
|
"""Default value for a deprecated parameter."""
|
|
95
95
|
|
|
96
96
|
|
|
97
|
-
class Butler(LimitedButler
|
|
97
|
+
class Butler(LimitedButler): # numpydoc ignore=PR02
|
|
98
98
|
"""Interface for data butler and factory for Butler instances.
|
|
99
99
|
|
|
100
100
|
Parameters
|
|
@@ -358,16 +358,6 @@ class Butler(LimitedButler, AbstractContextManager): # numpydoc ignore=PR02
|
|
|
358
358
|
case _:
|
|
359
359
|
raise TypeError(f"Unknown Butler type '{butler_type}'")
|
|
360
360
|
|
|
361
|
-
def __enter__(self) -> Self:
|
|
362
|
-
return self
|
|
363
|
-
|
|
364
|
-
def __exit__(self, exc_type: Any, exc_val: Any, exc_tb: Any) -> Literal[False]:
|
|
365
|
-
try:
|
|
366
|
-
self.close()
|
|
367
|
-
except Exception:
|
|
368
|
-
_LOG.exception("An exception occured during Butler.close()")
|
|
369
|
-
return False
|
|
370
|
-
|
|
371
361
|
@staticmethod
|
|
372
362
|
def makeRepo(
|
|
373
363
|
root: ResourcePathExpression,
|
|
@@ -2236,15 +2226,4 @@ class Butler(LimitedButler, AbstractContextManager): # numpydoc ignore=PR02
|
|
|
2236
2226
|
|
|
2237
2227
|
@abstractmethod
|
|
2238
2228
|
def close(self) -> None:
|
|
2239
|
-
"""Release all resources associated with this Butler instance. The
|
|
2240
|
-
instance may no longer be used after this is called.
|
|
2241
|
-
|
|
2242
|
-
Notes
|
|
2243
|
-
-----
|
|
2244
|
-
Instead of calling ``close()``directly, you can use the Butler object
|
|
2245
|
-
as a context manager. For example::
|
|
2246
|
-
with Butler(...) as butler:
|
|
2247
|
-
butler.get(...)
|
|
2248
|
-
# butler is closed after exiting the block.
|
|
2249
|
-
"""
|
|
2250
2229
|
raise NotImplementedError()
|
{lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_limited_butler.py
RENAMED
|
@@ -30,10 +30,10 @@ from __future__ import annotations
|
|
|
30
30
|
__all__ = ("LimitedButler",)
|
|
31
31
|
|
|
32
32
|
import logging
|
|
33
|
-
from abc import
|
|
33
|
+
from abc import abstractmethod
|
|
34
34
|
from collections.abc import Iterable, Iterator
|
|
35
|
-
from contextlib import contextmanager
|
|
36
|
-
from typing import Any, ClassVar
|
|
35
|
+
from contextlib import AbstractContextManager, contextmanager
|
|
36
|
+
from typing import Any, ClassVar, Literal, Self
|
|
37
37
|
|
|
38
38
|
from lsst.resources import ResourcePath
|
|
39
39
|
|
|
@@ -48,7 +48,7 @@ from .dimensions import DimensionUniverse
|
|
|
48
48
|
log = logging.getLogger(__name__)
|
|
49
49
|
|
|
50
50
|
|
|
51
|
-
class LimitedButler(
|
|
51
|
+
class LimitedButler(AbstractContextManager):
|
|
52
52
|
"""A minimal butler interface that is sufficient to back
|
|
53
53
|
`~lsst.pipe.base.PipelineTask` execution.
|
|
54
54
|
"""
|
|
@@ -100,6 +100,31 @@ class LimitedButler(ABC):
|
|
|
100
100
|
"""
|
|
101
101
|
raise NotImplementedError()
|
|
102
102
|
|
|
103
|
+
def __enter__(self) -> Self:
|
|
104
|
+
return self
|
|
105
|
+
|
|
106
|
+
def __exit__(self, exc_type: Any, exc_val: Any, exc_tb: Any) -> Literal[False]:
|
|
107
|
+
try:
|
|
108
|
+
self.close()
|
|
109
|
+
except Exception:
|
|
110
|
+
log.exception("An exception occurred during Butler.close()")
|
|
111
|
+
return False
|
|
112
|
+
|
|
113
|
+
def close(self) -> None:
|
|
114
|
+
"""Release all resources associated with this Butler instance. The
|
|
115
|
+
instance may no longer be used after this is called.
|
|
116
|
+
|
|
117
|
+
Notes
|
|
118
|
+
-----
|
|
119
|
+
Instead of calling ``close()`` directly, you can use the Butler object
|
|
120
|
+
as a context manager. For example::
|
|
121
|
+
|
|
122
|
+
with Butler(...) as butler:
|
|
123
|
+
butler.get(...)
|
|
124
|
+
# butler is closed after exiting the block.
|
|
125
|
+
"""
|
|
126
|
+
pass
|
|
127
|
+
|
|
103
128
|
def get(
|
|
104
129
|
self,
|
|
105
130
|
ref: DatasetRef,
|
|
@@ -49,13 +49,14 @@ __all__ = (
|
|
|
49
49
|
)
|
|
50
50
|
|
|
51
51
|
import collections.abc
|
|
52
|
+
import contextlib
|
|
52
53
|
import itertools
|
|
53
54
|
import json
|
|
54
55
|
import logging
|
|
55
56
|
import re
|
|
56
|
-
from collections.abc import Iterable, Sequence
|
|
57
|
+
from collections.abc import Generator, Iterable, Sequence
|
|
57
58
|
from fnmatch import fnmatchcase
|
|
58
|
-
from typing import TYPE_CHECKING, Any, cast
|
|
59
|
+
from typing import IO, TYPE_CHECKING, Any, cast
|
|
59
60
|
|
|
60
61
|
import pyarrow as pa
|
|
61
62
|
import pyarrow.parquet as pq
|
|
@@ -84,6 +85,16 @@ TARGET_ROW_GROUP_BYTES = 1_000_000_000
|
|
|
84
85
|
ASTROPY_PANDAS_INDEX_KEY = "lsst::arrow::astropy_pandas_index"
|
|
85
86
|
|
|
86
87
|
|
|
88
|
+
@contextlib.contextmanager
|
|
89
|
+
def generic_open(path: str, fs: AbstractFileSystem | None) -> Generator[IO]:
|
|
90
|
+
if fs is None:
|
|
91
|
+
with open(path, "rb") as fh:
|
|
92
|
+
yield fh
|
|
93
|
+
else:
|
|
94
|
+
with fs.open(path) as fh:
|
|
95
|
+
yield fh
|
|
96
|
+
|
|
97
|
+
|
|
87
98
|
class ParquetFormatter(FormatterV2):
|
|
88
99
|
"""Interface for reading and writing Arrow Table objects to and from
|
|
89
100
|
Parquet files.
|
|
@@ -120,7 +131,8 @@ class ParquetFormatter(FormatterV2):
|
|
|
120
131
|
component: str | None = None,
|
|
121
132
|
expected_size: int = -1,
|
|
122
133
|
) -> Any:
|
|
123
|
-
|
|
134
|
+
with generic_open(path, fs) as handle:
|
|
135
|
+
schema = pq.read_schema(handle)
|
|
124
136
|
|
|
125
137
|
schema_names = ["ArrowSchema", "DataFrameSchema", "ArrowAstropySchema", "ArrowNumpySchema"]
|
|
126
138
|
|
|
@@ -133,13 +145,13 @@ class ParquetFormatter(FormatterV2):
|
|
|
133
145
|
if b"lsst::arrow::rowcount" in schema.metadata:
|
|
134
146
|
return int(schema.metadata[b"lsst::arrow::rowcount"])
|
|
135
147
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
148
|
+
with generic_open(path, fs) as handle:
|
|
149
|
+
temp_table = pq.read_table(
|
|
150
|
+
handle,
|
|
151
|
+
columns=[schema.names[0]],
|
|
152
|
+
use_threads=False,
|
|
153
|
+
use_pandas_metadata=False,
|
|
154
|
+
)
|
|
143
155
|
|
|
144
156
|
return len(temp_table[schema.names[0]])
|
|
145
157
|
|
|
@@ -148,7 +160,7 @@ class ParquetFormatter(FormatterV2):
|
|
|
148
160
|
par_columns = self.file_descriptor.parameters.pop("columns", None)
|
|
149
161
|
if par_columns:
|
|
150
162
|
has_pandas_multi_index = False
|
|
151
|
-
if b"pandas" in schema.metadata:
|
|
163
|
+
if schema.metadata and b"pandas" in schema.metadata:
|
|
152
164
|
md = json.loads(schema.metadata[b"pandas"])
|
|
153
165
|
if len(md["column_indexes"]) > 1:
|
|
154
166
|
has_pandas_multi_index = True
|
|
@@ -184,13 +196,13 @@ class ParquetFormatter(FormatterV2):
|
|
|
184
196
|
)
|
|
185
197
|
|
|
186
198
|
metadata = schema.metadata if schema.metadata is not None else {}
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
199
|
+
with generic_open(path, fs) as handle:
|
|
200
|
+
arrow_table = pq.read_table(
|
|
201
|
+
handle,
|
|
202
|
+
columns=par_columns,
|
|
203
|
+
use_threads=False,
|
|
204
|
+
use_pandas_metadata=(b"pandas" in metadata),
|
|
205
|
+
)
|
|
194
206
|
|
|
195
207
|
return arrow_table
|
|
196
208
|
|
{lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/logging.py
RENAMED
|
@@ -537,6 +537,9 @@ class ButlerLogRecords(MutableSequence[ButlerLogRecord]):
|
|
|
537
537
|
if cls._generic_startswith(startdata, "["):
|
|
538
538
|
# This is a JSON array of records.
|
|
539
539
|
return _ButlerLogRecordsModelV1
|
|
540
|
+
elif cls._generic_startswith(startdata, cls.STREAMING_EXTRA_DELIMITER):
|
|
541
|
+
# This is an empty log file with a log record per line format.
|
|
542
|
+
return None
|
|
540
543
|
elif not cls._generic_startswith(startdata, "{"):
|
|
541
544
|
# Limit the length of string reported in error message in case
|
|
542
545
|
# this is an enormous file.
|
|
@@ -570,9 +573,12 @@ class ButlerLogRecords(MutableSequence[ButlerLogRecord]):
|
|
|
570
573
|
"""
|
|
571
574
|
first_line = stream.readline()
|
|
572
575
|
|
|
576
|
+
empty_stream = False
|
|
573
577
|
if not first_line:
|
|
574
578
|
# Empty file, return zero records.
|
|
575
579
|
return cls.from_records([])
|
|
580
|
+
elif cls._generic_startswith(first_line, cls.STREAMING_EXTRA_DELIMITER):
|
|
581
|
+
empty_stream = True
|
|
576
582
|
|
|
577
583
|
model_type = cls._detect_model(first_line)
|
|
578
584
|
|
|
@@ -583,13 +589,17 @@ class ButlerLogRecords(MutableSequence[ButlerLogRecord]):
|
|
|
583
589
|
return model_type.model_validate_json(all).wrap(cls)
|
|
584
590
|
|
|
585
591
|
# A stream of records with one record per line.
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
line
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
592
|
+
if not empty_stream:
|
|
593
|
+
records = [ButlerLogRecord.model_validate_json(first_line)]
|
|
594
|
+
for line in stream:
|
|
595
|
+
line = line.rstrip()
|
|
596
|
+
if cls._generic_startswith(line, cls.STREAMING_EXTRA_DELIMITER):
|
|
597
|
+
break
|
|
598
|
+
elif line: # skip blank lines
|
|
599
|
+
records.append(ButlerLogRecord.model_validate_json(line))
|
|
600
|
+
else:
|
|
601
|
+
# No records but might have extra metadata.
|
|
602
|
+
records = []
|
|
593
603
|
extra_data = stream.read()
|
|
594
604
|
if extra_data:
|
|
595
605
|
extra = pydantic_core.from_json(extra_data)
|
|
@@ -243,6 +243,7 @@ def pruneDatasets(
|
|
|
243
243
|
find_first=not find_all,
|
|
244
244
|
show_uri=False,
|
|
245
245
|
)
|
|
246
|
+
dataset_refs = list(itertools.chain.from_iterable(datasets_found.getDatasets()))
|
|
246
247
|
|
|
247
248
|
result = PruneDatasetsResult(list(datasets_found.getTables()))
|
|
248
249
|
|
|
@@ -258,7 +259,7 @@ def pruneDatasets(
|
|
|
258
259
|
def doPruneDatasets() -> PruneDatasetsResult:
|
|
259
260
|
with Butler.from_config(repo, writeable=True) as butler:
|
|
260
261
|
butler.pruneDatasets(
|
|
261
|
-
refs=
|
|
262
|
+
refs=dataset_refs,
|
|
262
263
|
disassociate=disassociate,
|
|
263
264
|
tags=disassociate_tags or (),
|
|
264
265
|
purge=purge,
|
{lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1/python/lsst_daf_butler.egg-info}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: lsst-daf-butler
|
|
3
|
-
Version:
|
|
3
|
+
Version: 30.0.0rc1
|
|
4
4
|
Summary: An abstraction layer for reading and writing astronomical data to datastores.
|
|
5
5
|
Author-email: Rubin Observatory Data Management <dm-admin@lists.lsst.org>
|
|
6
6
|
License-Expression: BSD-3-Clause OR GPL-3.0-or-later
|
{lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/tests/test_cliCmdPruneDatasets.py
RENAMED
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
|
|
28
28
|
"""Unit tests for daf_butler CLI prune-datasets subcommand."""
|
|
29
29
|
|
|
30
|
+
import os
|
|
30
31
|
import unittest
|
|
31
32
|
from itertools import chain
|
|
32
33
|
from unittest.mock import ANY, patch
|
|
@@ -36,7 +37,7 @@ from astropy.table import Table
|
|
|
36
37
|
# Tests require the SqlRegistry
|
|
37
38
|
import lsst.daf.butler.registry.sql_registry
|
|
38
39
|
import lsst.daf.butler.script
|
|
39
|
-
from lsst.daf.butler import CollectionInfo, CollectionType
|
|
40
|
+
from lsst.daf.butler import Butler, CollectionInfo, CollectionType
|
|
40
41
|
from lsst.daf.butler.cli.butler import cli as butlerCli
|
|
41
42
|
from lsst.daf.butler.cli.cmd.commands import (
|
|
42
43
|
pruneDatasets_askContinueMsg,
|
|
@@ -57,7 +58,14 @@ from lsst.daf.butler.cli.cmd.commands import (
|
|
|
57
58
|
from lsst.daf.butler.cli.utils import LogCliRunner, astropyTablesToStr, clickResultMsg
|
|
58
59
|
from lsst.daf.butler.direct_butler import DirectButler
|
|
59
60
|
from lsst.daf.butler.script import QueryDatasets
|
|
61
|
+
from lsst.daf.butler.tests.utils import (
|
|
62
|
+
ButlerTestHelper,
|
|
63
|
+
MetricTestRepo,
|
|
64
|
+
makeTestTempDir,
|
|
65
|
+
removeTestTempDir,
|
|
66
|
+
)
|
|
60
67
|
|
|
68
|
+
TESTDIR = os.path.abspath(os.path.dirname(__file__))
|
|
61
69
|
doFindTables = True
|
|
62
70
|
|
|
63
71
|
|
|
@@ -211,8 +219,6 @@ class PruneDatasetsTestCase(unittest.TestCase):
|
|
|
211
219
|
# QueryDatasets.getDatasets also does not get called.
|
|
212
220
|
if exPruneDatasetsCallArgs:
|
|
213
221
|
mockQueryDatasets_getDatasets.assert_called_once()
|
|
214
|
-
else:
|
|
215
|
-
mockQueryDatasets_getDatasets.assert_not_called()
|
|
216
222
|
if exGetTablesCalled:
|
|
217
223
|
mockQueryDatasets_getTables.assert_called_once()
|
|
218
224
|
else:
|
|
@@ -520,5 +526,58 @@ class PruneDatasetsTestCase(unittest.TestCase):
|
|
|
520
526
|
)
|
|
521
527
|
|
|
522
528
|
|
|
529
|
+
class QueryDatasetsCLITest(unittest.TestCase, ButlerTestHelper):
|
|
530
|
+
"""Test that the command works when run as a script."""
|
|
531
|
+
|
|
532
|
+
def setUp(self):
|
|
533
|
+
self.root = makeTestTempDir(TESTDIR)
|
|
534
|
+
self.testRepo = MetricTestRepo(
|
|
535
|
+
self.root, configFile=os.path.join(TESTDIR, "config/basic/butler.yaml")
|
|
536
|
+
)
|
|
537
|
+
self.enterContext(self.testRepo.butler)
|
|
538
|
+
self.runner = LogCliRunner()
|
|
539
|
+
|
|
540
|
+
def tearDown(self):
|
|
541
|
+
removeTestTempDir(self.root)
|
|
542
|
+
|
|
543
|
+
def test_no_confirm(self):
|
|
544
|
+
"""Test that prune-datasets can execute with --no-confirm."""
|
|
545
|
+
result = self.runner.invoke(
|
|
546
|
+
butlerCli,
|
|
547
|
+
[
|
|
548
|
+
"prune-datasets",
|
|
549
|
+
"--no-confirm",
|
|
550
|
+
self.root,
|
|
551
|
+
"--purge",
|
|
552
|
+
"ingest/run",
|
|
553
|
+
"--where",
|
|
554
|
+
"instrument='DummyCamComp' and visit=423",
|
|
555
|
+
],
|
|
556
|
+
)
|
|
557
|
+
self.assertEqual(result.exit_code, 0, clickResultMsg(result))
|
|
558
|
+
with Butler(self.root) as butler:
|
|
559
|
+
self.assertIsNone(butler.get_dataset(self.testRepo.ref1.id))
|
|
560
|
+
self.assertIsNotNone(butler.get_dataset(self.testRepo.ref2.id))
|
|
561
|
+
|
|
562
|
+
def test_confirm(self):
|
|
563
|
+
"""Test that prune-datasets can execute with the default --confirm."""
|
|
564
|
+
result = self.runner.invoke(
|
|
565
|
+
butlerCli,
|
|
566
|
+
[
|
|
567
|
+
"prune-datasets",
|
|
568
|
+
self.root,
|
|
569
|
+
"--purge",
|
|
570
|
+
"ingest/run",
|
|
571
|
+
"--where",
|
|
572
|
+
"instrument='DummyCamComp' and visit=423",
|
|
573
|
+
],
|
|
574
|
+
input="y\n",
|
|
575
|
+
)
|
|
576
|
+
self.assertEqual(result.exit_code, 0, clickResultMsg(result))
|
|
577
|
+
with Butler(self.root) as butler:
|
|
578
|
+
self.assertIsNone(butler.get_dataset(self.testRepo.ref1.id))
|
|
579
|
+
self.assertIsNotNone(butler.get_dataset(self.testRepo.ref2.id))
|
|
580
|
+
|
|
581
|
+
|
|
523
582
|
if __name__ == "__main__":
|
|
524
583
|
unittest.main()
|
|
@@ -176,10 +176,12 @@ class SplitKvCmdTestCase(unittest.TestCase):
|
|
|
176
176
|
# double separator "==" should fail:
|
|
177
177
|
result = self.runner.invoke(cli, ["--value", "first==1"])
|
|
178
178
|
self.assertEqual(result.exit_code, 1)
|
|
179
|
+
# Check first 137 characters because python 3.14 adds more information
|
|
180
|
+
# to the error message.
|
|
179
181
|
self.assertEqual(
|
|
180
|
-
result.output,
|
|
182
|
+
result.output[:137],
|
|
181
183
|
"Error: Could not parse key-value pair 'first==1' using separator '=', with "
|
|
182
|
-
"multiple values allowed: too many values to unpack (expected 2
|
|
184
|
+
"multiple values allowed: too many values to unpack (expected 2",
|
|
183
185
|
)
|
|
184
186
|
|
|
185
187
|
def test_choice(self):
|
|
@@ -106,6 +106,24 @@ class ButlerLogRecordsFormatterTestCase(unittest.TestCase):
|
|
|
106
106
|
self.assertEqual(records, handler.records)
|
|
107
107
|
self.assertEqual(len(records), 2)
|
|
108
108
|
|
|
109
|
+
def testButlerLogRecordsFormatterEmptyExtra(self):
|
|
110
|
+
"""Test that we can store extra information even with no log
|
|
111
|
+
records written.
|
|
112
|
+
"""
|
|
113
|
+
handler = ButlerLogRecordHandler()
|
|
114
|
+
|
|
115
|
+
log = logging.getLogger(self.id())
|
|
116
|
+
log.setLevel(logging.INFO)
|
|
117
|
+
log.addHandler(handler)
|
|
118
|
+
|
|
119
|
+
extra_data = {"extra1": 1, "extra2": 2}
|
|
120
|
+
handler.records.extra = extra_data
|
|
121
|
+
ref = self.butler.put(handler.records, self.datasetType)
|
|
122
|
+
records = self.butler.get(ref)
|
|
123
|
+
|
|
124
|
+
self.assertEqual(records, handler.records)
|
|
125
|
+
self.assertEqual(len(records), 0)
|
|
126
|
+
|
|
109
127
|
@unittest.skipIf(
|
|
110
128
|
sys.version_info < (3, 12, 0),
|
|
111
129
|
"This test requires NamedTemporaryFile behavior not available in older Python versions.",
|
|
@@ -205,6 +223,36 @@ class ButlerLogRecordsFormatterTestCase(unittest.TestCase):
|
|
|
205
223
|
self.assertEqual(len(records), 2)
|
|
206
224
|
self.assertEqual(records.extra, extra_data)
|
|
207
225
|
|
|
226
|
+
@unittest.skipIf(
|
|
227
|
+
sys.version_info < (3, 12, 0),
|
|
228
|
+
"This test requires NamedTemporaryFile behavior not available in older Python versions.",
|
|
229
|
+
)
|
|
230
|
+
def testJsonLogRecordsFormatterExtraEmpty(self):
|
|
231
|
+
"""Test that externally created JSON format stream files work with
|
|
232
|
+
extra JSON data appended even if no log messages written.
|
|
233
|
+
"""
|
|
234
|
+
log = logging.getLogger(self.id())
|
|
235
|
+
log.setLevel(logging.INFO)
|
|
236
|
+
|
|
237
|
+
with tempfile.NamedTemporaryFile(mode="w", suffix=".json", prefix="butler-log-") as tmp:
|
|
238
|
+
handler = FileHandler(tmp.name)
|
|
239
|
+
handler.setFormatter(JsonLogFormatter())
|
|
240
|
+
log.addHandler(handler)
|
|
241
|
+
|
|
242
|
+
handler.close()
|
|
243
|
+
extra_data = {"extra1": 1, "extra2": 2}
|
|
244
|
+
with open(tmp.name, "a") as stream:
|
|
245
|
+
ButlerLogRecords.write_streaming_extra(stream, json.dumps(extra_data))
|
|
246
|
+
|
|
247
|
+
# Now ingest the file.
|
|
248
|
+
ref = DatasetRef(self.datasetType, dataId={}, run=self.run)
|
|
249
|
+
dataset = FileDataset(path=tmp.name, refs=ref)
|
|
250
|
+
self.butler.ingest(dataset, transfer="move")
|
|
251
|
+
|
|
252
|
+
records: ButlerLogRecords = self.butler.get(ref)
|
|
253
|
+
self.assertEqual(len(records), 0)
|
|
254
|
+
self.assertEqual(records.extra, extra_data)
|
|
255
|
+
|
|
208
256
|
|
|
209
257
|
if __name__ == "__main__":
|
|
210
258
|
unittest.main()
|
|
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.4800 → lsst_daf_butler-30.0.0rc1}/doc/lsst.daf.butler/configuring.rst
RENAMED
|
File without changes
|
{lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/doc/lsst.daf.butler/datastores.rst
RENAMED
|
File without changes
|
{lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/doc/lsst.daf.butler/dimensions.rst
RENAMED
|
File without changes
|
{lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/doc/lsst.daf.butler/formatters.rst
RENAMED
|
File without changes
|
|
File without changes
|
{lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/doc/lsst.daf.butler/organizing.rst
RENAMED
|
File without changes
|
|
File without changes
|
{lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/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.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_butler_config.py
RENAMED
|
File without changes
|
|
File without changes
|
{lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_butler_metrics.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_config.py
RENAMED
|
File without changes
|
{lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_config_support.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_dataset_ref.py
RENAMED
|
File without changes
|
{lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_dataset_type.py
RENAMED
|
File without changes
|
|
File without changes
|
{lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_exceptions.py
RENAMED
|
File without changes
|
|
File without changes
|
{lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_file_dataset.py
RENAMED
|
File without changes
|
|
File without changes
|
{lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_formatter.py
RENAMED
|
File without changes
|
|
File without changes
|
{lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_location.py
RENAMED
|
File without changes
|
|
File without changes
|
{lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_quantum.py
RENAMED
|
File without changes
|
{lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_quantum_backed.py
RENAMED
|
File without changes
|
|
File without changes
|
{lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_registry_shim.py
RENAMED
|
File without changes
|
{lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_rubin/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_storage_class.py
RENAMED
|
File without changes
|
|
File without changes
|
{lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_timespan.py
RENAMED
|
File without changes
|
{lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/_topology.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.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/arrow_utils.py
RENAMED
|
File without changes
|
{lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/cli/__init__.py
RENAMED
|
File without changes
|
{lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/cli/butler.py
RENAMED
|
File without changes
|
{lsst_daf_butler-29.2025.4800 → lsst_daf_butler-30.0.0rc1}/python/lsst/daf/butler/cli/cliLog.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|