1
1
import os
2
2
from functools import cache
3
3
4
- import pydantic
5
4
from packaging .version import Version
6
5
from pydantic import BaseModel , ConfigDict
7
6
@@ -23,9 +22,7 @@ class CrossBuildEnvReleaseSpec(BaseModel):
23
22
# Minimum and maximum pyodide-build versions that is compatible with this release
24
23
min_pyodide_build_version : str | None = None
25
24
max_pyodide_build_version : str | None = None
26
- model_config = ConfigDict (
27
- extra = pydantic .Extra .forbid , title = "CrossBuildEnvReleasesSpec"
28
- )
25
+ model_config = ConfigDict (extra = "forbid" , title = "CrossBuildEnvReleasesSpec" )
29
26
30
27
@property
31
28
def python_version_tuple (self ) -> tuple [int , int , int ]:
@@ -95,7 +92,7 @@ class CrossBuildEnvMetaSpec(BaseModel):
95
92
96
93
releases : dict [str , CrossBuildEnvReleaseSpec ]
97
94
model_config = ConfigDict (
98
- extra = pydantic . Extra . forbid ,
95
+ extra = " forbid" ,
99
96
title = "CrossBuildEnvMetaSpec" ,
100
97
)
101
98
@@ -224,6 +221,8 @@ def load_cross_build_env_metadata(url_or_filename: str) -> CrossBuildEnvMetaSpec
224
221
response = requests .get (url_or_filename )
225
222
response .raise_for_status ()
226
223
data = response .json ()
227
- return CrossBuildEnvMetaSpec .parse_obj (data )
224
+ return CrossBuildEnvMetaSpec .model_validate (data )
228
225
229
- return CrossBuildEnvMetaSpec .parse_file (url_or_filename )
226
+ with open (url_or_filename ) as f :
227
+ data = f .read ()
228
+ return CrossBuildEnvMetaSpec .model_validate_json (data )
0 commit comments