Skip to content

Constants

zenml.constants

ZenML constants.

Attributes

ACTIONS = '/actions' module-attribute

ACTIVATE = '/activate' module-attribute

ANALYTICS_SERVER_URL = 'https://analytics.zenml.io/' module-attribute

API = '/api' module-attribute

API_KEYS = '/api_keys' module-attribute

API_KEY_ROTATE = '/rotate' module-attribute

API_TOKEN = '/api_token' module-attribute

APP_NAME = 'zenml' module-attribute

ARTIFACTS = '/artifacts' module-attribute

ARTIFACT_VERSIONS = '/artifact_versions' module-attribute

ARTIFACT_VISUALIZATIONS = '/artifact_visualizations' module-attribute

AUTH = '/auth' module-attribute

BANNED_NAME_CHARACTERS = '\t\n\r\x0b\x0c' module-attribute

BATCH = '/batch' module-attribute

CODE_HASH_PARAMETER_NAME = 'step_source' module-attribute

CODE_REFERENCES = '/code_references' module-attribute

CODE_REPOSITORIES = '/code_repositories' module-attribute

COMPONENT_TYPES = '/component-types' module-attribute

CONFIG = '/config' module-attribute

CONFIG_FILE_NAME = 'config.yaml' module-attribute

CURRENT_USER = '/current-user' module-attribute

DATA = '/data' module-attribute

DEACTIVATE = '/deactivate' module-attribute

DEFAULT_HTTP_TIMEOUT = 30 module-attribute

DEFAULT_LOCAL_SERVICE_IP_ADDRESS = '127.0.0.1' module-attribute

DEFAULT_PASSWORD = '' module-attribute

DEFAULT_PROJECT_NAME = 'default' module-attribute

DEFAULT_REPORTABLE_RESOURCES = ['project', 'pipeline', 'pipeline_run', 'model'] module-attribute

DEFAULT_SERVICE_START_STOP_TIMEOUT = 60 module-attribute

DEFAULT_STACK_AND_COMPONENT_NAME = 'default' module-attribute

DEFAULT_STORE_DIRECTORY_NAME = 'default_zen_store' module-attribute

DEFAULT_USERNAME = 'default' module-attribute

DEFAULT_ZENML_AUTH_SCHEME = AuthScheme.OAUTH2_PASSWORD_BEARER module-attribute

DEFAULT_ZENML_JWT_TOKEN_ALGORITHM = 'HS256' module-attribute

DEFAULT_ZENML_JWT_TOKEN_LEEWAY = 10 module-attribute

DEFAULT_ZENML_SERVER_DEVICE_AUTH_POLLING = 5 module-attribute

DEFAULT_ZENML_SERVER_DEVICE_AUTH_TIMEOUT = 60 * 5 module-attribute

DEFAULT_ZENML_SERVER_FILE_DOWNLOAD_SIZE_LIMIT = 2 * 1024 * 1024 * 1024 module-attribute

DEFAULT_ZENML_SERVER_GENERIC_API_TOKEN_LIFETIME = 60 * 60 module-attribute

DEFAULT_ZENML_SERVER_GENERIC_API_TOKEN_MAX_LIFETIME = 60 * 60 * 24 * 7 module-attribute

DEFAULT_ZENML_SERVER_LOGIN_RATE_LIMIT_DAY = 1000 module-attribute

DEFAULT_ZENML_SERVER_LOGIN_RATE_LIMIT_MINUTE = 5 module-attribute

DEFAULT_ZENML_SERVER_MAX_DEVICE_AUTH_ATTEMPTS = 3 module-attribute

DEFAULT_ZENML_SERVER_MAX_REQUEST_BODY_SIZE_IN_BYTES = 256 * 1024 * 1024 module-attribute

DEFAULT_ZENML_SERVER_NAME = 'default' module-attribute

DEFAULT_ZENML_SERVER_PIPELINE_RUN_AUTH_WINDOW = 60 * 48 module-attribute

DEFAULT_ZENML_SERVER_REPORT_USER_ACTIVITY_TO_DB_SECONDS = 30 module-attribute

DEFAULT_ZENML_SERVER_SECURE_HEADERS_CACHE = 'no-store, no-cache, must-revalidate' module-attribute

DEFAULT_ZENML_SERVER_SECURE_HEADERS_CONTENT = 'nosniff' module-attribute

DEFAULT_ZENML_SERVER_SECURE_HEADERS_CSP = f'default-src 'none'; script-src 'self' 'unsafe-inline' 'unsafe-eval' {' '.join(_csp_script_src_urls)}; connect-src 'self' {' '.join(_csp_connect_src_urls)}; img-src 'self' data: {' '.join(_csp_img_src_urls)}; style-src 'self' 'unsafe-inline'; base-uri 'self'; form-action 'self'; font-src 'self';frame-src {' '.join(_csp_frame_src_urls)}' module-attribute

DEFAULT_ZENML_SERVER_SECURE_HEADERS_HSTS = 'max-age=63072000; includeSubdomains' module-attribute

DEFAULT_ZENML_SERVER_SECURE_HEADERS_PERMISSIONS = 'accelerometer=(), autoplay=(), camera=(), encrypted-media=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), midi=(), payment=(), sync-xhr=(), usb=()' module-attribute

DEFAULT_ZENML_SERVER_SECURE_HEADERS_REFERRER = 'no-referrer-when-downgrade' module-attribute

DEFAULT_ZENML_SERVER_SECURE_HEADERS_REPORT_TO = 'default' module-attribute

DEFAULT_ZENML_SERVER_SECURE_HEADERS_XFO = 'SAMEORIGIN' module-attribute

DEFAULT_ZENML_SERVER_SECURE_HEADERS_XXP = '0' module-attribute

DEFAULT_ZENML_SERVER_THREAD_POOL_SIZE = 40 module-attribute

DEVICES = '/devices' module-attribute

DEVICE_AUTHORIZATION = '/device_authorization' module-attribute

DEVICE_VERIFY = '/verify' module-attribute

DISABLE_CLIENT_SERVER_MISMATCH_WARNING = handle_bool_env_var(ENV_ZENML_DISABLE_CLIENT_SERVER_MISMATCH_WARNING, default=False) module-attribute

DOCKER_REGISTRY_RESOURCE_TYPE = 'docker-registry' module-attribute

DOWNLOAD_TOKEN = '/download-token' module-attribute

EMAIL_ANALYTICS = '/email-opt-in' module-attribute

ENABLE_RICH_TRACEBACK = handle_bool_env_var(ENV_ZENML_ENABLE_RICH_TRACEBACK, True) module-attribute

ENFORCE_TYPE_ANNOTATIONS = handle_bool_env_var(ENV_ZENML_ENFORCE_TYPE_ANNOTATIONS, default=False) module-attribute

ENV_AUTO_OPEN_DASHBOARD = 'AUTO_OPEN_DASHBOARD' module-attribute

ENV_ZENML_ACTIVE_PROJECT_ID = 'ZENML_ACTIVE_PROJECT_ID' module-attribute

ENV_ZENML_ACTIVE_STACK_ID = 'ZENML_ACTIVE_STACK_ID' module-attribute

ENV_ZENML_ANALYTICS_OPT_IN = 'ZENML_ANALYTICS_OPT_IN' module-attribute

ENV_ZENML_AUTO_OPEN_DASHBOARD = 'ZENML_AUTO_OPEN_DASHBOARD' module-attribute

ENV_ZENML_BACKUP_SECRETS_STORE_PREFIX = 'ZENML_BACKUP_SECRETS_STORE_' module-attribute

ENV_ZENML_CODE_REPOSITORY_IGNORE_UNTRACKED_FILES = 'ZENML_CODE_REPOSITORY_IGNORE_UNTRACKED_FILES' module-attribute

ENV_ZENML_CONFIG_PATH = 'ZENML_CONFIG_PATH' module-attribute

ENV_ZENML_CONTAINER = 'ZENML_CONTAINER' module-attribute

ENV_ZENML_CUSTOM_SOURCE_ROOT = 'ZENML_CUSTOM_SOURCE_ROOT' module-attribute

ENV_ZENML_DEBUG = 'ZENML_DEBUG' module-attribute

ENV_ZENML_DEFAULT_PROJECT_NAME = 'ZENML_DEFAULT_PROJECT_NAME' module-attribute

ENV_ZENML_DEFAULT_USER_NAME = 'ZENML_DEFAULT_USER_NAME' module-attribute

ENV_ZENML_DEFAULT_USER_PASSWORD = 'ZENML_DEFAULT_USER_PASSWORD' module-attribute

ENV_ZENML_DISABLE_CLIENT_SERVER_MISMATCH_WARNING = 'ZENML_DISABLE_CLIENT_SERVER_MISMATCH_WARNING' module-attribute

ENV_ZENML_DISABLE_CREDENTIALS_DISK_CACHING = 'DISABLE_CREDENTIALS_DISK_CACHING' module-attribute

ENV_ZENML_DISABLE_DATABASE_MIGRATION = 'DISABLE_DATABASE_MIGRATION' module-attribute

ENV_ZENML_DISABLE_PATH_MATERIALIZER = 'ZENML_DISABLE_PATH_MATERIALIZER' module-attribute

ENV_ZENML_DISABLE_PIPELINE_LOGS_STORAGE = 'ZENML_DISABLE_PIPELINE_LOGS_STORAGE' module-attribute

ENV_ZENML_DISABLE_STEP_LOGS_STORAGE = 'ZENML_DISABLE_STEP_LOGS_STORAGE' module-attribute

ENV_ZENML_DISABLE_STEP_NAMES_IN_LOGS = 'ZENML_DISABLE_STEP_NAMES_IN_LOGS' module-attribute

ENV_ZENML_ENABLE_IMPLICIT_AUTH_METHODS = 'ZENML_ENABLE_IMPLICIT_AUTH_METHODS' module-attribute

ENV_ZENML_ENABLE_REPO_INIT_WARNINGS = 'ZENML_ENABLE_REPO_INIT_WARNINGS' module-attribute

ENV_ZENML_ENABLE_RICH_TRACEBACK = 'ZENML_ENABLE_RICH_TRACEBACK' module-attribute

ENV_ZENML_ENFORCE_TYPE_ANNOTATIONS = 'ZENML_ENFORCE_TYPE_ANNOTATIONS' module-attribute

ENV_ZENML_IGNORE_FAILURE_HOOK = 'ZENML_IGNORE_FAILURE_HOOK' module-attribute

ENV_ZENML_LOCAL_STORES_PATH = 'ZENML_LOCAL_STORES_PATH' module-attribute

ENV_ZENML_LOGGING_COLORS_DISABLED = 'ZENML_LOGGING_COLORS_DISABLED' module-attribute

ENV_ZENML_LOGGING_FORMAT = 'ZENML_LOGGING_FORMAT' module-attribute

ENV_ZENML_LOGGING_VERBOSITY = 'ZENML_LOGGING_VERBOSITY' module-attribute

ENV_ZENML_MATERIALIZER_ALLOW_NON_ASCII_JSON_DUMPS = 'ZENML_MATERIALIZER_ALLOW_NON_ASCII_JSON_DUMPS' module-attribute

ENV_ZENML_PAGINATION_DEFAULT_LIMIT = 'ZENML_PAGINATION_DEFAULT_LIMIT' module-attribute

ENV_ZENML_PIPELINE_RUN_API_TOKEN_EXPIRATION = 'ZENML_PIPELINE_API_TOKEN_EXPIRATION' module-attribute

