mirror of
https://github.com/FlipsideCrypto/near-models.git
synced 2026-02-06 11:26:52 +00:00
parse event logs udf
This commit is contained in:
parent
a88924b0fb
commit
cdf6e232b4
27
macros/udfs/create_udf_parse_event_logs.sql
Normal file
27
macros/udfs/create_udf_parse_event_logs.sql
Normal file
@ -0,0 +1,27 @@
|
||||
{% macro create_udf_parse_event_logs() %}
|
||||
{% set sql %}
|
||||
CREATE OR REPLACE FUNCTION {{ target.database }}.STREAMLINE.UDF_PARSE_EVENT_LOGS(logs ARRAY)
|
||||
RETURNS ARRAY
|
||||
LANGUAGE PYTHON
|
||||
RUNTIME_VERSION = '3.8'
|
||||
HANDLER = 'parse_event_logs'
|
||||
AS
|
||||
$$
|
||||
import json
|
||||
def parse_event_logs(logs: list) -> list:
|
||||
return [
|
||||
json.loads(log[len("EVENT_JSON:"):]) if log.startswith("EVENT_JSON:") and is_valid_json(log[len("EVENT_JSON:"):])
|
||||
else log
|
||||
for log in logs
|
||||
]
|
||||
|
||||
def is_valid_json(json_str: str) -> bool:
|
||||
try:
|
||||
json.loads(json_str)
|
||||
return True
|
||||
except json.JSONDecodeError:
|
||||
return False
|
||||
$$;
|
||||
{% endset %}
|
||||
{% do run_query(sql) %}
|
||||
{% endmacro %}
|
||||
Loading…
Reference in New Issue
Block a user