docs: def get_boolean(self, key, optional=False):
          """
          Tries to fetch a variable from the config and expects it to be a truthy value. This could be a string ("1", "Y")
          or an actual boolean. This is because we use the strtobool function in the case we find a string. The function
          strtobool expects values of the form ("1", "Y", "YES", "true", "True", "t") and so forth for truthy values. The
          variables populated from os env will always be strings, but we should make sure that we set expected boolean
          variables to either truthy/falsy strings conforming to the pattern above or actual boolean values.
          :param key: Variable to look for
          :param optional: Whether to raise ConfigKeyNotFoundError if key was not found.
          :return: bool
          """
          return self._get_typed_value(key, bool, lambda x: bool(util.strtobool(x)), optional)