From 1e5c28f36b0fd2d5ac1683c88d48e3d7c243e993 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 14 Apr 2024 22:18:22 +0200 Subject: Adding upstream version 0.1.28. Signed-off-by: Daniel Baumann --- .../d_4f754ff76d8638bb_mapper_code_py.html | 176 +++++++++++++++++++++ 1 file changed, 176 insertions(+) create mode 100644 coverage-report/d_4f754ff76d8638bb_mapper_code_py.html (limited to 'coverage-report/d_4f754ff76d8638bb_mapper_code_py.html') diff --git a/coverage-report/d_4f754ff76d8638bb_mapper_code_py.html b/coverage-report/d_4f754ff76d8638bb_mapper_code_py.html new file mode 100644 index 0000000..7b7059c --- /dev/null +++ b/coverage-report/d_4f754ff76d8638bb_mapper_code_py.html @@ -0,0 +1,176 @@ + + + + + Coverage for src/debputy/manifest_parser/mapper_code.py: 86% + + + + + +
+
+

+ Coverage for src/debputy/manifest_parser/mapper_code.py: + 86% +

+ +

+ 32 statements   + + + + +

+

+ « prev     + ^ index     + » next +       + coverage.py v7.2.7, + created at 2024-04-07 12:14 +0200 +

+ +
+
+
+

1from typing import ( 

+

2 TypeVar, 

+

3 Optional, 

+

4 Union, 

+

5 List, 

+

6 Callable, 

+

7) 

+

8 

+

9from debputy.manifest_parser.exceptions import ManifestTypeException 

+

10from debputy.manifest_parser.parser_data import ParserContextData 

+

11from debputy.manifest_parser.util import AttributePath 

+

12from debputy.packages import BinaryPackage 

+

13from debputy.util import assume_not_none 

+

14 

+

15S = TypeVar("S") 

+

16T = TypeVar("T") 

+

17 

+

18 

+

19def type_mapper_str2package( 

+

20 raw_package_name: str, 

+

21 ap: AttributePath, 

+

22 opc: Optional[ParserContextData], 

+

23) -> BinaryPackage: 

+

24 pc = assume_not_none(opc) 

+

25 if "{{" in raw_package_name: 

+

26 resolved_package_name = pc.substitution.substitute(raw_package_name, ap.path) 

+

27 else: 

+

28 resolved_package_name = raw_package_name 

+

29 

+

30 package_name_in_message = raw_package_name 

+

31 if resolved_package_name != raw_package_name: 

+

32 package_name_in_message = f'"{resolved_package_name}" ["{raw_package_name}"]' 

+

33 

+

34 if not pc.is_known_package(resolved_package_name): 34 ↛ 35line 34 didn't jump to line 35, because the condition on line 34 was never true

+

35 package_names = ", ".join(pc.binary_packages) 

+

36 raise ManifestTypeException( 

+

37 f'The value {package_name_in_message} (from "{ap.path}") does not reference a package declared in' 

+

38 f" debian/control. Valid options are: {package_names}" 

+

39 ) 

+

40 package_data = pc.binary_package_data(resolved_package_name) 

+

41 if package_data.is_auto_generated_package: 41 ↛ 42line 41 didn't jump to line 42, because the condition on line 41 was never true

+

42 package_names = ", ".join(pc.binary_packages) 

+

43 raise ManifestTypeException( 

+

44 f'The package name {package_name_in_message} (from "{ap.path}") references an auto-generated package.' 

+

45 " However, auto-generated packages are now permitted here. Valid options are:" 

+

46 f" {package_names}" 

+

47 ) 

+

48 return package_data.binary_package 

+

49 

+

50 

+

51def wrap_into_list( 

+

52 x: T, 

+

53 _ap: AttributePath, 

+

54 _pc: Optional["ParserContextData"], 

+

55) -> List[T]: 

+

56 return [x] 

+

57 

+

58 

+

59def normalize_into_list( 

+

60 x: Union[T, List[T]], 

+

61 _ap: AttributePath, 

+

62 _pc: Optional["ParserContextData"], 

+

63) -> List[T]: 

+

64 return x if isinstance(x, list) else [x] 

+

65 

+

66 

+

67def map_each_element( 

+

68 mapper: Callable[[S, AttributePath, Optional["ParserContextData"]], T], 

+

69) -> Callable[[List[S], AttributePath, Optional["ParserContextData"]], List[T]]: 

+

70 def _generated_mapper( 

+

71 xs: List[S], 

+

72 ap: AttributePath, 

+

73 pc: Optional["ParserContextData"], 

+

74 ) -> List[T]: 

+

75 return [mapper(s, ap[i], pc) for i, s in enumerate(xs)] 

+

76 

+

77 return _generated_mapper 

+
+ + + -- cgit v1.2.3