
    x
h1                     X   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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edi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edi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!e	de
dedededededededi	Z"ee	e
eeeeeeh	Z#h dZ$ddhZ%d Z&d@d Z'd! Z(dAd"Z)d# Z*d$ Z+d% Z,dBd&Z-d' Z.dCd(Z/dDd)Z0d* Z1d+ Z2d, Z3d- Z4d. Z5d/ Z6d0 Z7d1 Z8d2 Z9d3 Z:d4 Z;dEd5Z<d6 Z=d7 Z>d8 Z?dFd9Z@d: ZAd; ZBd< ZCd= ZDdEd>ZEd? ZFy)G    )absolute_importdivisionprint_functionunicode_literalsN)BooleanBytesFloat32Float64Int32Int64ListMapString	TimestampUInt32UInt64Voidis_boolean_typeis_list_typeis_map_typeis_numeric_typeis_string_type
is_tag_refis_user_defined_typeis_void_typeunwrap_nullable   )split_wordsz
NSNumber *z
NSString *NSArrayNSDictionaryzNSDate *voidBOOLdoubleintlongzunsigned intzunsigned longDBBoolSerializerDBStringSerializerDBNSNumberSerializerDBArraySerializerDBMapSerializerDBNSDateSerializernumericValidatorarrayValidatormapValidatorstringValidator>2   doidifforr$   autocasecharelseenumgotor%   r!   weakbreakconstfloatshortunionwhiledeleter#   externretainreturnsignedsizeofstaticstrongstructswitchCGFloat_PackeddefaulttypedefNSNumberNSObjectcontinuepropertyprotocolregisterunsignedvolatile	NSInteger	interface	nonatomic	readwritedescriptionimplementationunsafe_unretainedcopynewc                 x    t        | t              rJ d       | du ry| du ry| yt        j                  | d      S )	NzOnly use for base type literalsTtrueFfalsenilr   )width)
isinstancedictpprintpformat)os    a/var/www/html/lionshead-backend/venv/lib/python3.12/site-packages/stone/backends/obj_c_helpers.pyfmt_objrk      sE    !T"E$EE"DyEzy>>!1%%    c                    t        |       } t        |       D cg c]  }|j                          }}|s|d   j                         |d<   dj	                  |      }|rh|j                         t
        v r|dz  }t        D ]D  }|j                         j                  |      s#|sdnd}||d   j                         z   |dd  z   }F |S c c}w )Nr    _dDr   )	strr   
capitalizelowerjoin_reserved_words_reserved_prefixes
startswithupper)nameupper_firstreservedwordwordsretreserved_prefix
new_prefixs           rj   	fmt_camelr      s    t9D+6t+<=+<4T__+<E=8>>#a
''%.C99;/)3JC1Oyy{%%o6(3S
 3q6<<>1CG;	  2
 J >s   Cc                     dj                  t        |j                  j                        t	        |j                        t	        |             S )NzDB{}{}{})formatfmt_class_caps	namespacerz   fmt_camel_upper)
field_namer?   s     rj   fmt_enum_namer      s<    u++,

