Skip to main content

Decorating: A Meta Repo To Decorators

Build Status codecov Requirements Status PyPi version PyPI pyversions PyPI status HitCount

Abstract

This project encourages an exploration into the limits of decorators in Python. While decorators might by new to beginners, they are an extremely useful feature of the language. They can be similar to Lisp Macros, but without changes to the AST. Great decorators from this packages are @animated and @writing. This repository is made from scratch, just using Python’s Standard Library, no dependency!

Examples

Animated

Using as decorator and mixed with context-managers animation

Using with nested context-managers context-manager

Writing

Another project mine called MAL uses the decorating package —- basically a command line interface for MyAnimeList. The decorator @writing can be used by just adding 3 lines of code! The behavior is a retro typing-like computer. Check out the awesome effect:

asciicast

More examples are covered on my personal blog post about decorating.

Decorators & Usage

Currently public decorators on the API of decorators decorating:

  • decorating.debug

  • decorating.cache

  • decorating.counter

  • decorating.count_time

  • decorating.animated

  • decorating.writing

Mostly decorators has a pretty consistent usage, but for now only animated and writing has support to use as contextmanagers using the with syntax.

Installation

Supported Python versions:

  • Python3.4+

  • Python2.7

You can install the last release on PyPI by calling:

pip install --user decorating

If you want get the last development version install directly by the git repository:

pip install --user git+https://www.github.com/ryukinix/decorating

We have a published package on Arch Linux,which you can install using your favorite AUR Helper, like pacaur or yaourt:

yaourt -S python-decorating

Though since the version 0.6 we have support for Python2.7, an AUR package for Python2 was not made yet. Fill a issue if you have interest on that :). Thanks to Maxim Kuznetsov which implemented the necessary changes to make compatible with Python2!

License

PyPi License

MIT

Because good things need to be free.

Metadata

Release files for decorating 0.6.1

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

Source distribution (sdist)

Source distribution for decorating 0.6.1
File Size Uploaded
decorating-0.6.1.tar.gz 26.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for decorating 0.6.1
File Interpreter ABI Platform
decorating-0.6.1-py3-none-any.whl Python 3 none any Details

Total release size: 46.3 kB

Release files / decorating-0.6.1.tar.gz

Download URL decorating-0.6.1.tar.gz
Size 26.5 kB
Tags Source
SHA-256 checksum
How to use checksums
766edff30a305a1530b3dc8f2e84d9f764a370060c251c1f4258917ad3734883
BLAKE2b-256 checksum
How to use checksums
543a3cb70592ff7208f38af494479f3ab19c124ad028c550f36ebee0ab4443a4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / decorating-0.6.1-py3-none-any.whl

Download URL decorating-0.6.1-py3-none-any.whl
Size 19.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0644af54d972fbb8a685fcf07086d3102c95f766be9429c62ff6897014c3c88a
BLAKE2b-256 checksum
How to use checksums
25ef1c4ccaace65fcd109cd9a8ffa0f0c658207f81ec684aedc9a40ff0fe5e12
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
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