Edit on GitHub

sqlmesh.core.constants

  1from __future__ import annotations
  2
  3import datetime
  4import multiprocessing as mp
  5import os
  6import typing as t
  7from pathlib import Path
  8
  9SQLMESH = "sqlmesh"
 10SQLMESH_MANAGED = "sqlmesh_managed"
 11SQLMESH_PATH = Path(os.getenv("SQLMESH_HOME") or Path.home() / ".sqlmesh")
 12
 13PROD = "prod"
 14"""Prod"""
 15DEV = "dev"
 16"""Dev"""
 17
 18SNAPSHOTS_PATH = "snapshots"
 19"""Snapshots path"""
 20DEFAULT_SNAPSHOT_TTL = "in 1 week"
 21"""Default snapshot TTL"""
 22DEFAULT_ENVIRONMENT_TTL = "in 1 week"
 23"""Default environment TTL"""
 24IGNORE_PATTERNS = [
 25    ".ipynb_checkpoints/*",
 26]
 27"""Ignore patterns"""
 28DATA_VERSION_LIMIT = 10
 29"""Data version limit"""
 30DEFAULT_TIME_COLUMN_FORMAT = "%Y-%m-%d"
 31"""Default time column format"""
 32MAX_MODEL_DEFINITION_SIZE = 10000
 33"""Maximum number of characters in a model definition"""
 34
 35
 36# The maximum number of fork processes, used for loading projects
 37# None means default to process pool, 1 means don't fork, :N is number of processes
 38# Factors in the number of available CPUs even if the process is bound to a subset of them
 39# (e.g. via taskset) to avoid oversubscribing the system and causing kill signals
 40if hasattr(os, "fork") and not mp.current_process().daemon:
 41    try:
 42        MAX_FORK_WORKERS: t.Optional[int] = int(os.getenv("MAX_FORK_WORKERS"))  # type: ignore
 43    except TypeError:
 44        MAX_FORK_WORKERS = (
 45            len(os.sched_getaffinity(0)) if hasattr(os, "sched_getaffinity") else None  # type: ignore
 46        )
 47else:
 48    MAX_FORK_WORKERS = 1
 49
 50EPOCH = datetime.date(1970, 1, 1)
 51
 52DEFAULT_MAX_LIMIT = 1000
 53"""The default maximum row limit that is used when evaluating a model."""
 54
 55DEFAULT_LOG_LIMIT = 20
 56"""The default number of logs to keep."""
 57
 58DEFAULT_LOG_FILE_DIR = "logs"
 59"""The default directory for log files."""
 60
 61AUDITS = "audits"
 62CACHE = ".cache"
 63EXTERNAL_MODELS = "external_models"
 64LINTER = "linter"
 65MACROS = "macros"
 66MATERIALIZATIONS = "materializations"
 67METRICS = "metrics"
 68MODELS = "models"
 69SEEDS = "seeds"
 70SIGNALS = "signals"
 71TESTS = "tests"
 72
 73EXTERNAL_MODELS_YAML = "external_models.yaml"
 74EXTERNAL_MODELS_DEPRECATED_YAML = "schema.yaml"
 75REQUIREMENTS = "sqlmesh-requirements.lock"
 76
 77DEFAULT_SCHEMA = "default"
 78
 79SQLMESH_VARS = "__sqlmesh__vars__"
 80SQLMESH_VARS_METADATA = "__sqlmesh__vars__metadata__"
 81SQLMESH_BLUEPRINT_VARS = "__sqlmesh__blueprint__vars__"
 82SQLMESH_BLUEPRINT_VARS_METADATA = "__sqlmesh__blueprint__vars__metadata__"
 83
 84VAR = "var"
 85BLUEPRINT_VAR = "blueprint_var"
 86GATEWAY = "gateway"
 87
 88SQLMESH_MACRO = "__sqlmesh__macro__"
 89SQLMESH_BUILTIN = "__sqlmesh__builtin__"
 90SQLMESH_METADATA = "__sqlmesh__metadata__"
 91
 92
 93BUILTIN = "builtin"
 94DBT = "dbt"
 95NATIVE = "native"
 96HYBRID = "hybrid"
 97
 98DISABLE_SQLMESH_STATE_MIGRATION = "SQLMESH__AIRFLOW__DISABLE_STATE_MIGRATION"
 99
100LIQUID_CLUSTERING_KEYWORDS: frozenset = frozenset({"AUTO", "NONE"})
SQLMESH = 'sqlmesh'
SQLMESH_MANAGED = 'sqlmesh_managed'
SQLMESH_PATH = PosixPath('/home/docs/.sqlmesh')
PROD = 'prod'

Prod

DEV = 'dev'

Dev

SNAPSHOTS_PATH = 'snapshots'

Snapshots path

DEFAULT_SNAPSHOT_TTL = 'in 1 week'

Default snapshot TTL

DEFAULT_ENVIRONMENT_TTL = 'in 1 week'

Default environment TTL

IGNORE_PATTERNS = ['.ipynb_checkpoints/*']

Ignore patterns

DATA_VERSION_LIMIT = 10

Data version limit

DEFAULT_TIME_COLUMN_FORMAT = '%Y-%m-%d'

Default time column format

MAX_MODEL_DEFINITION_SIZE = 10000

Maximum number of characters in a model definition

EPOCH = datetime.date(1970, 1, 1)
DEFAULT_MAX_LIMIT = 1000

The default maximum row limit that is used when evaluating a model.

DEFAULT_LOG_LIMIT = 20

The default number of logs to keep.

DEFAULT_LOG_FILE_DIR = 'logs'

The default directory for log files.

AUDITS = 'audits'
CACHE = '.cache'
EXTERNAL_MODELS = 'external_models'
LINTER = 'linter'
MACROS = 'macros'
MATERIALIZATIONS = 'materializations'
METRICS = 'metrics'
MODELS = 'models'
SEEDS = 'seeds'
SIGNALS = 'signals'
TESTS = 'tests'
EXTERNAL_MODELS_YAML = 'external_models.yaml'
EXTERNAL_MODELS_DEPRECATED_YAML = 'schema.yaml'
REQUIREMENTS = 'sqlmesh-requirements.lock'
DEFAULT_SCHEMA = 'default'
SQLMESH_VARS = '__sqlmesh__vars__'
SQLMESH_VARS_METADATA = '__sqlmesh__vars__metadata__'
SQLMESH_BLUEPRINT_VARS = '__sqlmesh__blueprint__vars__'
SQLMESH_BLUEPRINT_VARS_METADATA = '__sqlmesh__blueprint__vars__metadata__'
VAR = 'var'
BLUEPRINT_VAR = 'blueprint_var'
GATEWAY = 'gateway'
SQLMESH_MACRO = '__sqlmesh__macro__'
SQLMESH_BUILTIN = '__sqlmesh__builtin__'
SQLMESH_METADATA = '__sqlmesh__metadata__'
BUILTIN = 'builtin'
DBT = 'dbt'
NATIVE = 'native'
HYBRID = 'hybrid'
DISABLE_SQLMESH_STATE_MIGRATION = 'SQLMESH__AIRFLOW__DISABLE_STATE_MIGRATION'
LIQUID_CLUSTERING_KEYWORDS: frozenset = frozenset({'AUTO', 'NONE'})