Metadata-Version: 2.1
Name: omg-micro
Version: 0.4.0
Summary: A micro-framework for the OMG, and code written in Python 3.6+.
Home-page: https://github.com/microservices/omg.py
Author: Asyncy
Author-email: me@kennethreitz.org
License: MIT
Description: 
        # omg.py
        
        A micro-framework for the excellent **[Open Microservices Guide](https://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](https://github.com/microservices?utf8=%E2%9C%93&q=omg.*&type=&language=), as well. If you'd like to help, [let us know](kenneth@storyscript.io)!
        
        # Intended / Example Usage
        
        ```shell
        $ cat service.py
        ```
        ```python
        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()
        ```
        
        `register` takes some optional arguments: `name` and `path`. You can also call `service.add(f=new)`, instead.
        
        Next, run the command `$ omg-generate` `microservice.yml` files will automatically be generated, for your application:
        
        ```shell
        $ omg-generate service:service
        …
        'microservice.yml' written to disk!
        ```
        
        ```yaml
        $ 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
        
        ```
        
        ```shell
        $ cat Dockerfile
        FROM kennethreitz/pipenv
        COPY . /app
        CMD ["python3", "service.py"]
        ```
        
        Now, run your microservice!
        
        ```shell
        $ 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](https://docs.pylonsproject.org/projects/waitress/en/stable/)), preconfigured to serve the masses!
        
        Or, use the [omg-cli](https://github.com/microservices/omg-cli):
        
        ```shell
        $ omg run new -a prefix='user-'
        …
        ```
        
        ## Installation
        
        ```shell
        $ pip install omg.py
        ```
        
        **P.S.** Do provide feedback, if you desire! :)
        
        ✨ 🍰 ✨
        
Platform: UNKNOWN
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Requires-Python: >=3.6.0
Description-Content-Type: text/markdown
