summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2019-01-12 01:33:16 +0100
committerJules Laplace <julescarbon@gmail.com>2019-01-12 01:33:16 +0100
commit0fa4c5b7d1e16859f282bdda73bb6af4f4f78b6e (patch)
tree9a280b2220d29d5541a7d47b0b326048fbcc0c6f
parent4a9ce42814708a85919663c92be3938530d3742e (diff)
commenting
-rw-r--r--megapixels/app/models/sql_factory.py20
1 files changed, 19 insertions, 1 deletions
diff --git a/megapixels/app/models/sql_factory.py b/megapixels/app/models/sql_factory.py
index 05984500..a89d89bf 100644
--- a/megapixels/app/models/sql_factory.py
+++ b/megapixels/app/models/sql_factory.py
@@ -62,7 +62,7 @@ def load_sql_dataset(path, replace=False, engine=None, base_model=None):
df = pd.read_csv(fn)
# fix columns that are named "index", a sql reserved word
df.reindex_axis(sorted(df.columns), axis=1)
- df.columns = sorted(table.__table__.columns).keys()
+ # df.columns = sorted(table.__table__.columns).keys()
df.to_sql(name=table.__tablename__, con=engine, if_exists='replace', index=False)
return dataset
@@ -82,12 +82,18 @@ class SqlDataset:
self.base_model = base_model
def describe(self):
+ """
+ List the available SQL tables for a given dataset.
+ """
return {
'name': self.name,
'tables': list(self.tables.keys()),
}
def get_identity(self, id):
+ """
+ Get an identity given an ID.
+ """
table = self.get_table('identity')
# id += 1
identity = table.query.filter(table.record_id <= id).order_by(table.record_id.desc()).first().toJSON()
@@ -99,11 +105,17 @@ class SqlDataset:
}
def search_name(self, q):
+ """
+ Find an identity by name.
+ """
table = self.get_table('identity')
identity_list = table.query.filter(table.fullname.like(q)).order_by(table.fullname.desc()).limit(10)
return identity_list
def get_file_records_for_identities(self, identity_list):
+ """
+ Given a list of identities, map these to file records.
+ """
identities = []
file_record_table = self.get_table('file_record')
for row in identity_list:
@@ -115,6 +127,9 @@ class SqlDataset:
return identities
def select(self, table, id):
+ """
+ Perform a generic select.
+ """
table = self.get_table(table)
if not table:
return None
@@ -126,6 +141,9 @@ class SqlDataset:
return obj.toJSON()
def get_table(self, type):
+ """
+ Get one of these memoized, dynamically generated tables.
+ """
if type in self.tables:
return self.tables[type]
elif type == 'file_record':