Skip to content

Commit d0d831a

Browse files
JulienBortolussiAdaliaiss
authored andcommitted
Anod.get_qualifier return typed values
Make get_qualifier return a bool for tag qualifier and a string for key-value qualifier.
1 parent 7483c9f commit d0d831a

File tree

3 files changed

+9
-6
lines changed

3 files changed

+9
-6
lines changed

src/e3/anod/qualifiers_manager.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -783,9 +783,9 @@ def __get_helper(self) -> str:
783783

784784
return "\n".join(helper_list)
785785

786-
def __getitem__(self, key: str) -> str:
786+
def __getitem__(self, key: str) -> str | bool:
787787
"""Return the parsed value of the requested qualifier.
788788
789789
:return: The qualifier value after the parsing.
790790
"""
791-
return str(self.__get_parsed_qualifiers()[key])
791+
return self.__get_parsed_qualifiers()[key]

src/e3/anod/spec.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -406,7 +406,7 @@ def __getitem__(self, key: str) -> Any:
406406
elif key.isupper():
407407
return getattr(self.build_space, key.lower(), None)
408408

409-
def get_qualifier(self, qualifier_name: str) -> str | None:
409+
def get_qualifier(self, qualifier_name: str) -> str | bool | None:
410410
"""Return a qualifier value.
411411
412412
Requires that qualifiers_manager attribute has been initialized and its parse
@@ -420,7 +420,7 @@ def get_qualifier(self, qualifier_name: str) -> str | None:
420420
assert self.qualifiers_manager is not None
421421
return self.qualifiers_manager[qualifier_name]
422422
else:
423-
return None
423+
return self.parsed_qualifier.get(qualifier_name, None)
424424

425425
@classmethod
426426
def primitive(

tests/tests_e3/anod/test_qualifier_manager.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,12 @@ def declare_qualifiers_and_components(self, qualifiers_manager):
3232
simple = Simple("", kind="build")
3333
assert simple.build_space_name == "simple"
3434
assert simple.component is None
35-
assert simple.get_qualifier("debug") == "False"
35+
assert not simple.get_qualifier("debug")
3636

3737
simple_debug = Simple("debug", kind="build")
3838
assert simple_debug.build_space_name == "simple_debug"
3939
assert simple_debug.component is None
40-
assert simple_debug.get_qualifier("debug") == "True"
40+
assert simple_debug.get_qualifier("debug")
4141

4242
# Disable the name generator
4343
class Base(Anod):
@@ -46,6 +46,9 @@ class Base(Anod):
4646
base = Base("", kind="build")
4747
assert base.get_qualifier("debug") is None
4848

49+
base = Base("debug=bar", kind="build")
50+
assert base.get_qualifier("debug") == "bar"
51+
4952

5053
def test_qualifiers_manager_errors():
5154
class AnodDummy(Anod):

0 commit comments

Comments
 (0)