ENV_ZENML_PREVENT_CLIENT_SIDE_CACHING = 'ZENML_PREVENT_CLIENT_SIDE_CACHING' module-attribute

ENV_ZENML_PREVENT_PIPELINE_EXECUTION = 'ZENML_PREVENT_PIPELINE_EXECUTION' module-attribute

ENV_ZENML_REPOSITORY_PATH = 'ZENML_REPOSITORY_PATH' module-attribute

ENV_ZENML_RUNNER_IMAGE_DISABLE_UV = 'ZENML_RUNNER_IMAGE_DISABLE_UV' module-attribute

ENV_ZENML_RUN_SINGLE_STEPS_WITHOUT_STACK = 'ZENML_RUN_SINGLE_STEPS_WITHOUT_STACK' module-attribute

ENV_ZENML_SECRETS_STORE_PREFIX = 'ZENML_SECRETS_STORE_' module-attribute

ENV_ZENML_SECRET_VALIDATION_LEVEL = 'ZENML_SECRET_VALIDATION_LEVEL' module-attribute

ENV_ZENML_SERVER = 'ZENML_SERVER' module-attribute

ENV_ZENML_SERVER_AUTH_SCHEME = f'{ENV_ZENML_SERVER_PREFIX}AUTH_SCHEME' module-attribute

ENV_ZENML_SERVER_AUTO_ACTIVATE = f'{ENV_ZENML_SERVER_PREFIX}AUTO_ACTIVATE' module-attribute

ENV_ZENML_SERVER_DEPLOYMENT_TYPE = f'{ENV_ZENML_SERVER_PREFIX}DEPLOYMENT_TYPE' module-attribute

ENV_ZENML_SERVER_PREFIX = 'ZENML_SERVER_' module-attribute

ENV_ZENML_SERVER_PRO_PREFIX = 'ZENML_SERVER_PRO_' module-attribute

ENV_ZENML_SKIP_IMAGE_BUILDER_DEFAULT = 'ZENML_SKIP_IMAGE_BUILDER_DEFAULT' module-attribute

ENV_ZENML_SKIP_PIPELINE_REGISTRATION = 'ZENML_SKIP_PIPELINE_REGISTRATION' module-attribute

ENV_ZENML_SKIP_STACK_VALIDATION = 'ZENML_SKIP_STACK_VALIDATION' module-attribute

ENV_ZENML_STORE_PREFIX = 'ZENML_STORE_' module-attribute

ENV_ZENML_SUPPRESS_LOGS = 'ZENML_SUPPRESS_LOGS' module-attribute

ENV_ZENML_USER_ID = 'ZENML_USER_ID' module-attribute

ENV_ZENML_WHEEL_PACKAGE_NAME = 'ZENML_WHEEL_PACKAGE_NAME' module-attribute

ENV_ZENML_WORKLOAD_TOKEN_EXPIRATION_LEEWAY = 'ZENML_WORKLOAD_TOKEN_EXPIRATION_LEEWAY' module-attribute

EVENT_FLAVORS = '/event-flavors' module-attribute

EVENT_SOURCES = '/event-sources' module-attribute

EXTERNAL_AUTHENTICATOR_TIMEOUT = 10 module-attribute

FILTERING_DATETIME_FORMAT: str = '%Y-%m-%d %H:%M:%S' module-attribute

FINISHED_ONBOARDING_SURVEY_KEY = 'finished_onboarding_survey' module-attribute

FLAVORS = '/flavors' module-attribute

HEALTH = '/health' module-attribute

INFO = '/info' module-attribute

INSIDE_ZENML_CONTAINER = handle_bool_env_var(ENV_ZENML_CONTAINER, False) module-attribute

IS_DEBUG_ENV: bool = handle_bool_env_var(ENV_ZENML_DEBUG, default=False) module-attribute

