Я пишу контент для 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”