portage.package.ebuild._config.features_set module

class portage.package.ebuild._config.features_set.features_set(settings)

Bases: object

Provides relevant set operations needed for access and modification of config.features. The FEATURES variable is automatically synchronized upon modification.

Modifications result in a permanent override that will cause the change to propagate to the incremental stacking mechanism in config.regenerate(). This eliminates the need to call config.backup_changes() when FEATURES is modified, since any overrides are guaranteed to persist despite calls to config.reset().


If there are lots of invalid package.env FEATURES settings then unknown-features-filter can make _features_overrides grow larger and larger, so prune it. This performs incremental stacking with preservation of negative values since they need to persist for future config.regenerate() calls.


Implements unknown-features-warn and unknown-features-filter.


This never raises KeyError, since it records a permanent override that will prevent the given flag from ever being added again by incremental stacking in config.regenerate().