创建配置文件

This commit is contained in:
rengengchen 2024-11-06 21:42:20 +08:00
parent cbd32ccc6f
commit 97c6945d6a
3 changed files with 118 additions and 0 deletions

View File

@ -0,0 +1 @@
from tronscan import Tronscan

View File

@ -0,0 +1 @@
import settings

116
config/settings.py Normal file
View File

@ -0,0 +1,116 @@
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
@Project payment
@File __init__.py.py
@IDE PyCharm
@Author rengengchen
@Time 2024/11/06 16:11
"""
import argparse
import os
import random
import sys
from argparse import Namespace
from configparser import ConfigParser
import requests
from loguru import logger
random_seed = 20240717
ROOT_DIR = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))
def setup_seed(seed):
# import torch
# torch.manual_seed(seed)
# torch.cuda.manual_seed_all(seed)
# torch.backends.cudnn.deterministic = True
# import numpy as np
# np.random.seed(seed)
random.seed(seed)
setup_seed(random_seed)
class Config:
def __init__(self,
config_parser: ConfigParser = None,
argument_parser: Namespace = None,
**kwargs):
if argument_parser:
for k in vars(argument_parser):
kwargs[k] = getattr(argument_parser, k)
if config_parser:
kwargs1 = kwargs.copy()
for section in config_parser.sections():
section1 = kwargs.setdefault(section, Config(**kwargs1))
for option in config_parser.options(section):
section1[option] = config_parser.get(section, option)
self.config = {k: Config(**v) if isinstance(v, dict) else v for k, v in kwargs.items()}
def refresh(self, **kwargs):
kwargs = {k: Config(**v) if isinstance(v, dict) else v for k, v in kwargs.items()}
self.config.update(kwargs)
def get(self, item, default=None):
if item in self.config:
return self.config[item]
return default
def get_int(self, item):
v = self.get(item)
if v is not None:
return int(v)
def get_float(self, item):
v = self.get(item)
if v is not None:
return float(v)
def get_bool(self, item):
v = self.get(item)
if v is not None:
return bool(v)
def __getitem__(self, item):
return self.config[item]
def __setitem__(self, key, value):
self.config[key] = value
def __getattr__(self, key):
if key in self.__dict__:
return self.__dict__[key]
try:
return self.config[key]
except KeyError:
raise AttributeError(f"'{self}' object has no attribute '{key}'")
def __str__(self):
return str(self.config)
def log_config(config):
# fmt = '%(asctime)s [%(name)s] %(levelname)s: %(message)s'
# datefmt = "%Y-%m-%d %H:%M:%S"
logger.remove()
logger.add(sys.stdout, level=config.log_level)
logger.add(sys.stderr, level="ERROR")
logger.add(os.path.join(ROOT_DIR, "logs", "recommender_{time}.log"), level="DEBUG", encoding='utf8', rotation="100 MB", retention=3)
nacos_url = f"http://{os.getenv('NACOS_SOCKET', '192.168.15.40:38865')}/nacos/v1/cs/configs"
def get_config() -> Config:
requests.adapters.DEFAULT_RETRIES = 3
configparser = ConfigParser()
configparser.read(fr'{ROOT_DIR}/config_file/param.conf')
parser = argparse.ArgumentParser(description='recommendation system')
parser.add_argument("--seed", type=int, default=2024)
args = parser.parse_args()
config = Config(configparser, args)
return config