Metadata-Version: 2.1
Name: pyApp-Redis
Version: 1.0
Summary: Redis Extension for PyApp
Home-page: https://github.com/pyapp-org/pyapp.redis
Author: Tim Savage
Author-email: tim@savage.company
License: BSD-3-Clause
Keywords: application,framework
Platform: any
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Requires-Python: >=3.6
Description-Content-Type: text/x-rst
Requires-Dist: pyapp (>=4.0)
Requires-Dist: redis (>=3.0)
Provides-Extra: dev
Requires-Dist: docutils ; extra == 'dev'
Requires-Dist: black ; extra == 'dev'
Provides-Extra: hiredis
Requires-Dist: hiredis ; extra == 'hiredis'

#############
pyApp - Redis
#############

*Let us handle the boring stuff!*

.. image:: https://img.shields.io/badge/code%20style-black-000000.svg
   :target: https://github.com/ambv/black
      :alt: Once you go Black...

This extension provides a `Redis` client factory to allow configuration to be
configured via pyApp settings.

The extension also provides checks to confirm the settings are correct and that
the application is able to connect to the redis instance.

It is strongly recommended to install the `hiredis` companion package to improve
the performance of the redis client.

Installation
============

Install using *pip*::

    pip install pyapp-redis

Install using *pipenv*::

    pipenv install pyapp-redis


Add the `REDIS` block into your runtime settings file::

    REDIS = {
        "default": {
            "url": "redis://user:pass@host:port/1",
        },
    }


.. note::

    The URL is a defined by Redis client see the
    `documentation <https://github.com/andymccurdy/redis-py/blob/master/redis/client.py#L599>`_.
    In addition to the url any argument that can be provided to `Redis.from_url` can be provided.


Usage
=====

The following example creates a `Redis` client instance::

    from pyapp_ext.redis import get_client

    # Get connection
    redis = get_client()

    redis.set("foo")


API
===

`pyapp_ext.redis.get_client(default: str = None) -> Redis`

    Get named `Redis` client instance


