File size: 2,093 Bytes
f4baae1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
"""
热重载配置模块
定义 Granian 服务器热重载时需要忽略的目录和文件模式
"""

# 忽略的目录列表
RELOAD_IGNORE_DIRS = [
    "logs",  # 忽略日志目录
    "storage",  # 忽略存储目录
    "__pycache__",  # 忽略 Python 缓存
    ".git",  # 忽略 git 目录
    "node_modules",  # 忽略 node_modules
    "migrations",  # 忽略数据库迁移目录
    ".pytest_cache",  # 忽略 pytest 缓存
    ".venv",  # 忽略虚拟环境
    "venv",  # 忽略虚拟环境
    "env",  # 忽略环境目录
    ".mypy_cache",  # 忽略 mypy 缓存
    ".ruff_cache",  # 忽略 ruff 缓存
    "dist",  # 忽略构建分发目录
    "build",  # 忽略构建目录
    ".coverage",  # 忽略测试覆盖率文件
    "htmlcov",  # 忽略覆盖率报告目录
    "tests",  # 忽略测试目录
]

# 忽略的文件模式(正则表达式)
RELOAD_IGNORE_PATTERNS = [
    # 日志文件
    r".*\.log$",
    r".*\.log\.\d+$",
    # 数据库文件
    r".*\.sqlite3.*",
    r".*\.db$",
    r".*\.db-.*$",
    # Python 相关
    r".*\.pyc$",
    r".*\.pyo$",
    r".*\.pyd$",
    # 临时文件
    r".*\.tmp$",
    r".*\.temp$",
    r".*\.swp$",
    r".*\.swo$",
    r".*~$",
    # 系统文件
    r".*\.DS_Store$",
    r".*Thumbs\.db$",
    r".*\.directory$",
    # 编辑器文件
    r".*\.vscode.*",
    r".*\.idea.*",
    # 测试和覆盖率
    r".*\.coverage$",
    r".*\.pytest_cache.*",
    # 构建文件
    r".*\.egg-info.*",
    r".*\.wheel$",
    r".*\.whl$",
    # 版本控制
    r".*\.git.*",
    r".*\.gitignore$",
    r".*\.gitkeep$",
    # 配置文件备份
    r".*\.bak$",
    r".*\.backup$",
    r".*\.orig$",
    # 锁文件
    r".*\.lock$",
    r".*\.pid$",
]

# 监视的路径(只监视应用相关代码)
RELOAD_WATCH_PATHS = [
    "app",  # 应用主目录
    "main.py",  # 主入口文件
]

# 热重载配置
RELOAD_CONFIG = {
    "reload_ignore_dirs": RELOAD_IGNORE_DIRS,
    "reload_ignore_patterns": RELOAD_IGNORE_PATTERNS,
    "reload_paths": RELOAD_WATCH_PATHS,
    "reload_tick": 100,  # 监视频率(毫秒)
}