11from __future__ import annotations
22
3- from dataclasses import dataclass
3+ import sys
44import datetime as dt
5+ from dataclasses import dataclass
56from pathlib import Path
67
78try :
2324ROOT_DIR = RELEASE_DIR .parent
2425PEP_ROOT = ROOT_DIR / 'peps'
2526
27+ kw_only = {'kw_only' : True } if sys .version_info [:2 ] >= (3 , 10 ) else {}
28+
2629
27- @dataclass (frozen = True , kw_only = True , slots = True )
30+ @dataclass (frozen = True , ** kw_only , slots = True )
2831class PythonReleases :
2932 metadata : dict [str , VersionMetadata ]
3033 releases : dict [str , list [ReleaseInfo ]]
3134
3235
33- @dataclass (frozen = True , kw_only = True , slots = True )
36+ @dataclass (frozen = True , ** kw_only , slots = True )
3437class VersionMetadata :
3538 """Metadata for a given interpreter version (MAJOR.MINOR)."""
3639
@@ -49,7 +52,7 @@ def from_toml(cls, data: dict[str, int | str | dt.date]):
4952 return cls (** {k .replace ('-' , '_' ): v for k , v in data .items ()})
5053
5154
52- @dataclass (frozen = True , kw_only = True , slots = True )
55+ @dataclass (frozen = True , ** kw_only , slots = True )
5356class ReleaseInfo :
5457 """Information about a release."""
5558
0 commit comments