Skip to main content

Pure Python cross-platform pyclean. Clean up your Python bytecode.

Project description

pyclean Latest version on PyPI

GitHub Workflow Status GitHub Workflow Status Scrutinizer Code health Visualizer Python versions Software license

Worried about .pyc files and __pycache__ directories? Fear not! Pyclean is here to help. Finally the single-command clean up for Python bytecode files in your favorite directories. On any platform.

PyClean and its future

Presented at PyConX, Firenze 2019.

Wait! What is bytecode?

Bytecode is opcodes for the Python Virtual Machine. – Confused?

If you want to deep-dive into the topic watch the 2013 EuroPython talk “All Singing All Dancing Python Bytecode” by Larry Hastings. Otherwise James Bennett’s “Introduction to Python bytecode” should provide you with just the sound understanding of what it is all about.

Why not simply use rm **/*.pyc or find -name '*.py?' -delete?

If you’re happy with rm or find, go for it! When I was looking for a simple, concise solution for everybody I figured people are struggling, and simple things are more complicated than they appear at first sight.

Also, there is a pyclean command (and its siblings) on Debian. And, well, only on Debian as it turns out. Not that I’m a big fan of Mircosoft Windos, but why ignore the biggest Python population on this planet? (As if they weren’t punished enough already using this unfree piece of software!)

Debian

Just for reference, the Python scripts Debian ships with its python-minimal and python3-minimal packages can be found at:

Installation

$ pip install pyclean

Usage

$ pyclean --help

If you want to explicitly operate the Debian-specific implementation:

$ py2clean --help
$ py3clean --help
$ pypyclean --help

Clean up all bytecode in the current directory tree, and explain verbosely:

$ pyclean -v .

Clean up all bytecode for a Debian package: (may require root permissions)

$ pyclean -p python3-keyring --legacy

Use pyclean with Tox

If you want to avoid installing pyclean you can add it to your tox.ini file as follows:

[testenv:clean]
skip_install = true
deps = pyclean
commands = pyclean {posargs:.}

You’ll then be able to run it with Tox like this:

$ tox -e clean

Development

If you want to help out please see our contribution guide.

Roadmap (for v3.0.0)

  1. Replace original Debian scripts (current --legacy) by a single, pure Python, Python 3-only code base that serves all target platforms.

  2. Reduce the package dependencies to an absolute minimum for maximum portability.

  3. Add additional CLI options to delete debris from builds, testing and packaging (build/, .cache/, dist/, .pytest_cache/, .tox/ and free-form targets).

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

pyclean-2.2.0.tar.gz (27.7 kB view details)

Uploaded Source

Built Distribution

pyclean-2.2.0-py3-none-any.whl (26.3 kB view details)

Uploaded Python 3

File details

Details for the file pyclean-2.2.0.tar.gz.

File metadata

  • Download URL: pyclean-2.2.0.tar.gz
  • Upload date:
  • Size: 27.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.1 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.8.12

File hashes

Hashes for pyclean-2.2.0.tar.gz
Algorithm Hash digest
SHA256 48f1801804fa2f04f2c64348da8bd61797fc9722e1120c470d5cc67a205843c7
MD5 7085b3700e68c9d2eb4f9f47ccb56211
BLAKE2b-256 2cb4f51277bcfc25e8ba03ab9690cd49db9c1c73dad9ce5345c89f3dee87221d

See more details on using hashes here.

Provenance

File details

Details for the file pyclean-2.2.0-py3-none-any.whl.

File metadata

  • Download URL: pyclean-2.2.0-py3-none-any.whl
  • Upload date:
  • Size: 26.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.1 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.8.12

File hashes

Hashes for pyclean-2.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5f99597b76249b71b86d8e9aff1e69dfdc0b1976d14ce366e07b28dc6f7a8ee6
MD5 221f96909c4c1a456738736ad8143af6
BLAKE2b-256 de2e146ee91737604b110d07fc6d36bc7bf71cc76ac2f378d540e83c60fa5725

See more details on using hashes here.

Provenance

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