76 lines
2.4 KiB
Python
76 lines
2.4 KiB
Python
import os
|
|
import boto3
|
|
import logging
|
|
import logging.config
|
|
from typing import Optional
|
|
from pydantic import Field
|
|
from pydantic_settings import BaseSettings
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
class Settings(BaseSettings):
|
|
# Material Project
|
|
mp_api_key: Optional[str] = Field(None, env="MP_API_KEY")
|
|
mp_endpoint: Optional[str] = Field(None, env="MP_ENDPOINT")
|
|
mp_topk: Optional[int] = Field(3, env="MP_TOPK")
|
|
|
|
# Proxy
|
|
http_proxy: Optional[str] = Field(None, env="HTTP_PROXY")
|
|
https_proxy: Optional[str] = Field(None, env="HTTPS_PROXY")
|
|
|
|
# FairChem
|
|
fairchem_model_path: Optional[str] = Field(None, env="FAIRCHEM_MODEL_PATH")
|
|
fmax: Optional[float] = Field(0.05, env="FMAX")
|
|
|
|
# MinIO
|
|
minio_endpoint: Optional[str] = Field(None, env="MINIO_ENDPOINT")
|
|
internal_minio_endpoint: Optional[str] = Field(None, env="INTERNAL_MINIO_ENDPOINT")
|
|
minio_access_key: Optional[str] = Field(None, env="MINIO_ACCESS_KEY")
|
|
minio_secret_key: Optional[str] = Field(None, env="MINIO_SECRET_KEY")
|
|
minio_bucket: Optional[str] = Field("mars-toolkit", env="MINIO_BUCKET")
|
|
|
|
class Config:
|
|
env_file = ".env"
|
|
env_file_encoding = "utf-8"
|
|
|
|
def setup_logging():
|
|
"""配置日志记录"""
|
|
parent_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), '../..'))
|
|
log_file_path = os.path.join(parent_dir, 'mars_toolkit.log')
|
|
|
|
logging.config.dictConfig({
|
|
'version': 1,
|
|
'disable_existing_loggers': False,
|
|
'formatters': {
|
|
'standard': {
|
|
'format': '%(asctime)s - %(name)s - %(levelname)s - %(message)s',
|
|
'datefmt': '%Y-%m-%d %H:%M:%S'
|
|
},
|
|
},
|
|
'handlers': {
|
|
'console': {
|
|
'level': 'INFO',
|
|
'class': 'logging.StreamHandler',
|
|
'formatter': 'standard'
|
|
},
|
|
'file': {
|
|
'level': 'DEBUG',
|
|
'class': 'logging.handlers.RotatingFileHandler',
|
|
'filename': log_file_path,
|
|
'maxBytes': 10485760, # 10MB
|
|
'backupCount': 5,
|
|
'formatter': 'standard'
|
|
}
|
|
},
|
|
'loggers': {
|
|
'': {
|
|
'handlers': ['console', 'file'],
|
|
'level': 'INFO',
|
|
'propagate': True
|
|
}
|
|
}
|
|
})
|
|
|
|
# 初始化配置
|
|
settings = Settings()
|