Skip to main content

Bind functions to run only once inside a desired scope.

Project description

PyPI PyPI - Python Version GitHub https://travis-ci.org/jsfehler/stere.svg?branch=master

Bind functions to only run once inside a desired scope.

Documentation

The Rig class exposes two methods: bind and free. Bind takes one argument: A name for a scope to bind the function.

Functions wrapped with bind will be called only once until the scope it is inside is freed.

Functions wrapped with free will free all the bound functions in a specific scope after the function’s execution.

Example:

import shibari


rig = shibari.Rig('ebi')


@rig.bind('ebi')
def timestamp():
    return str(time.time())


@rig.free('ebi')
def finish():
    pass


>>> t = timestamp()
>>> t2 = timestamp()
>>> assert t == t2

>>> finish()

>>> t3 = timestamp()
>>> t4 == timestamp()
>>> assert t != t3
>>> assert t3 == t4

Functions that take arguments can be bound, but will always return the same result until they are freed.

Example:

import shibari


rig = shibari.Rig('ebi')


@rig.bind('ebi')
def timestamp(a, b):
    return f'{a}_{str(time.time())}_{b}'


>>> t = timestamp('goodbye', 'world')
>>> t2 = timestamp('hello', 'space')
>>> assert t == t2

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

shibari-0.0.2.tar.gz (2.4 kB view details)

Uploaded Source

Built Distribution

shibari-0.0.2-py3-none-any.whl (4.0 kB view details)

Uploaded Python 3

File details

Details for the file shibari-0.0.2.tar.gz.

File metadata

  • Download URL: shibari-0.0.2.tar.gz
  • Upload date:
  • Size: 2.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.6.1

File hashes

Hashes for shibari-0.0.2.tar.gz
Algorithm Hash digest
SHA256 53856bbd99b54acafa5ec0676cff1810a49233904610fce75969b591734a465c
MD5 a784e3a383ad88ccf207fcdfac78a511
BLAKE2b-256 247af80bed4a35298ee0d0e7e4dd94c810386e1bd8c3f92f64b60b71129b1875

See more details on using hashes here.

File details

Details for the file shibari-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: shibari-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 4.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.6.1

File hashes

Hashes for shibari-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b38f837c9279b1e30c0c9a0d7dbd3f4086446008ba4bf2fc98d2f8f9b311f306
MD5 4093cd7335946154167217b41fe3fd6f
BLAKE2b-256 ddf7b78559506ecb906076bb5af72d9280d2b84f75c3455f5ff954f9e3250ed2

See more details on using hashes here.

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