import nox

{% for envname, envconfig in config.envconfigs.items()|sort: %}
@nox.session({%- if envconfig.basepython %}python='{{envconfig.basepython}}'{%- endif %})
def {{envname}}(session):
    {%- set envs = dict(envconfig.setenv) -%}
    {%- do envs.pop('PYTHONHASHSEED', None) -%}
    {%- do envs.pop('TOX_ENV_DIR', None) -%}
    {%- do envs.pop('TOX_ENV_NAME', None) -%}
    {%- for key, value in envs.items()|sort: %}
    session.env['{{key}}'] = '{{value}}'
    {%- endfor %}

    {%- if envconfig.deps %}
    session.install({{wrapjoin(envconfig.deps)}})
    {%- endif %}

    {%- if not envconfig.skip_install %}
    {%- if envconfig.usedevelop %}
    session.install('-e', '.')
    {%- else %}
    session.install('.')
    {%- endif -%}
    {%- endif %}

    {%- if envconfig.changedir and config.toxinidir.bestrelpath(envconfig.changedir) != '.' %}
    session.chdir('{{config.toxinidir.bestrelpath(envconfig.changedir)}}')
    {%- endif %}

    {%- for command in envconfig.commands %}
    session.run({{wrapjoin(command)}})
    {%- endfor %}
{% endfor %}
