o
    tBhc3                  	   @   s  d dl mZmZmZ ddlmZmZ ddlmZ ddl	m	Z	 ddl
mZmZ dgZd	Zee ZG d
d dZdedefddZG dd deZd$dee dedefddZdee defddZd$dedee dedefddZdedefddZdedefdd Zdee defd!d"Zd#S )%    )Any
CollectionOptional   )NodeOperationType   )print_block_string)print_string)visitVisitor	print_astP   c                   @   s   e Zd ZU dZeed< eed< eed< eed< eed< eed< eed< eed	< eed
< eed< eed< eed< eed< eed< eed< eed< eed< eed< eed< eed< eed< eed< eed< dS )PrintedNodezCA union type for all nodes that have been processed by the printer.alias	argumentsblockdefault_valuedefinitionsdescription
directivesfields
interfaces	locationsname	operationoperation_types
repeatableselection_set
selectionstypetype_conditiontypesvaluevaluesvariablevariable_definitionsN)	__name__
__module____qualname____doc__str__annotations__Stringsboolr    r/   r/   o/var/www/html/riverr-enterprise-integrations-main/venv/lib/python3.10/site-packages/graphql/language/printer.pyr      s2   
 r   astreturnc                 C   s   t | t S )zjConvert an AST into a string.

    The conversion is done using a set of reasonable formatting rules.
    )r   PrintAstVisitor)r1   r/   r/   r0   r   ,   s   c                   @   sj  e Zd ZedededefddZedededefddZedededefdd	Z	edededefd
dZ
edededefddZedededefddZedededefddZedededefddZedededefddZedededefddZedededefddZedededefddZedededefddZedededefddZedededefd d!Zed"ededefd#d$Zedededefd%d&Zedededefd'd(Zedededefd)d*Zedededefd+d,Zedededefd-d.Zedededefd/d0Zedededefd1d2Zedededefd3d4Zedededefd5d6Zedededefd7d8Z edededefd9d:Z!edededefd;d<Z"edededefd=d>Z#edededefd?d@Z$edededefdAdBZ%edededefdCdDZ&edededefdEdFZ'edededefdGdHZ(edededefdIdJZ)edededefdKdLZ*edededefdMdNZ+edededefdOdPZ,edededefdQdRZ-edededefdSdTZ.edededefdUdVZ/edededefdWdXZ0edededefdYdZZ1d[S )\r3   node_argsr2   c                 G      | j S Nr#   r4   r5   r/   r/   r0   
leave_name5      zPrintAstVisitor.leave_namec                 G   s   d| j  S )N$r   r9   r/   r/   r0   leave_variable9      zPrintAstVisitor.leave_variablec                 G   s   t | jdS )Nz

)joinr   r9   r/   r/   r0   leave_document?   r?   zPrintAstVisitor.leave_documentc                 G   sZ   t dt| jdd}t| jjt| j|ft| jdfd}|dkr&d| j S |d | j S )N(, ) query )wrapr@   r&   r   r#   r   r   r   )r4   r5   var_defsprefixr/   r/   r0   leave_operation_definitionC   s   
 
z*PrintAstVisitor.leave_operation_definitionc              	   G   s0   | j  d| j td| j tdt| jd S )N: z = rE   )r%   r    rH   r   r@   r   r9   r/   r/   r0   leave_variable_definitionR   s   
z)PrintAstVisitor.leave_variable_definitionc                 G   s
   t | jS r7   )r   r   r9   r/   r/   r0   leave_selection_setZ   s   
z#PrintAstVisitor.leave_selection_setc                 G   sn   t d| jd| j }|t dt| jdd }t|tkr*|t dtt| jdd }t|t| jd	| j	fd	S )
NrG   rL   rB   rC   rD   (


)rE   )
rH   r   r   r@   r   lenMAX_LINE_LENGTHindentr   r   )r4   r5   rJ   	args_liner/   r/   r0   leave_field^   s
   zPrintAstVisitor.leave_fieldc                 G      | j  d| j S NrL   r   r#   r9   r/   r/   r0   leave_argumenth      zPrintAstVisitor.leave_argumentc                 G   s   d| j  tdt| jd S )N...rE   )r   rH   r@   r   r9   r/   r/   r0   leave_fragment_spreadn   s   z%PrintAstVisitor.leave_fragment_spreadc                 G   s$   t dtd| jt | jd| jfdS )Nr\   zon rE   )r@   rH   r!   r   r   r9   r/   r/   r0   leave_inline_fragmentr   s   

