
    c                          G d  d          Z  G d d          Z G d de          Z G d de          Z G d d	          Z G d
 d          Z G d d          ZdS )c                   p    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd ZddZd Zd Zd ZdS )ObjectDBc                 H    || _         || _        g | _        |j        | _        d S N)db
validation	observersfiles)selfr   r   s      5lib/python3.11/site-packages/rope/base/oi/objectdb.py__init__zObjectDB.__init__   s$    $X


    c                     t          | j                  D ]9}| j                            |          s| j        |= |                     |           :d S r   )listr	   r   is_file_valid_file_removed)r
   files     r   validate_fileszObjectDB.validate_files   s\    $$ 	) 	)D?0066 )Jt$""4(((	) 	)r   c                     || j         vrd S t          | j         |                   D ]+}| j                            ||          s| j         |         |= ,d S r   )r	   r   r   is_scope_valid)r
   r   keys      r   validate_filezObjectDB.validate_file   sh    tz! 	F
4()) 	* 	*C?11$<< *Jt$S)	* 	*r   c                     || j         vrd S | j                             ||           |                     |           |                     |           d S r   )r	   renamer   _file_added)r
   r   newfiles      r   
file_movedzObjectDB.file_moved   s\    tz! 	F
$(((4   !!!!!r   c                 4    | j                                         S r   )r	   keysr
   s    r   	get_fileszObjectDB.get_files   s    z   r   c                     |                      ||d          }|                    |          }| j                            |          r|S d S NTreadonly)_get_scope_infoget_returnedr   is_value_valid)r
   pathr   args
scope_inforesults         r   r&   zObjectDB.get_returned   V    ))$d)CC
((..?))&11 	M	 	r   c                     |                      ||d          }|                    |          }| j                            |          r|S d S r"   )r%   get_per_namer   r'   )r
   r(   r   namer*   r+   s         r   get_pernamezObjectDB.get_pername%   r,   r   c                 Z    |                      ||d          }|                                S r"   )r%   get_call_infos)r
   r(   r   r*   s       r   get_callinfoszObjectDB.get_callinfos+   s.    ))$d)CC
((***r   c                     |                      ||d          }|                    |          }| j                            ||          r|                    ||           d S d S NFr#   )r%   r&   r   is_more_validadd_call)r
   r(   r   r)   returnedr*   old_returneds          r   add_callinfozObjectDB.add_callinfo/   so    ))$e)DD
!..t44?((<@@ 	0h/////	0 	0r   c                     |                      ||d          }|                    |          }| j                            ||          r|                    ||           d S d S r5   )r%   r.   r   r6   save_per_name)r
   r(   r   r/   valuer*   	old_values          r   add_pernamezObjectDB.add_pername5   so    ))$e)DD
++D11	?((	:: 	2$$T511111	2 	2r   c                 :    | j                             |           d S r   )r   append)r
   observers     r   add_file_list_observerzObjectDB.add_file_list_observer;   s    h'''''r   c                 8    | j                                          d S r   )r   writer   s    r   rE   zObjectDB.write>   s    r   Tc                    || j         vr?|rt                      S | j                             |           |                     |           || j         |         vr0|rt                      S | j         |                             |           | j         |         |         }t          |t                    r2t          | j         | j         |         | j         |         |                    |S r   )r	   _NullScopeInfocreater   create_scope
isinstancedictprint)r
   r(   r   r$   r+   s        r   r%   zObjectDB._get_scope_infoA   s    tz! 	# (%'''Jd###T"""dj&& 	/ (%'''Jt))#...D!#&fd## 	G$*dj.
40@0EFFFr   c                 D    | j         D ]}|                    |           d S r   )r   removedr
   r(   rB   s      r   r   zObjectDB._file_removedP   s4     	# 	#HT""""	# 	#r   c                 D    | j         D ]}|                    |           d S r   )r   addedrO   s      r   r   zObjectDB._file_addedT   s2     	! 	!HNN4    	! 	!r   c                     d}| j                                         D ]}|t          |          z  }d                    t          | j                   |          S )N    z)ObjectDB holds {} file and {} scope infos)r	   valueslenformat)r
   scope_count	file_dicts      r   __str__zObjectDB.__str__X   s\    **,, 	* 	*I3y>>)KK:AA