KUBERNETES_CLUSTER_RESOURCE_TYPE = 'kubernetes-cluster' module-attribute

LATEST_MODEL_VERSION_PLACEHOLDER = '__latest__' module-attribute

LOAD_INFO = '/load-info' module-attribute

LOCAL_STORES_DIRECTORY_NAME = 'local_stores' module-attribute

LOGIN = '/login' module-attribute

LOGOUT = '/logout' module-attribute

LOGS = '/logs' module-attribute

MAX_RETRIES_FOR_VERSIONED_ENTITY_CREATION = 10 module-attribute

MEDIUMTEXT_MAX_LENGTH = 2 ** 24 - 1 module-attribute

METADATA_DEPLOYED_MODEL_URL = 'deployed_model_url' module-attribute

METADATA_EXPERIMENT_TRACKER_URL = 'experiment_tracker_url' module-attribute

METADATA_ORCHESTRATOR_LOGS_URL = 'orchestrator_logs_url' module-attribute

METADATA_ORCHESTRATOR_RUN_ID = 'orchestrator_run_id' module-attribute

METADATA_ORCHESTRATOR_URL = 'orchestrator_url' module-attribute

MLFLOW_MODEL_FORMAT = 'MLflow' module-attribute

MODELS = '/models' module-attribute

MODEL_METADATA_YAML_FILE_NAME = 'model_metadata.yaml' module-attribute

MODEL_VERSIONS = '/model_versions' module-attribute

MODEL_VERSION_ARTIFACTS = '/model_version_artifacts' module-attribute

MODEL_VERSION_PIPELINE_RUNS = '/model_version_pipeline_runs' module-attribute

ONBOARDING_STATE = '/onboarding_state' module-attribute

ORCHESTRATOR_DOCKER_IMAGE_KEY = 'orchestrator' module-attribute

PAGE_SIZE_DEFAULT: int = handle_int_env_var(ENV_ZENML_PAGINATION_DEFAULT_LIMIT, default=20) module-attribute

PAGE_SIZE_MAXIMUM: int = handle_int_env_var(ENV_ZENML_PAGINATION_DEFAULT_LIMIT, default=10000) module-attribute

PAGINATION_STARTING_PAGE: int = 1 module-attribute

PIPELINES = '/pipelines' module-attribute

PIPELINE_BUILDS = '/pipeline_builds' module-attribute

PIPELINE_CONFIGURATION = '/pipeline-configuration' module-attribute

PIPELINE_DEPLOYMENTS = '/pipeline_deployments' module-attribute

PIPELINE_SPEC = '/pipeline-spec' module-attribute

PLUGIN_FLAVORS = '/plugin-flavors' module-attribute

PROJECTS = '/projects' module-attribute

REFRESH = '/refresh' module-attribute

REMOTE_FS_PREFIX = ['gs://', 'hdfs://', 's3://', 'az://', 'abfs://'] module-attribute

REPOSITORY_DIRECTORY_NAME = '.zen' module-attribute

RUNS = '/runs' module-attribute

RUN_METADATA = '/run-metadata' module-attribute

RUN_TEMPLATES = '/run_templates' module-attribute

SCHEDULES = '/schedules' module-attribute

SECRETS = '/secrets' module-attribute

SECRETS_BACKUP = '/backup' module-attribute

SECRETS_OPERATIONS = '/secrets_operations' module-attribute

SECRETS_RESTORE = '/restore' module-attribute

SECRET_VALUES = 'values' module-attribute

SERVER_SETTINGS = '/settings' module-attribute

SERVICES = '/services' module-attribute

SERVICE_ACCOUNTS = '/service_accounts' module-attribute

SERVICE_CONNECTORS = '/service_connectors' module-attribute

SERVICE_CONNECTOR_CLIENT = '/client' module-attribute

SERVICE_CONNECTOR_FULL_STACK = '/full_stack_resources' module-attribute

SERVICE_CONNECTOR_RESOURCES = '/resources' module-attribute

