Coverage for frappe_manager / __init__.py: 100%
37 statements
« prev ^ index » next coverage.py v7.13.5, created at 2026-07-02 18:13 +0530
« prev ^ index » next coverage.py v7.13.5, created at 2026-07-02 18:13 +0530
1import os
2from enum import Enum
3from pathlib import Path
4from typing import Optional
6# Examples are now provided using typer-examples decorators and installed per Typer app.
8_home_env = os.environ.get("FRAPPE_MANAGER_HOME", "")
9CLI_DIR = Path(_home_env) if _home_env else Path.home() / "frappe"
10CLI_FM_CONFIG_PATH = CLI_DIR / "fm_config.toml"
11CLI_SITES_ARCHIVE = CLI_DIR / "archived"
12CLI_LOG_DIRECTORY = CLI_DIR / "logs"
13CLI_BENCHES_DIRECTORY = CLI_DIR / "sites"
14CLI_SERVICES_DIRECTORY = CLI_DIR / "services"
15CLI_CACHE_PATH = Path.home() / ".cache" / "fm"
16CLI_RECENT_USED_SITES_CACHE_PATH = CLI_CACHE_PATH / "recent_sites.json"
18CLI_SERVICES_NGINX_PROXY_DIR = CLI_SERVICES_DIRECTORY / "nginx-proxy"
19CLI_SERVICES_NGINX_PROXY_SSL_DIR = CLI_SERVICES_NGINX_PROXY_DIR / "ssl"
21CLI_BENCH_CONFIG_FILE_NAME = "bench_config.toml"
22SSL_RENEW_BEFORE_DAYS = 30
23CLI_DEFAULT_DELIMETER = "__"
24CLI_SITE_NAME_DELIMETER = "_"
27DEFAULT_EXTENSIONS = [
28 # Debugger
29 "ms-python.debugpy",
30 "rioj7.command-variable",
31 # Python
32 "ms-python.python",
33 "charliermarsh.ruff",
34 # JavaScript/Web
35 "dbaeumer.vscode-eslint",
36 "esbenp.prettier-vscode",
37]
40class SiteServicesEnum(str, Enum):
41 frappe = "frappe"
42 nginx = "nginx"
43 mariadb = "mariadb"
44 redis_queue = "redis-queue"
45 redis_cache = "redis-cache"
46 schedule = "schedule"
47 socketio = "socketio"
48 default_worker = "default-worker"
49 short_worker = "short-worker"
50 long_worker = "long-worker"
51 adminer = "adminer"
52 mailpit = "mailpit"
55STABLE_APP_BRANCH_MAPPING_LIST = {
56 "frappe": "version-16",
57 "erpnext": "version-16",
58 "hrms": "version-16",
59}
62class EnableDisableOptionsEnum(str, Enum):
63 enable = "enable"
64 disable = "disable"