
    Æep                         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
y
)    )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y)MemoryDBNc                     || _         || _        | | _        | j                          | j                   j                  j                  | j                         y N)project_persistfiles_load_files
data_filesadd_write_hookwrite)selfr   persists      7/usr/lib/python3/dist-packages/rope/base/oi/memorydb.py__init__zMemoryDB.__init__   s?    
..tzz:    c                     i | _         | j                  r0| j                  j                  j	                  d      }||| _         y y y Nr   )_filesr   r   r   	read_data)r   results     r   r   zMemoryDB._load_files   sA    <<\\,,66zBF!$ " r   c                 6    | j                   j                         S r
   )r   keysr   s    r   r   zMemoryDB.keys       {{!!r   c              #   8   K   | j                   E d {    y 7 wr
   r   r   s    r   __iter__zMemoryDB.__iter__        ;;   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__!       dkk!!r   c                 2    t        | j                  |         S r
   )FileInfor   r/   s     r   __getitem__zMemoryDB.__getitem__$   s    C())r   c                 "    i | j                   |<   y r
   r!   )r   paths     r   createzMemoryDB.create'   s    Dr   c                 `    || j                   vry | j                   |   | j                   |<   | |= y r
   r!   )r   filenewfiles      r   renamezMemoryDB.rename*   s/    t{{"#{{40GJr   c                     | j                   |= y r
   r!   )r   r:   s     r   __delitem__zMemoryDB.__delitem__0   s    KKr   c                 ~    | j                   r1| j                  j                  j                  d| j                         y y r   )r   r   r   
write_datar   r   s    r   r   zMemoryDB.write3   s,    <<LL##..z4;;G r   z(compress_objectdb is no longer supportedc                      y)NF r   s    r   compresszMemoryDB.compress7   s     r   c                 ~    | j                   | j                   S | j                  j                  j                  dd      S )Nsave_objectdbF)r   r   prefsgetr   s    r   r   zMemoryDB.persist<   s3    ==$== <<%%))/5AAr   r
   )__name__
__module____qualname__r   r   r   r"   r'   r,   r1   r5   r8   r<   r>   r   propertyr   
deprecatedrC   r   rB   r   r   r   r      s    ;%" $"*H U@A B  B Br   r   c                   B    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)r4   c                     || _         y r
   scopes)r   rP   s     r   r   zFileInfo.__init__E   s	    r   c                 2    t               | j                  |<   y r
   )	ScopeInforP   r/   s     r   create_scopezFileInfo.create_scopeH   s    $;Cr   c                 6    | j                   j                         S r
   )rP   r   r   s    r   r   zFileInfo.keysK   r   r   c                     || j                   v S r
   rO   r/   s     r   r1   zFileInfo.__contains__N   r2   r   c                      | j                   |   S r
   rO   r/   s     r   r5   zFileInfo.__getitem__Q   s    {{3r   c                     | j                   |= y r
   rO   r/   s     r   r>   zFileInfo.__delitem__T   s    KKr   c              #   8   K   | j                   E d {    y 7 wr
   rO   r   s    r   r"   zFileInfo.__iter__W   r#   r$   c                 ,    t        | j                        S r
   )r&   rP   r   s    r   r'   zFileInfo.__len__Z   r(   r   c                     t               r
   r*   r   s    r   r,   zFileInfo.__setitem__]   r-   r   N)rH   rI   rJ   r   rS   r   r1   r5   r>   r"   r'   r,   rB   r   r   r4   r4   D   s/    '""  $r   r4   c                   <    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
y	)
rR   c                      i | _         i | _        y r
   )	call_infoper_namer   s    r   r   zScopeInfo.__init__b   s    r   c                 :    | j                   j                  |d       S r
   )r^   rG   )r   names     r   get_per_namezScopeInfo.get_per_namef   s    }}  t,,r   c                 "    || j                   |<   y r
   )r^   )r   r`   values      r   save_per_namezScopeInfo.save_per_namei   s    #dr   c                 :    | j                   j                  |d       S r
   )r]   rG   )r   
parameterss     r   get_returnedzScopeInfo.get_returnedl   s    ~~!!*d33r   c              #      K   | j                   j                         D ]  \  }}t        j                  ||        y wr
   )r]   itemsr   CallInfo)r   argsreturneds      r   get_call_infoszScopeInfo.get_call_infoso   s9     "nn224 	4ND(##D(33	4s   <>c                 "    || j                   |<   y r
   )r]   )r   rf   rl   s      r   add_callzScopeInfo.add_calls   s    %-z"r   c                 Z    | j                   | j                  f}t        |d      }d|d<   |S )N   )versionrR   $)r]   r^   r   )r   original_dataencodeds      r   __getstate__zScopeInfo.__getstate__v   s.    7 :"r   c                     t        |t              rt        |      dk(  r|\  | _        | _        y |d   dk(  sJ t        |      \  | _        | _        y )Nrq   rs   rR   )
isinstancetupler&   r]   r^   r   )r   datas     r   __setstate__zScopeInfo.__setstate__|   sK    dE"s4yA~,0)DNDM 9+++,:4,@)DNDMr   N)rH   rI   rJ   r   ra   rd   rg   rm   ro   rv   r{   rB   r   r   rR   rR   a   s+    -$44.Ar   rR   N)	rope.baser   rope.base.oir   rope.base.serializerr   r   FileDictr   r4   rR   rB   r   r   <module>r      sI     ! ?;Bx   ;B|$x   $:"A"" "Ar   