diff --git a/tableauserverclient/helpers/headers.py b/tableauserverclient/helpers/headers.py deleted file mode 100644 index 2ed4a814d..000000000 --- a/tableauserverclient/helpers/headers.py +++ /dev/null @@ -1,17 +0,0 @@ -from copy import deepcopy -from urllib.parse import unquote_plus - - -def fix_filename(params): - if "filename*" not in params: - return params - - params = deepcopy(params) - filename = params["filename*"] - prefix = "UTF-8''" - if filename.startswith(prefix): - filename = filename[len(prefix) :] - - params["filename"] = unquote_plus(filename) - del params["filename*"] - return params diff --git a/tableauserverclient/server/endpoint/datasources_endpoint.py b/tableauserverclient/server/endpoint/datasources_endpoint.py index 6a734f7b3..95be04dd7 100644 --- a/tableauserverclient/server/endpoint/datasources_endpoint.py +++ b/tableauserverclient/server/endpoint/datasources_endpoint.py @@ -9,7 +9,6 @@ from typing import Literal, Optional, TYPE_CHECKING, TypedDict, TypeVar, Union, overload from collections.abc import Iterable, Sequence -from tableauserverclient.helpers.headers import fix_filename from tableauserverclient.models.dqw_item import DQWItem from tableauserverclient.server.query import QuerySet @@ -1025,14 +1024,13 @@ def download_revision( with closing(self.get_request(url, parameters={"stream": True})) as server_response: m = Message() m["Content-Disposition"] = server_response.headers["Content-Disposition"] - params = m.get_filename(failobj="") + filename = m.get_filename(failobj="") if isinstance(filepath, io_types_w): for chunk in server_response.iter_content(1024): # 1KB filepath.write(chunk) return_path = filepath else: - params = fix_filename(params) - filename = to_filename(os.path.basename(params)) + filename = to_filename(os.path.basename(filename)) download_path = make_download_path(filepath, filename) with open(download_path, "wb") as f: for chunk in server_response.iter_content(1024): # 1KB diff --git a/tableauserverclient/server/endpoint/flows_endpoint.py b/tableauserverclient/server/endpoint/flows_endpoint.py index ea29f2963..23e67f5de 100644 --- a/tableauserverclient/server/endpoint/flows_endpoint.py +++ b/tableauserverclient/server/endpoint/flows_endpoint.py @@ -8,8 +8,6 @@ from typing import Optional, TYPE_CHECKING, Union from collections.abc import Iterable -from tableauserverclient.helpers.headers import fix_filename - from tableauserverclient.server.endpoint.dqw_endpoint import _DataQualityWarningEndpoint from tableauserverclient.server.endpoint.endpoint import QuerysetEndpoint, api from tableauserverclient.server.endpoint.exceptions import InternalServerError, MissingRequiredFieldError @@ -227,14 +225,13 @@ def download(self, flow_id: str, filepath: Optional[PathOrFileW] = None) -> Path with closing(self.get_request(url, parameters={"stream": True})) as server_response: m = Message() m["Content-Disposition"] = server_response.headers["Content-Disposition"] - params = m.get_filename(failobj="") + filename = m.get_filename(failobj="") if isinstance(filepath, io_types_w): for chunk in server_response.iter_content(1024): # 1KB filepath.write(chunk) return_path = filepath else: - params = fix_filename(params) - filename = to_filename(os.path.basename(params)) + filename = to_filename(os.path.basename(filename)) download_path = make_download_path(filepath, filename) with open(download_path, "wb") as f: for chunk in server_response.iter_content(1024): # 1KB diff --git a/tableauserverclient/server/endpoint/workbooks_endpoint.py b/tableauserverclient/server/endpoint/workbooks_endpoint.py index 218a4016f..b7e0e499f 100644 --- a/tableauserverclient/server/endpoint/workbooks_endpoint.py +++ b/tableauserverclient/server/endpoint/workbooks_endpoint.py @@ -6,7 +6,6 @@ from contextlib import closing from pathlib import Path -from tableauserverclient.helpers.headers import fix_filename from tableauserverclient.models.permissions_item import PermissionsRule from tableauserverclient.server.query import QuerySet @@ -1098,14 +1097,13 @@ def download_revision( with closing(self.get_request(url, parameters={"stream": True})) as server_response: m = Message() m["Content-Disposition"] = server_response.headers["Content-Disposition"] - params = m.get_filename(failobj="") + filename = m.get_filename(failobj="") if isinstance(filepath, io_types_w): for chunk in server_response.iter_content(1024): # 1KB filepath.write(chunk) return_path = filepath else: - params = fix_filename(params) - filename = to_filename(os.path.basename(params)) + filename = to_filename(os.path.basename(filename)) download_path = make_download_path(filepath, filename) with open(download_path, "wb") as f: for chunk in server_response.iter_content(1024): # 1KB