MCPcopy Create free account
hub / github.com/awslabs/gap-text2sql / __init__

Method __init__

rat-sql-gap/seq2struct/grammars/spider.py:41–119  ·  view source on GitHub ↗
(
            self, 
            output_from=False,
            use_table_pointer=False,
            include_literals=True,
            include_columns=True,
            end_with_from=False,
            clause_order=None,
            infer_from_conditions=False,
            factorize_sketch=0)

Source from the content-addressed store, hash-verified

39 root_type = 'sql'
40
41 def __init__(
42 self,
43 output_from=False,
44 use_table_pointer=False,
45 include_literals=True,
46 include_columns=True,
47 end_with_from=False,
48 clause_order=None,
49 infer_from_conditions=False,
50 factorize_sketch=0):
51
52 # collect pointers and checkers
53 custom_primitive_type_checkers = {}
54 self.pointers = set()
55 if use_table_pointer:
56 custom_primitive_type_checkers['table'] = lambda x: isinstance(x, int)
57 self.pointers.add('table')
58 self.include_columns = include_columns
59 if include_columns:
60 custom_primitive_type_checkers['column'] = lambda x: isinstance(x, int)
61 self.pointers.add('column')
62
63 # create ast wrapper
64 self.factorize_sketch = factorize_sketch
65 if self.factorize_sketch == 0:
66 asdl_file = "Spider.asdl"
67 elif self.factorize_sketch == 1:
68 asdl_file = "Spider_f1.asdl"
69 elif self.factorize_sketch == 2:
70 asdl_file = "Spider_f2.asdl"
71 else:
72 raise NotImplementedError
73 self.ast_wrapper = ast_util.ASTWrapper(
74 asdl.parse(
75 os.path.join(
76 os.path.dirname(os.path.abspath(__file__)),
77 asdl_file)),
78 custom_primitive_type_checkers=custom_primitive_type_checkers)
79 if not use_table_pointer:
80 self.ast_wrapper.singular_types['Table'].fields[0].type = 'int'
81 if not include_columns:
82 col_unit_fields = self.ast_wrapper.singular_types['col_unit'].fields
83 assert col_unit_fields[1].name == 'col_id'
84 del col_unit_fields[1]
85
86 # literals of limit field
87 self.include_literals = include_literals
88 if not self.include_literals:
89 if self.factorize_sketch == 0:
90 limit_field = self.ast_wrapper.singular_types['sql'].fields[6]
91 else:
92 limit_field = self.ast_wrapper.singular_types['sql_orderby'].fields[1]
93 assert limit_field.name == 'limit'
94 limit_field.opt = False
95 limit_field.type = 'singleton'
96
97 # from field
98 self.output_from = output_from

Callers

nothing calls this directly

Calls 3

parseMethod · 0.80
appendMethod · 0.80
addMethod · 0.45

Tested by

no test coverage detected