@@ -480,6 +480,7 @@ impl ErrorType {
480480 }
481481
482482 pub fn message_template_python ( & self ) -> & ' static str {
483+ #[ allow( clippy:: match_same_arms) ] // much nicer to have the messages explicitly listed
483484 match self {
484485 Self :: NoSuchAttribute { ..} => "Object has no attribute '{attribute}'" ,
485486 Self :: JsonInvalid { ..} => "Invalid JSON: {error}" ,
@@ -636,12 +637,24 @@ impl ErrorType {
636637 } ;
637638 match self {
638639 Self :: NoSuchAttribute { attribute, .. } => render ! ( tmpl, attribute) ,
639- Self :: JsonInvalid { error, .. } => render ! ( tmpl, error) ,
640+ Self :: JsonInvalid { error, .. }
641+ | Self :: GetAttributeError { error, .. }
642+ | Self :: IterationError { error, .. }
643+ | Self :: DatetimeObjectInvalid { error, .. }
644+ | Self :: UrlParsing { error, .. }
645+ | Self :: UuidParsing { error, .. } => render ! ( tmpl, error) ,
646+ Self :: MappingType { error, .. }
647+ | Self :: DateParsing { error, .. }
648+ | Self :: DateFromDatetimeParsing { error, .. }
649+ | Self :: TimeParsing { error, .. }
650+ | Self :: DatetimeParsing { error, .. }
651+ | Self :: DatetimeFromDateParsing { error, .. }
652+ | Self :: TimeDeltaParsing { error, .. }
653+ | Self :: UrlSyntaxViolation { error, .. } => render ! ( tmpl, error) ,
640654 Self :: NeedsPythonObject { method_name, .. } => render ! ( tmpl, method_name) ,
641- Self :: GetAttributeError { error, .. } => render ! ( tmpl, error) ,
642- Self :: ModelType { class_name, .. } => render ! ( tmpl, class_name) ,
643- Self :: DataclassType { class_name, .. } => render ! ( tmpl, class_name) ,
644- Self :: DataclassExactType { class_name, .. } => render ! ( tmpl, class_name) ,
655+ Self :: ModelType { class_name, .. }
656+ | Self :: DataclassType { class_name, .. }
657+ | Self :: DataclassExactType { class_name, .. } => render ! ( tmpl, class_name) ,
645658 Self :: GreaterThan { gt, .. } => to_string_render ! ( tmpl, gt) ,
646659 Self :: GreaterThanEqual { ge, .. } => to_string_render ! ( tmpl, ge) ,
647660 Self :: LessThan { lt, .. } => to_string_render ! ( tmpl, lt) ,
@@ -666,26 +679,18 @@ impl ErrorType {
666679 let actual_length = actual_length. map_or ( Cow :: Borrowed ( "more" ) , |v| Cow :: Owned ( v. to_string ( ) ) ) ;
667680 to_string_render ! ( tmpl, field_type, max_length, actual_length, expected_plural, )
668681 }
669- Self :: IterationError { error, .. } => render ! ( tmpl, error) ,
670- Self :: StringTooShort { min_length, .. } => {
682+ Self :: StringTooShort { min_length, .. } | Self :: BytesTooShort { min_length, .. } => {
671683 let expected_plural = plural_s ( * min_length) ;
672684 to_string_render ! ( tmpl, min_length, expected_plural)
673685 }
674- Self :: StringTooLong { max_length, .. } => {
686+ Self :: StringTooLong { max_length, .. }
687+ | Self :: BytesTooLong { max_length, .. }
688+ | Self :: UrlTooLong { max_length, .. } => {
675689 let expected_plural = plural_s ( * max_length) ;
676690 to_string_render ! ( tmpl, max_length, expected_plural)
677691 }
678692 Self :: StringPatternMismatch { pattern, .. } => render ! ( tmpl, pattern) ,
679693 Self :: Enum { expected, .. } => to_string_render ! ( tmpl, expected) ,
680- Self :: MappingType { error, .. } => render ! ( tmpl, error) ,
681- Self :: BytesTooShort { min_length, .. } => {
682- let expected_plural = plural_s ( * min_length) ;
683- to_string_render ! ( tmpl, min_length, expected_plural)
684- }
685- Self :: BytesTooLong { max_length, .. } => {
686- let expected_plural = plural_s ( * max_length) ;
687- to_string_render ! ( tmpl, max_length, expected_plural)
688- }
689694 Self :: BytesInvalidEncoding {
690695 encoding,
691696 encoding_error,
@@ -709,33 +714,18 @@ impl ErrorType {
709714 ..
710715 } => PydanticCustomError :: format_message ( message_template, context. as_ref ( ) . map ( |c| c. bind ( py) ) ) ,
711716 Self :: LiteralError { expected, .. } => render ! ( tmpl, expected) ,
712- Self :: DateParsing { error, .. } => render ! ( tmpl, error) ,
713- Self :: DateFromDatetimeParsing { error, .. } => render ! ( tmpl, error) ,
714- Self :: TimeParsing { error, .. } => render ! ( tmpl, error) ,
715- Self :: DatetimeParsing { error, .. } => render ! ( tmpl, error) ,
716- Self :: DatetimeFromDateParsing { error, .. } => render ! ( tmpl, error) ,
717- Self :: DatetimeObjectInvalid { error, .. } => render ! ( tmpl, error) ,
718717 Self :: TimezoneOffset {
719718 tz_expected, tz_actual, ..
720719 } => to_string_render ! ( tmpl, tz_expected, tz_actual) ,
721- Self :: TimeDeltaParsing { error, .. } => render ! ( tmpl, error) ,
722- Self :: IsInstanceOf { class, .. } => render ! ( tmpl, class) ,
723- Self :: IsSubclassOf { class, .. } => render ! ( tmpl, class) ,
720+ Self :: IsInstanceOf { class, .. } | Self :: IsSubclassOf { class, .. } => render ! ( tmpl, class) ,
724721 Self :: UnionTagInvalid {
725722 discriminator,
726723 tag,
727724 expected_tags,
728725 ..
729726 } => render ! ( tmpl, discriminator, tag, expected_tags) ,
730727 Self :: UnionTagNotFound { discriminator, .. } => render ! ( tmpl, discriminator) ,
731- Self :: UrlParsing { error, .. } => render ! ( tmpl, error) ,
732- Self :: UrlSyntaxViolation { error, .. } => render ! ( tmpl, error) ,
733- Self :: UrlTooLong { max_length, .. } => {
734- let expected_plural = plural_s ( * max_length) ;
735- to_string_render ! ( tmpl, max_length, expected_plural)
736- }
737728 Self :: UrlScheme { expected_schemes, .. } => render ! ( tmpl, expected_schemes) ,
738- Self :: UuidParsing { error, .. } => render ! ( tmpl, error) ,
739729 Self :: UuidVersion { expected_version, .. } => to_string_render ! ( tmpl, expected_version) ,
740730 Self :: DecimalMaxDigits { max_digits, .. } => {
741731 let expected_plural = plural_s ( * max_digits) ;
0 commit comments