Skip to main content

Introduction

Agents are configured using a YAML file. If you’re totally new to YAML files, you can learn more about them here. In Alto, you can augment your YAML configuration files and Python tasks using Jinja, a powerful templating language. For example, using Jinja enables you to:
  • Create relative variables (e.g., relative paths)
  • Use environment variables for production deployments
Here are the list of available Jinja functions:
  • __platform__
  • __version__
  • __file__
  • Path
  • wkdir()
  • parent_dir(path)
  • concat(str1, str2)
  • env(var)
We’ll cover these next.

Jinja Functions

{{ __platform__ }} returns the operating system on which your project is running. It’s identical to sys.platform. You probably won’t use this much in your projects.Example:
alto.yml
{{ __version__ }} returns the Python version on which your project is running, in the format "{major}.{minor}.{micro}". As with __platform__, you probably won’t use this much in your projects.Example:
alto.yml
{{ __file__ }} allows you to access the the path to the YAML file.{{ Path(...) }} allows you convert any string to a pathlib Path object. When using this Jinja function, users also get access to Path’s methods and operators.{{ __file__ }} and {{ Path(...) }} can be used together to define relative paths.Example:
alto.yml
{{ wkdir() }} allows you to access the current project directory as a string. This is a less powerful alternative to {{ Path(__file__) }}.Example:
alto.yml
{{ parent_dir(path) }} computes the parent path of path as a string. This is a less powerful alternative to {{ Path(__file__).parent }}.Example:
alto.yml
{{ concat(str1, str2) }} concatenates str1 and str2 together and returns the output as a string.Example:
alto.yml
{{ env(var) }} returns the environment variable var. This is probably the most useful Jinja function.Example:
alto.yml