omg.py 0.3.3

Creator: railscoder56

Last updated:

Add to Cart

Description:

omg.py 0.3.3

omg.py
A micro-framework for the excellent Open Microservices Guide, for suppportive code written in Python 3.6+.
Note: this is pre-release software, and is subject to improvement. Contributions are welcome! This framework is being developed for other languages, as well. If you'd like to help, let us know!
Intended / Example Usage
$ cat service.py

import omg
from uuid import uuid4

service = omg.Microservice(name='uuid')

@service.register()
def new(prefix: str) -> str:
"""Generates a UUID, with a given prefix."""
return f'{prefix}{uuid4().hex}'

if __name__ == '__main__':
service.serve(ensure=True)

register takes some optional arguments: name and path. You can also call service.add(f=new), instead.
If not available on disk, the required Dockerfile and microservice.yml files will automatically be generated, for your application:
$ cat microservice.yml
actions:
new:
help: Generates a UUID, with a given prefix.
arguments:
prefix:
in: query
required: true
type: string
http:
method: get
path: /new
port: 8080
output:
type: string
lifecycle:
startup:
command:
- python3
- /app/service.py
omg: 1

$ cat Dockerfile
FROM kennethreitz/pipenv
COPY . /app
CMD ["python3", "service.py"]

Now, run your microservice!
$ python service.py
2019-05-09 14:45:39,342 - micro - DEBUG - Initiating 'uuid' service.
2019-05-09 14:45:39,344 - micro - DEBUG - Registering Flask endpoint: '/new'
2019-05-09 14:45:39,344 - micro - DEBUG - Dockerfile './Dockerfile' already exists!
2019-05-09 14:45:39,345 - micro - DEBUG - Microservice Manifest './microservice.yml' already exists!
2019-05-09 14:45:39,346 - micro - INFO - Serving on: '*:8080'

This will spawn a Flask application (using the production-ready waitress web server), preconfigured to serve the masses!
Or, use the omg-cli:
$ omg run new -a prefix='user-'


Installation
$ pip install omg.py

P.S. Do provide feedback, if you desire! :)
✨ 🍰 ✨

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.