Skip to content

Commit 3816be3

Browse files
committed
chore(storage): use class keyword to ignore extra fields
1 parent 252cc61 commit 3816be3

File tree

1 file changed

+24
-28
lines changed

1 file changed

+24
-28
lines changed

src/storage/src/storage3/types.py

Lines changed: 24 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -5,25 +5,21 @@
55
from datetime import datetime
66
from typing import Any, Dict, List, Literal, Optional, TypedDict, Union
77

8-
from pydantic import BaseModel, ConfigDict, Field, TypeAdapter
8+
from pydantic import BaseModel, Extra, Field, TypeAdapter
99
from typing_extensions import ReadOnly, TypeAlias, TypeAliasType
1010

1111
RequestMethod = Literal["GET", "POST", "DELETE", "PUT", "HEAD"]
1212

13-
config = ConfigDict(extra="ignore")
14-
1513
# https://docs.pydantic.dev/2.11/concepts/types/#named-recursive-types
1614
JSON = TypeAliasType(
1715
"JSON", "Union[None, bool, str, int, float, Sequence[JSON], Mapping[str, JSON]]"
1816
)
1917
JSONAdapter: TypeAdapter = TypeAdapter(JSON)
2018

2119

22-
class BaseBucket(BaseModel):
20+
class BaseBucket(BaseModel, extra=Extra.ignore):
2321
"""Represents a file storage bucket."""
2422

25-
model_config = config
26-
2723
id: str
2824
name: str
2925
owner: str
@@ -131,11 +127,11 @@ class CreateSignedUrlResponse(TypedDict):
131127
signedUrl: str
132128

133129

134-
class SignedUrlJsonResponse(BaseModel):
130+
class SignedUrlJsonResponse(BaseModel, extra=Extra.ignore):
135131
signedURL: str
136132

137133

138-
class SignedUrlsJsonItem(BaseModel):
134+
class SignedUrlsJsonItem(BaseModel, extra=Extra.ignore):
139135
error: Optional[str]
140136
path: str
141137
signedURL: str
@@ -144,7 +140,7 @@ class SignedUrlsJsonItem(BaseModel):
144140
SignedUrlsJsonResponse = TypeAdapter(list[SignedUrlsJsonItem])
145141

146142

147-
class CreateSignedUploadUrlOptions(BaseModel):
143+
class CreateSignedUploadUrlOptions(BaseModel, extra=Extra.ignore):
148144
upsert: str
149145

150146

@@ -162,28 +158,28 @@ class CreateSignedUploadUrlOptions(BaseModel):
162158
DistanceMetric: TypeAlias = Literal["cosine", "euclidean"]
163159

164160

165-
class MetadataConfiguration(BaseModel):
161+
class MetadataConfiguration(BaseModel, extra=Extra.ignore):
166162
non_filterable_metadata_keys: Optional[List[str]] = Field(
167163
alias="nonFilterableMetadataKeys"
168164
)
169165

170166

171-
class ListIndexesOptions(BaseModel):
167+
class ListIndexesOptions(BaseModel, extra=Extra.ignore):
172168
nextToken: Optional[str] = None
173169
maxResults: Optional[int] = None
174170
prefix: Optional[str] = None
175171

176172

177-
class ListIndexesResponseItem(BaseModel):
173+
class ListIndexesResponseItem(BaseModel, extra=Extra.ignore):
178174
indexName: str
179175

180176

181-
class ListVectorIndexesResponse(BaseModel):
177+
class ListVectorIndexesResponse(BaseModel, extra=Extra.ignore):
182178
indexes: List[ListIndexesResponseItem]
183179
nextToken: Optional[str] = None
184180

185181

186-
class VectorIndex(BaseModel):
182+
class VectorIndex(BaseModel, extra=Extra.ignore):
187183
index_name: str = Field(alias="indexName")
188184
bucket_name: str = Field(alias="vectorBucketName")
189185
data_type: str = Field(alias="dataType")
@@ -195,18 +191,18 @@ class VectorIndex(BaseModel):
195191
creation_time: Optional[datetime] = None
196192

197193

198-
class GetVectorIndexResponse(BaseModel):
194+
class GetVectorIndexResponse(BaseModel, extra=Extra.ignore):
199195
index: VectorIndex
200196

201197

202198
VectorFilter = Dict[str, Any]
203199

204200

205-
class VectorData(BaseModel):
201+
class VectorData(BaseModel, extra=Extra.ignore):
206202
float32: List[float]
207203

208204

209-
class VectorObject(BaseModel):
205+
class VectorObject(BaseModel, extra=Extra.ignore):
210206
key: str
211207
data: VectorData
212208
metadata: Optional[dict[str, Union[str, bool, float]]] = None
@@ -215,27 +211,27 @@ def as_json(self) -> JSON:
215211
return {"key": self.key, "data": dict(self.data), "metadata": self.metadata}
216212

217213

218-
class VectorMatch(BaseModel):
214+
class VectorMatch(BaseModel, extra=Extra.ignore):
219215
key: str
220216
data: Optional[VectorData] = None
221217
distance: Optional[int] = None
222218
metadata: Optional[dict[str, Any]] = None
223219

224220

225-
class GetVectorsResponse(BaseModel):
221+
class GetVectorsResponse(BaseModel, extra=Extra.ignore):
226222
vectors: List[VectorMatch]
227223

228224

229-
class ListVectorsResponse(BaseModel):
225+
class ListVectorsResponse(BaseModel, extra=Extra.ignore):
230226
vectors: List[VectorMatch]
231227
nextToken: Optional[str] = None
232228

233229

234-
class QueryVectorsResponse(BaseModel):
230+
class QueryVectorsResponse(BaseModel, extra=Extra.ignore):
235231
matches: List[VectorMatch]
236232

237233

238-
class AnalyticsBucket(BaseModel):
234+
class AnalyticsBucket(BaseModel, extra=Extra.ignore):
239235
name: str
240236
type: Optional[Literal["ANALYTICS"]] = None
241237
format: Optional[str] = None
@@ -249,29 +245,29 @@ class AnalyticsBucket(BaseModel):
249245
AnalyticsBucketsParser = TypeAdapter(List[AnalyticsBucket])
250246

251247

252-
class AnalyticsBucketDeleteResponse(BaseModel):
248+
class AnalyticsBucketDeleteResponse(BaseModel, extra=Extra.ignore):
253249
message: str
254250

255251

256-
class VectorBucketEncryptionConfiguration(BaseModel):
252+
class VectorBucketEncryptionConfiguration(BaseModel, extra=Extra.ignore):
257253
kmsKeyArn: Optional[str] = None
258254
sseType: Optional[str] = None
259255

260256

261-
class VectorBucket(BaseModel):
257+
class VectorBucket(BaseModel, extra=Extra.ignore):
262258
vectorBucketName: str
263259
creationTime: Optional[datetime] = None
264260
encryptionConfiguration: Optional[VectorBucketEncryptionConfiguration] = None
265261

266262

267-
class GetVectorBucketResponse(BaseModel):
263+
class GetVectorBucketResponse(BaseModel, extra=Extra.ignore):
268264
vectorBucket: VectorBucket
269265

270266

271-
class ListVectorBucketsItem(BaseModel):
267+
class ListVectorBucketsItem(BaseModel, extra=Extra.ignore):
272268
vectorBucketName: str
273269

274270

275-
class ListVectorBucketsResponse(BaseModel):
271+
class ListVectorBucketsResponse(BaseModel, extra=Extra.ignore):
276272
vectorBuckets: List[ListVectorBucketsItem]
277273
nextToken: Optional[str] = None

0 commit comments

Comments
 (0)