Skip to main content

pyonce

Run code once! -- or once in a while...

def once(every: int = 0, key: Any = None) -> bool

Example

import pyonce


def update():
    if pyonce.once(key='ONCE-001'):
        print('global unique key')
    if pyonce.once():
        print('this is called from update')
    if pyonce.once(every=5):
        print('update() / 5')


for i in range(10):
    if pyonce.once(every=2):
        print(f'hello {i}')
    update()
    update()

output

hello 0
global unique key
this is called from update
update() / 5
this is called from update
update() / 5
hello 2
hello 4
update() / 5
update() / 5
hello 6
hello 8

The once() function relies on the traceback to derive the key. A unique key corresponds to a unique state which is a simple counter. When the counter hits zero the return value is True. The first call for a key is always True.


Do not use it in production, such magic is pure evil.

Metadata

Release files for pyonce 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyonce 1.0.0
File Size Uploaded
pyonce-1.0.0.tar.gz 2.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pyonce 1.0.0
File Interpreter ABI Platform
pyonce-1.0.0-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 5.6 kB

Release files / pyonce-1.0.0.tar.gz

Download URL pyonce-1.0.0.tar.gz
Size 2.7 kB
Tags Source
SHA-256 checksum
How to use checksums
b9e311f28a7d274547ca986b034d75eebc5d269a23a946fe92200c3018562ceb
BLAKE2b-256 checksum
How to use checksums
c5c60472665661ec773cc7c672bd8b64426aa902d8e781c2b97e7e340a7a7eea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.0

Release files / pyonce-1.0.0-py2.py3-none-any.whl

Download URL pyonce-1.0.0-py2.py3-none-any.whl
Size 2.9 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
274eab294bdf206aeca2db810dde9651c39bab9e0ce603960e4b6b7ed45fc009
BLAKE2b-256 checksum
How to use checksums
e1834319452be6f91cb36e9c47d22535a14dae8675eea9e637e892b987b192b0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.0

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page