
    hp                       S SK Jr  S SKrS SKrS SKrS SKrS SKJr  S SKJ	r	J
r
JrJrJrJrJr   S SKJr   S SKJr  S SKrS S
KJrJrJr  SSKJrJ r!  SSK"J#r#J$r$J%r&J'r(J)r*  Sr+S r, " S S\RZ                  5      r " S S\5      r. " S S\5      r/ " S S\5      r0 " S S\5      r1 " S S\5      r2 " S S\5      r3 " S S\5      r4 " S  S!\5      r5 " S" S#\5      r6 " S$ S%\5      r7 " S& S'\5      r8 " S( S)\5      r9 " S* S+\5      r: " S, S-\5      r; " S. S/\5      r< " S0 S1\5      r= " S2 S3\5      r> " S4 S5\5      r? " S6 S7\5      r@ " S8 S9\5      rA " S: S;\5      rB " S< S\5      r " S= S>\5      rC " S? S@\C5      rD " SA SB\C5      rE " SC SD\C5      rF " SE SF\C5      rG " SG SH\5      rH " SI SJ\5      rI " SK SL\RZ                  5      rJ " SM SN\5      rK " SO SP\5      rL " SQ SR\5      rM " SS ST\5      rNSaSU jrOSbSV jrPSW rQSX rRSY rSSZ rTS[ rUS\ rVS] rWS^ rX " S_ S`5      rYg! \ a    \" SS0 5      r GNf = f! \ a    \" S	S0 5      r GNf = f)c    )annotationsN)Iterable)AnyFinalLiteralTupleTypeTypeVarUnion)	UnionTyper    )TypeAliasTyper   )	NODEFAULTUNSET	UnsetType   )Factoryto_builtins)_CONCRETE_TYPES_AnnotatedAliasget_class_annotationsget_dataclass_infoget_typeddict_info)%	type_infomulti_type_infor	   MetadataAnyTypeNoneTypeBoolTypeIntType	FloatTypeStrType	BytesTypeByteArrayTypeMemoryViewTypeDateTimeTypeTimeTypeDateTypeTimeDeltaTypeUUIDTypeDecimalTypeExtTypeRawTypeEnumTypeLiteralType
CustomTyper   CollectionTypeListTypeSetTypeFrozenSetTypeVarTupleType	TupleTypeDictTypeFieldTypedDictTypeNamedTupleTypeDataclassType
StructTypec                     [         $ N)__all__r       I/home/james-whalen/.local/lib/python3.13/site-packages/msgspec/inspect.py__dir__rB   T   s    Nr@   c                      \ rS rSrSrSrg)r	   X   zThe base Type.r   N__name__
__module____qualname____firstlineno____doc____static_attributes__r   r@   rA   r	   r	   X   s    r@   r	   c                  @    \ rS rSr% SrS\S'   SrS\S'   SrS\S'   S	rg)
r   \   a7  A type wrapping a subtype with additional metadata.

Parameters
----------
type: Type
    The subtype.
extra_json_schema: dict, optional
    A dict of extra fields to set for the subtype when generating a
    json-schema.
extra: dict, optional
    A dict of extra user-defined metadata attached to the subtype.
r	   typeNzUnion[dict, None]extra_json_schemaextrar   )	rF   rG   rH   rI   rJ   __annotations__rO   rP   rK   r   r@   rA   r   r   \   s%     J+/(/#E#r@   r   c                      \ rS rSrSrSrg)r   o   z%A type corresponding to `typing.Any`.r   NrE   r   r@   rA   r   r   o   s    /r@   r   c                      \ rS rSrSrSrg)r   s   zA type corresponding to `None`.r   NrE   r   r@   rA   r   r   s       )r@   r   c                      \ rS rSrSrSrg)r   w   zA type corresponding to `bool`.r   NrE   r   r@   rA   r   r   w   rV   r@   r   c                  `    \ rS rSr% SrSrS\S'   SrS\S'   SrS\S'   Sr	S\S'   Sr
S\S	'   S
rg)r    {   a  A type corresponding to `int`.

Parameters
----------
gt: int, optional
    If set, an instance of this type must be greater than ``gt``.
ge: int, optional
    If set, an instance of this type must be greater than or equal to ``ge``.
lt: int, optional
    If set, an instance of this type must be less than to ``lt``.
le: int, optional
    If set, an instance of this type must be less than or equal to ``le``.
multiple_of: int, optional
    If set, an instance of this type must be a multiple of ``multiple_of``.
NUnion[int, None]gtgeltlemultiple_ofr   rF   rG   rH   rI   rJ   r\   rQ   r]   r^   r_   r`   rK   r   r@   rA   r    r    {   s@       BBBB$(K!(r@   r    c                  `    \ rS rSr% SrSrS\S'   SrS\S'   SrS\S'   Sr	S\S'   Sr
S\S	'   S
rg)r!      a  A type corresponding to `float`.

