
     i                        d dl mZmZ d dlZd dlmZmZmZmZ ddl	m
Z
 ddlmZmZ ddlmZmZ ddlmZmZmZmZmZmZmZmZmZmZ d	efd
Zd	ee         fdZde
ded	eeef         fdZ de
deded	eeef         fdZ!de
dededed	eeef         f
dZ"de
dededed	eeef         f
dZ#de
dededed	eeef         f
dZ$dS )    )is_dataclassMISSINGN)AnyDictOptionalType   )AbstractFactory)get_dataclass_fieldsget_typeddict_fields)SchemaUnknown)
hasargsis_iterableis_dictis_enumis_generic_concreteis_noneis_tupleis_typeddictis_union
is_literalreturnc                     | t           t          t          t          t          j        fv rdS t          |           rdS t          |           rdS t          |           rdS t          |           rt          |           S dS )NFT)intstrboolfloatdecimalDecimalr   r   r   r   r   clss    d/root/.openclaw/workspace/.venvs/songid/lib/python3.11/site-packages/dataclass_factory/jsonschema.pyneed_refr$      s{    
sCugo666us|| u# u}} u3 !C   4    c                 @   t          |           rdS | t          fv rdS | t          t          j        fv rdS | t
          fv rdS | t          fv rdS t          |           rdS t          |           st          |           rdS t          |           st          |           rd S dS )Nnullintegernumberstringbooleanobjectarray)r   r   r   r   r    r   r   r   r   r   r   r   r!   s    r#   get_typer.      s    s|| v
sf}}y	(	(	(x	x	y	 x	# +c** w	# '#,, t8r%   factoryjson_schema_definitions_pathc                     t          |           r|                    |           }dd| d| iS |                    |           S )Nz$ref#/)r$   json_schema_ref_namejson_schema)class_r/   r0   refs       r#   type_or_refr8   1   sY      B**622@8@@3@@AAv&&&r%   schemar"   c                     i }|j         t          j        k    rd|d<   n7|j         t          j        t          j        fv rnt          d|j                    |S )NFadditionalPropertiesz$Cannot generate schema with unknown=)unknownr   FORBIDSKIPSTORENotImplementedError)r/   r9   r"   ress       r#   r<   r<   :   s]     C~''&+"##	GL'-8	8	8!"Y"Y"YZZZJr%   c                    i }t          ||          }|j        r?t          d |j                                        D                       rt	          d          i |d<   |                    t          | ||                     |D ]O}t          |j        | |          |d         |j	        <   |j
        t          ur|j
        |d         |j	                 d<   P|j        rd |D             |d<   |S )Nc              3   @   K   | ]}t          |t                    V  d S N
isinstancetuple.0keys     r#   	<genexpr>z$typed_dict_schema.<locals>.<genexpr>M   ,      "b"bc:c5#9#9"b"b"b"b"b"br%   &Schema flattening is not yet supported
propertiesdefaultc                     g | ]	}|j         
S  )	data_namerI   fs     r#   
<listcomp>z%typed_dict_schema.<locals>.<listcomp>X   s'     
 
 
AK
 
 
r%   required)r   name_mappinganyvaluesr@   updater<   r8   typerR   rO   r   	__total__r/   r9   r"   r0   rA   fieldsrT   s          r#   typed_dict_schemar_   G   s    C!&#..F Ls"b"bVEXE_E_EaEa"b"b"bbb L!"JKKKCJJww,,--- B B)4FG9*
 *
L!+& 9G##89	Cak*95
} 

 
!'
 
 
J Jr%   c                    i }t          ||          }|j        r?t          d |j                                        D                       rt	          d          i |d<   |                    t          | ||                     |D ]w}t          |j        | |          |d         |j	        <   |j
        t          urC|j        r< |                     |j                  |j
                  |d         |j	                 d<   xd |D             |d<   |S )Nc              3   @   K   | ]}t          |t                    V  d S rD   rE   rH   s     r#   rK   z#dataclass_schema.<locals>.<genexpr>d   rL   r%   rM   rN   rO   c                 8    g | ]}|j         t          u |j        S rQ   )rO   r   rR   rS   s     r#   rU   z$dataclass_schema.<locals>.<listcomp>n   s-       qyG';';';';';r%   rV   )r   rW   rX   rY   r@   rZ   r<   r8   r[   rR   rO   r   
serializerr]   s          r#   dataclass_schemard   ^   s3    C!&#..F Ls"b"bVEXE_E_EaEa"b"b"bbb L!"JKKKCJJww,,--- ^ ^)4FG9*
 *
L!+& 9G###8R8J8J168R8RSTS\8]8]Cak*95 #  C
O Jr%   c                      |t           u ri S i }|j        r
|j        |d<   |j        r
|j        |d<   t          |          }|r||d<   |t          fv rn*|t
          t          t          t          fv rnt          |          rd |D             |d<   nt          |          r!t          |j        d                    |d<   nt          |          rut          |          rdt          |j                  dk    r5|j        d         t           u r!t          |j        d	                    |d
<   nQ fd|j        D             |d
<   n8t#          |          s#t%          |          r:t#          |j                  r&|                    t+           ||                     nt-          |          r t          |j        d	                    |d
<   nt/          |          r fd|j        D             |d<   nt1          |          r$t3           fd|j        D                       |d<   nWt5          |          s#t%          |          r9t5          |j                  r%|                    t7           ||                     |S )Ntitledescriptionr[   c                     g | ]	}|j         
S rQ   )value)rI   xs     r#   rU   z!create_schema.<locals>.<listcomp>   s    ,,,1qw,,,r%   enumr	   r;      r   itemsc                 2    g | ]}t          |          S rQ   r8   rI   rj   r/   r0   s     r#   rU   z!create_schema.<locals>.<listcomp>   s6            7,HII     r%   c                 2    g | ]}t          |          S rQ   ro   rp   s     r#   rU   z!create_schema.<locals>.<listcomp>   s6     
 
 
 7$@AA
 
 
r%   anyOfc              3   n   K   | ]/}                      t          |                    |          V  0d S rD   )rc   r[   )rI   rj   r/   s     r#   rK   z create_schema.<locals>.<genexpr>   sB      PPa67--d1gg66q99PPPPPPr%   )r   namerg   r.   r   r   r   complexr   r   r   r8   __args__r   r   lenEllipsisr   r   
__origin__rZ   r_   r   r   r   listr   rd   )r/   r9   r"   r0   rA   type_s   `  `  r#   create_schemar|   t   s    czz	C{ #{G 0#/MSMME F
sg~~	eWd+	+	+	 Y,,,,,F	 Y&1LOW&B'
 '
"## 
# Y3<< 		3<  A%%#,q/X*E*E*LOW.J   G          \     G 
c		 Y2377 YL<X<X Y

$Wfc;WXXYYYY	S		 Y"LOW&B
 
G 
# Y
 
 
 
 
\
 
 
G 
C YPPPP3<PPPPPF	c		 Y2377 YL<X<X Y

#GVS:VWWXXXJr%   )%dataclassesr   r   r   typingr   r   r   r   commonr
   r^   r   r   r9   r   r   type_detectionr   r   r   r   r   r   r   r   r   r   r   r$   r   r.   r8   r<   r_   rd   r|   rQ   r%   r#   <module>r      s   - - - - - - - -  , , , , , , , , , , , , # # # # # # > > > > > > > > # # # # # # # #                       T    Xc]    ('$'DG'	#s(^' ' ' '

&,
37
	#s(^
 
 
 
&,37"% 
#s(^   .&,37"% 
#s(^   ,44&,4374"%4 
#s(^4 4 4 4 4 4r%   