
    h                        S r SSKJr  SSKJrJrJrJr  SSKJ	r	  SSK
JrJr  \(       a+  SSKJrJr  SS	KJr  SS
KJr  SSKJr  \\\/\4   r\\/\4   r " S S\5      r " S S\5      rg)zATypes and utility functions used by various other internal tools.    )annotations)TYPE_CHECKINGAnyCallableLiteral)core_schema   )GetCoreSchemaHandlerGetJsonSchemaHandler)GenerateJsonSchemaJsonSchemaValue   )CoreSchemaOrField)GenerateSchema)NamespacesTuplec                  6    \ rS rSrSrSS jrS	S jrS
S jrSrg)GenerateJsonSchemaHandler   a?  JsonSchemaHandler implementation that doesn't do ref unwrapping by default.

This is used for any Annotated metadata so that we don't end up with conflicting
modifications to the definition schema.

Used internally by Pydantic, please do not rely on this implementation.
See `GetJsonSchemaHandler` for the handler API.
c                f    Xl         U=(       d    UR                  U l        UR                  U l        g N)generate_json_schemagenerate_innerhandlermode)selfr   handler_overrides      ^/var/www/html/env/lib/python3.13/site-packages/pydantic/_internal/_schema_generation_shared.py__init__"GenerateJsonSchemaHandler.__init__   s(    $8!'N+?+N+N(--	    c               $    U R                  U5      $ r   )r   )r   r   s     r   __call__"GenerateJsonSchemaHandler.__call__$   s    ||K((r    c                z    SU;  a  U$ US   nU R                   R                  U5      nUc  [        SU S35      eU$ )a*  Resolves `$ref` in the json schema.

This returns the input json schema if there is no `$ref` in json schema.

Args:
    maybe_ref_json_schema: The input json schema that may contains `$ref`.

Returns:
    Resolved json schema.

Raises:
    LookupError: If it can't find the definition for `$ref`.
z$refCould not find a ref for K. Maybe you tried to call resolve_ref_schema from within a recursive model?)r   get_schema_from_definitionsLookupError)r   maybe_ref_json_schemarefjson_schemas       r   resolve_ref_schema,GenerateJsonSchemaHandler.resolve_ref_schema'   sa     ..((#F+//KKCP+C5 1] ]  r    )r   r   r   N)r   r   r   zHandlerOverride | NonereturnNone)r   r   r.   r   )r)   r   r.   r   )	__name__
__module____qualname____firstlineno____doc__r   r"   r,   __static_attributes__ r    r   r   r      s    .
)r    r   c                  r    \ rS rSrSr S       SS jjrSS jrSS jrSS jr\	SS j5       r
SS jrS	rg
)CallbackGetCoreSchemaHandlerA   zWrapper to use an arbitrary function as a `GetCoreSchemaHandler`.

Used internally by Pydantic, please do not rely on this implementation.
See `GetCoreSchemaHandler` for the handler API.
c                (    Xl         X l        X0l        g r   )_handler_generate_schema	_ref_mode)r   r   generate_schemaref_modes       r   r   %CallbackGetCoreSchemaHandler.__init__H   s       /!r    c                   U R                  U5      nU R                  S:X  a;  UR                  S5      nUb%  U R                  R                  R                  U5      $ U$ U R                  U5      $ )Nto-defr*   )r;   r=   getr<   defs"create_definition_reference_schemar,   )r   source_typeschemar*   s       r   r"   %CallbackGetCoreSchemaHandler.__call__R   sc    {+>>X%**U#C,,11TTU[\\M**622r    c                .    U R                   R                  $ r   )r<   _types_namespacer   s    r   _get_types_namespace1CallbackGetCoreSchemaHandler._get_types_namespace\   s    $$555r    c               8    U R                   R                  U5      $ r   )r<   r>   )r   rF   s     r   r>   ,CallbackGetCoreSchemaHandler.generate_schema_   s    $$44[AAr    c                J    U R                   R                  R                  5       $ r   )r<   field_name_stackrC   rK   s    r   
field_name'CallbackGetCoreSchemaHandler.field_nameb   s    $$5599;;r    c                    US   S:X  a>  US   nU R                   R                  R                  U5      nUc  [        SU S35      eU$ US   S:X  a  U R	                  US   5      $ U$ )zResolves reference in the core schema.

Args:
    maybe_ref_schema: The input core schema that may contains reference.

Returns:
    Resolved core schema.

Raises:
    LookupError: If it can't find the definition for reference.
typezdefinition-ref
schema_refr%   r&   definitionsrG   )r<   rD   get_schema_from_refr(   r,   )r   maybe_ref_schemar*   
definitions       r   r,   /CallbackGetCoreSchemaHandler.resolve_ref_schemaf   s     F#'77"<0C..33GGLJ!!/u 5a a  f%6**+;H+EFFr    )r<   r;   r=   N)rB   )r   z'Callable[[Any], core_schema.CoreSchema]r>   r   r?   zLiteral['to-def', 'unpack']r.   r/   )rF   r   r.   core_schema.CoreSchema)r.   r   )r.   z
str | None)rY   r\   r.   r\   )r0   r1   r2   r3   r4   r   r"   rL   r>   propertyrR   r,   r5   r6   r    r   r8   r8   A   s`     19	"8" (" .	"
 
"36B < < r    r8   N)r4   
__future__r   typingr   r   r   r   pydantic_corer   annotated_handlersr
   r   r+   r   r   _core_utilsr   r<   r   _namespace_utilsr   GetJsonSchemaFunctionHandlerOverrider   r8   r6   r    r   <module>rf      sl    G " 8 8 % KA.01$&79M%NP_%_` 12OCDO) 4 )X< #7 < r    