Metadata-Version: 2.0
Name: environs-serviceurl
Version: 1.0.1
Summary: Add service URL parsing support for environs
Home-page: http://github.com/flowroute/environs-serviceurl
Author: Dan Root
Author-email: rootdan+pypi@gmail.com
License: MIT
Platform: any
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Requires-Dist: environs
Provides-Extra: all
Requires-Dist: environs; extra == 'all'
Requires-Dist: pytest; extra == 'all'
Requires-Dist: pytest-cov; extra == 'all'
Requires-Dist: pytest-flake8; extra == 'all'
Provides-Extra: install
Requires-Dist: environs; extra == 'install'
Provides-Extra: setup
Provides-Extra: tests
Requires-Dist: pytest; extra == 'tests'
Requires-Dist: pytest-cov; extra == 'tests'
Requires-Dist: pytest-flake8; extra == 'tests'

****************************************************************
evirons-serviceurl: Add service URL parsing support for environs
****************************************************************

.. image:: https://travis-ci.org/flowroute/environs-serviceurl.svg?branch=master
    :target: https://travis-ci.org/flowroute/environs-serviceurl
    :alt: Travis-CI

environs-serviceurl is a Python library that extends the
`environs <https://github.com/sloria/environs>`_ library with support for
turning service urls like ``postgres://user:pass@host:port/database`` into
Python dictionaries.


Install
-------
::

   $ pip install environs-serviceurl

Usage
-----

.. code-block:: python

    # export DATABASE_URL=postgres://me:sekrit@postgres.example.com:5432/catpics
    # export REDIS_URL=redis://redis.example.com?dbid=3

    from environs import Env
    from environs_serviceurl import service_url

    env = Env()
    env.add_parser('service_url', service_url)

    # Parse a service url.
    postgres_config = env.service_url('DATABASE_URL')
    # {'host': 'postgres.example.com',
    #  'port': 5432,
    #  'user': 'me',
    #  'password': 'sekrit',
    #  'extras': 'catpics'}

    # Give the extras a specific name
    postgres_config = env.service_url('DATABASE_URL', extras_name='database')
    # {'host': 'postgres.example.com',
    #  'port': 5432,
    #  'user': 'me',
    #  'password': 'sekrit',
    #  'database': 'catpics'}

    # Parse a service url with defaults, using query params for extra values.
    redis_config = env.service_url('REDIS_URL', 'redis://localhost/', defaults={
        'host': 'service.example.com', 'port': 6379, 'dbid': 0})
    # {'host': 'redis.example.com',
    #  'port': 6379,
    #  'user': None,
    #  'password': None,
    #  'extras': None,
    #  'dbid': '3'}



Limitations
-----------

There's currently no way to do casting on any extras or query string paramaters.
They will always be returned as string types.


License
-------

MIT.  See the `LICENSE <https://github.com/flowroute/environs-serviceurl/blob/master/LICENSE>`_ file for details.


