Metadata-Version: 2.0
Name: decorating
Version: 0.5.2
Summary: A useful collection of decorators (focused in animation)
Home-page: https://github.com/ryukinix/decorating
Author: Manoel Vilela
Author-email: manoel_vilela@engineer.com
License: MIT
Download-URL: https://github.com/ryukinix/decorating/archive/v0.5.2.tar.gz
Keywords: decorating animation decorators decorator
Platform: unix
Classifier: Environment :: Console
Classifier: Development Status :: 4 - Beta
Classifier: Topic :: Utilities
Classifier: Operating System :: Unix
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.2
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Provides-Extra: Requires-Dist
Requires-Dist: pypandoc; extra == 'Requires-Dist'

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. Famous decorator examples are
``@animated`` and ``@writing``. This repository is made from scratch,
just using Python's Standard Library, no dependency!

Installation
------------

**INFO**: we need some people to do support for Python2, only Python3
for now. Check #3

**stable: last release**: ``sudo pip install decorating``

**bleeding-edge**:
``sudo pip install git+https://www.github.com/ryukinix/decorating``

Usage
=====

Public decorators on the API of decorators ``decorating``:

-  **debug**
-  **cache**
-  **counter**
-  **count\_time**
-  **animated**
-  **writing**

Examples
========

Animated
--------

*Using as decorator and mixed with context-managers* |animation|

Well

*Using with nested context-managers* |context-manager|

Writing
-------

Another project of mine called
`MAL <http://www.github.com/ryukinix/mal>`__ which is a basic command
line interface for MyAnimeList. The decorator @writing can be used by
just adding 3 lines of code! Check out the awesome effect:

|asciicast|

Developers
^^^^^^^^^^

.. code:: bash

    sudo git clone https://www.github.com/ryukinix/decorating
    cd decorating
    sudo make develop

The develop mode creates a .egg-info (egg-link) as a symlink in your
standard ``site-packages``/``dist-packages`` directory. Don't worry with
the ``decorating.egg-info``, it's only information for the package egg
to link with your ``PYTHONPATH``. For that, the usage is dynamic, you
can modify the code in test on the command line always using absolute
imports in anywhere (like the first example)

Contributing
~~~~~~~~~~~~

Please make sure the code passes lint and tests before sending a pull
request. You can set up pre-commit to make this easy.

In the root of git repository, run these commands after cloning the
project:

::

    sudo pip install pre-commit pylint nose2
    pre-commit install

If you don't know about pre-commit, check the
`pre-commit <http://pre-commit.com>`__ website.

Now you can create a new branch ``git checkout -b feature`` based on the
``master`` (or other you want to improve, like ``dev``) and send a
pull-request to me!

If you just want to know something or give me a suggestion, create a new
issue!

License
-------

|PyPi License|

MIT

Because good things need to be free.

.. |Build Status| image:: https://travis-ci.org/ryukinix/decorating.svg?branch=master
   :target: https://travis-ci.org/ryukinix/decorating
.. |codecov| image:: https://codecov.io/gh/ryukinix/decorating/branch/master/graph/badge.svg
   :target: https://codecov.io/gh/ryukinix/decorating
.. |Requirements Status| image:: https://requires.io/github/ryukinix/decorating/requirements.svg?branch=master
   :target: https://requires.io/github/ryukinix/decorating/requirements/?branch=master
.. |PyPi version| image:: https://img.shields.io/pypi/v/decorating.svg
   :target: https://pypi.python.org/pypi/decorating/
.. |PyPI pyversions| image:: https://img.shields.io/pypi/pyversions/decorating.svg
   :target: https://pypi.python.org/pypi/decorating/
.. |PyPI status| image:: https://img.shields.io/pypi/status/decorating.svg
   :target: https://pypi.python.org/pypi/decorating/
.. |HitCount| image:: https://hitt.herokuapp.com/ryukinix/decorating.svg
   :target: https://github.com/ryukinix/decorating
.. |animation| image:: https://i.imgur.com/hjkNvEE.gif
.. |context-manager| image:: https://i.imgur.com/EeVnDyy.gif
.. |asciicast| image:: https://asciinema.org/a/ctt1rozymvsqmeipc1zrqhsxb.png
   :target: https://asciinema.org/a/ctt1rozymvsqmeipc1zrqhsxb
.. |PyPi License| image:: https://img.shields.io/pypi/l/decorating.svg
   :target: https://pypi.python.org/pypi/decorating/


