dunderhell
Turn your Python code entirely into dunders.
Installation
pip install dunderhell
Usage
$ cat foo.py
print(1)
$ dunderhell foo.py
__chr__ = __builtins__.__getattribute__(__name__.__reduce__.__name__[
__name__.__len__().__floordiv__(__name__.__len__()).__add__(__name__.__len__()
.__floordiv__(__name__.__len__())).__add__(__name__.__len__().__floordiv__(
__name__.__len__())).__add__(__name__.__len__().__floordiv__(__name__.__len__()
)).__add__(__name__.__len__().__floordiv__(__name__.__len__())).__add__(
__name__.__len__().__floordiv__(__name__.__len__()))].__add__(
__name__.__add__.__class__.__name__[__name__.__len__().__floordiv__(
__name__.__len__()).__add__(__name__.__len__().__floordiv__(__name__.__len__())
).__add__(__name__.__len__().__floordiv__(__name__.__len__()))]).__add__(
__name__.__class__.__name__[__name__.__len__().__floordiv__(__name__.__len__())
.__neg__()]))
__builtins__.__getattribute__(__chr__(__name__.__len__().__mul__(
__name__.__len__()).__add__(__name__.__len__()).__add__(__name__.__len__())
.__add__(__name__.__len__()).__add__(__name__.__len__()).__add__(
__name__.__len__()).__add__(__name__.__len__())).__add__(__chr__(
__name__.__len__().__mul__(__name__.__len__()).__add__(__name__.__len__())
.__add__(__name__.__len__()).__add__(__name__.__len__()).__add__(
__name__.__len__()).__add__(__name__.__len__()).__add__(__name__.__len__())
.__add__(__name__.__len__().__floordiv__(__name__.__len__()).__add__(
__name__.__len__().__floordiv__(__name__.__len__()))))).__add__(__chr__(
__name__.__len__().__mul__(__name__.__len__()).__add__(__name__.__len__())
.__add__(__name__.__len__()).__add__(__name__.__len__()).__add__(
__name__.__len__()).__add__(__name__.__len__()).__add__(__name__.__len__()
.__floordiv__(__name__.__len__())))).__add__(__chr__(__name__.__len__()
.__mul__(__name__.__len__()).__add__(__name__.__len__()).__add__(
__name__.__len__()).__add__(__name__.__len__()).__add__(__name__.__len__())
.__add__(__name__.__len__()).__add__(__name__.__len__().__floordiv__(
__name__.__len__()).__add__(__name__.__len__().__floordiv__(__name__.__len__()
)).__add__(__name__.__len__().__floordiv__(__name__.__len__())).__add__(
__name__.__len__().__floordiv__(__name__.__len__())).__add__(__name__.__len__()
.__floordiv__(__name__.__len__())).__add__(__name__.__len__().__floordiv__(
__name__.__len__()))))).__add__(__chr__(__name__.__len__().__mul__(
__name__.__len__()).__add__(__name__.__len__()).__add__(__name__.__len__())
.__add__(__name__.__len__()).__add__(__name__.__len__()).__add__(
__name__.__len__()).__add__(__name__.__len__()).__add__(__name__.__len__()
.__floordiv__(__name__.__len__()).__add__(__name__.__len__().__floordiv__(
__name__.__len__())).__add__(__name__.__len__().__floordiv__(__name__.__len__()
)).__add__(__name__.__len__().__floordiv__(__name__.__len__()))))))(
__name__.__len__().__floordiv__(__name__.__len__()))
Local Development / Testing
- Create and activate a virtual environment
- Run
pip install -r requirements-dev.txtto do an editable install - Run
pytestto run tests
Type Checking
Run mypy .
Create and upload a package to PyPI
Make sure to bump the version in setup.cfg.
Then run the following commands:
rm -rf build dist
python setup.py sdist bdist_wheel
Then upload it to PyPI using twine:
twine upload dist/*
Metadata
Release files for dunderhell 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| dunderhell-0.2.0.tar.gz | 8.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dunderhell-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 17.1 kB
Release files / dunderhell-0.2.0.tar.gz
| Download URL | dunderhell-0.2.0.tar.gz |
|---|---|
| Size | 8.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
318aed79153002408d1e5c17af3cb883cd59693a8dae8d4bbb9c5d76ba80d224
|
|
BLAKE2b-256 checksum How to use checksums |
80552ea4cbb93d83e46fca9abb035dad4e75d417649187da3935dcf6dfe1e463
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.5
|
Release files / dunderhell-0.2.0-py3-none-any.whl
| Download URL | dunderhell-0.2.0-py3-none-any.whl |
|---|---|
| Size | 8.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
81ccc9a50fe07561b9118f6fbba941fafe9e501f04921028470324df82d06fd5
|
|
BLAKE2b-256 checksum How to use checksums |
1f1713ad758998942db0d8c788992500c93386c747603b88de5f6067d6ecce97
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.5
|