portage.cache.anydbm module

class portage.cache.anydbm.database(*args, **config)

Bases: portage.cache.fs_template.FsBased


__delitem__ calls this after readonly checks. override it in derived classes

_ensure_access(path, mtime=- 1)

returns true or false if it’s able to ensure that path is properly chmod’d and chowned. if mtime is specified, attempts to ensure that’s correct also


with path!=None, ensure beyond self.location. otherwise, ensure self.location


get cpv’s values. override this in derived classess

static _internal_eclasses(extern_ec_dict, chf_type, paths)

When serialize_eclasses is False, we have to convert an external eclass dict containing hashed_path objects into an appropriate internal dict containing values of chf_type (and eclass dirs if store_eclass_paths is True).

_setitem(cpv, values)

__setitem__ calls this after readonly checks. override it in derived classes note _eclassees_ key must be handled

_validate_entry(chf_type, entry, ebuild_hash, eclass_db)
autocommits = True
chf_types = ('md5', 'mtime')
cleanse_keys = True
complete_eclass_entries = True
get(k, x=None)

generic function for walking the entire cache db, matching restrictions to filter what cpv’s are returned. Derived classes should override this if they can implement a faster method then pulling each cpv:values, and checking it.

For example, RDBMS derived classes should push the matching logic down to the actual RDBM.


This method should always be overridden. It is provided only for backward compatibility with modules that override iterkeys instead. It will automatically raise a NotImplementedError if iterkeys has not been overridden.

serialize_eclasses = False
store_eclass_paths = True
validate_entry(entry, ebuild_hash, eclass_db)
validation_chf = 'md5'