+
    7*iF  c                   s   R t ^ RIt^ RIt^ RIt^ RIHt ^ RIHt  ^ RIHt ^ RI
HtHtHtHtHtHtHtHtHtHtHt ^ RIHt ^ RIHt ^ RIHtHtHtHt ^ R	IH t  ^ R
I!H"t" ^ RI#H$t$H%t%H&t&H't' ^ RI(H)t)H*t* ^ RI+H,t, ]'       d5   ^ RI(H-t- ^ RI.H/t/H0t0 ]! RRR7      t1]]R,          R3,          t2 ! R R4      t3. REOt4]! R4      t5]Pl                  RF8  dt   ]! ]Pn                  ]$3R7      ]RRRRRRRRRRRRRRR RR!RR"R#/
R$ R% ll4       4       t8]! ]Pn                  ]$3R7      ]RRRRRRRRRRRRRRR RR!RR"R#/
R& R' ll4       4       t8Mn]! ]Pn                  ]$3R7      ]RRRRRRRRRRRRRRR RR!R/	R( R) ll4       4       t8]! ]Pn                  ]$3R7      ]RRRRRRRRRRRRRRR RR!R/	R* R+ ll4       4       t8]! ]Pn                  ]$3R7      RGRRRRRRRRRRRRRRR RR!RR"R/
R, R- lll4       t8]R. R/ l4       t9 ! R0 R4      t:R1 R2 lt;R3 R4 lt<R5 R6 lt=]R3R7 R8 llt>]Pl                  RH8  d   R9 R: lt?MR; R< lt?R= R> lt@R? R@ ltARA RB ltBRC RD ltCR#   ]	 d     EL;i ; i)IaX  
The main purpose is to enhance stdlib dataclasses by adding validation
A pydantic dataclass can be generated from scratch or from a stdlib one.

Behind the scene, a pydantic dataclass is just like a regular one on which we attach
a `BaseModel` and magic methods to trigger the validation of the data.
`__init__` and `__post_init__` are hence overridden and have extra logic to be
able to validate input data.

When a pydantic dataclass is generated from scratch, it's just a plain dataclass
with validation triggered at initialization

The tricky part if for stdlib dataclasses that are converted after into pydantic ones e.g.

```py
@dataclasses.dataclass
class M:
    x: int

ValidatedM = pydantic.dataclasses.dataclass(M)
```

We indeed still want to support equality, hashing, repr, ... as if it was the stdlib one!

```py
assert isinstance(ValidatedM(x=1), M)
assert ValidatedM(x=1) == M(x=1)
```

