Я пишу контент для AWS, Kubernetes, Python, JavaScript и многое другое. Чтобы просмотреть все последние контент, обязательно Посетите мой блог и подпишитесь на мою рассылку. Подпишись на меня в Твиттере .
Это день 11 # 100daysofythophon Challenge.
Этот пост будет использовать PrettyErrors
Библиотека для вывода более читаемых ошибок в Python.
Он будет построить работу, проделанную по обучению Python Fire и Pyinquirer
Основы в Предыдущий блог Post Отказ
Предварительные условия
- Знакомство с Пиронв . Посмотреть здесь Для моего поста на Пипенве.
- Знакомство с Python Fire
- (Необязательно) Знакомство с
Pyinquirer.
Начиная
Пока я буду использовать мой Привет-питон-огонь
REPO, следующие будут работать в любом репо, инициализированном с пиронв
.
# Add PrettyErrors $ pipenv install pretty_errors
Теперь мы можем начать бросать некоторые примеры ошибок.
Демонстрируя ошибку
Python Fire требует допустимого ввода для аргументов метода для того, как он работает.
Мы просто обновим верхнюю часть кода для Cli.py
Поднять очень придумыванное исключение:
#!/usr/bin/env python import fire from PyInquirer import prompt class IngestionStage(object): def run(self): raise Exception("Contrived example") return 'Ingesting! Nom nom nom...'
Теперь, если мы запустим Python Cli.py Progestion Run
Мы увидим следующую ошибку:
$ python cli.py ingestion run Traceback (most recent call last): File "/Users/dennisokeeffe/code/blog-projects/hello-fire/cli.py", line 66, infire.Fire(Pipeline) File "/Users/dennisokeeffe/code/blog-projects/hello-fire/.venv/lib/python3.9/site-packages/fire/core.py", line 141, in Fire component_trace = _Fire(component, args, parsed_flag_args, context, name) File "/Users/dennisokeeffe/code/blog-projects/hello-fire/.venv/lib/python3.9/site-packages/fire/core.py", line 466, in _Fire component, remaining_args = _CallAndUpdateTrace( File "/Users/dennisokeeffe/code/blog-projects/hello-fire/.venv/lib/python3.9/site-packages/fire/core.py", line 681, in _CallAndUpdateTrace component = fn(*varargs, **kwargs) File "/Users/dennisokeeffe/code/blog-projects/hello-fire/cli.py", line 8, in run raise Exception("Contrived example") Exception: Contrived example
Предел ошибки
Чтобы увидеть красивые ошибки в действии, все, что нам нужно сделать, это импортировать пакет:
#!/usr/bin/env python import fire from PyInquirer import prompt import pretty_errors class IngestionStage(object): def run(self): raise Exception("Contrived example") return 'Ingesting! Nom nom nom...'
Теперь, если мы запустим Python Cli.py Progestion Run
Мы увидим следующую ошибку:
$ python cli.py ingestion run -------------------------------------------------------------------------------------------------------------- cli.py 67fire.Fire(Pipeline) core.py 141 Fire component_trace = _Fire(component, args, parsed_flag_args, context, name) core.py 466 _Fire component, remaining_args = _CallAndUpdateTrace( core.py 681 _CallAndUpdateTrace component = fn(*varargs, **kwargs) cli.py 9 run raise Exception("Contrived example") Exception: Contrived example
Гораздо приятнее и проще для отладки выходной ошибку.
Резюме
Сегодняшний пост продемонстрировал, как использовать PrettyErrors
Чтобы наш ошибку отладки намного приятнее.
Ресурсы и дальнейшее чтение
Фото кредит: базильсамуслад
Первоначально опубликовано на моем блог . Чтобы увидеть новые посты без задержки, прочитайте сообщения там и подпишитесь на мою рассылку.
Оригинал: “https://dev.to/okeeffed/pretty-error-output-in-python-5cen”