|
13 | 13 | import sys
|
14 | 14 | from optparse import Option, OptionParser
|
15 | 15 |
|
16 |
| -import jinja2 |
17 |
| -from jinja2 import Environment, FileSystemLoader, StrictUndefined |
18 |
| - |
19 |
| -from jinja2cli import __version__ |
20 |
| - |
21 | 16 | sys.path.insert(0, os.getcwd())
|
22 | 17 |
|
23 | 18 | PY3 = sys.version_info[0] == 3
|
@@ -218,6 +213,8 @@ def _parse_env(data):
|
218 | 213 |
|
219 | 214 |
|
220 | 215 | def render(template_path, data, extensions, strict=False):
|
| 216 | + from jinja2 import Environment, FileSystemLoader, StrictUndefined |
| 217 | + |
221 | 218 | env = Environment(
|
222 | 219 | loader=FileSystemLoader(os.path.dirname(template_path)),
|
223 | 220 | extensions=extensions,
|
@@ -340,11 +337,25 @@ def help(self):
|
340 | 337 | return h
|
341 | 338 |
|
342 | 339 |
|
| 340 | +class LazyOptionParser(OptionParser): |
| 341 | + def __init__(self, **kwargs): |
| 342 | + # Fake a version so we can lazy load it later. |
| 343 | + # This is due to internals of OptionParser, but it's |
| 344 | + # fine |
| 345 | + kwargs["version"] = 1 |
| 346 | + kwargs["option_class"] = LazyHelpOption |
| 347 | + OptionParser.__init__(self, **kwargs) |
| 348 | + |
| 349 | + def get_version(self): |
| 350 | + from jinja2 import __version__ as jinja_version |
| 351 | + from jinja2cli import __version__ |
| 352 | + |
| 353 | + return "jinja2-cli v%s\n - Jinja2 v%s" % (__version__, jinja_version) |
| 354 | + |
| 355 | + |
343 | 356 | def main():
|
344 |
| - parser = OptionParser( |
345 |
| - option_class=LazyHelpOption, |
346 |
| - usage="usage: %prog [options] <input template> <input data>", |
347 |
| - version="jinja2-cli v%s\n - Jinja2 v%s" % (__version__, jinja2.__version__), |
| 357 | + parser = LazyOptionParser( |
| 358 | + usage="usage: %prog [options] <input template> <input data>" |
348 | 359 | )
|
349 | 360 | parser.add_option(
|
350 | 361 | "--format",
|
|
0 commit comments