2025-02-12 DjangoCongress JP 2025の発表内容とYouTube Liveでの配信が決定
![DjangoCongress JP 2023](news/DjangoCongress-jp-2025.png)
DjangoCongress JP 2025の発表内容とYouTube Liveでの配信が決定¶
2025年2月22日(土曜日)開催予定のDjangoCongress JP 2025の配信が決定しました。
以下のYouTube Liveにて配信されます:
今年はDjangoだけでなくFastAPIなど非同期Webに関するトークも予定されています。またDjang
2025-01-31 Python 3.13の新機能(その5)PEP 742: TypeIs による型の絞り込み
Python 3.10では PEP 647: ユーザ定義の型ガード が導入され、型ガード を定義して型推論に利用できるようになりました。
from typing import TypeGuard
def is_int(x: object) -> TypeGuard[int]:
return isinstance(x, int)
def func(x:object) -> None:
if is_int(x):
reveal_type(x) # x は int
型ガードについては、Python 3.10の新機能(その7) ユーザ定義型ガード の解説を参照してください。
型ガー
2025-01-28 Python 3.13の新機能(その4)PEP 705: TypeDict: 読み取り専用アイテム
PEP 705: TypedDict: Read-only items では、TypedDict
に読み取り専用の項目を指定できるようになりました。
from typing import TypedDict, ReadOnly
class FooDict(TypedDict):
x: int
y: int
z: ReadOnly[int] # z は読み取り専用
foo: FooDict = {"x": 1, "y": 2, "z": 3}
foo["x"] = 4 # Ok
foo["z"] = 5 # エラー: "z" is a read-only key in "FooDict"
ただし、リストな
2025-01-28 Python 3.13の新機能(その3)PEP 702: 型システムを利用したDeprecate(廃止予定)の指定
PEP 702: 型システムを利用した非推奨の指定¶
従来のPythonでは、Deprecate(廃止予定)のAPIを警告するために、次のように DeprecationWarning
を使っていました。
import warnings
def func():
warnings.warn("deprecated", DeprecationWarning)
return 0
しかし、この方法では実行するまで警告が表示されないため、警告を見逃されることがありました。
そこで、PEP 702では、@warnings.deprecated デコレータ
2025-01-27 Python 3.13の新機能(その2)PEP 696: 型パラメータのデフォルト型
従来のジェネリック型では、型を決定できない型パラメータは Any
などにされていました。
class A[T]:
foo: T | None
def __init__(self, foo: T | None=None):
self.foo = foo
a = A()
reveal_type(a) # Mypyでは a は A[Any] となる
PEP 696: Type Defaults for Type Parameters では、指定されていない型パラメータにデフォルトの型を指定できるようになりました。
class A[T=int]: # T のデフォルトを int に指定
foo: T |