From 8c288b8a58f265d3670266318468e05f083e9805 Mon Sep 17 00:00:00 2001 From: "W. Trevor King" Date: Thu, 17 Jul 2014 10:35:00 -0700 Subject: [PATCH] constant: Use dir(comedi.wrapped) when comedi.wrapped exists Since 371dcc5 (swig: remove comedi_ prefix from the function names, 2014-01-31, released in comedilib 0.10.2), dir(comedi) no longer lists the meaty-bits: >>> import comedi >>> comedi.CR_ALT_FILTER 67108864 >>> [attr for attr in dir(comedi) if attr.startswith('CR_')] Instead, they have shifted to comedi.wrapped: >>> [attr for attr in dir(comedi.wrapped) if attr.startswith('CR_')] ['CR_ALT_FILTER', 'CR_ALT_SOURCE', 'CR_DEGLITCH', 'CR_DITHER', 'CR_EDGE', 'CR_FLAGS_MASK', 'CR_INVERT'] This commit adjusts pycomedi to use comedi.wrapped when it exists, so pycomedi will work with the new comedilib (and continue working with the old comedilibs). I also have to remove 'COMEDI_' from the prefixes that contain it to catch up with 371dcc5: +%rename("%(strip:[COMEDI_])s", regextarget=1) "COMEDI_.*"; Reported-by: Colin Jermain --- pycomedi/constant.pyx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pycomedi/constant.pyx b/pycomedi/constant.pyx index 196650a..41c669c 100644 --- a/pycomedi/constant.pyx +++ b/pycomedi/constant.pyx @@ -231,7 +231,12 @@ class _Enum (list): translation = {} self._name_keys = {} self._value_keys = {} - for attr in dir(_comedi): + mod = _comedi + if hasattr(mod, 'wrapped'): + mod = mod.wrapped + if prefix.startswith('COMEDI_'): + prefix = prefix[len('COMEDI_'):] + for attr in dir(mod): if attr.startswith(prefix): item_name = self._item_name(attr, prefix, translation) if self._is_ignored(item_name, blacklist, whitelist): -- 2.26.2