# dunderhell
Turn your Python code entirely into dunders.
## Installation
```bash
pip install dunderhell
```
## Usage
```python
$ 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.txt` to do an editable install
- Run `pytest` to 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:
```bash
rm -rf build dist
python setup.py sdist bdist_wheel
```
Then upload it to PyPI using [twine](https://twine.readthedocs.io/en/latest/#installation):
```bash
twine upload dist/*
```
Raw data
{
"_id": null,
"home_page": "https://github.com/tusharsadhwani/dunderhell",
"name": "dunderhell",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "",
"keywords": "",
"author": "Tushar Sadhwani",
"author_email": "tushar.sadhwani000@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/80/55/2ea4cbb93d83e46fca9abb035dad4e75d417649187da3935dcf6dfe1e463/dunderhell-0.2.0.tar.gz",
"platform": null,
"description": "# dunderhell\n\nTurn your Python code entirely into dunders.\n\n## Installation\n\n```bash\npip install dunderhell\n```\n\n## Usage\n\n```python\n$ cat foo.py\nprint(1)\n\n$ dunderhell foo.py\n__chr__ = __builtins__.__getattribute__(__name__.__reduce__.__name__[\n__name__.__len__().__floordiv__(__name__.__len__()).__add__(__name__.__len__()\n.__floordiv__(__name__.__len__())).__add__(__name__.__len__().__floordiv__(\n__name__.__len__())).__add__(__name__.__len__().__floordiv__(__name__.__len__()\n)).__add__(__name__.__len__().__floordiv__(__name__.__len__())).__add__(\n__name__.__len__().__floordiv__(__name__.__len__()))].__add__(\n__name__.__add__.__class__.__name__[__name__.__len__().__floordiv__(\n__name__.__len__()).__add__(__name__.__len__().__floordiv__(__name__.__len__())\n).__add__(__name__.__len__().__floordiv__(__name__.__len__()))]).__add__(\n__name__.__class__.__name__[__name__.__len__().__floordiv__(__name__.__len__())\n.__neg__()]))\n\n__builtins__.__getattribute__(__chr__(__name__.__len__().__mul__(\n__name__.__len__()).__add__(__name__.__len__()).__add__(__name__.__len__())\n.__add__(__name__.__len__()).__add__(__name__.__len__()).__add__(\n__name__.__len__()).__add__(__name__.__len__())).__add__(__chr__(\n__name__.__len__().__mul__(__name__.__len__()).__add__(__name__.__len__())\n.__add__(__name__.__len__()).__add__(__name__.__len__()).__add__(\n__name__.__len__()).__add__(__name__.__len__()).__add__(__name__.__len__())\n.__add__(__name__.__len__().__floordiv__(__name__.__len__()).__add__(\n__name__.__len__().__floordiv__(__name__.__len__()))))).__add__(__chr__(\n__name__.__len__().__mul__(__name__.__len__()).__add__(__name__.__len__())\n.__add__(__name__.__len__()).__add__(__name__.__len__()).__add__(\n__name__.__len__()).__add__(__name__.__len__()).__add__(__name__.__len__()\n.__floordiv__(__name__.__len__())))).__add__(__chr__(__name__.__len__()\n.__mul__(__name__.__len__()).__add__(__name__.__len__()).__add__(\n__name__.__len__()).__add__(__name__.__len__()).__add__(__name__.__len__())\n.__add__(__name__.__len__()).__add__(__name__.__len__().__floordiv__(\n__name__.__len__()).__add__(__name__.__len__().__floordiv__(__name__.__len__()\n)).__add__(__name__.__len__().__floordiv__(__name__.__len__())).__add__(\n__name__.__len__().__floordiv__(__name__.__len__())).__add__(__name__.__len__()\n.__floordiv__(__name__.__len__())).__add__(__name__.__len__().__floordiv__(\n__name__.__len__()))))).__add__(__chr__(__name__.__len__().__mul__(\n__name__.__len__()).__add__(__name__.__len__()).__add__(__name__.__len__())\n.__add__(__name__.__len__()).__add__(__name__.__len__()).__add__(\n__name__.__len__()).__add__(__name__.__len__()).__add__(__name__.__len__()\n.__floordiv__(__name__.__len__()).__add__(__name__.__len__().__floordiv__(\n__name__.__len__())).__add__(__name__.__len__().__floordiv__(__name__.__len__()\n)).__add__(__name__.__len__().__floordiv__(__name__.__len__()))))))(\n__name__.__len__().__floordiv__(__name__.__len__()))\n```\n\n## Local Development / Testing\n\n- Create and activate a virtual environment\n- Run `pip install -r requirements-dev.txt` to do an editable install\n- Run `pytest` to run tests\n\n## Type Checking\n\nRun `mypy .`\n\n## Create and upload a package to PyPI\n\nMake sure to bump the version in `setup.cfg`.\n\nThen run the following commands:\n\n```bash\nrm -rf build dist\npython setup.py sdist bdist_wheel\n```\n\nThen upload it to PyPI using [twine](https://twine.readthedocs.io/en/latest/#installation):\n\n```bash\ntwine upload dist/*\n```\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Turn all your Python code into dunders.",
"version": "0.2.0",
"project_urls": {
"Homepage": "https://github.com/tusharsadhwani/dunderhell"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "1f1713ad758998942db0d8c788992500c93386c747603b88de5f6067d6ecce97",
"md5": "1515048d887995670375bd1782e3e7b5",
"sha256": "81ccc9a50fe07561b9118f6fbba941fafe9e501f04921028470324df82d06fd5"
},
"downloads": -1,
"filename": "dunderhell-0.2.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "1515048d887995670375bd1782e3e7b5",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 8465,
"upload_time": "2023-10-29T16:29:25",
"upload_time_iso_8601": "2023-10-29T16:29:25.329527Z",
"url": "https://files.pythonhosted.org/packages/1f/17/13ad758998942db0d8c788992500c93386c747603b88de5f6067d6ecce97/dunderhell-0.2.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "80552ea4cbb93d83e46fca9abb035dad4e75d417649187da3935dcf6dfe1e463",
"md5": "7657c7896eb85ab62b895bc02cda4bfc",
"sha256": "318aed79153002408d1e5c17af3cb883cd59693a8dae8d4bbb9c5d76ba80d224"
},
"downloads": -1,
"filename": "dunderhell-0.2.0.tar.gz",
"has_sig": false,
"md5_digest": "7657c7896eb85ab62b895bc02cda4bfc",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 8596,
"upload_time": "2023-10-29T16:29:26",
"upload_time_iso_8601": "2023-10-29T16:29:26.695104Z",
"url": "https://files.pythonhosted.org/packages/80/55/2ea4cbb93d83e46fca9abb035dad4e75d417649187da3935dcf6dfe1e463/dunderhell-0.2.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-10-29 16:29:26",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "tusharsadhwani",
"github_project": "dunderhell",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [],
"tox": true,
"lcname": "dunderhell"
}