<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_path(self, key, rel_to_cwd=False, rel_to_conf=False):
 """ Retrieve a path from the config, resolving it against the invokation directory or the configuration file directory, depending on whether it was passed through the command-line or the configuration file. Args: key: str, the key to lookup the path with Returns: str: The path, or `None` """

        if key in self.__cli:
            path = self.__cli[key]
            from_conf = False
        else:
            path = self.__config.get(key)
            from_conf = True

        if not isinstance(path, str):
            return None

        res = self.__abspath(path, from_conf)

        if rel_to_cwd:
            return os.path.relpath(res, self.__invoke_dir)
        if rel_to_conf:
            return os.path.relpath(res, self.__conf_dir)

        return self.__abspath(path, from_conf)