This release is a pre-release and may not be stable for production use.
Python Microservices Library
PyMS, Python MicroService, is a collections of libraries, best practices and recommended ways to build microservices with Python.
Documentation
To know how use, install or build a project see the docs: https://py-ms.readthedocs.io/en/latest/
Motivation
When we started to create microservice with no idea, we were looking for tutorials, guides, best practices, but we found nothing to create professional projects. Most articles say:
- "Install flask"
- "Create routes"
- (Sometimes) "Create a swagger specs"
- "TA-DA! you have a microservice"
But... what happens with our configuration out of code like Kubernetes configmap? what happens with transactionality? If we have many microservices, what happens with traces?.
There are many problems around Python and microservices and we can`t find anyone to give a solution.
We start creating these projects to try to solve all the problems we have found in our professional lives about microservices architecture.
Nowadays, is not perfect and we have a looong roadmap, but we hope this library could help other felas and friends ;)
Installation
pip install py-ms
Quickstart
You need to create 2 files: main.py and config.yml:
main.py
from flask import jsonify
from pyms.flask.app import Microservice
ms = Microservice(path=__file__) # 1.1
app = ms.create_app() # 2.1
@app.route("/") # 3.1
def example():
return jsonify({"main": "hello world"})
if __name__ == '__main__':
app.run()
config.yml
pyms: # 1.2
requests:
data: {}
ms: # 1.3
DEBUG: true
APP_NAME: business-glossary
APPLICATION_ROOT : ""
SECRET_KEY: "gjr39dkjn344_!67#"
So what did that code do?
- Create a instance of PyMS Microservice class (#1.1). This initialization inject the configuration defined in the 1.3 block and could be accessed through current_app.config. Then, initialize the service defined in the 1.2 block. See Services for more details.
- Initialize Flask instance, Connexion
if it was defined in the pyms configuration block, create a tracer, add health-check blueprint, initialize libs and set the PyMS Microservice in
msattribute and you can access to it withcurrent_app.ms. This steps has their each functions and you can easy override it. create_appreturn the flask instance and you can interact with it as a typical flask app
See Documentation https://py-ms.readthedocs.io/en/latest/ to learn more.
How To Contrib
We appreciate opening issues and pull requests to make PyMS even more stable & useful! See This doc for more details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file py-ms-1.4.1rc2.tar.gz.
File metadata
- Download URL: py-ms-1.4.1rc2.tar.gz
- Upload date:
- Size: 31.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.29.1 CPython/3.6.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cf6c86b207e699d84a8c48f8e444eb6e675a57272de4c9d1d5e6e54c7a567bcb
|
|
| MD5 |
9a5d23ff26af7e18f53e12bd76bca454
|
|
| BLAKE2b-256 |
9771f876cf5210ef65f251e1dba037e6a14771f809561bb9fde5e1bbcc03fa65
|
File details
Details for the file py_ms-1.4.1rc2-py3-none-any.whl.
File metadata
- Download URL: py_ms-1.4.1rc2-py3-none-any.whl
- Upload date:
- Size: 71.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.29.1 CPython/3.6.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b485fa8b69105324a3601a722658ab8761b46277a1cebb1743984e72e1707691
|
|
| MD5 |
7ee93289178c0921ff275500dc52e348
|
|
| BLAKE2b-256 |
5f0eaa4be42f08af189fef9b1e2523bdc196f5e850629aacbd3f581d9680e242
|