1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
|
import datetime
from google.appengine.ext import db
from google.appengine.tools import bulkloader
from google.appengine.api import datastore_types
import sys
sys.path.append("/home/bnewbold/code/equator")
from appengine_django import InstallAppengineHelperForDjango
InstallAppengineHelperForDjango()
from equations.models import *
dstr = '%Y-%m-%d'
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', bool),
])
def HandleEntity(self, entity):
print entity['symbol']
s = 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
return entity
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
return entity
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),
])
#def HandleEntity(self, entity):
# vlist = []
# vs = entity['variables']
# for v in vs:
# vlist.append(v.key().get())
# entity['variables'] = vlist
# print vlist
# return entity
loaders = [SymbolLoader, VariableLoader, EquationLoader]
exporters= [SymbolExporter, VariableExporter, EquationExporter]
|