From d0db05a821edd6cd35492ecf46fd02059c3026ba Mon Sep 17 00:00:00 2001 From: Kazuhiro Sera Date: Fri, 25 Feb 2022 07:13:52 +0900 Subject: [PATCH 1/4] Add file_ids to chat.update parameters (#1187) --- slack_sdk/web/async_client.py | 7 ++++++- slack_sdk/web/client.py | 7 ++++++- slack_sdk/web/legacy_client.py | 7 ++++++- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/slack_sdk/web/async_client.py b/slack_sdk/web/async_client.py index ea470a42c..5995e53c0 100644 --- a/slack_sdk/web/async_client.py +++ b/slack_sdk/web/async_client.py @@ -2211,6 +2211,7 @@ async def chat_update( attachments: Optional[Sequence[Union[Dict, Attachment]]] = None, blocks: Optional[Sequence[Union[Dict, Block]]] = None, as_user: Optional[bool] = None, + file_ids: Optional[Union[str, Sequence[str]]] = None, link_names: Optional[bool] = None, parse: Optional[str] = None, # none, full reply_broadcast: Optional[bool] = None, @@ -2232,6 +2233,10 @@ async def chat_update( "reply_broadcast": reply_broadcast, } ) + if isinstance(file_ids, (list, Tuple)): + kwargs.update({"file_ids": ",".join(file_ids)}) + else: + kwargs.update({"file_ids": file_ids}) _parse_web_class_objects(kwargs) kwargs = _remove_none_values(kwargs) _warn_if_text_is_missing("chat.update", kwargs) @@ -2448,7 +2453,7 @@ async def conversations_inviteShared( else: kwargs.update({"emails": emails}) if isinstance(user_ids, (list, Tuple)): - kwargs.update({"emails": ",".join(user_ids)}) + kwargs.update({"user_ids": ",".join(user_ids)}) else: kwargs.update({"user_ids": user_ids}) return await self.api_call( diff --git a/slack_sdk/web/client.py b/slack_sdk/web/client.py index 0eb2307de..373a61a85 100644 --- a/slack_sdk/web/client.py +++ b/slack_sdk/web/client.py @@ -2160,6 +2160,7 @@ def chat_update( attachments: Optional[Sequence[Union[Dict, Attachment]]] = None, blocks: Optional[Sequence[Union[Dict, Block]]] = None, as_user: Optional[bool] = None, + file_ids: Optional[Union[str, Sequence[str]]] = None, link_names: Optional[bool] = None, parse: Optional[str] = None, # none, full reply_broadcast: Optional[bool] = None, @@ -2181,6 +2182,10 @@ def chat_update( "reply_broadcast": reply_broadcast, } ) + if isinstance(file_ids, (list, Tuple)): + kwargs.update({"file_ids": ",".join(file_ids)}) + else: + kwargs.update({"file_ids": file_ids}) _parse_web_class_objects(kwargs) kwargs = _remove_none_values(kwargs) _warn_if_text_is_missing("chat.update", kwargs) @@ -2395,7 +2400,7 @@ def conversations_inviteShared( else: kwargs.update({"emails": emails}) if isinstance(user_ids, (list, Tuple)): - kwargs.update({"emails": ",".join(user_ids)}) + kwargs.update({"user_ids": ",".join(user_ids)}) else: kwargs.update({"user_ids": user_ids}) return self.api_call( diff --git a/slack_sdk/web/legacy_client.py b/slack_sdk/web/legacy_client.py index d4109b2f9..d5b5c910f 100644 --- a/slack_sdk/web/legacy_client.py +++ b/slack_sdk/web/legacy_client.py @@ -2171,6 +2171,7 @@ def chat_update( attachments: Optional[Sequence[Union[Dict, Attachment]]] = None, blocks: Optional[Sequence[Union[Dict, Block]]] = None, as_user: Optional[bool] = None, + file_ids: Optional[Union[str, Sequence[str]]] = None, link_names: Optional[bool] = None, parse: Optional[str] = None, # none, full reply_broadcast: Optional[bool] = None, @@ -2192,6 +2193,10 @@ def chat_update( "reply_broadcast": reply_broadcast, } ) + if isinstance(file_ids, (list, Tuple)): + kwargs.update({"file_ids": ",".join(file_ids)}) + else: + kwargs.update({"file_ids": file_ids}) _parse_web_class_objects(kwargs) kwargs = _remove_none_values(kwargs) _warn_if_text_is_missing("chat.update", kwargs) @@ -2406,7 +2411,7 @@ def conversations_inviteShared( else: kwargs.update({"emails": emails}) if isinstance(user_ids, (list, Tuple)): - kwargs.update({"emails": ",".join(user_ids)}) + kwargs.update({"user_ids": ",".join(user_ids)}) else: kwargs.update({"user_ids": user_ids}) return self.api_call( From fde7bfd97f2065f20e6f3224f12efa3afabe7006 Mon Sep 17 00:00:00 2001 From: Kazuhiro Sera Date: Thu, 3 Mar 2022 08:33:53 +0900 Subject: [PATCH 2/4] Add new properties to Audit Logs API response type --- slack_sdk/audit_logs/v1/logs.py | 12 ++++++++++++ tests/slack_sdk/audit_logs/test_response.py | 4 +++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/slack_sdk/audit_logs/v1/logs.py b/slack_sdk/audit_logs/v1/logs.py index f964d5ff1..170d7716d 100644 --- a/slack_sdk/audit_logs/v1/logs.py +++ b/slack_sdk/audit_logs/v1/logs.py @@ -178,6 +178,10 @@ class Details: who_can_post: Optional[ConversationPref] can_thread: Optional[ConversationPref] is_external_limited: Optional[bool] + exporting_team_id: Optional[int] + session_search_start: Optional[int] + deprecation_search_end: Optional[int] + is_error: Optional[bool] def __init__( self, @@ -240,6 +244,10 @@ def __init__( who_can_post: Optional[Union[Dict[str, List[str]], ConversationPref]] = None, can_thread: Optional[Union[Dict[str, List[str]], ConversationPref]] = None, is_external_limited: Optional[bool] = None, + exporting_team_id: Optional[int] = None, + session_search_start: Optional[int] = None, + deprecation_search_end: Optional[int] = None, + is_error: Optional[bool] = None, **kwargs, ) -> None: self.name = name @@ -317,6 +325,10 @@ def __init__( else ConversationPref(**can_thread) ) self.is_external_limited = is_external_limited + self.exporting_team_id = exporting_team_id + self.session_search_start = session_search_start + self.deprecation_search_end = deprecation_search_end + self.is_error = is_error class App: diff --git a/tests/slack_sdk/audit_logs/test_response.py b/tests/slack_sdk/audit_logs/test_response.py index c33b19770..747976bab 100644 --- a/tests/slack_sdk/audit_logs/test_response.py +++ b/tests/slack_sdk/audit_logs/test_response.py @@ -138,6 +138,7 @@ def test_logs_complete(self): self.assertEqual(entry.details.can_thread.type, ["admin", "org_admin"]) self.assertEqual(entry.details.can_thread.user, ["W222"]) self.assertEqual(entry.details.is_external_limited, True) + self.assertEqual(entry.details.exporting_team_id, 1134128598372) logs_response_data = """{ @@ -359,7 +360,8 @@ def test_logs_complete(self): "W222" ] }, - "is_external_limited": true + "is_external_limited": true, + "exporting_team_id": 1134128598372 } } ] From 619c638113ab5422d4a17a2e2a91a4722fa9a264 Mon Sep 17 00:00:00 2001 From: Kazuhiro Sera Date: Thu, 3 Mar 2022 15:09:13 +0900 Subject: [PATCH 3/4] Upgrade pytype to the latest --- .github/workflows/pytype.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pytype.yml b/.github/workflows/pytype.yml index 4cda7e1dc..7943367c6 100644 --- a/.github/workflows/pytype.yml +++ b/.github/workflows/pytype.yml @@ -24,7 +24,7 @@ jobs: pip install -e ".[testing]" pip install -e ".[optional]" # As pytype can change its behavior in newer versions, we manually upgrade it - pip install "pytype==2022.2.17" + pip install "pytype==2022.2.23" - name: Run pytype run: | pytype slack_sdk/ From 48661f847607b3264aac41fdc50507222be40300 Mon Sep 17 00:00:00 2001 From: Kazuhiro Sera Date: Thu, 3 Mar 2022 15:10:33 +0900 Subject: [PATCH 4/4] version 3.15.2 --- docs/about.html | 2 +- .../slack_sdk/audit_logs/v1/logs.html | 48 ++++++++++++++++++- .../oauth/installation_store/file/index.html | 2 +- .../oauth/state_store/file/index.html | 2 +- docs/api-docs/slack_sdk/version.html | 2 +- docs/api-docs/slack_sdk/web/async_client.html | 23 +++++++-- docs/api-docs/slack_sdk/web/client.html | 23 +++++++-- .../api-docs/slack_sdk/web/legacy_client.html | 23 +++++++-- docs/audit-logs/index.html | 2 +- docs/faq.html | 2 +- docs/genindex.html | 2 +- docs/index.html | 2 +- docs/installation/index.html | 2 +- docs/metadata.html | 2 +- docs/oauth/index.html | 2 +- docs/real_time_messaging.html | 2 +- docs/scim/index.html | 2 +- docs/search.html | 2 +- docs/socket-mode/index.html | 2 +- docs/v3-migration/index.html | 2 +- docs/web/index.html | 2 +- docs/webhook/index.html | 2 +- slack_sdk/version.py | 2 +- 23 files changed, 122 insertions(+), 33 deletions(-) diff --git a/docs/about.html b/docs/about.html index 6f05426be..8a389ed48 100644 --- a/docs/about.html +++ b/docs/about.html @@ -252,4 +252,4 @@

Python Slack SDK - \ No newline at end of file + diff --git a/docs/api-docs/slack_sdk/audit_logs/v1/logs.html b/docs/api-docs/slack_sdk/audit_logs/v1/logs.html index b94123b5a..93041fb55 100644 --- a/docs/api-docs/slack_sdk/audit_logs/v1/logs.html +++ b/docs/api-docs/slack_sdk/audit_logs/v1/logs.html @@ -206,6 +206,10 @@

Module slack_sdk.audit_logs.v1.logs

who_can_post: Optional[ConversationPref] can_thread: Optional[ConversationPref] is_external_limited: Optional[bool] + exporting_team_id: Optional[int] + session_search_start: Optional[int] + deprecation_search_end: Optional[int] + is_error: Optional[bool] def __init__( self, @@ -268,6 +272,10 @@

Module slack_sdk.audit_logs.v1.logs

who_can_post: Optional[Union[Dict[str, List[str]], ConversationPref]] = None, can_thread: Optional[Union[Dict[str, List[str]], ConversationPref]] = None, is_external_limited: Optional[bool] = None, + exporting_team_id: Optional[int] = None, + session_search_start: Optional[int] = None, + deprecation_search_end: Optional[int] = None, + is_error: Optional[bool] = None, **kwargs, ) -> None: self.name = name @@ -345,6 +353,10 @@

Module slack_sdk.audit_logs.v1.logs

else ConversationPref(**can_thread) ) self.is_external_limited = is_external_limited + self.exporting_team_id = exporting_team_id + self.session_search_start = session_search_start + self.deprecation_search_end = deprecation_search_end + self.is_error = is_error class App: @@ -911,7 +923,7 @@

