Skip to content

Commit e0579b7

Browse files
committed
austin/dbt: add multiple search paths for bytes, rows, and owner
1 parent d88d157 commit e0579b7

File tree

1 file changed

+36
-3
lines changed

1 file changed

+36
-3
lines changed

dbt_docs_to_notion.py

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
DATABASE_PARENT_ID = os.environ['DATABASE_PARENT_ID']
1010
DATABASE_NAME = os.environ['DATABASE_NAME']
1111
NOTION_TOKEN = os.environ['NOTION_TOKEN']
12+
NUMERIC_ZERO_VALUE = -1
1213

1314

1415
def make_request(endpoint, querystring='', method='GET', **request_kwargs):
@@ -40,6 +41,38 @@ def get_path_or_empty(parent_object, path_array, zero_value=''):
4041
return obj
4142

4243

44+
def get_num_rows(catalog_nodes, model_name):
45+
zero_value = NUMERIC_ZERO_VALUE
46+
keys = ['num_rows', 'row_count']
47+
for key in keys:
48+
num_rows = get_path_or_empty(catalog_nodes, [model_name, 'stats', key, 'value'], NUMERIC_ZERO_VALUE)
49+
if num_rows != NUMERIC_ZERO_VALUE:
50+
return num_rows
51+
52+
return NUMERIC_ZERO_VALUE
53+
54+
55+
def get_bytes(catalog_nodes, model_name):
56+
zero_value = NUMERIC_ZERO_VALUE
57+
keys = ['num_bytes', 'bytes']
58+
for key in keys:
59+
num_rows = get_path_or_empty(catalog_nodes, [model_name, 'stats', key, 'value'], NUMERIC_ZERO_VALUE)
60+
if num_rows != NUMERIC_ZERO_VALUE:
61+
return num_rows
62+
63+
return NUMERIC_ZERO_VALUE
64+
65+
66+
def get_owner(data, catalog_nodes, model_name):
67+
# Check for an owner field explicitly named in the DBT Config
68+
# If none present, fall back to database table owner
69+
owner = get_path_or_empty(data, ['config', 'meta', 'owner'], None)
70+
if owner != None:
71+
return owner
72+
73+
return get_path_or_empty(catalog_nodes, [model_name, 'metadata', 'owner'], '')
74+
75+
4376
def main():
4477
model_records_to_write = sys.argv[1:] # 'all' or list of model names
4578
print(f'Model records to write: {model_records_to_write}')
@@ -378,7 +411,7 @@ def main():
378411
{
379412
"text": {
380413
"content": str(
381-
get_path_or_empty(catalog_nodes, [model_name, 'metadata', 'owner'], '')
414+
get_owner(data, catalog_nodes, model_name)
382415
)[:2000]
383416
}
384417
}
@@ -394,10 +427,10 @@ def main():
394427
]
395428
},
396429
"Approx Rows": {
397-
"number": get_path_or_empty(catalog_nodes, [model_name, 'stats', 'num_rows', 'value'], -1)
430+
"number": get_num_rows(catalog_nodes, model_name)
398431
},
399432
"Approx GB": {
400-
"number": get_path_or_empty(catalog_nodes, [model_name, 'stats', 'num_bytes', 'value'], -1) /1e9
433+
"number":get_bytes(catalog_nodes, model_name) /1e9
401434
},
402435
"Depends On": {
403436
"rich_text": [

0 commit comments

Comments
 (0)