dm.management 源代码

from collections import defaultdict
from typing import Callable, Optional, List
from datetime import datetime
from pandas import DataFrame

from dm.load_funcs import *
from dm.dump_funcs import *

load_map = {}
dump_map = {}
dump_groups = defaultdict(list)

# 类型提示
OutputFunc = Callable[[str], Optional[str]]
LoadFunc = Callable[[str, Optional[OutputFunc]], Optional[str]]

StartTime = EndTime = Optional[datetime]
HashFunc = Callable[[str], str]
DumpFunc = Callable[[StartTime, EndTime, Optional[HashFunc]], DataFrame]


[文档] def register_load(cmd_label: str, load_func: LoadFunc, default_path: str): """将导入函数注册到指令列表中 """ load_map[cmd_label] = load_func, default_path
[文档] def register_dump(task: str, dump_func: DumpFunc, accept_params: list = ['start_time', 'end_time']): """将导出函数注册到指令列表中 :param task: 任务名称,也用作导出文件的 sheet name :type task: str :param dump_func: 导出函数 :type dump_func: DumpFunc :param accept_params: 导出函数接受的参数, defaults to ['start_time', 'end_time'] :type accept_params: list, optional """ dump_map[task] = dump_func, accept_params
[文档] def register_dump_groups(group: str, tasks: List[str]): """将任务加入组中 """ dump_groups[group].extend(tasks)
register_dump('page', PageTrackingDump) register_dump('module', ModuleTrackingDump) register_dump('appointment', AppointmentDump) register_dump('org_activity', OrgActivityDump) register_dump('person_position', PersonPosDump, accept_params=['year', 'semester']) register_dump('person_activity', PersonActivityDump, accept_params=['year', 'semester']) register_dump('person_feedback', PersonFeedbackDump) register_dump('person_course', PersonCourseDump, accept_params=['year', 'semester']) register_dump_groups('tracking', ['page', 'module']) register_dump_groups('activity', ['org_activity', 'person_activity']) register_dump_groups('underground', ['appointment']) register_dump_groups('org', ['org_activity']) register_dump_groups('person', ['person_position', 'person_activity', 'person_feedback', 'person_course']) register_load('stu', load_stu, 'stuinf.csv') register_load('freshman', load_freshman, 'freshman.csv') register_load('orgtype', load_orgtype, 'orgtypeinf.csv') register_load('org', load_org, 'orginf.csv') register_load('orgtag', load_org_tag, 'orgtag.csv') register_load('oldorgtags', load_old_org_tags, 'oldorgtags.csv') register_load('activity', load_activity, 'activityinfo.csv') register_load('help', load_help, 'help.csv') register_load('courserecord', load_course_record, 'coursetime.xlsx') register_load('feedbackType', load_feedback_type, 'feedbacktype.csv') register_load('feedback', load_feedback, 'feedbackinf.csv') register_load('feedbackComments', load_feedback_comments, 'feedbackcomments.csv') register_load('major', load_major, 'major.txt') register_load('minor', load_minor, 'minor.txt') register_load('doubleDegree', load_double_degree, 'doubledegree.txt') register_load('project', load_project, 'project.txt')