Ë c‡½jJ- ã ó~ — d Z ddlZddlZddlZddlZddgZ dZ eZ G d„ dej j « Zd d„Zy) 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„ Zy)Ú _Databasec óê — | j j |« }|| _ |dk( | _ |dz | _ |dz | _ |dz | _ d | _ | j |« | j |« y )NÚrs .dirs .dats .bak) Ú_osÚfsencodeÚ_modeÚ _readonlyÚ_dirfileÚ_datfileÚ_bakfileÚ_indexÚ_createÚ_update)ÚselfÚfilebasenameÚmodeÚflags ú!/usr/lib64/python3.12/dbm/dumb.pyÚ__init__z_Database.__init__0 ss € Ø—x‘x×(Ñ(¨Ó6ˆØˆŒ Ø #™+ˆŒð % wÑ.ˆŒ ð % wÑ.ˆŒ Ø$ wÑ.ˆŒ 𠈌ð �‰�TÔØ�‰�TÕó c óÜ — |dk( r>| j | j | j fD ] } t j |« Œ t j | j dd¬« }|j « y # t $ r Y ŒZw xY w# t $ r[ |dvr‚ t j | j dd¬« 5 }| j | j « d d d « Y y # 1 sw Y Y y xY ww xY w)NÚnr úLatin-1©Úencoding©Úcr Úw) r r r r ÚremoveÚOSErrorÚ_ior ÚcloseÚ_chmod)r r ÚfilenameÚfs r r z_Database._createJ sÀ € Ø�3Š;Ø!Ÿ]™]¨D¯M©M¸4¿=¹=ÓI�ðÜ—J‘J˜xÕ(ð Jð Ü—‘˜Ÿ™¨°iÔ@ˆAð �G‰G�Iøô ò Ùðûô ò +ؘ:Ñ%ØÜ—‘˜$Ÿ-™-¨°yÕAÀQØ—‘˜DŸM™MÔ*÷ B×AÓAúð +ús; A8Á"B Á8 BÂBÂ0C+Â7CÃC+ÃC' Ã"C+Ã'C+c ój — d| _ i | _ t j | j dd¬« }|5 |D ]J }|j « }t j |« \ }}|j d« }|| j |<