diff options
| author | Jules Laplace <julescarbon@gmail.com> | 2019-01-12 01:33:16 +0100 |
|---|---|---|
| committer | Jules Laplace <julescarbon@gmail.com> | 2019-01-12 01:33:16 +0100 |
| commit | 0fa4c5b7d1e16859f282bdda73bb6af4f4f78b6e (patch) | |
| tree | 9a280b2220d29d5541a7d47b0b326048fbcc0c6f /megapixels | |
| parent | 4a9ce42814708a85919663c92be3938530d3742e (diff) | |
commenting
Diffstat (limited to 'megapixels')
| -rw-r--r-- | megapixels/app/models/sql_factory.py | 20 |
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': |
