Metadata-Version: 2.1
Name: trustpilot
Version: 6.0.1
Summary: trustpilot api client including cli tool
Home-page: https://github.com/trustpilot/python-trustpilot
Author: jgv
Author-email: jgv@trustpilot.com
License: UNKNOWN
Description: trustpilot
        ==========
        
        |Build Status| |Latest Version| |Python Support|
        
        Python HTTP client for
        `Trustpilot <https://developers.trustpilot.com/>`__.
        
        Features
        ~~~~~~~~
        
        -  Extends the
           ```requests.Session`` <http://docs.python-requests.org/en/master/api/#requests.Session>`__
           class with automatic authentication for public and private endpoints
        -  GET, POST, PUT, DELETE, HEAD, OPTIONS and PATCH methods are exposed
           on module level
        -  Implements session factory and default singleton session
        -  Provides a simple hook system
        -  CLI tool with basic HTTP commands
        
        Installation
        ------------
        
        Install the package from `PyPI <http://pypi.python.org/pypi/>`__ using
        `pip <https://pip.pypa.io/>`__:
        
        ::
        
            pip install trustpilot
        
        Getting Started
        ---------------
        
        This client is using the
        `Requests <http://docs.python-requests.org/en/master/>`__ library.
        Responses are standard
        ```requests.Response`` <http://docs.python-requests.org/en/master/api/#requests.Response>`__
        objects. You can use it as a factory or as a singleton.
        
        Use the singleton session
        ~~~~~~~~~~~~~~~~~~~~~~~~~
        
        Use the built-in ``default session`` to instantiate a globally
        accessible session.
        
        .. code:: python
        
            from trustpilot import client
            client.default_session.setup(
                api_host="https://api.trustpilot.com",
                api_key="YOUR_API_KEY",
                api_secret="YOUR_API_SECRET",
                username="YOUR_TRUSTPILOT_BUSINESS_USERNAME",
                password="YOUR_TRUSTPILOT_BUSINESS_PASSWORD"
            )
            response = client.get("/v1/foo/bar")
        
        You can rely on environment variables for the setup of sessions so
        
        .. code:: bash
        
            $ env
            TRUSTPILOT_API_HOST=foobar.com
            TRUSTPILOT_API_KEY=foo
            TRUSTPILOT_API_SECRET=bar
            TRUSTPILOT_USERNAME=username
            TRUSTPILOT_PASSWORD=password
        
        Will work with the implicit ``default_session`` and the
        ``TrustpilotSession.setup`` method.
        
        .. code:: python
        
            from trustpilot import client
            client.get("/v1/foo/bar")
        
        Instantiate your own session
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        
        You can create as many sessions as you like, as long as you pass them
        around yourself.
        
        .. code:: python
        
            from trustpilot import client
            session = client.TrustpilotSession(
                api_host="https://api.trustpilot.com",
                api_key="YOUR_API_KEY",
                api_secret="YOUR_API_SECRET",
                username="YOUR_TRUSTPILOT_BUSINESS_USERNAME",
                password="YOUR_TRUSTPILOT_BUSINESS_PASSWORD"
            )
            response = session.get("/v1/foo/bar")
        
        Async client
        ------------
        
        Since version ``3.0.0`` you are able to use the ``async_client`` for
        ``asyncio`` usecases.
        
        To use the default ``async_client`` session, using ``env-vars`` for
        settings, import is as following:
        
        .. code:: python
        
            import asyncio
            from trustpilot import async_client
            loop = asyncio.get_event_loop()
        
            async def get_response():
                response = await async_client.get('/v1/foo/bar')
                response_json = await response.json()
        
            loop.run_until_complete(get_response())
        
        Or instantiate the session yourself with:
        
        .. code:: python
        
            import asyncio
            from trustpilot import async_client
            loop = asyncio.get_event_loop()
        
            session = async_client.TrustpilotAsyncSession(
                api_host="https://api.trustpilot.com",
                api_key="YOUR_API_KEY",
                api_secret="YOUR_API_SECRET",
                username="YOUR_TRUSTPILOT_BUSINESS_USERNAME",
                password="YOUR_TRUSTPILOT_BUSINESS_PASSWORD"
            )
        
            async def get_response():
                response = await session.get('/v1/foo/bar')
                response_json = await response.json()
        
            loop.run_until_complete(get_response())
        
        CLI
        ---
        
        A command line tool ``trustpilot_api_client`` is bundled with the
        module. To invoke it, use:
        
        .. code:: bash
        
            Usage: trustpilot_api_client [OPTIONS] COMMAND [ARGS]...
        
            Options:
              --host TEXT               host name
              --key TEXT                api key
              --secret TEXT             api secret
              --token_issuer_host TEXT  token issuer host name
              --username TEXT           Trustpilot username
              --password TEXT           Trustpilot password
              -c TEXT                   json config file name
              -v, --verbose             verbosity level
              --help                    Show this message and exit.
        
            Commands:
              create_access_token  Get an access token
              delete               Send a DELETE request
              get                  Send a GET request
              post                 Send a POST request with specified data
              put                  Send a PUT request with specified data
        
        In order to use the **-c** option please supply the filename of a JSON
        in the following format:
        
        .. code:: json
        
            {
              "TRUSTPILOT_API_HOST": "foo",
              "TRUSTPILOT_API_KEY": "bar",
              "TRUSTPILOT_API_SECRET": "baz",
              "TRUSTPILOT_USERNAME": "username",
              "TRUSTPILOT_PASSWORD": "password"
            }
        
        Tests
        -----
        
        You can use pytest to run tests against your current Python version.
        
        See ```setup.py`` <setup.py>`__ for test dependencies.
        
        .. |Build Status| image:: https://travis-ci.org/trustpilot/python-trustpilot.svg?branch=master
           :target: https://travis-ci.org/trustpilot/python-trustpilot
        .. |Latest Version| image:: https://img.shields.io/pypi/v/trustpilot.svg
           :target: https://pypi.python.org/pypi/trustpilot
        .. |Python Support| image:: https://img.shields.io/pypi/pyversions/trustpilot.svg
           :target: https://pypi.python.org/pypi/trustpilot
        
        
        =======
        History
        =======
        
        0.1.0 (2016-11-09)
        ------------------
        
        * First release on gemfury
        
        0.1.1 (2016-11-09)
        ------------------
        
        * change names
        
        0.1.2 (2016-11-09)
        ------------------
        
        * fix issue with  401-retry
        
        0.1.3 (2016-11-10)
        ------------------
        
        * add dependencies to setup.py
        
        0.1.4 (2016-11-11)
        ------------------
        
        * cli tool
        
        0.1.5 (2016-11-11)
        ------------------
        
        * fix apikey url query param error
        
        0.1.6 (2016-11-11)
        ------------------
        
        * introduce different token_issuer_host thatn api_host
        
        0.1.7 (2016-12-06)
        ------------------
        
        * Introduce context_getter on session object, defaulted to holding CorrelationId=random_uuid
        
        1.0.0 (2017-02-01)
        ------------------
        
        * first release as oss, major refactoring of inner machinery (session objects, retry policies, cli, tests etc)
        
        1.1.0 (2017-06-12)
        ------------------
        
        * fixed logging so it does not use root logger. according to best practices mentioned in http://pythonsweetness.tumblr.com/post/67394619015/use-of-logging-package-from-within-a-library
        * removed dependency on httpretty since it is not supporting py3
        
        2.0.0 (2017-09-29)
        ------------------
        
        * DEPRECATED: create_session is getting deprecated, use trustpilot.client.default_session.setup instead
        * now able to query public endpoints without being authenticated
        
        2.1.0 (2017-10-05)
        ------------------
        
        * fixed issue in cli.post & cli.put where 'content_type' should be 'content-type'
        
        3.0.0 (2018-01-18)
        ------------------
        
        DELETED DO NOT USE!!
        
        * add async-client
        
        
        3.0.1 (2018-01-18)
        ------------------
        
        * removed prints
        * made async_client retry on unauthorized
        
        4.0.0 (2018-06-06)
        ------------------
        
        * drop support for Python 3.3
        
        
        4.0.1 (2018-06-06)
        ------------------
        
        * Switch to non-deprecated session object for utility method calls
        
        4.0.2 (2018-10-30)
        ------------------
        
        * Upgrade requests to 2.20.0
        
        5.0.0 (2019-01-04)
        ------------------
        
        * Update to authentication methods
        
        5.0.1 (2019-02-04)
        ------------------
        
        * Fix documentation formatting
        
        6.0.0 (2019-02-06)
        ------------------
        
        * reorganize code
        * add user-agent header
        * get access_token with async call in async_client
        
Keywords: trustpilot api client
Platform: UNKNOWN
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Provides-Extra: test
Provides-Extra: async
