揕>Cb r d Z ddlZddlZddlZddlZddgZ dZ eZ G d dej j Zdd ZdS )a A dumb and slow but simple dbm clone. For database spam, spam.dir contains the index (a text file), spam.bak *may* contain a backup of the index (also a text file), while spam.dat contains the data (a binary file). XXX TO DO: - seems to contain a bug when updating... - reclaim free space (currently, space once occupied by deleted or expanded items is never reused) - support concurrent access (currently, if two processes take turns making updates, they can mess up the index) - support efficient access to large databases (currently, the whole index is read when the database is opened, and some updates rewrite the whole index) - support opening for read-only (flag = 'm') Nerroropeni c e Zd ZeZeZddZd Zd Zd ZeZ d Z d Zd Zd Z d Zd Zd Zd Zd Zd Zd ZeZd Zd ZeZd Zd Zd ZdS ) _Databasecc | j | }|| _ |dk | _ |dz | _ |dz | _ |dz | _ d | _ | | | | d S )Nrs .dirs .dats .bak) _osfsencode_mode _readonly_dirfile_datfile_bakfile_index_create_update)selffilebasenamemodeflags //opt/alt/python311/lib64/python3.11/dbm/dumb.py__init__z_Database.__init__0 s x((66 #+ %w. %w. $w. TT c |dk r<| j | j | j fD ]'} t j | # t $ r Y $w xY w t j | j dd }| d S # t $ rY |dvr t j | j dd 5 }| | j d d d Y d S # 1 swxY w Y Y d S w xY w)Nnr Latin-1encodingr r w) r r r r removeOSError_ior close_chmod)r r filenamefs r r z_Database._createJ sR 3;;!]DM4=I Jx(((( D i@@@A GGIIIII + + +:%%$-yAAA +QDM*** + + + + + + + + + + + + + + + + + + + + +sD 3 A A A6 6+C!C <C C CC CCc l d| _ i | _ t j | j dd }|5 |D ]L}| }t j | \ }}| d }|| j |<