-
-
Notifications
You must be signed in to change notification settings - Fork 182
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: add dynamic file structures in loop using yield-tag #1855
base: master
Are you sure you want to change the base?
Conversation
… extention for yield tag, allow _render_path to generate mulitple paths and contexts when yield tag is used
… test file to test dynamic file structure feature
hopefully closes #1271 |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #1855 +/- ##
==========================================
+ Coverage 97.67% 97.91% +0.23%
==========================================
Files 49 51 +2
Lines 5238 5359 +121
==========================================
+ Hits 5116 5247 +131
+ Misses 122 112 -10
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚨 Try these New Features:
|
I only reviewed tests in depth so far, and it seems the interface is almost exactly what I meant! Awesome! Quoting from #1271 (comment):
That seems to be the only missing part. At least I saw no test for that. Could you add this please? When done I'll review the implementation. This PR is big! Thank you very much 😊 |
…d YieldTagInFileError and raise it if yield tag used when rendering file content. also add the test case
Thank you for your review! I've added a new commit that implements the behavior you mentioned - throwing an exception when yield is used for rendering file contents. I've also added the corresponding test case. Looking forward to your implementation review! |
|
||
pass |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
pass
is unnecessary if there's a docstring 🙂
pass |
What I did:
copier/jinja_ext.py
to handleyield
tagsyield
tags and sets up the necessary context throughjinja_env
_render_path
to return multiple destination paths and their corresponding contexts whenyield
tags are presentyield
tags to the_render_parts
functionextra_context
parameter to_render_file
to enable injection of contexts generated fromyield
tags