Skip to main content

DICT-TOOLBOX

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.

Metadata

Release files for dict-toolbox 2

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

Source distribution (sdist)

Source distribution for dict-toolbox 2
File Size Uploaded
dict-toolbox-2.tar.gz 24.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dict-toolbox 2
File Interpreter ABI Platform
dict_toolbox-2-py3-none-any.whl Python 3 none any Details

Total release size: 56.4 kB

Release files / dict-toolbox-2.tar.gz

Download URL dict-toolbox-2.tar.gz
Size 24.2 kB
Tags Source
SHA-256 checksum
How to use checksums
bc8ebb9e57b1c21a4e682cb0446332b53a8419d40289ad2f94294be01fa4ff70
BLAKE2b-256 checksum
How to use checksums
dc610b70eb812a3bf19972feeccd290c1ce9387c79444706eb2337c1782012ce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.2 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.9.1

Release files / dict_toolbox-2-py3-none-any.whl

Download URL dict_toolbox-2-py3-none-any.whl
Size 32.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
18cb43e69ea7f0d63db80691d225ed9fb38e700b7f53bfdabdb71d34c8c6c861
BLAKE2b-256 checksum
How to use checksums
d3d218b3f1430379cc5d608740a1885b07d81fdce1e3303ea473d75da39f894b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.2 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.9.1

Release history Release notifications | RSS feed

5.0.0

2 release files

4.1.1

2 release files

4.1.0

2 release files

4.0.0

2 release files

3.1.2

2 release files

3.1.1

2 release files

3.1.0

2 release files

3.0.3

2 release files

3.0.2

2 release files

3.0.1

2 release files

3.0.0

2 release files

2.3.2

2 release files

2.3.1

2 release files

2.3.0

2 release files

2.2.0

2 release files

2.1.2

2 release files

2.1.1

2 release files

2.1.0

2 release files

2.0.1

2 release files

This release

2 This release

2 release files

1.16

2 release files

1.15

2 release files

1.14

2 release files

1.12

2 release files

1.11

2 release files

1.9

2 release files

1.8

2 release files

1.7

2 release files

1.6

2 release files

1.5

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