23 lines
608 B
Python
23 lines
608 B
Python
from jinja2 import pass_context
|
|
from jinja2.ext import Extension
|
|
|
|
|
|
class FletExtension(Extension):
|
|
def __init__(self, environment):
|
|
super(FletExtension, self).__init__(environment)
|
|
environment.globals["get_pyproject"] = self.get_pyproject
|
|
|
|
@pass_context
|
|
def get_pyproject(self, context, setting):
|
|
pyproject = context.get("cookiecutter", {}).get("pyproject", {})
|
|
|
|
if not setting:
|
|
return pyproject
|
|
|
|
d = pyproject
|
|
for k in setting.split("."):
|
|
d = d.get(k)
|
|
if d is None:
|
|
return None
|
|
return d
|