%PDF- %PDF-
Direktori : /usr/local/lib/python3.8/dbm/__pycache__/ |
Current File : //usr/local/lib/python3.8/dbm/__pycache__/dumb.cpython-38.pyc |
U pa- @ sV d Z ddlZddlZddlZddlZddgZ dZ eZG dd dej jZdd dZdS )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 @ s e Zd ZeZeZd+ddZdd Zdd Zdd ZeZ d d Z dd Zdd Zdd Z dd Zdd Zdd Zdd Zdd Zdd Zdd ZeZd d! Zd"d# ZeZd$d% Zd&d' Zd(d) Zd*S ), _Databasecc C sL || _ |dk| _|d | _|d | _|d | _d | _| | | | d S )Nrz.dirz.datz.bak)_mode _readonly_dirfile_datfile_bakfile_index_create_update)selfZfilebasenamemodeflag r $/usr/local/lib/python3.8/dbm/dumb.py__init__0 s z_Database.__init__c C s |dkrB| j | j| jfD ](}zt| W q tk r> Y qX qztj| j ddd}W nH tk r |dkrr tj| j ddd}| | j W 5 Q R X Y n X | d S )Nnr Latin-1encodingr r w) r r r _osremoveOSError_ior _chmodclose)r r filenamefr r r r I s z_Database._createc C s d| _ i | _ztj| jddd}W n$ tk rF |dkr<