Coverage for databooks/config.py: 100%

13 statements  

« prev     ^ index     » next       coverage.py v7.16.2, created at 2026-10-20 15:04 +0200

1"""Configuration functions, and settings objects.""" 

2 

3from pathlib import Path 

4from typing import Any, Dict, List, Optional 

5 

6from databooks.common import find_common_parent, find_obj 

7from databooks.git_utils import get_repo 

8from databooks.logging import get_logger 

9 

10TOML_CONFIG_FILE = "pyproject.toml" 

11 

12ConfigFields = Dict[str, Any] 

13 

14logger = get_logger(__file__) 

15 

16 

17def get_config(target_paths: List[Path], config_filename: str) -> Optional[Path]: 

18 """Find configuration file from CLI target paths.""" 

19 common_path = find_common_parent(paths=target_paths) 

20 repo = get_repo(common_path) 

21 repo_dir = getattr(repo, "working_dir", None) 

22 

23 return find_obj( 

24 obj_name=config_filename, 

25 start=Path(repo_dir) if repo_dir is not None else Path(common_path.anchor), 

26 finish=common_path, 

27 )