Skip to content

Commit 629273a

Browse files
authored
Merge pull request #338 from EvgSkv/ti2023
Update to RunPredicateFromString.
2 parents d188dd5 + 0033d1a commit 629273a

File tree

1 file changed

+21
-4
lines changed

1 file changed

+21
-4
lines changed

common/logica_lib.py

+21-4
Original file line numberDiff line numberDiff line change
@@ -170,10 +170,15 @@ def RunPredicateToPandas(filename, predicate,
170170
engine = p.annotations.Engine()
171171
return RunQueryPandas(sql, engine, connection=connection)
172172

173-
def RunPredicateFromString(logica_string,
174-
predicate_name,
175-
connection=None,
176-
user_flags=None):
173+
174+
class SqlReceiver:
175+
def __init__(self):
176+
self.sql = None
177+
178+
179+
def CompilePredicateFromString(logica_string,
180+
predicate_name,
181+
user_flags=None):
177182
try:
178183
rules = parse.ParseFile(logica_string)['rule']
179184
except parse.ParsingException as parsing_exception:
@@ -196,5 +201,17 @@ def RunPredicateFromString(logica_string,
196201
except parse.ParsingException as parsing_exception:
197202
parsing_exception.ShowMessage()
198203
sys.exit(1)
204+
return sql, engine
205+
206+
207+
def RunPredicateFromString(logica_string,
208+
predicate_name,
209+
connection=None,
210+
user_flags=None,
211+
sql_receiver: SqlReceiver = None):
212+
sql, engine = CompilePredicateFromString(logica_string, predicate_name,
213+
user_flags)
214+
if sql_receiver:
215+
sql_receiver.sql = sql
199216

200217
return RunQueryPandas(sql, engine, connection)

0 commit comments

Comments
 (0)