z%PrintAstVisitor.leave_inline_fragmentc                 G   sD   d| j  tdt| jdd d| j dtdt| jdd | j S )Nz	fragment rB   rC   rD    on rE   rG   )r   rH   r@   r&   r!   r   r   r9   r/   r/   r0   leave_fragment_definition~   s   z)PrintAstVisitor.leave_fragment_definitionc                 G   r6   r7   r8   r9   r/   r/   r0   leave_int_value   r;   zPrintAstVisitor.leave_int_valuec                 G   r6   r7   r8   r9   r/   r/   r0   leave_float_value   r;   z!PrintAstVisitor.leave_float_valuec                 G   s   | j rt| jS t| jS r7   )r   r	   r#   r
   r9   r/   r/   r0   leave_string_value   s   

z"PrintAstVisitor.leave_string_valuec                 G   s   | j rdS dS )Ntruefalser8   r9   r/   r/   r0   leave_boolean_value      z#PrintAstVisitor.leave_boolean_value_nodec                 G   s   dS )Nnullr/   )rh   r5   r/   r/   r0   leave_null_value   s   z PrintAstVisitor.leave_null_valuec                 G   r6   r7   r8   r9   r/   r/   r0   leave_enum_value   r;   z PrintAstVisitor.leave_enum_valuec                 G      dt | jd dS )N[rC   ])r@   r$   r9   r/   r/   r0   leave_list_value      z PrintAstVisitor.leave_list_valuec                 G   rl   )N{rC   })r@   r   r9   r/   r/   r0   leave_object_value   rp   z"PrintAstVisitor.leave_object_valuec                 G   rW   rX   rY   r9   r/   r/   r0   leave_object_field   r[   z"PrintAstVisitor.leave_object_fieldc                 G   s    d| j  tdt| jdd S )N@rB   rC   rD   )r   rH   r@   r   r9   r/   r/   r0   leave_directive   s    zPrintAstVisitor.leave_directivec                 G   r6   r7   r=   r9   r/   r/   r0   leave_named_type   r;   z PrintAstVisitor.leave_named_typec                 G   s   d| j  dS )Nrm   rn   r    r9   r/   r/   r0   leave_list_type   rg   zPrintAstVisitor.leave_list_typec                 G   s   | j  dS )N!rx   r9   r/   r/   r0   leave_non_null_type   r?   z#PrintAstVisitor.leave_non_null_typec                 G   s,   t d| jdtdt| jdt| jfd S )NrG   rP   schemarE   )rH   r   r@   r   r   r   r9   r/   r/   r0   leave_schema_definition   s   
z'PrintAstVisitor.leave_schema_definitionc                 G   s   | j j d| j S rX   )r   r#   r    r9   r/   r/   r0   leave_operation_type_definition   rp   z/PrintAstVisitor.leave_operation_type_definitionc                 G   s(   t d| jdtd| jt| jdfd S )NrG   rP   scalarrE   rH   r   r@   r   r   r9   r/   r/   r0   leave_scalar_type_definition   s   
z,PrintAstVisitor.leave_scalar_type_definitionc              	   G   @   t d| jdtd| jt dt| jdt| jdt| jfd S )NrG   rP   r    implements  & rE   rH   r   r@   r   r   r   r   r   r9   r/   r/   r0   leave_object_type_definition      
z,PrintAstVisitor.leave_object_type_definitionc                 G   sp   | j }t|rtdtt|ddntdt|dd}tdt| jd}td| jd| j | d	| j |  S )
NrO   rP   rQ   rB   rC   rD   rE   rG   rL   )	r   has_multiline_itemsrH   rT   r@   r   r   r   r    )r4   r5   argsr   r/   r/   r0   leave_field_definition   s   z&PrintAstVisitor.leave_field_definitionc                 G   s<   t d| jdt| j d| j t d| jt| jdfd S )NrG   rP   rL   = rE   )rH   r   r@   r   r    r   r   r9   r/   r/   r0   leave_input_value_definition   s   

z,PrintAstVisitor.leave_input_value_definitionc              	   G   r   )NrG   rP   	interfacer   r   rE   r   r9   r/   r/   r0   leave_interface_type_definition  r   z/PrintAstVisitor.leave_interface_type_definitionc              
   G   s8   t d| jdtd| jt| jdt dt| jdfd S )NrG   rP   unionrE   r    | )rH   r   r@   r   r   r"   r9   r/   r/   r0   leave_union_type_definition  s   
