
    x
h                         d dl mZmZmZmZ d dlZd dlmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ ddlmZ edede	de
d	ed
ededededededediZh dZd ZddZd Z d Z!d Z"d Z#d Z$d Z%y)    )absolute_importdivisionprint_functionunicode_literalsN)BooleanBytesFloat32Float64Int32Int64ListString	TimestampUInt32UInt64Voidis_boolean_typeis_list_typeis_numeric_typeis_string_type
is_tag_refis_user_defined_typeunwrap_nullable   )split_wordsBoolDataFloatDoubler   r   Arrayr   Dater   r   r   >!   letvarboolenumfuncinitlistvoidclassinoutint32int64deinitdoubleimportpublicstaticstringstructuint32uint64defaultprivateinternaloperatorprotocol	extension	subscript	timestamp	typealiasdescriptionnsdatafloatassociatedtypec                     t        | t              rJ d       | du ry| du ry| y| dk(  ryt        j                  | d	
      S )NzOnly use for base type literalsTtrueFfalsenil z""r   )width)
isinstancedictpprintpformat)os    a/var/www/html/lionshead-backend/venv/lib/python3.12/site-packages/stone/backends/swift_helpers.pyfmt_objrO   U   sO    !T"E$EE"DyEzyBw>>!1%%    c                     t        |       D cg c]  }|j                          }}|r|d   j                         |d<   dj                  |      }|j                         t        v r|dz  }|S c c}w )Nr   rG   _)r   
capitalizelowerjoin_reserved_words)namelower_firstwordwordsrets        rN   _format_camelcaser\   b   si    +6t+<=+<4T__+<E=8>>#a
''%.C
yy{o%s
J >s   A-c                     t        | d      S )NF)rX   r\   rW   s    rN   	fmt_classr`   l   s    Tu55rP   c                 J    |dkD  rdj                  | |      } t        |       } | S )Nr   z{}_v{})formatr\   )rW   versions     rN   fmt_funcrd   p   s(    {tW-T"DKrP   c                    t        |       \  } }t        |       rCdj                  t        | j                  j
                        t        | j
                              }net        j                  | j                  t        | j
                              }t        |       r'|dj                  t        | j                              z   }|s|S |dz   S )Nz{}.{}z<{}>?)r   r   rb   r`   	namespacerW   _type_tableget	__class__r   fmt_type	data_type)rl   nullableresults      rN   rk   rk   w   s    ))4IxI&	)*=*=*B*B C )).. 9; !4!4i	6OP	"fmmHY5H5H,IJJF!63v|3rP   c                     t        |       S )Nr^   r_   s    rN   fmt_varrp      s    T""rP   c                    t        |j                        rjdj                  t        | j                        t        |j                  j
                  j                        t        |j                  j                              S t        |j                        rdj                  |j                        S t        |j                        rdj                  |j                        S t        |j                        r$dj                  t        |j                              S t        |j                        r"|j                  rd}nd}dj                  |      S t        dt        |j                        z        )Nz {}.{}Serializer().serialize(.{})z
.array({})z.number({})z.str({})10z"Can't handle default value type %r)r   r7   rb   r`   rW   union_data_typerp   tag_namer   rl   r   r   rO   r   	TypeErrortype)rg   fieldbool_strs      rN   fmt_default_valuerz      s   %-- 188inn%emm33889EMM**+- 	- 
eoo	&""5==11		)##EMM22		(  !788		)==HH##H--=U__-. / 	/rP   c                     i }| j                   D ]K  }t        |j                  |j                        }||v r ||   }t	        dj                  ||            |||<   M y)z
    Check name conflicts among generated route definitions. Raise a runtime exception when a
    conflict is encountered.
    z.There is a name conflict between {!r} and {!r}N)routesrd   rW   rc   RuntimeErrorrb   )rg   route_by_nameroute
route_nameother_routes        rN   check_route_name_conflictr      si     M!!ejj%--8
&'
3K@GGUZ[] ]$)j! "rP   )T)&
__future__r   r   r   r   rK   stone.irr   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   helpersr   rh   rV   rO   r\   r`   rd   rk   rp   rz   r    rP   rN   <module>r      s    R R      * ! V	6WX	7	7'
Hv
H
H&#L
&64#/,*rP   