Library of utils to create REST Python Microservices
Project description
Python Microservices Library
PyMS, Python MicroService, is a collections of libraries, best practices and recommended ways to build microservices with Python.
To know how use, install or build a porject see the docs (TODO: add url to readthedocs)
Installation
pip install py-ms
Structure
pyms/config
Module to read yaml or json configuration from a dictionary or a path.
pyms/flask/app
With the funcion create_app
initialize the Flask app, register blueprints
and intialize all libraries like Swagger, database, trace system, custom logger format, etc.
pyms/flask/healthcheck
This views is usually used by Kubernetes, Eureka and other systems to check if our application is up and running.
pyms/logger
Print logger in JSON format to send to server like Elasticsearch. Inject span traces in logger.
pyms/rest_template
Encapsulate common rest operations between business services propagating trace headers if configured.
pyms/tracer
Create an injector flask_opentracing.FlaskTracer
to use in our projects
Pipenv
Advantages over plain pip and requirements.txt
Pipenv generates two files: a Pipfile
and a Pipfile.lock
.
Pipfile
: Is a high level declaration of the dependencies of your project. It can contain "dev" dependencies (usually test related stuff) and "standard" dependencies which are the ones you'll need for your project to functionPipfile.lock
: Is the "list" of all the dependencies your Pipfile has installed, along with their version and their hashes. This prevents two things: Conflicts between dependencies and installing a malicious module.
How to...
Here the most 'common' pipenv
commands, for a more in-depth explanation please refer to the official documentation.
Install pipenv
pip install pipenv
Install dependencies defined in a Pipfile
pipenv install
Install both dev and "standard" dependencies defined in a Pipfile
pipenv install --dev
Install a new module
pipenv install django
Install a new dev module (usually test related stuff)
pipenv install nose --dev
Install dependencies in production
pipenv install --deploy
Start a shell
pipenv shell
Documentation
This project use MkDocs
mkdocs new [dir-name]
- Create a new project.mkdocs serve
- Start the live-reloading docs server.mkdocs build
- Build the documentation site.mkdocs help
- Print this help message.
Project layout
mkdocs.yml # The configuration file.
docs/
index.md # The documentation homepage.
... # Other markdown pages, images and other files.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.