Skip to content

Commit

Permalink
Merge pull request #143 from DARPA-ASKEM/4003-bug-dataset-created-fro…
Browse files Browse the repository at this point in the history
…m-transform-dataset-has-no-column-info

4003 bug dataset created from transform dataset has no column info
  • Loading branch information
dvince2 committed Jul 15, 2024
2 parents 3b30ea4 + 3973d37 commit 6e71969
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 7 deletions.
11 changes: 6 additions & 5 deletions src/askem_beaker/contexts/dataset/context.py
Original file line number Diff line number Diff line change
Expand Up @@ -246,15 +246,16 @@ async def save_dataset_request(self, message):
logger.error(f"new dataset: {pprint.pformat(create_req.json())}")

new_dataset["id"] = new_dataset_id
new_dataset_url = f"{dataservice_url}/datasets/{new_dataset_id}"
data_url_req = requests.get(f"{new_dataset_url}/upload-url?filename={filename}", auth=self.auth.requests_auth())
data_url = data_url_req.json().get('url', None)

code = self.get_code(
"df_save_as",
"hmi_create_csv_dataset",
{
"var_name": var_name,
"data_url": data_url,
"id": new_dataset_id,
"username": self.auth.username,
"password": self.auth.password,
"filename": filename,
"dataservice_url": dataservice_url
}
)
df_response = await self.execute(code)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
import os
import requests
import tempfile

from json import JSONDecodeError

with tempfile.TemporaryFile() as temp_csv_file:
{{ var_name|default("df") }}.to_csv(temp_csv_file, index=False, header=True)
temp_csv_file.seek(0)
# Set the HMI_SERVER endpoint
hmi_server = "{{dataservice_url}}"

# Define the id and filename dynamically
id = "{{id}}"
filename = "{{filename}}"

# Prepare the request payload
payload = {'id': id, 'filename': filename}
files = {'file': temp_csv_file}

# Set the headers with the content type
# headers = {}

# Make the HTTP PUT request to upload the file bytes
url = f'{hmi_server}/datasets/{id}/upload-csv'
response = requests.put(url, data=payload, files=files, auth=("{{username}}", "{{password}}"))

# Check the response status code
if response.status_code < 300:
try:
message = response.json()
except JSONDecodeError:
message = f'File uploaded successfully with status code {response.status_code}.'
else:
message = f'File upload failed with status code {response.status_code}.'
if response.text:
message += f' Response message: {response.text}'

message
6 changes: 4 additions & 2 deletions src/askem_beaker/contexts/pyciemss/context.py
Original file line number Diff line number Diff line change
Expand Up @@ -138,9 +138,11 @@ async def save_results_to_hmi(self, message):
data_url_req = requests.get(f"{dataset_url}/upload-url?filename=result.csv", auth=auth)
data_url = data_url_req.json().get('url', None)
code = self.get_code(
"df_save_as",
"df_create_csv_dataset",
{
"data_url": data_url,
"id": dataset_id,
"auth": self.get_auth(),
"filename": "result.csv"
}
)
kernel_response = await self.execute(code) # TODO: Check error
Expand Down

0 comments on commit 6e71969

Please sign in to comment.