lsst-daf-butler 29.2025.3300__tar.gz → 29.2025.3500__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.
Files changed (449) hide show
  1. {lsst_daf_butler-29.2025.3300/python/lsst_daf_butler.egg-info → lsst_daf_butler-29.2025.3500}/PKG-INFO +1 -1
  2. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/_butler.py +1 -1
  3. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/_dataset_type.py +4 -1
  4. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/_exceptions.py +10 -0
  5. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/dimensions/_coordinate.py +6 -4
  6. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/direct_butler/_direct_butler.py +1 -1
  7. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/dimensions/static.py +3 -3
  8. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/script/queryDatasets.py +20 -30
  9. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/tests/butler_queries.py +17 -17
  10. lsst_daf_butler-29.2025.3500/python/lsst/daf/butler/version.py +2 -0
  11. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500/python/lsst_daf_butler.egg-info}/PKG-INFO +1 -1
  12. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_datasets.py +5 -1
  13. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_dimensions.py +5 -0
  14. lsst_daf_butler-29.2025.3300/python/lsst/daf/butler/version.py +0 -2
  15. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/COPYRIGHT +0 -0
  16. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/LICENSE +0 -0
  17. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/MANIFEST.in +0 -0
  18. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/README.md +0 -0
  19. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/bsd_license.txt +0 -0
  20. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/doc/lsst.daf.butler/CHANGES.rst +0 -0
  21. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/doc/lsst.daf.butler/concreteStorageClasses.rst +0 -0
  22. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/doc/lsst.daf.butler/configuring.rst +0 -0
  23. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/doc/lsst.daf.butler/datastores.rst +0 -0
  24. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/doc/lsst.daf.butler/dimensions.rst +0 -0
  25. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/doc/lsst.daf.butler/formatters.rst +0 -0
  26. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/doc/lsst.daf.butler/index.rst +0 -0
  27. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/doc/lsst.daf.butler/organizing.rst +0 -0
  28. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/doc/lsst.daf.butler/queries.rst +0 -0
  29. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/doc/lsst.daf.butler/use-in-tests.rst +0 -0
  30. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/doc/lsst.daf.butler/writing-subcommands.rst +0 -0
  31. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/gpl-v3.0.txt +0 -0
  32. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/pyproject.toml +0 -0
  33. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/__init__.py +0 -0
  34. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/__init__.py +0 -0
  35. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/__init__.py +0 -0
  36. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/_butler_collections.py +0 -0
  37. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/_butler_config.py +0 -0
  38. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/_butler_instance_options.py +0 -0
  39. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/_butler_metrics.py +0 -0
  40. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/_butler_repo_index.py +0 -0
  41. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/_collection_type.py +0 -0
  42. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/_column_categorization.py +0 -0
  43. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/_column_tags.py +0 -0
  44. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/_column_type_info.py +0 -0
  45. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/_config.py +0 -0
  46. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/_config_support.py +0 -0
  47. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/_dataset_association.py +0 -0
  48. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/_dataset_existence.py +0 -0
  49. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/_dataset_provenance.py +0 -0
  50. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/_dataset_ref.py +0 -0
  51. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/_deferredDatasetHandle.py +0 -0
  52. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/_exceptions_legacy.py +0 -0
  53. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/_file_dataset.py +0 -0
  54. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/_file_descriptor.py +0 -0
  55. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/_formatter.py +0 -0
  56. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/_labeled_butler_factory.py +0 -0
  57. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/_limited_butler.py +0 -0
  58. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/_location.py +0 -0
  59. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/_named.py +0 -0
  60. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/_quantum.py +0 -0
  61. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/_quantum_backed.py +0 -0
  62. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/_query_all_datasets.py +0 -0
  63. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/_registry_shim.py +0 -0
  64. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/_storage_class.py +0 -0
  65. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/_storage_class_delegate.py +0 -0
  66. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/_timespan.py +0 -0
  67. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/_topology.py +0 -0
  68. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/_utilities/__init__.py +0 -0
  69. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/_utilities/locked_object.py +0 -0
  70. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/_utilities/named_locks.py +0 -0
  71. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/_utilities/thread_safe_cache.py +0 -0
  72. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/arrow_utils.py +0 -0
  73. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/cli/__init__.py +0 -0
  74. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/cli/butler.py +0 -0
  75. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/cli/cliLog.py +0 -0
  76. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/cli/cmd/__init__.py +0 -0
  77. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/cli/cmd/_remove_collections.py +0 -0
  78. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/cli/cmd/_remove_runs.py +0 -0
  79. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/cli/cmd/commands.py +0 -0
  80. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/cli/opt/__init__.py +0 -0
  81. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/cli/opt/arguments.py +0 -0
  82. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/cli/opt/optionGroups.py +0 -0
  83. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/cli/opt/options.py +0 -0
  84. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/cli/progress.py +0 -0
  85. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/cli/utils.py +0 -0
  86. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/column_spec.py +0 -0
  87. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/configs/datastore.yaml +0 -0
  88. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/configs/datastores/composites.yaml +0 -0
  89. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/configs/datastores/fileDatastore.yaml +0 -0
  90. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/configs/datastores/formatters.yaml +0 -0
  91. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/configs/datastores/writeRecipes.yaml +0 -0
  92. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/configs/dimensions.yaml +0 -0
  93. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/configs/old_dimensions/daf_butler_universe0.yaml +0 -0
  94. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/configs/old_dimensions/daf_butler_universe1.yaml +0 -0
  95. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/configs/old_dimensions/daf_butler_universe2.yaml +0 -0
  96. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/configs/old_dimensions/daf_butler_universe3.yaml +0 -0
  97. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/configs/old_dimensions/daf_butler_universe4.yaml +0 -0
  98. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/configs/old_dimensions/daf_butler_universe5.yaml +0 -0
  99. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/configs/old_dimensions/daf_butler_universe6.yaml +0 -0
  100. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/configs/old_dimensions/daf_butler_universe7.yaml +0 -0
  101. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/configs/registry.yaml +0 -0
  102. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/configs/repo_transfer_formats.yaml +0 -0
  103. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/configs/storageClasses.yaml +0 -0
  104. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/datastore/__init__.py +0 -0
  105. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/datastore/_datastore.py +0 -0
  106. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/datastore/_transfer.py +0 -0
  107. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/datastore/cache_manager.py +0 -0
  108. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/datastore/composites.py +0 -0
  109. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/datastore/constraints.py +0 -0
  110. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/datastore/file_templates.py +0 -0
  111. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/datastore/generic_base.py +0 -0
  112. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/datastore/record_data.py +0 -0
  113. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/datastore/stored_file_info.py +0 -0
  114. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/datastores/__init__.py +0 -0
  115. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/datastores/chainedDatastore.py +0 -0
  116. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/datastores/fileDatastore.py +0 -0
  117. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/datastores/file_datastore/__init__.py +0 -0
  118. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/datastores/file_datastore/get.py +0 -0
  119. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/datastores/file_datastore/retrieve_artifacts.py +0 -0
  120. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/datastores/file_datastore/transfer.py +0 -0
  121. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/datastores/inMemoryDatastore.py +0 -0
  122. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/ddl.py +0 -0
  123. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/delegates/__init__.py +0 -0
  124. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/delegates/arrowtable.py +0 -0
  125. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/dimensions/__init__.py +0 -0
  126. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/dimensions/_config.py +0 -0
  127. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/dimensions/_data_coordinate_iterable.py +0 -0
  128. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/dimensions/_database.py +0 -0
  129. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/dimensions/_elements.py +0 -0
  130. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/dimensions/_governor.py +0 -0
  131. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/dimensions/_group.py +0 -0
  132. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/dimensions/_packer.py +0 -0
  133. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/dimensions/_record_set.py +0 -0
  134. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/dimensions/_record_table.py +0 -0
  135. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/dimensions/_records.py +0 -0
  136. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/dimensions/_schema.py +0 -0
  137. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/dimensions/_skypix.py +0 -0
  138. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/dimensions/_universe.py +0 -0
  139. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/dimensions/construction.py +0 -0
  140. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/dimensions/record_cache.py +0 -0
  141. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/direct_butler/__init__.py +0 -0
  142. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/direct_butler/_direct_butler_collections.py +0 -0
  143. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/direct_query_driver/__init__.py +0 -0
  144. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/direct_query_driver/_driver.py +0 -0
  145. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/direct_query_driver/_postprocessing.py +0 -0
  146. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/direct_query_driver/_query_analysis.py +0 -0
  147. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/direct_query_driver/_query_builder.py +0 -0
  148. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/direct_query_driver/_result_page_converter.py +0 -0
  149. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/direct_query_driver/_sql_builders.py +0 -0
  150. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/direct_query_driver/_sql_column_visitor.py +0 -0
  151. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/formatters/__init__.py +0 -0
  152. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/formatters/astropyTable.py +0 -0
  153. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/formatters/file.py +0 -0
  154. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/formatters/json.py +0 -0
  155. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/formatters/logs.py +0 -0
  156. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/formatters/matplotlib.py +0 -0
  157. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/formatters/packages.py +0 -0
  158. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/formatters/parquet.py +0 -0
  159. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/formatters/pickle.py +0 -0
  160. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/formatters/typeless.py +0 -0
  161. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/formatters/yaml.py +0 -0
  162. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/json.py +0 -0
  163. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/logging.py +0 -0
  164. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/mapping_factory.py +0 -0
  165. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/name_shrinker.py +0 -0
  166. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/nonempty_mapping.py +0 -0
  167. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/persistence_context.py +0 -0
  168. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/progress.py +0 -0
  169. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/py.typed +0 -0
  170. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/pydantic_utils.py +0 -0
  171. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/queries/__init__.py +0 -0
  172. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/queries/_base.py +0 -0
  173. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/queries/_data_coordinate_query_results.py +0 -0
  174. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/queries/_dataset_query_results.py +0 -0
  175. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/queries/_dimension_record_query_results.py +0 -0
  176. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/queries/_expression_strings.py +0 -0
  177. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/queries/_general_query_results.py +0 -0
  178. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/queries/_identifiers.py +0 -0
  179. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/queries/_query.py +0 -0
  180. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/queries/convert_args.py +0 -0
  181. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/queries/driver.py +0 -0
  182. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/queries/expression_factory.py +0 -0
  183. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/queries/overlaps.py +0 -0
  184. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/queries/predicate_constraints_summary.py +0 -0
  185. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/queries/result_specs.py +0 -0
  186. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/queries/tree/__init__.py +0 -0
  187. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/queries/tree/_base.py +0 -0
  188. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/queries/tree/_column_expression.py +0 -0
  189. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/queries/tree/_column_literal.py +0 -0
  190. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/queries/tree/_column_reference.py +0 -0
  191. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/queries/tree/_column_set.py +0 -0
  192. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/queries/tree/_predicate.py +0 -0
  193. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/queries/tree/_query_tree.py +0 -0
  194. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/queries/visitors.py +0 -0
  195. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/__init__.py +0 -0
  196. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/_caching_context.py +0 -0
  197. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/_collection_record_cache.py +0 -0
  198. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/_collection_summary.py +0 -0
  199. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/_collection_summary_cache.py +0 -0
  200. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/_config.py +0 -0
  201. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/_defaults.py +0 -0
  202. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/_exceptions.py +0 -0
  203. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/_registry.py +0 -0
  204. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/_registry_factory.py +0 -0
  205. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/attributes.py +0 -0
  206. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/bridge/__init__.py +0 -0
  207. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/bridge/ephemeral.py +0 -0
  208. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/bridge/monolithic.py +0 -0
  209. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/collections/__init__.py +0 -0
  210. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/collections/_base.py +0 -0
  211. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/collections/nameKey.py +0 -0
  212. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/collections/synthIntKey.py +0 -0
  213. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/connectionString.py +0 -0
  214. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/databases/__init__.py +0 -0
  215. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/databases/postgresql.py +0 -0
  216. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/databases/sqlite.py +0 -0
  217. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/datasets/__init__.py +0 -0
  218. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/datasets/byDimensions/__init__.py +0 -0
  219. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/datasets/byDimensions/_dataset_type_cache.py +0 -0
  220. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/datasets/byDimensions/_manager.py +0 -0
  221. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/datasets/byDimensions/summaries.py +0 -0
  222. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/datasets/byDimensions/tables.py +0 -0
  223. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/dimensions/__init__.py +0 -0
  224. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/interfaces/__init__.py +0 -0
  225. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/interfaces/_attributes.py +0 -0
  226. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/interfaces/_bridge.py +0 -0
  227. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/interfaces/_collections.py +0 -0
  228. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/interfaces/_database.py +0 -0
  229. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/interfaces/_database_explain.py +0 -0
  230. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/interfaces/_datasets.py +0 -0
  231. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/interfaces/_dimensions.py +0 -0
  232. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/interfaces/_obscore.py +0 -0
  233. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/interfaces/_opaque.py +0 -0
  234. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/interfaces/_versioning.py +0 -0
  235. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/managers.py +0 -0
  236. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/nameShrinker.py +0 -0
  237. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/obscore/__init__.py +0 -0
  238. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/obscore/_config.py +0 -0
  239. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/obscore/_manager.py +0 -0
  240. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/obscore/_records.py +0 -0
  241. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/obscore/_schema.py +0 -0
  242. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/obscore/_spatial.py +0 -0
  243. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/obscore/default_spatial.py +0 -0
  244. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/obscore/pgsphere.py +0 -0
  245. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/opaque.py +0 -0
  246. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/queries/__init__.py +0 -0
  247. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/queries/_builder.py +0 -0
  248. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/queries/_query.py +0 -0
  249. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/queries/_query_backend.py +0 -0
  250. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/queries/_query_context.py +0 -0
  251. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/queries/_readers.py +0 -0
  252. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/queries/_results.py +0 -0
  253. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/queries/_sql_query_backend.py +0 -0
  254. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/queries/_sql_query_context.py +0 -0
  255. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/queries/_structs.py +0 -0
  256. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/queries/butler_sql_engine.py +0 -0
  257. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/queries/expressions/__init__.py +0 -0
  258. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/queries/expressions/_predicate.py +0 -0
  259. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/queries/expressions/categorize.py +0 -0
  260. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/queries/expressions/check.py +0 -0
  261. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/queries/expressions/normalForm.py +0 -0
  262. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/queries/expressions/parser/__init__.py +0 -0
  263. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/queries/expressions/parser/exprTree.py +0 -0
  264. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/queries/expressions/parser/parser.py +0 -0
  265. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/queries/expressions/parser/parserLex.py +0 -0
  266. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/queries/expressions/parser/parserYacc.py +0 -0
  267. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/queries/expressions/parser/ply/__init__.py +0 -0
  268. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/queries/expressions/parser/ply/lex.py +0 -0
  269. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/queries/expressions/parser/ply/yacc.py +0 -0
  270. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/queries/expressions/parser/treeVisitor.py +0 -0
  271. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/queries/find_first_dataset.py +0 -0
  272. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/sql_registry.py +0 -0
  273. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/tests/__init__.py +0 -0
  274. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/tests/_database.py +0 -0
  275. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/tests/_registry.py +0 -0
  276. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/versions.py +0 -0
  277. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/registry/wildcards.py +0 -0
  278. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/remote_butler/__init__.py +0 -0
  279. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/remote_butler/_collection_args.py +0 -0
  280. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/remote_butler/_config.py +0 -0
  281. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/remote_butler/_defaults.py +0 -0
  282. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/remote_butler/_errors.py +0 -0
  283. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/remote_butler/_factory.py +0 -0
  284. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/remote_butler/_get.py +0 -0
  285. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/remote_butler/_http_connection.py +0 -0
  286. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/remote_butler/_query_driver.py +0 -0
  287. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/remote_butler/_query_results.py +0 -0
  288. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/remote_butler/_ref_utils.py +0 -0
  289. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/remote_butler/_registry.py +0 -0
  290. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/remote_butler/_remote_butler.py +0 -0
  291. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/remote_butler/_remote_butler_collections.py +0 -0
  292. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/remote_butler/_remote_file_transfer_source.py +0 -0
  293. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/remote_butler/authentication/__init__.py +0 -0
  294. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/remote_butler/authentication/cadc.py +0 -0
  295. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/remote_butler/authentication/interface.py +0 -0
  296. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/remote_butler/authentication/rubin.py +0 -0
  297. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/remote_butler/registry/__init__.py +0 -0
  298. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/remote_butler/registry/_query_common.py +0 -0
  299. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/remote_butler/registry/_query_data_coordinates.py +0 -0
  300. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/remote_butler/registry/_query_datasets.py +0 -0
  301. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/remote_butler/registry/_query_dimension_records.py +0 -0
  302. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/remote_butler/server/__init__.py +0 -0
  303. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/remote_butler/server/_config.py +0 -0
  304. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/remote_butler/server/_dependencies.py +0 -0
  305. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/remote_butler/server/_factory.py +0 -0
  306. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/remote_butler/server/_gafaelfawr.py +0 -0
  307. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/remote_butler/server/_server.py +0 -0
  308. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/remote_butler/server/_telemetry.py +0 -0
  309. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/remote_butler/server/handlers/_external.py +0 -0
  310. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/remote_butler/server/handlers/_external_query.py +0 -0
  311. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/remote_butler/server/handlers/_file_info.py +0 -0
  312. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/remote_butler/server/handlers/_internal.py +0 -0
  313. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/remote_butler/server/handlers/_query_limits.py +0 -0
  314. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/remote_butler/server/handlers/_query_serialization.py +0 -0
  315. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/remote_butler/server/handlers/_query_streaming.py +0 -0
  316. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/remote_butler/server/handlers/_utils.py +0 -0
  317. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/remote_butler/server_models.py +0 -0
  318. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/repo_relocation.py +0 -0
  319. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/script/__init__.py +0 -0
  320. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/script/_associate.py +0 -0
  321. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/script/_pruneDatasets.py +0 -0
  322. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/script/butlerImport.py +0 -0
  323. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/script/certifyCalibrations.py +0 -0
  324. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/script/collectionChain.py +0 -0
  325. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/script/configDump.py +0 -0
  326. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/script/configValidate.py +0 -0
  327. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/script/createRepo.py +0 -0
  328. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/script/exportCalibs.py +0 -0
  329. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/script/ingest_files.py +0 -0
  330. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/script/ingest_zip.py +0 -0
  331. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/script/queryCollections.py +0 -0
  332. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/script/queryDataIds.py +0 -0
  333. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/script/queryDatasetTypes.py +0 -0
  334. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/script/queryDimensionRecords.py +0 -0
  335. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/script/register_dataset_type.py +0 -0
  336. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/script/removeCollections.py +0 -0
  337. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/script/removeDatasetType.py +0 -0
  338. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/script/removeRuns.py +0 -0
  339. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/script/retrieveArtifacts.py +0 -0
  340. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/script/transferDatasets.py +0 -0
  341. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/tests/__init__.py +0 -0
  342. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/tests/_datasetsHelper.py +0 -0
  343. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/tests/_dummyRegistry.py +0 -0
  344. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/tests/_examplePythonTypes.py +0 -0
  345. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/tests/_testRepo.py +0 -0
  346. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/tests/cliCmdTestBase.py +0 -0
  347. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/tests/cliLogTestBase.py +0 -0
  348. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/tests/deferredFormatter.py +0 -0
  349. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/tests/dict_convertible_model.py +0 -0
  350. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/tests/hybrid_butler.py +0 -0
  351. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/tests/hybrid_butler_collections.py +0 -0
  352. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/tests/hybrid_butler_registry.py +0 -0
  353. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/tests/postgresql.py +0 -0
  354. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/tests/registry_data/__init__.py +0 -0
  355. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/tests/registry_data/base.yaml +0 -0
  356. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/tests/registry_data/ci_hsc-subset-skymap.yaml +0 -0
  357. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/tests/registry_data/ci_hsc-subset.yaml +0 -0
  358. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/tests/registry_data/datasets.yaml +0 -0
  359. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/tests/registry_data/hsc-rc2-subset-v0.yaml +0 -0
  360. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/tests/registry_data/spatial.py +0 -0
  361. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/tests/registry_data/spatial.yaml +0 -0
  362. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/tests/server.py +0 -0
  363. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/tests/server_utils.py +0 -0
  364. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/tests/testFormatters.py +0 -0
  365. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/tests/utils.py +0 -0
  366. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/time_utils.py +0 -0
  367. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/timespan_database_representation.py +0 -0
  368. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/transfers/__init__.py +0 -0
  369. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/transfers/_context.py +0 -0
  370. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/transfers/_interfaces.py +0 -0
  371. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/transfers/_yaml.py +0 -0
  372. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst/daf/butler/utils.py +0 -0
  373. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst_daf_butler.egg-info/SOURCES.txt +0 -0
  374. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst_daf_butler.egg-info/dependency_links.txt +0 -0
  375. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst_daf_butler.egg-info/entry_points.txt +0 -0
  376. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst_daf_butler.egg-info/requires.txt +0 -0
  377. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst_daf_butler.egg-info/top_level.txt +0 -0
  378. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/python/lsst_daf_butler.egg-info/zip-safe +0 -0
  379. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/setup.cfg +0 -0
  380. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_astropyTableFormatter.py +0 -0
  381. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_authentication.py +0 -0
  382. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_butler.py +0 -0
  383. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_butler_factory.py +0 -0
  384. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_cliCmdAssociate.py +0 -0
  385. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_cliCmdConfigDump.py +0 -0
  386. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_cliCmdConfigValidate.py +0 -0
  387. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_cliCmdCreate.py +0 -0
  388. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_cliCmdImport.py +0 -0
  389. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_cliCmdIngestFiles.py +0 -0
  390. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_cliCmdPruneDatasets.py +0 -0
  391. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_cliCmdQueryCollections.py +0 -0
  392. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_cliCmdQueryDataIds.py +0 -0
  393. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_cliCmdQueryDatasetTypes.py +0 -0
  394. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_cliCmdQueryDatasets.py +0 -0
  395. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_cliCmdQueryDimensionRecords.py +0 -0
  396. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_cliCmdRemoveCollections.py +0 -0
  397. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_cliCmdRemoveRuns.py +0 -0
  398. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_cliCmdRetrieveArtifacts.py +0 -0
  399. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_cliLog.py +0 -0
  400. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_cliPluginLoader.py +0 -0
  401. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_cliUtilSplitCommas.py +0 -0
  402. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_cliUtilSplitKv.py +0 -0
  403. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_cliUtilToUpper.py +0 -0
  404. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_cliUtils.py +0 -0
  405. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_column_spec.py +0 -0
  406. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_composites.py +0 -0
  407. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_config.py +0 -0
  408. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_connectionString.py +0 -0
  409. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_constraints.py +0 -0
  410. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_datastore.py +0 -0
  411. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_ddl.py +0 -0
  412. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_dimension_record_containers.py +0 -0
  413. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_exprParserLex.py +0 -0
  414. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_exprParserYacc.py +0 -0
  415. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_expressions.py +0 -0
  416. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_formatter.py +0 -0
  417. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_gafaelfawr.py +0 -0
  418. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_location.py +0 -0
  419. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_logFormatter.py +0 -0
  420. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_logging.py +0 -0
  421. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_matplotlibFormatter.py +0 -0
  422. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_nonempty_mapping.py +0 -0
  423. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_normalFormExpression.py +0 -0
  424. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_obscore.py +0 -0
  425. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_packages.py +0 -0
  426. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_parquet.py +0 -0
  427. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_postgresql.py +0 -0
  428. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_progress.py +0 -0
  429. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_pydantic_utils.py +0 -0
  430. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_quantum.py +0 -0
  431. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_quantumBackedButler.py +0 -0
  432. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_query_direct_postgresql.py +0 -0
  433. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_query_direct_sqlite.py +0 -0
  434. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_query_interface.py +0 -0
  435. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_query_relations.py +0 -0
  436. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_query_remote.py +0 -0
  437. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_query_utilities.py +0 -0
  438. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_remote_butler.py +0 -0
  439. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_server.py +0 -0
  440. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_simpleButler.py +0 -0
  441. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_sqlite.py +0 -0
  442. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_storageClass.py +0 -0
  443. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_templates.py +0 -0
  444. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_testRepo.py +0 -0
  445. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_thread_utils.py +0 -0
  446. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_time_utils.py +0 -0
  447. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_timespan.py +0 -0
  448. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/tests/test_utils.py +0 -0
  449. {lsst_daf_butler-29.2025.3300 → lsst_daf_butler-29.2025.3500}/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.3300
