py2/3: provide fallback if six is missing.
Change-Id: I3a65268367f3c2fb81429fdd90039f90c1864109 Reviewed-on: https://forge.frm2.tum.de/review/17770 Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de> Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
This commit is contained in:
parent
b3f63b779b
commit
95ba534180
@ -30,7 +30,25 @@ import time
|
|||||||
import types
|
import types
|
||||||
import inspect
|
import inspect
|
||||||
|
|
||||||
import six # for py2/3 compat
|
try:
|
||||||
|
from six import add_metaclass # for py2/3 compat
|
||||||
|
except ImportError:
|
||||||
|
# copied from six v1.10.0
|
||||||
|
def add_metaclass(metaclass):
|
||||||
|
"""Class decorator for creating a class with a metaclass."""
|
||||||
|
def wrapper(cls):
|
||||||
|
orig_vars = cls.__dict__.copy()
|
||||||
|
slots = orig_vars.get('__slots__')
|
||||||
|
if slots is not None:
|
||||||
|
if isinstance(slots, str):
|
||||||
|
slots = [slots]
|
||||||
|
for slots_var in slots:
|
||||||
|
orig_vars.pop(slots_var)
|
||||||
|
orig_vars.pop('__dict__', None)
|
||||||
|
orig_vars.pop('__weakref__', None)
|
||||||
|
return metaclass(cls.__name__, cls.__bases__, orig_vars)
|
||||||
|
return wrapper
|
||||||
|
|
||||||
|
|
||||||
from secop.lib import formatExtendedStack, mkthread
|
from secop.lib import formatExtendedStack, mkthread
|
||||||
from secop.lib.parsing import format_time
|
from secop.lib.parsing import format_time
|
||||||
@ -293,7 +311,7 @@ class ModuleMeta(type):
|
|||||||
# if you want to 'update from the hardware', call self.read_<pname>
|
# if you want to 'update from the hardware', call self.read_<pname>
|
||||||
# the return value of this method will be used as the new cached value and
|
# the return value of this method will be used as the new cached value and
|
||||||
# be returned.
|
# be returned.
|
||||||
@six.add_metaclass(ModuleMeta)
|
@add_metaclass(ModuleMeta)
|
||||||
class Module(object):
|
class Module(object):
|
||||||
"""Basic Module, doesn't do much"""
|
"""Basic Module, doesn't do much"""
|
||||||
# static properties, definitions in derived classes should overwrite earlier ones.
|
# static properties, definitions in derived classes should overwrite earlier ones.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user