Coverage for src/starlord/_config.py: 63%

27 statements  

« prev     ^ index     » next       coverage.py v7.10.7, created at 2025-10-01 05:55 +0000

1import os 

2import platform 

3from pathlib import Path 

4from types import SimpleNamespace 

5 

6config = SimpleNamespace( 

7 system=platform.system(), 

8 base_dir=Path.home() / ".starlord", 

9 cache_dir=Path.home() / ".starlord" / "cycache", 

10 grid_dir=Path.home() / ".starlord" / "grids", 

11) 

12 

13 

14def _load_config(): 

15 config.system = platform.system() 

16 if "STARLORD_DATA_DIR" in os.environ.keys(): 

17 config.base_dir = Path(os.environ['STARLORD_DATA_DIR']) 

18 assert config.base_dir.parent.exists() 

19 config.base_dir.mkdir(exist_ok=True) 

20 elif config.system == "Linux": 

21 assert Path.home().exists() 

22 config.base_dir = Path.home() / ".config" / "starlord" 

23 config.base_dir.mkdir(parents=True, exist_ok=True) 

24 elif config.system == "Darwin": 

25 assert Path.home().exists() 

26 config.base_dir = Path.home() / "Library" / "Application Support" / "starlord" 

27 config.base_dir.mkdir(parents=True, exist_ok=True) 

28 else: 

29 assert Path.home().exists() 

30 config.base_dir = Path.home() / ".starlord" 

31 config.base_dir.mkdir(parents=True, exist_ok=True) 

32 config.cache_dir = config.base_dir / "cycache" 

33 config.cache_dir.mkdir(exist_ok=True) 

34 config.grid_dir = config.base_dir / "grids" 

35 config.grid_dir.mkdir(exist_ok=True) 

36 

37_load_config()