From a31cca87970d552623d5bc40948111751a0c0251 Mon Sep 17 00:00:00 2001 From: haowen Date: Thu, 5 Jun 2025 01:52:35 +0800 Subject: [PATCH 1/2] fix port handling behavior on localhost 8000 --- .../sov_fixer/sov_fixer_api_client.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/pingintel_api/sov_fixer/sov_fixer_api_client.py b/src/pingintel_api/sov_fixer/sov_fixer_api_client.py index 691bc5c..57823da 100644 --- a/src/pingintel_api/sov_fixer/sov_fixer_api_client.py +++ b/src/pingintel_api/sov_fixer/sov_fixer_api_client.py @@ -134,6 +134,24 @@ def fix_sov_download( if not output_url.startswith("http"): assert output_url.startswith("/"), f"Invalid output URL: {output_url}" output_url = self.api_url + output_url + else: + # Ensure output_url uses the same port as self.api_url + from urllib.parse import urlparse, urlunparse + api_parts = urlparse(self.api_url) + output_parts = urlparse(output_url) + api_port = api_parts.port + if api_port and (output_parts.port != api_port): + netloc = output_parts.hostname + if api_port: + netloc += f":{api_port}" + output_url = urlunparse(( + output_parts.scheme, + netloc, + output_parts.path, + output_parts.params, + output_parts.query, + output_parts.fragment, + )) if self.environment and self.environment == "local2" and "api-local.sovfixer.com" in output_url: output_url = output_url.replace("api-local.sovfixer.com", "localhost:8000") From 25f8da1f84be16debfa17827ccccee726a18e752 Mon Sep 17 00:00:00 2001 From: haowen Date: Thu, 5 Jun 2025 02:48:27 +0800 Subject: [PATCH 2/2] format and code quality --- .../sov_fixer/sov_fixer_api_client.py | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/pingintel_api/sov_fixer/sov_fixer_api_client.py b/src/pingintel_api/sov_fixer/sov_fixer_api_client.py index 57823da..d3a5565 100644 --- a/src/pingintel_api/sov_fixer/sov_fixer_api_client.py +++ b/src/pingintel_api/sov_fixer/sov_fixer_api_client.py @@ -11,6 +11,7 @@ import click from pingintel_api.api_client_base import APIClientBase +from urllib.parse import urlparse, urlunparse from ..utils import is_fileobj, raise_for_status from . import types as t @@ -136,7 +137,6 @@ def fix_sov_download( output_url = self.api_url + output_url else: # Ensure output_url uses the same port as self.api_url - from urllib.parse import urlparse, urlunparse api_parts = urlparse(self.api_url) output_parts = urlparse(output_url) api_port = api_parts.port @@ -144,14 +144,16 @@ def fix_sov_download( netloc = output_parts.hostname if api_port: netloc += f":{api_port}" - output_url = urlunparse(( - output_parts.scheme, - netloc, - output_parts.path, - output_parts.params, - output_parts.query, - output_parts.fragment, - )) + output_url = urlunparse( + ( + output_parts.scheme, + netloc, + output_parts.path, + output_parts.params, + output_parts.query, + output_parts.fragment, + ) + ) if self.environment and self.environment == "local2" and "api-local.sovfixer.com" in output_url: output_url = output_url.replace("api-local.sovfixer.com", "localhost:8000")