Coverage for harbor_cli/dirs.py: 58%

17 statements  

« prev     ^ index     » next       coverage.py v6.5.0, created at 2023-02-09 12:09 +0100

1from __future__ import annotations 

2 

3from pathlib import Path 

4 

5from loguru import logger 

6from platformdirs import PlatformDirs 

7 

8from .__about__ import APP_NAME 

9from .__about__ import AUTHOR 

10from .exceptions import DirectoryCreateError 

11 

12_PLATFORM_DIR = PlatformDirs(APP_NAME, AUTHOR) 

13CONFIG_DIR = Path(_PLATFORM_DIR.user_config_dir) 

14LOGS_DIR = Path(_PLATFORM_DIR.user_log_dir) 

15 

16 

17def init_directories() -> None: 

18 for directory in [CONFIG_DIR, LOGS_DIR]: 

19 try: 

20 directory.mkdir(parents=True, exist_ok=True) 

21 except Exception as e: 

22 # TODO: deduplicate these messages 

23 logger.bind(exception=e).error( 

24 f"Unable to create directory {directory}: {e}" 

25 ) 

26 raise DirectoryCreateError(f"Unable to create directory {directory}") from e