async def main(): try: conn = db.get_conn() cur = conn.cursor() if check_cache(conn): print('即将更新缓存,速度较慢,请耐心等待') free_game = steam.get_free_games(False) cache_game = db.get_cache_game(cur, False) new_game = check_appids(free_game, cache_game) db.add_cache_game(cur, new_game) db.set_status(cur, 'update', int(time())) print('缓存更新完成') conn.commit() else: print('使用缓存数据') free_game = db.get_cache_game(cur, False) cur.close() bots = get_cfg('bot')['bot_name'] for i, bot in enumerate(bots, 1): print(f'进度{i}/{len(bots)} 机器人 {bot}') await process_bot(conn, bot, free_game) cur = conn.cursor() count = db.get_status('added') cur.close() conn.close() print(f'总计添加 {count} 个免费游戏') print('运行结束') except Exception as e: print('运行出错') print(e) traceback.print_stack() input('按回车键退出……')
def get_conn(): '''创建数据库连接''' db = get_cfg('db').get('db_name') try: conn = sqlite3.connect(db) return conn except Exception as e: print('创建数据库连接失败,请确保存在data.db文件')
def load_config(cfg_dir): ''' Raises: FileNotFoundError if 'cfg.py' doesn't exist in cfg_dir ''' if not os.path.isfile(os.path.join(cfg_dir, 'cfg.py')): raise ImportError('cfg.py not found in {}'.format(cfg_dir)) import sys sys.path.insert(0, cfg_dir) from cfg import get_cfg cfg = get_cfg() # cleanup try: del sys.modules['cfg'] except: pass sys.path.remove(cfg_dir) return cfg
import os import sys import re from cfg import get_cfg import settings import codecs import fnmatch from util.util import is_hiden tar_file = os.path.join(settings.op_log_path, 'info.log') para_cfg = get_cfg() ptn = re.compile(r'\|INFO\|del\s+(.+?\.pdf)') def get_dels(): if os.path.isfile(tar_file): with open(tar_file, 'r') as f: content = f.read() return ptn.findall(content) return [] def get_ignore(): return para_cfg['ignore'] def utf8_required(func): def wrap(path, *args, **kwargs): if isinstance(path, str): path = path.decode(sys.getfilesystemencoding()) return func(path, *args, **kwargs)
if cfg.lr_step == "cos": return CosineAnnealingWarmRestarts( optimizer, T_0=cfg.epoch if cfg.T0 is None else cfg.T0, T_mult=cfg.Tmult, eta_min=cfg.eta_min, ) elif cfg.lr_step == "step": m = [cfg.epoch - a for a in cfg.drop] return MultiStepLR(optimizer, milestones=m, gamma=cfg.drop_gamma) else: return None if __name__ == "__main__": cfg = get_cfg() wandb.init(project=cfg.wandb, config=cfg) ds = get_ds(cfg.dataset)(cfg.bs, cfg, cfg.num_workers) model = get_method(cfg.method)(cfg) model.cuda().train() if cfg.fname is not None: model.load_state_dict(torch.load(cfg.fname)) optimizer = optim.Adam(model.parameters(), lr=cfg.lr, weight_decay=cfg.adam_l2) scheduler = get_scheduler(optimizer, cfg) eval_every = cfg.eval_every lr_warmup = 0 if cfg.lr_warmup else 500
def init_IPC(): ASF_CFG = get_cfg('asf') addr = ASF_CFG.get('ipc_addr') passwd = ASF_CFG.get('ipc_password') return {'ipc': addr, 'password': passwd, 'timeout': 30}
from master import runmaster from client import runclient import signal from mpi4py import MPI comm = MPI.COMM_WORLD rank = comm.Get_rank() size = comm.Get_size() assert size > 1, 'At least 2 MPI ranks required' numClients = size - 1 import cfg # Catch ctrl-C def signal_handler(signal, fame): print 'Correlation plotting terminated.' sys.exit() signal.signal(signal.SIGINT, signal_handler) cfg = cfg.get_cfg() if rank == 0: runmaster(numClients, cfg) else: runclient(cfg) MPI.Finalize()
import os import sys import re from cfg import get_cfg import settings import codecs import fnmatch from util.util import is_hiden tar_file = os.path.join(settings.op_log_path, 'info.log') para_cfg = get_cfg() ptn = re.compile(r'\|INFO\|del\s+(.+?\.pdf)') def get_dels(): if os.path.isfile(tar_file): with open(tar_file, 'r') as f: content = f.read() return ptn.findall(content) return [] def get_ignore(): return para_cfg['ignore'] def utf8_required(func): def wrap(path, *args, **kwargs): if isinstance(path, str):
def main(): api_id, api_hash, phone = extract_telegram_cfg(get_cfg()) tr = Tracker(api_id=api_id, api_hash=api_hash, phone=phone) tr.start()
from sqlalchemy import create_engine from sqlalchemy.orm import scoped_session, sessionmaker from sqlalchemy.types import String, Integer, Date, Boolean from sqlalchemy.schema import Column from sqlalchemy.ext.declarative import declarative_base from cfg import extract_db_cfg, get_cfg db, user, passwd, port = extract_db_cfg(get_cfg()) engine = create_engine(f'postgresql://{user}:{passwd}@localhost:{port}/{db}') session = sessionmaker(autocommit=True, autoflush=False, bind=engine) tracker_session = scoped_session(session) Base = declarative_base() class OnlineHistory(Base): __tablename__ = 'online_history' user_id = Column(Integer(), primary_key=True) time = Column(Date(), primary_key=True) new_status = Column(String()) class LastOnline(Base): __tablename__ = 'last_online' user_id = Column(Integer(), primary_key=True) time = Column(Date(), primary_key=True)
class ConfError(Exception): pass def _get_mode(mode=None): env_mode = os.environ.get("MODE", None) real_mode = mode if mode else env_mode if env_mode else None if not real_mode: raise ConfError('the "MODE" must be specify explicit in the os env variable') return real_mode MODE = _get_mode() CFG = get_cfg(mode=MODE) from default import * if MODE == "live": from live import * elif MODE == "dev": from dev import * LOG_CONF_MAPPING = {"dev": "logging-dev.conf", "live": "logging-live.conf"} _INITED = False def get_logger(name): global _INITED