gen.coroutine support in Templates#1310
Closed
drewmiller wants to merge 3 commits intotornadoweb:masterfrom
drewmiller:master
Closed
gen.coroutine support in Templates#1310drewmiller wants to merge 3 commits intotornadoweb:masterfrom drewmiller:master
drewmiller wants to merge 3 commits intotornadoweb:masterfrom
drewmiller:master
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
We're building a semi-lazy-loading asynchronous ORM and have found the
gen.coroutinedecorator to be a great resource. Our objects come out looking something like the below:Model.attribute = value
Model.reference =
FutureModel.collection_name =
[Future, Future]So it's very efficient for us to start generating content from our templates and only wait for references and collections if we need to. Hence, our templates look like the below:
We love working with the most recent version of Tornado, and aren't willing to break off from the main fork. With that in mind, we're currently using a modified version of the
template.py, represented in the pull. If this is something that you aren't interested in incorporating into the main repo, we'll happily subclass as necessary to accomplish it without conflict.Obviously, it's easier for us to modify the code in place, and I'm happy to help incorporate these changes more thoroughly if you think the feature could be useful in, e.g. the UIModules. Those changes could be non-trivial, however, as I believe ultimately everything that uses a coroutine=True argument will need to be decorated with
gen.coroutine. Please correct me if I'm wrong. If so, separate methods for .render() and .render_string() are probably necessary.