Skip to main content

simple Python library with coalesce function and "magic" empty value

Project description

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

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

coalesce-0.2.tar.gz (2.5 kB view details)

Uploaded Source

Built Distribution

coalesce-0.2-py2-none-any.whl (4.2 kB view details)

Uploaded Python 2

File details

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

File metadata

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

File hashes

Hashes for coalesce-0.2.tar.gz
Algorithm Hash digest
SHA256 f16d5e0752d4ad34d68e3c3a8ac048fdfba7bdccc2632c1a441ad8dadc478aa4
MD5 b69e1dea10bb811175b902d4d118de1a
BLAKE2b-256 30eddc241df7e04e5d74221cd6c1045a5c24b3c9635013cf50c09c1a564a82a8

See more details on using hashes here.

File details

Details for the file coalesce-0.2-py2-none-any.whl.

File metadata

File hashes

Hashes for coalesce-0.2-py2-none-any.whl
Algorithm Hash digest
SHA256 816011ff2283faf1b572a352ada5e6325b6872116dd6b3591d0df811b5fcc530
MD5 aa6fd4ebd3519f272a83222b2d721d56
BLAKE2b-256 4b72e36a4bb690c5e9d55641360c2cb16e6cba50089933e13fa1907f464f8e14

See more details on using hashes here.

Supported by

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