Skip to main content

Removes values from nested dicts and lists

Project description

deep-filter

A simple package that filters out values from dicts/lists, including all dicts/lists nested within it.

Usage

from deep_filter import deep_filter
x = {
    'nope': 69,
    'yep': [
        69,
        {'maybe': None},
        99
    ]
}
def filter_func:
    return value != 69
result = deep_filter(x, filter_func)
print(result)
# {'yep': [{}, 99]}

deep_filter(dict_or_list, filter_func=default_filter_func)

  • dict_or_list: A dictionary or list
  • filter_func: An optional callback function. It will take a value as an argument, and return True if the value will be kept and False if not. If omitted, None values will be filtered out.

Returns your dict or list, filtered.

Dev instructions

Get started

  1. Install Python (Python 3.7 works, probably other versions too)
  2. Install Poetry. Poetry is used to manage dependencies, the virtual environment and publishing to PyPI
  3. Run poetry install to install Python package dependencies

I recommend running poetry config virtualenvs.in-project true, which makes Poetry store your Python virtual environment inside the project folder. Additionally, it lets VSCode's Python extension detect the virtual environment if you set the python.pythonPath setting to ${workspaceFolder}/.venv/bin/python in your settings.

Running

To test if things work, you can run the following command to open the Python REPL. Then you can write Python, such as the usage examples:

poetry run python

Releasing a new version

  1. Consider updating the lockfile by running poetry update, then check if thing still work
  2. Bump the version number:
    poetry version <version>
    
  3. Update CHANGELOG.md
  4. Build:
    poetry build
    
  5. Commit and create git tag
  6. Create GitHub release with release notes and attach the build files
  7. Publish to PyPi:
    poetry publish
    

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

deep-filter-1.0.1.tar.gz (2.4 kB view details)

Uploaded Source

Built Distribution

deep_filter-1.0.1-py3-none-any.whl (2.3 kB view details)

Uploaded Python 3

File details

Details for the file deep-filter-1.0.1.tar.gz.

File metadata

  • Download URL: deep-filter-1.0.1.tar.gz
  • Upload date:
  • Size: 2.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.3 CPython/3.8.5 Darwin/18.7.0

File hashes

Hashes for deep-filter-1.0.1.tar.gz
Algorithm Hash digest
SHA256 ecafc5fdd6f2f049aef5a76758e0d51ea500afd4f890420c7083a0cf5e40b6c4
MD5 7e3e00a7ac40657b1b382e248b977def
BLAKE2b-256 a71268654bb6e2fb2f4cb1ff8cbc56e7ef748326f59a9f331e99fbfbc388f660

See more details on using hashes here.

File details

Details for the file deep_filter-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: deep_filter-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 2.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.3 CPython/3.8.5 Darwin/18.7.0

File hashes

Hashes for deep_filter-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c063c22f6d03353e3f26d2f281dae7eaa3333d7242df3c05e29f94c689311896
MD5 0ffe5b87a7604b20c12e9882c77b0326
BLAKE2b-256 21aecdd5dbaae2ee6d12ddb5965e7f8e8e95edcf4becd92b550e2a2a17c1e6f4

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