Metadata-Version: 2.0
Name: Micro-dev
Version: 2.1.0
Summary: Library to create microservices for Micro
Home-page: https://github.com/humu1us/micro-dev
Author: Felipe Ortiz, Pablo Ahumada
Author-email: fortizc@gmail.com, pablo.ahumadadiaz@gmail.com
License: MIT
Keywords: microservices celery
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development
Classifier: Topic :: System
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Requires-Dist: amqp (<=2.2.2,>2)
Requires-Dist: celery (<=4.1.0,>4)
Requires-Dist: kombu (<=4.1.0,>4)

Micro-dev
=========

Micro-dev is the only thing needed to create plugins for Micro and
use the Micro’s endpoints to send tasks.

Installation
------------

PyPi:

::

    $ pip install micro-dev

Development version:

::

    $ git clone git@github.com:humu1us/micro-dev.git:
    $ cd micro-dev
    $ pip install .

or direct from repository:

::

    $ pip install git+ssh://git@github.com/humu1us/micro-dev.git

Usage
-----

Create Plugins
~~~~~~~~~~~~~~

Write a Micro plugin is very simple. All that you need to do is create a
file named ``interface.py`` which defines the plugin as follow:

.. code:: python

    from micro.plugin.pluginbase import PluginBase
    from micro.plugin.pluginbase import PluginDescription


    class ExamplePlugin(PluginBase):
        def __init__(self):
            print("This is an example plugin")

        # This is the method executed by Micro
        def run(self, name):
            return "Hello " + name + "!!!"


    # This description is required by Micro
    plugin = PluginDescription(
        instance=ExamplePlugin,
        name="Example Plugin",
        author="Jhon Doe",
        description="A very simple example plugin",
        long_description="This plugin is a very simple example, "
                         "for that reason, we don't have a long description",
        plugin_help="Params: name type string; A name to greet"
    )

Send tasks
~~~~~~~~~~

.. code:: python

    >>> from micro.api.endpoints import Requests
    >>>
    >>> req = Requests(BROKER_URL, QUEUE_NAME)
    >>>
    >>> req.plugins.delay().wait()
    {'Example plugin': 'A very simple example plugin'}
    >>>
    >>> req.run.delay("Example plugin", name="Micro").wait()
    'Hello Micro!!!'


