Metadata-Version: 2.0
Name: pylexa
Version: 0.0.12
Summary: A library to ease creation of an Alexa Skills Kit
Home-page: http://www.github.com/patricksmith/pylexa
Author: Patrick Smith
Author-email: pjs482@gmail.com
License: UNKNOWN
Keywords: amazon alexa ask
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Topic :: Utilities
Requires-Dist: flask
Requires-Dist: pycrypto
Requires-Dist: pyopenssl
Requires-Dist: python-dateutil

``pylexa``
==========

*NOTE: This library is NOT ready for production use yet!*

``pylexa`` is a library that aims to ease development of an `Alexa
Skills
Kits <https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit>`__.

``pylexa`` allows one to define a simple Flask application that will be
able to accept requests and return appropriate responses to the Alexa
service.

Example
-------

Let's say you want to define an Alexa Skill that echoes whatever the
user says. So far, you've:

-  created a skill in the `Amazon Developer
   Console <https://developer.amazon.com/edw/home.html#/skills/list>`__
-  Added a ``Echo`` intent with a single slot, ``message``:

``javascript   {       "intent": "Echo",       "slots": [           {             "name": "message",             "type": "AMAZON.LITERAL"           }       ]    }``

-  Added an utterance to allow users to interact with the skill:

``Echo echo { something | message }``

Now, you're ready to create a server that will accept the request and
return a response echoing the input. Using ``pylexa``, we'd need only
the following code to accomplish this:

.. code:: python

    from flask import Flask

    from pylexa.app import alexa_blueprint
    from pylexa.intent import handle_intent
    from pylexa.response import AlexaResponseWrapper, PlainTextSpeech


    app = Flask(__name__)
    alexa_blueprint.app_id = 'my_app_id'
    app.register_blueprint(alexa_blueprint)
    app.response_class = AlexaResponseWrapper


    @handle_intent('Echo')
    def handle_echo_intent(request):
        return PlainTextSpeech(request.slots.get('message', 'Nothing to echo'))

And that's it! You can push the above code, configure the skill to point
to the server running the ``flask`` app and use the service simulator to
test your skill.

Testing
-------

After installing requirements with ``pip install -r requirements.pip``,
tests can be run with ``nosetests``.


