Skip to content

Commit 45846ba

Browse files
fix: use ConfigDict for Pydantic model_config
Follows Pydantic v2 best practices for type safety Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent e1d8033 commit 45846ba

1 file changed

Lines changed: 19 additions & 19 deletions

File tree

src/scrapegraph_py/schemas.py

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from __future__ import annotations
22
from typing import Literal, Annotated, Generic, TypeVar
3-
from pydantic import BaseModel, Field, HttpUrl, model_validator
3+
from pydantic import BaseModel, ConfigDict, Field, HttpUrl, model_validator
44

55
T = TypeVar("T")
66

@@ -229,20 +229,20 @@ class TokenUsage(BaseModel):
229229
prompt_tokens: int
230230
completion_tokens: int
231231

232-
model_config = {"extra": "allow"}
232+
model_config = ConfigDict(extra="allow")
233233

234234

235235
class ChunkerMetadata(BaseModel):
236236
chunks: list[dict]
237237

238-
model_config = {"extra": "allow"}
238+
model_config = ConfigDict(extra="allow")
239239

240240

241241
class FetchWarning(BaseModel):
242242
reason: Literal["too_short", "empty", "bot_blocked", "spa_shell", "soft_404"]
243243
provider: str | None = None
244244

245-
model_config = {"extra": "allow"}
245+
model_config = ConfigDict(extra="allow")
246246

247247

248248
class ScrapeMetadata(BaseModel):
@@ -252,15 +252,15 @@ class ScrapeMetadata(BaseModel):
252252
warnings: list[FetchWarning] | None = None
253253
ocr: dict | None = None
254254

255-
model_config = {"extra": "allow"}
255+
model_config = ConfigDict(extra="allow")
256256

257257

258258
class ScrapeResponse(BaseModel):
259259
results: dict
260260
metadata: ScrapeMetadata
261261
errors: dict | None = None
262262

263-
model_config = {"extra": "allow"}
263+
model_config = ConfigDict(extra="allow")
264264

265265

266266
class ExtractResponse(BaseModel):
@@ -269,7 +269,7 @@ class ExtractResponse(BaseModel):
269269
usage: TokenUsage
270270
metadata: dict
271271

272-
model_config = {"extra": "allow", "populate_by_name": True}
272+
model_config = ConfigDict(extra="allow", populate_by_name=True)
273273

274274

275275
class SearchResult(BaseModel):
@@ -278,15 +278,15 @@ class SearchResult(BaseModel):
278278
content: str
279279
provider: str | None = None
280280

281-
model_config = {"extra": "allow"}
281+
model_config = ConfigDict(extra="allow")
282282

283283

284284
class SearchMetadata(BaseModel):
285285
search: dict
286286
pages: dict
287287
chunker: ChunkerMetadata | None = None
288288

289-
model_config = {"extra": "allow"}
289+
model_config = ConfigDict(extra="allow")
290290

291291

292292
class SearchResponse(BaseModel):
@@ -296,7 +296,7 @@ class SearchResponse(BaseModel):
296296
usage: TokenUsage | None = None
297297
metadata: SearchMetadata
298298

299-
model_config = {"extra": "allow", "populate_by_name": True}
299+
model_config = ConfigDict(extra="allow", populate_by_name=True)
300300

301301

302302
class CrawlPage(BaseModel):
@@ -312,7 +312,7 @@ class CrawlPage(BaseModel):
312312
reason: str | None = None
313313
error: str | None = None
314314

315-
model_config = {"extra": "allow"}
315+
model_config = ConfigDict(extra="allow")
316316

317317

318318
class CrawlResponse(BaseModel):
@@ -323,7 +323,7 @@ class CrawlResponse(BaseModel):
323323
finished: int
324324
pages: list[CrawlPage]
325325

326-
model_config = {"extra": "allow"}
326+
model_config = ConfigDict(extra="allow")
327327

328328

329329
class TextChange(BaseModel):
@@ -359,7 +359,7 @@ class MonitorDiffs(BaseModel):
359359
summary: list[TextChange] | None = None
360360
branding: list[JsonChange] | None = None
361361

362-
model_config = {"extra": "allow", "populate_by_name": True}
362+
model_config = ConfigDict(extra="allow", populate_by_name=True)
363363

364364

365365
class WebhookStatus(BaseModel):
@@ -374,7 +374,7 @@ class MonitorResult(BaseModel):
374374
refs: dict
375375
webhook_status: WebhookStatus | None = None
376376

377-
model_config = {"extra": "allow"}
377+
model_config = ConfigDict(extra="allow")
378378

379379

380380
class MonitorResponse(BaseModel):
@@ -386,7 +386,7 @@ class MonitorResponse(BaseModel):
386386
created_at: str
387387
updated_at: str
388388

389-
model_config = {"extra": "allow"}
389+
model_config = ConfigDict(extra="allow")
390390

391391

392392
class HistoryEntry(BaseModel):
@@ -400,7 +400,7 @@ class HistoryEntry(BaseModel):
400400
params: dict
401401
result: dict
402402

403-
model_config = {"extra": "allow"}
403+
model_config = ConfigDict(extra="allow")
404404

405405

406406
class HistoryPagination(BaseModel):
@@ -413,7 +413,7 @@ class HistoryPage(BaseModel):
413413
data: list[HistoryEntry]
414414
pagination: HistoryPagination
415415

416-
model_config = {"extra": "allow"}
416+
model_config = ConfigDict(extra="allow")
417417

418418

419419
class JobsStatus(BaseModel):
@@ -432,7 +432,7 @@ class CreditsResponse(BaseModel):
432432
plan: str
433433
jobs: CreditsJobs
434434

435-
model_config = {"extra": "allow"}
435+
model_config = ConfigDict(extra="allow")
436436

437437

438438
class HealthServices(BaseModel):
@@ -445,4 +445,4 @@ class HealthResponse(BaseModel):
445445
uptime: int
446446
services: HealthServices | None = None
447447

448-
model_config = {"extra": "allow"}
448+
model_config = ConfigDict(extra="allow")

0 commit comments

Comments
 (0)