Class variables

class Details -(*, name: Optional[str] = None, new_value: Union[str, List[str], Dict[str, Any], ForwardRef(None)] = None, previous_value: Union[str, List[str], Dict[str, Any], ForwardRef(None)] = None, expires_on: Optional[int] = None, mobile_only: Optional[bool] = None, web_only: Optional[bool] = None, non_sso_only: Optional[bool] = None, type: Optional[str] = None, is_workflow: Optional[bool] = None, inviter: Union[Dict[str, Any], User, ForwardRef(None)] = None, kicker: Union[Dict[str, Any], User, ForwardRef(None)] = None, shared_to: Optional[str] = None, reason: Optional[str] = None, origin_team: Optional[str] = None, target_team: Optional[str] = None, is_internal_integration: Optional[bool] = None, cleared_resolution: Optional[str] = None, app_owner_id: Optional[str] = None, bot_scopes: Optional[List[str]] = None, new_scopes: Optional[List[str]] = None, previous_scopes: Optional[List[str]] = None, granular_bot_token: Optional[bool] = None, scopes: Optional[List[str]] = None, resolution: Optional[str] = None, app_previously_resolved: Optional[bool] = None, admin_app_id: Optional[str] = None, bot_id: Optional[str] = None, installer_user_id: Optional[str] = None, approver_id: Optional[str] = None, approval_type: Optional[str] = None, app_previously_approved: Optional[bool] = None, old_scopes: Optional[List[str]] = None, channels: Optional[List[str]] = None, permissions: Optional[List[Dict[str, Any]]] = None, new_version_id: Optional[str] = None, trigger: Optional[str] = None, export_type: Optional[str] = None, export_start_ts: Optional[str] = None, export_end_ts: Optional[str] = None, barrier_id: Optional[str] = None, primary_usergroup_id: Optional[str] = None, barriered_from_usergroup_ids: Optional[List[str]] = None, restricted_subjects: Optional[List[str]] = None, duration: Optional[int] = None, desktop_app_browser_quit: Optional[bool] = None, invite_id: Optional[str] = None, external_organization_id: Optional[str] = None, external_organization_name: Optional[str] = None, external_user_id: Optional[str] = None, external_user_email: Optional[str] = None, channel_id: Optional[str] = None, added_team_id: Optional[str] = None, is_token_rotation_enabled_app: Optional[bool] = None, old_retention_policy: Union[Dict[str, Any], RetentionPolicy, ForwardRef(None)] = None, new_retention_policy: Union[Dict[str, Any], RetentionPolicy, ForwardRef(None)] = None, who_can_post: Union[Dict[str, List[str]], ConversationPref, ForwardRef(None)] = None, can_thread: Union[Dict[str, List[str]], ConversationPref, ForwardRef(None)] = None, is_external_limited: Optional[bool] = None, **kwargs) +(*, name: Optional[str] = None, new_value: Union[str, List[str], Dict[str, Any], ForwardRef(None)] = None, previous_value: Union[str, List[str], Dict[str, Any], ForwardRef(None)] = None, expires_on: Optional[int] = None, mobile_only: Optional[bool] = None, web_only: Optional[bool] = None, non_sso_only: Optional[bool] = None, type: Optional[str] = None, is_workflow: Optional[bool] = None, inviter: Union[Dict[str, Any], User, ForwardRef(None)] = None, kicker: Union[Dict[str, Any], User, ForwardRef(None)] = None, shared_to: Optional[str] = None, reason: Optional[str] = None, origin_team: Optional[str] = None, target_team: Optional[str] = None, is_internal_integration: Optional[bool] = None, cleared_resolution: Optional[str] = None, app_owner_id: Optional[str] = None, bot_scopes: Optional[List[str]] = None, new_scopes: Optional[List[str]] = None, previous_scopes: Optional[List[str]] = None, granular_bot_token: Optional[bool] = None, scopes: Optional[List[str]] = None, resolution: Optional[str] = None, app_previously_resolved: Optional[bool] = None, admin_app_id: Optional[str] = None, bot_id: Optional[str] = None, installer_user_id: Optional[str] = None, approver_id: Optional[str] = None, approval_type: Optional[str] = None, app_previously_approved: Optional[bool] = None, old_scopes: Optional[List[str]] = None, channels: Optional[List[str]] = None, permissions: Optional[List[Dict[str, Any]]] = None, new_version_id: Optional[str] = None, trigger: Optional[str] = None, export_type: Optional[str] = None, export_start_ts: Optional[str] = None, export_end_ts: Optional[str] = None, barrier_id: Optional[str] = None, primary_usergroup_id: Optional[str] = None, barriered_from_usergroup_ids: Optional[List[str]] = None, restricted_subjects: Optional[List[str]] = None, duration: Optional[int] = None, desktop_app_browser_quit: Optional[bool] = None, invite_id: Optional[str] = None, external_organization_id: Optional[str] = None, external_organization_name: Optional[str] = None, external_user_id: Optional[str] = None, external_user_email: Optional[str] = None, channel_id: Optional[str] = None, added_team_id: Optional[str] = None, is_token_rotation_enabled_app: Optional[bool] = None, old_retention_policy: Union[Dict[str, Any], RetentionPolicy, ForwardRef(None)] = None, new_retention_policy: Union[Dict[str, Any], RetentionPolicy, ForwardRef(None)] = None, who_can_post: Union[Dict[str, List[str]], ConversationPref, ForwardRef(None)] = None, can_thread: Union[Dict[str, List[str]], ConversationPref, ForwardRef(None)] = None, is_external_limited: Optional[bool] = None, exporting_team_id: Optional[int] = None, session_search_start: Optional[int] = None, deprecation_search_end: Optional[int] = None, is_error: Optional[bool] = None, **kwargs)
@@ -979,6 +991,10 @@

