portage.cache.flat_hash module

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

Bases: portage.cache.fs_template.FsBased

_delitem(cpv)

__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

_ensure_dirs(path=None)

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

_getitem(cpv)

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).

_parse_data(data, cpv)
_prune_empty_dirs()
_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
cleanse_keys = False
commit()
complete_eclass_entries = True
get(k, x=None)
get_matches(match_dict)

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.

has_key(cpv)
items()
iteritems()
iterkeys()
keys()

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 = True
store_eclass_paths = True
sync(rate=0)
validate_entry(entry, ebuild_hash, eclass_db)
validation_chf = 'mtime'
class portage.cache.flat_hash.md5_database(*args, **config)

Bases: portage.cache.flat_hash.database

_delitem(cpv)

__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

_ensure_dirs(path=None)

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

_getitem(cpv)

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).

_parse_data(data, cpv)
_prune_empty_dirs()
_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
cleanse_keys = False
commit()
complete_eclass_entries = True
get(k, x=None)
get_matches(match_dict)

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.

has_key(cpv)
items()
iteritems()
iterkeys()
keys()

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 = True
store_eclass_paths = False
sync(rate=0)
validate_entry(entry, ebuild_hash, eclass_db)
validation_chf = 'md5'
class portage.cache.flat_hash.mtime_md5_database(*args, **config)

Bases: portage.cache.flat_hash.database

_delitem(cpv)

__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

_ensure_dirs(path=None)

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

_getitem(cpv)

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).

_parse_data(data, cpv)
_prune_empty_dirs()
_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 = False
commit()
complete_eclass_entries = True
get(k, x=None)
get_matches(match_dict)

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.

has_key(cpv)
items()
iteritems()
iterkeys()
keys()

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 = True
store_eclass_paths = True
sync(rate=0)
validate_entry(entry, ebuild_hash, eclass_db)
validation_chf = 'md5'