This means we **don't want to create a new dataclass that inherits from it**
The trick is to create a wrapper around `M` that will act as a proxy to trigger
validation without altering default `M` behaviour.
N)contextmanager)wraps)cached_property)TYPE_CHECKINGAnyCallableClassVarDict	GeneratorOptionalTypeTypeVarUnionoverload)dataclass_transform)gather_all_validators)
BaseConfig
ConfigDictExtra
get_config)ValidationError)DataclassTypeError)Field	FieldInfoRequired	Undefined)create_modelvalidate_model)ClassAttribute)	BaseModel)CallableGeneratorNoArgAnyCallable
DataclassT	Dataclass)ZboundDataclassProxyc                   sv   a  ] tR t^Bt o V 3R lR lt]V 3R lR l4       t]V 3R lR l4       tV 3R ltRt	V t
R	# )
r!   c                s*   < V ^8  d   QhRS[ RS[ RR/# )   argskwargsreturnN)objectformat__classdict__   "</usr/lib/python3.14/site-packages/pydantic/v1/dataclasses.py__annotate__Dataclass.__annotate__P   s"     	 	& 	F 	t 	    c                    R # N selfr$   r%      &*,r,   __init__ZDataclass.__init__P   s    r/   c                2   < V ^8  d   QhRS[ R,          RR/# )r#   clsr!   r&   r   r
   r(   r+   r,   r-   r.   T   s!     	 	D$5 	:M 	r/   c                r0   r1   r2   r8      &r,   __get_validators__ZDataclass.__get_validators__S       r/   c                s8   < V ^8  d   QhRS[ R,          RS[RR/# r#   r8   r    vr&   r
   r   r(   r+   r,   r-   r.   X   s'     	 	d<0 	S 	\ 	r/   c                r0   r1   r2   r8   r?      &&r,   __validate__ZDataclass.__validate__W   r=   r/   c                sl  < V ^8  d   Qh/ S[ S[S[S[3,          ,          ;R&   S[ S[,          ;R&   S[ S[R,          ,          ;R&   S[ S[,          ;R&   S[ S[R,          ,          ;R&   S[ S[,          ;R&   S[ S[S[,          ,          ;R&   S[ S[R	.R3,          ,          ;R
&   S[ S[,          ;R&   # )r#   __dataclass_fields____dataclass_params__N__post_init____pydantic_run_validation____post_init_post_parse____pydantic_initialised____pydantic_model__r!   __pydantic_validate_values__#__pydantic_has_field_info_default__).N)r   r   strr   r   boolr
   r   r(   r+   r,   r-   r.   B   s     &tCH~66  'sm+    344	  &.d^3  #+8I+>"??  #+4.0  %T)_55  '/xt8K/L&MM  .6d^; r/   r2   N)__name__
__module____qualname____firstlineno__r6   classmethodr<   rC   Z__annotate_func____static_attributes____classdictcell__r*      @r,   r!   r!   B   s>     	 	 
	 
	 
	 
	-  r/   _T)Zfield_specifiersinitTrepreqorderFunsafe_hashfrozenconfigvalidate_on_init	use_proxykw_only.c                s4   V ^8  d   QhR\         R\         R\         R\         R\         R\         R\        \        \        \        ,          R3,          R	\
        \         ,          R
\
        \         ,          R\         R\        \        \        ,          .R3,          /# )r#   rY   rZ   r[   r\   r]   r^   r_   Nr`   ra   rb   r&   DataclassClassOrWrapperrN   r   r   r
   r'   r	   r   rX   r)      "r,   r-   r-   j   s        	
    j$v,45 #4. D>  
48*77	8r/   c        
         r0   r1   r2   )
rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   s
   $$$$$$$$$$r,   	dataclassrg   h        	r/   c                s   V ^8  d   QhR\         \        ,          R\        R\        R\        R\        R\        R\        R\        \        \         \
        ,          R	3,          R
\        \        ,          R\        \        ,          R\        RR/# r#   _clsrY   rZ   r[   r\   r]   r^   r_   Nr`   ra   rb   r&   rc   r
   rX   rN   r   r   r'   r	   re   rf   r,   r-   r-   {   s      2h  	
     j$v,45 #4. D>  
#r/   c       
         r0   r1   r2   )rj   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   s   &$$$$$$$$$$r,   rg   rg   y   s      	r/   c                s(   V ^8  d   QhR\         R\         R\         R\         R\         R\         R\        \        \        \        ,          R3,          R	\
        \         ,          R
\
        \         ,          R\        \        \        ,          .R3,          /
# )r#   rY   rZ   r[   r\   r]   r^   r_   Nr`   ra   r&   rc   rd   re   rf   r,   r-   r-      s        	
    j$v,45 #4. D> 
48*77	8r/   c        	         r0   r1   r2   )	rY   rZ   r[   r\   r]   r^   r_   r`   ra   s	   $$$$$$$$$r,   rg   rg      s     	r/   c                s   V ^8  d   QhR\         \        ,          R\        R\        R\        R\        R\        R\        R\        \        \         \
        ,          R	3,          R
\        \        ,          R\        \        ,          RR/# )r#   rj   rY   rZ   r[   r\   r]   r^   r_   Nr`   ra   r&   rc   rk   re   rf   r,   r-   r-      s      2h  	
     j$v,45 #4. D> 
#r/   c       	         r0   r1   r2   )
rj   rY   rZ   r[   r\   r]   r^   r_   r`   ra   s
   &$$$$$$$$$r,   rg   rg      rh   r/   c                s   V ^8  d   QhR\         \        \        ,          ,          R\        R\        R\        R\        R\        R\        R\        \
        \        \        ,          R	3,          R
\         \        ,          R\         \        ,          R\        R\        \        \        \        ,          .R3,          R3,          /# ri   )r	   r
   rX   rN   r   r   r'   r   re   rf   r,   r-   r-      s     > >
48
> > 	>
 	> > > > *d6lD01> tn> ~> > 8T"XJ 99:<UUV>r/   c       
        sl   aaaaaaaa	a
a \        V4      oR VVVV
VVVVV	V3
R llpV f   V# V! V 4      # )z
Like the python standard lib dataclasses but with type validation.
The result is either a pydantic dataclass that will validate input data
or a wrapper that will trigger validation around a stdlib dataclass
to avoid modifying it directly
c                s>    V ^8  d   QhR\         \        ,          RR/# )r#   r8   r&   rc   r@   re   rf   r,   r-   Zdataclass.<locals>.__annotate__   s     # #$s) # 9 #r/   c                 sl  <
 Se   SMm\        V 4      ;'       d\    V P                  ^ ,          \        J ;'       g;    \        \	        V 4      4      \        \	        V P                  ^ ,          4      4      8H  pV'       d   Rp\        V 4      pRpMiV P                  ;'       g    Rp\        P                  R8  d    \        P                  ! V SSSS
SSS	R7      pM\        P                  ! V SSSS
SSR7      pRpSf   TMSp\        V SWR4       VP                  P                  ! R/ V P                  V /B  V# )N F)rY   rZ   r[   r\   r]   r^   rb   )rY   rZ   r[   r\   r]   r^   T   i
   r2   )is_builtin_dataclassZ	__bases__r'   setZdirr"   __doc__sysversion_infodataclassesrg   #_add_pydantic_validation_attributesrJ   Z__try_update_forward_refs__rO   )r8   Zshould_use_proxy
dc_cls_docdc_clsZdefault_validate_on_initZshould_validate_on_initr[   r^   rY   rb   r\   rZ   
the_configr]   ra   r`   s   &     r,   wrapZdataclass.<locals>.wrap   s1    $  %S) ` `]]1%/^^3s3x=CCMMZ[L\H]D^3^ 	 J#C(F',$**J7*$.. +!#	 %..d"E{ci (,$>N>V":\l+C=Ta!!==Ts@STr/   )r   )rj   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   ry   rx   s   &dddddd$ddd @r,   rg   rg      s6    * F#J# # #J |:r/   c          	      st    V ^8  d   QhR\         R,          R\        R\        \         R,          RR3,          /# )r#   r8   r    valuer&   N)r
   rN   r   re   rf   r,   r-   r-      s>     B B\* B4 BId<FXZ^`dFd<e Br/   c              #   s^   "   V P                   p Wn         V x  W n         R #   Y n         i ; i5ir1   )rG   )r8   rz   Zoriginal_run_validations   && r,   set_validationr{      s/     !==B*/'	*A'*A's   -
" -*-c                   s   a  ] tR t^t o RtV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR	 ltV 3R
 lR lt	V 3R lR lt
V 3R lR ltRtV tR# )r"   __dataclass__c                r7   )r#   rw   r!   r&   Nr9   r(   r+   r,   r-   DataclassProxy.__annotate__   s      : :tK0 :T :r/   c                s4    \         P                  V R V4       R# )r|   N)r'   __setattr__)r4   rw   rB   r,   r6   ZDataclassProxy.__init__   s    4&9r/   c                s,   < V ^8  d   QhRS[ RS[ RS[ /# )r#   r$   r%   r&   r   r(   r+   r,   r-   r}     s"     7 7c 7S 7S 7r/   c                s    \        V P                  R 4      ;_uu_ 4        V P                  ! V/ VB uuRRR4       #   + '       g   i     R# ; i)TN)r{   r|   r3   r5   r,   __call__ZDataclassProxy.__call__  s7    D..55%%t6v6 6555s	   <A	c                &   < V ^8  d   QhRS[ RS[/# )r#   namer&   rM   r   r(   r+   r,   r-   r}     s     1 1 1 1r/   c                s.    \        V P                  V4      # r1   )getattrr|   )r4   r   rB   r,   __getattr__ZDataclassProxy.__getattr__  s    t))400r/   c                s*   < V ^8  d   QhRS[ RS[RR/# )r#   _DataclassProxy__name_DataclassProxy__valuer&   Nr   r(   r+   r,   r-   r}     s"     < <# < < <r/   c                s.    \        V P                  W4      # r1   )setattrr|   )r4   r   r   s   &&&r,   r~   ZDataclassProxy.__setattr__  s    t))6;;r/   c                r   )r#   instancer&   )r   rN   r(   r+   r,   r-   r}     s     8 8# 8$ 8r/   c                s,    \        WP                  4      # r1   )
isinstancer|   )r4   r   rB   r,   __instancecheck__Z DataclassProxy.__instancecheck__  s    ($6$677r/   c                s   < V ^8  d   QhRR/# )r#   r&   r"   r2   r(   r+   r,   r-   r}     s     = =* =r/   c                sT    \        \        P                  ! V P                  4      4      # r1   )r"   copyr|   )r4   r;   r,   __copy__ZDataclassProxy.__copy__  s    dii(:(:;<<r/   c                s$   < V ^8  d   QhRS[ RR/# )r#   memor&   r"   r   r(   r+   r,   r-   r}     s      G G G)9 Gr/   c                sV    \        \        P                  ! V P                  V4      4      # r1   )r"   r   Zdeepcopyr|   )r4   r   rB   r,   __deepcopy__ZDataclassProxy.__deepcopy__  s    dmmD,>,>EFFr/   r2   N)rO   rP   rQ   rR   Z	__slots__r6   r   r   r~   r   r   r   rT   rU   rV   rW   r,   r"   r"      sR     I: :7 71 1< <8 8= =G Gr/   c          
      sp    V ^8  d   QhR\         R,          R\         \        ,          R\        R\        RR/# )r#   rw   r!   r_   r`   rv   r&   N)r
   r   rN   rM   re   rf   r,   r-   r-     sR     SO SOSOSO SO 	SO
 
SOr/   c           	     sB  aaaa V P                   o\        S4      R VV3R ll4       o\        V R4      '       dK    V P                  P                  o\        S4      R VV3R ll4       p\        V RS4       \        V RV4       M$\        S4      R V3R ll4       p\        V RV4       \        V R	\        R	V4      4       \        V R
R4       \        V R\        V SV4      4       \        V R\        4       \        V R\        \        4      4       \        V R\        \        4      4       V P                  P                  P                  '       d2   V P                   P"                  '       g   \        V R\$        4       R# R# R#   \
         d    T P                  o ELKi ; i)z