Class variables

who_can_post: Optional[ConversationPref] can_thread: Optional[ConversationPref] is_external_limited: Optional[bool] + exporting_team_id: Optional[int] + session_search_start: Optional[int] + deprecation_search_end: Optional[int] + is_error: Optional[bool] def __init__( self, @@ -1041,6 +1057,10 @@

Class variables

who_can_post: Optional[Union[Dict[str, List[str]], ConversationPref]] = None, can_thread: Optional[Union[Dict[str, List[str]], ConversationPref]] = None, is_external_limited: Optional[bool] = None, + exporting_team_id: Optional[int] = None, + session_search_start: Optional[int] = None, + deprecation_search_end: Optional[int] = None, + is_error: Optional[bool] = None, **kwargs, ) -> None: self.name = name @@ -1117,7 +1137,11 @@

Class variables

if isinstance(can_thread, ConversationPref) else ConversationPref(**can_thread) ) - self.is_external_limited = is_external_limited + self.is_external_limited = is_external_limited + self.exporting_team_id = exporting_team_id + self.session_search_start = session_search_start + self.deprecation_search_end = deprecation_search_end + self.is_error = is_error

Class variables

@@ -1181,6 +1205,10 @@

Class variables

+
var deprecation_search_end : Optional[int]
+
+
+
var desktop_app_browser_quit : Optional[bool]
@@ -1205,6 +1233,10 @@

