Skip to main content

An ugly pseudo solution for using switches in python.

Project description

ugly_switch

Build Status codecov MIT License

An ugly pseudo solution for using switches in python.

Installation

pip install ugly_switch

Usage

from ugly_switch import switch

A Switch can be used once:

switch[
    True, door_lock,
    False, door_unlock
](not door_state)

# looks the door when it's state is False and vice versa

or can be stored to be used multiple times in the future:

s = switch[
    'a', lambda: print('was a'),
    'b', lambda: print('was b')
]

# some stuff

value = 'a'
s(value)

# OUT: "was a"

When the number of args in the switch is even, the pairs make up the switch as sets of cases and actions. actions must be callable methods or lambdas. If the number of args may be odd, the last item will be used as default, expecting it to be a callable.

With the example directly above, nothing will happen, if value happens to be neither 'a' nor 'b'.

Below it has a default action.

value = 'c'
s = switch[
    'a', lambda: print('was a'),
    'b', lambda: print('was b'),
    lambda: print('something else')
]

# some stuff

s(value)

# OUT: "something else"

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

ugly_switch-0.1.2.tar.gz (3.5 kB view details)

Uploaded Source

Built Distribution

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

ugly_switch-0.1.2-py3-none-any.whl (4.5 kB view details)

Uploaded Python 3

File details

Details for the file ugly_switch-0.1.2.tar.gz.

File metadata

  • Download URL: ugly_switch-0.1.2.tar.gz
  • Upload date:
  • Size: 3.5 kB
  • Tags: Source
  • Uploaded using 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.45.0 CPython/3.8.2

File hashes

Hashes for ugly_switch-0.1.2.tar.gz
Algorithm Hash digest
SHA256 d32515c37f9cb7892adaf914636c01c680b4083cbc12fcde7964011c9b269eb0
MD5 fa036653e81775b4ca4f777d649d7f7e
BLAKE2b-256 cbb176a8cc79a060aa7b7eead45accdd6bba054e7b50a07be18a51fbe302a3f0

See more details on using hashes here.

File details

Details for the file ugly_switch-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: ugly_switch-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 4.5 kB
  • Tags: Python 3
  • Uploaded using 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.45.0 CPython/3.8.2

File hashes

Hashes for ugly_switch-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 957714b583eca042b1c05719245cf8e7a48a8d4858798ac8b02ba667d3759b6b
MD5 9fd0e30a4a56604b2e02a2d69b47a293
BLAKE2b-256 aa055773f1c239f8e4d4646f9003ad31b819ac9e642620a67d3797b4cc8b3bce

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