Skip to content

Commit 37c58a5

Browse files
authored
Merge domoinc/upsert-fixes to fix upsert dataset creation
Fixing upsert upload for ds_create
2 parents 5216401 + 50bd12a commit 37c58a5

File tree

2 files changed

+17
-9
lines changed

2 files changed

+17
-9
lines changed

pydomo/__init__.py

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -203,12 +203,21 @@ def ds_get(self, dataset_id):
203203

204204
return df
205205

206-
def ds_create(self, df_up, name, description='', update_method='REPLACE', key_column_names=''):
207-
new_stream = self.utilities.stream_create(df_up, name, description, update_method, key_column_names)
208-
ds_id = json.loads(new_stream.content.decode('utf-8'))['dataSet']['id']
209-
self.utilities.stream_upload(ds_id,df_up,warn_schema_change=False)
210-
return ds_id
211-
206+
def ds_create(self, df_up, name, description='',
207+
update_method='REPLACE', key_column_names=[]):
208+
new_stream = self.utilities.stream_create(df_up,
209+
name,
210+
description,
211+
update_method,
212+
key_column_names)
213+
if "dataSet" in new_stream:
214+
ds_id = new_stream['dataSet']['id']
215+
self.utilities.stream_upload(ds_id, df_up,
216+
warn_schema_change=False)
217+
return ds_id
218+
else:
219+
raise Exception(("Stream creation didn't work as expected. "
220+
"Response: {}").format(new_stream))
212221

213222
def ds_update(self, ds_id, df_up):
214223
return self.utilities.stream_upload(ds_id, df_up)

pydomo/utilities/UtilitiesClient.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,12 +92,11 @@ def stream_upload(self, ds_id, df_up, warn_schema_change=True):
9292

9393
return result
9494

95-
def stream_create(self, up_ds, name, description, updateMethod='REPLACE', keyColumnNames=''):
95+
def stream_create(self, up_ds, name, description, updateMethod='REPLACE', keyColumnNames=[]):
9696
df_schema = self.data_schema(up_ds)
9797
req_body = {'dataSet': {'name': name, 'description': description, 'schema': {'columns': df_schema}}, 'updateMethod': updateMethod}
9898
if( updateMethod == 'UPSERT' ):
9999
req_body['keyColumnNames'] = keyColumnNames
100100
# return req_body
101101
st_created = self.transport.post('/v1/streams/', req_body, {})
102-
return(st_created)
103-
return json.loads(st_created.content.decode('utf-8'))['dataSet']['id']
102+
return json.loads(st_created.content.decode('utf-8'))

0 commit comments

Comments
 (0)