Coverage report: 99%

Files Functions Classes

coverage.py v7.16.2, created at 2026-10-30 23:02 +0000

      Statements   Branches   Total
File function   coverage statements missing excluded   coverage branches partial   coverage
src/bunches/__init__.py (no function)   100% 7 0 0   100% 0 0   100%
src/bunches/base.py Bunch.__add__   100% 3 0 0   100% 0 0   100%
src/bunches/base.py Bunch.__iadd__   100% 2 0 0   100% 0 0   100%
src/bunches/base.py Bunch.__delitem__   100% 1 0 0   100% 0 0   100%
src/bunches/base.py Bunch.__iter__   100% 1 0 0   100% 0 0   100%
src/bunches/base.py Bunch.__len__   100% 1 0 0   100% 0 0   100%
src/bunches/base.py Bunch._resolve_returns   100% 1 0 0   100% 0 0   100%
src/bunches/base.py (no function)   100% 25 0 2   100% 0 0   100%
src/bunches/kinds.py (no function)   100% 7 0 0   100% 0 0   100%
src/bunches/mappings.py Dictionary.fromkeys   100% 1 0 0   100% 0 0   100%
src/bunches/mappings.py Dictionary.add   100% 1 0 0   100% 0 0   100%
src/bunches/mappings.py Dictionary.delete   100% 1 0 0   100% 0 0   100%
src/bunches/mappings.py Dictionary.get   100% 10 0 0   100% 6 0   100%
src/bunches/mappings.py Dictionary.items   100% 1 0 0   100% 0 0   100%
src/bunches/mappings.py Dictionary.keys   100% 1 0 0   100% 0 0   100%
src/bunches/mappings.py Dictionary.setdefault   100% 1 0 0   100% 0 0   100%
src/bunches/mappings.py Dictionary.subset   100% 11 0 0   100% 6 0   100%
src/bunches/mappings.py Dictionary.values   100% 1 0 0   100% 0 0   100%
src/bunches/mappings.py Dictionary.__contains__   100% 4 0 0   100% 0 0   100%
src/bunches/mappings.py Dictionary.__getitem__   100% 1 0 0   100% 0 0   100%
src/bunches/mappings.py Dictionary.__setitem__   100% 1 0 0   100% 0 0   100%
src/bunches/mappings.py Catalog.delete   100% 5 0 0   100% 4 0   100%
src/bunches/mappings.py Catalog.__getitem__   100% 19 0 0   100% 14 0   100%
src/bunches/mappings.py Catalog.__setitem__   100% 3 0 0   100% 2 0   100%
src/bunches/mappings.py ChainDict.maps   100% 1 0 0   100% 0 0   100%
src/bunches/mappings.py ChainDict.maps   100% 1 0 0   100% 0 0   100%
src/bunches/mappings.py ChainDict.maps   100% 1 0 0   100% 0 0   100%
src/bunches/mappings.py ChainDict.parents   100% 1 0 0   100% 0 0   100%
src/bunches/mappings.py ChainDict.fromkeys   100% 1 0 0   100% 0 0   100%
src/bunches/mappings.py ChainDict.add   100% 5 0 0   100% 4 0   100%
src/bunches/mappings.py ChainDict.delete   100% 7 0 0   100% 4 0   100%
src/bunches/mappings.py ChainDict.keys   100% 1 0 0   100% 0 0   100%
src/bunches/mappings.py ChainDict.new_child   100% 5 0 0   100% 4 0   100%
src/bunches/mappings.py ChainDict.subset   100% 12 0 0   100% 8 0   100%
src/bunches/mappings.py ChainDict.values   100% 1 0 0   100% 0 0   100%
src/bunches/mappings.py ChainDict.__contains__   100% 1 0 0   100% 0 0   100%
src/bunches/mappings.py ChainDict.__getitem__   100% 9 0 0   100% 6 0   100%
src/bunches/mappings.py ChainDict.__iter__   100% 1 0 0   100% 0 0   100%
src/bunches/mappings.py ChainDict.__len__   100% 1 0 0   100% 0 0   100%
src/bunches/mappings.py ChainDict.__setitem__   100% 3 0 0   100% 2 0   100%
src/bunches/mappings.py Repository.add   100% 5 0 0   100% 4 0   100%
src/bunches/mappings.py Repository._get_name   100% 4 0 0   100% 2 0   100%
src/bunches/mappings.py (no function)   100% 78 0 2   100% 0 0   100%
src/bunches/sequences.py Listing.add   100% 3 0 0   100% 2 0   100%
src/bunches/sequences.py Listing.delete   100% 1 0 0   100% 0 0   100%
src/bunches/sequences.py Listing.insert   100% 1 0 0   100% 0 0   100%
src/bunches/sequences.py Listing.prepend   100% 3 0 0   100% 2 0   100%
src/bunches/sequences.py Listing.subset   100% 12 0 0   100% 6 0   100%
src/bunches/sequences.py Listing._is_match   100% 1 0 0   100% 0 0   100%
src/bunches/sequences.py Listing.__getitem__   100% 1 0 0   100% 0 0   100%
src/bunches/sequences.py Listing.__setitem__   100% 1 0 0   100% 0 0   100%
src/bunches/sequences.py DictList.delete   100% 7 0 0   100% 4 0   100%
src/bunches/sequences.py DictList.get   100% 10 0 0   100% 6 0   100%
src/bunches/sequences.py DictList.items   100% 1 0 0   100% 0 0   100%
src/bunches/sequences.py DictList.keys   100% 2 0 0   100% 0 0   100%
src/bunches/sequences.py DictList.setdefault   100% 1 0 0   100% 0 0   100%
src/bunches/sequences.py DictList.update   100% 1 0 0   100% 0 0   100%
src/bunches/sequences.py DictList.values   100% 1 0 0   100% 0 0   100%
src/bunches/sequences.py DictList._is_match   100% 1 0 0   100% 0 0   100%
src/bunches/sequences.py DictList.__getitem__   100% 9 0 0   100% 6 0   100%
src/bunches/sequences.py DictList.__setitem__   100% 3 0 0   100% 2 0   100%
src/bunches/sequences.py (no function)   100% 37 0 2   100% 0 0   100%
src/bunches/settings.py set_key_namer   100% 3 0 0   100% 2 0   100%
src/bunches/settings.py set_subset_return   100% 4 0 0   100% 2 0   100%
src/bunches/settings.py (no function)   100% 12 0 2   100% 0 0   100%
src/bunches/utilities.py _capitalify   100% 1 0 0   100% 0 0   100%
src/bunches/utilities.py _is_sequence   100% 3 0 0   100% 2 0   100%
src/bunches/utilities.py _iterify   100% 8 0 0   100% 4 0   100%
src/bunches/utilities.py _namify   100% 8 0 0   100% 6 0   100%
src/bunches/utilities.py _return_subset   100% 10 0 0   100% 6 0   100%
src/bunches/utilities.py _snakify   100% 2 0 0   100% 0 0   100%
src/bunches/utilities.py _uniquify   100% 8 0 0   100% 4 0   100%
src/bunches/utilities.py (no function)   100% 14 0 2   100% 0 0   100%
tests/__init__.py (no function)   100% 1 0 0   100% 0 0   100%
tests/conftest.py _reset_settings   100% 5 0 0   100% 0 0   100%
tests/conftest.py (no function)   100% 14 0 0   100% 0 0   100%
tests/test_base.py MinimalBunch.add   100% 1 0 0   100% 0 0   100%
tests/test_base.py MinimalBunch.delete   100% 1 0 0   100% 0 0   100%
tests/test_base.py MinimalBunch.subset   0% 1 1 0   100% 0 0   0%
tests/test_base.py MinimalBunch.__contains__   100% 1 0 0   100% 0 0   100%
tests/test_base.py test_bunch_is_abstract   100% 10 0 0   100% 0 0   100%
tests/test_base.py test_bunch_is_abstract.NoSubset.__contains__   0% 1 1 0   100% 0 0   0%
tests/test_base.py test_collection_dunders   100% 5 0 0   100% 0 0   100%
tests/test_base.py test_add_operators   100% 9 0 0   100% 0 0   100%
tests/test_base.py test_delitem   100% 3 0 0   100% 0 0   100%
tests/test_base.py test_resolve_returns   100% 6 0 0   100% 0 0   100%
tests/test_base.py test_concrete_subclasses_are_bunches   100% 2 0 0   100% 0 0   100%
tests/test_base.py test_add_operators_all_classes   100% 9 0 0   100% 0 0   100%
tests/test_base.py (no function)   100% 21 0 0   100% 0 0   100%
tests/test_docs.py test_doc_examples_run   100% 10 0 0   100% 2 0   100%
tests/test_docs.py test_documented_results   100% 19 0 0   100% 0 0   100%
tests/test_docs.py (no function)   100% 10 0 0   100% 0 0   100%
tests/test_kinds.py test_subset_returns   100% 1 0 0   100% 0 0   100%
tests/test_kinds.py test_aliases   100% 2 0 0   100% 0 0   100%
tests/test_kinds.py test_removed_members   100% 2 0 0   100% 0 0   100%
tests/test_kinds.py (no function)   100% 6 0 0   100% 0 0   100%
tests/test_main.py test_all_exports   100% 3 0 0   100% 2 0   100%
tests/test_main.py test_metadata   100% 2 0 0   100% 0 0   100%
tests/test_main.py test_python_requirement   100% 4 0 0   100% 0 0   100%
tests/test_main.py test_py_typed   100% 2 0 0   100% 0 0   100%
tests/test_main.py (no function)   100% 9 0 0   100% 0 0   100%
tests/test_mappings.py TestDictionary.test_init   100% 4 0 0   100% 0 0   100%
tests/test_mappings.py TestDictionary.test_fromkeys   100% 5 0 0   100% 0 0   100%
tests/test_mappings.py TestDictionary.test_add   100% 4 0 0   100% 0 0   100%
tests/test_mappings.py TestDictionary.test_delete   100% 8 0 0   100% 0 0   100%
tests/test_mappings.py TestDictionary.test_get   100% 14 0 0   100% 0 0   100%
tests/test_mappings.py TestDictionary.test_setdefault   100% 4 0 0   100% 0 0   100%
tests/test_mappings.py TestDictionary.test_keys_values_items   100% 5 0 0   100% 0 0   100%
tests/test_mappings.py TestDictionary.test_getitem_setitem   100% 8 0 0   100% 0 0   100%
tests/test_mappings.py TestDictionary.test_mutable_mapping_methods   100% 7 0 0   100% 0 0   100%
tests/test_mappings.py TestDictionary.test_subset   100% 12 0 0   100% 0 0   100%
tests/test_mappings.py TestDictionary.test_subset_returns   100% 11 0 0   100% 0 0   100%
tests/test_mappings.py TestDictionary.test_subset_exclude_is_deep_copy   100% 4 0 0   100% 0 0   100%
tests/test_mappings.py TestDictionary.test_add_operators   100% 7 0 0   100% 0 0   100%
tests/test_mappings.py TestDictionary.test_equality_and_repr   100% 3 0 0   100% 0 0   100%
tests/test_mappings.py TestDictionary.test_fromkeys_default_value   100% 4 0 0   100% 0 0   100%
tests/test_mappings.py TestDictionary.test_get_stored_falsy_values   100% 4 0 0   100% 0 0   100%
tests/test_mappings.py TestDictionary.test_add_operator_is_deep_copy   100% 4 0 0   100% 0 0   100%
tests/test_mappings.py TestDictionary.test_add_operator_keeps_class_and_fields   100% 5 0 0   100% 0 0   100%
tests/test_mappings.py TestDictionary.test_popitem   100% 5 0 0   100% 0 0   100%
tests/test_mappings.py TestDictionary.test_tuple_keys   100% 6 0 0   100% 0 0   100%
tests/test_mappings.py TestDictionary.test_contains   100% 5 0 0   100% 0 0   100%
tests/test_mappings.py TestDictionary.test_subset_include_is_deep_copy   100% 7 0 0   100% 0 0   100%
tests/test_mappings.py TestDictionary.test_subset_keeps_shared_values   100% 5 0 0   100% 0 0   100%
tests/test_mappings.py TestCatalog.catalog   100% 1 0 0   100% 0 0   100%
tests/test_mappings.py TestCatalog.test_init   100% 4 0 0   100% 0 0   100%
tests/test_mappings.py TestCatalog.test_direct_access   100% 7 0 0   100% 0 0   100%
tests/test_mappings.py TestCatalog.test_all   100% 5 0 0   100% 0 0   100%
tests/test_mappings.py TestCatalog.test_default   100% 6 0 0   100% 0 0   100%
tests/test_mappings.py TestCatalog.test_none   100% 9 0 0   100% 0 0   100%
tests/test_mappings.py TestCatalog.test_list_of_keys   100% 3 0 0   100% 0 0   100%
tests/test_mappings.py TestCatalog.test_always_return_list   100% 4 0 0   100% 0 0   100%
tests/test_mappings.py TestCatalog.test_setitem   100% 7 0 0   100% 0 0   100%
tests/test_mappings.py TestCatalog.test_add_and_get   100% 6 0 0   100% 0 0   100%
tests/test_mappings.py TestCatalog.test_delete   100% 5 0 0   100% 0 0   100%
tests/test_mappings.py TestCatalog.test_delete_missing   100% 5 0 0   100% 0 0   100%
tests/test_mappings.py TestCatalog.test_delete_preserves_container   100% 5 0 0   100% 0 0   100%
tests/test_mappings.py TestCatalog.test_subset   100% 6 0 0   100% 0 0   100%
tests/test_mappings.py TestCatalog.test_tuple_key   100% 7 0 0   100% 0 0   100%
tests/test_mappings.py TestCatalog.test_default_with_missing_key   100% 2 0 0   100% 0 0   100%
tests/test_mappings.py TestCatalog.test_iteration   100% 2 0 0   100% 0 0   100%
tests/test_mappings.py TestCatalog.test_contains_wildcards   100% 8 0 0   100% 0 0   100%
tests/test_mappings.py TestChainDict.chain   100% 1 0 0   100% 0 0   100%
tests/test_mappings.py TestChainDict.test_init   100% 5 0 0   100% 0 0   100%
tests/test_mappings.py TestChainDict.test_maps   100% 5 0 0   100% 0 0   100%
tests/test_mappings.py TestChainDict.test_fromkeys   100% 5 0 0   100% 0 0   100%
tests/test_mappings.py TestChainDict.test_getitem_return_first   100% 5 0 0   100% 0 0   100%
tests/test_mappings.py TestChainDict.test_getitem_all_matches   100% 6 0 0   100% 0 0   100%
tests/test_mappings.py TestChainDict.test_setitem   100% 7 0 0   100% 0 0   100%
tests/test_mappings.py TestChainDict.test_keys_values_items   100% 3 0 0   100% 0 0   100%
tests/test_mappings.py TestChainDict.test_mapping_interface   100% 5 0 0   100% 0 0   100%
tests/test_mappings.py TestChainDict.test_add   100% 9 0 0   100% 0 0   100%
tests/test_mappings.py TestChainDict.test_delete   100% 6 0 0   100% 0 0   100%
tests/test_mappings.py TestChainDict.test_new_child_and_parents   100% 10 0 0   100% 0 0   100%
tests/test_mappings.py TestChainDict.test_subset   100% 12 0 0   100% 0 0   100%
tests/test_mappings.py TestChainDict.test_subset_returns   100% 6 0 0   100% 0 0   100%
tests/test_mappings.py TestChainDict.test_mutable_mapping_methods   100% 4 0 0   100% 0 0   100%
tests/test_mappings.py TestChainDict.test_new_child_defaults   100% 7 0 0   100% 0 0   100%
tests/test_mappings.py TestChainDict.test_get   100% 6 0 0   100% 0 0   100%
tests/test_mappings.py TestChainDict.test_fromkeys_default_value   100% 2 0 0   100% 0 0   100%
tests/test_mappings.py TestChainDict.test_add_operators   100% 6 0 0   100% 0 0   100%
tests/test_mappings.py TestChainDict.test_contains   100% 5 0 0   100% 0 0   100%
tests/test_mappings.py TestChainDict.test_parents_is_property   100% 3 0 0   100% 0 0   100%
tests/test_mappings.py TestRepository.test_init   100% 3 0 0   100% 0 0   100%
tests/test_mappings.py TestRepository.test_add_infers_names   100% 6 0 0   100% 0 0   100%
tests/test_mappings.py TestRepository.test_add_explicit_key   100% 7 0 0   100% 0 0   100%
tests/test_mappings.py TestRepository.test_add_unique_keys   100% 4 0 0   100% 2 0   100%
tests/test_mappings.py TestRepository.test_add_overwrite   100% 7 0 0   100% 0 0   100%
tests/test_mappings.py TestRepository.test_add_kwargs   100% 3 0 0   100% 0 0   100%
tests/test_mappings.py TestRepository.test_get_name_override   100% 6 0 0   100% 0 0   100%
tests/test_mappings.py TestRepository.test_get_name_override.Numbered._get_name   100% 1 0 0   100% 0 0   100%
tests/test_mappings.py TestRepository.test_get_name   100% 4 0 0   100% 0 0   100%
tests/test_mappings.py TestRepository.test_delete   100% 8 0 0   100% 0 0   100%
tests/test_mappings.py TestRepository.test_subset   100% 7 0 0   100% 0 0   100%
tests/test_mappings.py TestRepository.test_add_empty_string_key   100% 3 0 0   100% 0 0   100%
tests/test_mappings.py TestRepository.test_add_without_name_raises   100% 6 0 0   100% 0 0   100%
tests/test_mappings.py TestRepository.test_add_unique_keys_ending_in_digits   100% 4 0 0   100% 2 0   100%
tests/test_mappings.py (no function)   100% 85 0 0   100% 0 0   100%
tests/test_readme.py test_readme_examples   100% 11 0 0   100% 0 0   100%
tests/test_readme.py _run   100% 15 0 0   100% 8 0   100%
tests/test_readme.py (no function)   100% 10 0 0   100% 0 0   100%
tests/test_sequences.py TestListing.test_init   100% 3 0 0   100% 0 0   100%
tests/test_sequences.py TestListing.test_add   100% 8 0 0   100% 0 0   100%
tests/test_sequences.py TestListing.test_delete   100% 8 0 0   100% 0 0   100%
tests/test_sequences.py TestListing.test_insert_and_prepend   100% 10 0 0   100% 0 0   100%
tests/test_sequences.py TestListing.test_getitem_setitem   100% 10 0 0   100% 0 0   100%
tests/test_sequences.py TestListing.test_mutable_sequence_methods   100% 14 0 0   100% 0 0   100%
tests/test_sequences.py TestListing.test_subset   100% 9 0 0   100% 0 0   100%
tests/test_sequences.py TestListing.test_subset_preserves_order_of_contents   100% 2 0 0   100% 0 0   100%
tests/test_sequences.py TestListing.test_subset_returns   100% 8 0 0   100% 0 0   100%
tests/test_sequences.py TestListing.test_add_operators   100% 8 0 0   100% 0 0   100%
tests/test_sequences.py TestListing.test_equality   100% 2 0 0   100% 0 0   100%
tests/test_sequences.py TestListing.test_add_operator_is_deep_copy   100% 4 0 0   100% 0 0   100%
tests/test_sequences.py TestListing.test_add_listing   100% 5 0 0   100% 0 0   100%
tests/test_sequences.py TestListing.test_prepend_strings_and_tuples   100% 5 0 0   100% 0 0   100%
tests/test_sequences.py TestListing.test_subset_unhashable_items   100% 3 0 0   100% 0 0   100%
tests/test_sequences.py TestListing.test_subset_include_is_deep_copy   100% 4 0 0   100% 0 0   100%
tests/test_sequences.py TestDictList.dictlist   100% 1 0 0   100% 0 0   100%
tests/test_sequences.py TestDictList.test_init   100% 3 0 0   100% 0 0   100%
tests/test_sequences.py TestDictList.test_list_interface   100% 13 0 0   100% 0 0   100%
tests/test_sequences.py TestDictList.test_getitem_by_name   100% 10 0 0   100% 0 0   100%
tests/test_sequences.py TestDictList.test_getitem_multiple_matches   100% 6 0 0   100% 0 0   100%
tests/test_sequences.py TestDictList.test_setitem   100% 6 0 0   100% 0 0   100%
tests/test_sequences.py TestDictList.test_get   100% 14 0 0   100% 0 0   100%
tests/test_sequences.py TestDictList.test_keys_values_items   100% 5 0 0   100% 0 0   100%
tests/test_sequences.py TestDictList.test_update   100% 2 0 0   100% 0 0   100%
tests/test_sequences.py TestDictList.test_delete   100% 13 0 0   100% 0 0   100%
tests/test_sequences.py TestDictList.test_delete_preserves_container   100% 5 0 0   100% 0 0   100%
tests/test_sequences.py TestDictList.test_remove   100% 3 0 0   100% 0 0   100%
tests/test_sequences.py TestDictList.test_subset   100% 8 0 0   100% 0 0   100%
tests/test_sequences.py TestDictList.test_hybrid_use   100% 12 0 0   100% 0 0   100%
tests/test_sequences.py TestDictList.test_getitem_slice_and_negative_index   100% 3 0 0   100% 0 0   100%
tests/test_sequences.py TestDictList.test_custom_key_namer   100% 6 0 0   100% 0 0   100%
tests/test_sequences.py TestDictList.test_add_operators   100% 6 0 0   100% 0 0   100%
tests/test_sequences.py TestDictList.test_items_with_duplicate_names   100% 5 0 0   100% 0 0   100%
tests/test_sequences.py TestDictList.test_subset_by_name   100% 11 0 0   100% 0 0   100%
tests/test_sequences.py (no function)   100% 42 0 0   100% 0 0   100%
tests/test_settings.py test_defaults   100% 5 0 0   100% 0 0   100%
tests/test_settings.py test_set_key_namer   100% 9 0 0   100% 0 0   100%
tests/test_settings.py test_set_subset_return_options   100% 2 0 0   100% 0 0   100%
tests/test_settings.py test_set_subset_return   100% 8 0 0   100% 0 0   100%
tests/test_settings.py test_method_namer_removed   100% 2 0 0   100% 0 0   100%
tests/test_settings.py (no function)   100% 10 0 2   100% 0 0   100%
tests/test_utilities.py test_capitalify   100% 3 0 0   100% 0 0   100%
tests/test_utilities.py test_snakify   100% 4 0 0   100% 0 0   100%
tests/test_utilities.py test_is_sequence   100% 9 0 0   100% 0 0   100%
tests/test_utilities.py test_iterify   100% 7 0 0   100% 0 0   100%
tests/test_utilities.py test_namify   100% 12 0 0   100% 0 0   100%
tests/test_utilities.py test_namify_default   100% 6 0 0   100% 0 0   100%
tests/test_utilities.py test_namify_default.Meta.__name__   100% 1 0 0   100% 0 0   100%
tests/test_utilities.py test_return_subset   100% 17 0 0   100% 0 0   100%
tests/test_utilities.py test_uniquify   100% 7 0 0   100% 0 0   100%
tests/test_utilities.py test_uniquify_index   100% 3 0 0   100% 0 0   100%
tests/test_utilities.py test_is_sequence_bunches   100% 3 0 0   100% 0 0   100%
tests/test_utilities.py test_namify_class_with_name_attribute   100% 4 0 0   100% 0 0   100%
tests/test_utilities.py (no function)   100% 16 0 0   100% 0 0   100%
Total     99% 1522 2 12   100% 136 0   99%

No items found using the specified filter.

5 empty functions skipped.