diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-d8s-dicts.spec | 563 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 565 insertions, 0 deletions
@@ -0,0 +1 @@ +/d8s_dicts-0.6.0.tar.gz diff --git a/python-d8s-dicts.spec b/python-d8s-dicts.spec new file mode 100644 index 0000000..6d7e8bd --- /dev/null +++ b/python-d8s-dicts.spec @@ -0,0 +1,563 @@ +%global _empty_manifest_terminate_build 0 +Name: python-d8s-dicts +Version: 0.6.0 +Release: 1 +Summary: Democritus functions for working with Python dictionaries. +License: GNU Lesser General Public License v3 +URL: https://github.com/democritus-project/d8s-dicts +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/94/ab/0ca7a968f18fc3ef3aef7ff6d09367470483c185599e9b31b1fbf5ffde1a/d8s_dicts-0.6.0.tar.gz +BuildArch: noarch + +Requires: python3-d8s-hypothesis +Requires: python3-dictdiffer +Requires: python3-hypothesis +Requires: python3-more-itertools +Requires: python3-importlib-metadata + +%description +# Democritus Dicts + +[](https://pypi.python.org/pypi/d8s-dicts) +[](https://github.com/democritus-project/d8s-dicts/actions) +[](https://github.com/democritus-project/d8s-dicts/actions) +[](https://codecov.io/gh/democritus-project/d8s-dicts) +[](https://semver.org/spec/v2.0.0.html) +[](https://github.com/psf/black) +[](https://choosealicense.com/licenses/lgpl-3.0/) + +Democritus functions<sup>[1]</sup> for working with Python dictionaries. + +[1] Democritus functions are <i>simple, effective, modular, well-tested, and well-documented</i> Python functions. + +We use `d8s` (pronounced "dee-eights") as an abbreviation for `democritus` (you can read more about this [here](https://github.com/democritus-project/roadmap#what-is-d8s)). + +## Installation + +``` +pip install d8s-dicts +``` + +## Usage + +You import the library like: + +```python +from d8s_dicts import * +``` + +Once imported, you can use any of the functions listed below. + +## Functions + + - ```python + def dict_filter_by_values(dictionary: dict, filter_function: Callable) -> dict: + """.""" + ``` + - ```python + def dict_filter_by_keys(dictionary: dict, filter_function: Callable) -> dict: + """.""" + ``` + - ```python + def is_dict(possible_dict: Any) -> bool: + """Return whether or not the possible_dict is a dictionary.""" + ``` + - ```python + def dict_keys(dictionary: dict) -> List[Any]: + """Get the dictionary's keys (as a list).""" + ``` + - ```python + def is_valid_dict_key(key: Any) -> bool: + """Return whether or not a dictionary could have the given key.""" + ``` + - ```python + def dict_values(dictionary: dict) -> List[Any]: + """Get the dictionary's values (as a list).""" + ``` + - ```python + def dict_has_value(dictionary: dict, value) -> bool: + """Return whether or not the dictionary has the given value (without evaluating the value).""" + ``` + - ```python + def dict_key_types(dictionary: dict) -> list: + """Return a list with the type of each key in the dictionary.""" + ``` + - ```python + 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.""" + ``` + - ```python + def dict_keys_with_value(dictionary: dict, value): + """Find the key(s) in the dictionary which have the given value.""" + ``` + - ```python + def dict_sort_by_keys(dictionary: dict, **kwargs) -> collections.OrderedDict: + """Sort the dictionary based on the dictionary's keys.""" + ``` + - ```python + def dict_sort_by_values(dictionary: dict, **kwargs) -> collections.OrderedDict: + """Sort the dictionary based on the dictionary's values.""" + ``` + - ```python + 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.""" + ``` + - ```python + 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.""" + ``` + - ```python + 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.""" + ``` + - ```python + def dict_examples(n: int = 10, **kwargs) -> List[Dict[Any, Any]]: + """Create n dictionary examples.""" + ``` + - ```python + 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.""" + ``` + - ```python + def dicts_diffs(dictionary_a: dict, dictionary_b: dict) -> list: + """.""" + ``` + - ```python + 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.""" + ``` + - ```python + 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.""" + ``` + - ```python + def dict_key_delete(dictionary: dict, key: Any) -> dict: + """Delete the given key from the given dictionary.""" + ``` + - ```python + 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.""" + ``` + - ```python + 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.""" + ``` + - ```python + def dict_keys_with_max_value(dictionary: dict) -> List[DictKeyType]: + """.""" + ``` + - ```python + def dict_keys_with_min_value(dictionary: dict) -> List[DictKeyType]: + """.""" + ``` + - ```python + def dict_value_with_max_key(dictionary: dict) -> Any: + """.""" + ``` + - ```python + 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: + +- [contribute to this project ๐ฅ][contributing] +- [test it ๐งช][local-dev] +- [lint it ๐งน][local-dev] +- [explore it ๐ญ][local-dev] + +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](https://github.com/audreyr/cookiecutter) and Floyd Hightower's [Python project template](https://github.com/fhightower-templates/python-project-template). + +[contributing]: https://github.com/democritus-project/.github/blob/main/CONTRIBUTING.md#contributing-a-pr- +[local-dev]: https://github.com/democritus-project/.github/blob/main/CONTRIBUTING.md#local-development- + + + + +%package -n python3-d8s-dicts +Summary: Democritus functions for working with Python dictionaries. +Provides: python-d8s-dicts +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-d8s-dicts +# Democritus Dicts + +[](https://pypi.python.org/pypi/d8s-dicts) +[](https://github.com/democritus-project/d8s-dicts/actions) +[](https://github.com/democritus-project/d8s-dicts/actions) +[](https://codecov.io/gh/democritus-project/d8s-dicts) +[](https://semver.org/spec/v2.0.0.html) +[](https://github.com/psf/black) +[](https://choosealicense.com/licenses/lgpl-3.0/) + +Democritus functions<sup>[1]</sup> for working with Python dictionaries. + +[1] Democritus functions are <i>simple, effective, modular, well-tested, and well-documented</i> Python functions. + +We use `d8s` (pronounced "dee-eights") as an abbreviation for `democritus` (you can read more about this [here](https://github.com/democritus-project/roadmap#what-is-d8s)). + +## Installation + +``` +pip install d8s-dicts +``` + +## Usage + +You import the library like: + +```python +from d8s_dicts import * +``` + +Once imported, you can use any of the functions listed below. + +## Functions + + - ```python + def dict_filter_by_values(dictionary: dict, filter_function: Callable) -> dict: + """.""" + ``` + - ```python + def dict_filter_by_keys(dictionary: dict, filter_function: Callable) -> dict: + """.""" + ``` + - ```python + def is_dict(possible_dict: Any) -> bool: + """Return whether or not the possible_dict is a dictionary.""" + ``` + - ```python + def dict_keys(dictionary: dict) -> List[Any]: + """Get the dictionary's keys (as a list).""" + ``` + - ```python + def is_valid_dict_key(key: Any) -> bool: + """Return whether or not a dictionary could have the given key.""" + ``` + - ```python + def dict_values(dictionary: dict) -> List[Any]: + """Get the dictionary's values (as a list).""" + ``` + - ```python + def dict_has_value(dictionary: dict, value) -> bool: + """Return whether or not the dictionary has the given value (without evaluating the value).""" + ``` + - ```python + def dict_key_types(dictionary: dict) -> list: + """Return a list with the type of each key in the dictionary.""" + ``` + - ```python + 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.""" + ``` + - ```python + def dict_keys_with_value(dictionary: dict, value): + """Find the key(s) in the dictionary which have the given value.""" + ``` + - ```python + def dict_sort_by_keys(dictionary: dict, **kwargs) -> collections.OrderedDict: + """Sort the dictionary based on the dictionary's keys.""" + ``` + - ```python + def dict_sort_by_values(dictionary: dict, **kwargs) -> collections.OrderedDict: + """Sort the dictionary based on the dictionary's values.""" + ``` + - ```python + 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.""" + ``` + - ```python + 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.""" + ``` + - ```python + 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.""" + ``` + - ```python + def dict_examples(n: int = 10, **kwargs) -> List[Dict[Any, Any]]: + """Create n dictionary examples.""" + ``` + - ```python + 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.""" + ``` + - ```python + def dicts_diffs(dictionary_a: dict, dictionary_b: dict) -> list: + """.""" + ``` + - ```python + 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.""" + ``` + - ```python + 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.""" + ``` + - ```python + def dict_key_delete(dictionary: dict, key: Any) -> dict: + """Delete the given key from the given dictionary.""" + ``` + - ```python + 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.""" + ``` + - ```python + 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.""" + ``` + - ```python + def dict_keys_with_max_value(dictionary: dict) -> List[DictKeyType]: + """.""" + ``` + - ```python + def dict_keys_with_min_value(dictionary: dict) -> List[DictKeyType]: + """.""" + ``` + - ```python + def dict_value_with_max_key(dictionary: dict) -> Any: + """.""" + ``` + - ```python + 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: + +- [contribute to this project ๐ฅ][contributing] +- [test it ๐งช][local-dev] +- [lint it ๐งน][local-dev] +- [explore it ๐ญ][local-dev] + +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](https://github.com/audreyr/cookiecutter) and Floyd Hightower's [Python project template](https://github.com/fhightower-templates/python-project-template). + +[contributing]: https://github.com/democritus-project/.github/blob/main/CONTRIBUTING.md#contributing-a-pr- +[local-dev]: https://github.com/democritus-project/.github/blob/main/CONTRIBUTING.md#local-development- + + + + +%package help +Summary: Development documents and examples for d8s-dicts +Provides: python3-d8s-dicts-doc +%description help +# Democritus Dicts + +[](https://pypi.python.org/pypi/d8s-dicts) +[](https://github.com/democritus-project/d8s-dicts/actions) +[](https://github.com/democritus-project/d8s-dicts/actions) +[](https://codecov.io/gh/democritus-project/d8s-dicts) +[](https://semver.org/spec/v2.0.0.html) +[](https://github.com/psf/black) +[](https://choosealicense.com/licenses/lgpl-3.0/) + +Democritus functions<sup>[1]</sup> for working with Python dictionaries. + +[1] Democritus functions are <i>simple, effective, modular, well-tested, and well-documented</i> Python functions. + +We use `d8s` (pronounced "dee-eights") as an abbreviation for `democritus` (you can read more about this [here](https://github.com/democritus-project/roadmap#what-is-d8s)). + +## Installation + +``` +pip install d8s-dicts +``` + +## Usage + +You import the library like: + +```python +from d8s_dicts import * +``` + +Once imported, you can use any of the functions listed below. + +## Functions + + - ```python + def dict_filter_by_values(dictionary: dict, filter_function: Callable) -> dict: + """.""" + ``` + - ```python + def dict_filter_by_keys(dictionary: dict, filter_function: Callable) -> dict: + """.""" + ``` + - ```python + def is_dict(possible_dict: Any) -> bool: + """Return whether or not the possible_dict is a dictionary.""" + ``` + - ```python + def dict_keys(dictionary: dict) -> List[Any]: + """Get the dictionary's keys (as a list).""" + ``` + - ```python + def is_valid_dict_key(key: Any) -> bool: + """Return whether or not a dictionary could have the given key.""" + ``` + - ```python + def dict_values(dictionary: dict) -> List[Any]: + """Get the dictionary's values (as a list).""" + ``` + - ```python + def dict_has_value(dictionary: dict, value) -> bool: + """Return whether or not the dictionary has the given value (without evaluating the value).""" + ``` + - ```python + def dict_key_types(dictionary: dict) -> list: + """Return a list with the type of each key in the dictionary.""" + ``` + - ```python + 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.""" + ``` + - ```python + def dict_keys_with_value(dictionary: dict, value): + """Find the key(s) in the dictionary which have the given value.""" + ``` + - ```python + def dict_sort_by_keys(dictionary: dict, **kwargs) -> collections.OrderedDict: + """Sort the dictionary based on the dictionary's keys.""" + ``` + - ```python + def dict_sort_by_values(dictionary: dict, **kwargs) -> collections.OrderedDict: + """Sort the dictionary based on the dictionary's values.""" + ``` + - ```python + 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.""" + ``` + - ```python + 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.""" + ``` + - ```python + 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.""" + ``` + - ```python + def dict_examples(n: int = 10, **kwargs) -> List[Dict[Any, Any]]: + """Create n dictionary examples.""" + ``` + - ```python + 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.""" + ``` + - ```python + def dicts_diffs(dictionary_a: dict, dictionary_b: dict) -> list: + """.""" + ``` + - ```python + 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.""" + ``` + - ```python + 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.""" + ``` + - ```python + def dict_key_delete(dictionary: dict, key: Any) -> dict: + """Delete the given key from the given dictionary.""" + ``` + - ```python + 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.""" + ``` + - ```python + 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.""" + ``` + - ```python + def dict_keys_with_max_value(dictionary: dict) -> List[DictKeyType]: + """.""" + ``` + - ```python + def dict_keys_with_min_value(dictionary: dict) -> List[DictKeyType]: + """.""" + ``` + - ```python + def dict_value_with_max_key(dictionary: dict) -> Any: + """.""" + ``` + - ```python + 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: + +- [contribute to this project ๐ฅ][contributing] +- [test it ๐งช][local-dev] +- [lint it ๐งน][local-dev] +- [explore it ๐ญ][local-dev] + +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](https://github.com/audreyr/cookiecutter) and Floyd Hightower's [Python project template](https://github.com/fhightower-templates/python-project-template). + +[contributing]: https://github.com/democritus-project/.github/blob/main/CONTRIBUTING.md#contributing-a-pr- +[local-dev]: https://github.com/democritus-project/.github/blob/main/CONTRIBUTING.md#local-development- + + + + +%prep +%autosetup -n d8s-dicts-0.6.0 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-d8s-dicts -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Fri May 05 2023 Python_Bot <Python_Bot@openeuler.org> - 0.6.0-1 +- Package Spec generated @@ -0,0 +1 @@ +1f88d56638a594863841784b5b9ca446 d8s_dicts-0.6.0.tar.gz |