Używam wspaniałej biblioteki Python Click do obsługi opcji wiersza poleceń w moim narzędziu. Oto uproszczona wersja mojego kodu (pełny skrypt here):Python Click: niestandardowy komunikat o błędzie
@click.command(
context_settings = dict(help_option_names = ['-h', '--help'])
)
@click.argument('analysis_dir',
type = click.Path(exists=True),
nargs = -1,
required = True,
metavar = "<analysis directory>"
)
def mytool(analysis_dir):
""" Do stuff """
if __name__ == "__main__":
mytool()
Jeśli ktoś uruchamia komendę bez żadnych flag, otrzymują komunikat domyślny błąd kliknięcie:
$ mytool
Usage: mytool [OPTIONS] <analysis directory>
Error: Missing argument "analysis_dir".
To jest ładne, ale "Chciałbym powiedzieć (bardzo) początkującym użytkownikom, że więcej pomocy jest dostępnych przy użyciu flagi pomocy. Innymi słowy, dodaj niestandardowe zdanie do komunikatu o błędzie, gdy polecenie jest nieprawidłowe, mówiąc ludziom, aby wypróbowali mytool --help
, aby uzyskać więcej informacji.
Czy istnieje prosty sposób na zrobienie tego? Wiem, że mógłbym usunąć atrybut required
i obsłużyć tę logikę w głównej funkcji, ale to wydaje się trochę hackowate dla tak drobnego dodatku.
Mam dokładnie ten sam problem. Chciałbym automatycznie wydrukować pomoc, jeśli wystąpi błąd, lub przynajmniej powiedzieć użytkownikowi, jak wydrukować pomoc. W przeciwnym razie musimy założyć, że wszyscy korzystający z naszego narzędzia znają myślenie oparte na systemie Unix. Podoba mi się do tej pory klikanie, ale jestem zrozpaczony, że na to pytanie nie udzielono odpowiedzi, ponieważ chcę czegoś, co pomoże zbudować narzędzia, które nowicjusze będą mogli z łatwością wykorzystać. – user1677663
Po prostu znalazłem to, co może być rozwiązaniem: http://stackoverflow.com/questions/35642202/python-click-return-the-helper-menu – user1677663
Nie, to nie zadziałało. – user1677663