SERVICE_CONNECTOR_SKEW_TOLERANCE_SECONDS = 60 * 5 module-attribute

SERVICE_CONNECTOR_TYPES = '/service_connector_types' module-attribute

SERVICE_CONNECTOR_VERIFY = '/verify' module-attribute

SERVICE_CONNECTOR_VERIFY_REQUEST_TIMEOUT = 120 module-attribute

SHOULD_PREVENT_PIPELINE_EXECUTION = handle_bool_env_var(ENV_ZENML_PREVENT_PIPELINE_EXECUTION) module-attribute

SORT_BY_LATEST_VERSION_KEY = 'latest_version' module-attribute

SORT_PIPELINES_BY_LATEST_RUN_KEY = 'latest_run' module-attribute

SQL_STORE_BACKUP_DIRECTORY_NAME = 'database_backup' module-attribute

STACK = '/stack' module-attribute

STACKS = '/stacks' module-attribute

STACK_COMPONENTS = '/components' module-attribute

STACK_DEPLOYMENT = '/stack-deployment' module-attribute

STACK_DEPLOYMENT_API_TOKEN_EXPIRATION = 60 * 6 module-attribute

STACK_RECIPES_GITHUB_REPO = 'https://github.com/zenml-io/mlops-stacks.git' module-attribute

STATISTICS = '/statistics' module-attribute

STATUS = '/status' module-attribute

STEPS = '/steps' module-attribute

STEP_CONFIGURATION = '/step-configuration' module-attribute

STR_FIELD_MAX_LENGTH = 255 module-attribute

STR_ID_FIELD_MAX_LENGTH = 50 module-attribute

T = TypeVar('T') module-attribute

TAGS = '/tags' module-attribute

TAG_RESOURCES = '/tag_resources' module-attribute

TEXT_FIELD_MAX_LENGTH = 65535 module-attribute

TRIGGERS = '/triggers' module-attribute

TRIGGER_EXECUTIONS = '/trigger_executions' module-attribute

URL = '/url' module-attribute

USERS = '/users' module-attribute

VALID_OPERATING_SYSTEMS = ['Windows', 'Darwin', 'Linux'] module-attribute

VERSION_1 = '/v1' module-attribute

VISUALIZE = '/visualize' module-attribute

WEBHOOKS = '/webhooks' module-attribute

WORKSPACES = '/workspaces' module-attribute

ZENML_API_KEY_PREFIX = 'ZENKEY_' module-attribute

ZENML_LOGGING_VERBOSITY = os.getenv(ENV_ZENML_LOGGING_VERBOSITY, default='DEBUG').upper() module-attribute

ZENML_PIPELINE_RUN_API_TOKEN_EXPIRATION = handle_int_env_var(ENV_ZENML_PIPELINE_RUN_API_TOKEN_EXPIRATION, default=0) module-attribute

ZEN_SERVER_ENTRYPOINT = 'zenml.zen_server.zen_server_api:app' module-attribute

_csp_connect_src_urls = ['https://sdkdocs.zenml.io', 'https://analytics.zenml.io'] module-attribute

_csp_frame_src_urls = ['https://zenml.hellonext.co', 'https://sdkdocs.zenml.io', 'https://widgets-v3.hellonext.co', 'https://widgets-v3.featureos.app', 'https://zenml.portal.trainn.co'] module-attribute

_csp_img_src_urls = ['https://public-flavor-logos.s3.eu-central-1.amazonaws.com', 'https://avatar.vercel.sh'] module-attribute

_csp_script_src_urls = ['https://widgets-v3.featureos.app'] module-attribute

Classes

AuthScheme

Bases: StrEnum

The authentication scheme.

Functions

handle_bool_env_var(var: str, default: bool = False) -> bool

Converts normal env var to boolean.

Parameters:

Name Type Description Default
var str

The environment variable to convert.

required
default bool

