Change interface of <for> tag, to understand external data sets.
Change interface of <for> tag, to understand external data sets.
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..28c6fd7
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+*.swp
+.*.swp
+*.pyc
diff --git a/charts.pyc b/charts.pyc
deleted file mode 100644
index c18324a..0000000
Binary files a/charts.pyc and /dev/null differ
diff --git a/compiler.pyc b/compiler.pyc
deleted file mode 100644
index 17a54f4..0000000
Binary files a/compiler.pyc and /dev/null differ
diff --git a/data.pyc b/data.pyc
deleted file mode 100644
index cecd22c..0000000
Binary files a/data.pyc and /dev/null differ
diff --git a/gui.pyc b/gui.pyc
deleted file mode 100644
index 693c407..0000000
Binary files a/gui.pyc and /dev/null differ
diff --git a/pg_backend.pyc b/pg_backend.pyc
deleted file mode 100644
index 25dd200..0000000
Binary files a/pg_backend.pyc and /dev/null differ
diff --git a/reportgen.py b/reportgen.py
index e148dd3..97900ce 100755
--- a/reportgen.py
+++ b/reportgen.py
@@ -176,6 +176,7 @@ class Generator(object):
self.params[name] = self.calculate_value(query,kind)
sqltags = self.xml.findall('sql')
self.sql = dict()
+ self.externals = dict()
for t in sqltags:
self.sql[t.attrib['id']] = t.text
header = TEX_HEADER % (self.title, self.author)
@@ -202,11 +203,20 @@ class Generator(object):
r = r + t
return r,c
+ def get_dataset(name):
+ if name in self.sql:
+ query = self.render(self.sql[name], context)
+ data = self.backend.query(self.conn,query)
+ elif name in self.externals:
+ data = self.externals[name]
+ else;
+ raise KeyError("%s is not a name of SQL query nor a name of external dataset" % name)
+ return data
+
def do_for(self,node,context):
r = ''
qid = node.attrib['query']
- query = self.render(self.sql[qid], context)
- data = self.backend.query(self.conn,query)
+ data = get_dataset(qid)
i = 0
idname = qid+'.#'
for row in data:
diff --git a/reportgen.pyc b/reportgen.pyc
deleted file mode 100644
index 2aafa5e..0000000
Binary files a/reportgen.pyc and /dev/null differ
diff --git a/sqlite_backend.pyc b/sqlite_backend.pyc
deleted file mode 100644
index 6f64970..0000000
Binary files a/sqlite_backend.pyc and /dev/null differ
diff --git a/temp/reportgen.pyc b/temp/reportgen.pyc
deleted file mode 100644
index fb20eb4..0000000
Binary files a/temp/reportgen.pyc and /dev/null differ
diff --git a/widgets.pyc b/widgets.pyc
deleted file mode 100644
index 5266cef..0000000
Binary files a/widgets.pyc and /dev/null differ