Python Services and Service Manager Experiment
Python Shell
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
data
docs
services
system
tests
utils
v2
.env
.gitignore
MANIFEST
README.md
TODO.md
__init__.py
app.py
checks.md
cloc.ignore
code_quality.sh
design.md
go.py
lines_of_code.sh
requirements.txt
setup.py
tox.ini

README.md

README

This was a simple python application that tries to model the lifecycle of asynchronous services. It has good logging, clean code, and lots of tests. Generally it ended up very far from what I had originally envisioned.

Deps

This project can make use of pypy.

brew install pypy

mkvirtualenv --python $(which pypy) pypy-git-pub
# then always use pypy in place of python
# you can also use pip, which should be referenced by
# the new virtualenv

Upgrade Pip to the lastest:

pip install --upgrade pip

Below is the manual list which should match the requirements.txt file. Note that the below are ABSOLUTELY REQUIRED.

pip install -U --pre github3.py
pip install -U requests
pip install -U CacheControl
pip install -U pytest
pip install -U requests_mock
pip install -U futures
# pypy already provides, pip install -U greenlet
pip install gevent==1.1b6 # get latest release from https://github.com/gevent/gevent/releases
# non pypy: pip install -U gevent
pip install -U enum34
pip install -U scales
pip install -U flask
pip install -U pytest-flask
# pip install -U gipc # may require `xcode-select --install` to be run
pip install -U tox
pip install -U structlog
pip install -U ipython
pip install -U jupyter
pip install -U python-igraph
pip install -U matplotlib
pip install -U Jinja2
pip install -U numpy
pip install -U pyzmq
pip install -U tornado
pip install -U sympy
pip install -U six
pip install -U pyparsing
pip install -U radon # https://radon.readthedocs.org/en/latest/commandline.html
pip install -U xenon

Tests

Unit Tests

Uses py.test:

# make sure your in the root of the project
./py.test

Integration Tests

Uses tox. See:

  1. tox.ini
  2. requirements.ini
  3. setup.py

Usage:

tox

Development/Usage

Generate Requirements

pip freeze > requirements.txt