+ def get_str_list(self, name: str) -> Optional[List[str]]:
+ """ Return the given configuration parameter as a list of strings.
+ The values are assumed to be given as a comma-sparated list and
+ will be stripped before returning them. On empty values None
+ is returned.
+ """
+ raw = getattr(self, name)
+
+ return [v.strip() for v in raw.split(',')] if raw else None
+
+
+ def get_path(self, name: str) -> Optional[Path]:
+ """ Return the given configuration parameter as a Path.
+ If a relative path is configured, then the function converts this
+ into an absolute path with the project directory as root path.
+ If the configuration is unset, None is returned.
+ """
+ value = getattr(self, name)
+ if not value:
+ return None
+
+ cfgpath = Path(value)
+
+ if not cfgpath.is_absolute():
+ cfgpath = self.project_dir / cfgpath
+
+ return cfgpath.resolve()
+
+
+ def get_libpq_dsn(self) -> str: