A dumpster fire of metaprogramming and other Python abuses.
Project description
abomination
A dumpster fire of metaprogramming and other Python abuses.
Some code is so bad it just has to be written, documented, tested, and packaged. This is the place for such ideas.
Installation
Install the package from pypi:
pip install abomination
Usage
Automatic installation of packages
Somewhere before your first third-party import, but the following line:
import abomination; abomination.magic()
If an import fails, we will try to install the package with pip and restart the script.
import abomination; abomination.magic()
# This just works!
import numpy as np
Of course, this only works if the import name matches the distribution name.
Prepare for an ugly recursion while Python screams "I cannot import pyyaml!"
and pip shouts back "But I have already installed pyyaml!"
(note: the import name is yaml).
Calling out code style you don't like
Linters are for the weak, real checks hit hard at run time!
Following the example of Python's treatment of whitespace,
code style violations raise a SyntaxError if you call call_out:
import abomination
abomination.call_out(sadface=True)
# Some dummy code to provoke
if (
this_code_uses_some_practices_that_i_dislike := True
and others_should_know_about_it := True
):
pass
Output:
SyntaxError: It saddens me to see '):' in your code :(
This function, just like the whole package, is intended as a light-hearted joke. It was inspired by this twitter thread: https://twitter.com/gvanrossum/status/1395135889123069952 If anyone involved feels offended, please contact me and I will remove it.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file abomination-0.2.0.tar.gz.
File metadata
- Download URL: abomination-0.2.0.tar.gz
- Upload date:
- Size: 2.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.3.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.9.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
16b1c94811d35fa6c18b5d1dad05d213fa903f5ede9ae8ebb99572ca129ee4f9
|
|
| MD5 |
698d6a13cf94e5b188d19a90b2b04e20
|
|
| BLAKE2b-256 |
f1624c5415c712ab13266b470f43ac93b5e410926c3ea7ebe3858025bed2f51b
|
File details
Details for the file abomination-0.2.0-py3-none-any.whl.
File metadata
- Download URL: abomination-0.2.0-py3-none-any.whl
- Upload date:
- Size: 3.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.3.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.9.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e62b8d02b4b84ecc4aa75e7e6b782bdb77b78f3f6bfbaf654df4f97ce932faa2
|
|
| MD5 |
154f759027dc95df332014a08312f9c0
|
|
| BLAKE2b-256 |
774cf5d848db7f44d45ab1a45f051c755fa39b1327fbf759a9ed9e461cc0ee3a
|