Skip to main content

Dict tools for Python projects

Project description

INSTALLATION

pip install dict-toolbox

Contains various dict tools from the Salt Project.

Differ

from dict_tools import differ

deep_diff

Computes the difference between to dictionaries.

recursive_diff

Computes the recursive difference between two dictionaries.

Trim

from dict_tools import trim

trim_dict

Takes a dictionary and iterates over its keys, looking for large values and replacing them with a trimmed string.

Update

from dict_tools import trim

update

Merges “upd” recursively into the target

merge_list

merge_recurse

merge_aggregate

merge_overwrite

merge

ensure_dict_key

Ensures that in_dict contains the series of recursive keys defined in keys.

set_dict_key_value

Ensures that in_dict contains the series of recursive keys defined in keys. Also sets whatever is at the end of in_dict traversed with keys to value.

update_dict_key_value

Ensures that in_dict contains the series of recursive keys defined in keys. Also updates the dict, that is at the end of in_dict traversed with keys, with value.

append_dict_key_value

Ensures that in_dict contains the series of recursive keys defined in keys. Also appends value to the list that is at the end of in_dict traversed with keys.

extend_dict_key_value

Ensures that in_dict contains the series of recursive keys defined in keys. Also extends the list, that is at the end of in_dict traversed with keys, with value.

XML

from dict_tools import xml

to_dict

Convert an XML tree into a dict. The tree that is passed in must be an ElementTree object.

YAMLEX

from dict_tools import yamlex

YAMLEX is a format that allows for things like sls files to be more intuitive.

SLSMap

Ensures that dict str() and repr() are YAML friendly.

SLSString

Ensures that str str() and repr() are YAML friendly.

AggregatedMap

AggregatedSequence

Dumper

sls dumper.

merge_recursive

Merge obj_b into obj_a.

MySQL

from dict_tools import mysql

to_num

Convert a string to a number.

to_dict

Convert MySQL-style output to a python dictionary.

DATA

from dict_tools import data

CaseInsensitiveDict

Inspired by requests’ case-insensitive dict implementation, but works with non-string keys as well.

ImmutableDict

An immutable mapping that can access it’s keys via the namespace

NamespaceDict

A dictionary that can access it’s string keys through the namespace

compare_dicts

Compare before and after results from various functions, returning a dict describing the chagnes that were made.

is_dictlist

Returns True if data is a list of one-element dicts (as found in many SLS schemas)

object_to_dict

Convert an arbitrary object to a dictionary

recursive_diff

Performs a recursive diff on mappings and/or iterables and returns the result in a {‘old’: values, ‘new’: values}-style. Compares dicts and sets unordered (obviously), OrderedDicts and Lists ordered (but only if both old and new are of the same type), all other Mapping types unordered, and all other iterables ordered.

repack_dictlist

Takes a list of one-element dicts (as found in many SLS schemas) and repacks into a single dictionary.

subdict_match

Check for a match in a dictionary using a delimiter character to denote levels of subdicts, and also allowing the delimiter character to be matched. Thus, ‘foo:bar:baz’ will match data[‘foo’] == ‘bar:baz’ and data[‘foo’][‘bar’] == ‘baz’. The latter would take priority over the former, as more deeply-nested matches are tried first.

traverse_dict

Traverse a dict using a colon-delimited (or otherwise delimited, using the ‘delimiter’ param) target string. The target ‘foo:bar:baz’ will return data[‘foo’][‘bar’][‘baz’] if this value exists, and will otherwise return the dict in the default argument.

traverse_dict_and_list

Traverse a dict or list using a colon-delimited (or otherwise delimited, using the ‘delimiter’ param) target string. The target ‘foo:bar:0’ will return data[‘foo’][‘bar’][0] if this value exists, and will otherwise return the dict in the default argument. Function will automatically determine the target type. The target ‘foo:bar:0’ will return data[‘foo’][‘bar’][0] if data like {‘foo’:{‘bar’:[‘baz’]}} , if data like {‘foo’:{‘bar’:{‘0’:’baz’}}} then return data[‘foo’][‘bar’][‘0’]

Arg

from dict_tools import arg

yamlify_arg

yaml.safe_load the arg

Aggregation

from dict_tools import aggregation

Makes it possible to introspect dataset and aggregate nodes when it is instructed

levelise

Describe which levels are allowed to do deep merging.

mark

Convert obj into an Aggregate instance

aggregate

Merge obj_b into obj_a.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dict-toolbox-4.1.1.tar.gz (30.6 kB view details)

Uploaded Source

Built Distribution

dict_toolbox-4.1.1-py3-none-any.whl (33.5 kB view details)

Uploaded Python 3

File details

Details for the file dict-toolbox-4.1.1.tar.gz.

File metadata

  • Download URL: dict-toolbox-4.1.1.tar.gz
  • Upload date:
  • Size: 30.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.9.6 readme-renderer/40.0 requests/2.31.0 requests-toolbelt/1.0.0 urllib3/2.0.4 tqdm/4.65.0 importlib-metadata/6.8.0 keyring/24.2.0 rfc3986/2.0.0 colorama/0.4.6 CPython/3.9.17

File hashes

Hashes for dict-toolbox-4.1.1.tar.gz
Algorithm Hash digest
SHA256 8c03d6a0d67449bf75638de63aba52e81f243f5a8072897be202002b637a2275
MD5 394f794d3678e42070d155d053874181
BLAKE2b-256 7d5bce28df2483c42db7ddcdce0ae1e8093bcaee7d2a4475ab6e22877498e45b

See more details on using hashes here.

File details

Details for the file dict_toolbox-4.1.1-py3-none-any.whl.

File metadata

  • Download URL: dict_toolbox-4.1.1-py3-none-any.whl
  • Upload date:
  • Size: 33.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.9.6 readme-renderer/40.0 requests/2.31.0 requests-toolbelt/1.0.0 urllib3/2.0.4 tqdm/4.65.0 importlib-metadata/6.8.0 keyring/24.2.0 rfc3986/2.0.0 colorama/0.4.6 CPython/3.9.17

File hashes

Hashes for dict_toolbox-4.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d6e4628cb822e3dd52cd8f3a266132f86ce860a252fafe1f160f23ac53c4ddb0
MD5 703d65d1f3b42b256474f7e462a8503d
BLAKE2b-256 7f3e9b468310ea7d918bb19bcb9afa94b6cca94f30d28b17f705facf93f57b22

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page