Must explicitly convert IntEnum to int to use equality comparison
Environment
- Pythonnet version: 3.0.0-a2
- Python version: 3.9.10
- Operating System: Windows 10 Pro - 21H2 - 19044.1766
- .NET Runtime: Unity/Mono
Details
- When trying to compare the equality of Python IntEnum instances from C#, they must be explicitly converted to an int.
# in my_module.py file class MyEnum(enum.IntEnum): OK = 1 ERROR = 2 def get_status(): return MyEnum.OK
No crash.
PythonRunner.EnsureInitialized(); using (Py.GIL()) { // Import our module dynamic my_module = Py.Import("my_module"); dynamic MyEnum= my_module .MyEnum; // Call the Python func on C# side dynamic status = my_module.get_status(); if ((int)status == (int)MyEnum.OK) // <-- have to convert to int if (status == MyEnum.OK) // when not converting to int, they are not evaluated as equal (no crash) }