#_Z%@B Brl   c                     t        | d|      S )NT)r{   r|   r   )rz   r|   s     rj   r   r      s    Tth??rl   c                     t        |       S Nr   rz   s    rj   fmt_public_namer          4  rl   c                     t        |       S r   r   r   s    rj   	fmt_classr      r   rl   c                 4    t        |       j                         S r   )r   ry   r   s    rj   r   r      s    4 &&((rl   c                 &   t        |       \  } }t        |       rdj                  t        |             }|S t        j                  | j                  t        | j                              }|r$|j                  dd      }|j                  dd      }t        |       r7t        | j                        \  } }|dj                  t        |             z   }|S t        |       r5t        | j                        \  } }|dj                  t        |             z   }|S )N{}z *rn   *<{}><NSString *, {}>)r   r   r   fmt_class_prefix_primitive_tableget	__class__r   rz   replacer   	data_typefmt_typer   value_data_type)r   suppress_ptrro   results       rj   fmt_class_typer      s    "9-LIqI&-i89 M "%%i&9&9&/	&?A ^^D"-F^^C,F	"*9+>+>?LIqfmmHY,?@@F M #*9+D+DELIq0778KLLFMrl   c                     t        |       S r   r   r   s    rj   fmt_funcr          T?rl   c                    t        |       \  } }t        |       r!|rdnd}|j                  t        |             }nt        j                  | j                  t        | j                              }t        |       r<t        | j                        \  } }|rdnd}||j                  t        |             z   }nFt        |       r;t        | j                        \  } }|rdnd}||j                  t        |             z   }|r|s|r|sd|z   }|S )Nr   {} *r   <{}> *r   z<NSString *, {}> *	nullable )r   r   r   r   r   r   r   r   rz   r   r   r   r   r   )	r   taghas_defaultno_ptris_propnullablebaser   ro   s	            rj   r   r      s    ))4IxI&t6-i89!%%i&9&9&/	&?A 	"*9+>+>?LIq#6Ddkk(9*=>>F#*9+D+DELIq)/%5IDdkk(9*=>>F
W 6)FMrl   c                 &   t        |       \  } }t        |       rdj                  t        |             }nt        j                  | j                  t        | j                              }t        |       r6t        | j                        \  } }|dj                  t        |             z   }n@t        |       r5t        | j                        \  } }|dj                  t        |             z   }t        |       r|r|s|rd|z   }|S t        |       s|dz  }|S )Nr   r   r   r   rn   )r   r   r   r   _primitive_table_user_interfacer   r   r   rz   r   r   r   r   r   r   )r   r   r   r   r   ro   s         rj   fmt_route_typer     s    ))4IxI&/	:;044Y5H5H5>y~~5NP 	"*9+>+>?LIqhoohy.ABBF#*9+D+DELIq0778KLLFI&3{ 6)F M i(bLFMrl   c                     dj                  t        | j                  j                        t	        | j                              S )NDB{}{})r   r   r   rz   r   r   s    rj   r   r   $  s4    ??y**//0)INN2KM Mrl   c                 h    t         j                  | j                  t        | j                              S r   )_validator_tabler   r   r   rz   r   s    rj   fmt_validatorr   )  s$    	 3 3Yy~~5NOOrl   c                     t        |       \  } }t        |       rt        t        |             }|S t        j                  | j                  t        | j                              }|S r   )	r   r   fmt_serial_classr   _serial_tabler   r   r   rz   )r   ro   r   s      rj   fmt_serial_objr   -  s\    "9-LIqI&!"29"=>
 M ""9#6#6#,Y^^#<> Mrl   c                 $    dj                  |       S )Nz{}Serializerr   )
class_names    rj   r   r   9  s      ,,rl   c                 6    dj                  t        |             S )NzDB{}RouteObjects)r   r   )namespace_names    rj   fmt_route_obj_classr   =  s    $$^N%CDDrl   c                 \    |}|dk(  rd}dj                  t        |       t        |            S )NnoauthuserzDB{}{}AuthRoutes)r   r   r   )r   	auth_typeauth_type_to_uses      rj   fmt_routes_classr   A  s;     H!$$~&8H(IK Krl   c                     dj                  t        |       t        |j                              }|j                  dk7  rdj                  ||j                        }|S )Nr   r   {}V{})r   r   r   rz   version)r   router   s      rj   fmt_route_varr   I  sI    
//~&

(CEC}}nnS%--0Jrl   c                     t        | j                        }| j                  dk7  rdj                  || j                        }|S )Nr   r   )fmt_varrz   r   r   )r   r   s     rj   fmt_route_funcr   Q  s5    
%**
C}}nnS%--0Jrl   c                     g }d}| D ]K  \  }}|r#|j                  dj                  |             d}+|j                  dj                  ||             M dj                  |      S )NTr   Fz{}:{} appendr   ru   )arg_str_pairsr   	first_argarg_name	arg_values        rj   fmt_func_argsr   X  s`    FI,)MM$++i01IMM'..9=>  - 88Frl   c                     g }d}| D ]L  \  }}|r$|j                  dj                  ||             d},|j                  dj                  ||             N dj                  |      S )NT({}){}Fz{0}:({1}){0}r   r   )r   r   r   r   arg_types        rj   fmt_func_args_declarationr   d  sd    FI+(MM(//(H=>IMM.//(CD , 88Frl   c           
         g }d}| D ]  }|rJ|j                  dj                  t        |j                        t	        |j
                                     d}O|j                  dj                  t	        |j
                        t        |j                        t	        |j
                                      dj                  |      S )NTr   Fz	{}:({}){}r   )r   r   r   r   r   rz   ru   )argsr   r   args       rj   fmt_func_args_from_fieldsr   p  s    FIMM 79JKMIMM+,,!8CMM#:GCHH<MO P  88Frl   c                 X    |rdj                  | ||      }|S dj                  | |      }|S )Nz
