Metadata-Version: 2.1
Name: dict-toolbox
Version: 1.15
Summary: Dict tools for Python projects
Home-page: https://gitlab.com/saltstack/open/dict-toolbox
Author: Tyler Johnson
Author-email: tjohnson@saltstack.com
License: UNKNOWN
Description: ============
        DICT-TOOLBOX
        ============
        
        INSTALLATION
        ============
        .. code-block:: bash
        
            pip install dict-toolbox
        
        Contains various dict tools from the `Salt Project <https://github.com/saltstack/salt>`_.
        
        Differ
        ======
        .. code-block:: python
        
            from dict_tools import differ
        
        deep_diff
        ---------
        Computes the difference between to dictionaries.
        
        recursive_diff
        --------------
        Computes the recursive difference between two dictionaries.
        
        Trim
        ====
        .. code-block:: python
        
            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
        ======
        .. code-block:: python
        
            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
        ===
        .. code-block:: python
        
            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
        ======
        .. code-block:: python
        
            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
        =====
        .. code-block:: python
        
            from dict_tools import mysql
        
        to_num
        ------
        Convert a string to a number.
        
        
        to_dict
        -------
        Convert MySQL-style output to a python dictionary.
        
        
        DATA
        ====
        .. code-block:: python
        
            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
        ===
        .. code-block:: python
        
            from dict_tools import arg
        
        yamlify_arg
        -----------
        yaml.safe_load the arg
        
        
        Aggregation
        ===========
        .. code-block:: python
        
            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.
        
Platform: UNKNOWN
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Development Status :: 5 - Production/Stable
Requires-Python: >=3.6
Description-Content-Type: text/x-rst
