def __init__(self, f): self._check_type(f) self.code = f.__code__ if f.__defaults__: self.defaults = [can(fd) for fd in f.__defaults__] else: self.defaults = None if f.__kwdefaults__: self.kwdefaults = can_dict(f.__kwdefaults__) else: self.kwdefaults = None if f.__annotations__: self.annotations = can_dict(f.__annotations__) else: self.annotations = None closure = py3compat.get_closure(f) if closure: self.closure = tuple(can(cell) for cell in closure) else: self.closure = None self.module = f.__module__ or '__main__' self.__name__ = f.__name__ self.buffers = []
def get_object(self, g=None): cell_contents = uncan(self.cell_contents, g) def inner(): return cell_contents return py3compat.get_closure(inner)[0]
def _get_cell_type(a=None): """the type of a closure cell doesn't seem to be importable, so just create one """ def inner(): return a return type(py3compat.get_closure(inner)[0])
def __init__(self, f): self._check_type(f) self.code = f.__code__ if f.__defaults__: self.defaults = [ can(fd) for fd in f.__defaults__ ] else: self.defaults = None closure = py3compat.get_closure(f) if closure: self.closure = tuple( can(cell) for cell in closure ) else: self.closure = None self.module = f.__module__ or '__main__' self.__name__ = f.__name__ self.buffers = []
def __init__(self, f): # type: (object) -> object self._check_type(f) self.code = f.__code__ if f.__defaults__: self.defaults = [can(fd) for fd in f.__defaults__] else: self.defaults = None closure = py3compat.get_closure(f) if closure: self.closure = tuple(can(cell) for cell in closure) else: self.closure = None self.module = f.__module__ or '__main__' self.__name__ = f.__name__ self.buffers = []