mirror of
https://github.com/apache/superset.git
synced 2026-04-19 08:04:53 +00:00
feat: new Columnar upload form and API (#28192)
This commit is contained in:
committed by
GitHub
parent
f5843fe588
commit
9a339f08a7
@@ -24,6 +24,7 @@ from typing import Any
|
||||
|
||||
import pandas as pd
|
||||
import pytest
|
||||
from werkzeug.datastructures import FileStorage
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
@@ -31,7 +32,9 @@ def dttm() -> datetime:
|
||||
return datetime.strptime("2019-01-02 03:04:05.678900", "%Y-%m-%d %H:%M:%S.%f")
|
||||
|
||||
|
||||
def create_csv_file(data: list[list[str]] | None = None, delimiter=",") -> BytesIO:
|
||||
def create_csv_file(
|
||||
data: list[list[str]] | None = None, delimiter=",", filename="test.csv"
|
||||
) -> FileStorage:
|
||||
data = (
|
||||
[
|
||||
["Name", "Age", "City"],
|
||||
@@ -46,14 +49,27 @@ def create_csv_file(data: list[list[str]] | None = None, delimiter=",") -> Bytes
|
||||
for row in data:
|
||||
writer.writerow(row)
|
||||
output.seek(0)
|
||||
bytes_buffer = BytesIO(output.getvalue().encode("utf-8"))
|
||||
return bytes_buffer
|
||||
buffer = BytesIO(output.getvalue().encode("utf-8"))
|
||||
return FileStorage(stream=buffer, filename=filename)
|
||||
|
||||
|
||||
def create_excel_file(data: dict[str, list[Any]] | None = None) -> BytesIO:
|
||||
def create_excel_file(
|
||||
data: dict[str, list[Any]] | None = None, filename="test.xls"
|
||||
) -> FileStorage:
|
||||
data = {"Name": ["John"], "Age": [30], "City": ["New York"]} if not data else data
|
||||
excel_buffer = BytesIO()
|
||||
buffer = BytesIO()
|
||||
df = pd.DataFrame(data)
|
||||
df.to_excel(excel_buffer, index=False)
|
||||
excel_buffer.seek(0)
|
||||
return excel_buffer
|
||||
df.to_excel(buffer, index=False)
|
||||
buffer.seek(0)
|
||||
return FileStorage(stream=buffer, filename=filename)
|
||||
|
||||
|
||||
def create_columnar_file(
|
||||
data: dict[str, list[Any]] | None = None, filename="test.parquet"
|
||||
) -> FileStorage:
|
||||
data = {"Name": ["John"], "Age": [30], "City": ["New York"]} if not data else data
|
||||
buffer = BytesIO()
|
||||
df = pd.DataFrame(data)
|
||||
df.to_parquet(buffer, index=False)
|
||||
buffer.seek(0)
|
||||
return FileStorage(stream=buffer, filename=filename)
|
||||
|
||||
Reference in New Issue
Block a user