Skip to content

Commit

Permalink
Merge f08c713 into 61fddb0
Browse files Browse the repository at this point in the history
  • Loading branch information
yavorona committed May 14, 2020
2 parents 61fddb0 + f08c713 commit 020314a
Show file tree
Hide file tree
Showing 17 changed files with 254 additions and 25 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,6 @@ datafile.json

# OSX folder metadata
*.DS_Store

# Sphinx documentation
docs/build/
11 changes: 5 additions & 6 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Contributing to the Optimizely Python SDK
=========================================
Contributing
============

We welcome contributions and feedback! All contributors must sign our
[Contributor License Agreement
Expand All @@ -15,7 +15,7 @@ Development process
2. Please follow the [commit message guidelines](https://github.com/angular/angular/blob/master/CONTRIBUTING.md#-commit-message-guidelines)
for each commit message.
3. Make sure to add tests!
4. Run `pep8` to ensure there are no lint errors.
4. Run `flake8` to ensure there are no lint errors.
5. `git push` your changes to GitHub.
6. Open a PR from your fork into the master branch of the original
repo.
Expand All @@ -34,13 +34,12 @@ Pull request acceptance criteria
- Tests are located in `/tests` with one file per class.
- Please don't change the `__version__`. We'll take care of bumping
the version when we next release.
- Lint your code with PEP-8 before submitting.
- Lint your code with Flake8 before submitting.

Style
-----

We enforce Flake8 rules with a few minor
[deviations](https://github.com/optimizely/python-sdk/blob/master/tox.ini).
We enforce Flake8 rules.

License
-------
Expand Down
1 change: 1 addition & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,5 @@ include LICENSE
include CHANGELOG.md
include README.md
include requirements/*
recursive-exclude docs *
recursive-exclude tests *
34 changes: 16 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,10 @@
Optimizely Python SDK
=====================

[![PyPI
version](https://badge.fury.io/py/optimizely-sdk.svg)](https://pypi.org/project/optimizely-sdk)
[![Build
Status](https://travis-ci.org/optimizely/python-sdk.svg?branch=master)](https://travis-ci.org/optimizely/python-sdk)
[![Coverage
Status](https://coveralls.io/repos/github/optimizely/python-sdk/badge.svg)](https://coveralls.io/github/optimizely/python-sdk)
[![Apache
2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](http://www.apache.org/licenses/LICENSE-2.0)
[![PyPI version](https://badge.fury.io/py/optimizely-sdk.svg)](https://pypi.org/project/optimizely-sdk)
[![Build Status](https://travis-ci.org/optimizely/python-sdk.svg?branch=master)](https://travis-ci.org/optimizely/python-sdk)
[![Coverage Status](https://coveralls.io/repos/github/optimizely/python-sdk/badge.svg)](https://coveralls.io/github/optimizely/python-sdk)
[![Apache 2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](http://www.apache.org/licenses/LICENSE-2.0)

This repository houses the official Python SDK for use with Optimizely
Full Stack and Optimizely Rollouts.
Expand Down Expand Up @@ -126,21 +122,23 @@ notification_center.
#### Advanced configuration

The following properties can be set to override the default
configurations for [PollingConfigManager]{.title-ref}.
configurations for [PollingConfigManager](#pollingconfigmanager).

**PropertyName** **Default Value** **Description**
------------------ ----------------------------------------------------------- --------------------------------------------------------------------------------------
update_interval 5 minutes Fixed delay between fetches for the datafile
sdk_key None Optimizely project SDK key
url None URL override location used to specify custom HTTP source for the Optimizely datafile
url_template https://cdn.optimizely.com/datafiles/{sdk_key}.json Parameterized datafile URL by SDK key
datafile None Initial datafile, typically sourced from a local cached source
| **Property Name** |**Default Value**| **Description** |
|:-----------------------:|:---------------:|:--------------------------------------------------------------:|
| update_interval | 5 minutes | Fixed delay between fetches for the datafile |
| sdk_key | None | Optimizely project SDK key |
| url | None | URL override location used to specify custom |
| HTTP source for Optimizely datafile<br>url_template |https://cdn.optimizely.com/datafiles/{sdk_key}.json|Parameterized datafile URL by SDK key|
| datafile | None | Initial datafile, typically sourced from a local cached source |

A notification signal will be triggered whenever a *new* datafile is
fetched and Project Config is updated. To subscribe to these
notifications, use:

`notification_center.add_notification_listener(NotificationTypes.OPTIMIZELY_CONFIG_UPDATE, update_callback)`
```
notification_center.add_notification_listener(NotificationTypes.OPTIMIZELY_CONFIG_UPDATE, update_callback)
```

For Further details see the Optimizely [Full Stack documentation](https://docs.developers.optimizely.com/full-stack/docs) to learn how to set up your first Python project and use the SDK.

Expand Down Expand Up @@ -202,4 +200,4 @@ would be:

### Contributing

Please see [CONTRIBUTING](CONTRIBUTING.md).
Please see [CONTRIBUTING](https://github.com/optimizely/python-sdk/blob/master/CONTRIBUTING.md).
20 changes: 20 additions & 0 deletions docs/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Minimal makefile for Sphinx documentation
#

# You can set these variables from the command line, and also
# from the environment for the first two.
SPHINXOPTS ?=
SPHINXBUILD ?= sphinx-build
SOURCEDIR = source
BUILDDIR = build

# Put it first so that "make" without argument is like "make help".
help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)

.PHONY: help Makefile

# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
20 changes: 20 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
Documentation
=============

Getting Started
---------------

### Installing the requirements

To install dependencies required to generate sphinx documentation locally, execute the following command from the main directory:

pip install -r requirements/docs.txt

### Building documentation locally

To generate Python SDK documentation locally, execute the following commands:

cd docs/
make html

This will build HTML docs in `docs/build/html/index.html`. Open this file in your web browser to see the docs.
35 changes: 35 additions & 0 deletions docs/make.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
@ECHO OFF

pushd %~dp0

REM Command file for Sphinx documentation

if "%SPHINXBUILD%" == "" (
set SPHINXBUILD=sphinx-build
)
set SOURCEDIR=source
set BUILDDIR=build

if "%1" == "" goto help

%SPHINXBUILD% >NUL 2>NUL
if errorlevel 9009 (
echo.
echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
echo.installed, then set the SPHINXBUILD environment variable to point
echo.to the full path of the 'sphinx-build' executable. Alternatively you
echo.may add the Sphinx directory to PATH.
echo.
echo.If you don't have Sphinx installed, grab it from
echo.http://sphinx-doc.org/
exit /b 1
)

%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
goto end

:help
%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%

:end
popd
Binary file added docs/optimizely.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
33 changes: 33 additions & 0 deletions docs/source/api_reference.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
Optimizely's APIs
=================
.. automodule:: optimizely.optimizely
:members:
:special-members: __init__


Event Dispatcher
================
.. autoclass:: optimizely.event_dispatcher.EventDispatcher
:members:


Logger
======
.. automodule:: optimizely.logger
:members:


User Profile
============

``UserProfile``
---------------

.. autoclass:: optimizely.user_profile.UserProfile
:members:

``UserProfileService``
----------------------

.. autoclass:: optimizely.user_profile.UserProfileService
:members:
64 changes: 64 additions & 0 deletions docs/source/conf.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# Configuration file for the Sphinx documentation builder.
#
# This file only contains a selection of the most common options. For a full
# list see the documentation:
# https://www.sphinx-doc.org/en/master/usage/configuration.html

# -- Path setup --------------------------------------------------------------

# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#
import os
import sys
sys.path.insert(0, os.path.abspath('../..'))

from optimizely.version import __version__ # noqa: E402

# -- Project information -----------------------------------------------------

project = 'Optimizely Python SDK'
copyright = '2016-2020, Optimizely, Inc'
author = 'Optimizely, Inc.'
version = __version__
master_doc = 'index'

# The full version, including alpha/beta/rc tags
release = ''

# -- General configuration ---------------------------------------------------

# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
"m2r",
"sphinx.ext.autodoc",
"sphinx.ext.napoleon",
"sphinx.ext.autosectionlabel"
]
autosectionlabel_prefix_document = True

# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']

# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This pattern also affects html_static_path and html_extra_path.
exclude_patterns = [
]


# -- Options for HTML output -------------------------------------------------

# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
#
# html_theme = 'alabaster'
html_theme = "sphinx_rtd_theme"
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
# html_static_path = ['_static']
html_logo = "../optimizely.png"
20 changes: 20 additions & 0 deletions docs/source/config_manager.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
Config Manager
==============

``Base Config Manager``
-----------------------

.. autoclass:: optimizely.config_manager.BaseConfigManager
:members:

``Static Config Manager``
-------------------------

.. autoclass:: optimizely.config_manager.StaticConfigManager
:members:

``Polling Config Manager``
--------------------------

.. autoclass:: optimizely.config_manager.PollingConfigManager
:members:
1 change: 1 addition & 0 deletions docs/source/contributing.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.. mdinclude:: ../../CONTRIBUTING.md
26 changes: 26 additions & 0 deletions docs/source/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
Optimizely Python SDK
=====================

.. toctree::
:caption: Introduction

readme


.. toctree::
:caption: API reference

api_reference


.. toctree::
:caption: Configuration Data

config_manager
optimizely_config


.. toctree::
:caption: Help

contributing
5 changes: 5 additions & 0 deletions docs/source/optimizely_config.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
OptimizelyConfig
================

.. automodule:: optimizely.optimizely_config
:members:
1 change: 1 addition & 0 deletions docs/source/readme.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.. mdinclude:: ../../README.md
3 changes: 3 additions & 0 deletions requirements/docs.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
sphinx==2.4.4
sphinx-rtd-theme==0.4.3
m2r==0.2.1
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@
'Programming Language :: Python :: 3.5',
'Programming Language :: Python :: 3.6',
],
packages=find_packages(exclude=['tests']),
packages=find_packages(exclude=['docs', 'tests']),
extras_require={'test': TEST_REQUIREMENTS},
install_requires=REQUIREMENTS,
tests_require=TEST_REQUIREMENTS,
Expand Down

0 comments on commit 020314a

Please sign in to comment.