Coverage report: 21%

Files Functions Classes

coverage.py v7.14.1, created at 2026-05-29 08:16 +0000

      Statements   Branches   Total
File class   coverage statements missing excluded   coverage branches partial   coverage
python/lsst/__init__.py (no class)   100% 2 0 0   100% 0 0   100%
python/lsst/daf/__init__.py (no class)   100% 2 0 0   100% 0 0   100%
python/lsst/daf/butler/__init__.py (no class)   100% 38 0 0   100% 0 0   100%
python/lsst/daf/butler/_butler.py ParsedButlerDatasetURI   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/_butler.py SpecificButlerDataset   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/_butler.py _DeprecatedDefault   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/_butler.py Butler   0% 194 194 31   0% 98 0   0%
python/lsst/daf/butler/_butler.py (no class)   100% 131 0 15   100% 0 0   100%
python/lsst/daf/butler/_butler_collections.py CollectionInfo   0% 3 3 0   0% 2 0   0%
python/lsst/daf/butler/_butler_collections.py ButlerCollections   9% 22 20 9   14% 14 2   11%
python/lsst/daf/butler/_butler_collections.py (no class)   100% 53 0 2   100% 0 0   100%
python/lsst/daf/butler/_butler_config.py ButlerConfig   0% 61 61 0   0% 38 0   0%
python/lsst/daf/butler/_butler_config.py (no class)   100% 19 0 0   100% 0 0   100%
python/lsst/daf/butler/_butler_instance_options.py ButlerInstanceOptions   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/_butler_instance_options.py (no class)   100% 12 0 0   100% 0 0   100%
python/lsst/daf/butler/_butler_metrics.py ButlerMetrics   0% 21 21 0   100% 0 0   0%
python/lsst/daf/butler/_butler_metrics.py (no class)   100% 34 0 0   100% 0 0   100%
python/lsst/daf/butler/_butler_repo_index.py ButlerRepoIndex   0% 47 47 0   0% 14 0   0%
python/lsst/daf/butler/_butler_repo_index.py (no class)   100% 30 0 0   100% 0 0   100%
python/lsst/daf/butler/_collection_type.py CollectionType   11% 9 8 0   0% 2 0   9%
python/lsst/daf/butler/_collection_type.py (no class)   100% 19 0 0   100% 0 0   100%
python/lsst/daf/butler/_config.py Loader   13% 30 26 0   6% 16 1   11%
python/lsst/daf/butler/_config.py Config   35% 278 180 0   26% 156 15   32%
python/lsst/daf/butler/_config.py ConfigSubset   68% 62 20 0   55% 40 14   63%
python/lsst/daf/butler/_config.py (no class)   87% 116 15 2   69% 16 5   85%
python/lsst/daf/butler/_config_support.py LookupKey   15% 59 50 0   13% 38 5   14%
python/lsst/daf/butler/_config_support.py (no class)   43% 60 34 2   0% 24 0   31%
python/lsst/daf/butler/_dataset_association.py DatasetAssociation   0% 11 11 0   0% 6 0   0%
python/lsst/daf/butler/_dataset_association.py (no class)   100% 21 0 3   100% 0 0   100%
python/lsst/daf/butler/_dataset_existence.py DatasetExistence   0% 1 1 0   100% 0 0   0%
python/lsst/daf/butler/_dataset_existence.py (no class)   100% 19 0 0   100% 0 0   100%
python/lsst/daf/butler/_dataset_provenance.py DatasetProvenance   0% 152 152 0   0% 110 0   0%
python/lsst/daf/butler/_dataset_provenance.py (no class)   100% 32 0 3   100% 0 0   100%
python/lsst/daf/butler/_dataset_ref.py AmbiguousDatasetError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/_dataset_ref.py _DatasetRefGroupedIterable   0% 1 1 0   100% 0 0   0%
python/lsst/daf/butler/_dataset_ref.py DatasetIdGenEnum   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/_dataset_ref.py DatasetIdFactory   0% 12 12 0   0% 8 0   0%
python/lsst/daf/butler/_dataset_ref.py SerializedDatasetRef   0% 11 11 0   0% 4 0   0%
python/lsst/daf/butler/_dataset_ref.py DatasetRef   0% 115 115 0   0% 70 0   0%
python/lsst/daf/butler/_dataset_ref.py MinimalistSerializableDatasetRef   0% 8 8 0   0% 2 0   0%
python/lsst/daf/butler/_dataset_ref.py SerializedDatasetRefContainer   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/_dataset_ref.py SerializedDatasetRefContainerV1   0% 52 52 0   0% 28 0   0%
python/lsst/daf/butler/_dataset_ref.py (no class)   100% 126 0 3   100% 0 0   100%
python/lsst/daf/butler/_dataset_type.py SerializedDatasetType   0% 9 9 0   0% 4 0   0%
python/lsst/daf/butler/_dataset_type.py DatasetType   0% 158 158 0   0% 100 0   0%
python/lsst/daf/butler/_dataset_type.py (no class)   88% 77 9 3   0% 6 0   82%
python/lsst/daf/butler/_deferredDatasetHandle.py DeferredDatasetHandle   0% 12 12 0   0% 8 0   0%
python/lsst/daf/butler/_deferredDatasetHandle.py (no class)   100% 17 0 5   100% 0 0   100%
python/lsst/daf/butler/_exceptions.py ButlerUserError   0% 1 1 0   100% 0 0   0%
python/lsst/daf/butler/_exceptions.py CalibrationLookupError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/_exceptions.py CollectionCycleError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/_exceptions.py CollectionTypeError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/_exceptions.py DataIdValueError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/_exceptions.py DatasetNotFoundError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/_exceptions.py DimensionNameError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/_exceptions.py DimensionValueError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/_exceptions.py InconsistentDataIdError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/_exceptions.py InvalidQueryError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/_exceptions.py MissingCollectionError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/_exceptions.py UnimplementedQueryError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/_exceptions.py MissingDatasetTypeError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/_exceptions.py UnknownComponentError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/_exceptions.py DatasetTypeNotSupportedError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/_exceptions.py ValidationError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/_exceptions.py EmptyQueryResultError   0% 2 2 0   100% 0 0   0%
python/lsst/daf/butler/_exceptions.py UnknownButlerUserError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/_exceptions.py InconsistentUniverseError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/_exceptions.py (no class)   92% 50 4 0   0% 2 0   88%
python/lsst/daf/butler/_exceptions_legacy.py RegistryError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/_exceptions_legacy.py DataIdError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/_exceptions_legacy.py DatasetTypeError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/_exceptions_legacy.py CollectionError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/_exceptions_legacy.py (no class)   100% 5 0 0   100% 0 0   100%
python/lsst/daf/butler/_file_dataset.py FileDataset   0% 20 20 0   0% 10 0   0%
python/lsst/daf/butler/_file_dataset.py SerializedFileDataset   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/_file_dataset.py (no class)   100% 29 0 0   100% 0 0   100%
python/lsst/daf/butler/_file_descriptor.py FileDescriptor   0% 21 21 0   0% 10 0   0%
python/lsst/daf/butler/_file_descriptor.py (no class)   100% 10 0 3   100% 0 0   100%
python/lsst/daf/butler/_formatter.py FileIntegrityError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/_formatter.py FormatterNotImplementedError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/_formatter.py FormatterV2   0% 200 200 0   0% 90 0   0%
python/lsst/daf/butler/_formatter.py Formatter   0% 91 91 2   0% 42 0   0%
python/lsst/daf/butler/_formatter.py FormatterFactory   0% 51 51 0   0% 24 0   0%
python/lsst/daf/butler/_formatter.py FormatterV1inV2   0% 29 29 0   0% 4 0   0%
python/lsst/daf/butler/_formatter.py (no class)   100% 160 0 7   100% 0 0   100%
python/lsst/daf/butler/_labeled_butler_factory.py LabeledButlerFactoryProtocol   100% 1 0 0   50% 2 1   67%
python/lsst/daf/butler/_labeled_butler_factory.py LabeledButlerFactory   0% 42 42 0   0% 14 0   0%
python/lsst/daf/butler/_labeled_butler_factory.py _ButlerFactory   100% 2 0 0   50% 4 2   67%
python/lsst/daf/butler/_labeled_butler_factory.py _DirectButlerFactory   0% 6 6 0   100% 0 0   0%
python/lsst/daf/butler/_labeled_butler_factory.py _RemoteButlerFactory   0% 6 6 0   0% 2 0   0%
python/lsst/daf/butler/_labeled_butler_factory.py (no class)   100% 33 0 0   100% 0 0   100%
python/lsst/daf/butler/_limited_butler.py LimitedButler   0% 29 29 4   0% 2 0   0%
python/lsst/daf/butler/_limited_butler.py (no class)   100% 51 0 0   100% 0 0   100%
python/lsst/daf/butler/_location.py Location   0% 54 54 0   0% 24 0   0%
python/lsst/daf/butler/_location.py LocationFactory   0% 8 8 0   0% 2 0   0%
python/lsst/daf/butler/_location.py (no class)   100% 33 0 0   100% 0 0   100%
python/lsst/daf/butler/_named.py Named   0% 1 1 0   100% 0 0   0%
python/lsst/daf/butler/_named.py NamedKeyMapping   50% 4 2 3   50% 4 2   50%
python/lsst/daf/butler/_named.py NamedKeyMutableMapping   0% 1 1 2   100% 0 0   0%
python/lsst/daf/butler/_named.py NamedKeyDict   0% 32 32 0   0% 8 0   0%
python/lsst/daf/butler/_named.py NamedValueAbstractSet   29% 7 5 3   50% 4 2   36%
python/lsst/daf/butler/_named.py NameMappingSetView   5% 20 19 0   0% 8 0   4%
python/lsst/daf/butler/_named.py NamedValueMutableSet   100% 0 0 4   100% 0 0   100%
python/lsst/daf/butler/_named.py NamedValueSet   4% 27 26 0   0% 6 0   3%
python/lsst/daf/butler/_named.py (no class)   100% 108 0 0   100% 0 0   100%
python/lsst/daf/butler/_quantum.py SerializedQuantum   0% 9 9 0   100% 0 0   0%
python/lsst/daf/butler/_quantum.py Quantum   0% 124 124 0   0% 70 0   0%
python/lsst/daf/butler/_quantum.py DimensionRecordsAccumulator   0% 9 9 0   0% 2 0   0%
python/lsst/daf/butler/_quantum.py (no class)   84% 64 10 0   0% 6 0   77%
python/lsst/daf/butler/_quantum_backed.py QuantumBackedButler   0% 100 100 0   0% 48 0   0%
python/lsst/daf/butler/_quantum_backed.py QuantumProvenanceData   0% 18 18 1   0% 10 0   0%
python/lsst/daf/butler/_quantum_backed.py (no class)   100% 70 0 2   100% 0 0   100%
python/lsst/daf/butler/_query_all_datasets.py DatasetsPage   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/_query_all_datasets.py QueryAllDatasetsParameters   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/_query_all_datasets.py (no class)   48% 60 31 2   0% 18 0   37%
python/lsst/daf/butler/_registry_shim.py RegistryShim   0% 76 76 0   0% 20 0   0%
python/lsst/daf/butler/_registry_shim.py (no class)   100% 66 0 4   100% 0 0   100%
python/lsst/daf/butler/_rubin/__init__.py (no class)   100% 1 0 0   100% 0 0   100%
python/lsst/daf/butler/_rubin/datastore_records.py (no class)   0% 9 9 0   100% 0 0   0%
python/lsst/daf/butler/_rubin/file_datasets.py (no class)   43% 23 13 0   0% 4 0   37%
python/lsst/daf/butler/_rubin/temporary_for_ingest.py TemporaryForIngest   0% 26 26 0   0% 6 0   0%
python/lsst/daf/butler/_rubin/temporary_for_ingest.py (no class)   100% 31 0 7   100% 0 0   100%
python/lsst/daf/butler/_rubin/transfer_datasets_in_place.py (no class)   43% 21 12 1   100% 0 0   43%
python/lsst/daf/butler/_standalone_datastore.py _DatasetRecordStorageManagerDatastoreConstructionMimic   0% 4 4 0   100% 0 0   0%
python/lsst/daf/butler/_standalone_datastore.py (no class)   57% 30 13 0   0% 6 0   47%
python/lsst/daf/butler/_storage_class.py StorageClassConfig   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/_storage_class.py _StorageClassModel   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/_storage_class.py StorageClass   19% 179 145 0   14% 96 1   17%
python/lsst/daf/butler/_storage_class.py StorageClassFactory   55% 85 38 0   42% 36 3   51%
python/lsst/daf/butler/_storage_class.py (no class)   100% 69 0 0   100% 0 0   100%
python/lsst/daf/butler/_storage_class_delegate.py DatasetComponent   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/_storage_class_delegate.py StorageClassDelegate   0% 83 83 2   0% 46 0   0%
python/lsst/daf/butler/_storage_class_delegate.py (no class)   100% 30 0 3   100% 0 0   100%
python/lsst/daf/butler/_timespan.py _SpecialTimespanBound   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/_timespan.py Timespan   0% 138 138 0   0% 86 0   0%
python/lsst/daf/butler/_timespan.py (no class)   97% 63 2 0   100% 0 0   97%
python/lsst/daf/butler/_topology.py TopologicalSpace   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/_topology.py TopologicalFamily   0% 8 8 2   0% 2 0   0%
python/lsst/daf/butler/_topology.py TopologicalRelationshipEndpoint   0% 2 2 2   100% 0 0   0%
python/lsst/daf/butler/_topology.py (no class)   100% 40 0 3   100% 0 0   100%
python/lsst/daf/butler/_utilities/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/_utilities/locked_object.py LockedObject   0% 4 4 0   100% 0 0   0%
python/lsst/daf/butler/_utilities/locked_object.py (no class)   100% 9 0 0   100% 0 0   100%
python/lsst/daf/butler/_utilities/named_locks.py NamedLocks   0% 10 10 0   0% 2 0   0%
python/lsst/daf/butler/_utilities/named_locks.py (no class)   100% 8 0 0   100% 0 0   100%
python/lsst/daf/butler/_utilities/thread_safe_cache.py ThreadSafeCache   20% 10 8 0   100% 0 0   20%
python/lsst/daf/butler/_utilities/thread_safe_cache.py (no class)   100% 9 0 0   100% 0 0   100%
python/lsst/daf/butler/_uuid.py (no class)   42% 12 7 0   100% 0 0   42%
python/lsst/daf/butler/arrow_utils.py ToArrow   0% 7 7 5   100% 0 0   0%
python/lsst/daf/butler/arrow_utils.py _ToArrowPrimitive   0% 8 8 0   100% 0 0   0%
python/lsst/daf/butler/arrow_utils.py _ToArrowDictionary   0% 6 6 0   100% 0 0   0%
python/lsst/daf/butler/arrow_utils.py _ToArrowUUID   0% 8 8 0   100% 0 0   0%
python/lsst/daf/butler/arrow_utils.py _ToArrowRegion   0% 8 8 0   100% 0 0   0%
python/lsst/daf/butler/arrow_utils.py _ToArrowTimespan   0% 8 8 0   100% 0 0   0%
python/lsst/daf/butler/arrow_utils.py _ToArrowDateTime   0% 8 8 0   100% 0 0   0%
python/lsst/daf/butler/arrow_utils.py UUIDArrowType   0% 4 4 0   100% 0 0   0%
python/lsst/daf/butler/arrow_utils.py UUIDArrowScalar   0% 1 1 0   100% 0 0   0%
python/lsst/daf/butler/arrow_utils.py RegionArrowType   50% 4 2 0   100% 0 0   50%
python/lsst/daf/butler/arrow_utils.py RegionArrowScalar   0% 1 1 0   100% 0 0   0%
python/lsst/daf/butler/arrow_utils.py TimespanArrowType   50% 4 2 0   100% 0 0   50%
python/lsst/daf/butler/arrow_utils.py TimespanArrowScalar   0% 3 3 0   0% 2 0   0%
python/lsst/daf/butler/arrow_utils.py DateTimeArrowType   50% 4 2 0   100% 0 0   50%
python/lsst/daf/butler/arrow_utils.py DateTimeArrowScalar   0% 1 1 0   100% 0 0   0%
python/lsst/daf/butler/arrow_utils.py ArrowTableUtils   0% 7 7 0   0% 2 0   0%
python/lsst/daf/butler/arrow_utils.py (no class)   100% 150 0 0   100% 0 0   100%
python/lsst/daf/butler/cli/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/cli/butler.py PluginCommand   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/cli/butler.py LoaderCLI   1% 81 80 1   0% 38 0   1%
python/lsst/daf/butler/cli/butler.py ButlerCLI   0% 6 6 0   0% 4 0   0%
python/lsst/daf/butler/cli/butler.py UncachedButlerCLI   0% 1 1 0   100% 0 0   0%
python/lsst/daf/butler/cli/butler.py (no class)   90% 81 8 0   100% 0 0   90%
python/lsst/daf/butler/cli/cliLog.py PrecisionLogFormatter   0% 7 7 0   0% 4 0   0%
python/lsst/daf/butler/cli/cliLog.py CliLog   4% 96 92 0   2% 56 1   3%
python/lsst/daf/butler/cli/cliLog.py CliLog.ComponentSettings   0% 6 6 0   0% 2 0   0%
python/lsst/daf/butler/cli/cliLog.py (no class)   96% 50 2 0   100% 0 0   96%
python/lsst/daf/butler/cli/cmd/__init__.py (no class)   100% 4 0 0   100% 0 0   100%
python/lsst/daf/butler/cli/cmd/_remove_collections.py (no class)   39% 57 35 0   0% 20 0   29%
python/lsst/daf/butler/cli/cmd/_remove_runs.py (no class)   49% 63 32 0   0% 16 0   39%
python/lsst/daf/butler/cli/cmd/commands.py (no class)   67% 308 103 0   0% 60 0   56%
python/lsst/daf/butler/cli/opt/__init__.py (no class)   100% 3 0 0   100% 0 0   100%
python/lsst/daf/butler/cli/opt/arguments.py (no class)   100% 11 0 0   100% 0 0   100%
python/lsst/daf/butler/cli/opt/optionGroups.py query_datasets_options   92% 13 1 0   90% 10 1   91%
python/lsst/daf/butler/cli/opt/optionGroups.py (no class)   100% 7 0 0   100% 0 0   100%
python/lsst/daf/butler/cli/opt/options.py CollectionTypeCallback   0% 3 3 0   0% 2 0   0%
python/lsst/daf/butler/cli/opt/options.py (no class)   93% 45 3 0   100% 0 0   93%
python/lsst/daf/butler/cli/progress.py ClickProgressHandler   17% 6 5 0   0% 2 0   12%
python/lsst/daf/butler/cli/progress.py (no class)   100% 15 0 0   100% 0 0   100%
python/lsst/daf/butler/cli/utils.py ClickExitFailedNicely   0% 14 14 0   0% 4 0   0%
python/lsst/daf/butler/cli/utils.py LogCliRunner   0% 6 6 0   0% 2 0   0%
python/lsst/daf/butler/cli/utils.py split_kv.RetDict   0% 5 5 0   0% 2 0   0%
python/lsst/daf/butler/cli/utils.py split_kv.RetTuple   0% 5 5 0   0% 2 0   0%
python/lsst/daf/butler/cli/utils.py option_section   100% 2 0 0   100% 0 0   100%
python/lsst/daf/butler/cli/utils.py MWPath   57% 7 3 0   25% 4 1   45%
python/lsst/daf/butler/cli/utils.py MWOption   0% 8 8 0   0% 6 0   0%
python/lsst/daf/butler/cli/utils.py MWArgument   0% 6 6 0   0% 4 0   0%
python/lsst/daf/butler/cli/utils.py OptionSection   60% 5 2 0   100% 0 0   60%
python/lsst/daf/butler/cli/utils.py MWOptionDecorator   67% 9 3 0   100% 0 0   67%
python/lsst/daf/butler/cli/utils.py MWArgumentDecorator   100% 9 0 0   100% 4 0   100%
python/lsst/daf/butler/cli/utils.py MWCommand   15% 40 34 1   6% 18 1   12%
python/lsst/daf/butler/cli/utils.py ButlerCommand   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/cli/utils.py OptionGroup   100% 3 0 0   100% 2 0   100%
python/lsst/daf/butler/cli/utils.py MWCtxObj   0% 5 5 0   0% 2 0   0%
python/lsst/daf/butler/cli/utils.py (no class)   47% 269 143 3   8% 78 4   38%
python/lsst/daf/butler/column_spec.py ColumnValueSerializer   100% 0 0 2   100% 0 0   100%
python/lsst/daf/butler/column_spec.py _TypeAdapterColumnValueSerializer   0% 3 3 0   100% 0 0   0%
python/lsst/daf/butler/column_spec.py _BaseColumnSpec   0% 15 15 2   0% 6 0   0%
python/lsst/daf/butler/column_spec.py IntColumnSpec   0% 2 2 0   100% 0 0   0%
python/lsst/daf/butler/column_spec.py StringColumnSpec   0% 3 3 0   100% 0 0   0%
python/lsst/daf/butler/column_spec.py HashColumnSpec   0% 3 3 0   100% 0 0   0%
python/lsst/daf/butler/column_spec.py FloatColumnSpec   0% 3 3 0   100% 0 0   0%
python/lsst/daf/butler/column_spec.py BoolColumnSpec   0% 2 2 0   100% 0 0   0%
python/lsst/daf/butler/column_spec.py UUIDColumnSpec   0% 3 3 0   100% 0 0   0%
python/lsst/daf/butler/column_spec.py RegionColumnSpec   0% 3 3 0   100% 0 0   0%
python/lsst/daf/butler/column_spec.py TimespanColumnSpec   0% 2 2 0   100% 0 0   0%
python/lsst/daf/butler/column_spec.py DateTimeColumnSpec   0% 3 3 0   100% 0 0   0%
python/lsst/daf/butler/column_spec.py (no class)   99% 108 1 2   100% 0 0   99%
python/lsst/daf/butler/datastore/__init__.py (no class)   100% 2 0 0   100% 0 0   100%
python/lsst/daf/butler/datastore/_datastore.py DatastoreConfig   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/datastore/_datastore.py DatastoreValidationError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/datastore/_datastore.py Event   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/datastore/_datastore.py DatastoreOpaqueTable   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/datastore/_datastore.py IngestPrepData   0% 1 1 0   100% 0 0   0%
python/lsst/daf/butler/datastore/_datastore.py DatastoreTransaction   0% 23 23 0   0% 4 0   0%
python/lsst/daf/butler/datastore/_datastore.py DatasetRefURIs   0% 12 12 0   0% 6 0   0%
python/lsst/daf/butler/datastore/_datastore.py Datastore   0% 59 59 30   0% 14 0   0%
python/lsst/daf/butler/datastore/_datastore.py NullDatastore   0% 15 15 15   100% 0 0   0%
python/lsst/daf/butler/datastore/_datastore.py (no class)   100% 180 0 13   100% 0 0   100%
python/lsst/daf/butler/datastore/_transfer.py FileTransferSource   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/datastore/_transfer.py FileTransferRecord   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/datastore/_transfer.py (no class)   100% 17 0 0   100% 0 0   100%
python/lsst/daf/butler/datastore/cache_manager.py CacheEntry   0% 6 6 0   0% 2 0   0%
python/lsst/daf/butler/datastore/cache_manager.py _MarkerEntry   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/datastore/cache_manager.py CacheRegistry   0% 38 38 0   0% 18 0   0%
python/lsst/daf/butler/datastore/cache_manager.py DatastoreCacheManagerConfig   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/datastore/cache_manager.py AbstractDatastoreCacheManager   0% 6 6 6   0% 2 0   0%
python/lsst/daf/butler/datastore/cache_manager.py DatastoreCacheManager   0% 234 234 0   0% 118 0   0%
python/lsst/daf/butler/datastore/cache_manager.py DatastoreDisabledCacheManager   0% 7 7 0   100% 0 0   0%
python/lsst/daf/butler/datastore/cache_manager.py InvalidCacheFilenameError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/datastore/cache_manager.py (no class)   89% 138 15 5   100% 0 0   89%
python/lsst/daf/butler/datastore/composites.py CompositesConfig   0% 4 4 0   0% 4 0   0%
python/lsst/daf/butler/datastore/composites.py CompositesMap   0% 31 31 0   0% 18 0   0%
python/lsst/daf/butler/datastore/composites.py (no class)   100% 18 0 8   100% 0 0   100%
python/lsst/daf/butler/datastore/constraints.py ConstraintsValidationError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/datastore/constraints.py ConstraintsConfig   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/datastore/constraints.py Constraints   0% 32 32 0   0% 18 0   0%
python/lsst/daf/butler/datastore/constraints.py (no class)   100% 19 0 5   100% 0 0   100%
python/lsst/daf/butler/datastore/file_templates.py FileTemplateValidationError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/datastore/file_templates.py FileTemplatesConfig   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/datastore/file_templates.py FieldDict   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/datastore/file_templates.py FileTemplates   0% 58 58 0   0% 28 0   0%
python/lsst/daf/butler/datastore/file_templates.py FileTemplate   0% 207 207 0   0% 134 0   0%
python/lsst/daf/butler/datastore/file_templates.py (no class)   100% 54 0 3   100% 0 0   100%
python/lsst/daf/butler/datastore/generic_base.py GenericBaseDatastore   0% 5 5 0   100% 0 0   0%
python/lsst/daf/butler/datastore/generic_base.py (no class)   54% 24 11 3   0% 8 0   41%
python/lsst/daf/butler/datastore/record_data.py SerializedDatastoreRecordData   0% 2 2 0   100% 0 0   0%
python/lsst/daf/butler/datastore/record_data.py DatastoreRecordData   0% 47 47 0   0% 34 0   0%
python/lsst/daf/butler/datastore/record_data.py DatastoreRecordTable   0% 23 23 0   0% 6 0   0%
python/lsst/daf/butler/datastore/record_data.py (no class)   100% 51 0 2   100% 0 0   100%
python/lsst/daf/butler/datastore/stored_file_info.py StoredDatastoreItemInfo   0% 14 14 4   0% 6 0   0%
python/lsst/daf/butler/datastore/stored_file_info.py StoredFileInfo   0% 48 48 0   0% 22 0   0%
python/lsst/daf/butler/datastore/stored_file_info.py SerializedStoredFileInfo   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/datastore/stored_file_info.py StoredFileInfoTable   0% 15 15 0   100% 0 0   0%
python/lsst/daf/butler/datastore/stored_file_info.py (no class)   89% 97 11 2   0% 4 0   85%
python/lsst/daf/butler/datastores/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/datastores/chainedDatastore.py _IngestPrepData   0% 2 2 0   100% 0 0   0%
python/lsst/daf/butler/datastores/chainedDatastore.py ChainedDatastore   0% 463 463 1   0% 244 0   0%
python/lsst/daf/butler/datastores/chainedDatastore.py (no class)   0% 82 82 4   100% 0 0   0%
python/lsst/daf/butler/datastores/fileDatastore.py _IngestPrepData   0% 2 2 0   100% 0 0   0%
python/lsst/daf/butler/datastores/fileDatastore.py FileDatastore   0% 941 941 2   0% 494 0   0%
python/lsst/daf/butler/datastores/fileDatastore.py (no class)   100% 134 0 3   100% 0 0   100%
python/lsst/daf/butler/datastores/file_datastore/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/datastores/file_datastore/get.py DatastoreFileGetInformation   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/datastores/file_datastore/get.py (no class)   26% 117 86 0   0% 36 0   20%
python/lsst/daf/butler/datastores/file_datastore/retrieve_artifacts.py ArtifactIndexInfo   0% 6 6 0   0% 2 0   0%
python/lsst/daf/butler/datastores/file_datastore/retrieve_artifacts.py ZipIndex   0% 27 27 0   0% 6 0   0%
python/lsst/daf/butler/datastores/file_datastore/retrieve_artifacts.py RetrievalCallable   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/datastores/file_datastore/retrieve_artifacts.py (no class)   47% 103 55 0   3% 30 1   37%
python/lsst/daf/butler/datastores/file_datastore/transfer.py (no class)   32% 25 17 0   0% 8 0   24%
python/lsst/daf/butler/datastores/inMemoryDatastore.py StoredMemoryItemInfo   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/datastores/inMemoryDatastore.py InMemoryDatastore   0% 146 146 3   0% 46 0   0%
python/lsst/daf/butler/datastores/inMemoryDatastore.py (no class)   0% 66 66 5   100% 0 0   0%
python/lsst/daf/butler/ddl.py SchemaValidationError   50% 8 4 0   100% 0 0   50%
python/lsst/daf/butler/ddl.py Base64Bytes   0% 12 12 0   0% 6 0   0%
python/lsst/daf/butler/ddl.py Base64Region   0% 8 8 0   0% 4 0   0%
python/lsst/daf/butler/ddl.py AstropyTimeNsecTai   0% 10 10 0   0% 6 0   0%
python/lsst/daf/butler/ddl.py GUID   0% 19 19 0   0% 16 0   0%
python/lsst/daf/butler/ddl.py FieldSpec   6% 36 34 0   10% 20 0   7%
python/lsst/daf/butler/ddl.py ForeignKeySpec   0% 1 1 0   100% 0 0   0%
python/lsst/daf/butler/ddl.py IndexSpec   0% 3 3 0   100% 0 0   0%
python/lsst/daf/butler/ddl.py TableSpec   88% 8 1 0   100% 0 0   88%
python/lsst/daf/butler/ddl.py (no class)   100% 126 0 2   100% 0 0   100%
python/lsst/daf/butler/delegates/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/delegates/arrowtable.py ArrowTableDelegate   0% 90 90 1   0% 72 0   0%
python/lsst/daf/butler/delegates/arrowtable.py (no class)   38% 45 28 3   0% 18 0   27%
python/lsst/daf/butler/dimensions/__init__.py (no class)   100% 15 0 0   100% 0 0   100%
python/lsst/daf/butler/dimensions/_config.py DimensionConfig   0% 31 31 0   0% 16 0   0%
python/lsst/daf/butler/dimensions/_config.py _SkyPixSystemConfig   0% 15 15 0   0% 6 0   0%
python/lsst/daf/butler/dimensions/_config.py _SkyPixSectionConfig   0% 6 6 0   0% 4 0   0%
python/lsst/daf/butler/dimensions/_config.py _TopologySectionConfig   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/dimensions/_config.py _LegacyGovernorDimensionStorage   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/dimensions/_config.py _LegacyTableDimensionStorage   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/dimensions/_config.py _LegacyImpliedUnionDimensionStorage   0% 1 1 0   100% 0 0   0%
python/lsst/daf/butler/dimensions/_config.py _LegacyCachingDimensionStorage   0% 2 2 0   100% 0 0   0%
python/lsst/daf/butler/dimensions/_config.py _ElementConfig   0% 55 55 0   0% 38 0   0%
python/lsst/daf/butler/dimensions/_config.py SerializedDimensionConfig   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/dimensions/_config.py (no class)   100% 118 0 0   100% 0 0   100%
python/lsst/daf/butler/dimensions/_coordinate.py SerializedDataCoordinate   0% 11 11 0   0% 6 0   0%
python/lsst/daf/butler/dimensions/_coordinate.py DataCoordinate   3% 120 116 11   5% 78 4   4%
python/lsst/daf/butler/dimensions/_coordinate.py _DataCoordinateRecordsView   0% 7 7 0   100% 0 0   0%
python/lsst/daf/butler/dimensions/_coordinate.py _BasicTupleDataCoordinate   0% 13 13 1   0% 2 0   0%
python/lsst/daf/butler/dimensions/_coordinate.py _DataCoordinateRequiredMappingView   0% 7 7 0   0% 2 0   0%
python/lsst/daf/butler/dimensions/_coordinate.py _DataCoordinateFullMappingView   0% 5 5 0   100% 0 0   0%
python/lsst/daf/butler/dimensions/_coordinate.py _RequiredTupleDataCoordinate   0% 18 18 0   0% 6 0   0%
python/lsst/daf/butler/dimensions/_coordinate.py _FullTupleDataCoordinate   0% 22 22 0   0% 6 0   0%
python/lsst/daf/butler/dimensions/_coordinate.py _ExpandedTupleDataCoordinate   0% 21 21 0   0% 4 0   0%
python/lsst/daf/butler/dimensions/_coordinate.py (no class)   96% 165 6 3   0% 4 0   94%
python/lsst/daf/butler/dimensions/_data_coordinate_iterable.py DataCoordinateIterable   0% 4 4 4   100% 0 0   0%
python/lsst/daf/butler/dimensions/_data_coordinate_iterable.py _ScalarDataCoordinateIterable   0% 11 11 0   0% 2 0   0%
python/lsst/daf/butler/dimensions/_data_coordinate_iterable.py _DataCoordinateCollectionBase   0% 39 39 0   0% 24 0   0%
python/lsst/daf/butler/dimensions/_data_coordinate_iterable.py DataCoordinateSet   0% 56 56 0   0% 34 0   0%
python/lsst/daf/butler/dimensions/_data_coordinate_iterable.py DataCoordinateSequence   0% 17 17 0   0% 6 0   0%
python/lsst/daf/butler/dimensions/_data_coordinate_iterable.py (no class)   100% 87 0 0   100% 0 0   100%
python/lsst/daf/butler/dimensions/_database.py DatabaseTopologicalFamily   0% 17 17 0   0% 6 0   0%
python/lsst/daf/butler/dimensions/_database.py DatabaseTopologicalFamilyConstructionVisitor   0% 11 11 0   0% 4 0   0%
python/lsst/daf/butler/dimensions/_database.py DatabaseDimensionElement   0% 14 14 0   100% 0 0   0%
python/lsst/daf/butler/dimensions/_database.py DatabaseDimension   0% 8 8 0   100% 0 0   0%
python/lsst/daf/butler/dimensions/_database.py DatabaseDimensionCombination   0% 8 8 0   100% 0 0   0%
python/lsst/daf/butler/dimensions/_database.py (no class)   100% 59 0 4   100% 0 0   100%
python/lsst/daf/butler/dimensions/_elements.py DimensionElement   5% 61 58 5   0% 10 0   4%
python/lsst/daf/butler/dimensions/_elements.py Dimension   0% 15 15 1   0% 4 0   0%
python/lsst/daf/butler/dimensions/_elements.py DimensionCombination   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/dimensions/_elements.py (no class)   100% 110 0 7   100% 0 0   100%
python/lsst/daf/butler/dimensions/_governor.py GovernorDimension   0% 17 17 0   0% 4 0   0%
python/lsst/daf/butler/dimensions/_governor.py (no class)   100% 26 0 0   100% 0 0   100%
python/lsst/daf/butler/dimensions/_group.py SortedSequenceSet   0% 12 12 0   0% 2 0   0%
python/lsst/daf/butler/dimensions/_group.py DimensionGroup   3% 106 103 0   0% 36 0   2%
python/lsst/daf/butler/dimensions/_group.py (no class)   100% 93 0 3   100% 0 0   100%
python/lsst/daf/butler/dimensions/_packer.py DimensionPacker   0% 11 11 3   0% 4 0   0%
python/lsst/daf/butler/dimensions/_packer.py (no class)   100% 22 0 2   100% 0 0   100%
python/lsst/daf/butler/dimensions/_record_set.py DimensionRecordFactory   100% 0 0 1   100% 0 0   100%
python/lsst/daf/butler/dimensions/_record_set.py DimensionRecordSet   0% 80 80 0   0% 48 0   0%
python/lsst/daf/butler/dimensions/_record_set.py DimensionRecordSetDeserializer   0% 7 7 0   100% 0 0   0%
python/lsst/daf/butler/dimensions/_record_set.py DimensionDataExtractor   0% 12 12 0   0% 10 0   0%
python/lsst/daf/butler/dimensions/_record_set.py SerializableDimensionData   0% 2 2 0   100% 0 0   0%
python/lsst/daf/butler/dimensions/_record_set.py DimensionDataAttacher   0% 46 46 0   0% 38 0   0%
python/lsst/daf/butler/dimensions/_record_set.py _InProgressRecordDicts   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/dimensions/_record_set.py _DimensionRecordLookupHelper   0% 40 40 0   0% 24 0   0%
python/lsst/daf/butler/dimensions/_record_set.py _DeserializingDimensionRecordLookupHelper   0% 4 4 0   100% 0 0   0%
python/lsst/daf/butler/dimensions/_record_set.py _SkyPixDimensionRecordLookupHelper   0% 2 2 0   100% 0 0   0%
python/lsst/daf/butler/dimensions/_record_set.py (no class)   99% 90 1 7   100% 0 0   99%
python/lsst/daf/butler/dimensions/_record_table.py DimensionRecordTable   4% 45 43 0   8% 24 2   6%
python/lsst/daf/butler/dimensions/_record_table.py (no class)   100% 24 0 4   100% 0 0   100%
python/lsst/daf/butler/dimensions/_records.py SpecificSerializedDimensionRecord   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/dimensions/_records.py SerializedDimensionRecord   0% 9 9 0   0% 4 0   0%
python/lsst/daf/butler/dimensions/_records.py DimensionRecord   0% 94 94 0   0% 52 0   0%
python/lsst/daf/butler/dimensions/_records.py (no class)   66% 97 33 5   0% 14 0   58%
python/lsst/daf/butler/dimensions/_schema.py DimensionRecordSchema   0% 45 45 0   0% 22 0   0%
python/lsst/daf/butler/dimensions/_schema.py DimensionElementFields   0% 52 52 0   0% 24 0   0%
python/lsst/daf/butler/dimensions/_schema.py (no class)   75% 65 16 3   0% 6 0   69%
python/lsst/daf/butler/dimensions/_skypix.py SkyPixSystem   0% 22 22 0   0% 10 0   0%
python/lsst/daf/butler/dimensions/_skypix.py SkyPixDimension   0% 12 12 0   100% 0 0   0%
python/lsst/daf/butler/dimensions/_skypix.py (no class)   100% 42 0 3   100% 0 0   100%
python/lsst/daf/butler/dimensions/_universe.py DimensionUniverse   1% 94 93 0   2% 42 1   1%
python/lsst/daf/butler/dimensions/_universe.py (no class)   100% 84 0 2   50% 2 1   99%
python/lsst/daf/butler/dimensions/construction.py DimensionConstructionVisitor   100% 0 0 2   100% 0 0   100%
python/lsst/daf/butler/dimensions/construction.py DimensionConstructionBuilder   0% 16 16 0   0% 6 0   0%
python/lsst/daf/butler/dimensions/construction.py (no class)   100% 27 0 3   100% 0 0   100%
python/lsst/daf/butler/dimensions/record_cache.py DimensionRecordCache   0% 19 19 0   0% 6 0   0%
python/lsst/daf/butler/dimensions/record_cache.py (no class)   100% 15 0 0   100% 0 0   100%
python/lsst/daf/butler/direct_butler/__init__.py (no class)   100% 1 0 0   100% 0 0   100%
python/lsst/daf/butler/direct_butler/_direct_butler.py ButlerValidationError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/direct_butler/_direct_butler.py DirectButler   0% 825 825 1   0% 488 0   0%
python/lsst/daf/butler/direct_butler/_direct_butler.py _RefGroup   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/direct_butler/_direct_butler.py _ImportDatasetsInfo   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/direct_butler/_direct_butler.py _ButlerClosed   0% 1 1 0   100% 0 0   0%
python/lsst/daf/butler/direct_butler/_direct_butler.py (no class)   95% 149 7 8   0% 2 0   94%
python/lsst/daf/butler/direct_butler/_direct_butler_collections.py DirectButlerCollections   0% 54 54 0   0% 24 0   0%
python/lsst/daf/butler/direct_butler/_direct_butler_collections.py (no class)   100% 25 0 3   100% 0 0   100%
python/lsst/daf/butler/direct_query_driver/__init__.py (no class)   100% 3 0 0   100% 0 0   100%
python/lsst/daf/butler/direct_query_driver/_driver.py DirectQueryDriver   1% 348 347 2   1% 192 1   1%
python/lsst/daf/butler/direct_query_driver/_driver.py _MaterializationState   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/direct_query_driver/_driver.py _Cursor   0% 26 26 0   0% 6 0   0%
python/lsst/daf/butler/direct_query_driver/_driver.py (no class)   100% 83 0 2   50% 10 5   95%
python/lsst/daf/butler/direct_query_driver/_postprocessing.py Postprocessing   0% 42 42 0   0% 28 0   0%
python/lsst/daf/butler/direct_query_driver/_postprocessing.py (no class)   100% 29 0 2   100% 0 0   100%
python/lsst/daf/butler/direct_query_driver/_query_analysis.py ResolvedDatasetSearch   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/direct_query_driver/_query_analysis.py QueryJoinsAnalysis   0% 15 15 0   0% 14 0   0%
python/lsst/daf/butler/direct_query_driver/_query_analysis.py QueryFindFirstAnalysis   0% 2 2 0   100% 0 0   0%
python/lsst/daf/butler/direct_query_driver/_query_analysis.py QueryCollectionAnalysis   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/direct_query_driver/_query_analysis.py QueryTreeAnalysis   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/direct_query_driver/_query_analysis.py (no class)   100% 63 0 3   100% 0 0   100%
python/lsst/daf/butler/direct_query_driver/_query_builder.py QueryBuilder   0% 13 13 6   0% 6 0   0%
python/lsst/daf/butler/direct_query_driver/_query_builder.py SingleSelectQueryBuilder   0% 32 32 0   0% 14 0   0%
python/lsst/daf/butler/direct_query_driver/_query_builder.py UnionQueryBuilderTerm   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/direct_query_driver/_query_builder.py UnionQueryBuilder   0% 71 71 1   0% 54 0   0%
python/lsst/daf/butler/direct_query_driver/_query_builder.py (no class)   100% 89 0 3   50% 8 4   96%
python/lsst/daf/butler/direct_query_driver/_result_page_converter.py ResultPageConverter   100% 0 0 1   100% 0 0   100%
python/lsst/daf/butler/direct_query_driver/_result_page_converter.py ResultPageConverterContext   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/direct_query_driver/_result_page_converter.py DimensionRecordResultPageConverter   0% 6 6 0   0% 2 0   0%
python/lsst/daf/butler/direct_query_driver/_result_page_converter.py _DimensionRecordRowConverter   100% 0 0 1   100% 0 0   100%
python/lsst/daf/butler/direct_query_driver/_result_page_converter.py _NormalDimensionRecordRowConverter   0% 16 16 0   0% 8 0   0%
python/lsst/daf/butler/direct_query_driver/_result_page_converter.py _SkypixDimensionRecordRowConverter   0% 5 5 0   100% 0 0   0%
python/lsst/daf/butler/direct_query_driver/_result_page_converter.py _CachedDimensionRecordRowConverter   0% 6 6 0   100% 0 0   0%
python/lsst/daf/butler/direct_query_driver/_result_page_converter.py DataCoordinateResultPageConverter   0% 5 5 0   100% 0 0   0%
python/lsst/daf/butler/direct_query_driver/_result_page_converter.py DatasetRefResultPageConverter   0% 9 9 0   100% 0 0   0%
python/lsst/daf/butler/direct_query_driver/_result_page_converter.py _DataCoordinateRowConverter   0% 10 10 0   0% 4 0   0%
python/lsst/daf/butler/direct_query_driver/_result_page_converter.py _DimensionGroupRecordRowConverter   0% 2 2 0   100% 0 0   0%
python/lsst/daf/butler/direct_query_driver/_result_page_converter.py GeneralResultPageConverter   0% 31 31 0   0% 22 0   0%
python/lsst/daf/butler/direct_query_driver/_result_page_converter.py _GeneralColumnConverter   100% 0 0 1   100% 0 0   100%
python/lsst/daf/butler/direct_query_driver/_result_page_converter.py _DefaultGeneralColumnConverter   0% 2 2 0   100% 0 0   0%
python/lsst/daf/butler/direct_query_driver/_result_page_converter.py _TimestampGeneralColumnConverter   0% 5 5 0   0% 2 0   0%
python/lsst/daf/butler/direct_query_driver/_result_page_converter.py _TimespanGeneralColumnConverter   0% 4 4 0   100% 0 0   0%
python/lsst/daf/butler/direct_query_driver/_result_page_converter.py (no class)   93% 72 5 2   0% 4 0   88%
python/lsst/daf/butler/direct_query_driver/_sql_builders.py SqlSelectBuilder   0% 43 43 0   0% 26 0   0%
python/lsst/daf/butler/direct_query_driver/_sql_builders.py SqlColumns   0% 24 24 0   0% 20 0   0%
python/lsst/daf/butler/direct_query_driver/_sql_builders.py SqlJoinsBuilder   0% 35 35 0   0% 20 0   0%
python/lsst/daf/butler/direct_query_driver/_sql_builders.py (no class)   77% 82 19 3   0% 14 0   66%
python/lsst/daf/butler/direct_query_driver/_sql_column_visitor.py SqlColumnVisitor   0% 125 125 6   0% 64 0   0%
python/lsst/daf/butler/direct_query_driver/_sql_column_visitor.py (no class)   100% 33 0 3   100% 0 0   100%
python/lsst/daf/butler/formatters/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/formatters/astropyTable.py AstropyTableFormatter   0% 9 9 0   0% 4 0   0%
python/lsst/daf/butler/formatters/astropyTable.py (no class)   0% 12 12 0   100% 0 0   0%
python/lsst/daf/butler/formatters/file.py FileFormatter   0% 49 49 0   0% 22 0   0%
python/lsst/daf/butler/formatters/file.py (no class)   0% 18 18 2   100% 0 0   0%
python/lsst/daf/butler/formatters/json.py JsonFormatter   0% 20 20 0   0% 6 0   0%
python/lsst/daf/butler/formatters/json.py (no class)   100% 15 0 0   100% 0 0   100%
python/lsst/daf/butler/formatters/logs.py ButlerLogRecordsFormatter   0% 6 6 0   0% 2 0   0%
python/lsst/daf/butler/formatters/logs.py (no class)   0% 11 11 0   100% 0 0   0%
python/lsst/daf/butler/formatters/matplotlib.py MatplotlibFormatter   0% 4 4 0   0% 2 0   0%
python/lsst/daf/butler/formatters/matplotlib.py (no class)   0% 8 8 0   100% 0 0   0%
python/lsst/daf/butler/formatters/packages.py PackagesFormatter   0% 11 11 0   0% 2 0   0%
python/lsst/daf/butler/formatters/packages.py (no class)   0% 12 12 0   100% 0 0   0%
python/lsst/daf/butler/formatters/parquet.py ParquetFormatter   0% 66 66 0   0% 38 0   0%
python/lsst/daf/butler/formatters/parquet.py DataFrameSchema   0% 12 12 0   0% 2 0   0%
python/lsst/daf/butler/formatters/parquet.py ArrowAstropySchema   0% 25 25 0   0% 12 0   0%
python/lsst/daf/butler/formatters/parquet.py ArrowNumpySchema   0% 17 17 0   0% 4 0   0%
python/lsst/daf/butler/formatters/parquet.py (no class)   22% 433 337 10   0% 184 0   16%
python/lsst/daf/butler/formatters/pickle.py PickleFormatter   0% 6 6 0   100% 0 0   0%
python/lsst/daf/butler/formatters/pickle.py (no class)   0% 12 12 0   100% 0 0   0%
python/lsst/daf/butler/formatters/typeless.py TypelessFormatter   0% 31 31 0   0% 16 0   0%
python/lsst/daf/butler/formatters/typeless.py (no class)   100% 10 0 3   100% 0 0   100%
python/lsst/daf/butler/formatters/yaml.py YamlFormatter   0% 27 27 0   0% 12 0   0%
python/lsst/daf/butler/formatters/yaml.py (no class)   100% 15 0 0   100% 0 0   100%
python/lsst/daf/butler/json.py SupportsSimple   100% 1 0 0   50% 2 1   67%
python/lsst/daf/butler/json.py (no class)   52% 25 12 3   50% 2 1   52%
python/lsst/daf/butler/logging.py MDCDict   0% 4 4 0   100% 0 0   0%
python/lsst/daf/butler/logging.py ButlerMDC   0% 32 32 0   0% 12 0   0%
python/lsst/daf/butler/logging.py ButlerLogRecord   0% 19 19 0   0% 4 0   0%
python/lsst/daf/butler/logging.py _ButlerLogRecordsModelV1   0% 1 1 0   100% 0 0   0%
python/lsst/daf/butler/logging.py _ButlerLogRecordsModel   0% 1 1 0   100% 0 0   0%
python/lsst/daf/butler/logging.py ButlerLogRecords   4% 92 88 0   7% 54 4   5%
python/lsst/daf/butler/logging.py ButlerLogRecordHandler   0% 3 3 0   100% 0 0   0%
python/lsst/daf/butler/logging.py JsonLogFormatter   0% 2 2 0   100% 0 0   0%
python/lsst/daf/butler/logging.py (no class)   100% 116 0 0   100% 0 0   100%
python/lsst/daf/butler/mapping_factory.py MappingFactory   0% 58 58 0   0% 26 0   0%
python/lsst/daf/butler/mapping_factory.py (no class)   100% 18 0 0   100% 0 0   100%
python/lsst/daf/butler/name_shrinker.py NameShrinker   0% 21 21 0   0% 4 0   0%
python/lsst/daf/butler/name_shrinker.py (no class)   100% 11 0 0   100% 0 0   100%
python/lsst/daf/butler/nonempty_mapping.py Copyable   100% 1 0 0   50% 2 1   67%
python/lsst/daf/butler/nonempty_mapping.py NonemptyMapping   10% 20 18 0   14% 14 2   12%
python/lsst/daf/butler/nonempty_mapping.py (no class)   100% 18 0 0   100% 0 0   100%
python/lsst/daf/butler/persistence_context.py PersistenceContextVars   0% 22 22 0   0% 8 0   0%
python/lsst/daf/butler/persistence_context.py (no class)   100% 32 0 6   100% 0 0   100%
python/lsst/daf/butler/progress.py ProgressBar   0% 1 1 0   100% 0 0   0%
python/lsst/daf/butler/progress.py Progress   0% 82 82 0   0% 54 0   0%
python/lsst/daf/butler/progress.py ProgressHandler   100% 0 0 1   100% 0 0   100%
python/lsst/daf/butler/progress.py _NullProgressBar   0% 5 5 0   100% 0 0   0%
python/lsst/daf/butler/progress.py (no class)   100% 34 0 0   100% 0 0   100%
python/lsst/daf/butler/pydantic_utils.py DeferredValidation   19% 26 21 0   0% 8 0   15%
python/lsst/daf/butler/pydantic_utils.py (no class)   59% 66 27 2   0% 12 0   50%
python/lsst/daf/butler/queries/__init__.py (no class)   100% 6 0 0   100% 0 0   100%
python/lsst/daf/butler/queries/_base.py QueryBase   0% 4 4 1   100% 0 0   0%
python/lsst/daf/butler/queries/_base.py QueryResultsBase   0% 3 3 4   100% 0 0   0%
python/lsst/daf/butler/queries/_base.py (no class)   100% 29 0 0   100% 0 0   100%
python/lsst/daf/butler/queries/_data_coordinate_query_results.py DataCoordinateQueryResults   0% 13 13 0   0% 4 0   0%
python/lsst/daf/butler/queries/_data_coordinate_query_results.py (no class)   100% 20 0 2   100% 0 0   100%
python/lsst/daf/butler/queries/_dataset_query_results.py DatasetRefQueryResults   0% 18 18 0   0% 6 0   0%
python/lsst/daf/butler/queries/_dataset_query_results.py (no class)   100% 28 0 2   100% 0 0   100%
python/lsst/daf/butler/queries/_dimension_record_query_results.py DimensionRecordQueryResults   0% 14 14 0   0% 6 0   0%
python/lsst/daf/butler/queries/_dimension_record_query_results.py (no class)   100% 22 0 0   100% 0 0   100%
python/lsst/daf/butler/queries/_expression_strings.py _ColExpr   0% 1 1 0   100% 0 0   0%
python/lsst/daf/butler/queries/_expression_strings.py _Null   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/queries/_expression_strings.py _RangeLiteral   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/queries/_expression_strings.py _Sequence   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/queries/_expression_strings.py _ConversionVisitor   0% 119 119 0   0% 58 0   0%
python/lsst/daf/butler/queries/_expression_strings.py (no class)   50% 109 54 1   0% 34 0   38%
python/lsst/daf/butler/queries/_general_query_results.py GeneralResultTuple   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/queries/_general_query_results.py GeneralQueryResults   0% 72 72 0   0% 34 0   0%
python/lsst/daf/butler/queries/_general_query_results.py (no class)   100% 37 0 0   100% 0 0   100%
python/lsst/daf/butler/queries/_identifiers.py IdentifierContext   0% 7 7 0   0% 4 0   0%
python/lsst/daf/butler/queries/_identifiers.py (no class)   23% 74 57 0   0% 46 0   14%
python/lsst/daf/butler/queries/_query.py Query   0% 163 163 0   0% 98 0   0%
python/lsst/daf/butler/queries/_query.py (no class)   100% 48 0 0   100% 0 0   100%
python/lsst/daf/butler/queries/convert_args.py (no class)   24% 49 37 0   0% 24 0   16%
python/lsst/daf/butler/queries/driver.py DataCoordinateResultPage   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/queries/driver.py DimensionRecordResultPage   0% 6 6 0   0% 4 0   0%
python/lsst/daf/butler/queries/driver.py DatasetRefResultPage   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/queries/driver.py GeneralResultPage   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/queries/driver.py QueryDriver   100% 1 0 9   50% 2 1   67%
python/lsst/daf/butler/queries/driver.py (no class)   100% 59 0 0   50% 6 3   95%
python/lsst/daf/butler/queries/expression_factory.py ExpressionProxy   0% 6 6 1   0% 2 0   0%
python/lsst/daf/butler/queries/expression_factory.py ScalarExpressionProxy   0% 24 24 0   100% 0 0   0%
python/lsst/daf/butler/queries/expression_factory.py ResolvedScalarExpressionProxy   0% 2 2 0   100% 0 0   0%
python/lsst/daf/butler/queries/expression_factory.py BooleanScalarExpressionProxy   0% 6 6 0   0% 2 0   0%
python/lsst/daf/butler/queries/expression_factory.py TimespanProxy   0% 5 5 0   100% 0 0   0%
python/lsst/daf/butler/queries/expression_factory.py RegionProxy   0% 3 3 0   100% 0 0   0%
python/lsst/daf/butler/queries/expression_factory.py DimensionElementProxy   0% 29 29 0   0% 8 0   0%
python/lsst/daf/butler/queries/expression_factory.py DatasetTypeProxy   0% 14 14 0   0% 2 0   0%
python/lsst/daf/butler/queries/expression_factory.py ExpressionFactory   0% 20 20 1   0% 4 0   0%
python/lsst/daf/butler/queries/expression_factory.py (no class)   100% 99 0 3   100% 0 0   100%
python/lsst/daf/butler/queries/expressions/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/queries/expressions/categorize.py ExpressionConstant   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/queries/expressions/categorize.py (no class)   64% 11 4 0   100% 0 0   64%
python/lsst/daf/butler/queries/expressions/parser/__init__.py (no class)   100% 5 0 0   100% 0 0   100%
python/lsst/daf/butler/queries/expressions/parser/exprTree.py Node   0% 1 1 0   100% 0 0   0%
python/lsst/daf/butler/queries/expressions/parser/exprTree.py LiteralNode   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/queries/expressions/parser/exprTree.py BinaryOp   0% 8 8 0   100% 0 0   0%
python/lsst/daf/butler/queries/expressions/parser/exprTree.py UnaryOp   0% 6 6 0   100% 0 0   0%
python/lsst/daf/butler/queries/expressions/parser/exprTree.py StringLiteral   0% 4 4 0   100% 0 0   0%
python/lsst/daf/butler/queries/expressions/parser/exprTree.py TimeLiteral   0% 4 4 0   100% 0 0   0%
python/lsst/daf/butler/queries/expressions/parser/exprTree.py NumericLiteral   0% 4 4 0   100% 0 0   0%
python/lsst/daf/butler/queries/expressions/parser/exprTree.py UuidLiteral   0% 4 4 0   100% 0 0   0%
python/lsst/daf/butler/queries/expressions/parser/exprTree.py Identifier   0% 4 4 0   100% 0 0   0%
python/lsst/daf/butler/queries/expressions/parser/exprTree.py BindName   0% 4 4 0   100% 0 0   0%
python/lsst/daf/butler/queries/expressions/parser/exprTree.py RangeLiteral   0% 7 7 0   100% 0 0   0%
python/lsst/daf/butler/queries/expressions/parser/exprTree.py IsIn   0% 16 16 0   0% 6 0   0%
python/lsst/daf/butler/queries/expressions/parser/exprTree.py Parens   0% 5 5 0   100% 0 0   0%
python/lsst/daf/butler/queries/expressions/parser/exprTree.py TupleNode   0% 6 6 0   100% 0 0   0%
python/lsst/daf/butler/queries/expressions/parser/exprTree.py FunctionCall   0% 7 7 0   100% 0 0   0%
python/lsst/daf/butler/queries/expressions/parser/exprTree.py PointNode   0% 7 7 0   100% 0 0   0%
python/lsst/daf/butler/queries/expressions/parser/exprTree.py CircleNode   0% 9 9 0   100% 0 0   0%
python/lsst/daf/butler/queries/expressions/parser/exprTree.py BoxNode   0% 11 11 0   100% 0 0   0%
python/lsst/daf/butler/queries/expressions/parser/exprTree.py PolygonNode   0% 6 6 0   100% 0 0   0%
python/lsst/daf/butler/queries/expressions/parser/exprTree.py RegionNode   0% 5 5 0   100% 0 0   0%
python/lsst/daf/butler/queries/expressions/parser/exprTree.py GlobNode   0% 7 7 0   100% 0 0   0%
python/lsst/daf/butler/queries/expressions/parser/exprTree.py (no class)   61% 144 56 3   0% 52 0   45%
python/lsst/daf/butler/queries/expressions/parser/parser.py (no class)   67% 6 2 0   100% 0 0   67%
python/lsst/daf/butler/queries/expressions/parser/parserLex.py LexToken   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/queries/expressions/parser/parserLex.py ParserLexError   0% 5 5 0   100% 0 0   0%
python/lsst/daf/butler/queries/expressions/parser/parserLex.py ParserLex   0% 31 31 0   0% 4 0   0%
python/lsst/daf/butler/queries/expressions/parser/parserLex.py (no class)   100% 45 0 0   100% 0 0   100%
python/lsst/daf/butler/queries/expressions/parser/parserYacc.py YaccProduction   100% 5 0 0   50% 10 5   67%
python/lsst/daf/butler/queries/expressions/parser/parserYacc.py ParserYaccError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/queries/expressions/parser/parserYacc.py ParseError   0% 12 12 0   0% 2 0   0%
python/lsst/daf/butler/queries/expressions/parser/parserYacc.py ParserEOFError   0% 1 1 0   100% 0 0   0%
python/lsst/daf/butler/queries/expressions/parser/parserYacc.py ParserYacc   0% 59 59 0   0% 22 0   0%
python/lsst/daf/butler/queries/expressions/parser/parserYacc.py (no class)   64% 122 44 0   0% 32 0   51%
python/lsst/daf/butler/queries/expressions/parser/ply/__init__.py (no class)   100% 2 0 0   100% 0 0   100%
python/lsst/daf/butler/queries/expressions/parser/ply/lex.py LexError   0% 2 2 0   100% 0 0   0%
python/lsst/daf/butler/queries/expressions/parser/ply/lex.py LexToken   0% 2 2 0   100% 0 0   0%
python/lsst/daf/butler/queries/expressions/parser/ply/lex.py PlyLogger   0% 4 4 0   100% 0 0   0%
python/lsst/daf/butler/queries/expressions/parser/ply/lex.py NullLogger   0% 2 2 0   100% 0 0   0%
python/lsst/daf/butler/queries/expressions/parser/ply/lex.py Lexer   0% 198 198 0   0% 70 0   0%
python/lsst/daf/butler/queries/expressions/parser/ply/lex.py LexerReflect   0% 218 218 0   0% 114 0   0%
python/lsst/daf/butler/queries/expressions/parser/ply/lex.py (no class)   26% 266 196 0   1% 118 1   18%
python/lsst/daf/butler/queries/expressions/parser/ply/yacc.py PlyLogger   0% 4 4 0   100% 0 0   0%
python/lsst/daf/butler/queries/expressions/parser/ply/yacc.py NullLogger   0% 2 2 0   100% 0 0   0%
python/lsst/daf/butler/queries/expressions/parser/ply/yacc.py YaccError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/queries/expressions/parser/ply/yacc.py YaccSymbol   0% 2 2 0   100% 0 0   0%
python/lsst/daf/butler/queries/expressions/parser/ply/yacc.py YaccProduction   0% 23 23 0   0% 4 0   0%
python/lsst/daf/butler/queries/expressions/parser/ply/yacc.py LRParser   0% 540 540 0   0% 196 0   0%
python/lsst/daf/butler/queries/expressions/parser/ply/yacc.py Production   0% 37 37 0   0% 10 0   0%
python/lsst/daf/butler/queries/expressions/parser/ply/yacc.py MiniProduction   0% 11 11 0   0% 2 0   0%
python/lsst/daf/butler/queries/expressions/parser/ply/yacc.py LRItem   0% 14 14 0   0% 2 0   0%
python/lsst/daf/butler/queries/expressions/parser/ply/yacc.py GrammarError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/queries/expressions/parser/ply/yacc.py Grammar   0% 228 228 0   0% 154 0   0%
python/lsst/daf/butler/queries/expressions/parser/ply/yacc.py VersionError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/queries/expressions/parser/ply/yacc.py LRTable   0% 39 39 0   0% 14 0   0%
python/lsst/daf/butler/queries/expressions/parser/ply/yacc.py LALRError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/queries/expressions/parser/ply/yacc.py LRGeneratedTable   0% 402 402 0   0% 236 0   0%
python/lsst/daf/butler/queries/expressions/parser/ply/yacc.py ParserReflect   0% 178 178 0   0% 94 0   0%
python/lsst/daf/butler/queries/expressions/parser/ply/yacc.py (no class)   34% 449 295 0   1% 158 1   26%
python/lsst/daf/butler/queries/expressions/parser/treeVisitor.py TreeVisitor   0% 1 1 0   100% 0 0   0%
python/lsst/daf/butler/queries/expressions/parser/treeVisitor.py (no class)   100% 44 0 3   100% 0 0   100%
python/lsst/daf/butler/queries/overlaps.py _NaiveDisjointSet   0% 19 19 0   0% 10 0   0%
python/lsst/daf/butler/queries/overlaps.py CalibrationTemporalEndpoint   0% 3 3 0   100% 0 0   0%
python/lsst/daf/butler/queries/overlaps.py CalibrationTemporalFamily   0% 4 4 0   100% 0 0   0%
python/lsst/daf/butler/queries/overlaps.py OverlapsVisitor   0% 76 76 3   0% 40 0   0%
python/lsst/daf/butler/queries/overlaps.py (no class)   100% 41 0 0   100% 0 0   100%
python/lsst/daf/butler/queries/predicate_constraints_summary.py PredicateConstraintsSummary   0% 17 17 0   0% 8 0   0%
python/lsst/daf/butler/queries/predicate_constraints_summary.py _DataIdExtractionVisitor   0% 36 36 1   0% 18 0   0%
python/lsst/daf/butler/queries/predicate_constraints_summary.py (no class)   93% 28 2 0   100% 0 0   93%
python/lsst/daf/butler/queries/result_specs.py ResultSpecBase   0% 19 19 1   0% 14 0   0%
python/lsst/daf/butler/queries/result_specs.py DataCoordinateResultSpec   0% 4 4 0   0% 2 0   0%
python/lsst/daf/butler/queries/result_specs.py DimensionRecordResultSpec   0% 6 6 0   0% 2 0   0%
python/lsst/daf/butler/queries/result_specs.py DatasetRefResultSpec   0% 6 6 0   0% 2 0   0%
python/lsst/daf/butler/queries/result_specs.py GeneralResultSpec   0% 27 27 0   0% 24 0   0%
python/lsst/daf/butler/queries/result_specs.py SerializedResultSpec   0% 1 1 0   100% 0 0   0%
python/lsst/daf/butler/queries/result_specs.py (no class)   95% 78 4 0   0% 4 0   90%
python/lsst/daf/butler/queries/tree/__init__.py (no class)   100% 12 0 0   100% 0 0   100%
python/lsst/daf/butler/queries/tree/_base.py AnyDatasetType   0% 2 2 0   100% 0 0   0%
python/lsst/daf/butler/queries/tree/_base.py QueryTreeBase   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/queries/tree/_base.py ColumnExpressionBase   0% 1 1 4   100% 0 0   0%
python/lsst/daf/butler/queries/tree/_base.py ColumnLiteralBase   0% 5 5 0   100% 0 0   0%
python/lsst/daf/butler/queries/tree/_base.py (no class)   98% 50 1 4   100% 0 0   98%
python/lsst/daf/butler/queries/tree/_column_expression.py UnaryExpression   0% 26 26 1   0% 14 0   0%
python/lsst/daf/butler/queries/tree/_column_expression.py BinaryExpression   0% 23 23 0   0% 10 0   0%
python/lsst/daf/butler/queries/tree/_column_expression.py Reversed   0% 5 5 0   100% 0 0   0%
python/lsst/daf/butler/queries/tree/_column_expression.py TimespanAndDatetime   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/queries/tree/_column_expression.py (no class)   82% 82 15 2   0% 10 0   73%
python/lsst/daf/butler/queries/tree/_column_literal.py IntColumnLiteral   0% 2 2 0   100% 0 0   0%
python/lsst/daf/butler/queries/tree/_column_literal.py StringColumnLiteral   0% 2 2 0   100% 0 0   0%
python/lsst/daf/butler/queries/tree/_column_literal.py FloatColumnLiteral   0% 2 2 0   100% 0 0   0%
python/lsst/daf/butler/queries/tree/_column_literal.py HashColumnLiteral   0% 3 3 0   100% 0 0   0%
python/lsst/daf/butler/queries/tree/_column_literal.py UUIDColumnLiteral   0% 2 2 0   100% 0 0   0%
python/lsst/daf/butler/queries/tree/_column_literal.py DateTimeColumnLiteral   0% 5 5 0   100% 0 0   0%
python/lsst/daf/butler/queries/tree/_column_literal.py TimespanColumnLiteral   0% 3 3 0   100% 0 0   0%
python/lsst/daf/butler/queries/tree/_column_literal.py RegionColumnLiteral   0% 3 3 0   100% 0 0   0%
python/lsst/daf/butler/queries/tree/_column_literal.py (no class)   73% 129 35 0   0% 26 0   61%
python/lsst/daf/butler/queries/tree/_column_reference.py DimensionKeyReference   0% 6 6 0   0% 2 0   0%
python/lsst/daf/butler/queries/tree/_column_reference.py DimensionFieldReference   0% 10 10 0   0% 4 0   0%
python/lsst/daf/butler/queries/tree/_column_reference.py DatasetFieldReference   0% 17 17 1   0% 10 0   0%
python/lsst/daf/butler/queries/tree/_column_reference.py (no class)   100% 52 0 3   100% 0 0   100%
python/lsst/daf/butler/queries/tree/_column_set.py ColumnSet   0% 75 75 1   0% 40 0   0%
python/lsst/daf/butler/queries/tree/_column_set.py ResultColumn   0% 1 1 0   100% 0 0   0%
python/lsst/daf/butler/queries/tree/_column_set.py ColumnOrder   0% 8 8 0   100% 0 0   0%
python/lsst/daf/butler/queries/tree/_column_set.py (no class)   100% 47 0 0   100% 0 0   100%
python/lsst/daf/butler/queries/tree/_predicate.py PredicateLeafBase   0% 1 1 3   100% 0 0   0%
python/lsst/daf/butler/queries/tree/_predicate.py Predicate   2% 53 52 0   0% 30 0   1%
python/lsst/daf/butler/queries/tree/_predicate.py LogicalNot   0% 5 5 0   100% 0 0   0%
python/lsst/daf/butler/queries/tree/_predicate.py BooleanWrapper   0% 4 4 0   100% 0 0   0%
python/lsst/daf/butler/queries/tree/_predicate.py IsNull   0% 4 4 0   100% 0 0   0%
python/lsst/daf/butler/queries/tree/_predicate.py Comparison   0% 27 27 0   0% 16 0   0%
python/lsst/daf/butler/queries/tree/_predicate.py InContainer   0% 13 13 0   0% 8 0   0%
python/lsst/daf/butler/queries/tree/_predicate.py InRange   0% 14 14 0   0% 8 0   0%
python/lsst/daf/butler/queries/tree/_predicate.py InQuery   0% 16 16 0   0% 8 0   0%
python/lsst/daf/butler/queries/tree/_predicate.py (no class)   100% 147 0 4   100% 0 0   100%
python/lsst/daf/butler/queries/tree/_query_tree.py DatasetSearch   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/queries/tree/_query_tree.py QueryTree   0% 51 51 0   0% 24 0   0%
python/lsst/daf/butler/queries/tree/_query_tree.py SerializedQueryTree   0% 1 1 0   100% 0 0   0%
python/lsst/daf/butler/queries/tree/_query_tree.py (no class)   98% 52 1 0   100% 0 0   98%
python/lsst/daf/butler/queries/visitors.py PredicateVisitFlags   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/queries/visitors.py ColumnExpressionVisitor   100% 0 0 7   100% 0 0   100%
python/lsst/daf/butler/queries/visitors.py PredicateVisitor   0% 9 9 9   0% 4 0   0%
python/lsst/daf/butler/queries/visitors.py SimplePredicateVisitor   0% 18 18 0   0% 6 0   0%
python/lsst/daf/butler/queries/visitors.py (no class)   100% 64 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/__init__.py (no class)   100% 10 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/_caching_context.py CachingContext   0% 6 6 0   100% 0 0   0%
python/lsst/daf/butler/registry/_caching_context.py _CacheToggle   0% 11 11 0   0% 4 0   0%
python/lsst/daf/butler/registry/_caching_context.py (no class)   100% 20 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/_collection_record_cache.py CollectionRecordCache   0% 25 25 0   0% 8 0   0%
python/lsst/daf/butler/registry/_collection_record_cache.py (no class)   100% 15 0 2   100% 0 0   100%
python/lsst/daf/butler/registry/_collection_summary.py CollectionSummary   0% 40 40 0   0% 26 0   0%
python/lsst/daf/butler/registry/_collection_summary.py SerializedCollectionSummary   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/_collection_summary.py (no class)   97% 32 1 0   100% 0 0   97%
python/lsst/daf/butler/registry/_collection_summary_cache.py CollectionSummaryCache   0% 9 9 0   0% 4 0   0%
python/lsst/daf/butler/registry/_collection_summary_cache.py (no class)   100% 9 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/_config.py RegistryConfig   0% 21 21 0   0% 8 0   0%
python/lsst/daf/butler/registry/_config.py (no class)   100% 20 0 3   100% 0 0   100%
python/lsst/daf/butler/registry/_defaults.py RegistryDefaults   0% 54 54 0   0% 32 0   0%
python/lsst/daf/butler/registry/_defaults.py (no class)   100% 28 0 3   100% 0 0   100%
python/lsst/daf/butler/registry/_exceptions.py ArgumentError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/_exceptions.py DatasetTypeExpressionError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/_exceptions.py CollectionExpressionError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/_exceptions.py NoDefaultCollectionError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/_exceptions.py UserExpressionError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/_exceptions.py UserExpressionSyntaxError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/_exceptions.py ConflictingDefinitionError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/_exceptions.py OrphanedRecordError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/_exceptions.py UnsupportedIdGeneratorError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/_exceptions.py MissingSpatialOverlapError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/_exceptions.py RegistryConsistencyError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/_exceptions.py (no class)   100% 13 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/_registry.py Registry   0% 2 2 43   100% 0 0   0%
python/lsst/daf/butler/registry/_registry.py (no class)   100% 116 0 2   100% 0 0   100%
python/lsst/daf/butler/registry/_registry_base.py RegistryBase   0% 52 52 0   0% 28 0   0%
python/lsst/daf/butler/registry/_registry_base.py (no class)   100% 26 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/_registry_factory.py _RegistryFactory   0% 11 11 0   0% 6 0   0%
python/lsst/daf/butler/registry/_registry_factory.py (no class)   100% 13 0 2   100% 0 0   100%
python/lsst/daf/butler/registry/attributes.py DefaultButlerAttributeManager   0% 32 32 0   0% 8 0   0%
python/lsst/daf/butler/registry/attributes.py (no class)   100% 22 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/bridge/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/bridge/ephemeral.py EphemeralDatastoreRegistryBridge   0% 31 31 0   0% 14 0   0%
python/lsst/daf/butler/registry/bridge/ephemeral.py (no class)   100% 18 0 3   100% 0 0   100%
python/lsst/daf/butler/registry/bridge/monolithic.py MonolithicDatastoreRegistryBridge   0% 58 58 0   0% 18 0   0%
python/lsst/daf/butler/registry/bridge/monolithic.py MonolithicDatastoreRegistryBridgeManager   0% 20 20 0   0% 8 0   0%
python/lsst/daf/butler/registry/bridge/monolithic.py (no class)   84% 44 7 4   100% 0 0   84%
python/lsst/daf/butler/registry/collections/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/collections/_base.py CollectionTablesTuple   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/collections/_base.py DefaultCollectionManager   0% 222 222 3   0% 120 0   0%
python/lsst/daf/butler/registry/collections/_base.py _CollectionChainModificationContext   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/collections/_base.py (no class)   0% 71 71 3   0% 2 0   0%
python/lsst/daf/butler/registry/collections/nameKey.py NameKeyCollectionManager   0% 81 81 0   0% 22 0   0%
python/lsst/daf/butler/registry/collections/nameKey.py (no class)   0% 39 39 3   100% 0 0   0%
python/lsst/daf/butler/registry/collections/synthIntKey.py SynthIntKeyCollectionManager   0% 88 88 0   0% 22 0   0%
python/lsst/daf/butler/registry/collections/synthIntKey.py (no class)   0% 40 40 3   100% 0 0   0%
python/lsst/daf/butler/registry/connectionString.py ConnectionStringFactory   0% 17 17 0   0% 8 0   0%
python/lsst/daf/butler/registry/connectionString.py (no class)   100% 9 0 2   100% 0 0   100%
python/lsst/daf/butler/registry/databases/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/databases/postgresql.py PostgresqlDatabase   0% 104 104 0   0% 42 0   0%
python/lsst/daf/butler/registry/databases/postgresql.py _RangeTimespanType   0% 20 20 0   0% 10 0   0%
python/lsst/daf/butler/registry/databases/postgresql.py _RangeTimespanRepresentation   0% 44 44 0   0% 24 0   0%
python/lsst/daf/butler/registry/databases/postgresql.py (no class)   94% 84 5 0   0% 2 0   92%
python/lsst/daf/butler/registry/databases/sqlite.py SqliteDatabase   0% 128 128 3   0% 56 0   0%
python/lsst/daf/butler/registry/databases/sqlite.py (no class)   72% 64 18 0   0% 10 0   62%
python/lsst/daf/butler/registry/datasets/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/datasets/byDimensions/__init__.py (no class)   0% 1 1 0   100% 0 0   0%
python/lsst/daf/butler/registry/datasets/byDimensions/_dataset_type_cache.py DatasetTypeCache   0% 33 33 0   0% 8 0   0%
python/lsst/daf/butler/registry/datasets/byDimensions/_dataset_type_cache.py (no class)   0% 19 19 0   100% 0 0   0%
python/lsst/daf/butler/registry/datasets/byDimensions/_manager.py _DatasetTypeRecord   0% 8 8 0   0% 4 0   0%
python/lsst/daf/butler/registry/datasets/byDimensions/_manager.py _DatasetRecordStorage   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/datasets/byDimensions/_manager.py _DatasetTypeOverride   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/datasets/byDimensions/_manager.py ByDimensionsDatasetRecordStorageManagerUUID   0% 462 462 1   0% 200 0   0%
python/lsst/daf/butler/registry/datasets/byDimensions/_manager.py (no class)   0% 112 112 2   0% 4 0   0%
python/lsst/daf/butler/registry/datasets/byDimensions/summaries.py CollectionSummaryTables   0% 13 13 0   0% 2 0   0%
python/lsst/daf/butler/registry/datasets/byDimensions/summaries.py CollectionSummaryManager   0% 75 75 0   0% 38 0   0%
python/lsst/daf/butler/registry/datasets/byDimensions/summaries.py (no class)   0% 31 31 0   100% 0 0   0%
python/lsst/daf/butler/registry/datasets/byDimensions/tables.py MissingDatabaseTableError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/datasets/byDimensions/tables.py StaticDatasetTableSpecTuple   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/datasets/byDimensions/tables.py StaticDatasetTablesTuple   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/datasets/byDimensions/tables.py DynamicTables   0% 30 30 0   0% 12 0   0%
python/lsst/daf/butler/registry/datasets/byDimensions/tables.py (no class)   0% 88 88 0   0% 20 0   0%
python/lsst/daf/butler/registry/dimensions/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/dimensions/static.py StaticDimensionRecordStorageManager   0% 192 192 0   0% 106 0   0%
python/lsst/daf/butler/registry/dimensions/static.py _DimensionRecordDatabaseRows   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/dimensions/static.py _DimensionGroupStorage   0% 41 41 0   0% 10 0   0%
python/lsst/daf/butler/registry/dimensions/static.py _CommonSkyPixMediatedOverlapsVisitor   0% 60 60 0   0% 26 0   0%
python/lsst/daf/butler/registry/dimensions/static.py (no class)   0% 68 68 0   100% 0 0   0%
python/lsst/daf/butler/registry/expand_data_ids.py (no class)   33% 21 14 0   0% 10 0   23%
python/lsst/daf/butler/registry/interfaces/__init__.py (no class)   100% 9 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/interfaces/_attributes.py ButlerAttributeExistsError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/interfaces/_attributes.py ButlerAttributeManager   0% 1 1 7   100% 0 0   0%
python/lsst/daf/butler/registry/interfaces/_attributes.py (no class)   100% 24 0 2   100% 0 0   100%
python/lsst/daf/butler/registry/interfaces/_bridge.py FakeDatasetRef   0% 10 10 0   100% 0 0   0%
python/lsst/daf/butler/registry/interfaces/_bridge.py DatastoreRegistryBridge   0% 1 1 6   100% 0 0   0%
python/lsst/daf/butler/registry/interfaces/_bridge.py DatastoreRegistryBridgeManager   0% 3 3 5   100% 0 0   0%
python/lsst/daf/butler/registry/interfaces/_bridge.py (no class)   100% 58 0 9   100% 0 0   100%
python/lsst/daf/butler/registry/interfaces/_collections.py CollectionRecord   0% 11 11 0   100% 0 0   0%
python/lsst/daf/butler/registry/interfaces/_collections.py RunRecord   0% 6 6 0   0% 2 0   0%
python/lsst/daf/butler/registry/interfaces/_collections.py ChainedCollectionRecord   0% 3 3 0   100% 0 0   0%
python/lsst/daf/butler/registry/interfaces/_collections.py CollectionManager   0% 1 1 22   100% 0 0   0%
python/lsst/daf/butler/registry/interfaces/_collections.py JoinedCollectionsTable   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/interfaces/_collections.py (no class)   100% 94 0 3   100% 0 0   100%
python/lsst/daf/butler/registry/interfaces/_database.py DatabaseInsertMode   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/interfaces/_database.py ReadOnlyDatabaseError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/interfaces/_database.py DatabaseConflictError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/interfaces/_database.py SchemaAlreadyDefinedError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/interfaces/_database.py StaticTablesContext   0% 9 9 0   100% 0 0   0%
python/lsst/daf/butler/registry/interfaces/_database.py Database   0% 302 302 13   0% 136 0   0%
python/lsst/daf/butler/registry/interfaces/_database.py DatabaseMetadata   0% 19 19 0   0% 6 0   0%
python/lsst/daf/butler/registry/interfaces/_database.py (no class)   98% 132 3 0   0% 2 0   96%
python/lsst/daf/butler/registry/interfaces/_database_explain.py _Explain   0% 1 1 0   100% 0 0   0%
python/lsst/daf/butler/registry/interfaces/_database_explain.py (no class)   56% 18 8 0   0% 2 0   50%
python/lsst/daf/butler/registry/interfaces/_datasets.py DatasetRecordStorageManager   0% 13 13 23   0% 6 0   0%
python/lsst/daf/butler/registry/interfaces/_datasets.py (no class)   100% 65 0 7   100% 0 0   100%
python/lsst/daf/butler/registry/interfaces/_dimensions.py DimensionRecordStorageManager   0% 2 2 10   100% 0 0   0%
python/lsst/daf/butler/registry/interfaces/_dimensions.py (no class)   100% 32 0 4   100% 0 0   100%
python/lsst/daf/butler/registry/interfaces/_obscore.py ObsCoreTableManager   0% 2 2 8   100% 0 0   0%
python/lsst/daf/butler/registry/interfaces/_obscore.py (no class)   100% 30 0 9   100% 0 0   100%
python/lsst/daf/butler/registry/interfaces/_opaque.py OpaqueTableStorage   0% 1 1 6   100% 0 0   0%
python/lsst/daf/butler/registry/interfaces/_opaque.py OpaqueTableStorageManager   0% 5 5 4   0% 2 0   0%
python/lsst/daf/butler/registry/interfaces/_opaque.py (no class)   100% 36 0 2   100% 0 0   100%
python/lsst/daf/butler/registry/interfaces/_versioning.py IncompatibleVersionError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/interfaces/_versioning.py VersionTuple   0% 13 13 0   0% 6 0   0%
python/lsst/daf/butler/registry/interfaces/_versioning.py VersionedExtension   0% 22 22 2   0% 18 0   0%
python/lsst/daf/butler/registry/interfaces/_versioning.py (no class)   100% 30 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/managers.py _GenericRegistryManagers   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/managers.py RegistryManagerTypes   0% 69 69 0   0% 32 0   0%
python/lsst/daf/butler/registry/managers.py RegistryManagerInstances   0% 31 31 0   0% 6 0   0%
python/lsst/daf/butler/registry/managers.py (no class)   100% 62 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/nameShrinker.py (no class)   0% 2 2 0   100% 0 0   0%
python/lsst/daf/butler/registry/obscore/__init__.py (no class)   100% 5 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/obscore/_config.py ExtraColumnType   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/obscore/_config.py ExtraColumnConfig   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/obscore/_config.py DatasetTypeConfig   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/obscore/_config.py SpatialPluginConfig   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/obscore/_config.py ObsCoreConfig   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/obscore/_config.py ConfigCollectionType   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/obscore/_config.py ObsCoreManagerConfig   0% 5 5 0   0% 4 0   0%
python/lsst/daf/butler/registry/obscore/_config.py (no class)   100% 83 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/obscore/_manager.py _ExposureRegionFactory   0% 21 21 0   0% 10 0   0%
python/lsst/daf/butler/registry/obscore/_manager.py ObsCoreLiveTableManager   0% 115 115 1   0% 56 0   0%
python/lsst/daf/butler/registry/obscore/_manager.py (no class)   100% 41 0 2   100% 0 0   100%
python/lsst/daf/butler/registry/obscore/_records.py DerivedRegionFactory   100% 0 0 1   100% 0 0   100%
python/lsst/daf/butler/registry/obscore/_records.py RecordFactory   0% 87 87 2   0% 36 0   0%
python/lsst/daf/butler/registry/obscore/_records.py DafButlerRecordFactory   0% 56 56 0   0% 32 0   0%
python/lsst/daf/butler/registry/obscore/_records.py (no class)   100% 39 0 6   100% 0 0   100%
python/lsst/daf/butler/registry/obscore/_schema.py ObsCoreSchema   0% 39 39 0   0% 24 0   0%
python/lsst/daf/butler/registry/obscore/_schema.py (no class)   100% 20 0 2   100% 0 0   100%
python/lsst/daf/butler/registry/obscore/_spatial.py MissingDatabaseError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/obscore/_spatial.py RegionTypeError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/obscore/_spatial.py RegionTypeWarning   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/obscore/_spatial.py SpatialObsCorePlugin   0% 15 15 3   0% 8 0   0%
python/lsst/daf/butler/registry/obscore/_spatial.py (no class)   100% 20 0 5   100% 0 0   100%
python/lsst/daf/butler/registry/obscore/default_spatial.py DefaultSpatialObsCorePlugin   0% 19 19 0   0% 6 0   0%
python/lsst/daf/butler/registry/obscore/default_spatial.py (no class)   0% 15 15 3   100% 0 0   0%
python/lsst/daf/butler/registry/obscore/pgsphere.py PgSpherePoint   0% 8 8 0   0% 2 0   0%
python/lsst/daf/butler/registry/obscore/pgsphere.py PgSpherePolygon   0% 11 11 0   0% 4 0   0%
python/lsst/daf/butler/registry/obscore/pgsphere.py PgSphereObsCorePlugin   0% 25 25 0   0% 10 0   0%
python/lsst/daf/butler/registry/obscore/pgsphere.py (no class)   0% 26 26 3   100% 0 0   0%
python/lsst/daf/butler/registry/opaque.py ByNameOpaqueTableStorage   0% 34 34 0   0% 16 0   0%
python/lsst/daf/butler/registry/opaque.py ByNameOpaqueTableStorageManager   0% 20 20 0   0% 4 0   0%
python/lsst/daf/butler/registry/opaque.py (no class)   100% 29 0 2   100% 0 0   100%
python/lsst/daf/butler/registry/queries/__init__.py (no class)   100% 1 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/queries/_query_common.py CommonQueryArguments   0% 2 2 0   100% 0 0   0%
python/lsst/daf/butler/registry/queries/_query_common.py LegacyQueryResultsMixin   0% 33 33 1   0% 10 0   0%
python/lsst/daf/butler/registry/queries/_query_common.py (no class)   81% 47 9 0   0% 6 0   72%
python/lsst/daf/butler/registry/queries/_query_data_coordinates.py QueryDriverDataCoordinateQueryResults   0% 41 41 0   0% 16 0   0%
python/lsst/daf/butler/registry/queries/_query_data_coordinates.py (no class)   100% 28 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/queries/_query_datasets.py QueryDriverDatasetRefQueryResults   0% 29 29 0   0% 8 0   0%
python/lsst/daf/butler/registry/queries/_query_datasets.py (no class)   100% 21 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/queries/_query_dimension_records.py QueryDriverDimensionRecordQueryResults   0% 9 9 0   100% 0 0   0%
python/lsst/daf/butler/registry/queries/_query_dimension_records.py (no class)   100% 14 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/queries/_results.py LimitedQueryResultsBase   100% 0 0 3   100% 0 0   100%
python/lsst/daf/butler/registry/queries/_results.py QueryResultsBase   100% 0 0 2   100% 0 0   100%
python/lsst/daf/butler/registry/queries/_results.py DataCoordinateQueryResults   100% 0 0 5   100% 0 0   100%
python/lsst/daf/butler/registry/queries/_results.py DatasetQueryResults   0% 3 3 2   0% 2 0   0%
python/lsst/daf/butler/registry/queries/_results.py ParentDatasetQueryResults   100% 0 0 2   100% 0 0   100%
python/lsst/daf/butler/registry/queries/_results.py ChainedDatasetQueryResults   0% 12 12 0   0% 2 0   0%
python/lsst/daf/butler/registry/queries/_results.py DimensionRecordQueryResults   100% 0 0 2   100% 0 0   100%
python/lsst/daf/butler/registry/queries/_results.py (no class)   100% 62 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/sql_registry.py SqlRegistry   0% 289 289 0   0% 122 0   0%
python/lsst/daf/butler/registry/sql_registry.py (no class)   100% 119 0 5   100% 0 0   100%
python/lsst/daf/butler/registry/tests/__init__.py (no class)   100% 2 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/tests/_database.py DatabaseTests   0% 462 462 4   0% 48 0   0%
python/lsst/daf/butler/registry/tests/_database.py (no class)   88% 60 7 0   100% 0 0   88%
python/lsst/daf/butler/registry/tests/_registry.py RegistryTests   0% 1583 1583 1   0% 170 0   0%
python/lsst/daf/butler/registry/tests/_registry.py RegistryTests.testCalibrationCollections.Ambiguous   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/tests/_registry.py (no class)   98% 116 2 0   100% 0 0   98%
python/lsst/daf/butler/registry/versions.py IncompatibleVersionError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/versions.py MissingManagerError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/versions.py ManagerMismatchError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/registry/versions.py ButlerVersionsManager   0% 62 62 0   0% 34 0   0%
python/lsst/daf/butler/registry/versions.py (no class)   100% 28 0 2   100% 0 0   100%
python/lsst/daf/butler/registry/wildcards.py CategorizedWildcard   0% 86 86 0   0% 50 0   0%
python/lsst/daf/butler/registry/wildcards.py CollectionWildcard   0% 23 23 0   0% 14 0   0%
python/lsst/daf/butler/registry/wildcards.py DatasetTypeWildcard   0% 24 24 0   0% 16 0   0%
python/lsst/daf/butler/registry/wildcards.py (no class)   100% 46 0 0   100% 0 0   100%
python/lsst/daf/butler/remote_butler/__init__.py (no class)   0% 2 2 0   100% 0 0   0%
python/lsst/daf/butler/remote_butler/_collection_args.py DatasetTypeSearch   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/remote_butler/_collection_args.py (no class)   0% 41 41 0   0% 20 0   0%
python/lsst/daf/butler/remote_butler/_config.py RemoteButlerConfigModel   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/remote_butler/_config.py RemoteButlerOptionsModel   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/remote_butler/_config.py (no class)   0% 9 9 0   100% 0 0   0%
python/lsst/daf/butler/remote_butler/_defaults.py DefaultsHolder   0% 3 3 0   100% 0 0   0%
python/lsst/daf/butler/remote_butler/_defaults.py (no class)   0% 5 5 0   100% 0 0   0%
python/lsst/daf/butler/remote_butler/_errors.py (no class)   0% 7 7 0   100% 0 0   0%
python/lsst/daf/butler/remote_butler/_factory.py RemoteButlerFactory   0% 26 26 0   0% 14 0   0%
python/lsst/daf/butler/remote_butler/_factory.py (no class)   0% 22 22 0   100% 0 0   0%
python/lsst/daf/butler/remote_butler/_get.py (no class)   0% 29 29 0   0% 8 0   0%
python/lsst/daf/butler/remote_butler/_http_connection.py RemoteButlerHttpConnection   0% 58 58 0   0% 10 0   0%
python/lsst/daf/butler/remote_butler/_http_connection.py _Retry   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/remote_butler/_http_connection.py ButlerServerError   0% 3 3 0   100% 0 0   0%
python/lsst/daf/butler/remote_butler/_http_connection.py _Request   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/remote_butler/_http_connection.py (no class)   0% 61 61 0   0% 4 0   0%
python/lsst/daf/butler/remote_butler/_query_driver.py RemoteQueryDriver   0% 50 50 0   0% 12 0   0%
python/lsst/daf/butler/remote_butler/_query_driver.py (no class)   0% 66 66 1   0% 20 0   0%
python/lsst/daf/butler/remote_butler/_query_results.py (no class)   0% 22 22 0   0% 6 0   0%
python/lsst/daf/butler/remote_butler/_ref_utils.py (no class)   0% 31 31 0   0% 12 0   0%
python/lsst/daf/butler/remote_butler/_registry.py RemoteButlerRegistry   0% 53 53 21   0% 16 0   0%
python/lsst/daf/butler/remote_butler/_registry.py (no class)   0% 72 72 0   0% 4 0   0%
python/lsst/daf/butler/remote_butler/_remote_butler.py RemoteButler   0% 173 173 14   0% 64 0   0%
python/lsst/daf/butler/remote_butler/_remote_butler.py _RemoteButlerCacheData   0% 2 2 0   100% 0 0   0%
python/lsst/daf/butler/remote_butler/_remote_butler.py RemoteButlerCache   0% 1 1 0   100% 0 0   0%
python/lsst/daf/butler/remote_butler/_remote_butler.py (no class)   0% 114 114 7   0% 2 0   0%
python/lsst/daf/butler/remote_butler/_remote_butler_collections.py RemoteButlerCollections   0% 20 20 6   0% 8 0   0%
python/lsst/daf/butler/remote_butler/_remote_butler_collections.py (no class)   0% 25 25 0   100% 0 0   0%
python/lsst/daf/butler/remote_butler/_remote_file_transfer_source.py RemoteFileTransferSource   0% 14 14 0   0% 4 0   0%
python/lsst/daf/butler/remote_butler/_remote_file_transfer_source.py (no class)   0% 29 29 0   100% 0 0   0%
python/lsst/daf/butler/remote_butler/authentication/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/remote_butler/authentication/cadc.py CadcAuthenticationProvider   0% 7 7 0   0% 2 0   0%
python/lsst/daf/butler/remote_butler/authentication/cadc.py (no class)   0% 20 20 0   0% 2 0   0%
python/lsst/daf/butler/remote_butler/authentication/interface.py RemoteButlerAuthenticationProvider   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/remote_butler/authentication/interface.py (no class)   0% 4 4 0   100% 0 0   0%
python/lsst/daf/butler/remote_butler/authentication/rubin.py RubinAuthenticationProvider   0% 7 7 0   0% 2 0   0%
python/lsst/daf/butler/remote_butler/authentication/rubin.py (no class)   0% 24 24 0   0% 4 0   0%
python/lsst/daf/butler/remote_butler/registry/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/remote_butler/server/__init__.py (no class)   0% 2 2 0   100% 0 0   0%
python/lsst/daf/butler/remote_butler/server/_config.py RepositoryConfig   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/remote_butler/server/_config.py ButlerServerConfig   0% 1 1 0   100% 0 0   0%
python/lsst/daf/butler/remote_butler/server/_config.py (no class)   0% 40 40 0   0% 4 0   0%
python/lsst/daf/butler/remote_butler/server/_dependencies.py (no class)   0% 39 39 0   0% 8 0   0%
python/lsst/daf/butler/remote_butler/server/_factory.py Factory   0% 7 7 0   0% 2 0   0%
python/lsst/daf/butler/remote_butler/server/_factory.py (no class)   0% 8 8 0   100% 0 0   0%
python/lsst/daf/butler/remote_butler/server/_gafaelfawr.py GafaelfawrClient   0% 9 9 0   0% 4 0   0%
python/lsst/daf/butler/remote_butler/server/_gafaelfawr.py _GafaelfawrUserInfo   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/remote_butler/server/_gafaelfawr.py _GafaelfawrGroup   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/remote_butler/server/_gafaelfawr.py GafaelfawrGroupAuthorizer   0% 15 15 0   0% 8 0   0%
python/lsst/daf/butler/remote_butler/server/_gafaelfawr.py MockGafaelfawrGroupAuthorizer   0% 3 3 0   100% 0 0   0%
python/lsst/daf/butler/remote_butler/server/_gafaelfawr.py (no class)   0% 20 20 0   100% 0 0   0%
python/lsst/daf/butler/remote_butler/server/_server.py (no class)   0% 46 46 0   0% 6 0   0%
python/lsst/daf/butler/remote_butler/server/_telemetry.py TelemetryContext   0% 1 1 0   0% 2 0   0%
python/lsst/daf/butler/remote_butler/server/_telemetry.py NullTelemetryContext   0% 1 1 0   100% 0 0   0%
python/lsst/daf/butler/remote_butler/server/_telemetry.py SentryTelemetryContext   0% 2 2 0   100% 0 0   0%
python/lsst/daf/butler/remote_butler/server/_telemetry.py (no class)   0% 31 31 0   0% 6 0   0%
python/lsst/daf/butler/remote_butler/server_models.py FindDatasetRequestModel   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/remote_butler/server_models.py FindDatasetResponseModel   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/remote_butler/server_models.py GetDatasetTypeResponseModel   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/remote_butler/server_models.py GetUniverseResponseModel   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/remote_butler/server_models.py GetFileByDataIdRequestModel   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/remote_butler/server_models.py GetFileResponseModel   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/remote_butler/server_models.py ErrorResponseModel   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/remote_butler/server_models.py GetCollectionInfoResponseModel   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/remote_butler/server_models.py GetCollectionSummaryResponseModel   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/remote_butler/server_models.py ExpandDataIdRequestModel   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/remote_butler/server_models.py ExpandDataIdResponseModel   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/remote_butler/server_models.py QueryCollectionsRequestModel   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/remote_butler/server_models.py QueryCollectionsResponseModel   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/remote_butler/server_models.py QueryCollectionInfoRequestModel   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/remote_butler/server_models.py QueryCollectionInfoResponseModel   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/remote_butler/server_models.py QueryDatasetTypesRequestModel   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/remote_butler/server_models.py QueryDatasetTypesResponseModel   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/remote_butler/server_models.py MaterializedQuery   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/remote_butler/server_models.py DataCoordinateUpload   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/remote_butler/server_models.py QueryInputs   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/remote_butler/server_models.py QueryExecuteRequestModel   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/remote_butler/server_models.py DataCoordinateResultModel   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/remote_butler/server_models.py DimensionRecordsResultModel   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/remote_butler/server_models.py DatasetRefResultModel   0% 1 1 0   100% 0 0   0%
python/lsst/daf/butler/remote_butler/server_models.py GeneralResultModel   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/remote_butler/server_models.py QueryErrorResultModel   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/remote_butler/server_models.py QueryKeepAliveModel   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/remote_butler/server_models.py QueryCountRequestModel   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/remote_butler/server_models.py QueryCountResponseModel   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/remote_butler/server_models.py QueryAnyRequestModel   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/remote_butler/server_models.py QueryAnyResponseModel   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/remote_butler/server_models.py QueryExplainRequestModel   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/remote_butler/server_models.py QueryExplainResponseModel   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/remote_butler/server_models.py QueryAllDatasetsRequestModel   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/remote_butler/server_models.py GetFileTransferInfoRequestModel   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/remote_butler/server_models.py FileTransferRecordModel   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/remote_butler/server_models.py GetFileTransferInfoResponseModel   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/remote_butler/server_models.py FileInfoRecord   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/remote_butler/server_models.py FileInfoPayload   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/remote_butler/server_models.py GetManyDatasetsRequestModel   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/remote_butler/server_models.py (no class)   0% 183 183 0   100% 0 0   0%
python/lsst/daf/butler/repo_relocation.py (no class)   37% 19 12 0   0% 6 0   28%
python/lsst/daf/butler/script/__init__.py (no class)   100% 22 0 0   100% 0 0   100%
python/lsst/daf/butler/script/_associate.py (no class)   64% 11 4 0   100% 0 0   64%
python/lsst/daf/butler/script/_pruneDatasets.py PruneDatasetsResult   0% 14 14 0   0% 2 0   0%
python/lsst/daf/butler/script/_pruneDatasets.py PruneDatasetsResult.State   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/script/_pruneDatasets.py (no class)   51% 73 36 2   0% 20 0   40%
python/lsst/daf/butler/script/butlerImport.py (no class)   56% 9 4 0   0% 2 0   45%
python/lsst/daf/butler/script/certifyCalibrations.py (no class)   30% 20 14 0   0% 6 0   23%
python/lsst/daf/butler/script/collectionChain.py (no class)   15% 52 44 0   0% 28 0   10%
python/lsst/daf/butler/script/configDump.py (no class)   31% 13 9 0   0% 4 0   24%
python/lsst/daf/butler/script/configValidate.py (no class)   31% 13 9 0   100% 0 0   31%
python/lsst/daf/butler/script/createRepo.py (no class)   67% 6 2 0   100% 0 0   67%
python/lsst/daf/butler/script/exportCalibs.py (no class)   23% 57 44 2   0% 14 0   18%
python/lsst/daf/butler/script/ingest_files.py (no class)   28% 54 39 3   0% 8 0   24%
python/lsst/daf/butler/script/ingest_zip.py (no class)   67% 6 2 0   100% 0 0   67%
python/lsst/daf/butler/script/queryCollections.py (no class)   11% 123 110 0   0% 68 0   7%
python/lsst/daf/butler/script/queryDataIds.py _Table   0% 17 17 0   0% 6 0   0%
python/lsst/daf/butler/script/queryDataIds.py (no class)   24% 68 52 3   0% 34 0   16%
python/lsst/daf/butler/script/queryDatasetTypes.py (no class)   32% 19 13 0   0% 4 0   26%
python/lsst/daf/butler/script/queryDatasets.py _Table   0% 23 23 0   0% 10 0   0%
python/lsst/daf/butler/script/queryDatasets.py QueryDatasets   0% 76 76 1   0% 36 0   0%
python/lsst/daf/butler/script/queryDatasets.py (no class)   100% 29 0 3   100% 0 0   100%
python/lsst/daf/butler/script/queryDimensionRecords.py (no class)   19% 54 44 1   0% 26 0   12%
python/lsst/daf/butler/script/register_dataset_type.py (no class)   45% 11 6 0   0% 2 0   38%
python/lsst/daf/butler/script/removeCollections.py RemoveCollectionResult   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/script/removeCollections.py CollectionInfo   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/script/removeCollections.py (no class)   39% 59 36 0   0% 14 0   32%
python/lsst/daf/butler/script/removeDatasetType.py (no class)   67% 6 2 0   100% 0 0   67%
python/lsst/daf/butler/script/removeRuns.py RemoveRun   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/script/removeRuns.py RemoveRunsResult   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/script/removeRuns.py (no class)   44% 45 25 0   0% 6 0   39%
python/lsst/daf/butler/script/retrieveArtifacts.py (no class)   41% 22 13 2   0% 4 0   35%
python/lsst/daf/butler/script/transferDatasets.py (no class)   53% 15 7 0   100% 0 0   53%
python/lsst/daf/butler/tests/__init__.py (no class)   100% 6 0 0   100% 0 0   100%
python/lsst/daf/butler/tests/_datasetsHelper.py DatasetTestHelper   0% 9 9 0   0% 4 0   0%
python/lsst/daf/butler/tests/_datasetsHelper.py DatastoreTestHelper   0% 12 12 0   0% 6 0   0%
python/lsst/daf/butler/tests/_datasetsHelper.py BadWriteFormatter   0% 3 3 0   100% 0 0   0%
python/lsst/daf/butler/tests/_datasetsHelper.py BadNoWriteFormatter   0% 1 1 0   100% 0 0   0%
python/lsst/daf/butler/tests/_datasetsHelper.py MultiDetectorFormatter   0% 9 9 0   0% 6 0   0%
python/lsst/daf/butler/tests/_datasetsHelper.py (no class)   100% 30 0 3   100% 0 0   100%
python/lsst/daf/butler/tests/_dummyRegistry.py DummyOpaqueTableStorage   0% 52 52 0   0% 38 0   0%
python/lsst/daf/butler/tests/_dummyRegistry.py DummyOpaqueTableStorageManager   0% 7 7 0   100% 0 0   0%
python/lsst/daf/butler/tests/_dummyRegistry.py DummyDatastoreRegistryBridgeManager   0% 10 10 0   0% 4 0   0%
python/lsst/daf/butler/tests/_dummyRegistry.py DummyRegistry   0% 4 4 0   100% 0 0   0%
python/lsst/daf/butler/tests/_dummyRegistry.py (no class)   100% 39 0 0   100% 0 0   100%
python/lsst/daf/butler/tests/_examplePythonTypes.py MetricsExample   0% 22 22 0   0% 2 0   0%
python/lsst/daf/butler/tests/_examplePythonTypes.py MetricsExampleModel   0% 5 5 0   100% 0 0   0%
python/lsst/daf/butler/tests/_examplePythonTypes.py MetricsExampleDataclass   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/tests/_examplePythonTypes.py ListDelegate   0% 5 5 0   0% 2 0   0%
python/lsst/daf/butler/tests/_examplePythonTypes.py MetricsDelegate   0% 13 13 0   0% 6 0   0%
python/lsst/daf/butler/tests/_examplePythonTypes.py (no class)   64% 69 25 2   0% 4 0   60%
python/lsst/daf/butler/tests/_testRepo.py DatastoreMock   0% 6 6 0   0% 2 0   0%
python/lsst/daf/butler/tests/_testRepo.py (no class)   18% 139 114 2   0% 62 0   12%
python/lsst/daf/butler/tests/butler_queries.py ButlerQueryTests   0% 758 758 1   0% 36 0   0%
python/lsst/daf/butler/tests/butler_queries.py (no class)   89% 76 8 0   0% 2 0   87%
python/lsst/daf/butler/tests/cliCmdTestBase.py CliCmdTestBase   0% 27 27 0   0% 4 0   0%
python/lsst/daf/butler/tests/cliCmdTestBase.py (no class)   100% 31 0 8   100% 0 0   100%
python/lsst/daf/butler/tests/cliLogTestBase.py CliLogTestBase   0% 74 74 0   0% 20 0   0%
python/lsst/daf/butler/tests/cliLogTestBase.py CliLogTestBase.PythonLogger   0% 2 2 0   100% 0 0   0%
python/lsst/daf/butler/tests/cliLogTestBase.py CliLogTestBase.LsstLogger   0% 5 5 0   0% 2 0   0%
python/lsst/daf/butler/tests/cliLogTestBase.py (no class)   81% 67 13 10   0% 6 0   74%
python/lsst/daf/butler/tests/deferredFormatter.py DeferredFormatter   100% 0 0 2   100% 0 0   100%
python/lsst/daf/butler/tests/deferredFormatter.py (no class)   0% 7 7 0   100% 0 0   0%
python/lsst/daf/butler/tests/dict_convertible_model.py DictConvertibleModel   0% 2 2 0   100% 0 0   0%
python/lsst/daf/butler/tests/dict_convertible_model.py (no class)   100% 12 0 0   100% 0 0   100%
python/lsst/daf/butler/tests/hybrid_butler.py HybridButler   0% 52 52 0   0% 2 0   0%
python/lsst/daf/butler/tests/hybrid_butler.py (no class)   0% 78 78 0   100% 0 0   0%
python/lsst/daf/butler/tests/hybrid_butler_collections.py HybridButlerCollections   0% 10 10 0   100% 0 0   0%
python/lsst/daf/butler/tests/hybrid_butler_collections.py (no class)   0% 18 18 3   100% 0 0   0%
python/lsst/daf/butler/tests/hybrid_butler_registry.py HybridButlerRegistry   0% 50 50 2   0% 2 0   0%
python/lsst/daf/butler/tests/hybrid_butler_registry.py (no class)   0% 67 67 0   100% 0 0   0%
python/lsst/daf/butler/tests/postgresql.py TemporaryPostgresInstance   0% 13 13 0   100% 0 0   0%
python/lsst/daf/butler/tests/postgresql.py (no class)   71% 35 10 0   0% 2 0   68%
python/lsst/daf/butler/tests/registry_data/__init__.py (no class)   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/tests/registry_data/spatial.py (no class)   0% 174 174 2   0% 48 0   0%
python/lsst/daf/butler/tests/server.py TestServerInstance   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/tests/server.py UnhandledServerError   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/tests/server.py (no class)   0% 87 87 0   0% 10 0   0%
python/lsst/daf/butler/tests/server_available.py (no class)   76% 17 4 0   50% 2 1   74%
python/lsst/daf/butler/tests/server_utils.py (no class)   0% 23 23 0   0% 14 0   0%
python/lsst/daf/butler/tests/testFormatters.py DoNothingFormatter   100% 0 0 2   100% 0 0   100%
python/lsst/daf/butler/tests/testFormatters.py FormatterTest   0% 6 6 2   0% 6 0   0%
python/lsst/daf/butler/tests/testFormatters.py SingleExtensionFormatter   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/tests/testFormatters.py MultipleExtensionsFormatter   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/tests/testFormatters.py LenientYamlFormatter   0% 1 1 0   100% 0 0   0%
python/lsst/daf/butler/tests/testFormatters.py MetricsExampleFormatter   0% 23 23 0   0% 16 0   0%
python/lsst/daf/butler/tests/testFormatters.py MetricsExampleDataFormatter   0% 16 16 0   0% 6 0   0%
python/lsst/daf/butler/tests/testFormatters.py MetricsExampleModelProvenanceFormatter   0% 4 4 0   100% 0 0   0%
python/lsst/daf/butler/tests/testFormatters.py (no class)   100% 41 0 3   100% 0 0   100%
python/lsst/daf/butler/tests/utils.py TestCaseMixin   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/tests/utils.py ButlerTestHelper   0% 23 23 0   0% 10 0   0%
python/lsst/daf/butler/tests/utils.py MetricTestRepo   0% 31 31 0   0% 4 0   0%
python/lsst/daf/butler/tests/utils.py (no class)   70% 67 20 7   0% 6 0   64%
python/lsst/daf/butler/time_utils.py _FastTimeUnixTai   0% 14 14 0   0% 4 0   0%
python/lsst/daf/butler/time_utils.py TimeConverter   0% 32 32 0   0% 8 0   0%
python/lsst/daf/butler/time_utils.py _AstropyTimeToYAML   0% 6 6 0   0% 4 0   0%
python/lsst/daf/butler/time_utils.py (no class)   95% 43 2 0   100% 0 0   95%
python/lsst/daf/butler/timespan_database_representation.py TimespanDatabaseRepresentation   0% 1 1 17   100% 0 0   0%
python/lsst/daf/butler/timespan_database_representation.py _CompoundTimespanDatabaseRepresentation   0% 62 62 0   0% 34 0   0%
python/lsst/daf/butler/timespan_database_representation.py (no class)   98% 91 2 2   100% 0 0   98%
python/lsst/daf/butler/transfers/__init__.py (no class)   100% 3 0 0   100% 0 0   100%
python/lsst/daf/butler/transfers/_context.py RepoExportContext   0% 91 91 0   0% 66 0   0%
python/lsst/daf/butler/transfers/_context.py (no class)   100% 21 0 4   100% 0 0   100%
python/lsst/daf/butler/transfers/_interfaces.py RepoTransferFormatConfig   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/transfers/_interfaces.py RepoExportBackend   100% 0 0 5   100% 0 0   100%
python/lsst/daf/butler/transfers/_interfaces.py RepoImportBackend   100% 0 0 1   100% 0 0   100%
python/lsst/daf/butler/transfers/_interfaces.py (no class)   100% 32 0 2   100% 0 0   100%
python/lsst/daf/butler/transfers/_yaml.py _RefMapper   0% 3 3 0   100% 0 0   0%
python/lsst/daf/butler/transfers/_yaml.py YamlRepoExportBackend   0% 26 26 0   0% 12 0   0%
python/lsst/daf/butler/transfers/_yaml.py _DayObsOffsetCalculator   0% 19 19 0   0% 4 0   0%
python/lsst/daf/butler/transfers/_yaml.py YamlRepoImportBackend   0% 191 191 0   0% 142 0   0%
python/lsst/daf/butler/transfers/_yaml.py (no class)   93% 59 4 3   0% 2 0   90%
python/lsst/daf/butler/utils.py _Marker   100% 0 0 0   100% 0 0   100%
python/lsst/daf/butler/utils.py (no class)   48% 48 25 0   0% 16 0   36%
python/lsst/daf/butler/version.py (no class)   100% 5 0 0   100% 0 0   100%
tests/test_astropyTableFormatter.py AstropyTableFormatterTestCase   0% 17 17 0   100% 0 0   0%
tests/test_astropyTableFormatter.py (no class)   100% 11 0 2   100% 0 0   100%
tests/test_authentication.py TestButlerClientAuthentication   0% 21 21 0   100% 0 0   0%
tests/test_authentication.py (no class)   86% 14 2 0   50% 2 1   81%
tests/test_butler.py TransactionTestError   100% 0 0 0   100% 0 0   100%
tests/test_butler.py ButlerConfigTests   0% 11 11 0   100% 0 0   0%
tests/test_butler.py ButlerPutGetTests   0% 204 204 0   0% 34 0   0%
tests/test_butler.py ButlerTests   0% 605 605 0   0% 84 0   0%
tests/test_butler.py FileDatastoreButlerTests   0% 248 248 0   0% 26 0   0%
tests/test_butler.py PosixDatastoreButlerTestCase   0% 149 149 0   0% 14 0   0%
tests/test_butler.py PostgresPosixDatastoreButlerTestCase   0% 14 14 0   0% 2 0   0%
tests/test_butler.py ClonedPostgresPosixDatastoreButlerTestCase   0% 2 2 0   100% 0 0   0%
tests/test_butler.py InMemoryDatastoreButlerTestCase   0% 2 2 0   100% 0 0   0%
tests/test_butler.py ClonedSqliteButlerTestCase   0% 2 2 0   100% 0 0   0%
tests/test_butler.py ChainedDatastoreButlerTestCase   0% 1 1 0   100% 0 0   0%
tests/test_butler.py ButlerExplicitRootTestCase   0% 16 16 0   100% 0 0   0%
tests/test_butler.py ButlerMakeRepoOutfileTestCase   0% 14 14 0   0% 2 0   0%
tests/test_butler.py ButlerMakeRepoOutfileDirTestCase   0% 6 6 0   100% 0 0   0%
tests/test_butler.py ButlerMakeRepoOutfileUriTestCase   0% 4 4 0   100% 0 0   0%
tests/test_butler.py S3DatastoreButlerTestCase   0% 35 35 0   0% 8 0   0%
tests/test_butler.py DatastoreTransfers   0% 132 132 0   0% 48 0   0%
tests/test_butler.py PosixDatastoreTransfers   0% 76 76 0   0% 2 0   0%
tests/test_butler.py ChainedDatastoreTransfers   100% 0 0 0   100% 0 0   100%
tests/test_butler.py ButlerServerDatastoreTransfers   0% 9 9 0   100% 0 0   0%
tests/test_butler.py TransferDatasetsInPlace   0% 35 35 0   100% 0 0   0%
tests/test_butler.py NullDatastoreTestCase   0% 29 29 0   100% 0 0   0%
tests/test_butler.py ButlerServerTests   0% 14 14 0   100% 0 0   0%
tests/test_butler.py ButlerServerSqliteTests   100% 0 0 0   100% 0 0   100%
tests/test_butler.py ButlerServerPostgresTests   0% 2 2 0   100% 0 0   0%
tests/test_butler.py (no class)   96% 290 12 6   0% 2 0   95%
tests/test_butler_factory.py ButlerFactoryTestCase   0% 23 23 0   0% 2 0   0%
tests/test_butler_factory.py (no class)   100% 12 0 2   100% 0 0   100%
tests/test_cliCmdAssociate.py AssociateTestCase   0% 7 7 0   100% 0 0   0%
tests/test_cliCmdAssociate.py (no class)   100% 10 0 2   100% 0 0   100%
tests/test_cliCmdConfigDump.py ConfigDumpTest   0% 2 2 0   100% 0 0   0%
tests/test_cliCmdConfigDump.py ConfigDumpUseTest   0% 85 85 0   100% 0 0   0%
tests/test_cliCmdConfigDump.py (no class)   100% 25 0 2   100% 0 0   100%
tests/test_cliCmdConfigValidate.py ValidateTest   0% 2 2 0   100% 0 0   0%
tests/test_cliCmdConfigValidate.py ConfigValidateUseTest   0% 13 13 0   100% 0 0   0%
tests/test_cliCmdConfigValidate.py (no class)   100% 15 0 2   100% 0 0   100%
tests/test_cliCmdCreate.py CreateTest   0% 5 5 0   100% 0 0   0%
tests/test_cliCmdCreate.py (no class)   100% 12 0 2   100% 0 0   100%
tests/test_cliCmdImport.py ImportTestCase   0% 5 5 0   100% 0 0   0%
tests/test_cliCmdImport.py (no class)   100% 13 0 2   100% 0 0   100%
tests/test_cliCmdIngestFiles.py CliIngestFilesTest   0% 40 40 0   0% 4 0   0%
tests/test_cliCmdIngestFiles.py (no class)   100% 17 0 2   100% 0 0   100%
tests/test_cliCmdPruneDatasets.py PruneDatasetsTestCase   0% 53 53 0   0% 12 0   0%
tests/test_cliCmdPruneDatasets.py QueryDatasetsCLITest   0% 15 15 0   100% 0 0   0%
tests/test_cliCmdPruneDatasets.py (no class)   88% 64 8 2   0% 4 0   82%
tests/test_cliCmdQueryCollections.py QueryCollectionsCmdTest   0% 8 8 0   100% 0 0   0%
tests/test_cliCmdQueryCollections.py QueryCollectionsScriptTest   0% 20 20 0   100% 0 0   0%
tests/test_cliCmdQueryCollections.py ChainedCollectionsTest   0% 59 59 0   100% 0 0   0%
tests/test_cliCmdQueryCollections.py (no class)   100% 27 0 2   100% 0 0   100%
tests/test_cliCmdQueryDataIds.py QueryDataIdsTest   0% 49 49 0   0% 2 0   0%
tests/test_cliCmdQueryDataIds.py (no class)   100% 21 0 2   100% 0 0   100%
tests/test_cliCmdQueryDatasetTypes.py QueryDatasetTypesCmdTest   0% 6 6 0   100% 0 0   0%
tests/test_cliCmdQueryDatasetTypes.py QueryDatasetTypesScriptTest   0% 62 62 0   0% 2 0   0%
tests/test_cliCmdQueryDatasetTypes.py (no class)   100% 21 0 2   100% 0 0   100%
tests/test_cliCmdQueryDatasets.py QueryDatasetsTest   0% 85 85 0   0% 2 0   0%
tests/test_cliCmdQueryDatasets.py QueryDatasetsCLITest   0% 9 9 0   100% 0 0   0%
tests/test_cliCmdQueryDatasets.py (no class)   97% 32 1 2   100% 0 0   97%
tests/test_cliCmdQueryDimensionRecords.py QueryDimensionRecordsTest   0% 41 41 0   100% 0 0   0%
tests/test_cliCmdQueryDimensionRecords.py (no class)   100% 20 0 2   100% 0 0   100%
tests/test_cliCmdRemoveCollections.py RemoveCollectionTest   0% 79 79 0   0% 8 0   0%
tests/test_cliCmdRemoveCollections.py (no class)   100% 21 0 2   100% 0 0   100%
tests/test_cliCmdRemoveRuns.py RemoveCollectionTest   0% 69 69 0   100% 0 0   0%
tests/test_cliCmdRemoveRuns.py (no class)   100% 11 0 2   100% 0 0   100%
tests/test_cliCmdRetrieveArtifacts.py CliRetrieveArtifactsTest   0% 50 50 0   0% 4 0   0%
tests/test_cliCmdRetrieveArtifacts.py (no class)   100% 20 0 2   100% 0 0   100%
tests/test_cliLog.py CliLogTestCase   100% 0 0 0   100% 0 0   100%
tests/test_cliLog.py ConvertPyLogLevelTestCase   0% 5 5 0   100% 0 0   0%
tests/test_cliLog.py (no class)   83% 12 2 2   100% 0 0   83%
tests/test_cliPluginLoader.py FailedLoadTest   0% 17 17 0   100% 0 0   0%
tests/test_cliPluginLoader.py FailedLoadTest.test_unimportableLocalPackage.FailCLI   100% 0 0 0   100% 0 0   100%
tests/test_cliPluginLoader.py PluginLoaderTest   0% 26 26 0   100% 0 0   0%
tests/test_cliPluginLoader.py (no class)   80% 35 7 2   100% 0 0   80%
tests/test_cliUtilSplitCommas.py SplitCommasTestCase   0% 27 27 0   0% 4 0   0%
tests/test_cliUtilSplitCommas.py (no class)   94% 18 1 2   100% 0 0   94%
tests/test_cliUtilSplitKv.py SplitKvTestCase   0% 18 18 0   100% 0 0   0%
tests/test_cliUtilSplitKv.py SplitKvCmdTestCase   0% 86 86 0   0% 2 0   0%
tests/test_cliUtilSplitKv.py (no class)   89% 35 4 2   100% 0 0   89%
tests/test_cliUtilToUpper.py ToUpperTestCase   0% 13 13 0   100% 0 0   0%
tests/test_cliUtilToUpper.py (no class)   92% 13 1 2   100% 0 0   92%
tests/test_cliUtils.py ArgumentHelpGeneratorTestCase   0% 10 10 0   100% 0 0   0%
tests/test_cliUtils.py UnwrapStringTestCase   0% 14 14 0   100% 0 0   0%
tests/test_cliUtils.py MWOptionTest   0% 18 18 0   0% 2 0   0%
tests/test_cliUtils.py MWArgumentDecoratorTest   0% 24 24 0   0% 4 0   0%
tests/test_cliUtils.py MWOptionDecoratorTest   0% 20 20 0   100% 0 0   0%
tests/test_cliUtils.py SectionOptionTest   0% 7 7 0   100% 0 0   0%
tests/test_cliUtils.py MWPathTest   0% 24 24 0   100% 0 0   0%
tests/test_cliUtils.py MWCommandTest   0% 22 22 0   0% 2 0   0%
tests/test_cliUtils.py (no class)   86% 59 8 2   100% 0 0   86%
tests/test_column_spec.py ColumnSpecTestCase   0% 8 8 0   100% 0 0   0%
tests/test_column_spec.py (no class)   100% 10 0 0   100% 0 0   100%
tests/test_composites.py TestCompositesConfig   0% 36 36 0   0% 2 0   0%
tests/test_composites.py (no class)   100% 11 0 2   100% 0 0   100%
tests/test_config.py ExampleWithConfigFileReference   100% 0 0 0   100% 0 0   100%
tests/test_config.py ExampleWithConfigFileReference2   100% 0 0 0   100% 0 0   100%
tests/test_config.py ConfigTest   100% 0 0 0   100% 0 0   100%
tests/test_config.py ConfigTestPathlib   100% 0 0 0   100% 0 0   100%
tests/test_config.py ConfigTestEmpty   100% 0 0 0   100% 0 0   100%
tests/test_config.py ConfigTestButlerDir   100% 0 0 0   100% 0 0   100%
tests/test_config.py ConfigTestNoDefaults   100% 0 0 0   100% 0 0   100%
tests/test_config.py ConfigTestAbsPath   100% 0 0 0   100% 0 0   100%
tests/test_config.py ConfigTestCls   100% 0 0 0   100% 0 0   100%
tests/test_config.py ConfigTestCase   0% 204 204 0   0% 34 0   0%
tests/test_config.py ConfigSubsetTestCase   0% 129 129 0   0% 2 0   0%
tests/test_config.py FileWriteConfigTestCase   0% 11 11 0   0% 2 0   0%
tests/test_config.py (no class)   92% 71 6 2   100% 0 0   92%
tests/test_connectionString.py ConnectionStringBuilderTestCase   0% 18 18 0   0% 2 0   0%
tests/test_connectionString.py (no class)   100% 18 0 2   100% 0 0   100%
tests/test_constraints.py ConstraintsTestCase   0% 81 81 0   100% 0 0   0%
tests/test_constraints.py (no class)   100% 12 0 2   100% 0 0   100%
tests/test_datasets.py DatasetTypeTestCase   0% 197 197 0   0% 14 0   0%
tests/test_datasets.py DatasetRefTestCase   0% 230 230 0   0% 4 0   0%
tests/test_datasets.py ZipIndexTestCase   0% 20 20 0   100% 0 0   0%
tests/test_datasets.py (no class)   100% 40 0 2   100% 0 0   100%
tests/test_datastore.py TransactionTestError   100% 0 0 0   100% 0 0   100%
tests/test_datastore.py DatastoreTestsBase   0% 9 9 0   0% 2 0   0%
tests/test_datastore.py DatastoreTests   0% 508 508 0   0% 98 0   0%
tests/test_datastore.py PosixDatastoreTestCase   0% 40 40 0   0% 4 0   0%
tests/test_datastore.py PosixDatastoreNoChecksumsTestCase   0% 25 25 0   100% 0 0   0%
tests/test_datastore.py TrashDatastoreTestCase   0% 47 47 0   0% 4 0   0%
tests/test_datastore.py CleanupPosixDatastoreTestCase   0% 24 24 0   0% 2 0   0%
tests/test_datastore.py InMemoryDatastoreTestCase   100% 0 0 0   100% 0 0   100%
tests/test_datastore.py ChainedDatastoreTestCase   100% 0 0 0   100% 0 0   100%
tests/test_datastore.py ChainedDatastoreMemoryTestCase   100% 0 0 0   100% 0 0   100%
tests/test_datastore.py DatastoreConstraintsTests   0% 27 27 0   0% 8 0   0%
tests/test_datastore.py PosixDatastoreConstraintsTestCase   0% 2 2 0   100% 0 0   0%
tests/test_datastore.py InMemoryDatastoreConstraintsTestCase   100% 0 0 0   100% 0 0   100%
tests/test_datastore.py ChainedDatastoreConstraintsNativeTestCase   100% 0 0 0   100% 0 0   100%
tests/test_datastore.py ChainedDatastoreConstraintsTestCase   100% 0 0 0   100% 0 0   100%
tests/test_datastore.py ChainedDatastoreMemoryConstraintsTestCase   100% 0 0 0   100% 0 0   100%
tests/test_datastore.py ChainedDatastorePerStoreConstraintsTests   0% 37 37 0   0% 12 0   0%
tests/test_datastore.py DatastoreCacheTestCase   0% 237 237 0   0% 30 0   0%
tests/test_datastore.py NullDatastoreTestCase   0% 44 44 0   100% 0 0   0%
tests/test_datastore.py DatasetRefURIsTestCase   0% 19 19 0   100% 0 0   0%
tests/test_datastore.py StoredFileInfoTestCase   0% 27 27 0   100% 0 0   0%
tests/test_datastore.py TestDatastoreRecordTable   0% 62 62 0   100% 0 0   0%
tests/test_datastore.py (no class)   94% 189 11 2   0% 2 0   93%
tests/test_ddl.py AstropyTimeNsecTaiTestCase   0% 21 21 0   0% 2 0   0%
tests/test_ddl.py (no class)   100% 9 0 2   100% 0 0   100%
tests/test_dimension_record_containers.py DimensionRecordContainersTestCase   0% 267 267 0   0% 22 0   0%
tests/test_dimension_record_containers.py (no class)   100% 34 0 2   100% 0 0   100%
tests/test_dimensions.py ConcreteTestDimensionPacker   0% 6 6 0   100% 0 0   0%
tests/test_dimensions.py DimensionTestCase   0% 168 168 0   0% 34 0   0%
tests/test_dimensions.py SplitByStateFlags   0% 9 9 0   0% 8 0   0%
tests/test_dimensions.py DataCoordinateTestCase   0% 237 237 0   0% 98 0   0%
tests/test_dimensions.py (no class)   96% 73 3 2   100% 0 0   96%
tests/test_dimensions_versions.py DimensionsVersionsTestCase   0% 78 78 0   0% 2 0   0%
tests/test_dimensions_versions.py (no class)   45% 62 34 2   0% 28 0   31%
tests/test_exprParserLex.py ParserLexTestCase   0% 178 178 0   0% 10 0   0%
tests/test_exprParserLex.py (no class)   100% 18 0 2   100% 0 0   100%
tests/test_exprParserYacc.py _Visitor   0% 24 24 0   0% 4 0   0%
tests/test_exprParserYacc.py ParserYaccTestCase   0% 515 515 0   0% 10 0   0%
tests/test_exprParserYacc.py (no class)   100% 51 0 2   100% 0 0   100%
tests/test_formatter.py FormatterFactoryTestCase   0% 105 105 0   0% 8 0   0%
tests/test_formatter.py ZipFormatterTestCase   0% 28 28 0   100% 0 0   0%
tests/test_formatter.py (no class)   100% 23 0 2   100% 0 0   100%
tests/test_gafaelfawr.py GafaelfawrAuthorizationTestCase   0% 32 32 0   100% 0 0   0%
tests/test_gafaelfawr.py (no class)   64% 11 4 0   50% 2 1   62%
tests/test_location.py LocationTestCase   0% 74 74 0   0% 2 0   0%
tests/test_location.py (no class)   100% 14 0 2   100% 0 0   100%
tests/test_logFormatter.py ButlerLogRecordsFormatterTestCase   0% 108 108 0   100% 0 0   0%
tests/test_logFormatter.py (no class)   100% 25 0 2   100% 0 0   100%
tests/test_logging.py LoggingTestCase   0% 163 163 0   0% 24 0   0%
tests/test_logging.py TestJsonLogging   0% 39 39 0   0% 2 0   0%
tests/test_logging.py (no class)   100% 19 0 2   100% 0 0   100%
tests/test_matplotlibFormatter.py MatplotlibFormatterTestCase   0% 24 24 0   0% 2 0   0%
tests/test_matplotlibFormatter.py (no class)   91% 22 2 2   100% 0 0   91%
tests/test_nonempty_mapping.py NonemptyMappingTestCase   0% 11 11 0   100% 0 0   0%
tests/test_nonempty_mapping.py (no class)   100% 4 0 2   100% 0 0   100%
tests/test_obscore.py ObsCoreTests   0% 193 193 1   0% 36 0   0%
tests/test_obscore.py SQLiteObsCoreTest   0% 7 7 0   100% 0 0   0%
tests/test_obscore.py ClonedSqliteObscoreTest   0% 4 4 0   100% 0 0   0%
tests/test_obscore.py PostgresObsCoreTest   0% 8 8 0   100% 0 0   0%
tests/test_obscore.py PostgresPgSphereObsCoreTest   0% 32 32 0   100% 0 0   0%
tests/test_obscore.py TestMissingObscoreConfig   0% 14 14 0   100% 0 0   0%
tests/test_obscore.py (no class)   100% 56 0 2   100% 0 0   100%
tests/test_packages.py PackagesFormatterTestCase   0% 11 11 0   100% 0 0   0%
tests/test_packages.py (no class)   100% 10 0 2   100% 0 0   100%
tests/test_parquet.py ParquetFormatterDataFrameTestCase   0% 255 255 0   0% 28 0   0%
tests/test_parquet.py InMemoryDataFrameDelegateTestCase   0% 21 21 0   100% 0 0   0%
tests/test_parquet.py ParquetFormatterArrowAstropyTestCase   0% 181 181 0   0% 12 0   0%
tests/test_parquet.py InMemoryArrowAstropyDelegateTestCase   0% 11 11 0   100% 0 0   0%
tests/test_parquet.py ParquetFormatterArrowNumpyTestCase   0% 113 113 0   0% 2 0   0%
tests/test_parquet.py InMemoryArrowNumpyDelegateTestCase   0% 18 18 0   100% 0 0   0%
tests/test_parquet.py ParquetFormatterArrowTableTestCase   0% 145 145 0   0% 12 0   0%
tests/test_parquet.py InMemoryArrowTableDelegateTestCase   0% 17 17 0   100% 0 0   0%
tests/test_parquet.py ParquetFormatterArrowNumpyDictTestCase   0% 82 82 0   0% 4 0   0%
tests/test_parquet.py InMemoryNumpyDictDelegateTestCase   0% 1 1 0   100% 0 0   0%
tests/test_parquet.py ParquetFormatterArrowSchemaTestCase   0% 37 37 0   0% 8 0   0%
tests/test_parquet.py InMemoryArrowSchemaDelegateTestCase   100% 0 0 0   100% 0 0   100%
tests/test_parquet.py ParquetFormatterArrowTableS3TestCase   0% 63 63 0   0% 10 0   0%
tests/test_parquet.py ComputeRowGroupSizeTestCase   0% 21 21 0   100% 0 0   0%
tests/test_parquet.py (no class)   64% 382 138 2   0% 36 0   58%
tests/test_postgresql.py PostgresqlDatabaseTestCase   0% 40 40 0   0% 2 0   0%
tests/test_postgresql.py PostgresqlRegistryTests   0% 13 13 0   0% 4 0   0%
tests/test_postgresql.py PostgresqlRegistryNameKeyCollMgrUUIDTestCase   100% 0 0 0   100% 0 0   100%
tests/test_postgresql.py PostgresqlRegistrySynthIntKeyCollMgrUUIDTestCase   100% 0 0 0   100% 0 0   100%
tests/test_postgresql.py (no class)   95% 43 2 2   100% 0 0   95%
tests/test_progress.py MockProgressBar   0% 11 11 0   0% 2 0   0%
tests/test_progress.py MockProgressHandler   0% 1 1 0   100% 0 0   0%
tests/test_progress.py ClickProgressHandlerTestCase   0% 25 25 0   100% 0 0   0%
tests/test_progress.py MockedProgressHandlerTestCase   0% 72 72 0   0% 18 0   0%
tests/test_progress.py (no class)   100% 37 0 2   100% 0 0   100%
tests/test_pydantic_utils.py Inner   0% 3 3 0   0% 2 0   0%
tests/test_pydantic_utils.py SerializedInner   100% 0 0 0   100% 0 0   100%
tests/test_pydantic_utils.py OuterWithWrapper   100% 0 0 0   100% 0 0   100%
tests/test_pydantic_utils.py OuterWithoutWrapper   100% 0 0 0   100% 0 0   100%
tests/test_pydantic_utils.py DeferredValidationTestCase   0% 24 24 0   100% 0 0   0%
tests/test_pydantic_utils.py SerializableExtensionsTestCase   0% 44 44 0   100% 0 0   0%
tests/test_pydantic_utils.py (no class)   100% 24 0 2   100% 0 0   100%
tests/test_quantum.py MockTask   100% 0 0 0   100% 0 0   100%
tests/test_quantum.py QuantumTestCase   0% 66 66 0   0% 2 0   0%
tests/test_quantum.py (no class)   100% 12 0 2   100% 0 0   100%
tests/test_quantumBackedButler.py QuantumBackedButlerTestCase   0% 262 262 0   0% 70 0   0%
tests/test_quantumBackedButler.py (no class)   100% 32 0 2   100% 0 0   100%
tests/test_query_direct_postgresql.py DirectButlerPostgreSQLTests   0% 9 9 0   0% 2 0   0%
tests/test_query_direct_postgresql.py (no class)   100% 15 0 2   100% 0 0   100%
tests/test_query_direct_sqlite.py DirectButlerSQLiteTests   0% 5 5 0   0% 2 0   0%
tests/test_query_direct_sqlite.py (no class)   100% 10 0 2   100% 0 0   100%
tests/test_query_interface.py _TestVisitor   0% 53 53 0   0% 34 0   0%
tests/test_query_interface.py _TestReversed   100% 0 0 0   100% 0 0   100%
tests/test_query_interface.py _TestQueryExecution   0% 3 3 0   100% 0 0   0%
tests/test_query_interface.py _TestQueryCount   0% 5 5 0   100% 0 0   0%
tests/test_query_interface.py _TestQueryAny   0% 4 4 0   100% 0 0   0%
tests/test_query_interface.py _TestQueryExplainNoResults   0% 3 3 0   100% 0 0   0%
tests/test_query_interface.py _TestQueryDriver   0% 39 39 1   0% 12 0   0%
tests/test_query_interface.py ColumnExpressionsTestCase   0% 401 401 0   0% 16 0   0%
tests/test_query_interface.py QueryTestCase   0% 335 335 0   0% 16 0   0%
tests/test_query_interface.py (no class)   100% 111 0 2   100% 0 0   100%
tests/test_query_remote.py RemoteButlerQueryTests   0% 5 5 0   0% 2 0   0%
tests/test_query_remote.py (no class)   92% 13 1 2   50% 2 1   87%
tests/test_query_utilities.py ColumnSetTestCase   0% 80 80 0   100% 0 0   0%
tests/test_query_utilities.py _RecordingOverlapsVisitor   0% 16 16 0   100% 0 0   0%
tests/test_query_utilities.py OverlapsVisitorTestCase   0% 124 124 0   0% 2 0   0%
tests/test_query_utilities.py NaiveDisjointSetTestCase   0% 8 8 0   100% 0 0   0%
tests/test_query_utilities.py (no class)   100% 34 0 2   100% 0 0   100%
tests/test_registry_dataset_type_overrides.py RegistryDatasetTypeOverridesTestCase   0% 86 86 0   100% 0 0   0%
tests/test_registry_dataset_type_overrides.py (no class)   100% 15 0 2   100% 0 0   100%
tests/test_remote_butler.py RemoteButlerConfigTests   0% 2 2 0   100% 0 0   0%
tests/test_remote_butler.py RemoteButlerErrorHandlingTests   0% 16 16 0   100% 0 0   0%
tests/test_remote_butler.py RemoteButlerMiscTests   0% 4 4 0   100% 0 0   0%
tests/test_remote_butler.py RemoteButlerRegistryTests   0% 10 10 0   100% 0 0   0%
tests/test_remote_butler.py RemoteButlerSqliteRegistryTests   100% 0 0 0   100% 0 0   100%
tests/test_remote_butler.py RemoteButlerPostgresRegistryTests   0% 5 5 0   0% 2 0   0%
tests/test_remote_butler.py (no class)   94% 51 3 2   50% 2 1   92%
tests/test_server.py ButlerClientServerTestCase   0% 235 235 0   0% 4 0   0%
tests/test_server.py ButlerClientServerAuthorizationTestCase   0% 36 36 0   100% 0 0   0%
tests/test_server.py QueryLimitsTestCase   0% 8 8 0   100% 0 0   0%
tests/test_server.py (no class)   60% 83 33 2   25% 4 1   59%
tests/test_simpleButler.py SimpleButlerTests   0% 320 320 1   0% 28 0   0%
tests/test_simpleButler.py DirectSimpleButlerTestCase   0% 51 51 0   0% 4 0   0%
tests/test_simpleButler.py NameKeyCollectionManagerDirectSimpleButlerTestCase   100% 0 0 0   100% 0 0   100%
tests/test_simpleButler.py RemoteSimpleButlerTestCase   0% 5 5 0   100% 0 0   0%
tests/test_simpleButler.py (no class)   93% 59 4 2   50% 2 1   92%
tests/test_sqlite.py SqliteFileDatabaseTestCase   0% 42 42 0   100% 0 0   0%
tests/test_sqlite.py SqliteMemoryDatabaseTestCase   0% 25 25 0   100% 0 0   0%
tests/test_sqlite.py SqliteFileRegistryTests   0% 10 10 0   0% 2 0   0%
tests/test_sqlite.py SqliteFileRegistryNameKeyCollMgrUUIDTestCase   100% 0 0 0   100% 0 0   100%
tests/test_sqlite.py ClonedSqliteFileRegistryNameKeyCollMgrUUIDTestCase   0% 2 2 0   100% 0 0   0%
tests/test_sqlite.py SqliteFileRegistrySynthIntKeyCollMgrUUIDTestCase   100% 0 0 0   100% 0 0   100%
tests/test_sqlite.py SqliteMemoryRegistryTests   0% 10 10 0   0% 2 0   0%
tests/test_sqlite.py SqliteMemoryRegistryNameKeyCollMgrUUIDTestCase   100% 0 0 0   100% 0 0   100%
tests/test_sqlite.py SqliteMemoryRegistrySynthIntKeyCollMgrUUIDTestCase   100% 0 0 0   100% 0 0   100%
tests/test_sqlite.py SqliteMemoryRegistryAstropyIngestDateTestCase   100% 0 0 0   100% 0 0   100%
tests/test_sqlite.py (no class)   84% 74 12 2   100% 0 0   84%
tests/test_storageClass.py PythonType   100% 0 0 0   100% 0 0   100%
tests/test_storageClass.py PythonType2   100% 0 0 0   100% 0 0   100%
tests/test_storageClass.py PythonType3   100% 0 0 0   100% 0 0   100%
tests/test_storageClass.py NotCopyable   0% 1 1 0   100% 0 0   0%
tests/test_storageClass.py StorageClassFactoryTestCase   0% 183 183 0   0% 4 0   0%
tests/test_storageClass.py (no class)   100% 29 0 2   100% 0 0   100%
tests/test_templates.py TestFileTemplates   0% 168 168 0   0% 6 0   0%
tests/test_templates.py (no class)   100% 21 0 2   100% 0 0   100%
tests/test_testRepo.py ButlerTestRepoTestCase   0% 7 7 0   100% 0 0   0%
tests/test_testRepo.py ButlerUtilsTestSuite   0% 85 85 0   100% 0 0   0%
tests/test_testRepo.py (no class)   100% 27 0 2   100% 0 0   100%
tests/test_thread_utils.py ThreadSafeCacheTestCase   0% 7 7 0   100% 0 0   0%
tests/test_thread_utils.py NamedLocksTestCase   0% 13 13 0   100% 0 0   0%
tests/test_thread_utils.py LockedObjectTestCase   0% 7 7 0   100% 0 0   0%
tests/test_thread_utils.py (no class)   100% 10 0 2   100% 0 0   100%
tests/test_time_utils.py TimeTestCase   0% 60 60 0   0% 8 0   0%
tests/test_time_utils.py (no class)   86% 14 2 2   100% 0 0   86%
tests/test_timespan.py TimespanTestCase   0% 141 141 0   0% 38 0   0%
tests/test_timespan.py (no class)   92% 24 2 2   100% 0 0   92%
tests/test_utils.py NamedKeyDictTest   0% 50 50 0   100% 0 0   0%
tests/test_utils.py NamedValueSetTest   0% 47 47 0   0% 4 0   0%
tests/test_utils.py GlobToRegexTestCase   0% 17 17 0   0% 8 0   0%
tests/test_utils.py (no class)   100% 31 0 2   100% 0 0   100%
tests/test_uuid.py UUIDv7TestCase   0% 11 11 0   100% 0 0   0%
tests/test_uuid.py (no class)   100% 6 0 0   100% 0 0   100%
tests/test_versioning.py Manager0   0% 1 1 0   100% 0 0   0%
tests/test_versioning.py Manager1   0% 1 1 0   100% 0 0   0%
tests/test_versioning.py Manager1_1   0% 1 1 0   100% 0 0   0%
tests/test_versioning.py Manager2   0% 2 2 0   100% 0 0   0%
tests/test_versioning.py SchemaVersioningTestCase   0% 69 69 0   0% 16 0   0%
tests/test_versioning.py (no class)   100% 36 0 2   100% 0 0   100%
Total     26% 50374 37413 1069   2% 11756 107   21%

No items found using the specified filter.