summaryrefslogtreecommitdiff
path: root/examples/sql2dot.py
diff options
context:
space:
mode:
authorJon Dufresne <jon.dufresne@gmail.com>2019-10-31 21:10:28 -0700
committerPaul McGuire <ptmcg@users.noreply.github.com>2019-10-31 23:10:28 -0500
commit53d1b4a6f48a53c4c4ec4ac7031362b691c0366d (patch)
tree088ad3cf3561b78a00af4fb2fd474f4a2b8ca70c /examples/sql2dot.py
parent41752aa52cc97c710474bb2972cceab057b52ad4 (diff)
downloadpyparsing-git-53d1b4a6f48a53c4c4ec4ac7031362b691c0366d.tar.gz
Blacken the project (#141)
Diffstat (limited to 'examples/sql2dot.py')
-rw-r--r--examples/sql2dot.py85
1 files changed, 65 insertions, 20 deletions
diff --git a/examples/sql2dot.py b/examples/sql2dot.py
index cd6717c..ca22ed8 100644
--- a/examples/sql2dot.py
+++ b/examples/sql2dot.py
@@ -47,50 +47,95 @@ alter table only student_registrations
(class_id) references classes(class_id);
""".upper()
-from pyparsing import Literal, Word, delimitedList \
- , alphas, alphanums \
- , OneOrMore, ZeroOrMore, CharsNotIn \
- , replaceWith
+from pyparsing import (
+ Literal,
+ Word,
+ delimitedList,
+ alphas,
+ alphanums,
+ OneOrMore,
+ ZeroOrMore,
+ CharsNotIn,
+ replaceWith,
+)
skobki = "(" + ZeroOrMore(CharsNotIn(")")) + ")"
-field_def = OneOrMore(Word(alphas,alphanums+"_\"':-") | skobki)
+field_def = OneOrMore(Word(alphas, alphanums + "_\"':-") | skobki)
+
+
+def field_act(s, loc, tok):
+ return ("<" + tok[0] + "> " + " ".join(tok)).replace('"', '\\"')
-def field_act(s,loc,tok):
- return ("<"+tok[0]+"> " + " ".join(tok)).replace("\"","\\\"")
field_def.setParseAction(field_act)
-field_list_def = delimitedList( field_def )
+field_list_def = delimitedList(field_def)
+
+
def field_list_act(toks):
return " | ".join(toks)
+
field_list_def.setParseAction(field_list_act)
-create_table_def = Literal("CREATE") + "TABLE" + Word(alphas,alphanums+"_").setResultsName("tablename") + \
- "("+field_list_def.setResultsName("columns")+")"+ ";"
+create_table_def = (
+ Literal("CREATE")
+ + "TABLE"
+ + Word(alphas, alphanums + "_").setResultsName("tablename")
+ + "("
+ + field_list_def.setResultsName("columns")
+ + ")"
+ + ";"
+)
+
def create_table_act(toks):
- return """"%(tablename)s" [\n\t label="<%(tablename)s> %(tablename)s | %(columns)s"\n\t shape="record"\n];""" % toks
+ return (
+ """"%(tablename)s" [\n\t label="<%(tablename)s> %(tablename)s | %(columns)s"\n\t shape="record"\n];"""
+ % toks
+ )
+
+
create_table_def.setParseAction(create_table_act)
-add_fkey_def=Literal("ALTER")+"TABLE"+"ONLY" + Word(alphanums+"_").setResultsName("fromtable") + "ADD" \
- + "CONSTRAINT" + Word(alphanums+"_") + "FOREIGN"+"KEY"+"("+Word(alphanums+"_").setResultsName("fromcolumn")+")" \
- +"REFERENCES"+Word(alphanums+"_").setResultsName("totable")+"("+Word(alphanums+"_").setResultsName("tocolumn")+")"+";"
+add_fkey_def = (
+ Literal("ALTER")
+ + "TABLE"
+ + "ONLY"
+ + Word(alphanums + "_").setResultsName("fromtable")
+ + "ADD"
+ + "CONSTRAINT"
+ + Word(alphanums + "_")
+ + "FOREIGN"
+ + "KEY"
+ + "("
+ + Word(alphanums + "_").setResultsName("fromcolumn")
+ + ")"
+ + "REFERENCES"
+ + Word(alphanums + "_").setResultsName("totable")
+ + "("
+ + Word(alphanums + "_").setResultsName("tocolumn")
+ + ")"
+ + ";"
+)
+
def add_fkey_act(toks):
return """ "%(fromtable)s":%(fromcolumn)s -> "%(totable)s":%(tocolumn)s """ % toks
+
+
add_fkey_def.setParseAction(add_fkey_act)
-other_statement_def = ( OneOrMore(CharsNotIn(";") ) + ";")
-other_statement_def.setParseAction( replaceWith("") )
+other_statement_def = OneOrMore(CharsNotIn(";")) + ";"
+other_statement_def.setParseAction(replaceWith(""))
comment_def = "--" + ZeroOrMore(CharsNotIn("\n"))
-comment_def.setParseAction( replaceWith("") )
+comment_def.setParseAction(replaceWith(""))
-statement_def = comment_def | create_table_def | add_fkey_def | other_statement_def
-defs = OneOrMore(statement_def)
+statement_def = comment_def | create_table_def | add_fkey_def | other_statement_def
+defs = OneOrMore(statement_def)
print("""digraph g { graph [ rankdir = "LR" ]; """)
for i in defs.parseString(sampleSQL):
- if i!="":
+ if i != "":
print(i)
print("}")