Have you ever needed to transform a `whatever python object` in depth? So this one is for you. =]
Project description
pyrecursive
Have you ever needed to transform a whatever python object
in depth? So this one is for you. =]
Installation:
pip install pyrecursive
Usage:
from pyrecursive import pyrecursive
def double(obj):
return x * 2
pyrecursive(42, double)
# result: 84
pyrecursive([1, 2, 3, [4, 5, [6], 7], 8, 9, 'x'], double)
# result: [2, 4, 6, [8, 10, [12], 14], 16, 18, 'xx']
pyrecursive({'hamster': [1, 2, 3, {'test': 42}]}, double)
# result: {'hamster': [2, 4, 6, {'test': 84}]}
# In order to transform dict keys in depth: set transform_dict_keys variable to True (default: False).
pyrecursive({'hamster': [1, 2, 3, {'test': 42}]}, double, transform_dict_keys=True)
# result: {'hamsterhamster': [2, 4, 6, {'testtest': 84}]}
# In order not to transform dict values in depth: set transform_dict_values variable to False (default: True).
pyrecursive({'hamster': [1, 2, 3, {'test': 42}]}, double, transform_dict_values=False)
# result: {'hamster': [2, 4, 6, {'test': 42}]}
# In order to define custom rules for each object type in depth: set custom_rules variable.
pyrecursive([1, 2, 3, 'banana'], double, custom_rules={int: lambda x: x * 5})
# result: [5, 10, 15, 'bananabanana'] (multiplied by 5 when int, multiplied by 2 otherwise)
Contribute
Did you think in some interesting feature, or have you found a bug? Please let me know!
Of course you can also download the project and send me some pull requests. Please keep in mind that (1) we do follow pep8, (2) our line-length is 120 chars and (3) your changes must be compatible with Python 2.7 and Python 3.6+.
You can send your suggestions by opening issues.
You can contact me directly as well. Take a look at my contact information at http://filwaitman.github.io/ (email is preferred rather than mobile phone).
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 pyrecursive-0.0.2.tar.gz
.
File metadata
- Download URL: pyrecursive-0.0.2.tar.gz
- Upload date:
- Size: 4.2 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.3.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.6.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9697c6c6782a34dd665057ad4f38036406bdd7cc75e7aa83cecb53c28bd99c79 |
|
MD5 | 9ac811caafac92f3fdd1113f41df42b7 |
|
BLAKE2b-256 | 6ee32a9cffc9e45c6739232ddd24e179b1e21e36c1a96738ca7e1daf00879f57 |
File details
Details for the file pyrecursive-0.0.2-py3-none-any.whl
.
File metadata
- Download URL: pyrecursive-0.0.2-py3-none-any.whl
- Upload date:
- Size: 3.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.3.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.6.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 46f8cb6acbc92be40037c3212104bce5c041b32874cf421ff9d45f2b3ad0f2e9 |
|
MD5 | 3942cd15b36d7757b35338e3b7928234 |
|
BLAKE2b-256 | a5ea3b4bc33c95d1d7387fc7224b0e7c86a6d1db499b280ea7a3d1f57c763607 |