Skip to content

Commit c07dc7b

Browse files
authored
Improve #1092 #1084 by removing mutable method default arguments (#1093)
1 parent 2b30100 commit c07dc7b

File tree

14 files changed

+39
-25
lines changed

14 files changed

+39
-25
lines changed

slack_sdk/audit_logs/v1/async_client.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ def __init__(
5555
user_agent_prefix: Optional[str] = None,
5656
user_agent_suffix: Optional[str] = None,
5757
logger: Optional[logging.Logger] = None,
58-
retry_handlers: List[AsyncRetryHandler] = async_default_handlers(),
58+
retry_handlers: Optional[List[AsyncRetryHandler]] = None,
5959
):
6060
"""API client for Audit Logs API
6161
See https://api.slack.com/admins/audit-logs for more details
@@ -88,7 +88,9 @@ def __init__(
8888
user_agent_prefix, user_agent_suffix
8989
)
9090
self.logger = logger if logger is not None else logging.getLogger(__name__)
91-
self.retry_handlers = retry_handlers
91+
self.retry_handlers = (
92+
retry_handlers if retry_handlers is not None else async_default_handlers()
93+
)
9294

9395
if self.proxy is None or len(self.proxy.strip()) == 0:
9496
env_variable = load_http_proxy_from_env(self.logger)

slack_sdk/audit_logs/v1/client.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ def __init__(
5050
user_agent_prefix: Optional[str] = None,
5151
user_agent_suffix: Optional[str] = None,
5252
logger: Optional[logging.Logger] = None,
53-
retry_handlers: List[RetryHandler] = default_retry_handlers(),
53+
retry_handlers: Optional[List[RetryHandler]] = None,
5454
):
5555
"""API client for Audit Logs API
5656
See https://api.slack.com/admins/audit-logs for more details
@@ -77,7 +77,9 @@ def __init__(
7777
user_agent_prefix, user_agent_suffix
7878
)
7979
self.logger = logger if logger is not None else logging.getLogger(__name__)
80-
self.retry_handlers = retry_handlers
80+
self.retry_handlers = (
81+
retry_handlers if retry_handlers is not None else default_retry_handlers()
82+
)
8183

8284
if self.proxy is None or len(self.proxy.strip()) == 0:
8385
env_variable = load_http_proxy_from_env(self.logger)

slack_sdk/http_retry/builtin_handlers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ def _can_retry(
5656
response: Optional[HttpResponse] = None,
5757
error: Optional[Exception] = None,
5858
) -> bool:
59-
return response.status_code == 429
59+
return response is not None and response.status_code == 429
6060

