From cd630834a985be4b39a673d022e180de3ff20517 Mon Sep 17 00:00:00 2001 From: Michaƫl Ball Date: Sat, 13 Dec 2014 16:41:35 +0000 Subject: Initial commit --- common/utils.py | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 common/utils.py (limited to 'common/utils.py') diff --git a/common/utils.py b/common/utils.py new file mode 100644 index 0000000..484179a --- /dev/null +++ b/common/utils.py @@ -0,0 +1,57 @@ +def make_where_clause(params): + """Create a where clause for each key-value pair in a dict, joined + by AND. + + Parameters + ---------- + params : dict + A dict of keys and values + """ + + where_items = [] + where_clause = None + + try: + for key in params.keys(): + where_items.append("%s=:%s" % (key, key)) + + where_statement = None + if len(where_items) > 1: + where_statement = " AND ".join(where_items) + else: + where_statement = where_items[0] + + where_clause = " ".join(("WHERE", where_statement)) + except AttributeError: + pass + + return where_clause + + +def update_clause_from_dict(data): + """Create an update clause from a dictionary + + Parameters + __________ + data: dict + A dict of the new value and the column name as key + """ + + update_items = [] + set_statement = None + update_clause = None + + try: + for key in data.keys(): + update_items.append("%s = :%s", (key, key)) + + if len(update_items) > 1: + update_clause = ", ".join(update_items) + else: + update_clause = update_items[0] + + set_statement = " ".join(("SET", update_clause)) + except AttributeError: + pass + + return set_statement -- cgit v1.2.3