portage.cache.fs_template module

class portage.cache.fs_template.FsBased(*args, **config)

Bases: portage.cache.template.database

template wrapping fs needed options, and providing _ensure_access as a way to attempt to ensure files have the specified owners/perms


__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(name, 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 = False
cleanse_keys = False
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 = True
store_eclass_paths = True
validate_entry(entry, ebuild_hash, eclass_db)
validation_chf = 'mtime'
portage.cache.fs_template.gen_label(base, label)

if supplied label is a path, generate a unique label based upon label, and supplied base path