o
    6d                     @   s  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d Zd$ddZdd Z dd Z!dd Z"dd Z#d d! Z$d"d# Z%dS )%    )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_wordsZBoolZDataFloatDoubler
   r   Arrayr   Dater   r   r   >!   listclassboolZ	subscriptfuncZuint32Z	typealiasprivatedoubleenumstructpublicZnsdatafloatprotocolZuint64ZdeinitstringZint64defaultZletZassociatedtypeimportZinternalvarZvoidZint32	extensiondescriptionZstaticinitoperatorZinout	timestampc                 C   sP   t | tr	J d| du rdS | du rdS | d u rdS | dkr!dS tj| d	d
S )NzOnly use for base type literalsTtrueFfalsenil z""r   )width)
isinstancedictpprintpformat)o r<   sC:\Users\jesus\OneDrive\Desktop\erpjis_fastapi\backend\jisbackend\Lib\site-packages\stone/backends/swift_helpers.pyfmt_objU   s   r>   Tc                 C   sH   dd t | D }|r|d  |d< d|}| tv r"|d7 }|S )Nc                 S   s   g | ]}|  qS r<   )
capitalize).0wordr<   r<   r=   
<listcomp>c   s    z%_format_camelcase.<locals>.<listcomp>r   r5   _)r   lowerjoin_reserved_words)namelower_firstwordsretr<   r<   r=   _format_camelcaseb   s   
rK   c                 C   s   t | ddS )NF)rH   rK   rG   r<   r<   r=   	fmt_classl   s   rN   c                 C   s    |dkr
d | |} t| } | S )Nr   z{}_v{})formatrK   )rG   versionr<   r<   r=   fmt_funcp   s   rQ   c                 C   sp   t | \} }t| rdt| jjt| j}nt| jt| j}t	| r0|dt
| j }|s4|S |d S )Nz{}.{}z<{}>?)r   r   rO   rN   	namespacerG   _type_tableget	__class__r   fmt_type	data_type)rX   Znullableresultr<   r<   r=   rW   w   s   rW   c                 C   s   t | S )NrL   rM   r<   r<   r=   fmt_var   s   rZ   c                 C   s   t |jrdt| jt|jjjt|jjS t|j	r#d|jS t
|j	r.d|jS t|j	r;dt|jS t|j	rM|jrFd}nd}d|S tdt|j	 )Nz {}.{}Serializer().serialize(.{})z
.array({})z.number({})z.str({})10z"Can't handle default value type %r)r   r*   rO   rN   rG   Zunion_data_typerZ   Ztag_namer   rX   r   r   r>   r   	TypeErrortype)rS   fieldZbool_strr<   r<   r=   fmt_default_value   s(   






r`   c                 C   sJ   i }| j D ]}t|j|j}||v r|| }td|||||< qdS )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)ZroutesrQ   rG   rP   RuntimeErrorrO   )rS   Zroute_by_nameZrouteZ
route_nameZother_router<   r<   r=   check_route_name_conflict   s   


rb   )T)&
__future__r   r   r   r   r9   Zstone.irr   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   helpersr   rT   rF   r>   rK   rN   rQ   rW   rZ   r`   rb   r<   r<   r<   r=   <module>   s4    T&

