Beispiel #1
0
    def add_ormobject(self, orm_type, orm_name):
        if orm_type in dt.done:
            return
        dt.done.add(orm_type)
        module_name = orm_type.__module__
        pymodule = namedAny(module_name)
        assert pymodule
        module = MANAGER.astng_from_module(pymodule)
        assert module
        class_node = module[orm_name]

        t = ''
        t += 'class %s:\n' % (orm_name, )

        t += '    q = None\n'
        t += '    _connection = None\n'

        orm_ti = dt.orm_classes.get(orm_name)
        for name in sorted(orm_ti.get_column_names()):
            t += '    %s = None\n' % (name, )

        for name, class_name in sorted(orm_ti.get_foreign_columns()):
            self.add_ormobject(dt.orm_classes[class_name].orm_type, class_name)
            t += '    %s = None\n' % (class_name, )
            t += '    %s = %s()\n' % (name, class_name)

        for name, class_name in sorted(orm_ti.get_single_joins()):
            self.add_ormobject(dt.orm_classes[class_name].orm_type, class_name)
            t += '    %s = %s()\n' % (name, class_name)

        t += '\n'
        nodes = self.builder.string_build(t)
        for key, value in nodes[orm_name].items():
            class_node.locals[key] = [value]
Beispiel #2
0
def builtin_lookup(name):
    """lookup a name into the builtin module
    return the list of matching statements and the astng for the builtin
    module
    """
    builtinastng = MANAGER.astng_from_module(__builtin__)
    if name == '__dict__':
        return builtinastng, ()
    try:
        stmts = builtinastng.locals[name]
    except KeyError:
        stmts = ()
    return builtinastng, stmts
Beispiel #3
0
def builtin_lookup(name):
    """lookup a name into the builtin module
    return the list of matching statements and the astng for the builtin
    module
    """
    # TODO : once there is no more monkey patching, make a BUILTINASTNG const
    builtinastng = MANAGER.astng_from_module(__builtin__)
    if name == '__dict__':
        return builtinastng, ()
    try:
        stmts = builtinastng.locals[name]
    except KeyError:
        stmts = ()
    return builtinastng, stmts
Beispiel #4
0
def builtin_lookup(name):
    """lookup a name into the builtin module
    return the list of matching statements and the astng for the builtin
    module
    """
    # TODO : once there is no more monkey patching, make a BUILTINASTNG const
    builtinastng = MANAGER.astng_from_module(__builtin__)
    if name == '__dict__':
        return builtinastng, ()
    try:
        stmts = builtinastng.locals[name]
    except KeyError:
        stmts = ()
    return builtinastng, stmts
Beispiel #5
0
    def add_ormobject(self, orm_type, orm_name):
        if orm_type in dt.done:
            return
        dt.done.add(orm_type)
        module_name = orm_type.__module__
        pymodule = namedAny(module_name)
        assert pymodule
        module = MANAGER.astng_from_module(pymodule)
        assert module
        class_node = module[orm_name]

        t = ''
        t += 'class %s:\n' % (orm_name, )

        t += '    q = None\n'
        t += '    _connection = None\n'

        orm_ti = dt.orm_classes.get(orm_name)
        if orm_ti is not None:
            for name in sorted(orm_ti.get_column_names()):
                t += '    %s = None\n' % (name, )

            for name, class_name in sorted(orm_ti.get_foreign_columns()):
                self.add_ormobject(dt.orm_classes[class_name].orm_type,
                                   class_name)
                t += '    %s = None\n' % (class_name, )
                t += '    %s = %s()\n' % (name, class_name)

            for name, class_name in sorted(orm_ti.get_single_joins()):
                self.add_ormobject(
                    dt.orm_classes[class_name].orm_type,
                    class_name)
                t += '    %s = %s()\n' % (name, class_name)

        t += '\n'
        nodes = self.builder.string_build(t)
        for key, value in nodes[orm_name].items():
            class_node.locals[key] = [value]