We need to replace the right method. If no `__post_init__` has been set in the stdlib dataclass
it won't even exist (code is generated on the fly by `dataclasses`)
By default, we run validation after `__init__` or `__post_init__` if defined
c                8    V ^8  d   QhRRR\         R\         RR/# r#   r4   r!   r$   r%   r&   Nr   re   rf   r,   r-   9_add_pydantic_validation_attributes.<locals>.__annotate__#  s(     
( 
( 
(C 
(3 
(4 
(r/   c           
      s$  < SP                   \        P                  8X  dC   S! V .VO5/ VP                  4        UUu/ uF  w  r4W0P                  9   g   K  W4bK  	  uppB  R # SP                   \        P
                  8X  dw   VP                  4        F   w  r4V P                  P                  W44       K"  	  S! V .VO5/ VP                  4        UUu/ uF  w  r4W0P                  9   g   K  W4bK  	  uppB  R # S! V .VO5/ VB  R # u uppi u uppi r1   )Zextrar   ZignoreitemsrD   Zallow__dict__Z
setdefault)r4   r$   r%   kr?   r_   rY   s   &*,  r,   handle_extra_initZ>_add_pydantic_validation_attributes.<locals>.handle_extra_init"  s    <<5<<'dd&,,. c.$!AIbIbDb. cd\\U[[(((. 'dd&,,. c.$!AIbIbDb. cd ''' !d
 !ds   DDD*DrF   c                r   r   r   re   rf   r,   r-   r   6  s(     
	1 
	1 
	1C 
	13 
	14 
	1r/   c                 s   < SP                   R 8X  d   S! V .VO5/ VB  V P                  P                  '       d5   V P                  4        \	        V R4      '       d   V P
                  ! V/ VB  SP                   R8X  d   S! V .VO5/ VB  R# R# )Zbefore_validationrH   Zafter_validationN)Zpost_init_call	__class__rG   rK   hasattrrH   )r4   r$   r%   r_   	post_inits   &*,r,   new_post_initZ:_add_pydantic_validation_attributes.<locals>.new_post_init5  s    $$(;;$000~~9991134!;<<114B6B$$(::$000 ;r/   r6   c                r   r   r   re   rf   r,   r-   r   H  s.     	E 	E; 	Es 	Ec 	Ed 	Er/   c                 s&  < S! V .VO5/ VB  V P                   P                  '       d   V P                  4        \        V R 4      '       d   / p\	        V P                   P
                  P                  4       4       F:  w  rEVP                  \        P                  J g   K%   W,          W5P                  &   K<  	  V P                  ! R/ VB  R# R#   \         d7    TP                  TP                  TP                  4      Y5P                  &    K  i ; i)rH   Nr2   )r   rG   rK   r   Z	enumeraterD   ZvaluesZ_field_typert   Z_FIELD_INITVARr   Z
IndexErrorgetdefaultrH   )r4   r$   r%   Zinitvars_and_valuesZiZfr   s   &*,   r,   new_initZ5_add_pydantic_validation_attributes.<locals>.new_initG  s    d4T4V4~~999113t788
 79#%dnn&I&I&P&P&RSDA}}(B(BBX:>'/7	 T --D0CD 9  * X:@**QVVQYY:W/7Xs   !C=DDrG   rI   FrJ   rK   rC   r<   r~   N)r6   r   r   rF   Z__wrapped__ZAttributeErrorr   r   $create_pydantic_model_from_dataclass_dataclass_validate_valuesrS   _validate_dataclass_get_validatorsrJ   
__config__Zvalidate_assignmentrE   r^   &_dataclass_validate_assignment_setattr)	rw   r_   r`   rv   r   r   r   rY   r   s	   &f&&  @@@r,   ru   ru     sz    ??D
4[
( 
( 
( v''	-,,88I 
y	
	1 
	1 

	1 	
$567 
t	E 
	E, 	
H-F1>B_aq3rsF.6F(*NvW]_i*jkF24NOFNK0C$DEF(+o*FG  ++???HcHcHjHjHj'MN Ik?k  	-,,I	-s   F FFc                     V ^8  d   QhRRRR/# )r#   r8   rc   r&   r   r2   re   rf   r,   r-   r-   k  s      2 7J r/   c              #   s*   "   V P                   x  R # 5ir1   )rC   r:   r;   r,   r   r   k  s     


s   c                sB    V ^8  d   QhR\         R,          R\        RR/# r>   r@   re   rf   r,   r-   r-   o  s&     
> 
>T,/ 
>C 
>L 
>r/   c                 s   \        V R 4      ;_uu_ 4        \        W4      '       d   VP                  4        VuuRRR4       # \        V\        \        34      '       d   V ! V!  uuRRR4       # \        V\
        4      '       d   V ! R/ VB uuRRR4       # \        V P                  R7      h  + '       g   i     R# ; i)TN)Z
class_namer2   )r{   r   rK   ZlistZtupledictr   rO   rA   rB   r,   r   r   o  s    	T	"	"a**, 
#	" D%=))7 
#	" 4  88 
#	" %== 
#	"	"s   #B-!B-/B-B--B>	c          	      s    V ^8  d   QhR\         R,          R\         \        ,          R\        \        ,          R\         R,          /# )r#   rw   r!   r_   rv   r&   r   )r
   r   r	   rM   re   rf   r,   r-   r-   |  sB     $ $$I$ $ 
+	$r/   c                 sj   / p\         P                  ! V 4       F  p\        pR pVP                  \         P                  Jd   VP                  pM1VP
                  \         P                  Jd   VP
                  pM\        p\        V\        4      '       d   TpRV n	        M\        RRVRV/VP                  B pVP                  V3W4P                  &   K  	  \        V 4      p\        V P                   3RVRV P"                  RVRRR	//VB p	Ve	   W)n        V	# V P$                  ;'       g    R
V	n        V	# )NTr   default_factoryr   rP   Z__validators__Z__cls_kwargs__Z__resolve_forward_refs__Frl   r2   )rt   Zfieldsr   r   ZMISSINGr   r   r   r   rL   r   Zmetadatatyper   r   r   rO   rP   rq   )
rw   r_   rv   Zfield_definitionsfieldr   r   Z
field_infoZ
validatorsZmodels
   &&&       r,   r   r   |  s=   
 )+##F+ 8< == 3 33mmG""+*=*==#33OGgy)) J9=F6bwbbSXSaSabJ).Z(@**%% ,( 'v.J+   $$  "	 
 3E:   E #-"8JML ?Enn>R>RPREMLr/   c                4    V ^8  d   QhRRR\         R\        /# r#   objr!   r   r&   rM   rN   re   rf   r,   r-   r-     s&     H H{ Hs Ht Hr/   c                 sJ    \        \        \        V 4      VR 4      \        4      # r1   )r   r   r   r   r   r   rB   r,   _is_field_cached_propertyr     s    '$s)Q5GGr/   c                r   r   r   re   rf   r,   r-   r-     s!      { s t r/   c                 r0   )Fr2   r   rB   r,   r   r     s    r/   c                r   )r#   r4   r!   r&   Nr2   re   rf   r,   r-   r-     s     ? ?[ ?T ?r/   c                 s^   \        V R 4      '       d   R# \        V RR4      '       dZ   V P                  P                  4        UUu/ uF2  w  r\        V\        4      '       d   K  \        W4      '       d   K0  WbK4  	  pppM@V P                  P                  4        UUu/ uF  w  r\        W4      '       d   K  WbK  	  ppp\        V P                  W0P                  R7      w  rEpV'       d   VhV P                  P                  V4       \        P                  V R R4       R# u uppi u uppi )rI   NrL   Fr:   T)r   r   r   r   r   r   r   rJ   r   Zupdater'   r~   )r4   r   r?   Z
input_datadZ_Zvalidation_errors   &      r,   r   r     s     t/00t:EBB
 ++-
-q), 0I$0R AD- 	 

 (,}}':':'<g'<tqD]^bDfdad'<
g+D,C,CZUcUcdA
MM
t7>
 hs   D#$D#7D#D)8D)c                s8    V ^8  d   QhRRR\         R\        RR/# )r#   r4   r!   r   rz   r&   Nr   re   rf   r,   r-   r-     s*     
* 
* 
*C 
*PS 
*X\ 
*r/   c                 s|   V P                   '       d   \        V P                  4      pVP                  VR 4       V P                  P
                  P                  VR 4      pV'       d?   VP                  W#WP                  R7      w  r%V'       d   \        V.V P                  4      h\        P                  WV4       R # )N)Zlocr8   )rI   r   r   ZpoprJ   Z
__fields__r   Zvalidater   r   r'   r~   )r4   r   rz   r   Zknown_fieldZerror_s   &&&   r,   r   r     s    $$$	dD--88<<T4H'00t0XME%vh??
t5)r/   c                sF    V ^8  d   QhR\         \        ,          R\        /# )r#   rj   r&   )r
   r   rN   re   rf   r,   r-   r-     s      tCy T r/   c           	     s    \         P                  ! V 4      ;'       dR    \        V R4      '       * ;'       d9    \        V P                  4      P                  \        \        V R/ 4      4      4      # )aw  
Whether a class is a stdlib dataclass
(useful to discriminated a pydantic dataclass that is actually a wrapper around a stdlib dataclass)

we check that
- `_cls` is a dataclass
- `_cls` is not a processed pydantic dataclass (with a basemodel attached)
- `_cls` is not a pydantic dataclass inheriting directly from a stdlib dataclass
e.g.
```
@dataclasses.dataclass
class A:
    x: int

@pydantic.dataclasses.dataclass
class B(A):
    y: int
```
In this case, when we first check `B`, we make an extra check and look at the annotations ('y'),
which won't be a superset of all the dataclass fields (only the stdlib fields i.e. 'x')
rJ   Z__annotations__)rt   Zis_dataclassr   rp   rD   Z
issupersetr   )rj   r;   r,   ro   ro     sf    . 	  & 	a 	a233	a 	a))*55c'$HY[]:^6_`r/   c                sX    V ^8  d   QhR\         R,          R\         \        ,          RR/# )r#   rw   r!   r_   r&   r   )r
   r   re   rf   r,   r-   r-     s1     Q QT+%6 QZ@P QUh Qr/   c              #  sN   "   \        \        WRR7      4       Rj  xL
  R#  L5i)z
Create a pydantic.dataclass from a builtin dataclass to add type validation
and yield the validators
It retrieves the parameters of the dataclass and forwards them to the newly created dataclass
T)r_   ra   N)r   rg   )rw   r_   rB   r,   make_dataclass_validatorr     s      y$OPPPs   %#%)rg   r{   r   ro   r   rm   r1   )rn   i   )Drq   r   rt   rr   Z
contextlibr    Z	functoolsr   r   ZImportErrorZtypingr   r   r   r   r   r   r	   r
   r   r   r   Ztyping_extensionsr   Zpydantic.v1.class_validatorsr   Zpydantic.v1.configr   r   r   r   Zpydantic.v1.error_wrappersr   Zpydantic.v1.errorsr   Zpydantic.v1.fieldsr   r   r   r   Zpydantic.v1.mainr   r   Zpydantic.v1.utilsr   r   Zpydantic.v1.typingr   r   r    rc   r!   Z__all__rX   rs   r   rg   r{   r"   ru   r   r   r   r   r   r   ro   r   r2   r/   r,   <module>r      s   B   
 % 	)
 u t t t 1 > H H 6 1 D D 9 ,*F[9J#D$57G$GH 4 T]w;+<+<e*DE  	
  "  9= ,0 %)   F ;+<+<e*DE  	
   "  9= ,0 %)   F$ ;+<+<e*DE  	
  "  9= ,0 %)  F ;+<+<e*DE  	
   "  9= ,0 %)  F  {'8'8%&@A> > 	>
 > > > > 59> (,> !%> > B>B B BG G4SOl
> # $$N vH
?,
*:QI  		s   I II