From f78236c4113d0d4e5019df316125e86a63befd07 Mon Sep 17 00:00:00 2001 From: bryan newbold Date: Mon, 15 Jun 2009 15:28:21 -0400 Subject: more changes; BROKEN? --- load_export.py | 106 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 load_export.py (limited to 'load_export.py') diff --git a/load_export.py b/load_export.py new file mode 100644 index 0000000..ab05b55 --- /dev/null +++ b/load_export.py @@ -0,0 +1,106 @@ +import datetime +from google.appengine.ext import db +from google.appengine.tools import bulkloader +from google.appengine.api import datastore_types +from equations.models import * + +dstr = '%m/%d/%Y' + +class SymbolLoader(bulkloader.Loader): + def __init__(self): + bulkloader.Loader.__init__(self, 'Symbol', + [('name', str), + ('latex', str), + ('unicode', str), + ]) + +class SymbolExporter(bulkloader.Exporter): + def __init__(self): + bulkloader.Exporter.__init__(self, 'Symbol', + [('name', str, None), + ('latex', str, None), + ('unicode', str, None), + ]) + +class VariableLoader(bulkloader.Loader): + def __init__(self): + bulkloader.Loader.__init__(self, 'Variable', + [('name', str), + ('latex', str), + ('unicode', str), + ('description', str), + ('symbol', str), + ('references', str.split), + ('isgeneric', boolean), + ]) + + def HandleEntity(self, entity): + f = Symbol.all().filter("name =", entity['symbol']).get() + entity['symbol'] = f.key() + + reflist = [] + refstr = eval(entity['references'][0]) + for ref in refstr: + r = datastore_types.Link(ref) + reflist.append(r) + entity['references'] = reflist + +class VariableExporter(bulkloader.Exporter): + def __init__(self): + bulkloader.Exporter.__init__(self, 'Variable', + [('name', str, None), + ('latex', str, None), + ('unicode', str, None), + ('description', str, None), + ('symbol', str, None), + ('references', str, None), + ('isgeneric', str, None), + ]) + +class EquationLoader(bulkloader.Loader): + def __init__(self): + bulkloader.Loader.__init__(self, 'Equation', + [('name', str), + ('latex', str), + ('unicode', str), + ('description', str), + ('created', + lambda x: datetime.datetime.strptime(x, dstr).date()), + ('updated', + lambda x: datetime.datetime.strptime(x, dstr).date()), + ('variables', str.split), + ('references', str.split), + ('userurl', datastore_types.Link), + ]) + + def HandleEntity(self, entity): + vlist = [] + vstr = eval(entity['variables'][0]) + for var in vstr: + v = Variable.all().filter("name =", var).get() + vlist.append(v.key()) + entity['variables'] = vlist + + reflist = [] + refstr = eval(entity['references'][0]) + for ref in refstr: + r = datastore_types.Link(ref) + reflist.append(r) + entity['references'] = reflist + +class EquationExporter(bulkloader.Exporter): + def __init__(self): + bulkloader.Exporter.__init__(self, 'Equation', + [('name', str, None), + ('latex', str, None), + ('unicode', str, None), + ('description', str, None), + ('created', str, None), + ('updated', str, None), + ('variables', str, None), + ('references', str, None), + ('userurl', str, None), + ]) + +loaders = [SymbolLoader, VariableLoader, EquationLoader] +exporters= [SymbolExporter, VariableExporter, EquationExporter] -- cgit v1.2.3