Source code for oi_cli2.cli.analyze
from typing import List
from oi_cli2.model.Analyze import Analyze
from oi_cli2.utils.analyze import AnalyzeManager
# TODO 动态注册不同平台
[docs]def analyze_list(tm: AnalyzeManager):
analyze_list: List[Analyze] = tm.get_list()
for i in range(len(analyze_list)):
if i == 0 or analyze_list[i].platform != analyze_list[i - 1].platform:
print(analyze_list[i].platform)
mark = ' '
if analyze_list[i].default:
mark = '*'
print(f'\t {mark} {analyze_list[i].template_alias} {analyze_list[i].submit_lang}')
if len(analyze_list) == 0:
print("Analyze list is empty.")
[docs]def analyze_new(tm: AnalyzeManager):
platforms = ['Codeforces', 'AtCoder']
for i in range(len(platforms)):
print(f"{i + 1}) {platforms[i]}")
try:
index = int(input("> "))
except Exception:
print("input error")
return
if 0 < index <= len(platforms):
platform = platforms[index - 1]
else:
print("input error")
return
submit_lang = input('submit_lang:')
template_alias = input('template_alias:')
class_path = input('class_path:')
tm.add_analyze(platform, submit_lang, template_alias, class_path)
[docs]def analyze_modify(tm: AnalyzeManager):
analyze_list = tm.get_list()
for i in range(len(analyze_list)):
if i == 0 or analyze_list[i].platform != analyze_list[i - 1].platform:
print(analyze_list[i].platform)
mark = ' '
item = analyze_list[i]
if item.default:
mark = '*'
print(f'\t {mark} {i}) {item.template_alias}')
print(f'\t\t submit_lang: {item.submit_lang}')
print(f'\t\t class_path: {item.class_path}')
try:
acc_index = int(input("> "))
except Exception:
print("input error")
if acc_index < 0 or acc_index >= len(analyze_list):
print("input error")
return
print("1) Change Analyze template")
print("2) Change Analyze submit language")
print("3) Change Analyze class path")
print("4) Set as Default")
print("5) Delete")
try:
index = int(input("> "))
except (Exception):
print("input error")
if index == 1:
tm.modify_template_alias(acc_index, input("Enter template_alias:"))
elif index == 2:
tm.modify_submit_lang(acc_index, input("Enter submit lang:"))
elif index == 3:
tm.modify_class_path(acc_index, input("Enter class path:"))
elif index == 4:
tm.set_default(acc_index)
elif index == 5:
tm.delete_analyze(acc_index)
[docs]def analyze(db):
print("1) Analyze List")
print("2) New Analyze")
print("3) Modify Analyze")
try:
index = int(input("> "))
except (Exception):
print("input error")
tm = AnalyzeManager(db)
if index == 1:
analyze_list(tm)
elif index == 2:
analyze_new(tm)
elif index == 3:
analyze_modify(tm)
else:
print("input error")