Parameters
----------
gt: float, optional
    If set, an instance of this type must be greater than ``gt``.
ge: float, optional
    If set, an instance of this type must be greater than or equal to ``ge``.
lt: float, optional
    If set, an instance of this type must be less than to ``lt``.
le: float, optional
    If set, an instance of this type must be less than or equal to ``le``.
multiple_of: float, optional
    If set, an instance of this type must be a multiple of ``multiple_of``.
NzUnion[float, None]r\   r]   r^   r_   r`   r   ra   r   r@   rA   r!   r!      s@      "B!!B!!B!!B!&*K#*r@   r!   c                  D    \ rS rSr% SrSrS\S'   SrS\S'   SrS\S'   S	r	g)
r"      a  A type corresponding to `str`.

Parameters
----------
min_length: int, optional
    If set, an instance of this type must have length greater than or equal
    to ``min_length``.
max_length: int, optional
    If set, an instance of this type must have length less than or equal
    to ``max_length``.
pattern: str, optional
    If set, an instance of this type must match against this regex pattern.
    Note that the pattern is treated as **unanchored**.
Nr[   
min_length
max_lengthUnion[str, None]patternr   )
rF   rG   rH   rI   rJ   rf   rQ   rg   ri   rK   r   r@   rA   r"   r"      s*     $(J '#'J ' $G$r@   r"   c                  6    \ rS rSr% SrSrS\S'   SrS\S'   Srg)r#      a/  A type corresponding to `bytes`.

Parameters
----------
min_length: int, optional
    If set, an instance of this type must have length greater than or equal
    to ``min_length``.
max_length: int, optional
    If set, an instance of this type must have length less than or equal
    to ``max_length``.
Nr[   rf   rg   r   	rF   rG   rH   rI   rJ   rf   rQ   rg   rK   r   r@   rA   r#   r#          
 $(J '#'J 'r@   r#   c                  6    \ rS rSr% SrSrS\S'   SrS\S'   Srg)r$      a3  A type corresponding to `bytearray`.

Parameters
----------
min_length: int, optional
    If set, an instance of this type must have length greater than or equal
    to ``min_length``.
max_length: int, optional
    If set, an instance of this type must have length less than or equal
    to ``max_length``.
Nr[   rf   rg   r   rl   r   r@   rA   r$   r$      rm   r@   r$   c                  6    \ rS rSr% SrSrS\S'   SrS\S'   Srg)r%      a4  A type corresponding to `memoryview`.

Parameters
----------
min_length: int, optional
    If set, an instance of this type must have length greater than or equal
    to ``min_length``.
max_length: int, optional
    If set, an instance of this type must have length less than or equal
    to ``max_length``.
Nr[   rf   rg   r   rl   r   r@   rA   r%   r%      rm   r@   r%   c                  (    \ rS rSr% SrSrS\S'   Srg)r&      a[  A type corresponding to `datetime.datetime`.

Parameters
----------
tz: bool
    The timezone-requirements for an instance of this type. ``True``
    indicates a timezone-aware value is required, ``False`` indicates a
    timezone-aware value is required. The default is ``None``, which
    accepts either timezone-aware or timezone-naive values.
NUnion[bool, None]tzr   rF   rG   rH   rI   rJ   ru   rQ   rK   r   r@   rA   r&   r&          	 !B r@   r&   c                  (    \ rS rSr% SrSrS\S'   Srg)r'   i  aW  A type corresponding to `datetime.time`.

Parameters
----------
tz: bool
    The timezone-requirements for an instance of this type. ``True``
    indicates a timezone-aware value is required, ``False`` indicates a
    timezone-aware value is required. The default is ``None``, which
    accepts either timezone-aware or timezone-naive values.
Nrt   ru   r   rv   r   r@   rA   r'   r'     rw   r@   r'   c                      \ rS rSrSrSrg)r(   i  z(A type corresponding to `datetime.date`.r   NrE   r   r@   rA   r(   r(     s    2r@   r(   c                      \ rS rSrSrSrg)r)   i  z-A type corresponding to `datetime.timedelta`.r   NrE   r   r@   rA   r)   r)     s    7r@   r)   c                      \ rS rSrSrSrg)r*   i  z$A type corresponding to `uuid.UUID`.r   NrE   r   r@   rA   r*   r*     s    .r@   r*   c                      \ rS rSrSrSrg)r+   i  z*A type corresponding to `decimal.Decimal`.r   NrE   r   r@   rA   r+   r+     s    4r@   r+   c                      \ rS rSrSrSrg)r,   i!  z.A type corresponding to `msgspec.msgpack.Ext`.r   NrE   r   r@   rA   r,   r,   !  s    8r@   r,   c                      \ rS rSrSrSrg)r-   i%  z&A type corresponding to `msgspec.Raw`.r   NrE   r   r@   rA   r-   r-   %  s    0r@   r-   c                  $    \ rS rSr% SrS\S'   Srg)r.   i)  zvA type corresponding to an `enum.Enum` type.

Parameters
----------
cls: type
    The corresponding `enum.Enum` type.
ztyping_Type[enum.Enum]clsr   NrF   rG   rH   rI   rJ   rQ   rK   r   r@   rA   r.   r.   )  s     
 r@   r.   c                  $    \ rS rSr% SrS\S'   Srg)r/   i5  zA type corresponding to a `typing.Literal` type.

Parameters
----------
values: tuple
    A tuple of possible values for this literal instance. Only `str` or
    `int` literals are supported.
z'Union[Tuple[str, ...], Tuple[int, ...]]valuesr   Nr   r   r@   rA   r/   r/   5  s     43r@   r/   c                  $    \ rS rSr% SrS\S'   Srg)r0   iB  zSA custom type.

Parameters
----------
cls: type
    The corresponding custom type.
rN   r   r   Nr   r   r@   rA   r0   r0   B  s     
Ir@   r0   c                  8    \ rS rSr% SrS\S'   \SS j5       rSrg)	r   iN  zkA union type.

Parameters
----------
types: Tuple[Type, ...]
    A tuple of possible types for this union.
Tuple[Type, ...]typesc                :    [        S U R                   5       5      $ )zAA helper for checking whether ``None`` is included in this union.c              3  B   #    U  H  n[        U[        5      v   M     g 7fr>   )
isinstancer   ).0ts     rA   	<genexpr>*UnionType.includes_none.<locals>.<genexpr>\  s     ?Jq:a**Js   )anyr   )selfs    rA   includes_noneUnionType.includes_noneY  s     ?DJJ???r@   r   N)returnbool)	rF   rG   rH   rI   rJ   rQ   propertyr   rK   r   r@   rA   r   r   N  s#     @ @r@   c                  @    \ rS rSr% SrS\S'   SrS\S'   SrS\S'   S	rg)
r1   i_  a  A collection type.

This is the base type shared by collection types like `ListType`,
`SetType`, etc.

Parameters
----------
item_type: Type
    The item type.
min_length: int, optional
    If set, an instance of this type must have length greater than or equal
    to ``min_length``.
max_length: int, optional
    If set, an instance of this type must have length less than or equal
    to ``max_length``.
r	   	item_typeNr[   rf   rg   r   	rF   rG   rH   rI   rJ   rQ   rf   rg   rK   r   r@   rA   r1   r1   _  s$    " O#'J '#'J 'r@   r1   c                      \ rS rSrSrSrg)r2   iv  aS  A type corresponding to a `list`.

Parameters
----------
item_type: Type
    The item type.
min_length: int, optional
    If set, an instance of this type must have length greater than or equal
    to ``min_length``.
max_length: int, optional
    If set, an instance of this type must have length less than or equal
    to ``max_length``.
r   NrE   r   r@   rA   r2   r2   v      r@   r2   c                      \ rS rSrSrSrg)r5   i  a]  A type corresponding to a variadic `tuple`.

Parameters
----------
item_type: Type
    The item type.
min_length: int, optional
    If set, an instance of this type must have length greater than or equal
    to ``min_length``.
max_length: int, optional
    If set, an instance of this type must have length less than or equal
    to ``max_length``.
r   NrE   r   r@   rA   r5   r5     r   r@   r5   c                      \ rS rSrSrSrg)r3   i  aR  A type corresponding to a `set`.

Parameters
----------
item_type: Type
    The item type.
min_length: int, optional
    If set, an instance of this type must have length greater than or equal
    to ``min_length``.
max_length: int, optional
    If set, an instance of this type must have length less than or equal
    to ``max_length``.
r   NrE   r   r@   rA   r3   r3     r   r@   r3   c                      \ rS rSrSrSrg)r4   i  aX  A type corresponding to a `frozenset`.

Parameters
----------
item_type: Type
    The item type.
min_length: int, optional
    If set, an instance of this type must have length greater than or equal
    to ``min_length``.
max_length: int, optional
    If set, an instance of this type must have length less than or equal
    to ``max_length``.
r   NrE   r   r@   rA   r4   r4     r   r@   r4   c                  $    \ rS rSr% SrS\S'   Srg)r6   i  zA type corresponding to `tuple`.

Parameters
----------
item_types: Tuple[Type, ...]
    A tuple of types for each element in the tuple.
r   
item_typesr   Nr   r   r@   rA   r6   r6     s     ! r@   r6   c                  J    \ rS rSr% SrS\S'   S\S'   SrS\S'   SrS\S	'   S
rg)r7   i  at  A type corresponding to `dict`.

Parameters
----------
key_type: Type
    The key type.
value_type: Type
    The value type.
min_length: int, optional
    If set, an instance of this type must have length greater than or equal
    to ``min_length``.
max_length: int, optional
    If set, an instance of this type must have length less than or equal
    to ``max_length``.
r	   key_type
value_typeNr[   rf   rg   r   r   r   r@   rA   r7   r7     s*      N#'J '#'J 'r@   r7   c                      \ rS rSr% SrS\S'   S\S'   S\S'   SrS	\S
'   \R                  " S S9r	S\S'   \R                  " S S9r
S\S'   Srg)r8   i  a  A record describing a field in an object-like type.

Parameters
----------
name: str
    The field name as seen by Python code (e.g. ``field_one``).
encode_name: str
    The name used when encoding/decoding the field. This may differ if
    the field is renamed (e.g. ``fieldOne``).
type: Type
    The field type.
required: bool, optional
    Whether the field is required. Note that if `required` is False doesn't
    necessarily mean that `default` or `default_factory` will be set -
    optional fields may exist with no default value.
default: Any, optional
    A default value for the field. Will be `NODEFAULT` if no default value
    is set.
default_factory: Any, optional
    A callable that creates a default value for the field. Will be
    `NODEFAULT` if no ``default_factory`` is set.
strnameencode_namer	   rN   Tr   requiredc                     [         $ r>   r   r   r@   rA   <lambda>Field.<lambda>  s    r@   )default_factoryr   defaultc                     [         $ r>   r   r   r@   rA   r   r     s    r@   r   r   N)rF   rG   rH   rI   rJ   rQ   r   msgspecfieldr   r   rK   r   r@   rA   r8   r8     sK    . I
JHd==1BCGSC"==9JKOSKr@   r8   c                  .    \ rS rSr% SrS\S'   S\S'   Srg)	r9   i  zA type corresponding to a `typing.TypedDict` type.

Parameters
----------
cls: type
    The corresponding TypedDict type.
fields: Tuple[Field, ...]
    A tuple of fields in the TypedDict.
rN   r   Tuple[Field, ...]fieldsr   Nr   r   r@   rA   r9   r9          
Ir@   r9   c                  .    \ rS rSr% SrS\S'   S\S'   Srg)	r:   i  zA type corresponding to a `typing.NamedTuple` type.

Parameters
----------
cls: type
    The corresponding NamedTuple type.
fields: Tuple[Field, ...]
    A tuple of fields in the NamedTuple.
rN   r   r   r   r   Nr   r   r@   rA   r:   r:     r   r@   r:   c                  .    \ rS rSr% SrS\S'   S\S'   Srg)	r;   i  zA type corresponding to a `dataclasses` or `attrs` type.

Parameters
----------
cls: type
    The corresponding dataclass type.
fields: Tuple[Field, ...]
    A tuple of fields in the dataclass.
rN   r   r   r   r   Nr   r   r@   rA   r;   r;     r   r@   r;   c                  f    \ rS rSr% SrS\S'   S\S'   SrS\S	'   SrS
\S'   SrS\S'   Sr	S\S'   Sr
g)r<   i&  az  A type corresponding to a `msgspec.Struct` type.

Parameters
----------
cls: type
    The corresponding Struct type.
fields: Tuple[Field, ...]
    A tuple of fields in the Struct.
tag_field: str or None, optional
    If set, the field name used for the tag in a tagged union.
tag: str, int, or None, optional
    If set, the value used for the tag in a tagged union.
array_like: bool, optional
    Whether the struct is encoded as an array rather than an object.
forbid_unknown_fields: bool, optional
    If ``False`` (the default) unknown fields are ignored when decoding. If
    ``True`` any unknown fields will result in an error.
ztyping_Type[msgspec.Struct]r   r   r   Nrh   	tag_fieldzUnion[str, int, None]tagFr   
array_likeforbid_unknown_fieldsr   )rF   rG   rH   rI   rJ   rQ   r   r   r   r   rK   r   r@   rA   r<   r<   &  s@    & 
%$"&I&!%C	%J"'4'r@   r<   c                4    [        U 5      R                  5       $ )a  Get information about multiple msgspec-compatible types.

Parameters
----------
types: an iterable of types
    The types to get info about.

Returns
-------
tuple[Type, ...]

Examples
--------
>>> msgspec.inspect.multi_type_info([int, float, list[str]])  # doctest: +NORMALIZE_WHITESPACE
(IntType(gt=None, ge=None, lt=None, le=None, multiple_of=None),
 FloatType(gt=None, ge=None, lt=None, le=None, multiple_of=None),
 ListType(item_type=StrType(min_length=None, max_length=None, pattern=None),
          min_length=None, max_length=None))
)_Translatorrun)r   s    rA   r   r   B  s    ( u!!##r@   c                     [        U /5      S   $ )a  Get information about a msgspec-compatible type.

Note that if you need to inspect multiple types it's more efficient to call
`multi_type_info` once with a sequence of types than calling `type_info`
multiple times.

Parameters
----------
type: type
    The type to get info about.

Returns
-------
Type

Examples
--------
>>> msgspec.inspect.type_info(bool)
BoolType()

>>> msgspec.inspect.type_info(int)
IntType(gt=None, ge=None, lt=None, le=None, multiple_of=None)

>>> msgspec.inspect.type_info(list[int])  # doctest: +NORMALIZE_WHITESPACE
ListType(item_type=IntType(gt=None, ge=None, lt=None, le=None, multiple_of=None),
         min_length=None, max_length=None)
r   )r   )rN   s    rA   r   r   Y  s    8 D6"1%%r@   c                   / n  [         R                  " U 5      nUb  S nO[        U SS 5      nUb  [	        U 5      [
        L a%  UR                  S U R                   5       5        Un OU[        :X  a  U R                  S   n O[	        U5      [        L a  UR                  U R                     n O[[        U SS 5      n[         R                  " X"5      nO:[        U SS 5      nUb  Un O$[	        U 5      [        L a  U R                  n OU nS nOGM  [	        U5      [        L a  UR                  n[        nX#[        U5      4$ ! [         a    S n GN1f = f)N
__origin__c              3  b   #    U  H%  n[        U5      [        R                  L d  M!  Uv   M'     g 7fr>   )rN   r   Meta)r   ms     rA   r   (_origin_args_metadata.<locals>.<genexpr>  s!     U>aT!W=T>s    /	/r   __args____supertype__)r   get	TypeErrorgetattrrN   r   extend__metadata__r   r   _TypeAliasType	__value___types_UnionTyper   tuple)r   metadataoriginargs	supertypes        rA   _origin_args_metadatar   y  sD   H
	$((+F
 DL$/Aw/)U1>>UU5JJqMf/$$QZZ0q*d3(,,V<?D9I$aN*KKC F F|''x((G  	F	s   D= =EEc                J    [        U 5      [        [        R                  5      L $ r>   )rN   r   Structr   s    rA   
_is_structr     s    7d7>>***r@   c                8    [        U 5      [        R                  L $ r>   )rN   enumEnumMetar   s    rA   _is_enumr     s    7dmm##r@   c                    [        U S5      $ )N__dataclass_fields__hasattrr   s    rA   _is_dataclassr     s    1,--r@   c                    [        U S5      $ )N__attrs_attrs__r   r   s    rA   	_is_attrsr     s    1'((r@   c                j     [        U [        5      =(       a    [        U S5      $ ! [         a     gf = f)N	__total__F)
issubclassdictr   r   r   s    rA   _is_typeddictr     s2    !T">wq+'>>    "% 
22c                j     [        U [        5      =(       a    [        U S5      $ ! [         a     gf = f)N_fieldsF)r   r   r   r   r   s    rA   _is_namedtupler     s2    !U#=9(== r   c                   U(       a  U R                  5       n UR                  5        H  u  p#X ;   a  X   n[        U[        5      (       a$  [        U[        5      (       a  [	        XC5      X'   MG  [        U[
        [        45      (       a6  [        U[
        [        45      (       a  [        U5      [        U5      -   X'   M  X0U'   M  X0U'   M     U $ r>   )copyitemsr   r   _merge_jsonlistr   )abkeyb_vala_vals        rA   r   r     s    FFH'')JCxeT**z%/F/F(6AFe}55*D%=; ; "%[4;6AF"cF# $ Hr@   c                  H    \ rS rSrS rS rS rS r         S	S jrSr	g)
r   i  c                @    [        U5      U l        0 U l        0 U l        g r>   )r   r   
type_hintscache)r   r   s     rA   __init___Translator.__init__  s    5\

r@   c                x     U R                   U   $ ! [         a    [        U5      =o R                   U'   Us $ f = f)z+A cached version of `get_class_annotations`)r   KeyError_get_class_annotations)r   r   outs      rA   r  "_Translator._get_class_annotations  s@    	??1%% 	'=a'@@C//!$J	s    %99c                   ^  SSK Jn  U" [        T R                     5        [	        U 4S jT R                   5       5      $ )Nr   )MsgpackDecoderc              3  F   >#    U  H  nTR                  U5      v   M     g 7fr>   	translate)r   r   r   s     rA   r   "_Translator.run.<locals>.<genexpr>  s     ;
1T^^A&&
   !)_corer  r   r   r   )r   r  s   ` rA   r   _Translator.run  s,    )uTZZ();

