ask-sdk-jinja-renderer is an SDK package for supporting template responses for skill developers, when built using ASK Python SDK. It provides jinja framework as a template engine to render the response loaded from the templateand inject the data passed and finally deserialize it toa custom response format
Project description
ASK SDK Jinja Renderer
ask-sdk-jinja-renderer is an SDK package for supporting template responses for skill developers, when built using ASK Python SDK. It provides jinja framework as a template renderer to render the response loaded from the template and inject the data passed and finally deserialize to custom response format.
Quick Start
If you already have a skill built using the ASK SDK builders, then you only need to do the following, to start using template resolvers to generate responses.
Import FileSystemTemplateLoader from ask_sdk_core and JinjaTemplateRenderer from ask_sdk_jinja_renderer packages.
Register the Loaders with appropriate parameters and also a Renderer into skill builder using add_loaders and add_renderer methods.
Create a template file as shown below and provide the path of the directory and its encoding scheme as parameters while initializing the loader.
example_app/my_skill.py
from ask_sdk_core.skill_builder import SkillBuilder
from ask_sdk_core.handler_input import HandlerInput
from ask_sdk_core.dispatch_components import AbstractRequestHandler
from ask_sdk_core.utils import is_request_type
from ask_sdk_core.view_resolvers import FileSystemTemplateLoader
from ask_sdk_jinja_renderer import JinjaTemplateRenderer
from ask_sdk_model import Response
sb = SkillBuilder()
class LaunchRequestHandler(AbstractRequestHandler):
"""Handler for skill launch."""
def can_handle(self, handler_input):
# type: (HandlerInput) -> bool
return is_request_type("LaunchRequest")(handler_input)
def handle(self, handler_input):
# type: (HandlerInput) -> Response
speech_text = "Hello!!"
template_name = "responses"
data_map = {
'speech_text': speech_text,
'card': {
'type': 'Simple',
'title': 'Jinja2 Template',
'content': speech_text
},
'should_end_session': 'false'
}
return handler_input.generate_template_response(template_name, data_map, file_ext='jinja')
# Other skill components here ....
# Register all handlers, loaders, renderers, interceptors etc.
sb.add_request_handler(LaunchRequestHandler())
# Add default file system loader on skill builder
sb.add_loader(FileSystemTemplateLoader(dir_path="templates", encoding='utf-8'))
# Add default jinja renderer on skill builder
sb.add_renderer(JinjaTemplateRenderer())
skill = sb.create()
example_app/templates/responses.jinja
{
"outputSpeech": {
"type": "SSML",
"ssml": "<speak>{{ speech_text }}</speak>"
},
"card": {
"type": "{{ card.type }}",
"title": "{{ card.title}}",
"content": "{{ card.content }}"
},
"shouldEndSession": "{{ should_end_session }}"
}
Installation
Assuming that you have Python and virtualenv installed, you can install the package from PyPi as follows:
$ virtualenv venv
$ . venv/bin/activate
$ pip install ask-sdk-jinja-renderer
Usage and Getting Started
Getting started guides, SDK Features, API references, samples etc. can be found at Read The Docs
Got Feedback?
We would like to hear about your bugs, feature requests, questions or quick feedback. Please search for the existing issues before opening a new one. It would also be helpful if you follow the templates for issue and pull request creation. Please follow the contributing guidelines!!
Request and vote for Alexa features!
CHANGELOG
1.0
Initial release of Ask SDK Python Jinja Renderer Package.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file ask-sdk-jinja-renderer-1.0.0.tar.gz
.
File metadata
- Download URL: ask-sdk-jinja-renderer-1.0.0.tar.gz
- Upload date:
- Size: 5.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.34.0 CPython/3.7.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 63df2759955f777807720c5635338ce2f2fb0b7b7f8102530731e23b8c7c72ec |
|
MD5 | 4f98cc3a93f0ab813a6c49fbb8fe28ee |
|
BLAKE2b-256 | a17bd23622bd4cc2e5c7210efaca681a352cd323e57d8f32dfa9af56aadbc3cb |
File details
Details for the file ask_sdk_jinja_renderer-1.0.0-py2.py3-none-any.whl
.
File metadata
- Download URL: ask_sdk_jinja_renderer-1.0.0-py2.py3-none-any.whl
- Upload date:
- Size: 6.3 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/40.8.0 requests-toolbelt/0.9.1 tqdm/4.34.0 CPython/3.7.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ddb17b7cb39ea7d26e8ee48cd2111195f68c63daabb78853d81ca0385069e4a6 |
|
MD5 | 88b8abbeffd0e63852954d3c1fe6881c |
|
BLAKE2b-256 | baf28051fc0cd20661fc193700fcb49247f99cb40c9771acc7b806ca9a4e0b48 |