"khard.config"
**************

Loading and validation of the configuration file


Module Contents
===============

khard.config.logger

exception khard.config.ConfigError

   Bases: "Exception"

   Errors during config file parsing

khard.config.validate_command(value: List[str]) -> List[str]

   Special validator to check shell commands

   The input must either be a list of strings or a string that
   shlex.split can parse into such.

   Parameters:
      **value** -- the config value to validate

   Returns:
      the command after validation

   Raises:
      validate.ValidateError

khard.config.validate_action(value: str) -> str

   Check that the given value is a valid action.

   Parameters:
      **value** -- the config value to check

   Returns:
      the same value

   Raises:
      validate.ValidateError

khard.config.validate_private_objects(value: List[str]) -> List[str]

   Check that the private objects are reasonable

   Parameters:
      **value** -- the config value to check

   Returns:
      the list of private objects

   Raises:
      validate.ValidateError

class khard.config.Config(config_file: Optional[str] = None)

   Parse and validate the config file with configobj.

   supported_vcard_versions = ['3.0', '4.0']

   classmethod _load_config_file(cls, config_file: Optional[str])

      Find and load the config file.

      Parameters:
         **config_file** -- the path to the config file to load

      Returns:
         the loaded config file

   static _validate(config: configobj.ConfigObj)

   _set_attributes(self)

      Set the attributes from the internal config instance on self.

   init_address_books(self)

      Initialize the internal address book collection.

      This method should only be called *after* merging in the command
      line options as they can hold some options that are relevant for
      the loading of the address books.

   get_address_books(self, names: Iterable[str], queries: Dict[str, Query])

      Load all address books with the given names.

      Parameters:
         * **names** -- the address books to load

         * **queries** -- a mapping of address book names to search
           queries

      Returns:
         the loaded address books

   merge(self, other: Union[configobj.ConfigObj, Dict])

      Merge the config with some other dict or ConfigObj

      Parameters:
         **other** -- the other dict or ConfigObj to merge into self

      Returns:
         None

   merge_args(self, args: Namespace)

      Merge options from a flat argparse object.

      Parameters:
         **args** (*argparse.Namespace*) -- the parsed arguments to
         incorperate
