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 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.parsing import format_time
|
||||
@ -293,7 +311,7 @@ class ModuleMeta(type):
|
||||
# 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
|
||||
# be returned.
|
||||
@six.add_metaclass(ModuleMeta)
|
||||
@add_metaclass(ModuleMeta)
|
||||
class Module(object):
|
||||
"""Basic Module, doesn't do much"""
|
||||
# static properties, definitions in derived classes should overwrite earlier ones.
|
||||
|
Loading…
x
Reference in New Issue
Block a user