Metadata-Version: 1.2
Name: molasses
Version: 0.3.1
Summary: python SDK for Molasses - feature flags as a service
Home-page: https://github.com/molassesapp/molasses_python
Author: James Hrisho
Author-email: admin@molasses.app
License: MIT license
Description: .. image:: https://raw.githubusercontent.com/molassesapp/molasses-go/main/logo.png
                :width: 100
                :height: 100
                :target: https://molasses.app
        
        ===============
        molasses-python
        ===============
        
        .. image:: https://img.shields.io/pypi/v/molasses.svg
                :target: https://pypi.python.org/pypi/molasses
        
        
        A Python SDK for Molasses. It allows you to evaluate user's status for a feature. It also helps simplify logging events for A/B testing.
        
        Molasses uses server sent events to get instant updates with an option for polling to check if you have updated features. Once initialized, it takes microseconds to evaluate if a user is active.
        
        
        Install
        -------
        
        .. code:: python
        
          pip install molasses
        
        
        Usage
        -----
        
        Initialization
        ~~~~~~~~~~~~~~
        
        Start by initializing the client with an ``APIKey``. This begins the
        polling for any feature updates. The updates happen every 15 seconds.
        
        .. code:: python
        
           from molasses import MolassesClient
        
           client = MolassesClient("test_key")
        
        If you decide not to track analytics events (experiment started,
        experiment success) you can turn them off by setting the ``send_events``
        field to ``False``
        
        .. code:: python
        
           client = MolassesClient("test_key",  send_events=False)
        
        Check if feature is active
        ~~~~~~~~~~~~~~~~~~~~~~~~~~
        
        You can call ``is_active`` with the key name and optionally a user’s
        information. The ``id`` field is used to determine whether a user is
        part of a percentage of users. If you have other constraints based on
        user params you can pass those in the ``params`` field.
        
        .. code:: python
        
            client.is_active("FOO_TEST", {
              "id":"foo",
              "params":{
                "isBetaUser":"false",
                "isScaredUser":"false"
               }
            })
        
        You can check if a feature is active for a user who is anonymous by just
        calling ``is_active`` with the key. You won’t be able to do percentage
        roll outs or track that user’s behavior.
        
        .. code:: python
        
           client.is_active("TEST_FEATURE_FOR_USER")
        
        Experiments
        ~~~~~~~~~~~
        
        To track an analytics events called the ``track`` method.
        
        .. code:: python
        
           client.track("Button Clicked",{
              "id":"foo",
              "params":{
                "isBetaUser":"false",
                "isScaredUser":"false"
               }
            },
            {
              "version": "v2.3.0"
           })
        
        To track whether an experiment was successful you can call
        ``experiment_started``. experiment_started takes the feature’s name, any
        additional parameters for the event and the user.
        
        .. code:: python
        
           client.experiment_started("GOOGLE_SSO",{
              "id":"foo",
              "params":{
                "isBetaUser":"false",
                "isScaredUser":"false"
               }
            },
            {
              "version": "v2.3.0"
           })
        
        To track whether an experiment was successful you can call
        ``experiment_success``. experiment_success takes the feature’s name, any
        additional parameters for the event and the user.
        
        .. code:: python
        
           client.experiment_success("GOOGLE_SSO",{
              "id":"foo",
              "params":{
                "isBetaUser":"false",
                "isScaredUser":"false"
               }
            },
            {
              "version": "v2.3.0"
           })
        
        Example
        -------
        
        .. code:: ruby
        
           from molasses import MolassesClient
        
           client = MolassesClient("test_key")
        
           if client.is_active('NEW_CHECKOUT'):
             print "we are a go"
           else:
             print "we are a no go"
        
        Credits
        -------
        
        This package was created with Cookiecutter_ and the `audreyr/cookiecutter-pypackage`_ project template.
        
        .. _Cookiecutter: https://github.com/audreyr/cookiecutter
        .. _`audreyr/cookiecutter-pypackage`: https://github.com/audreyr/cookiecutter-pypackage
        
        
        =======
        History
        =======
        
        0.1.0 (2020-09-24)
        ------------------
        
        * First release on PyPI.
        
Keywords: molasses,feature flags,feature toggles
Platform: UNKNOWN
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Requires-Python: >=3.5
