84 lines
2.8 KiB
Python
84 lines
2.8 KiB
Python
from src.common.logger import get_logger
|
||
|
||
logger = get_logger("dependency_config")
|
||
|
||
|
||
class DependencyConfig:
|
||
"""依赖管理配置类 - 现在使用全局配置"""
|
||
|
||
def __init__(self, global_config=None):
|
||
self._global_config = global_config
|
||
|
||
def _get_config(self):
|
||
"""获取全局配置对象"""
|
||
if self._global_config is not None:
|
||
return self._global_config
|
||
|
||
# 延迟导入以避免循环依赖
|
||
try:
|
||
from src.config.config import global_config
|
||
|
||
return global_config
|
||
except ImportError:
|
||
logger.warning("无法导入全局配置,使用默认设置")
|
||
return None
|
||
|
||
@property
|
||
def auto_install(self) -> bool:
|
||
"""是否启用自动安装"""
|
||
config = self._get_config()
|
||
if config and hasattr(config, "dependency_management"):
|
||
return config.dependency_management.auto_install
|
||
return True
|
||
|
||
@property
|
||
def use_mirror(self) -> bool:
|
||
"""是否使用PyPI镜像源"""
|
||
config = self._get_config()
|
||
if config and hasattr(config, "dependency_management"):
|
||
return config.dependency_management.use_mirror
|
||
return False
|
||
|
||
@property
|
||
def mirror_url(self) -> str:
|
||
"""PyPI镜像源URL"""
|
||
config = self._get_config()
|
||
if config and hasattr(config, "dependency_management"):
|
||
return config.dependency_management.mirror_url
|
||
return ""
|
||
|
||
@property
|
||
def install_timeout(self) -> int:
|
||
"""安装超时时间(秒)"""
|
||
config = self._get_config()
|
||
if config and hasattr(config, "dependency_management"):
|
||
return config.dependency_management.auto_install_timeout
|
||
return 300
|
||
|
||
@property
|
||
def prompt_before_install(self) -> bool:
|
||
"""安装前是否提示用户"""
|
||
config = self._get_config()
|
||
if config and hasattr(config, "dependency_management"):
|
||
return config.dependency_management.prompt_before_install
|
||
return False
|
||
|
||
|
||
# 全局配置实例
|
||
_global_dependency_config: DependencyConfig | None = None
|
||
|
||
|
||
def get_dependency_config() -> DependencyConfig:
|
||
"""获取全局依赖配置实例"""
|
||
global _global_dependency_config
|
||
if _global_dependency_config is None:
|
||
_global_dependency_config = DependencyConfig()
|
||
return _global_dependency_config
|
||
|
||
|
||
def configure_dependency_settings(**kwargs) -> None:
|
||
"""配置依赖管理设置 - 注意:这个函数现在仅用于兼容性,实际配置需要修改bot_config.toml"""
|
||
logger.info("依赖管理设置现在通过 bot_config.toml 的 [dependency_management] 节进行配置")
|
||
logger.info(f"请求的配置更改: {kwargs}")
|
||
logger.warning("configure_dependency_settings 函数仅用于兼容性,配置更改不会持久化")
|