Skip to main content

What you'd expect to find in the Python builtins

Project description

unbuiltins

PyPI version

Thoroughly tested and MyPy compatible constants and functions you'd expect to find in the Python builtins.

Install

requires python 3.8 or higher

pip install unbuiltins

Usage

from unbuiltins import *

Missing

Like the constant None, Missing can be used for e.g. optional function arguments:

def say(value: Missable[str] = Missing):
    if value is Missing:
        print('*silence*')
    else:
        print(value)

frozendict

The builtins include frozenset, but frozendict is nowhere to be found (see PEP 416).

frozendict is basically an immutable and hashable dict:

assert frozendict(spam='spam') == dict(spam='spam')
assert {frozendict(): 'empty'}[frozendict()] == 'empty'

It accepts generic type arguments and supports the merge (|) operator, like dict since Python 3.9:

def add_eggs(value: frozendict[str, str]) -> frozendict[str, Union[str, int]]: 
    return value | dict(eggs=6)

assert 'eggs' in add_eggs(frozendict(spam='spam')) 

first

Behaves identical to next, but works for all iterables:

assert first([42, 666, 69]) == 42
assert first([], default='empty') == 'empty'
assert first(iter(dict(eggs=6))) == 'eggs'

filternone

Return those items of iterable that are not None:

assert list(filternone(['', None, 0, False])) == ['', 0, False]

either

Returns the first argument that is not None or Missing:

assert either(None, None, False) is False

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

unbuiltins-0.2.2.tar.gz (17.2 kB view hashes)

Uploaded Source

Built Distribution

unbuiltins-0.2.2-py3-none-any.whl (17.2 kB view hashes)

Uploaded Python 3

Supported by

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