Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

abomination-0.2.0.tar.gz (2.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

abomination-0.2.0-py3-none-any.whl (3.0 kB view details)

Uploaded Python 3

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

Hashes for abomination-0.2.0.tar.gz
Algorithm Hash digest
SHA256 16b1c94811d35fa6c18b5d1dad05d213fa903f5ede9ae8ebb99572ca129ee4f9
MD5 698d6a13cf94e5b188d19a90b2b04e20
BLAKE2b-256 f1624c5415c712ab13266b470f43ac93b5e410926c3ea7ebe3858025bed2f51b

See more details on using hashes here.

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

Hashes for abomination-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e62b8d02b4b84ecc4aa75e7e6b782bdb77b78f3f6bfbaf654df4f97ce932faa2
MD5 154f759027dc95df332014a08312f9c0
BLAKE2b-256 774cf5d848db7f44d45ab1a45f051c755fa39b1327fbf759a9ed9e461cc0ee3a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page