§ !A?hJ- ã ó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') é NÚerrorÚopeni c óœ — e Zd ZeZeZdd„Zd„ Zd„ Zd„ ZeZ d„ Z d„ Zd„ Zd „ Z d „ Zd„ Zd„ Zd „ Zd„ Zd„ Zd„ ZeZd„ Zd„ ZeZd„ Zd„ Zd„ ZdS )Ú _DatabaseÚcc óü — | j |¦ « }|| _ |dk | _ |dz | _ |dz | _ |dz | _ d | _ | |¦ « | |¦ « d S )NÚrs .dirs .dats .bak) Ú_osÚfsencodeÚ_modeÚ _readonlyÚ_dirfileÚ_datfileÚ_bakfileÚ_indexÚ_createÚ_update)ÚselfÚfilebasenameÚmodeÚflags ú5/opt/alt/python-internal/lib64/python3.11/dbm/dumb.pyÚ__init__z_Database.__init__0 s† € Ø”x×(Ò(¨Ñ6Ô6ˆØˆŒ Ø #š+ˆŒð % wÑ.ˆŒ ð % wÑ.ˆŒ Ø$ wÑ.ˆŒ 𠈌ð �Š�TÑÔÐØ�Š�TÑÔÐÐÐó 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)NÚnr úLatin-1©Úencoding©r r Úw) r r r r ÚremoveÚOSErrorÚ_ior ÚcloseÚ_chmod)r r ÚfilenameÚfs r r z_Database._createJ sR € Ø�3Š;ˆ;Ø!œ]¨D¬M¸4¼=ÐIð ð �ðÝ”J˜xÑ(Ô(Ð(Ð(øÝð ð ð Ø�Dðøøøð Ý”˜œ¨°iÐ@Ñ@Ô@ˆAð �GŠG‰IŒIˆIˆIˆIøõ ð +ð +ð +ؘ:Ð%Ð%ØÝ”˜$œ-¨°yÐAÑAÔAð +ÀQØ—’˜DœMÑ*Ô*Ð*ð +ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +ð +ð +ð +ð +øøøsD ž3³ A ¿A ÁA6 Á6+CÂ!C Â<Cà C ÃCÃC ÃCÃCc ól — d| _ i | _ t j | j dd¬¦ « }|5 |D ]L}| ¦ « }t j |¦ « \ }}| d¦ « }|| j |<