Metadata-Version: 2.0
Name: revived
Version: 0.1.3
Summary: Redux-inspired library in python
Home-page: https://github.com/RookieGameDevs/revived
Author: Lorenzo Berni
Author-email: lorenzo@rookiegamedevs.io
License: BSD
Keywords: state store redux
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Libraries
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Provides-Extra: dev
Provides-Extra: test
Requires-Dist: pytest; extra == 'test'

=======
Revived
=======

.. image:: https://badge.fury.io/py/revived.svg
    :target: https://badge.fury.io/py/revived

.. image:: https://travis-ci.org/RookieGameDevs/revived.svg?branch=master
   :target: https://travis-ci.org/RookieGameDevs/revived

.. image:: https://codecov.io/gh/RookieGameDevs/revived/branch/master/graph/badge.svg
   :target: https://codecov.io/gh/RookieGameDevs/revived

.. image:: https://readthedocs.org/projects/revived/badge/?version=latest
   :target: http://revived.readthedocs.io/en/latest/?badge=latest
   :alt: Documentation Status

---------------------------------------------------------------------
A predictable state container for python *heavily* inspired by Redux_
---------------------------------------------------------------------

While not being a *strict 1:1 port* of `Redux API`_, **Revived** is supposed to
do pretty much the same job in the most pythonic way possible.

**NOTE**: I needed this piece of code to work with the **latest python available
at the moment** (3.6). While I am not really caring about other versions, the
Travis build is running the test suites on **all the 3.5+ versions**, including
the dev ones.

Contents
--------
* Documentation_
* Installation_
* Examples_
* Contribute_

Documentation
-------------

Currently the documentation is not buliding into ReadTheDocs (see
`issue #11 <https://github.com/RookieGameDevs/revived/issues/11>`_). You can
build the documentation locally. Check out Contribute_ section.

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

**Revived** package is available on pypi: to install it use the following
command::

   pip install revived

Examples
--------

Usage examples are **coming soon**.

Contribute
----------

#. Clone the repository.
#. Create the virtualenv.

   * using virtualenv_::

      virtualenv ENV
      bin/activate

   * using virtualfish_::

      vf new ENV
      # optional: automatically load the virtualenv when entering the dir
      vf connect

#. Update pip and install pip-tools::

    pip install --upgrade pip  # pip-tools needs pip==6.1 or higher (!)
    pip install pip-tools

#. Install the dependencies::

    pip install -r requirements.txt

#. Build the documentation::

    cd docs
    make html  # or whatever format you prefer

#. Work on the revived module. This project uses pip-tools_ so you want to add
   your new direct dependencies in ``requirements.in`` and then compile the
   ``requirements.txt`` using::

       pip-compile requirements.in

#. Write tests.
#. Run tests::

    # to have coverage in command line
    pytest --cov revived --pep8 revived tests

    # to have html coverage file in the htmlcov directory
    pytest --cov revived --cov-report html --pep8 revived tests

#. Check type hints::

    mypy revived tests

#. Create a pull request.
#. Profit :)

.. _Redux: http://redux.js.org/
.. _`Redux API`: Redux_
.. _virtualenv: https://virtualenv.pypa.io/en/stable/
.. _virtualfish: http://virtualfish.readthedocs.io/en/latest/
.. _pip-tools: https://github.com/jazzband/pip-tools

Changelog
=========

0.1.3 - 2017-02-17
------------------
* Integrate pip-tools: thanks to
  `Lorenzo Villani <https://github.com/lvillani>`_ for pointing me out to this
  solution


0.1.2 - 2017-02-16
------------------
* Add documentation, tests and test coverage


0.1.1 - 2017-02-13
------------------
* Add subscriber decorator in revived.store.Store


0.1.0 - 2017-02-12
------------------
* Initial release

