huhan3000/phallic-worship-analysis/config.py

106 lines
2.7 KiB
Python

"""
项目配置文件
"""
import os
from pathlib import Path
# 项目根目录
PROJECT_ROOT = Path(__file__).parent
# 数据目录
DATA_DIR = PROJECT_ROOT / "data"
DATA_DIR.mkdir(exist_ok=True)
# 子数据目录
EMPERORS_DATA_DIR = DATA_DIR / "emperors"
BUILDINGS_DATA_DIR = DATA_DIR / "buildings"
CUSTOMS_DATA_DIR = DATA_DIR / "customs"
TRANSMISSIONS_DATA_DIR = DATA_DIR / "transmissions"
for dir_path in [EMPERORS_DATA_DIR, BUILDINGS_DATA_DIR, CUSTOMS_DATA_DIR, TRANSMISSIONS_DATA_DIR]:
dir_path.mkdir(exist_ok=True)
# 分析结果目录
ANALYSIS_DIR = PROJECT_ROOT / "analysis"
ANALYSIS_DIR.mkdir(exist_ok=True)
# 可视化目录
VISUALIZATION_DIR = PROJECT_ROOT / "visualization"
VISUALIZATION_DIR.mkdir(exist_ok=True)
# 文档目录
DOCS_DIR = PROJECT_ROOT / "docs"
DOCS_DIR.mkdir(exist_ok=True)
# 测试目录
TESTS_DIR = PROJECT_ROOT / "tests"
TESTS_DIR.mkdir(exist_ok=True)
# 数据库配置
DATABASE_CONFIG = {
"neo4j": {
"uri": os.getenv("NEO4J_URI", "bolt://localhost:7687"),
"user": os.getenv("NEO4J_USER", "neo4j"),
"password": os.getenv("NEO4J_PASSWORD", "password"),
"database": os.getenv("NEO4J_DATABASE", "phallic_worship_analysis")
},
"postgresql": {
"host": os.getenv("POSTGRES_HOST", "localhost"),
"port": int(os.getenv("POSTGRES_PORT", "5432")),
"database": os.getenv("POSTGRES_DB", "phallic_worship_db"),
"user": os.getenv("POSTGRES_USER", "postgres"),
"password": os.getenv("POSTGRES_PASSWORD", "password")
}
}
# 质量控制标准
QUALITY_STANDARDS = {
"minimum_sources": 2,
"reliability_threshold": "medium",
"evidence_completeness": 0.7,
"cross_validation_required": True
}
# 分析参数
ANALYSIS_PARAMETERS = {
"emperor_lifespan_threshold": 30,
"cultural_continuity_threshold": 0.6,
"transmission_success_threshold": 0.5,
"confidence_interval": 0.95
}
# 日志配置
LOGGING_CONFIG = {
"version": 1,
"disable_existing_loggers": False,
"formatters": {
"standard": {
"format": "%(asctime)s [%(levelname)s] %(name)s: %(message)s"
},
},
"handlers": {
"default": {
"level": "INFO",
"formatter": "standard",
"class": "logging.StreamHandler",
},
"file": {
"level": "DEBUG",
"formatter": "standard",
"class": "logging.FileHandler",
"filename": str(PROJECT_ROOT / "logs" / "analysis.log"),
"mode": "a",
},
},
"loggers": {
"": {
"handlers": ["default", "file"],
"level": "DEBUG",
"propagate": False
}
}
}
# 创建日志目录
(PROJECT_ROOT / "logs").mkdir(exist_ok=True)