6161
def prepare_for_next_attempt(
6262
self,

slack_sdk/scim/v1/async_client.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ def __init__(
7070
user_agent_prefix: Optional[str] = None,
7171
user_agent_suffix: Optional[str] = None,
7272
logger: Optional[logging.Logger] = None,
73-
retry_handlers: List[AsyncRetryHandler] = async_default_handlers(),
73+
retry_handlers: Optional[List[AsyncRetryHandler]] = None,
7474
):
7575
"""API client for SCIM API
7676
See https://api.slack.com/scim for more details
@@ -103,7 +103,9 @@ def __init__(
103103
user_agent_prefix, user_agent_suffix
104104
)
105105
self.logger = logger if logger is not None else logging.getLogger(__name__)
106-
self.retry_handlers = retry_handlers
106+
self.retry_handlers = (
107+
retry_handlers if retry_handlers is not None else async_default_handlers()
108+
)
107109

108110
if self.proxy is None or len(self.proxy.strip()) == 0:
109111
env_variable = load_http_proxy_from_env(self.logger)

slack_sdk/scim/v1/client.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ def __init__(
7272
user_agent_prefix: Optional[str] = None,
7373
user_agent_suffix: Optional[str] = None,
7474
logger: Optional[logging.Logger] = None,
75-
retry_handlers: List[RetryHandler] = default_retry_handlers(),
75+
retry_handlers: Optional[List[RetryHandler]] = None,
7676
):
7777
"""API client for SCIM API
7878
See https://api.slack.com/scim for more details
@@ -99,7 +99,9 @@ def __init__(
9999
user_agent_prefix, user_agent_suffix
100100
)
101101
self.logger = logger if logger is not None else logging.getLogger(__name__)
102-
self.retry_handlers = retry_handlers
102+
self.retry_handlers = (
103+
retry_handlers if retry_handlers is not None else default_retry_handlers()
104+
)
103105

104106
if self.proxy is None or len(self.proxy.strip()) == 0:
105107
env_variable = load_http_proxy_from_env(self.logger)

slack_sdk/web/async_base_client.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ def __init__(
4141
# for Org-Wide App installation
4242
team_id: Optional[str] = None,
4343
logger: Optional[logging.Logger] = None,
44-
retry_handlers: List[RetryHandler] = async_default_handlers(),
44+
retry_handlers: Optional[List[RetryHandler]] = None,
4545
):
4646
self.token = None if token is None else token.strip()
4747
self.base_url = base_url
@@ -59,7 +59,9 @@ def __init__(
5959
if team_id is not None:
6060
self.default_params["team_id"] = team_id
6161
self._logger = logger if logger is not None else logging.getLogger(__name__)
62-
self.retry_handlers = retry_handlers
62+
self.retry_handlers = (
63+
retry_handlers if retry_handlers is not None else async_default_handlers()
64+
)
6365

6466
if self.proxy is None or len(self.proxy.strip()) == 0:
6567
env_variable = load_http_proxy_from_env(self._logger)

slack_sdk/web/base_client.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ def __init__(
5454
# for Org-Wide App installation
5555
team_id: Optional[str] = None,
5656
logger: Optional[logging.Logger] = None,
57-
retry_handlers: List[RetryHandler] = default_retry_handlers(),
57+
retry_handlers: Optional[List[RetryHandler]] = None,
5858
):
5959
self.token = None if token is None else token.strip()
6060
self.base_url = base_url
@@ -70,7 +70,9 @@ def __init__(
7070
self.default_params["team_id"] = team_id
7171
self._logger = logger if logger is not None else logging.getLogger(__name__)
7272

73-
self.retry_handlers = retry_handlers
73+
self.retry_handlers = (
74+
retry_handlers if retry_handlers is not None else default_retry_handlers()
75+
)
7476

7577
if self.proxy is None or len(self.proxy.strip()) == 0:
7678
env_variable = load_http_proxy_from_env(self._logger)

slack_sdk/webhook/async_client.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ def __init__(
4949
user_agent_prefix: Optional[str] = None,
5050
user_agent_suffix: Optional[str] = None,
5151
logger: Optional[logging.Logger] = None,
52-
retry_handlers: List[AsyncRetryHandler] = async_default_handlers(),
52+
retry_handlers: Optional[List[AsyncRetryHandler]] = None,
5353
):
5454
"""API client for Incoming Webhooks and `response_url`
5555
@@ -80,7 +80,9 @@ def __init__(
8080
user_agent_prefix, user_agent_suffix
8181
)
8282
self.logger = logger if logger is not None else logging.getLogger(__name__)
83-
self.retry_handlers = retry_handlers
83+
self.retry_handlers = (
84+
retry_handlers if retry_handlers is not None else async_default_handlers()
85+
)
8486

8587
if self.proxy is None or len(self.proxy.strip()) == 0:
8688
env_variable = load_http_proxy_from_env(self.logger)

slack_sdk/webhook/client.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ def __init__(
4444
user_agent_prefix: Optional[str] = None,
4545
user_agent_suffix: Optional[str] = None,
4646
logger: Optional[logging.Logger] = None,
47-
retry_handlers: List[RetryHandler] = default_retry_handlers(),
47+
retry_handlers: Optional[List[RetryHandler]] = None,
4848
):
4949
"""API client for Incoming Webhooks and `response_url`
5050
@@ -70,7 +70,9 @@ def __init__(
7070
user_agent_prefix, user_agent_suffix
7171
)
7272
self.logger = logger if logger is not None else logging.getLogger(__name__)
73-
self.retry_handlers = retry_handlers
73+
self.retry_handlers = (
74+
retry_handlers if retry_handlers is not None else default_retry_handlers()
75+
)
7476

7577
if self.proxy is None or len(self.proxy.strip()) == 0:
7678
env_variable = load_http_proxy_from_env(self.logger)

tests/slack_sdk/audit_logs/test_client_http_retry.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ def test_rate_limited(self):
3535
client = AuditLogsClient(
3636
token="xoxp-ratelimited",
3737
base_url="http://localhost:8888/",
38-
retry_handlers=[RateLimitErrorRetryHandler()],
3938
)
39+
client.retry_handlers.append(RateLimitErrorRetryHandler())
4040

4141
response = client.actions()
4242
# Just running retries; no assertions for call count so far

0 commit comments

Comments
 (0)