Example #1
0
def _class_for_table(session, engine, selectable, base_cls, mapper_kwargs):
    selectable = expression._clause_element_as_expr(selectable)
    mapname = 'Mapped' + _selectable_name(selectable)
    # Py2K
    if isinstance(mapname, unicode):
        engine_encoding = engine.dialect.encoding
        mapname = mapname.encode(engine_encoding)
    # end Py2K

    if isinstance(selectable, Table):
        klass = TableClassType(mapname, (base_cls,), {})
    else:
        klass = SelectableClassType(mapname, (base_cls,), {})

    def _compare(self, o):
        L = list(self.__class__.c.keys())
        L.sort()
        t1 = [getattr(self, k) for k in L]
        try:
            t2 = [getattr(o, k) for k in L]
        except AttributeError:
            raise TypeError('unable to compare with %s' % o.__class__)
        return t1, t2

    # python2/python3 compatible system of
    # __cmp__ - __lt__ + __eq__

    def __lt__(self, o):
        t1, t2 = _compare(self, o)
        return t1 < t2

    def __eq__(self, o):
        t1, t2 = _compare(self, o)
        return t1 == t2

    def __repr__(self):
        L = ["%s=%r" % (key, getattr(self, key, ''))
             for key in self.__class__.c.keys()]
        return '%s(%s)' % (self.__class__.__name__, ','.join(L))

    for m in ['__eq__', '__repr__', '__lt__']:
        setattr(klass, m, eval(m))
    klass._table = selectable
    klass.c = expression.ColumnCollection()
    mappr = mapper(klass,
                   selectable,
                   extension=AutoAdd(session),
                   **mapper_kwargs)

    for k in mappr.iterate_properties:
        klass.c[k.key] = k.columns[0]

    klass._query = session.query_property()
    return klass
Example #2
0
import datetime
from lib.sqlalchemy import Table, Column, String, Integer, DateTime, MetaData, ForeignKey
from lib.sqlalchemy.orm import mapper

metadata = MetaData()

vservers = Table('vserver', metadata,
               Column('id', Integer, primary_key=True),
               Column('name', String),
               Column('ip', String),
               Column('password', String),
               Column('memory', Integer),
               Column('create_date', DateTime)
       )

class Vserver(object):
    def __init__(self, **kwargs):
        self.name = kwargs['name']
        self.ip = kwargs['ip']
        self.password = kwargs['password']
        self.memory = kwargs['memory']
        self.create_date = datetime.datetime.now()
        
    def __repr__(self):
        return "%s di ip %s" %(self.name,self.ip)
        
        
mapper(Vserver, vservers)
Example #3
0
from lib.sqlalchemy import Table, Column, String, Integer, MetaData, ForeignKey
from lib.sqlalchemy.orm import mapper

metadata = MetaData()

users = Table('users', metadata,
        Column('id', Integer, primary_key=True),
        Column('username', String),
        Column('password', String),
        Column('name', String)
    )

class User(object):
    def __init__(self,username,password,name):
        self.username = username
        self.password = password
        self.name = name
        
    def __repr__(self):
        return "%s" % self.name
        

mapper(User, users)
Example #4
0
from lib.sqlalchemy import Table, Column, String, Integer, Text, MetaData, ForeignKey
from lib.sqlalchemy.orm import mapper

metadata = MetaData()

events = Table('event', metadata,
            Column('id', Integer, primary_key=True),
            Column('event_name', String),
            Column('description', Text),
            Column('code', Integer),
            sqlite_autoincrement=True
    )

class Event(object):
    def __init__(self, **kwargs)
        self.event_name = kwargs['event_name']
        self.description = kwargs['description']
        self.code = kwargs['code']
        
    def __repr__(self):
        return self.event_name
        

mapper(Event, events)