I like the idea of rendering files with .jinja2 extensions, and we can
extend it a bit to some variations that are generally recognized by
Plugins, e.g. .jinja, .j2.

For VSCode, the plugin I use is Better Jinja
<https://marketplace.visualstudio.com/items?itemName=samuelcolvin.jinjahtml>
.

Best
Bin

On Wed, Apr 29, 2020 at 4:40 AM Ori Popowski <ori....@gmail.com> wrote:

> @ash I agree that in 2.0 it will be much better to _not_ render files not
> ending with .jinja2, and to render only .jinja2 files.
> It's much more intuitive, since it can be quite confusing for a dev to see
> regular files being rendered.
>
> On Wed, Apr 29, 2020 at 2:33 PM Ash Berlin-Taylor <a...@apache.org> wrote:
>
> > We could do this globally for 1.10, but for 2.0 I think it might be nice
> > to change this as follows:
> >
> > Rename template_ext to file_exts, and it looks for files with those
> > extensions, but doesn't render them.
> >
> > And then make it only render files with, for example, .sh.jinja2.
> >
> > Right now it's impossible to have scripts/files external to the DAG that
> > aren't rendered, so you have to be careful to escape {{ in them, which
> > can be annoying.
> >
> > WDYT?
> >
> > -a
> >
> > On Apr 29 2020, at 12:17 pm, Ori Popowski <ori....@gmail.com> wrote:
> >
> > > No. Any extension mentioned in `template_ext` will still be templated.
> > But
> > > in addition, also those ending with `.jinja2`, as long it's preceded
> > > by one
> > > of those extensions (meaning that `file.jinja2` won't be templated)
> > >
> > > On Wed, Apr 29, 2020 at 1:41 PM Ash Berlin-Taylor <a...@apache.org>
> > wrote:
> > >
> > >> Are you also proposing that, for example .sh would not be templated,
> but
> > >> that .sh.jinja2 would be templated?
> > >>
> > >> Ash
> > >>
> > >> On 29 April 2020 11:39:13 BST, Ori Popowski <ori....@gmail.com>
> wrote:
> > >> >At the moment, various operators support reading templates from given
> > >> >filenames (for example, `bash_command` of `BashOperator`). However,
> all
> > >> >of
> > >> >these operators specify extensions such as .sh, .json etc., so it
> means
> > >> >users need to write Jinja2 templates inside .sh, .json files. This is
> > >> >problematic for 3 reasons:
> > >> >
> > >> >1. No semantic support when writing templates (major IDEs support
> this
> > >> >extension, including Github itself)
> > >> >2. It's not aligned to widespread convention of naming template files
> > >> >with
> > >> >.jinja2 extension
> > >> >3. It's harder to distinguish between template files and non-template
> > >> >files
> > >> >
> > >> >A better way to do it would be supporting the .jinja2 extension.
> > >> >
> > >> >The proposition at the moment is to globally accept .jinja2 extension
> > >> >in
> > >> >`BaseOperator` whenever `template_ext` is defined. It means that all
> > >> >inheriting operators will now automatically support their already
> > >> >defined
> > >> >extensions but also with .jinja2 appended to them (i.e. if you have
> > >> >`template_ext = ('.json', '.yml')` then also .json.jinja2 and
> > >> >.yml.jinja2
> > >> >will be added)).
> > >> >
> > >> >Since this affects a vast part of the codebase, this suggestion is
> open
> > >> >to
> > >> >discussion. WDYT?
> > >> >
> > >> >For more info, see https://github.com/apache/airflow/issues/8603
> > >>
> > >
> >
>

Reply via email to