Skip to main content

stupidity.py - toolkit for stupid Python code

Build Status

Installation

pip install stupidity

Switch statement

Ever miss the classic switch statement in Python?

from stupidity import switch

for case in switch('b'):
    if case('a'):
        print('this is not printed')
    if case('b'):
        print('this is printed')
    if case('c'):
        print('fallthrough is also supported')
        break
    if case('d'):
        print('this is not printed either')
    print('default value at bottom, but this is not reached')

Think if-statements are stupid? We've got you covered!

from stupidity import switch

for case in switch('b'):
    with case('a'):
        print('this is not printed')
    with case('b'):
        print('this is printed')
    with case('c'):
        print('fallthrough is also supported')
        break
    with case('d'):
        print('this is not printed either')
    print('default value at bottom, but this is not reached')

Think for-loops are stupid too? We can get rid of those as well:

from stupidity import switch

with switch('b') as case:
    with case('a'):
        print('this is not printed')
    with case('b'):
        print('this is printed')
    with case('c'):
        print('fallthrough is also supported')
        BREAK  # NOTE: We have to yell here
    with case('d'):
        print('this is not printed either')
    print('default value at bottom, but this is not reached')

Dealing with closure variables

Ever get annoyed at those pesky variables inside closures that are seemingly just outside your reach? Fear no more!

from stupidity import replace_closure_variables

def foo(): 
    x = 42 
    def f(): 
        return x 
    return f 

f = foo()
f()  # 42

replace_closure_variables(f, x=123)
f()  # 123

Braces

Everyone knows that importing braces from __future__ fails miserably:

from __future__ import braces
#   File "<stdin>", line 1
# SyntaxError: not a chance

Luckily, we provide a working implementation:

from stupidity import braces

x = 42;
if (x == 123): {
    print('nope')
}
elif (x == 42): {
    print('yep')
}
# prints 'yep'

Release files for stupidity 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for stupidity 0.0.1
File Size Uploaded
stupidity-0.0.1.tar.gz 4.5 kB Details

Release files / stupidity-0.0.1.tar.gz

Download URL stupidity-0.0.1.tar.gz
Size 4.5 kB
Tags Source
SHA-256 checksum
How to use checksums
fd40770018815e061b22a8ca994459638a01cf1d9edb1426853ca3e4462f07f8
BLAKE2b-256 checksum
How to use checksums
e20a390b447e4b6f5f21cd607229c6b564a912dae7105e6c32204e2561296fd2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.8.2

Release history Release notifications | RSS feed

This release

0.0.1 This release

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page