b.c.LockableConfig(IniBasedConfig) : class documentation

Part of bzrlib.config View In Hierarchy

Known subclasses: bzrlib.config.GlobalConfig, bzrlib.config.LocationConfig

A configuration needing explicit locking for access.

If several processes try to write the config file, the accesses need to be serialized.

Daughter classes should decorate all methods that update a config with the @needs_write_lock decorator (they call, directly or indirectly, the _write_config_file() method. These methods (typically set_option() and variants must reload the config file from disk before calling _write_config_file()), this can be achieved by calling the self.reload() method. Note that the lock scope should cover both the reading and the writing of the config file which is why the decorator can't be applied to _write_config_file() only.

This should be enough to implement the following logic: - lock for exclusive write access, - reload the config file from disk, - set the new value - unlock

This logic guarantees that a writer can update a value without erasing an update made by another writer.

Method __init__ Base class for configuration files using an ini-like syntax.
Method lock_write Takes a write lock in the directory containing the config file.
Method unlock Undocumented
Method break_lock Undocumented
Method remove_user_option Remove a user option and save the configuration file.
Method _create_from_string Undocumented
Method _write_config_file Undocumented

Inherited from IniBasedConfig:

Class Method from_string Create a config object from a string.
Method reload Reload the config file from disk.
Method _get_parser Undocumented
Method _get_matching_sections Return an ordered list of (section_name, extra_path) pairs.
Method _get_section Override this to define the section used by the config.
Method _get_sections Returns an iterator of the sections specified by name.
Method _get_options Return an ordered list of (name, value, section, config_id) tuples.
Method _get_option_policy Return the policy for the given (section, option_name) pair.
Method _get_change_editor Undocumented
Method _get_signature_checking See Config._get_signature_checking.
Method _get_signing_policy See Config._get_signing_policy
Method _get_user_id Get the user id from the 'email' key in the current section.
Method _get_user_option See Config._get_user_option.
Method _gpg_signing_command See Config.gpg_signing_command.
Method _log_format See Config.log_format.
Method _validate_signatures_in_log See Config.validate_signatures_in_log.
Method _acceptable_keys See Config.acceptable_keys.
Method _post_commit See Config.post_commit.
Method _string_to_signature_policy Convert a string to a signing policy.
Method _string_to_signing_policy Convert a string to a signing policy.
Method _get_alias Undocumented
Method _get_nickname Undocumented

Inherited from Config (via IniBasedConfig):

Method config_id Returns a unique ID for the config.
Method get_editor Get the users pop up editor.
Method get_change_editor Undocumented
Method get_mail_client Get a mail client to use
Method expand_options Expand option references in the string in the configuration context.
Method get_user_option Get a generic option - no special process, no default.
Method get_user_option_as_bool Get a generic option as a boolean.
Method get_user_option_as_list Get a generic option as a list - no special process, no default.
Method get_user_option_as_int_from_SI Get a generic option from a human readable size in SI units, e.g 10MB
Method gpg_signing_command What program should be used to sign signatures?
Method log_format What log format should be used
Method validate_signatures_in_log Show GPG signature validity in log
Method acceptable_keys Comma separated list of key patterns acceptable to
Method post_commit An ordered list of python functions to call.
Method user_email Return just the email component of a username.
Method username Return email-style username.
Method ensure_username Raise errors.NoWhoami if username is not set.
Method signature_checking What is the current policy for signature checking?.
Method signing_policy What is the current policy for signature checking?.
Method signature_needed Is a signature needed when committing ?.
Method gpg_signing_key GPG user-id to sign commits
Method get_alias Undocumented
Method get_nickname Undocumented
Method get_bzr_remote_path Undocumented
Method suppress_warning Should the warning be suppressed or emitted.
Method get_merge_tools Undocumented
Method find_merge_tool Undocumented
Method _expand_options_in_list Expand options in a list of strings in the configuration context.
Method _expand_options_in_string Expand options in the string in the configuration context.
Method _expand_option Undocumented
def __init__(self, file_name):
Base class for configuration files using an ini-like syntax.
Parametersfile_nameThe configuration file path.
def _create_from_string(self, unicode_bytes, save):
Undocumented
def lock_write(self, token=None):
Takes a write lock in the directory containing the config file.

If the directory doesn't exist it is created.

def unlock(self):
Undocumented
def break_lock(self):
Undocumented
@needs_write_lock
def remove_user_option(self, option_name, section_name=None):
Remove a user option and save the configuration file.
Parametersoption_nameThe option to be removed.
section_nameThe section the option is defined in, default to the default section.
def _write_config_file(self):
Undocumented
API Documentation for Bazaar, generated by pydoctor at 2022-06-16 00:25:16.