pythonize.py

来自「LINUX下」· Python 代码 · 共 39 行

PY
39
字号
"""some dbus to python type conversions-decorator for interface-wrapper class for proxy"""def pythonize(var):    """translates dbus types back to basic python  types."""    if isinstance(var, list):        return [pythonize(value) for value in var]    if isinstance(var, tuple):        return tuple([pythonize(value) for value in var])    if isinstance(var, dict):        return dict(        [(pythonize(key), pythonize(value)) for key, value in var.iteritems()]        )    for klass in [unicode, str, bool, int, float, long]:        if isinstance(var,klass):            return klass(var)    return vardef pythonize_call(func):    def deco(*args,**kwargs):        return pythonize(func(*args, **kwargs))    return decodef pythonize_interface(func):    def deco(*args, **kwargs):        args = pythonize(args)        kwargs = pythonize(kwargs)        return func(*args, **kwargs)    return decoclass PythonizeProxy(object):    def __init__(self,proxy):        self.proxy = proxy    def __getattr__(self, key):        return pythonize_call(getattr(self.proxy, key))

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?