Skip to main content

Democritus Dicts

PyPI CI Lint codecov The Democritus Project uses semver version 2.0.0 The Democritus Project uses ruff to format and lint code License: LGPL v3

Democritus functions[1] for working with Python dictionaries.

[1] Democritus functions are simple, effective, modular, well-tested, and well-documented Python functions.

We use d8s (pronounced "dee-eights") as an abbreviation for democritus (you can read more about this here).

Installation

pip install d8s-dicts

Usage

You import the library like:

from d8s_dicts import *

Once imported, you can use any of the functions listed below.

Functions

  • def dict_filter_by_values(dictionary: dict, filter_function: Callable) -> dict:
        """."""
    
  • def dict_filter_by_keys(dictionary: dict, filter_function: Callable) -> dict:
        """."""
    
  • def is_dict(possible_dict: Any) -> bool:
        """Return whether or not the possible_dict is a dictionary."""
    
  • def dict_keys(dictionary: dict) -> List[Any]:
        """Get the dictionary's keys (as a list)."""
    
  • def is_valid_dict_key(key: Any) -> bool:
        """Return whether or not a dictionary could have the given key."""
    
  • def dict_values(dictionary: dict) -> List[Any]:
        """Get the dictionary's values (as a list)."""
    
  • def dict_has_value(dictionary: dict, value) -> bool:
        """Return whether or not the dictionary has the given value (without evaluating the value)."""
    
  • def dict_key_types(dictionary: dict) -> list:
        """Return a list with the type of each key in the dictionary."""
    
  • def dict_value_types(dictionary: dict) -> dict:
        """Return a dictionary with the same keys and the type of each value in place of the actual value."""
    
  • def dict_keys_with_value(dictionary: dict, value):
        """Find the key(s) in the dictionary which have the given value."""
    
  • def dict_sort_by_keys(dictionary: dict, **kwargs) -> collections.OrderedDict:
        """Sort the dictionary based on the dictionary's keys."""
    
  • def dict_sort_by_values(dictionary: dict, **kwargs) -> collections.OrderedDict:
        """Sort the dictionary based on the dictionary's values."""
    
  • def dicts_sort_by_value_at_key(dictionaries: List[Dict[Any, Any]], key, **kwargs) -> List[Dict[Any, Any]]:
        """Sort the given dictionaries (we are assuming that we get a list of dictionaries) based on each dictionary's value at the given key."""
    
  • def dict_flip(dictionary: dict, *, flatten_values: bool = False, flip_lists_and_sets: bool = False) -> dict:
        """Flip the dictionary's keys and values; all of the values become keys and keys become values."""
    
  • def dict_delistify_values(dictionary: dict) -> dict:
        """For all values in the given dictionary that are lists whose lengths are one, replace the list of length one with the value in the list."""
    
  • def dict_examples(n: int = 10, **kwargs) -> List[Dict[Any, Any]]:
        """Create n dictionary examples."""
    
  • def dict_add(dictionary: Dict[Any, List[Any]], key: Any, value: Any) -> Dict[Any, List[Any]]:
        """Add the given value to the dictionary at the given key. This function expects that all values of the dictionary parameter are lists."""
    
  • def dicts_diffs(dictionary_a: dict, dictionary_b: dict) -> list:
        """."""
    
  • def dict_copy_value_at_key(dictionary: dict, key: Any, new_key: Any) -> dict:
        """Copy the value at the given key into the new key."""
    
  • def dict_move_value_at_key(dictionary: dict, old_key: Any, new_key: Any) -> dict:
        """Move the given key and its values into the new key."""
    
  • def dict_key_delete(dictionary: dict, key: Any) -> dict:
        """Delete the given key from the given dictionary."""
    
  • def dict_delete_items(dictionary: dict, values_to_delete: List[Any] = None, keys_to_delete: List[Any] = None) -> dict:
        """Delete all items from the dictionary if the item's value is in values_to_delete or the item's key is in keys_to_delete."""
    
  • def dict_delete_empty_values(dictionary: dict) -> dict:
        """Delete all key-values pairs from the dictionary if the value is an empty strings, empty list, zero, False or None."""
    
  • def dict_keys_with_max_value(dictionary: dict) -> List[DictKeyType]:
        """."""
    
  • def dict_keys_with_min_value(dictionary: dict) -> List[DictKeyType]:
        """."""
    
  • def dict_value_with_max_key(dictionary: dict) -> Any:
        """."""
    
  • def dict_value_with_min_key(dictionary: dict) -> Any:
        """."""
    

Development

👋  If you want to get involved in this project, we have some short, helpful guides below:

If you have any questions or there is anything we did not cover, please raise an issue and we'll be happy to help.

Credits

This package was created with Cookiecutter and Floyd Hightower's Python project template.

Metadata

Release files for d8s-dicts 0.7.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for d8s-dicts 0.7.0
File Size Uploaded
d8s_dicts-0.7.0.tar.gz 94.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for d8s-dicts 0.7.0
File Interpreter ABI Platform
d8s_dicts-0.7.0-py3-none-any.whl Python 3 none any Details

Total release size: 116.6 kB

Release files / d8s_dicts-0.7.0.tar.gz

Download URL d8s_dicts-0.7.0.tar.gz
Size 94.4 kB
Tags Source
SHA-256 checksum
How to use checksums
9f8eef480dff446054443eb25615b6669efd4a77b40d2c556d6d3ed9f5796a1f
BLAKE2b-256 checksum
How to use checksums
2d81ae1168e8bb0a0c52feda422f2837b7a59ab8afce0386b1272d70c19f85c0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 1, 2026.

Transparency log

Release files / d8s_dicts-0.7.0-py3-none-any.whl

Download URL d8s_dicts-0.7.0-py3-none-any.whl
Size 22.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f8bcd5c2d64f9fc907986ada1d6cc28ddd427964ee71e2ce8059805d51bbc85b
BLAKE2b-256 checksum
How to use checksums
504e63a34eb570b968bff60a3ab2c33cc15a4cd3ee2a97456a43f3f4b77bd893
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 1, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.7.0 This release

2 release files

0.6.0

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page