OO
 
 	
r   NT)__name__
__module____qualname__r   r   r   r   r    r&   r0   r3   r:   r?   rC   rE   r%   r   r   rY    r   r   r   r      s	         ) ) )* * *" " "! ! !    + + +0 0 02 2 2( ( (     # # #! ! !
 
 
 
 
r   r   c                   4    e Zd Zd	dZd Zd Zd Zd Zd ZdS )
rG   Tc                     || _         d S r   )error_on_write)r
   ra   s     r   r   z_NullScopeInfo.__init__c   s    ,r   c                     d S r   r^   r
   r/   s     r   r.   z_NullScopeInfo.get_per_namef       r   c                 0    | j         rt                      d S r   ra   NotImplementedErrorr
   r/   r=   s      r   r<   z_NullScopeInfo.save_per_namei   #     	(%'''	( 	(r   c                     d S r   r^   r
   
parameterss     r   r&   z_NullScopeInfo.get_returnedm   rd   r   c                     g S r   r^   r   s    r   r2   z_NullScopeInfo.get_call_infosp   s    	r   c                 0    | j         rt                      d S r   rf   r
   rl   r8   s      r   r7   z_NullScopeInfo.add_calls   ri   r   NrZ   )	r[   r\   r]   r   r.   r<   r&   r2   r7   r^   r   r   rG   rG   b   ss        - - - -  ( ( (    ( ( ( ( (r   rG   c                       e Zd Zd ZdS )FileInfoc                     d S r   r^   r
   r   s     r   rI   zFileInfo.create_scopey   rd   r   N)r[   r\   r]   rI   r^   r   r   rq   rq   x   s#            r   rq   c                       e Zd Zd Zd ZdS )FileDictc                     d S r   r^   rs   s     r   rH   zFileDict.create~   rd   r   c                     d S r   r^   )r
   r   new_keys      r   r   zFileDict.rename   rd   r   N)r[   r\   r]   rH   r   r^   r   r   ru   ru   }   2              r   ru   c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )	ScopeInfoc                     d S r   r^   rc   s     r   r.   zScopeInfo.get_per_name   rd   r   c                     d S r   r^   rh   s      r   r<   zScopeInfo.save_per_name   rd   r   c                     d S r   r^   rk   s     r   r&   zScopeInfo.get_returned   rd   r   c                     d S r   r^   r   s    r   r2   zScopeInfo.get_call_infos   rd   r   c                     d S r   r^   ro   s      r   r7   zScopeInfo.add_call   rd   r   N)r[   r\   r]   r.   r<   r&   r2   r7   r^   r   r   r{   r{      s_                    r   r{   c                        e Zd Zd Zd Zd ZdS )CallInfoc                 "    || _         || _        d S r   )r)   r8   )r
   r)   r8   s      r   r   zCallInfo.__init__   s    	 r   c                     | j         S r   )r)   r   s    r   get_parameterszCallInfo.get_parameters   s
    yr   c                     | j         S r   )r8   r   s    r   r&   zCallInfo.get_returned   s
    }r   N)r[   r\   r]   r   r   r&   r^   r   r   r   r      sA        ! ! !      r   r   c                       e Zd Zd Zd ZdS )FileListObserverc                     d S r   r^   r
   r(   s     r   rQ   zFileListObserver.added   rd   r   c                     d S r   r^   r   s     r   rN   zFileListObserver.removed   rd   r   N)r[   r\   r]   rQ   rN   r^   r   r   r   r      ry   r   r   N)r   rG   rK   rq   ru   r{   r   r   r^   r   r   <module>r      s4  ^
 ^
 ^
 ^
 ^
 ^
 ^
 ^
B( ( ( ( ( ( ( (,    t   
    t          "	 	 	 	 	 	 	 	         r   