Я разработал инструмент командной строки, который вы выполняете за несколько шагов, для 75% моих пользователей все работает нормально.
# My program so far executes like this - handles most cases well
argparse("--process")
# the file name is usually X_Y_Z.xlsx
# and currently I handle edge cases by if file_name.split("_")[1] == "X": ...
file_name = input("File Name: ")
program = Default(file_name)
program.start_process()
program.end_process()
class Default:
def __init__(self, file)
self.excel = open(file)
def start_process(self):
self.excel = normal_stuff()
def end_process(self):
self.excel.save()
Однако остальные 25% имеют экспоненциально растущий список крайних случаев.Вместо того, чтобы пытаться объединить всех в одну и ту же кодовую базу, я понял, что предоставление моим пользователям возможности писать свои собственные классы / функции python может избавить меня от головной боли.Что-то вроде этого они могут подтолкнуть к github (без моего просмотра):
class Edge_Case(Default):
def process(self):
super(Edge_Case, self).start_process()
self.excel = unusual_stuff()
super(Edge_Case, self).end_process()
Но теперь, когда дело доходит до проектирования cli.py
... я заблудился.Должен ли я импортировать их файл и найти функцию, или, может быть, как-то иначе, и попросить ли их импортировать argparse как функцию, которую они вызывают в конце своего файла?
Спасибо за понимание.