From 61ac5c8c5d33055b2f691211fa049407e56afa5c Mon Sep 17 00:00:00 2001 From: Clement Rouault Date: Thu, 10 Aug 2017 17:07:41 +0200 Subject: [PATCH] Fix EnumValue pickling for protocol 2 --- ctypes_generation/generate.py | 4 ++++ windows/generated_def/winstructs.py | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/ctypes_generation/generate.py b/ctypes_generation/generate.py index 3b3b275..bd2e6f2 100644 --- a/ctypes_generation/generate.py +++ b/ctypes_generation/generate.py @@ -270,6 +270,10 @@ class StructGenerator(CtypesGenerator): def __repr__(self): return "{0}.{1}({2})".format(self.enum_name, self.name, hex(self)) + # Fix pickling with protocol 2 + def __getnewargs__(self, *args): + return self.enum_name, self.name, int(self) + class EnumType(DWORD): values = () diff --git a/windows/generated_def/winstructs.py b/windows/generated_def/winstructs.py index 78eddba..e1d251e 100644 --- a/windows/generated_def/winstructs.py +++ b/windows/generated_def/winstructs.py @@ -103,6 +103,10 @@ class EnumValue(Flag): def __repr__(self): return "{0}.{1}({2})".format(self.enum_name, self.name, hex(self)) + # Fix pickling with protocol 2 + def __getnewargs__(self, *args): + return self.enum_name, self.name, int(self) + class EnumType(DWORD): values = ()