Проблема с обновлением аргументов CLI: новые аргументы не распознаются при прямом выполненииPython

Программы на Python
Anonymous
Проблема с обновлением аргументов CLI: новые аргументы не распознаются при прямом выполнении

Сообщение Anonymous »

Я работаю над CLI на Python и не знаю, почему основной класс CLI не обновляется при добавлении новых аргументов.
У меня в основном 2 скрипты, управляющие CLI: main.py и cli.py имеет следующую структуру:

Код: Выделить всё

from src.cli import SearchFunction
import fire

def main_entrypoint():
fire.Fire(SearchFunction)

if __name__ == "__main__":
main_entrypoint()
Хотя в cli.py есть основной класс, куда я добавил аргумент group:

Код: Выделить всё

class SecEdgarScraperCli:

@staticmethod
def text_search(
*keywords: str,
type: Optional[str] = None,
group: Optional[str] = None,  # NEW ARGUMENT
) -> None:
"""
Perform a custom text search on the XXX website and save the results.

:param keywords: List of keywords to search for
:param type: Type of search
:param group: group to search  # NEW ARGUMENT
"""
if True:
do_things()
Если я запускаю инструмент с помощью поэзии:

Код: Выделить всё

poetry run edgar-tool text_search keywords to search for --type "type_1" --group "group_1"
он ​​корректно работает с новой группой аргументов.
Вместо этого используется прямое выполнение :

Код: Выделить всё

python main.py text_search keywords to search for --type "type_1" --group "group_1"
возвращает:

Код: Выделить всё

ERROR: Could not consume arg: --group
Даже очистка __pycache__:

Код: Выделить всё

rm -r __pycache__
приводит к тому же результату.
Почему это происходит? Как сделать так, чтобы прямое выполнение обновлялось с учетом внесенных правок?

Подробнее здесь: https://stackoverflow.com/questions/785 ... -execution

Вернуться в «Python»