Skip to main content

A lightweight and modular Python decorator library

Project description

pydecora ๐Ÿงฉ

A lightweight and modular Python decorator library that helps you write cleaner and more expressive code.

๐Ÿš€ Features

  • ๐Ÿง  @cache: Simple in-memory caching with optional TTL and size limit
  • ๐Ÿ” @retry: Automatically retry failed operations with exponential backoff
  • ๐Ÿ›‘ @suppress: Suppress exceptions and optionally log them
  • โฑ๏ธ @timeit: Time execution of functions
  • ๐Ÿงช @validate_args: Enforce argument types using runtime validation

๐Ÿ“ฆ Installation

pip install pydecora

๐Ÿง‘โ€๐Ÿ’ป Usage

from pydecora import cache, retry

@cache(ttl=60)
def slow_func(x):
    return x * x

@retry(times=3, delay=1)
def flaky_api_call():
    ...

๐Ÿ“ Project Structure

pydecora/
โ”œโ”€โ”€ pydecora/
โ”‚ โ”œโ”€โ”€ init.py
โ”‚ โ””โ”€โ”€ decorators/
โ”‚ โ”œโ”€โ”€ cache.py
โ”‚ โ”œโ”€โ”€ retry.py
โ”‚ โ”œโ”€โ”€ suppress.py
โ”‚ โ”œโ”€โ”€ timeit.py
โ”‚ โ””โ”€โ”€ validate_args.py
โ”œโ”€โ”€ tests/
โ”‚ โ”œโ”€โ”€ test_cache.py
โ”‚ โ”œโ”€โ”€ test_retry.py
โ”‚ โ”œโ”€โ”€ test_suppress.py
โ”‚ โ”œโ”€โ”€ test_timeit.py
โ”‚ โ””โ”€โ”€ test_validate_args.py
โ”œโ”€โ”€ README.md
โ”œโ”€โ”€ LICENSE
โ”œโ”€โ”€ setup.py
โ””โ”€โ”€ pyproject.toml

๐Ÿงช Running Tests

pytest pydecora/tests

๐Ÿค Contributing

Pull requests and ideas welcome! Please open an issue or fork and PR.

๐Ÿ“„ License

MIT โ€” see LICENSE

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

pydecora-1.1.0.tar.gz (8.6 kB view details)

Uploaded Source

Built Distribution

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

pydecora-1.1.0-py3-none-any.whl (11.8 kB view details)

Uploaded Python 3

File details

Details for the file pydecora-1.1.0.tar.gz.

File metadata

  • Download URL: pydecora-1.1.0.tar.gz
  • Upload date:
  • Size: 8.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.0 CPython/3.10.18

File hashes

Hashes for pydecora-1.1.0.tar.gz
Algorithm Hash digest
SHA256 fd08cf987aee911fce4d2ea670c6629e60a1ef4c6139e5d4977dcdbf670b8f77
MD5 a69612d43402ecb98b2ee2a0758d7a87
BLAKE2b-256 3823209503832d40c44a20cc68a4a1ae5b7da51146da6784a7a49226f3d92629

See more details on using hashes here.

File details

Details for the file pydecora-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: pydecora-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 11.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.0 CPython/3.10.18

File hashes

Hashes for pydecora-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 54fd9d0f319d2f5e0d1fb28078cbc042e65725d326a6bbf895ea26b5df1b451c
MD5 d7d6f2fd573ee89edb0910920101c8eb
BLAKE2b-256 dd0457abbc7d1af1412944a64a87a87ac32c52ec60bbcee922dd61564955276a

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