106 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			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) |