Skip to main content

A micro-framework for the OMG, and code written in Python 3.6+.

Project description

OMG: Micro Framework

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!

Intended / Example Usage

$ cat service.py
import micro
from uuid import uuid4

service = micro.Service(name='uuid')

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

# Alternative Syntax:
# service.add(f=gen_uuid4)

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

If not available on disk, the required Dockerfile and microservice.yml files will automatically be generated, for your application:

$ cat microservice.yml
actions:
  uuid4:
    help: Generates a UUID, with a given prefix.
    http:
      method: get
      path: /uuid4
      port: 8080
    output:
      type: string
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: '/uuid4'
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'

Or, use the omg-cli:

$ omg run uuid4 -a prefix='user-'

Installation

$ pip install omg-micro

P.S. This doesn't work yet. :)

✨ 🍰 ✨

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

omg-micro-0.1.0.tar.gz (6.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

omg_micro-0.1.0-py2.py3-none-any.whl (4.9 kB view details)

Uploaded Python 2Python 3

File details

Details for the file omg-micro-0.1.0.tar.gz.

File metadata

  • Download URL: omg-micro-0.1.0.tar.gz
  • Upload date:
  • Size: 6.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.3

File hashes

Hashes for omg-micro-0.1.0.tar.gz
Algorithm Hash digest
SHA256 677d0482fbecb7ca2a7a83486ae9b309686470ab12c00e9790e37a295c3fe2e3
MD5 f8f141dc66fafe743bb1bf8f9495d61e
BLAKE2b-256 a33bad93abb5cf766ba3adec8ea8a0df97b3dc9c9fb755c13393aa966068ac10

See more details on using hashes here.

File details

Details for the file omg_micro-0.1.0-py2.py3-none-any.whl.

File metadata

  • Download URL: omg_micro-0.1.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 4.9 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.3

File hashes

Hashes for omg_micro-0.1.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 4770d2afca2625774d52cc515e357872648e9d7c52d9a33f6803466275d0d144
MD5 7e2a4b3677e85df5c83c99a15adb6af6
BLAKE2b-256 fc375eaa5cf0533a3bb7c01089db097d44f2d5c8bdb8cc2503ea4e7820b5d7b8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page