[{} {}:{}]z[{} {}]r   )callercalleer   r   s       rj   fmt_func_callr   ~  s9    $$VVT: M !!&&1Mrl   c                 $    dj                  |       S )Nz
[{} alloc]r   )r   s    rj   fmt_alloc_callr     s    v&&rl   c                 4   t        | j                        rLdj                  t        | j                  j                        t        | j                  j                              S t        | j                        rdj                  | j                        S t        | j                        r"| j                  rd}nd}dj                  |      S t        | j                        rdj                  | j                        S t        dt        | j                        z        )Nz[[{} alloc] initWith{}]z@({})YESNOz@{}z@"{}"z"Can't handle default value type %r)r   rM   r   r   union_data_typer   tag_namer   r   r   r   	TypeErrortype)fieldbool_strs     rj   fmt_default_valuer     s    %-- (//U]]::;emm,,-/ 	/ 
	)~~emm,,		)==HH||H%%		(~~emm,,1D4IIK 	Krl   c                 *   d}t        |       rxt        | t              rd}|S t        | t              rd}|S t        | t              rd}|S t        | t
              rd}|S t        | t              rd}|S t        | t              rd}|S t        |       rd}|S )Nrn   numberWithUnsignedIntnumberWithUnsignedLongnumberWithIntnumberWithLongnumberWithDoublenumberWithBool)	r   re   r   r   r   r   r	   r
   r   )r   r   s     rj   fmt_ns_number_callr     s    Fy!i(,F M 	6*-F M 	5)$F M 	5)%F M 	7+'F
 M	 	7+'F M 
	#!Mrl   c                 h    |sdnd}|rdj                  ||| |      }|S dj                  |||       }|S )N-+z{} ({}){}:{}z	{} ({}){}r   )funcr   return_type
class_funcmodifierr   s         rj   fmt_signaturer    sF    $s#H&&xdDI M ##Hk4@Mrl   c                 B    t        |       \  } }| j                  t        v S r   )r   r   _wrapper_primitives)r   ro   s     rj   is_primitive_typer    s"    "9-LIq"555rl   c                     t        |       S r   r   r   s    rj   r   r     r   rl   c                 2   ddg}t        | j                        \  }}t        |      r|j                  d       |r|j                  d       d}|j	                  dj                  |      t        | j                  dd      t        | j                              S )	NrY   readonlyr^   r   z@property ({}) {}{};, T)r   r   )	r   r   r   r   r   ru   r   r   rz   )r   attrsr   r   base_strings        rj   fmt_propertyr    s    *%E)%//:Ixi VZ (Kdii.&uD$O%ejj13 3rl   c                 $    dj                  |       S )Nz#import "{}.h"r   )header_files    rj   
fmt_importr    s    "";//rl   c                 V    |sddg}d}|j                  dj                  |      ||       S )NrY   r	  z@property ({}) {} {};r
  )r   ru   )proptypr  r  s       rj   fmt_property_strr    s2    j))Kdii.T::rl   c                 T    | d   D ]   }|d   |k(  s|d   j                  |        y  y )Ncustom_categoriesrz   children)r   )
jazzy_dictlabelitemcategory_dicts       rj   append_to_jazzy_category_dictr    s:    #$78 E)*%,,T2 9 rl   )FT)T)F)FFFF)FFr   )r!   F)G
__future__r   r   r   r   rg   stone.irr   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   helpersr   r   r   r   r   r  rv   rw   rk   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r   r  r  r  r   rl   rj   <module>r!     s@   R R      . ! \	<\\	<	<)
Lz
L
L& " V	<XX	5	6)
Lz
N
O&# " 	##	!	!
	
 #
"
"  		




  

		
	
 3l 	 &&B@!!),42M
P	-EK		'K((6
30;rl   