Skip to main content

Simple Python library with coalesce function and “magic” empty value and others features

Installation

pip install coalesce

Features

UniqueValue

This is a factory of some abstract unique values

Example:

from coalesce import UniqueValue

Yes = UniqueValue(truthful=True)
MayBe = UniqueValue()
IDontKnow = UniqueValue()
Unlikely = UniqueValue()
No = UniqueValue(truthful=False)


def answer_lottery():
    import random
    return random.choice((Yes, MayBe, IDontKnow, Unlikely, No))


print("- Are you hungry?")
hungry_answer = answer_lottery()
try:
    if hungry_answer:
        print("- YES, i would eat an elephant!")
    else:
        print("- I'm fed up...")
except TypeError:
    print("- Well, I want only coffee")


print("- Will you marry me?")
marry_answer = answer_lottery()
if marry_answer == Yes:
    print("- Well, finally, YES!")
elif marry_answer == MayBe:
    print("- Well, only if you really are rich...")
elif marry_answer == IDontKnow:
    print("- I need to think...")
elif marry_answer == Unlikely:
    print("- When the cancer on the mountain whistles.")
elif marry_answer == No:
    print("- Who are you, boy?")

empty

The empty is conrete falsely UniqueValue.

Using in situations, when we want differ None and real “empty” value. For example set a dynamically calculated default value:

from coalesce import empty
from random import randint


def f(value=empty):
    if value == empty:
        value = randint(1,10)
    print('value={}'.format(value))

f()  # value=<random(1,10)>
f(None)  # value=None

coalesce

Function returns first not ignoring value from iterable object. By default ignoring empty value

Example:

from coalesce import coalesce, empty
from random import randint


def f(value=empty):
    value = coalesce([value, randint(1,10)])
    print('value={}'.format(value))

f()  # value=<random(1,10)>
f(None)  # value=None

print coalesce([None, 1, 2], ignore=None, default=-7)  # 1
print coalesce([None, None], ignore=None, default=-7)  # -7

first

Function returns first value from iterable for which the function(value) is truthful from iterable object. Else it returns default value

Example:

from coalesce import first

print first(lambda x: x > 1, [None, 1, 2], default=-7)  # 2
print first(lambda x: x > 2, [None, 1, 2], default=-7)  # -7

Download files

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

Source Distribution

coalesce-0.3.tar.gz (2.9 kB view details)

Uploaded Source

Built Distribution

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

coalesce-0.3-py3-none-any.whl (4.5 kB view details)

Uploaded Python 3

File details

Details for the file coalesce-0.3.tar.gz.

File metadata

  • Download URL: coalesce-0.3.tar.gz
  • Upload date:
  • Size: 2.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for coalesce-0.3.tar.gz
Algorithm Hash digest
SHA256 77559bcef4b18475767469492acb657405704677f33431faccaf4a9471e08173
MD5 221db79ccaeaf22ae02644c3a3d06718
BLAKE2b-256 0ccf7a83865668cdf32e0061fd74ad56b6f6ceb211fd5e0de08ee972e15082f4

See more details on using hashes here.

File details

Details for the file coalesce-0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for coalesce-0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 54cb849db8297235c147dddf079bc03ce977bf158ae92822deb33f567915142c
MD5 edb6df941cb97e1cfb10715582af90b7
BLAKE2b-256 ed346dbd6748861d55e2ba596c4a4d2a8cae21fdf4416c18601b2b58f0beed20

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.3 This release

2 files

0.2

2 files

0.1

2 files

Supported by

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