def _map(function, iterable, *args): if isinstance(iterable, String): if iterable.is_unknow(): return List.from_listt(None, [String.make_unknowt()]) l = [String.from_stringt(None, i) for i in iterable.value] return List.from_listt(None, l) return set([iterable])
def eva_classdef(class_ast, local_namespace): # pf(class_ast) klass = Class(class_ast) name = class_ast.name klass.namespace = class_namespace = Namespace(klass) class_namespace.global_namespace = local_namespace.global_namespace class_namespace.is_class = True class_namespace.klass_type = klass local_namespace.set(name, klass) #TODO decorator_list bases = [] if class_ast.bases: for base_ast in class_ast.bases: base_class = eva(base_ast, local_namespace) bases.append(base_class) klass.base_class = bases # fpath = local_namespace.global_namespace.fpath for ast_node in class_ast.body: # domain.connect(fpath, ast_node.lineno, class_namespace) eva_statement(ast_node, class_namespace) metaklass = class_namespace.get("__metaclass__") if metaklass: for mc in metaklass: if isinstance(mc, Class): mcbs = mc.get_attr("__new__") for mcb in mcbs: # bases to List # class_namespace to Dict call_metacklass(mcb, name, List.from_list(class_ast, bases), Dict.from_dict(class_ast, class_namespace)) elif isinstance(mc, Function): #TODO pass # print 999, name # pp(class_namespace.__dict__) return klass