
    cp                         d dl mZ d dlmZ d dlmZmZ  G d dej                  Z G d dej	                  Z	 G d d	ej
                  Z
d
S )    )utils)objectdb)json_to_pythonpython_to_jsonc                       e Zd ZddZd Zd Zd Zd Zd Zd Z	d	 Z
d
 Zd Zd Zd Ze ej        d          d                         Zed             ZdS )MemoryDBNc                     || _         || _        | | _        |                                  | j         j                            | j                   d S N)project_persistfiles_load_files
data_filesadd_write_hookwrite)selfr   persists      5lib/python3.11/site-packages/rope/base/oi/memorydb.py__init__zMemoryDB.__init__   sJ    
..tz:::::    c                 z    i | _         | j        r*| j        j                            d          }||| _         d S d S d S Nr   )_filesr   r   r   	read_data)r   results     r   r   zMemoryDB._load_files   sR    < 	%\,66zBBF %$	% 	%% %r   c                 4    | j                                         S r
   )r   keysr   s    r   r   zMemoryDB.keys       {!!!r   c              #   $   K   | j         E d {V  d S r
   r   r   s    r   __iter__zMemoryDB.__iter__   &      ;r   c                 *    t          | j                  S r
   )lenr   r   s    r   __len__zMemoryDB.__len__       4;r   c                     t                      r
   NotImplementedErrorr   s    r   __setitem__zMemoryDB.__setitem__       !###r   c                     || j         v S r
   r!   r   keys     r   __contains__zMemoryDB.__contains__!       dk!!r   c                 6    t          | j        |                   S r
   )FileInfor   r.   s     r   __getitem__zMemoryDB.__getitem__$   s    C()))r   c                     i | j         |<   d S r
   r!   )r   paths     r   createzMemoryDB.create'   s    Dr   c                 L    || j         vrd S | j         |         | j         |<   | |= d S r
   r!   )r   filenewfiles      r   renamezMemoryDB.rename*   s4    t{" 	F#{40GJJJr   c                     | j         |= d S r
   r!   )r   r9   s     r   __delitem__zMemoryDB.__delitem__0   s    Kr   c                 b    | j         r'| j        j                            d| j                   d S d S r   )r   r   r   
write_datar   r   s    r   r   zMemoryDB.write3   s<    < 	HL#..z4;GGGGG	H 	Hr   z(compress_objectdb is no longer supportedc                     dS )NF r   s    r   compresszMemoryDB.compress7   s	     ur   c                 ^    | j         | j         S | j        j                            dd          S )Nsave_objectdbF)r   r   prefsgetr   s    r   r   zMemoryDB.persist<   s0    = 	B= <%))/5AAAr   r
   )__name__
__module____qualname__r   r   r   r"   r&   r+   r0   r4   r7   r;   r=   r   propertyr   
deprecatedrB   r   rA   r   r   r   r      s%       ; ; ; ;% % %" " "       $ $ $" " "* * *      H H H U@AA  BA X B B XB B Br   r   c                   D    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )r3   c                     || _         d S r
   scopes)r   rO   s     r   r   zFileInfo.__init__E   s    r   c                 2    t                      | j        |<   d S r
   )	ScopeInforO   r.   s     r   create_scopezFileInfo.create_scopeH   s    $;;Cr   c                 4    | j                                         S r
   )rO   r   r   s    r   r   zFileInfo.keysK   r   r   c                     || j         v S r
   rN   r.   s     r   r0   zFileInfo.__contains__N   r1   r   c                     | j         |         S r
   rN   r.   s     r   r4   zFileInfo.__getitem__Q   s    {3r   c                     | j         |= d S r
   rN   r.   s     r   r=   zFileInfo.__delitem__T   s    Kr   c              #   $   K   | j         E d {V  d S r
   rN   r   s    r   r"   zFileInfo.__iter__W   r#   r   c                 *    t          | j                  S r
   )r%   rO   r   s    r   r&   zFileInfo.__len__Z   r'   r   c                     t                      r
   r)   r   s    r   r+   zFileInfo.__setitem__]   r,   r   N)rG   rH   rI   r   rR   r   r0   r4   r=   r"   r&   r+   rA   r   r   r3   r3   D   s          ' ' '" " "" " "              $ $ $ $ $r   r3   c                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )
rQ   c                 "    i | _         i | _        d S r
   )	call_infoper_namer   s    r   r   zScopeInfo.__init__b   s    r   c                 8    | j                             |d           S r
   )r]   rF   )r   names     r   get_per_namezScopeInfo.get_per_namef   s    }  t,,,r   c                     || j         |<   d S r
   )r]   )r   r_   values      r   save_per_namezScopeInfo.save_per_namei   s    #dr   c                 8    | j                             |d           S r
   )r\   rF   )r   
parameterss     r   get_returnedzScopeInfo.get_returnedl   s    ~!!*d333r   c              #   v   K   | j                                         D ]\  }}t          j        ||          V  d S r
   )r\   itemsr   CallInfo)r   argsreturneds      r   get_call_infoszScopeInfo.get_call_infoso   sM      "n2244 	4 	4ND(#D(333333	4 	4r   c                     || j         |<   d S r
   )r\   )r   re   rk   s      r   add_callzScopeInfo.add_calls   s    %-z"""r   c                 N    | j         | j        f}t          |d          }d|d<   |S )N   )versionrQ   $)r\   r]   r   )r   original_dataencodeds      r   __getstate__zScopeInfo.__getstate__v   s0    7 :::"r   c                     t          |t                    r$t          |          dk    r|\  | _        | _        d S |d         dk    sJ t          |          \  | _        | _        d S )Nrp   rr   rQ   )
isinstancetupler%   r\   r]   r   )r   datas     r   __setstate__zScopeInfo.__setstate__|   sj    dE"" 	As4yyA~ 	A,0)DNDMMM 9++++,:4,@,@)DNDMMMr   N)rG   rH   rI   r   r`   rc   rf   rl   rn   ru   rz   rA   r   r   rQ   rQ   a   s          - - -$ $ $4 4 44 4 4. . .  A A A A Ar   rQ   N)	rope.baser   rope.base.oir   rope.base.serializerr   r   FileDictr   r3   rQ   rA   r   r   <module>r      s          ! ! ! ! ! ! ? ? ? ? ? ? ? ?;B ;B ;B ;B ;Bx  ;B ;B ;B|$ $ $ $ $x  $ $ $:"A "A "A "A "A" "A "A "A "A "Ar   