Рубрики
Без рубрики

Красивая ошибка вывода в Python

Я пишу контент для AWS, Kubernetes, Python, JavaScript и многое другое. Чтобы просмотреть все последние контент, будь … Помечено новичками, Python, 100daysofPython.

Я пишу контент для AWS, Kubernetes, Python, JavaScript и многое другое. Чтобы просмотреть все последние контент, обязательно Посетите мой блог и подпишитесь на мою рассылку. Подпишись на меня в Твиттере .

Это день 11 # 100daysofythophon Challenge.

Этот пост будет использовать PrettyErrors Библиотека для вывода более читаемых ошибок в Python.

Он будет построить работу, проделанную по обучению Python Fire и Pyinquirer Основы в Предыдущий блог Post Отказ

Предварительные условия

  1. Знакомство с Пиронв . Посмотреть здесь Для моего поста на Пипенве.
  2. Знакомство с Python Fire
  3. (Необязательно) Знакомство с 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, in 
    fire.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 67 
fire.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 Чтобы наш ошибку отладки намного приятнее.

Ресурсы и дальнейшее чтение

  1. ABC of Pipenv
  2. Пакетерроры
  3. Пиронв
  4. CLI подсказки в Python

Фото кредит: базильсамуслад

Первоначально опубликовано на моем блог . Чтобы увидеть новые посты без задержки, прочитайте сообщения там и подпишитесь на мою рассылку.

Оригинал: “https://dev.to/okeeffed/pretty-error-output-in-python-5cen”