Source code for tradeexecutor.cli.env
"""Environment variable management."""
from dataclasses import dataclass
from typing import List
from click import Context
from typer.main import get_command
from tradeexecutor.cli.main import app
[docs]def get_available_env_vars() -> List[EnvVarDescription]:
    """Get list of environment variable configuration options for trade-executor.
    :return:
        List of environment variable names
    """
    command = get_command(app)
    start = command.commands["start"]
    ctx = Context(start)
    params = start.get_params(ctx)
    result = []
    for p in params:
        envvar = p.envvar
        if envvar:
            # Option --help does not have envvar, etc.
            result.append(
                EnvVarDescription(
                    envvar,
                    p.help,
                    p.cause,
                )
            )
    return result