Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/docs/change_log.rst
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Change Log
==========

Current (0.1.17.dev)
Current (0.2.0.dev)
--------------------

- Further improved partial structs to allow nesting references to themselves as a type (must be "indirect", ie. the type of a pointer, or dynamic array for example).
Expand Down
4 changes: 4 additions & 0 deletions pymhf/extensions/ctypes.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,10 @@ class c_enum32(ctypes.c_int32, Generic[IE]):

_enum_type: Type[IE]

@classmethod
def _members(cls):
return list(cls._enum_type.__members__.keys())

@property
def _enum_value(self) -> IE:
return self._enum_type(self.value)
Expand Down
2 changes: 1 addition & 1 deletion pymhf/gui/gui.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ class WidgetType(Enum):

class Widgets(TypedDict):
buttons: dict[str, Union[int, str]]
comboboxes: dict[str, Union[int, str]]
comboboxes: dict[str, list[tuple[Union[int, str], WidgetType]]]
variables: dict[str, list[tuple[Union[int, str], WidgetType]]]


Expand Down
21 changes: 21 additions & 0 deletions tests/unit/test_c_enums.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
from enum import IntEnum

import pytest

from pymhf.extensions.ctypes import c_enum32


def test_invalid_c_enum32_cases():
with pytest.raises(TypeError):
c_enum32[22]


def test_c_enum_members():
class Alphabet(IntEnum):
A = 0
B = 1
C = 2
D = 3
E = 4

assert c_enum32[Alphabet]._members() == ["A", "B", "C", "D", "E"]
5 changes: 0 additions & 5 deletions tests/unit/test_partial_structs.py
Original file line number Diff line number Diff line change
Expand Up @@ -403,11 +403,6 @@ class Test4(ctypes.Structure):
a: Annotated[ctypes.c_int32, "hi"]


def test_invalid_c_enum32_cases():
with pytest.raises(TypeError):
c_enum32[22]


T = TypeVar("T", bound=Union[ctypes._SimpleCData, ctypes.Structure])


Expand Down