A collection of nice utility functions for python
Project description
Understreck
A collection of nice utility functions for python
Free software: GNU General Public License v3
Documentation: https://understreck.readthedocs.io.
Features
Perform a safe get on a nested dictionary with the nested_get function
Split a list into chunks
Filter a list of dictionaries
Strip indents from multiline strings
Examples
Get example:
import understreck as _ test_dictionary = { "foo": { "second_level": {"third_level": "it works", "third_level_sibling": False}, "second_level_list": ["Hello", "World", {"planet": "Earth"}, ["Hello", "World", {"planet": "jupiter"}, ]], } } # Using dot delimited strings result = _.get(test_dictionary, "foo.second_level.third_level") # result == "it works" result = _.get(test_dictionary, "foo.second_level.DOES_NOT_EXIST") # result == None # Using a list or tuple result = _.get(test_dictionary, ["foo", "second_level", "third_level"]) # result == "it works" result = _.get(test_dictionary, ["foo", "second_level", "DOES_NOT_EXIST"]) # result == None # Getting elements in list result = _.get(test_dictionary, "foo.second_level_list[0]") # result == "Hello" result = _.get(test_dictionary, "foo.second_level_list[1]") # result == "World" result = _.get(test_dictionary, "foo.second_level_list[2].planet") # result == "Earth" # Getting a property in a nested list nested_list = { "foo": { "bar": [ "x", [ "first", "second", {"name": "Hello World"} ] ] } } result = _.get(nested_list, "foo.bar[1][2].name") # result == "Hello World"
Chunks example:
import understreck as _ to_chunk = ["one", "two", "three", "four", "five"] result = _.chunks.split(to_chunk, 2) # result == [["one", "two", "three"], ["four", "five"]]
Filter example:
import understreck as _ users = [ {"user": "barney", "age": 36, "active": True}, {"user": "fred", "age": 40, "active": False}, ] # Using a lambda function result = _.filter(users, lambda x: not x.get("active")) # result == [{"user": "fred", "age": 40, "active": False}] # Using partial dictionary result = _.filter(users, {"age": 36, "active": True}) # result == [{"user": "barney", "age": 36, "active": True}] # Using a list with a property name and value result = _.filter(users, ["active", False]) # result == [{"user": "fred", "age": 40, "active": False}] # Using a list with a property name. The value must be truthy. result = _.filter(users, ["active"]) # result == [{"user": "barney", "age": 36, "active": True}]
Strip indents example:
import understreck as _ def some_function(): to_strip = """This is a multi-line string""" _.strip(to_strip) # "This is a\nmulti-line\nstring"
Credits
I have to credit the Lodash project for inspiration!
This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.
History
Unreleased
1.0.0 (2020-03-03)
Get elements from nested lists
0.5.1 (2019-11-09)
Updates dev dependencies
0.5.0 (2019-05-03)
Updates dev dependencies
Moves to the new repository
0.4.0 (2019-05-03)
Adds Understreck.strip that strips indents
0.3.0 (2019-05-03)
Adds Understreck.filter with inspired by https://lodash.com/docs/4.17.11#filter
Updated the travis button URL
Replaced nested_get with get in the README. (nested_get still works)
Black formatting
0.2.1 (2018-12-10)
Add Understreck.chunks
0.2.0 (2018-11-12)
Add get as an alias for nested get
0.1.1 (2018-11-02)
Update the readme
0.1.0 (2018-11-02)
First release on PyPI.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file understreck-1.0.0.tar.gz
.
File metadata
- Download URL: understreck-1.0.0.tar.gz
- Upload date:
- Size: 27.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 639241d07131376812788a47aa85c1f466222875c24fbcfdba73302a118fb23e |
|
MD5 | ad5357546e671b8d29ecea84a826f3f4 |
|
BLAKE2b-256 | 3a8ade81ecf22a63a90fe3255f800c7cc948a9bad613439e1c8c3e3fa6f469bc |
File details
Details for the file understreck-1.0.0-py2.py3-none-any.whl
.
File metadata
- Download URL: understreck-1.0.0-py2.py3-none-any.whl
- Upload date:
- Size: 7.2 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 81efea9205a47e549388cd0c71c084ff06b8be0fcc929e5db1408ea097d13595 |
|
MD5 | b05602c47454ab8871964cefa25e8516 |
|
BLAKE2b-256 | f2a8f6fde6a70b096a0b4938c2a13e14a1ce51e7ae22689a26204e2fc0e2c02d |