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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
|