26
26
OpenAIAPIConfigurationError ,
27
27
OpenAIAPIValueError ,
28
28
)
29
- from pydantic import Field , SecretStr , ValidationError , validator
29
+ from pydantic import Field , SecretStr , ValidationError , ValidationInfo , field_validator
30
30
from pydantic_settings import BaseSettings
31
31
32
32
@@ -400,25 +400,26 @@ class Config:
400
400
401
401
frozen = True
402
402
403
- @validator ("aws_profile" , pre = True )
403
+ @field_validator ("aws_profile" )
404
404
# pylint: disable=no-self-argument,unused-argument
405
405
def validate_aws_profile (cls , v , values , ** kwargs ) -> str :
406
406
"""Validate aws_profile"""
407
407
if v in [None , "" ]:
408
408
return SettingsDefaults .AWS_PROFILE
409
409
return v
410
410
411
- @validator ("aws_region" , pre = True )
411
+ @field_validator ("aws_region" )
412
412
# pylint: disable=no-self-argument,unused-argument
413
- def validate_aws_region (cls , v , values , ** kwargs ) -> str :
413
+ def validate_aws_region (cls , v , values : ValidationInfo , ** kwargs ) -> str :
414
414
"""Validate aws_region"""
415
+ valid_regions = values .data .get ("aws_regions" , [])
415
416
if v in [None , "" ]:
416
417
return SettingsDefaults .AWS_REGION
417
- if "aws_regions" in values and v not in values [ "aws_regions" ] :
418
+ if v not in valid_regions :
418
419
raise OpenAIAPIValueError (f"aws_region { v } not in aws_regions" )
419
420
return v
420
421
421
- @validator ("aws_apigateway_root_domain" , pre = True )
422
+ @field_validator ("aws_apigateway_root_domain" )
422
423
def validate_aws_apigateway_root_domain (cls , v ) -> str :
423
424
"""Validate aws_apigateway_root_domain"""
424
425
if v in [None , "" ]:
@@ -427,7 +428,7 @@ def validate_aws_apigateway_root_domain(cls, v) -> str:
427
428
raise OpenAIAPIValueError ("Invalid root domain name" )
428
429
return v
429
430
430
- @validator ("aws_apigateway_custom_domain_name" , pre = True )
431
+ @field_validator ("aws_apigateway_custom_domain_name" )
431
432
def validate_aws_apigateway_custom_domain_name (cls , v ) -> str :
432
433
"""Validate aws_apigateway_custom_domain_name"""
433
434
if v in [None , "" ]:
@@ -436,42 +437,42 @@ def validate_aws_apigateway_custom_domain_name(cls, v) -> str:
436
437
raise OpenAIAPIValueError ("Invalid custom domain name" )
437
438
return v
438
439
439
- @validator ("aws_apigateway_custom_domain_name" , pre = True )
440
+ @field_validator ("aws_apigateway_custom_domain_name" )
440
441
def validate_aws_apigateway_custom_domain_name_create (cls , v ) -> bool :
441
442
"""Validate aws_apigateway_custom_domain_name_create"""
442
443
if v in [None , "" ]:
443
444
return SettingsDefaults .AWS_APIGATEWAY_CUSTOM_DOMAIN_NAME_CREATE
444
445
return v
445
446
446
- @validator ("shared_resource_identifier" , pre = True )
447
+ @field_validator ("shared_resource_identifier" )
447
448
def validate_shared_resource_identifier (cls , v ) -> str :
448
449
"""Validate shared_resource_identifier"""
449
450
if v in [None , "" ]:
450
451
return SettingsDefaults .SHARED_RESOURCE_IDENTIFIER
451
452
return v
452
453
453
- @validator ("aws_dynamodb_table_id" , pre = True )
454
+ @field_validator ("aws_dynamodb_table_id" )
454
455
def validate_table_id (cls , v ) -> str :
455
456
"""Validate aws_dynamodb_table_id"""
456
457
if v in [None , "" ]:
457
458
return SettingsDefaults .AWS_DYNAMODB_TABLE_ID
458
459
return v
459
460
460
- @validator ("aws_rekognition_collection_id" , pre = True )
461
+ @field_validator ("aws_rekognition_collection_id" )
461
462
def validate_collection_id (cls , v ) -> str :
462
463
"""Validate aws_rekognition_collection_id"""
463
464
if v in [None , "" ]:
464
465
return SettingsDefaults .AWS_REKOGNITION_COLLECTION_ID
465
466
return v
466
467
467
- @validator ("aws_rekognition_face_detect_attributes" , pre = True )
468
+ @field_validator ("aws_rekognition_face_detect_attributes" )
468
469
def validate_face_detect_attributes (cls , v ) -> str :
469
470
"""Validate aws_rekognition_face_detect_attributes"""
470
471
if v in [None , "" ]:
471
472
return SettingsDefaults .AWS_REKOGNITION_FACE_DETECT_ATTRIBUTES
472
473
return v
473
474
474
- @validator ("debug_mode" , pre = True )
475
+ @field_validator ("debug_mode" )
475
476
def parse_debug_mode (cls , v ) -> bool :
476
477
"""Parse debug_mode"""
477
478
if isinstance (v , bool ):
@@ -480,7 +481,7 @@ def parse_debug_mode(cls, v) -> bool:
480
481
return SettingsDefaults .DEBUG_MODE
481
482
return v .lower () in ["true" , "1" , "t" , "y" , "yes" ]
482
483
483
- @validator ("dump_defaults" , pre = True )
484
+ @field_validator ("dump_defaults" )
484
485
def parse_dump_defaults (cls , v ) -> bool :
485
486
"""Parse dump_defaults"""
486
487
if isinstance (v , bool ):
@@ -489,14 +490,14 @@ def parse_dump_defaults(cls, v) -> bool:
489
490
return SettingsDefaults .DUMP_DEFAULTS
490
491
return v .lower () in ["true" , "1" , "t" , "y" , "yes" ]
491
492
492
- @validator ("aws_rekognition_face_detect_max_faces_count" , pre = True )
493
+ @field_validator ("aws_rekognition_face_detect_max_faces_count" )
493
494
def check_face_detect_max_faces_count (cls , v ) -> int :
494
495
"""Check aws_rekognition_face_detect_max_faces_count"""
495
496
if v in [None , "" ]:
496
497
return SettingsDefaults .AWS_REKOGNITION_FACE_DETECT_MAX_FACES_COUNT
497
498
return int (v )
498
499
499
- @validator ("aws_rekognition_face_detect_threshold" , pre = True )
500
+ @field_validator ("aws_rekognition_face_detect_threshold" )
500
501
def check_face_detect_threshold (cls , v ) -> int :
501
502
"""Check aws_rekognition_face_detect_threshold"""
502
503
if isinstance (v , int ):
@@ -505,14 +506,14 @@ def check_face_detect_threshold(cls, v) -> int:
505
506
return SettingsDefaults .AWS_REKOGNITION_FACE_DETECT_THRESHOLD
506
507
return int (v )
507
508
508
- @validator ("aws_rekognition_face_detect_quality_filter" , pre = True )
509
+ @field_validator ("aws_rekognition_face_detect_quality_filter" )
509
510
def check_face_detect_quality_filter (cls , v ) -> str :
510
511
"""Check aws_rekognition_face_detect_quality_filter"""
511
512
if v in [None , "" ]:
512
513
return SettingsDefaults .AWS_REKOGNITION_FACE_DETECT_QUALITY_FILTER
513
514
return v
514
515
515
- @validator ("langchain_memory_key" , pre = True )
516
+ @field_validator ("langchain_memory_key" )
516
517
def check_langchain_memory_key (cls , v ) -> str :
517
518
"""Check langchain_memory_key"""
518
519
if isinstance (v , int ):
@@ -521,21 +522,21 @@ def check_langchain_memory_key(cls, v) -> str:
521
522
return SettingsDefaults .LANGCHAIN_MEMORY_KEY
522
523
return v
523
524
524
- @validator ("openai_api_organization" , pre = True )
525
+ @field_validator ("openai_api_organization" )
525
526
def check_openai_api_organization (cls , v ) -> str :
526
527
"""Check openai_api_organization"""
527
528
if v in [None , "" ]:
528
529
return SettingsDefaults .OPENAI_API_ORGANIZATION
529
530
return v
530
531
531
- @validator ("openai_api_key" , pre = True )
532
+ @field_validator ("openai_api_key" )
532
533
def check_openai_api_key (cls , v ) -> SecretStr :
533
534
"""Check openai_api_key"""
534
535
if v in [None , "" ]:
535
536
return SettingsDefaults .OPENAI_API_KEY
536
537
return v
537
538
538
- @validator ("openai_endpoint_image_n" , pre = True )
539
+ @field_validator ("openai_endpoint_image_n" )
539
540
def check_openai_endpoint_image_n (cls , v ) -> int :
540
541
"""Check openai_endpoint_image_n"""
541
542
if isinstance (v , int ):
@@ -544,14 +545,14 @@ def check_openai_endpoint_image_n(cls, v) -> int:
544
545
return SettingsDefaults .OPENAI_ENDPOINT_IMAGE_N
545
546
return int (v )
546
547
547
- @validator ("openai_endpoint_image_size" , pre = True )
548
+ @field_validator ("openai_endpoint_image_size" )
548
549
def check_openai_endpoint_image_size (cls , v ) -> str :
549
550
"""Check openai_endpoint_image_size"""
550
551
if v in [None , "" ]:
551
552
return SettingsDefaults .OPENAI_ENDPOINT_IMAGE_SIZE
552
553
return v
553
554
554
- @validator ("pinecone_api_key" , pre = True )
555
+ @field_validator ("pinecone_api_key" )
555
556
def check_pinecone_api_key (cls , v ) -> SecretStr :
556
557
"""Check pinecone_api_key"""
557
558
if v in [None , "" ]:
0 commit comments