Class variables

+
var exporting_team_id : Optional[int]
+
+
+
var external_organization_id : Optional[str]
@@ -1237,6 +1269,10 @@

Class variables

+
var is_error : Optional[bool]
+
+
+
var is_external_limited : Optional[bool]
@@ -1329,6 +1365,10 @@

Class variables

+
var session_search_start : Optional[int]
+
+
+
var shared_to : Optional[str]
@@ -2087,12 +2127,14 @@

channel_id
  • channels
  • cleared_resolution
  • +
  • deprecation_search_end
  • desktop_app_browser_quit
  • duration
  • expires_on
  • export_end_ts
  • export_start_ts
  • export_type
  • +
  • exporting_team_id
  • external_organization_id
  • external_organization_name
  • external_user_email
  • @@ -2101,6 +2143,7 @@

    installer_user_id
  • invite_id
  • inviter
  • +
  • is_error
  • is_external_limited
  • is_internal_integration
  • is_token_rotation_enabled_app
  • @@ -2124,6 +2167,7 @@

    resolution
  • restricted_subjects
  • scopes
  • +
  • session_search_start
  • shared_to
  • target_team
  • trigger
  • diff --git a/docs/api-docs/slack_sdk/oauth/installation_store/file/index.html b/docs/api-docs/slack_sdk/oauth/installation_store/file/index.html index 3560bd5c8..b0c0f6e9c 100644 --- a/docs/api-docs/slack_sdk/oauth/installation_store/file/index.html +++ b/docs/api-docs/slack_sdk/oauth/installation_store/file/index.html @@ -275,7 +275,7 @@

    Classes

    class FileInstallationStore -(*, base_dir: str = '/Users/ksera/.bolt-app-installation', historical_data_enabled: bool = True, client_id: Optional[str] = None, logger: logging.Logger = <Logger slack_sdk.oauth.installation_store.file (WARNING)>) +(*, base_dir: str = '/Users/kazuhiro.sera/.bolt-app-installation', historical_data_enabled: bool = True, client_id: Optional[str] = None, logger: logging.Logger = <Logger slack_sdk.oauth.installation_store.file (WARNING)>)

    The installation store interface.

    diff --git a/docs/api-docs/slack_sdk/oauth/state_store/file/index.html b/docs/api-docs/slack_sdk/oauth/state_store/file/index.html index 571114e67..416e6d781 100644 --- a/docs/api-docs/slack_sdk/oauth/state_store/file/index.html +++ b/docs/api-docs/slack_sdk/oauth/state_store/file/index.html @@ -110,7 +110,7 @@

    Classes

    class FileOAuthStateStore -(*, expiration_seconds: int, base_dir: str = '/Users/ksera/.bolt-app-oauth-state', client_id: Optional[str] = None, logger: logging.Logger = <Logger slack_sdk.oauth.state_store.file (WARNING)>) +(*, expiration_seconds: int, base_dir: str = '/Users/kazuhiro.sera/.bolt-app-oauth-state', client_id: Optional[str] = None, logger: logging.Logger = <Logger slack_sdk.oauth.state_store.file (WARNING)>)
    diff --git a/docs/api-docs/slack_sdk/version.html b/docs/api-docs/slack_sdk/version.html index ad47a4a5a..e853d74a0 100644 --- a/docs/api-docs/slack_sdk/version.html +++ b/docs/api-docs/slack_sdk/version.html @@ -28,7 +28,7 @@

    Module slack_sdk.version

    Expand source code
    """Check the latest version at https://pypi.org/project/slack-sdk/"""
    -__version__ = "3.15.1"
    +__version__ = "3.15.2"
    diff --git a/docs/api-docs/slack_sdk/web/async_client.html b/docs/api-docs/slack_sdk/web/async_client.html index 5a171084c..c321e7ca6 100644 --- a/docs/api-docs/slack_sdk/web/async_client.html +++ b/docs/api-docs/slack_sdk/web/async_client.html @@ -2240,6 +2240,7 @@

    Module slack_sdk.web.async_client

    attachments: Optional[Sequence[Union[Dict, Attachment]]] = None, blocks: Optional[Sequence[Union[Dict, Block]]] = None, as_user: Optional[bool] = None, + file_ids: Optional[Union[str, Sequence[str]]] = None, link_names: Optional[bool] = None, parse: Optional[str] = None, # none, full reply_broadcast: Optional[bool] = None, @@ -2261,6 +2262,10 @@

    Module slack_sdk.web.async_client

    "reply_broadcast": reply_broadcast, } ) + if isinstance(file_ids, (list, Tuple)): + kwargs.update({"file_ids": ",".join(file_ids)}) + else: + kwargs.update({"file_ids": file_ids}) _parse_web_class_objects(kwargs) kwargs = _remove_none_values(kwargs) _warn_if_text_is_missing("chat.update", kwargs) @@ -2477,7 +2482,7 @@

    Module slack_sdk.web.async_client

    else: kwargs.update({"emails": emails}) if isinstance(user_ids, (list, Tuple)): - kwargs.update({"emails": ",".join(user_ids)}) + kwargs.update({"user_ids": ",".join(user_ids)}) else: kwargs.update({"user_ids": user_ids}) return await self.api_call( @@ -6779,6 +6784,7 @@

    Note

    attachments: Optional[Sequence[Union[Dict, Attachment]]] = None, blocks: Optional[Sequence[Union[Dict, Block]]] = None, as_user: Optional[bool] = None, + file_ids: Optional[Union[str, Sequence[str]]] = None, link_names: Optional[bool] = None, parse: Optional[str] = None, # none, full reply_broadcast: Optional[bool] = None, @@ -6800,6 +6806,10 @@

    Note

    "reply_broadcast": reply_broadcast, } ) + if isinstance(file_ids, (list, Tuple)): + kwargs.update({"file_ids": ",".join(file_ids)}) + else: + kwargs.update({"file_ids": file_ids}) _parse_web_class_objects(kwargs) kwargs = _remove_none_values(kwargs) _warn_if_text_is_missing("chat.update", kwargs) @@ -7016,7 +7026,7 @@

    Note

    else: kwargs.update({"emails": emails}) if isinstance(user_ids, (list, Tuple)): - kwargs.update({"emails": ",".join(user_ids)}) + kwargs.update({"user_ids": ",".join(user_ids)}) else: kwargs.update({"user_ids": user_ids}) return await self.api_call( @@ -12499,7 +12509,7 @@

    Methods

    -async def chat_update(self, *, channel: str, ts: str, text: Optional[str] = None, attachments: Optional[Sequence[Union[Dict, Attachment]]] = None, blocks: Optional[Sequence[Union[Dict, Block]]] = None, as_user: Optional[bool] = None, link_names: Optional[bool] = None, parse: Optional[str] = None, reply_broadcast: Optional[bool] = None, **kwargs) ‑> AsyncSlackResponse +async def chat_update(self, *, channel: str, ts: str, text: Optional[str] = None, attachments: Optional[Sequence[Union[Dict, Attachment]]] = None, blocks: Optional[Sequence[Union[Dict, Block]]] = None, as_user: Optional[bool] = None, file_ids: Union[str, Sequence[str], ForwardRef(None)] = None, link_names: Optional[bool] = None, parse: Optional[str] = None, reply_broadcast: Optional[bool] = None, **kwargs) ‑> AsyncSlackResponse

    Updates a message in a channel. @@ -12517,6 +12527,7 @@

    Methods

    attachments: Optional[Sequence[Union[Dict, Attachment]]] = None, blocks: Optional[Sequence[Union[Dict, Block]]] = None, as_user: Optional[bool] = None, + file_ids: Optional[Union[str, Sequence[str]]] = None, link_names: Optional[bool] = None, parse: Optional[str] = None, # none, full reply_broadcast: Optional[bool] = None, @@ -12538,6 +12549,10 @@

    Methods

    "reply_broadcast": reply_broadcast, } ) + if isinstance(file_ids, (list, Tuple)): + kwargs.update({"file_ids": ",".join(file_ids)}) + else: + kwargs.update({"file_ids": file_ids}) _parse_web_class_objects(kwargs) kwargs = _remove_none_values(kwargs) _warn_if_text_is_missing("chat.update", kwargs) @@ -12838,7 +12853,7 @@

    Methods

    else: kwargs.update({"emails": emails}) if isinstance(user_ids, (list, Tuple)): - kwargs.update({"emails": ",".join(user_ids)}) + kwargs.update({"user_ids": ",".join(user_ids)}) else: kwargs.update({"user_ids": user_ids}) return await self.api_call( diff --git a/docs/api-docs/slack_sdk/web/client.html b/docs/api-docs/slack_sdk/web/client.html index 191edef8c..e3b0afc65 100644 --- a/docs/api-docs/slack_sdk/web/client.html +++ b/docs/api-docs/slack_sdk/web/client.html @@ -2189,6 +2189,7 @@

    Module slack_sdk.web.client

    attachments: Optional[Sequence[Union[Dict, Attachment]]] = None, blocks: Optional[Sequence[Union[Dict, Block]]] = None, as_user: Optional[bool] = None, + file_ids: Optional[Union[str, Sequence[str]]] = None, link_names: Optional[bool] = None, parse: Optional[str] = None, # none, full reply_broadcast: Optional[bool] = None, @@ -2210,6 +2211,10 @@

    Module slack_sdk.web.client

    "reply_broadcast": reply_broadcast, } ) + if isinstance(file_ids, (list, Tuple)): + kwargs.update({"file_ids": ",".join(file_ids)}) + else: + kwargs.update({"file_ids": file_ids}) _parse_web_class_objects(kwargs) kwargs = _remove_none_values(kwargs) _warn_if_text_is_missing("chat.update", kwargs) @@ -2424,7 +2429,7 @@

    Module slack_sdk.web.client

    else: kwargs.update({"emails": emails}) if isinstance(user_ids, (list, Tuple)): - kwargs.update({"emails": ",".join(user_ids)}) + kwargs.update({"user_ids": ",".join(user_ids)}) else: kwargs.update({"user_ids": user_ids}) return self.api_call( @@ -6666,6 +6671,7 @@

    Note

    attachments: Optional[Sequence[Union[Dict, Attachment]]] = None, blocks: Optional[Sequence[Union[Dict, Block]]] = None, as_user: Optional[bool] = None, + file_ids: Optional[Union[str, Sequence[str]]] = None, link_names: Optional[bool] = None, parse: Optional[str] = None, # none, full reply_broadcast: Optional[bool] = None, @@ -6687,6 +6693,10 @@

    Note

    "reply_broadcast": reply_broadcast, } ) + if isinstance(file_ids, (list, Tuple)): + kwargs.update({"file_ids": ",".join(file_ids)}) + else: + kwargs.update({"file_ids": file_ids}) _parse_web_class_objects(kwargs) kwargs = _remove_none_values(kwargs) _warn_if_text_is_missing("chat.update", kwargs) @@ -6901,7 +6911,7 @@

    Note

    else: kwargs.update({"emails": emails}) if isinstance(user_ids, (list, Tuple)): - kwargs.update({"emails": ",".join(user_ids)}) + kwargs.update({"user_ids": ",".join(user_ids)}) else: kwargs.update({"user_ids": user_ids}) return self.api_call( @@ -12324,7 +12334,7 @@

    Methods

    -def chat_update(self, *, channel: str, ts: str, text: Optional[str] = None, attachments: Optional[Sequence[Union[Dict, Attachment]]] = None, blocks: Optional[Sequence[Union[Dict, Block]]] = None, as_user: Optional[bool] = None, link_names: Optional[bool] = None, parse: Optional[str] = None, reply_broadcast: Optional[bool] = None, **kwargs) ‑> SlackResponse +def chat_update(self, *, channel: str, ts: str, text: Optional[str] = None, attachments: Optional[Sequence[Union[Dict, Attachment]]] = None, blocks: Optional[Sequence[Union[Dict, Block]]] = None, as_user: Optional[bool] = None, file_ids: Union[str, Sequence[str], ForwardRef(None)] = None, link_names: Optional[bool] = None, parse: Optional[str] = None, reply_broadcast: Optional[bool] = None, **kwargs) ‑> SlackResponse

    Updates a message in a channel. @@ -12342,6 +12352,7 @@

    Methods

    attachments: Optional[Sequence[Union[Dict, Attachment]]] = None, blocks: Optional[Sequence[Union[Dict, Block]]] = None, as_user: Optional[bool] = None, + file_ids: Optional[Union[str, Sequence[str]]] = None, link_names: Optional[bool] = None, parse: Optional[str] = None, # none, full reply_broadcast: Optional[bool] = None, @@ -12363,6 +12374,10 @@

    Methods

    "reply_broadcast": reply_broadcast, } ) + if isinstance(file_ids, (list, Tuple)): + kwargs.update({"file_ids": ",".join(file_ids)}) + else: + kwargs.update({"file_ids": file_ids}) _parse_web_class_objects(kwargs) kwargs = _remove_none_values(kwargs) _warn_if_text_is_missing("chat.update", kwargs) @@ -12661,7 +12676,7 @@

    Methods

    else: kwargs.update({"emails": emails}) if isinstance(user_ids, (list, Tuple)): - kwargs.update({"emails": ",".join(user_ids)}) + kwargs.update({"user_ids": ",".join(user_ids)}) else: kwargs.update({"user_ids": user_ids}) return self.api_call( diff --git a/docs/api-docs/slack_sdk/web/legacy_client.html b/docs/api-docs/slack_sdk/web/legacy_client.html index ee9936260..74850a663 100644 --- a/docs/api-docs/slack_sdk/web/legacy_client.html +++ b/docs/api-docs/slack_sdk/web/legacy_client.html @@ -2199,6 +2199,7 @@

    Module slack_sdk.web.legacy_client

    attachments: Optional[Sequence[Union[Dict, Attachment]]] = None, blocks: Optional[Sequence[Union[Dict, Block]]] = None, as_user: Optional[bool] = None, + file_ids: Optional[Union[str, Sequence[str]]] = None, link_names: Optional[bool] = None, parse: Optional[str] = None, # none, full reply_broadcast: Optional[bool] = None, @@ -2220,6 +2221,10 @@

    Module slack_sdk.web.legacy_client

    "reply_broadcast": reply_broadcast, } ) + if isinstance(file_ids, (list, Tuple)): + kwargs.update({"file_ids": ",".join(file_ids)}) + else: + kwargs.update({"file_ids": file_ids}) _parse_web_class_objects(kwargs) kwargs = _remove_none_values(kwargs) _warn_if_text_is_missing("chat.update", kwargs) @@ -2434,7 +2439,7 @@

    Module slack_sdk.web.legacy_client

    else: kwargs.update({"emails": emails}) if isinstance(user_ids, (list, Tuple)): - kwargs.update({"emails": ",".join(user_ids)}) + kwargs.update({"user_ids": ",".join(user_ids)}) else: kwargs.update({"user_ids": user_ids}) return self.api_call( @@ -6676,6 +6681,7 @@

    Note

    attachments: Optional[Sequence[Union[Dict, Attachment]]] = None, blocks: Optional[Sequence[Union[Dict, Block]]] = None, as_user: Optional[bool] = None, + file_ids: Optional[Union[str, Sequence[str]]] = None, link_names: Optional[bool] = None, parse: Optional[str] = None, # none, full reply_broadcast: Optional[bool] = None, @@ -6697,6 +6703,10 @@

    Note

    "reply_broadcast": reply_broadcast, } ) + if isinstance(file_ids, (list, Tuple)): + kwargs.update({"file_ids": ",".join(file_ids)}) + else: + kwargs.update({"file_ids": file_ids}) _parse_web_class_objects(kwargs) kwargs = _remove_none_values(kwargs) _warn_if_text_is_missing("chat.update", kwargs) @@ -6911,7 +6921,7 @@

    Note

    else: kwargs.update({"emails": emails}) if isinstance(user_ids, (list, Tuple)): - kwargs.update({"emails": ",".join(user_ids)}) + kwargs.update({"user_ids": ",".join(user_ids)}) else: kwargs.update({"user_ids": user_ids}) return self.api_call( @@ -12334,7 +12344,7 @@

    Methods

    -def chat_update(self, *, channel: str, ts: str, text: Optional[str] = None, attachments: Optional[Sequence[Union[Dict, Attachment]]] = None, blocks: Optional[Sequence[Union[Dict, Block]]] = None, as_user: Optional[bool] = None, link_names: Optional[bool] = None, parse: Optional[str] = None, reply_broadcast: Optional[bool] = None, **kwargs) ‑> Union[_asyncio.Future, LegacySlackResponse] +def chat_update(self, *, channel: str, ts: str, text: Optional[str] = None, attachments: Optional[Sequence[Union[Dict, Attachment]]] = None, blocks: Optional[Sequence[Union[Dict, Block]]] = None, as_user: Optional[bool] = None, file_ids: Union[str, Sequence[str], ForwardRef(None)] = None, link_names: Optional[bool] = None, parse: Optional[str] = None, reply_broadcast: Optional[bool] = None, **kwargs) ‑> Union[_asyncio.Future, LegacySlackResponse]

    Updates a message in a channel. @@ -12352,6 +12362,7 @@

    Methods

    attachments: Optional[Sequence[Union[Dict, Attachment]]] = None, blocks: Optional[Sequence[Union[Dict, Block]]] = None, as_user: Optional[bool] = None, + file_ids: Optional[Union[str, Sequence[str]]] = None, link_names: Optional[bool] = None, parse: Optional[str] = None, # none, full reply_broadcast: Optional[bool] = None, @@ -12373,6 +12384,10 @@

    Methods

    "reply_broadcast": reply_broadcast, } ) + if isinstance(file_ids, (list, Tuple)): + kwargs.update({"file_ids": ",".join(file_ids)}) + else: + kwargs.update({"file_ids": file_ids}) _parse_web_class_objects(kwargs) kwargs = _remove_none_values(kwargs) _warn_if_text_is_missing("chat.update", kwargs) @@ -12671,7 +12686,7 @@

    Methods

    else: kwargs.update({"emails": emails}) if isinstance(user_ids, (list, Tuple)): - kwargs.update({"emails": ",".join(user_ids)}) + kwargs.update({"user_ids": ",".join(user_ids)}) else: kwargs.update({"user_ids": user_ids}) return self.api_call( diff --git a/docs/audit-logs/index.html b/docs/audit-logs/index.html index 00e09049c..5d6533978 100644 --- a/docs/audit-logs/index.html +++ b/docs/audit-logs/index.html @@ -326,4 +326,4 @@

    RetryHandler - \ No newline at end of file + diff --git a/docs/faq.html b/docs/faq.html index cc2d02c29..cdad903ed 100644 --- a/docs/faq.html +++ b/docs/faq.html @@ -299,4 +299,4 @@

    Documentation - \ No newline at end of file + diff --git a/docs/genindex.html b/docs/genindex.html index 1a2bcd61c..60c3ab2c2 100644 --- a/docs/genindex.html +++ b/docs/genindex.html @@ -243,4 +243,4 @@

    Index

    - \ No newline at end of file + diff --git a/docs/index.html b/docs/index.html index 952c898ea..9735a67e7 100644 --- a/docs/index.html +++ b/docs/index.html @@ -337,4 +337,4 @@

    Getting Help - \ No newline at end of file + diff --git a/docs/installation/index.html b/docs/installation/index.html index d5fdbf367..5b5555088 100644 --- a/docs/installation/index.html +++ b/docs/installation/index.html @@ -348,4 +348,4 @@

    Workspace Installations - \ No newline at end of file + diff --git a/docs/metadata.html b/docs/metadata.html index d227a6227..174423e94 100644 --- a/docs/metadata.html +++ b/docs/metadata.html @@ -238,4 +238,4 @@ - \ No newline at end of file + diff --git a/docs/oauth/index.html b/docs/oauth/index.html index 36bbf802b..4c5a3494c 100644 --- a/docs/oauth/index.html +++ b/docs/oauth/index.html @@ -495,4 +495,4 @@

    Sign in with Slack - \ No newline at end of file + diff --git a/docs/real_time_messaging.html b/docs/real_time_messaging.html index 41a464024..317feb22a 100644 --- a/docs/real_time_messaging.html +++ b/docs/real_time_messaging.html @@ -342,4 +342,4 @@

    Real Time Messaging (RTM) - \ No newline at end of file + diff --git a/docs/scim/index.html b/docs/scim/index.html index f19cfa20f..f1a07173c 100644 --- a/docs/scim/index.html +++ b/docs/scim/index.html @@ -373,4 +373,4 @@

    RetryHandler - \ No newline at end of file + diff --git a/docs/search.html b/docs/search.html index 4ac968f94..c96547d9d 100644 --- a/docs/search.html +++ b/docs/search.html @@ -266,4 +266,4 @@

    Search

    - \ No newline at end of file + diff --git a/docs/socket-mode/index.html b/docs/socket-mode/index.html index 24866a4ca..57fe8431a 100644 --- a/docs/socket-mode/index.html +++ b/docs/socket-mode/index.html @@ -492,4 +492,4 @@

    Asyncio Based Libraries - \ No newline at end of file + diff --git a/docs/v3-migration/index.html b/docs/v3-migration/index.html index 1293f832d..998b5ea1b 100644 --- a/docs/v3-migration/index.html +++ b/docs/v3-migration/index.html @@ -276,4 +276,4 @@

    From slackclient 1.x - \ No newline at end of file + diff --git a/docs/web/index.html b/docs/web/index.html index 203e350d6..3d0044806 100644 --- a/docs/web/index.html +++ b/docs/web/index.html @@ -820,4 +820,4 @@

    RetryHandler - \ No newline at end of file + diff --git a/docs/webhook/index.html b/docs/webhook/index.html index 6f4ce8c84..b82b9e396 100644 --- a/docs/webhook/index.html +++ b/docs/webhook/index.html @@ -384,4 +384,4 @@

    RetryHandler - \ No newline at end of file + diff --git a/slack_sdk/version.py b/slack_sdk/version.py index 4171570b5..7ef94d960 100644 --- a/slack_sdk/version.py +++ b/slack_sdk/version.py @@ -1,2 +1,2 @@ """Check the latest version at https://pypi.org/project/slack-sdk/""" -__version__ = "3.15.1" +__version__ = "3.15.2"