# HG changeset patch # User David A. Holland # Date 1649633838 14400 # Node ID 42d7888272a093ba00784c95e573f252ff4a9f9d # Parent 40f64a96481f95f4aff4616f485709101d783ad0 Implement fetch_classifications(). diff -r 40f64a96481f -r 42d7888272a0 shelltools/query-pr/query.py --- a/shelltools/query-pr/query.py Sun Apr 10 19:36:29 2022 -0400 +++ b/shelltools/query-pr/query.py Sun Apr 10 19:37:18 2022 -0400 @@ -40,6 +40,12 @@ # be present. # +# loaded below +hierclasses = [] +flatclasses = [] +textclasses = [] +tagclasses = [] + class QueryBuilder: # these fields are in the PRs table prtable_fields = [ @@ -270,6 +276,41 @@ # end querydb ############################################################ +# classification schemes + +# +# Load the available classification schemes from the database. +# We only need their names up front. +# +def fetch_classifications(): + global hierclasses, flatclasses, textclasses, tagclasses + hierclasses = querydb(''' +------------------------------ + SELECT name FROM hierclass_names ORDER BY ordering; +------------------------------ +''', []) + flatclasses = querydb(''' +------------------------------ + SELECT name FROM flatclass_names ORDER BY ordering; +------------------------------ +''', []) + textclasses = querydb(''' +------------------------------ + SELECT name FROM textclass_names ORDER BY ordering; +------------------------------ +''', []) + tagclasses = querydb(''' +------------------------------ + SELECT name FROM tagclass_names ORDER BY ordering; +------------------------------ +''', []) + # The results come back as monoples, unwrap that + hierclasses = [name for (name,) in hierclasses] + flatclasses = [name for (name,) in flatclasses] + textclasses = [name for (name,) in textclasses] + tagclasses = [name for (name,) in tagclasses] + +############################################################ # query class for searches # XXX: obsolete, remove @@ -1337,16 +1378,16 @@ sys.stderr.write(msg) exit(1) - return Invocation(ops) + return (Invocation(ops), paranoid) # end getargs ############################################################ # main -todo = getargs(sys.argv) +(todo, paranoid) = getargs(sys.argv) #todo.dump(Dumper(sys.stdout)) -opendb() +opendb(paranoid) fetch_classifications() todo = compile(todo) run(todo)