Создание структуры ООП в инструменте Python CLI для поддержки краевых падежей - PullRequest
0 голосов
/ 11 декабря 2018

Я разработал инструмент командной строки, который вы выполняете за несколько шагов, для 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 как функцию, которую они вызывают в конце своего файла?

Спасибо за понимание.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...