3
+ Version: 29.2025.3500
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
@@ -2040,7 +2040,7 @@ class Butler(LimitedButler): # numpydoc ignore=PR02
2040
2040
  raise EmptyQueryResultError(list(result.explain_no_results()))
2041
2041
  return dimension_records
2042
2042
 
2043
- def _query_all_datasets(
2043
+ def query_all_datasets(
2044
2044
  self,
2045
2045
  collections: str | Iterable[str] | None = None,
2046
2046
  *,
@@ -38,6 +38,7 @@ from typing import TYPE_CHECKING, Any, ClassVar
38
38
  from pydantic import BaseModel, StrictBool, StrictStr
39
39
 
40
40
  from ._config_support import LookupKey
41
+ from ._exceptions import UnknownComponentError
41
42
  from ._storage_class import StorageClass, StorageClassFactory
42
43
  from .dimensions import DimensionGroup
43
44
  from .json import from_json_pydantic, to_json_pydantic
@@ -492,7 +493,9 @@ class DatasetType:
492
493
  """
493
494
  if component in self.storageClass.allComponents():
494
495
  return self.nameWithComponent(self.name, component)
495
- raise KeyError(f"Requested component ({component}) not understood by this DatasetType ({self})")
496
+ raise UnknownComponentError(
497
+ f"Requested component ({component}) not understood by this DatasetType ({self})"
498
+ )
496
499
 
497
500
  def makeCompositeDatasetType(self) -> DatasetType:
498
501
  """Return a composite dataset type from the component.
@@ -41,6 +41,7 @@ __all__ = (
41
41
  "InvalidQueryError",
42
42
  "MissingCollectionError",
43
43
  "MissingDatasetTypeError",
44
+ "UnknownComponentError",
44
45
  "ValidationError",
45
46
  )
46
47
 
@@ -170,6 +171,14 @@ class MissingDatasetTypeError(DatasetTypeError, KeyError, ButlerUserError):
170
171
  error_type = "missing_dataset_type"
171
172
 
172
173
 
174
+ class UnknownComponentError(KeyError, ButlerUserError):
175
+ """Exception raised when the requested component of a DatasetType is not
176
+ known.
177
+ """
178
+
179
+ error_type = "unknown_component"
180
+
181
+
173
182
  class DatasetTypeNotSupportedError(RuntimeError):
174
183
  """A `DatasetType` is not handled by this routine.
175
184
 
@@ -227,6 +236,7 @@ _USER_ERROR_TYPES: tuple[type[ButlerUserError], ...] = (
227
236
  MissingDatasetTypeError,
228
237
  UnimplementedQueryError,
229
238
  UnknownButlerUserError,
239
+ UnknownComponentError,
230
240
  )
231
241
  _USER_ERROR_MAPPING = {e.error_type: e for e in _USER_ERROR_TYPES}
232
242
  assert len(_USER_ERROR_MAPPING) == len(_USER_ERROR_TYPES), (
@@ -1005,10 +1005,12 @@ class _FullTupleDataCoordinate(_BasicTupleDataCoordinate):
1005
1005
  dimensions = self.universe.conform(dimensions)
1006
1006
  if self._dimensions == dimensions:
1007
1007
  return self
1008
- return DataCoordinate.from_full_values(
1009
- dimensions,
1010
- tuple(self[k] for k in dimensions.data_coordinate_keys),
1011
- )
1008
+
1009
+ try:
1010
+ values = tuple(self[k] for k in dimensions.data_coordinate_keys)
1011
+ except KeyError as e:
1012
+ raise DimensionNameError(f"Data ID is missing value for dimension {str(e)}.")
1013
+ return DataCoordinate.from_full_values(dimensions, values)
1012
1014
 
1013
1015
  def union(self, other: DataCoordinate) -> DataCoordinate:
1014
1016
  # Docstring inherited from DataCoordinate.
@@ -1490,7 +1490,7 @@ class DirectButler(Butler): # numpydoc ignore=PR02
1490
1490
  names = [info.name for info in collections_info]
1491
1491
 
1492
1492
  # Get all the datasets from these runs.
1493
- refs = self._query_all_datasets(names, find_first=False, limit=None)
1493
+ refs = self.query_all_datasets(names, find_first=False, limit=None)
1494
1494
 
1495
1495
  # Call pruneDatasets since we are deliberately removing
1496
1496
  # datasets in chunks from the RUN collections rather than
@@ -468,7 +468,7 @@ class StaticDimensionRecordStorageManager(DimensionRecordStorageManager):
468
468
  distinct=True,
469
469
  ).into_joins_builder(postprocessing=None)
470
470
  if not element.has_own_table:
471
- raise NotImplementedError(f"Cannot join dimension element {element} with no table.")
471
+ raise UnimplementedQueryError(f"Cannot join dimension element {element} with no table.")
472
472
  table = self._tables[element.name]
473
473
  result = SqlJoinsBuilder(db=self._db, from_clause=table)
474
474
  for dimension_name, column_name in zip(element.required.names, element.schema.required.names):
@@ -1055,7 +1055,7 @@ class _CommonSkyPixMediatedOverlapsVisitor(OverlapsVisitor):
1055
1055
  # Reject spatial constraints that are nested inside OR or NOT, because
1056
1056
  # the postprocessing needed for those would be a lot harder.
1057
1057
  if flags & PredicateVisitFlags.INVERTED or flags & PredicateVisitFlags.HAS_OR_SIBLINGS:
1058
- raise NotImplementedError(
1058
+ raise UnimplementedQueryError(
1059
1059
  "Spatial overlap constraints nested inside OR or NOT are not supported."
1060
1060
  )
1061
1061
  # Delegate to super just because that's good practice with
@@ -1114,7 +1114,7 @@ class _CommonSkyPixMediatedOverlapsVisitor(OverlapsVisitor):
1114
1114
  )
1115
1115
  skypix = element
1116
1116
  case _:
1117
- raise NotImplementedError(
1117
+ raise UnimplementedQueryError(
1118
1118
  f"Spatial overlap constraint for dimension {element} not supported."
1119
1119
  )
1120
1120
  # Convert the region-overlap constraint into a skypix
@@ -31,7 +31,7 @@ import warnings
31
31
  from collections import defaultdict
32
32
  from collections.abc import Iterable, Iterator
33
33
  from contextlib import contextmanager
34
- from itertools import groupby
34
+ from itertools import chain, groupby
35
35
  from typing import TYPE_CHECKING
36
36
 
37
37
  import numpy as np
@@ -39,7 +39,7 @@ from astropy.table import Table as AstropyTable
39
39
 
40
40
  from .._butler import Butler
41
41
  from .._exceptions import MissingDatasetTypeError
42
- from .._query_all_datasets import DatasetsPage, QueryAllDatasetsParameters, query_all_datasets
42
+ from .._query_all_datasets import QueryAllDatasetsParameters
43
43
  from ..cli.utils import sortAstropyTable
44
44
  from ..utils import has_globs
45
45
 
@@ -297,9 +297,10 @@ class QueryDatasets:
297
297
  query_func = self._query_single_dataset_type
298
298
 
299
299
  try:
300
- with query_func(query_collections, limit) as pages:
300
+ with query_func(query_collections, limit) as ref_iter:
301
301
  datasets_found = 0
302
- for dataset_type, refs in _chunk_by_dataset_type(pages):
302
+ for dataset_type, chunk in groupby(ref_iter, lambda ref: ref.datasetType.name):
303
+ refs = list(chunk)
303
304
  datasets_found += len(refs)
304
305
  if warn_limit and limit is not None and datasets_found >= limit:
305
306
  # We asked for one too many so must remove that from
@@ -324,24 +325,24 @@ class QueryDatasets:
324
325
  @contextmanager
325
326
  def _query_multiple_dataset_types(
326
327
  self, collections: list[str], limit: int | None
327
- ) -> Iterator[Iterator[DatasetsPage]]:
328
- with self.butler.query() as query:
329
- args = QueryAllDatasetsParameters(
330
- collections=collections,
331
- find_first=self._find_first,
332
- name=self._dataset_type_glob,
333
- where=self._where,
334
- limit=limit,
335
- data_id={},
336
- bind={},
337
- with_dimension_records=self._with_dimension_records,
338
- )
339
- yield query_all_datasets(self.butler, query, args)
328
+ ) -> Iterator[Iterator[DatasetRef]]:
329
+ args = QueryAllDatasetsParameters(
330
+ collections=collections,
331
+ find_first=self._find_first,
332
+ name=self._dataset_type_glob,
333
+ where=self._where,
334
+ limit=limit,
335
+ data_id={},
336
+ bind={},
337
+ with_dimension_records=self._with_dimension_records,
338
+ )
339
+ with self.butler._query_all_datasets_by_page(args) as iterator:
340
+ yield chain.from_iterable(iterator)
340
341
 
341
342
  @contextmanager
342
343
  def _query_single_dataset_type(
343
344
  self, collections: list[str], limit: int | None
344
- ) -> Iterator[Iterator[DatasetsPage]]:
345
+ ) -> Iterator[Iterator[DatasetRef]]:
345
346
  assert len(self._dataset_type_glob) == 1
346
347
  dataset_type = self._dataset_type_glob[0]
347
348
 
@@ -355,15 +356,4 @@ class QueryDatasets:
355
356
  with_dimension_records=self._with_dimension_records,
356
357
  )
357
358
 
358
- yield iter([DatasetsPage(dataset_type=dataset_type, data=refs)])
359
-
360
-
361
- def _chunk_by_dataset_type(pages: Iterator[DatasetsPage]) -> Iterator[DatasetsPage]:
362
- # For each dataset type in the results, collect all the refs into a
363
- # single page. This assumes that in the original iterator, the pages
364
- # for each dataset type are contiguous.
365
- for dataset_type, chunk in groupby(pages, lambda page: page.dataset_type):
366
- refs = []
367
- for page in chunk:
368
- refs.extend(page.data)
369
- yield DatasetsPage(dataset_type, refs)
359
+ yield iter(refs)
@@ -2377,7 +2377,7 @@ class ButlerQueryTests(ABC, TestCaseMixin):
2377
2377
  butler = self.make_butler("base.yaml", "datasets.yaml")
2378
2378
 
2379
2379
  # Make sure that refs are coming out well-formed.
2380
- datasets = butler._query_all_datasets("imported_r", where="detector = 2", instrument="Cam1")
2380
+ datasets = butler.query_all_datasets("imported_r", where="detector = 2", instrument="Cam1")
2381
2381
  datasets.sort(key=lambda ref: ref.datasetType.name)
2382
2382
  self.assertEqual(len(datasets), 2)
2383
2383
  bias = datasets[0]
@@ -2396,29 +2396,29 @@ class ButlerQueryTests(ABC, TestCaseMixin):
2396
2396
  self.assertEqual(flat.id, UUID("c1296796-56c5-4acf-9b49-40d920c6f840"))
2397
2397
 
2398
2398
  # Querying for everything finds everything.
2399
- results = butler._query_all_datasets("*", find_first=False)
2399
+ results = butler.query_all_datasets("*", find_first=False)
2400
2400
  self.assertEqual(len(results), 13)
2401
2401
 
2402
2402
  # constraining by data ID works
2403
2403
  detector_1_ids = ("d0bb04cd-d697-4a83-ba53-cdfcd58e3a0c", "e15ab039-bc8b-4135-87c5-90902a7c0b22")
2404
- results = butler._query_all_datasets(
2404
+ results = butler.query_all_datasets(
2405
2405
  "*", data_id={"detector": 1, "instrument": "Cam1"}, find_first=False
2406
2406
  )
2407
2407
  self.assertCountEqual(detector_1_ids, _ref_uuids(results))
2408
2408
 
2409
2409
  # bind values work.
2410
- results = butler._query_all_datasets(
2410
+ results = butler.query_all_datasets(
2411
2411
  "*", where="detector=:my_bind and instrument='Cam1'", bind={"my_bind": 1}, find_first=False
2412
2412
  )
2413
2413
  self.assertCountEqual(detector_1_ids, _ref_uuids(results))
2414
2414
 
2415
2415
  # find_first requires ordered collections.
2416
2416
  with self.assertRaisesRegex(InvalidQueryError, "Can not use wildcards"):
2417
- results = butler._query_all_datasets("*")
2417
+ results = butler.query_all_datasets("*")
2418
2418
 
2419
2419
  butler.collections.register("chain", CollectionType.CHAINED)
2420
2420
  butler.collections.redefine_chain("chain", ["imported_g", "imported_r"])
2421
- results = butler._query_all_datasets(
2421
+ results = butler.query_all_datasets(
2422
2422
  "chain", where="detector=2 and instrument = 'Cam1'", find_first=True
2423
2423
  )
2424
2424
  # find_first searches the collection chain in order.
@@ -2435,47 +2435,47 @@ class ButlerQueryTests(ABC, TestCaseMixin):
2435
2435
  )
2436
2436
 
2437
2437
  # collection searches work.
2438
- results = butler._query_all_datasets(
2438
+ results = butler.query_all_datasets(
2439
2439
  "*g", where="detector=1 and instrument = 'Cam1'", find_first=False
2440
2440
  )
2441
2441
  self.assertEqual(_ref_uuids(results), ["e15ab039-bc8b-4135-87c5-90902a7c0b22"])
2442
2442
 
2443
2443
  # we raise for missing collections with explicit names.
2444
2444
  with self.assertRaises(MissingCollectionError):
2445
- results = butler._query_all_datasets("nonexistent")
2445
+ results = butler.query_all_datasets("nonexistent")
2446
2446
  # we don't raise for collection wildcard searches that find nothing.
2447
- results = butler._query_all_datasets("nonexistent*", find_first=False)
2447
+ results = butler.query_all_datasets("nonexistent*", find_first=False)
2448
2448
  self.assertEqual(results, [])
2449
2449
 
2450
2450
  # dataset type searches work.
2451
- results = butler._query_all_datasets(
2451
+ results = butler.query_all_datasets(
2452
2452
  "*", name="b*", where="detector=1 and instrument = 'Cam1'", find_first=False
2453
2453
  )
2454
2454
  self.assertEqual(_ref_uuids(results), ["e15ab039-bc8b-4135-87c5-90902a7c0b22"])
2455
2455
 
2456
2456
  # Missing dataset types raise.
2457
2457
  with self.assertRaises(MissingDatasetTypeError):
2458
- results = butler._query_all_datasets("chain", name=["notfound", "flat"])
2458
+ results = butler.query_all_datasets("chain", name=["notfound", "flat"])
2459
2459
  with self.assertRaises(MissingDatasetTypeError):
2460
- results = butler._query_all_datasets("chain", name="notfound*")
2460
+ results = butler.query_all_datasets("chain", name="notfound*")
2461
2461
 
2462
2462
  # Limit of 3 lands at the boundary of a dataset type.
2463
2463
  # Limit of 4 is in the middle of a dataset type.
2464
2464
  for limit in [3, 4]:
2465
2465
  with self.subTest(limit=limit):
2466
- results = butler._query_all_datasets("imported_g", limit=limit)
2466
+ results = butler.query_all_datasets("imported_g", limit=limit)
2467
2467
  self.assertEqual(len(results), limit)
2468
2468
  with self.assertLogs(level="WARNING") as log:
2469
- results = butler._query_all_datasets("imported_g", limit=-limit)
2469
+ results = butler.query_all_datasets("imported_g", limit=-limit)
2470
2470
  self.assertEqual(len(results), limit)
2471
2471
  self.assertIn("requested limit", log.output[0])
2472
2472
 
2473
- results = butler._query_all_datasets("imported_g", limit=0)
2473
+ results = butler.query_all_datasets("imported_g", limit=0)
2474
2474
  self.assertEqual(len(results), 0)
2475
2475
 
2476
2476
  # 'where' constraints that don't apply to all dataset types follow the
2477
2477
  # same rules as query_datasets.
2478
- results = butler._query_all_datasets(
2478
+ results = butler.query_all_datasets(
2479
2479
  "*", where="detector = 2 and band = 'g' and instrument = 'Cam1'", find_first=False
2480
2480
  )
2481
2481
  self.assertCountEqual(
@@ -2491,7 +2491,7 @@ class ButlerQueryTests(ABC, TestCaseMixin):
2491
2491
 
2492
2492
  # Default collections and data ID apply.
2493
2493
  butler.registry.defaults = RegistryDefaults(collections="imported_g")
2494
- results = butler._query_all_datasets(where="detector = 2")
2494
+ results = butler.query_all_datasets(where="detector = 2")
2495
2495
  self.assertCountEqual(
2496
2496
  _ref_uuids(results),
2497
2497
  ["51352db4-a47a-447c-b12d-a50b206b17cd", "60c8a65c-7290-4c38-b1de-e3b1cdcf872d"],
@@ -0,0 +1,2 @@
1
+ __all__ = ["__version__"]
2
+ __version__ = "29.2025.3500"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lsst-daf-butler
3
- Version: 29.2025.3300
3
+ Version: 29.2025.3500
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
@@ -42,6 +42,7 @@ from lsst.daf.butler import (
42
42
  SerializedDatasetRefContainerV1,
43
43
  StorageClass,
44
44
  StorageClassFactory,
45
+ UnknownComponentError,
45
46
  )
46
47
  from lsst.daf.butler.datastore.stored_file_info import StoredFileInfo
47
48
  from lsst.daf.butler.datastores.file_datastore.retrieve_artifacts import ZipIndex
@@ -516,9 +517,12 @@ class DatasetTypeTestCase(unittest.TestCase):
516
517
  self.assertEqual(datasetTypeComponentB.parentStorageClass, storageClass)
517
518
  self.assertIsNone(datasetTypeComposite.parentStorageClass)
518
519
 
519
- with self.assertRaises(KeyError):
520
+ with self.assertRaises(UnknownComponentError):
520
521
  datasetTypeComposite.makeComponentDatasetType("compF")
521
522
 
523
+ with self.assertRaises(UnknownComponentError):
524
+ datasetTypeComposite.componentTypeName("unknown")
525
+
522
526
 
523
527
  class DatasetRefTestCase(unittest.TestCase):
524
528
  """Test for DatasetRef."""
@@ -48,6 +48,7 @@ from lsst.daf.butler import (
48
48
  DimensionConfig,
49
49
  DimensionElement,
50
50
  DimensionGroup,
51
+ DimensionNameError,
51
52
  DimensionPacker,
52
53
  DimensionUniverse,
53
54
  NamedKeyDict,
@@ -797,6 +798,10 @@ class DataCoordinateTestCase(unittest.TestCase):
797
798
  self.assertEqual(dataId, newDataId)
798
799
  self.assertTrue(newDataId.hasFull())
799
800
 
801
+ coord = DataCoordinate.standardize({"instrument": "HSC"}, universe=self.allDataIds.universe)
802
+ with self.assertRaises(DimensionNameError):
803
+ coord.subset(["detector"])
804
+
800
805
  def testUnion(self):
801
806
  """Test `DataCoordinate.union`."""
802
807
  # Make test groups to combine; mostly random, but with a few explicit
@@ -1,2 +0,0 @@
1
- __all__ = ["__version__"]
2
- __version__ = "29.2025.3300"