z+PrintAstVisitor.leave_union_type_definitionc                 G   0   t d| jdtd| jt| jdt| jfd S )NrG   rP   enumrE   )rH   r   r@   r   r   r   r$   r9   r/   r/   r0   leave_enum_type_definition      z*PrintAstVisitor.leave_enum_type_definitionc                 G   s&   t d| jdt| jt| jdfd S )NrG   rP   rE   r   r9   r/   r/   r0   leave_enum_value_definition&  s   z+PrintAstVisitor.leave_enum_value_definitionc                 G   r   )NrG   rP   inputrE   )rH   r   r@   r   r   r   r   r9   r/   r/   r0   "leave_input_object_type_definition,  r   z2PrintAstVisitor.leave_input_object_type_definitionc                 G   sx   | j }t|rtdtt|ddntdt|dd}| jr dnd}t| jd	}td| jdd
| j | | d|  S )NrO   rP   rQ   rB   rC   rD   z repeatablerG   r   zdirective @r_   )	r   r   rH   rT   r@   r   r   r   r   )r4   r5   r   r   r   r/   r/   r0   leave_directive_definition2  s   z*PrintAstVisitor.leave_directive_definitionc                 G   s   t dt | jdt| jfdS )Nzextend schemarE   )r@   r   r   r   r9   r/   r/   r0   leave_schema_extensionA  s   z&PrintAstVisitor.leave_schema_extensionc                 G   s   t d| jt | jdfdS )Nzextend scalarrE   )r@   r   r   r9   r/   r/   r0   leave_scalar_type_extensionH     z+PrintAstVisitor.leave_scalar_type_extensionc                 G   2   t d| jtdt | jdt | jdt| jfdS )Nzextend typer   r   rE   r@   r   rH   r   r   r   r   r9   r/   r/   r0   leave_object_type_extensionL     
z+PrintAstVisitor.leave_object_type_extensionc                 G   r   )Nzextend interfacer   r   rE   r   r9   r/   r/   r0   leave_interface_type_extensionY  r   z.PrintAstVisitor.leave_interface_type_extensionc              	   G   s*   t d| jt | jdtdt | jdfdS )Nzextend unionrE   r   r   )r@   r   r   rH   r"   r9   r/   r/   r0   leave_union_type_extensionf  s   
z*PrintAstVisitor.leave_union_type_extensionc                 G   "   t d| jt | jdt| jfdS )Nzextend enumrE   )r@   r   r   r   r$   r9   r/   r/   r0   leave_enum_type_extensionr     z)PrintAstVisitor.leave_enum_type_extensionc                 G   r   )Nzextend inputrE   )r@   r   r   r   r   r9   r/   r/   r0   !leave_input_object_type_extensiony  r   z1PrintAstVisitor.leave_input_object_type_extensionN)2r'   r(   r)   staticmethodr   r   r+   r:   r>   rA   rK   rM   rN   rV   rZ   r]   r^   r`   ra   rb   rc   rf   rj   rk   ro   rs   rt   rv   rw   ry   r{   r}   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r/   r/   r/   r0   r3   4   s    	


r3   rG   strings	separatorc                 C   s   | r| dd | D S dS )zJoin strings in a given collection.

    Return an empty string if it is None or empty, otherwise join all items together
    separated by separator if provided.
    c                 s   s    | ]}|r|V  qd S r7   r/   ).0sr/   r/   r0   	<genexpr>      zjoin.<locals>.<genexpr>rG   )r@   )r   r   r/   r/   r0   r@     s   r@   c                 C   s   t dtt| ddS )zReturn strings inside a block.

    Given a collection of strings, return a string with each item on its own line,
    wrapped in an indented "{ }" block.
    z{
rP   z
})rH   rT   r@   r   r/   r/   r0   r     s   r   startstringendc                 C   s   |r
|  | | S dS )zWrap string inside other strings at start and end.

    If the string is not None or empty, then wrap with start and end, otherwise return
    an empty string.
    rG   r/   )r   r   r   r/   r/   r0   rH     s   rH   c                 C   s   t d| ddS )zIndent string with two spaces.

    If the string is not None or empty, add two spaces at the beginning of every line
    inside the string.
    z  rP   z
  )rH   replacer   r/   r/   r0   rT     s   rT   c                 C   s   d| v S )z2Check whether a string consists of multiple lines.rP   r/   r   r/   r/   r0   is_multiline  s   r   c                 C   s   | rt dd | D S dS )z>Check whether one of the items in the list has multiple lines.c                 s   s    | ]}t |V  qd S r7   )r   )r   itemr/   r/   r0   r     r   z&has_multiline_items.<locals>.<genexpr>F)anyr   r/   r/   r0   r     r   r   N)rG   )typingr   r   r   language.astr   r   block_stringr	   r
   visitorr   r   __all__rS   r+   r-   r   r   r3   r@   r   rH   rT   r.   r   r   r/   r/   r/   r0   <module>   s&      O	 			