Skip to main content

Have you ever needed to transform a `whatever python object` in depth? So this one is for you. =]

Project description

https://travis-ci.com/filwaitman/pyrecursive.svg?branch=master https://codecov.io/gh/filwaitman/pyrecursive/branch/master/graph/badge.svg

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyrecursive-0.0.2.tar.gz (4.2 kB view details)

Uploaded Source

Built Distribution

pyrecursive-0.0.2-py3-none-any.whl (3.6 kB view details)

Uploaded Python 3

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

Hashes for pyrecursive-0.0.2.tar.gz
Algorithm Hash digest
SHA256 9697c6c6782a34dd665057ad4f38036406bdd7cc75e7aa83cecb53c28bd99c79
MD5 9ac811caafac92f3fdd1113f41df42b7
BLAKE2b-256 6ee32a9cffc9e45c6739232ddd24e179b1e21e36c1a96738ca7e1daf00879f57

See more details on using hashes here.

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

Hashes for pyrecursive-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 46f8cb6acbc92be40037c3212104bce5c041b32874cf421ff9d45f2b3ad0f2e9
MD5 3942cd15b36d7757b35338e3b7928234
BLAKE2b-256 a5ea3b4bc33c95d1d7387fc7224b0e7c86a6d1db499b280ea7a3d1f57c763607

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page