;;;r@   c           	        [        U5      u  p#n0 n0 n0 nU H  nS H  n	[        X5      =n
c  M  XU	'   M     S H  n	[        X5      =n
c  M  XU	'   M     UR                  b  [        U[	        UR                  SS95      nUR
                  c  Mw  UR                  UR
                  5        M     U R                  " X#40 UD6nU(       d  U(       a  [        X=(       d    S U=(       d    S S9$ U$ )N)	r]   r\   r_   r^   r`   ri   rf   rg   ru   )titledescriptionexamplesT)str_keys)rO   rP   )	r   r   rO   r   _to_builtinsrP   update_translate_innerr   )r   typr   r   r   constrsrO   rP   metaattrvalr  s               rA   r  _Translator.translate  s    1#6 D
 #4..C;$'DM
 ="4..C;.1d+ = %%1$/% !7!7$G%! zz%TZZ(/ 2 ##A7w7 '@DQU  
r@   Nc                  ^ ^^^ T[         L a
  [        5       $ [        T[        5      (       a2  TR                  b  T R                  TR                  5      $ [        5       $ Tb  T[        S 5      L a
  [        5       $ T[        L a
  [        5       $ T[        L a  [        X4XVUS9$ T[        L a  [        X4XVUS9$ T[        L a
  [        XUS9$ T[         L a	  [#        XS9$ T[$        L a	  ['        XS9$ T[(        L a	  [+        XS9$ T[,        R,                  L a	  [/        US9$ T[,        R0                  L a	  [3        US9$ T[,        R4                  L a
  [7        5       $ T[,        R8                  L a
  [;        5       $ T[<        R>                  L a
  [A        5       $ T[B        RD                  L a
  [G        5       $ T[H        RJ                  L a
  [M        5       $ T[H        RN                  RP                  L a
  [S        5       $ T[T        L a.  [W        U(       a  T R                  US   5      O	[        5       U	U
S9$ T[X        L a.  [[        U(       a  T R                  US   5      O	[        5       U	U
S9$ T[\        L a.  [_        U(       a  T R                  US   5      O	[        5       U	U
S9$ T[`        L ao  US:X  a  SnUc  [c        [        5       XS9$ [e        U5      S:X  a%  US	   S
L a  [c        T R                  US   5      U	U
S9$ [g        [a        U 4S jU 5       5      5      $ T[h        L aR  [k        U(       a  T R                  US   5      O	[        5       U(       a  T R                  US   5      O	[        5       U	U
S9$ T[l        L a4  [a        U 4S jU 5       5      n[e        U5      S:X  a  US   $ [o        U5      $ T[p        L a  [s        [a        [u        U5      5      5      $ [w        T5      (       a  [y        T5      $ [{        T5      (       Ga  U(       a  TU   OTnUT R|                  ;   a  T R|                  U   $ TR~                  n[        USUR                  UR                  UR                  UR                  S9=T R|                  U'   nT R                  U5      m[e        TR                  5      [e        TR                  5      -
  n/ n[        TR                  TR                  [        4U-  TR                  -   5       H  u  nnnU[        L a  Sm[        =nnOC[        U[        5      (       a  Sm[        nUR                  nOSmU[        L a  [        OUn[        n[        UUT R                  TU   5      TUUS9nUR                  U5        M     [a        U5      UlP        U$ [        T5      (       a  U(       a  TU   OTnUT R|                  ;   a  T R|                  U   $ [        US5      =T R|                  U'   n[        U5      u  mm[a        UU 4S j[u        TR                  5       5       5       5      UlP        U$ [        T5      (       d  [        T5      (       Ga  U(       a  TU   OTnUT R|                  ;   a  T R|                  U   $ [        US5      =T R|                  U'   n[        U5      u  nnn  n[        4[e        U5      [e        U5      -
  -  U-   n/ n[        UU5       Hu  u  u  nnnnU[        L a  Sm[        =nnO+U(       a  Sm[        nUnOSmU[        L a  [        OUn[        nUR                  [        UUT R                  U5      TUUS95        Mw     [a        U5      UlP        U$ [        T5      (       a  U(       a  TU   OTnUT R|                  ;   a  T R|                  U   $ [        US5      =T R|                  U'   nT R                  U5      m[a        UU U4S jTR                   5       5      UlP        U$ [        T5      $ )N)r]   r\   r_   r^   r`   )rf   rg   ri   )rf   rg   )ru   r   )r   r      .c              3  F   >#    U  H  nTR                  U5      v   M     g 7fr>   r  r   r   r   s     rA   r   /_Translator._translate_inner.<locals>.<genexpr>m  s     &G$Qt~~a'8'8$r
  r   c              3  Z   >#    U  H   o[         Ld  M  TR                  U5      v   M"     g 7fr>   )
_UnsetTyper  r  s     rA   r   r   v  s%     PDqZ<O***Ds   ++)r   r   r   r   TF)r   r   rN   r   r   r   c              3  d   >#    U  H%  u  p[        UUTR                  U5      UT;   S 9v   M'     g7f))r   r   rN   r   N)r8   r  )r   r   
field_typer   r   s      rA   r   r     s>       )>$D  $
3!X-	 )>s   -0c              3     >#    U  H`  n[        UUTR                  TR                  U[        5      5      UTR                  ;  TR                  R                  U[
        5      S 9v   Mb     g7f))r   r   rN   r   r   N)r8   r  r   r   _field_defaultsr   )r   r   hintsr   r   s     rA   r   r     sb      	 &D  $		$(<=!):)::--11$	B &s   A(A+)]r   r   r   r
   	__bound__r  rN   r   r   r   intr    floatr!   r   r"   bytesr#   	bytearrayr$   
memoryviewr%   datetimer&   timer'   dater(   	timedeltar)   uuidUUIDr*   decimalDecimalr+   r   Rawr-   msgpackExtr,   r   r2   setr3   	frozensetr4   r   r5   lenr6   r   r7   r   r   r   r/   sortedr   r.   r   r   __struct_config__r<   r   r   r   r   r  __struct_fields____struct_defaults__zip__struct_encode_fields__r   _Factoryfactoryr   r8   appendr   r   r9   _get_typeddict_infor   r   r   r;   _get_dataclass_infor   r:   r   r0   )r   r   r   r]   r\   r_   r^   r`   ri   rf   rg   ru   r   configr  nposr   r   r   default_objr   r   r   _infodefaultsr  
is_factoryr'  r   s   ``                          @@rA   r  _Translator._translate_inner  s    897##{{&~~akk229Y!tDz/:$Y:#XbB;OO%Zb[QQ#X%g  %Z
JJ)^ JNN*_!ZOO(###2&&(--r?"(--:($$$ ?"$))^:'//!= '++9'//%%%9$Y+/tAw'WY%% 
 #X+/tAw'WY%% 
 )^ +/tAw'WY%% 
 %Z u}|#I*  TaDHO#NN47+))  !&G$&G!GHH$Y+/tAw'WY+/tAw'WY%%	  %ZPDPPD!$i1n47A)D/A'\uVD\233a[[A;]]!!D'qCdjj zz#&((F$. **JJ!,,&,&B&B% DJJsOc //4Eq**+c!2G2G.HHDF25##**t#a&;&;;3.k;
 )+#H099GoX66$H'G&1&9&9O$H+6%+?i[G&/O +d4%#$3 e$336 vCJJ1!!D'qCdjj zz#&$1#r$::DJJsOc1#6OE8  )/u{{}(= CJ J11!!D'qCdjj zz#&$1#r$::DJJsOc&9#&>#AtXq!"D	CM(ABhNHF8;D(8K4'sJ)+#H099Go$H'G&1O$H+6%+?i[G&/O!$(!^^C0!) '(7	 9L. vCJJA!!D'qCdjj zz#&$23$;;DJJsOc//4E 	 II	 	CJ Ja= r@   )r   r   r   )	NNNNNNNNN)
rF   rG   rH   rI   r   r  r   r  r  rK   r   r@   rA   r   r     s:    
<'Z Y!r@   r   )r   zIterable[Any]r   ztuple[Type, ...])rN   r   r   r	   )Z
__future__r   r.  r4  r   r2  collections.abcr   typingr   r   r   r   r	   typing_Typer
   r   r   r   r   	ExceptionrN   r   r   r   r   r   r   r"  r  r   rB  r   r  _utilsr   r   r   r  r   rF  r   rE  r?   rB   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r5   r3   r4   r6   r7   r8   r9   r:   r;   r<   r   r   r   r   r   r   r   r   r   r   r   r   r@   rA   <module>rU     s   "     $  1336  = = &R7>> $t $&0d 0*t **t *)d )0+ +0%d %*( ("(D ("(T ("!4 !!t !3t 38D 8/t /5$ 59d 91d 1	 t 	 
4$ 
4	 	@ @"(T (.~  >  n  N  	! 	!(t (.LGNN L@D T D ( (8$.&@))X+$.)&W! W!E  1KR01
  3/2r2N3s"   H( H? (H<;H<?II