o
    tBh
                  
   @   sp   d dl mZmZmZmZmZ d dlmZ d ddededefddZ	d	d	d
ddede
de
dee fddZd
S )    )AnyIterableListOptionalSized)Node)indentobjr   ignored_keysc             	   C   sX  |d usJ g }t | dr|d| t| j   z| j}W n ty5   |d|d  t|   Y nrw |D ]b}||v r?q8t| |d }|d|d  | d  t|t	rt|t
tfst|tr|t|dkr||d|d  dt|j   q8|D ]}|t||d |d q~q8|t||d |d q8n|d| t|   d	|S )
N	__slots__z     :r      zempty )r   r
   
)hasattrappendtype__name__keysAttributeErrorreprgetattr
isinstancer   strbytesr   len_node_tree_recursivejoin)r	   r   r
   resultsr   key
attr_valueitem r"   n/var/www/html/riverr-enterprise-integrations-main/venv/lib/python3.10/site-packages/gql/utilities/node_tree.pyr      sP   

	
r   TN)
ignore_locignore_blockr
   r$   r%   c                C   sB   t | tsJ |du rg }|r|d |r|d t| |dS )zMethod which returns a tree of Node elements as a String.

    Useful to debug deep DocumentNode instances created by gql or dsl_gql.

    WARNING: the output of this method is not guaranteed and may change without notice.
    Nlocblock)r
   )r   r   r   r   )r	   r$   r%   r
   r"   r"   r#   	node_tree>   s   

r(   )typingr   r   r   r   r   graphqlr   intr   boolr(   r"   r"   r"   r#   <module>   s,    
;