48 lines
766 B
Python
48 lines
766 B
Python
'''
|
|
content -> converted
|
|
state -> transformed
|
|
'''
|
|
|
|
from co3 import CO3, collate
|
|
from co3.databases import SQLiteDatabase
|
|
from co3 import Mapper
|
|
|
|
|
|
class Tomato(CO3):
|
|
def __init__(self, size, ripe):
|
|
self.size = size
|
|
self.ripe = ripe
|
|
|
|
@property
|
|
def attributes(self):
|
|
return vars(self)
|
|
|
|
@collate('diced')
|
|
def dice(self):
|
|
return self.size / 2
|
|
|
|
@collate('roasted')
|
|
def roast(self):
|
|
return self.size / 2
|
|
|
|
|
|
tomato_table = sa.Table()
|
|
|
|
mapper = Mapper()
|
|
mapper.attach(
|
|
Tomato,
|
|
tomato_table
|
|
)
|
|
|
|
|
|
tomato = Tomato(5, False)
|
|
mapper.collect(tomato, for='diced')
|
|
|
|
db = SQLiteDatabse('resource.sqlite')
|
|
db.sync(mapper)
|
|
|
|
dict_results = db.select(
|
|
mapper.compose(Tomato),
|
|
tomato_table.c.size == 5
|
|
)
|