devtools
Note
謝辞:私(Pydanticの主要な開発者)もpython-devtoolsを開発しています。
python-devtools(pip install devtools
)には、Python開発時に便利なツールが多数用意されています。たとえば、print()
の代わりにdebug()
を使用すると、print
よりも読みやすい方法で出力をフォーマットできます。また、print文がどのファイル/行にあり、どの値が出力されたかについての情報も得られます。
Pydanticは、ほとんどのパブリッククラスで__pretty__
メソッドを実装することで、devtoolsと統合されています。
特にdebug()
はモデルを調べる時に便利です。
from datetime import datetime
from typing import List
from devtools import debug
from pydantic import BaseModel
class Address(BaseModel):
street: str
country: str
lat: float
lng: float
class User(BaseModel):
id: int
name: str
signup_ts: datetime
friends: List[int]
address: Address
user = User(
id='123',
name='John Doe',
signup_ts='2019-06-01 12:22',
friends=[1234, 4567, 7890],
address=dict(street='Testing', country='uk', lat=51.5, lng=0),
)
debug(user)
print('\nshould be much easier read than:\n')
print('user:', user)
Will output in your terminal:
devtools_example.py:31 <module>
user: User(
id=123,
name='John Doe',
signup_ts=datetime.datetime(2019, 6, 1, 12, 22),
friends=[
1234,
4567,
7890,
],
address=Address(
street='Testing',
country='uk',
lat=51.5,
lng=0.0,
),
) (User)
should be much easier read than:
user: id=123 name='John Doe' signup_ts=datetime.datetime(2019, 6, 1, 12, 22) friends=[1234, 4567, 7890] address=Address(street='Testing', country='uk', lat=51.5, lng=0.0)
Note
python-devtools
はまだPython 3.13をサポートしていません。