The default value to return if the env var is not set.

False

Returns:

Type Description
bool

The converted value.

Source code in src/zenml/constants.py
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
def handle_bool_env_var(var: str, default: bool = False) -> bool:
    """Converts normal env var to boolean.

    Args:
        var: The environment variable to convert.
        default: The default value to return if the env var is not set.

    Returns:
        The converted value.
    """
    value = os.getenv(var)
    if is_true_string_value(value):
        return True
    elif is_false_string_value(value):
        return False
    return default

handle_int_env_var(var: str, default: int = 0) -> int

Converts normal env var to int.

Parameters:

Name Type Description Default
var str

The environment variable to convert.

required
default int

The default value to return if the env var is not set.

0

Returns:

Type Description
int

The converted value.

Source code in src/zenml/constants.py
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
def handle_int_env_var(var: str, default: int = 0) -> int:
    """Converts normal env var to int.

    Args:
        var: The environment variable to convert.
        default: The default value to return if the env var is not set.

    Returns:
        The converted value.
    """
    value = os.getenv(var, "")
    try:
        return int(value)
    except (ValueError, TypeError):
        return default

handle_json_env_var(var: str, expected_type: Type[T], default: Optional[List[str]] = None) -> Any

Converts a json env var into a Python object.

Parameters:

Name Type Description Default
var str

The environment variable to convert.

required
default Optional[List[str]]

The default value to return if the env var is not set.

None
expected_type Type[T]

The type of the expected Python object.

required

Returns:

Type Description
Any

The converted list value.

Raises:

Type Description
TypeError

In case the value of the environment variable is not of a valid type.

Source code in src/zenml/constants.py
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
def handle_json_env_var(
    var: str,
    expected_type: Type[T],
    default: Optional[List[str]] = None,
) -> Any:
    """Converts a json env var into a Python object.

    Args:
        var:  The environment variable to convert.
        default: The default value to return if the env var is not set.
        expected_type: The type of the expected Python object.

    Returns:
        The converted list value.

    Raises:
        TypeError: In case the value of the environment variable is not of a
                   valid type.

    """
    # this needs to be here to avoid mutable defaults
    if default is None:
        default = []

    value = os.getenv(var)
    if value:
        try:
            loaded_value = json.loads(value)
            # check if loaded value is of correct type
            if expected_type is None or isinstance(
                loaded_value, expected_type
            ):
                return loaded_value
            else:
                raise TypeError  # if not correct type, raise TypeError
        except (TypeError, json.JSONDecodeError):
            # Use raw logging to avoid cyclic dependency
            logging.warning(
                f"Environment Variable {var} could not be loaded, into type "
                f"{expected_type}, defaulting to: {default}."
            )
            return default
    else:
        return default

is_false_string_value(value: Any) -> bool

Checks if the given value is a string representation of 'False'.

Parameters:

Name Type Description Default
value Any

the value to check.

required

Returns:

Type Description
bool

Whether the input value represents a string version of 'False'.

Source code in src/zenml/constants.py
84
85
86
87
88
89
90
91
92
93
def is_false_string_value(value: Any) -> bool:
    """Checks if the given value is a string representation of 'False'.

    Args:
        value: the value to check.

    Returns:
        Whether the input value represents a string version of 'False'.
    """
    return value in ["0", "n", "no", "False", "false"]

is_true_string_value(value: Any) -> bool

Checks if the given value is a string representation of 'True'.

Parameters:

Name Type Description Default
value Any

the value to check.

required

Returns:

Type Description
bool

Whether the input value represents a string version of 'True'.

Source code in src/zenml/constants.py
72
73
74
75
76
77
78
79
80
81
def is_true_string_value(value: Any) -> bool:
    """Checks if the given value is a string representation of 'True'.

    Args:
        value: the value to check.

    Returns:
        Whether the input value represents a string version of 'True'.
    """
    return value in ["1", "y", "yes", "True", "true"]