Skip to content

Commit

Permalink
#153 - Save point
Browse files Browse the repository at this point in the history
  • Loading branch information
antaenc committed Jan 23, 2025
1 parent c2cf7fd commit f5503ae
Showing 1 changed file with 31 additions and 16 deletions.
47 changes: 31 additions & 16 deletions src/senzing/szengineflags.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,24 @@
# SzEngineFlags class
# -----------------------------------------------------------------------------

# TODO
# In [44]: SzEngineFlags.__members__["SZ_WITH_INFO"]
# Out[44]: <SzEngineFlags.SZ_WITH_INFO: 4611686018427387904>

# In [45]: SzEngineFlags["SZ_WITH_INFO"]
# Out[45]: <SzEngineFlags.SZ_WITH_INFO: 4611686018427387904>

# In [46]: SzEngineFlags.SZ_WITH_INFO
# Out[46]: <SzEngineFlags.SZ_WITH_INFO: 4611686018427387904>


class SzEngineFlags(IntFlag):
"""Engine Flags"""

@classmethod
# TODO Check everywhere combine_flags is used
# TODO Update all doc strings
# TODO Instead of raising return -1 ?
# def combine_flags(cls: type[TSzEngineFlags], flags: Union[List[Self], List[str]]) -> TSzEngineFlags:
def combine_flags(cls: type[TSzEngineFlags], *flags: TSzEngineFlags) -> TSzEngineFlags:
"""
Expand Down Expand Up @@ -82,28 +93,32 @@ def combine_flags(cls: type[TSzEngineFlags], *flags: TSzEngineFlags) -> TSzEngin
# TODO
return result

# @classmethod
# # TODO Is this needed?
# # TODO Change to get_flag_integer
# # TODO Make this return a dict on flags or add a _flags_to_integers that calls this one?
# # def get_flag_int(cls, flag: Union[Self, str]) -> int:
# def flag_to_integer(cls: type[TSzEngineFlags], flag: TSzEngineFlags) -> int:
# """TODO:"""
# try:
# # TODO
# # if isinstance(flag, str):
# # flag = cls[flag.upper()]
# flag_int = flag.value
# except (AttributeError, KeyError) as err:
# raise SzError(f"{err} is not a valid engine flag") from err
# return flag_int

@classmethod
# TODO Is this needed?
# TODO Change to get_flag_integer
# TODO Make this return a dict on flags or add a _flags_to_integers that calls this one?
# def get_flag_int(cls, flag: Union[Self, str]) -> int:
def flag_to_integer(cls: type[TSzEngineFlags], flag: TSzEngineFlags) -> int:
"""TODO:"""
try:
# TODO
# if isinstance(flag, str):
# flag = cls[flag.upper()]
flag_int = flag.value
except (AttributeError, KeyError) as err:
raise SzError(f"{err} is not a valid engine flag") from err
return flag_int
def get_flags(cls):
# return {member.name: member & member == member for member in cls}
return {member.name: member.value for member in cls}

# TODO
# TODO Reorder methods
# TODO Make this return a dict on integers or add an integers_to_flags that calls this one?
@classmethod
# def integer_to_flag(cls: type[TSzEngineFlags], integer: int) -> list[str, None]:
def integer_to_flag(cls: type[TSzEngineFlags], integer: int) -> Dict[str, Any]:
def get_flag_by_integer(cls: type[TSzEngineFlags], integer: int) -> Dict[str, Any]:
"""Converts an integer value to a list of corresponding IntFlag names."""

flag_dict: Dict[str, Any] = {"primary_engine_flag": "", "sub_engine_flags": []}
Expand Down

0 comments on commit f5503ae

Please sign in to comment.