
    biG                     N    d dl Z d dlZd dlZd dlZ G d de j                        Zy)    Nc                   *    e Zd ZdZd Zd Zd ZddZy)ReturnNameVisitorzThanks to ChatGPT for pairing.c                     g | _         y N)return_names)selfs    d/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/diffusers/utils/source_code_parsing_utils.py__init__zReturnNameVisitor.__init__
   s
        c                    t        |j                  t        j                        r|j                  j                  D ]q  }t        |t        j
                        r&| j                  j                  |j                         C	 | j                  j                  t        j                  |             s nt        |j                  t        j
                        r0| j                  j                  |j                  j                         n9	 | j                  j                  t        j                  |j                               | j                  |       y # t        $ r( | j                  j                  t        |             Y Dw xY w# t        $ r1 | j                  j                  t        |j                               Y w xY wr   )
isinstancevalueastTupleeltsNamer   appendidunparse	Exceptionstrgeneric_visit)r   nodeelts      r	   visit_ReturnzReturnNameVisitor.visit_Return   s.   djj#)),zz ;c388,%%,,SVV4;))00S1AB; $**chh/!!((7>%%,,S[[-DE 	4  % ;))00S:; ! >%%,,S_=>s$   ?.E8F -F ?F 7F=<F=c                 Z    ddl m} ddlm} t	        ||      ryt	        ||      ryt
        )Nr   )DiffusionPipeline)
ModelMixin	pipelinesmodels)	diffusersr   diffusers.models.modeling_utilsr   
issubclassNotImplementedError)r   clsr   r   s       r	   _determine_parent_modulez*ReturnNameVisitor._determine_parent_module"   s)    />c,-Z(%%r   c                    | j                  |      }t        j                  d|       }t        ||j                        }t        j                  t        ||            }t        j                  |      }t        j                  |      }|S )Nz
diffusers.)r&   	importlibimport_modulegetattr__name__inspect	getsourcetextwrapdedentr   parse)r   r%   attribute_nameparent_module_namemain_modulecurrent_cls_modulesource_codetrees           r	   get_ast_treezReturnNameVisitor.get_ast_tree-   sv    !::3?--
;M:N.OP$[#,,?''0BN(STook2yy%r   N)encode_prompt)r+   
__module____qualname____doc__r
   r   r&   r7    r   r	   r   r      s    (!*	&r   r   )r   r(   r,   r.   NodeVisitorr   r<   r   r	   <module>r>      s!    
   - -r   