Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-slack-sdk for openSUSE:Factory checked in at 2022-11-12 17:41:02 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-slack-sdk (Old) and /work/SRC/openSUSE:Factory/.python-slack-sdk.new.1597 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-slack-sdk" Sat Nov 12 17:41:02 2022 rev:4 rq:1035246 version:3.19.2 Changes: -------- --- /work/SRC/openSUSE:Factory/python-slack-sdk/python-slack-sdk.changes 2022-10-31 13:04:28.049735374 +0100 +++ /work/SRC/openSUSE:Factory/.python-slack-sdk.new.1597/python-slack-sdk.changes 2022-11-12 17:41:16.698206978 +0100 @@ -1,0 +2,11 @@ +Wed Nov 9 18:59:46 UTC 2022 - Yogalakshmi Arunachalam <yarunacha...@suse.com> + +- Update to 3.19.2 + #1282 Add request_file_info arg to files_upload_v2 method - Thanks @seratch @eddyg + #1278 Improve clarity of 'content' error message for files_upload_v2 - Thanks @eddyg + #1283 Improve typing when using 'get' on an API response - Thanks @eddyg + #1284 Add Python 3.11 support - Thanks @seratch + #1281 Fix selected_option type hint - Thanks @taekop + All issues/pull requests: https://github.com/slackapi/python-slack-sdk/milestone/71?closed=1 + +------------------------------------------------------------------- Old: ---- slack-sdk-3.19.1.tar.gz New: ---- slack-sdk-3.19.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-slack-sdk.spec ++++++ --- /var/tmp/diff_new_pack.3A9gur/_old 2022-11-12 17:41:18.774219338 +0100 +++ /var/tmp/diff_new_pack.3A9gur/_new 2022-11-12 17:41:18.778219361 +0100 @@ -18,7 +18,7 @@ %{?!python_module:%define python_module() python3-%{**}} Name: python-slack-sdk -Version: 3.19.1 +Version: 3.19.2 Release: 0 Summary: Python SDKs for the Slack API License: MIT ++++++ slack-sdk-3.19.1.tar.gz -> slack-sdk-3.19.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-slack-sdk-3.19.1/.github/workflows/ci-build.yml new/python-slack-sdk-3.19.2/.github/workflows/ci-build.yml --- old/python-slack-sdk-3.19.1/.github/workflows/ci-build.yml 2022-10-06 06:24:03.000000000 +0200 +++ new/python-slack-sdk-3.19.2/.github/workflows/ci-build.yml 2022-10-27 11:13:10.000000000 +0200 @@ -12,10 +12,7 @@ timeout-minutes: 10 strategy: matrix: - # TODO: 3.10 in GH Actions is not yet stable enough for us - # You may often encounter "Error: Process completed with exit code 250." - # python-version: ['3.6', '3.7', '3.8', '3.9', '3.10'] - python-version: ['3.6', '3.7', '3.8', '3.9'] + python-version: ['3.6', '3.7', '3.8', '3.9', '3.10', '3.11'] env: PYTHON_SLACK_SDK_MOCK_SERVER_MODE: 'threading' #CI_UNSTABLE_TESTS_SKIP_ENABLED: '1' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-slack-sdk-3.19.1/docs/api-docs/slack_sdk/index.html new/python-slack-sdk-3.19.2/docs/api-docs/slack_sdk/index.html --- old/python-slack-sdk-3.19.1/docs/api-docs/slack_sdk/index.html 2022-10-06 06:24:03.000000000 +0200 +++ new/python-slack-sdk-3.19.2/docs/api-docs/slack_sdk/index.html 2022-10-27 11:13:10.000000000 +0200 @@ -3244,6 +3244,7 @@ channel: Optional[str] = None, initial_comment: Optional[str] = None, thread_ts: Optional[str] = None, + request_file_info: bool = True, **kwargs, ) -> SlackResponse: """This wrapper method provides an easy way to upload files using the following endpoints: @@ -3342,11 +3343,12 @@ thread_ts=thread_ts, **kwargs, ) - _attach_full_file_metadata( - client=self, - token_as_arg=kwargs.get("token"), - completion=completion, - ) + if request_file_info is True: + _attach_full_file_metadata( + client=self, + token_as_arg=kwargs.get("token"), + completion=completion, + ) return completion def files_getUploadURLExternal( @@ -9573,7 +9575,7 @@ </details> </dd> <dt id="slack_sdk.WebClient.files_upload_v2"><code class="name flex"> -<span>def <span class="ident">files_upload_v2</span></span>(<span>self, *, filename: Optional[str] = None, file: Union[str, bytes, io.IOBase, ForwardRef(None)] = None, content: Union[str, bytes, ForwardRef(None)] = None, title: Optional[str] = None, alt_txt: Optional[str] = None, snippet_type: Optional[str] = None, file_uploads: Optional[List[Dict[str, Any]]] = None, channel: Optional[str] = None, initial_comment: Optional[str] = None, thread_ts: Optional[str] = None, **kwargs) â> <a title="slack_sdk.web.slack_response.SlackResponse" href="web/slack_response.html#slack_sdk.web.slack_response.SlackResponse">SlackResponse</a></span> +<span>def <span class="ident">files_upload_v2</span></span>(<span>self, *, filename: Optional[str] = None, file: Union[str, bytes, io.IOBase, ForwardRef(None)] = None, content: Union[str, bytes, ForwardRef(None)] = None, title: Optional[str] = None, alt_txt: Optional[str] = None, snippet_type: Optional[str] = None, file_uploads: Optional[List[Dict[str, Any]]] = None, channel: Optional[str] = None, initial_comment: Optional[str] = None, thread_ts: Optional[str] = None, request_file_info: bool = True, **kwargs) â> <a title="slack_sdk.web.slack_response.SlackResponse" href="web/slack_response.html#slack_sdk.web.slack_response.SlackResponse">SlackResponse</a></span> </code></dt> <dd> <div class="desc"><p>This wrapper method provides an easy way to upload files using the following endpoints:</p> @@ -9608,6 +9610,7 @@ channel: Optional[str] = None, initial_comment: Optional[str] = None, thread_ts: Optional[str] = None, + request_file_info: bool = True, **kwargs, ) -> SlackResponse: """This wrapper method provides an easy way to upload files using the following endpoints: @@ -9706,11 +9709,12 @@ thread_ts=thread_ts, **kwargs, ) - _attach_full_file_metadata( - client=self, - token_as_arg=kwargs.get("token"), - completion=completion, - ) + if request_file_info is True: + _attach_full_file_metadata( + client=self, + token_as_arg=kwargs.get("token"), + completion=completion, + ) return completion</code></pre> </details> </dd> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-slack-sdk-3.19.1/docs/api-docs/slack_sdk/models/views/index.html new/python-slack-sdk-3.19.2/docs/api-docs/slack_sdk/models/views/index.html --- old/python-slack-sdk-3.19.1/docs/api-docs/slack_sdk/models/views/index.html 2022-10-06 06:24:03.000000000 +0200 +++ new/python-slack-sdk-3.19.2/docs/api-docs/slack_sdk/models/views/index.html 2022-10-27 11:13:10.000000000 +0200 @@ -234,7 +234,7 @@ selected_conversation: Optional[str] = None, selected_channel: Optional[str] = None, selected_user: Optional[str] = None, - selected_option: Optional[str] = None, + selected_option: Optional[Union[dict, Option]] = None, selected_conversations: Optional[Sequence[str]] = None, selected_channels: Optional[Sequence[str]] = None, selected_users: Optional[Sequence[str]] = None, @@ -539,7 +539,7 @@ </dd> <dt id="slack_sdk.models.views.ViewStateValue"><code class="flex name class"> <span>class <span class="ident">ViewStateValue</span></span> -<span>(</span><span>*, type: Optional[str] = None, value: Optional[str] = None, selected_date: Optional[str] = None, selected_time: Optional[str] = None, selected_conversation: Optional[str] = None, selected_channel: Optional[str] = None, selected_user: Optional[str] = None, selected_option: Optional[str] = None, selected_conversations: Optional[Sequence[str]] = None, selected_channels: Optional[Sequence[str]] = None, selected_users: Optional[Sequence[str]] = None, selected_options: Optional[Sequence[Union[dict, <a title="slack_sdk.models.blocks.basic_components.Option" href="../blocks/basic_components.html#slack_sdk.models.blocks.basic_components.Option">Option</a>]]] = None)</span> +<span>(</span><span>*, type: Optional[str] = None, value: Optional[str] = None, selected_date: Optional[str] = None, selected_time: Optional[str] = None, selected_conversation: Optional[str] = None, selected_channel: Optional[str] = None, selected_user: Optional[str] = None, selected_option: Union[dict, <a title="slack_sdk.models.blocks.basic_components.Option" href="../blocks/basic_components.html#slack_sdk.models.blocks.basic_components.Option">Option</a>, ForwardRef(None)] = None, selected_conversations: Optional[Sequence[str]] = None, selected_channels: Optional[Sequence[str]] = None, selected_users: Optional[Sequence[str]] = None, selected_options: Optional[Sequence[Union[dict, <a title="slack_sdk.models.blocks.basic_components.Option" href="../blocks/basic_components.html#slack_sdk.models.blocks.basic_components.Option">Option</a>]]] = None)</span> </code></dt> <dd> <div class="desc"><p>The base class for JSON serializable class objects</p></div> @@ -573,7 +573,7 @@ selected_conversation: Optional[str] = None, selected_channel: Optional[str] = None, selected_user: Optional[str] = None, - selected_option: Optional[str] = None, + selected_option: Optional[Union[dict, Option]] = None, selected_conversations: Optional[Sequence[str]] = None, selected_channels: Optional[Sequence[str]] = None, selected_users: Optional[Sequence[str]] = None, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-slack-sdk-3.19.1/docs/api-docs/slack_sdk/version.html new/python-slack-sdk-3.19.2/docs/api-docs/slack_sdk/version.html --- old/python-slack-sdk-3.19.1/docs/api-docs/slack_sdk/version.html 2022-10-06 06:24:03.000000000 +0200 +++ new/python-slack-sdk-3.19.2/docs/api-docs/slack_sdk/version.html 2022-10-27 11:13:10.000000000 +0200 @@ -28,7 +28,7 @@ <span>Expand source code</span> </summary> <pre><code class="python">"""Check the latest version at https://pypi.org/project/slack-sdk/""" -__version__ = "3.19.0"</code></pre> +__version__ = "3.19.2"</code></pre> </details> </section> <section> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-slack-sdk-3.19.1/docs/api-docs/slack_sdk/web/async_client.html new/python-slack-sdk-3.19.2/docs/api-docs/slack_sdk/web/async_client.html --- old/python-slack-sdk-3.19.1/docs/api-docs/slack_sdk/web/async_client.html 2022-10-06 06:24:03.000000000 +0200 +++ new/python-slack-sdk-3.19.2/docs/api-docs/slack_sdk/web/async_client.html 2022-10-27 11:13:10.000000000 +0200 @@ -3044,6 +3044,7 @@ channel: Optional[str] = None, initial_comment: Optional[str] = None, thread_ts: Optional[str] = None, + request_file_info: bool = True, **kwargs, ) -> AsyncSlackResponse: """This wrapper method provides an easy way to upload files using the following endpoints: @@ -3142,11 +3143,12 @@ thread_ts=thread_ts, **kwargs, ) - await _attach_full_file_metadata_async( - client=self, - token_as_arg=kwargs.get("token"), - completion=completion, - ) + if request_file_info is True: + await _attach_full_file_metadata_async( + client=self, + token_as_arg=kwargs.get("token"), + completion=completion, + ) return completion async def files_getUploadURLExternal( @@ -7682,6 +7684,7 @@ channel: Optional[str] = None, initial_comment: Optional[str] = None, thread_ts: Optional[str] = None, + request_file_info: bool = True, **kwargs, ) -> AsyncSlackResponse: """This wrapper method provides an easy way to upload files using the following endpoints: @@ -7780,11 +7783,12 @@ thread_ts=thread_ts, **kwargs, ) - await _attach_full_file_metadata_async( - client=self, - token_as_arg=kwargs.get("token"), - completion=completion, - ) + if request_file_info is True: + await _attach_full_file_metadata_async( + client=self, + token_as_arg=kwargs.get("token"), + completion=completion, + ) return completion async def files_getUploadURLExternal( @@ -14011,7 +14015,7 @@ </details> </dd> <dt id="slack_sdk.web.async_client.AsyncWebClient.files_upload_v2"><code class="name flex"> -<span>async def <span class="ident">files_upload_v2</span></span>(<span>self, *, filename: Optional[str] = None, file: Union[str, bytes, io.IOBase, ForwardRef(None)] = None, content: Union[str, bytes, ForwardRef(None)] = None, title: Optional[str] = None, alt_txt: Optional[str] = None, snippet_type: Optional[str] = None, file_uploads: Optional[List[Dict[str, Any]]] = None, channel: Optional[str] = None, initial_comment: Optional[str] = None, thread_ts: Optional[str] = None, **kwargs) â> <a title="slack_sdk.web.async_slack_response.AsyncSlackResponse" href="async_slack_response.html#slack_sdk.web.async_slack_response.AsyncSlackResponse">AsyncSlackResponse</a></span> +<span>async def <span class="ident">files_upload_v2</span></span>(<span>self, *, filename: Optional[str] = None, file: Union[str, bytes, io.IOBase, ForwardRef(None)] = None, content: Union[str, bytes, ForwardRef(None)] = None, title: Optional[str] = None, alt_txt: Optional[str] = None, snippet_type: Optional[str] = None, file_uploads: Optional[List[Dict[str, Any]]] = None, channel: Optional[str] = None, initial_comment: Optional[str] = None, thread_ts: Optional[str] = None, request_file_info: bool = True, **kwargs) â> <a title="slack_sdk.web.async_slack_response.AsyncSlackResponse" href="async_slack_response.html#slack_sdk.web.async_slack_response.AsyncSlackResponse">AsyncSlackResponse</a></span> </code></dt> <dd> <div class="desc"><p>This wrapper method provides an easy way to upload files using the following endpoints:</p> @@ -14046,6 +14050,7 @@ channel: Optional[str] = None, initial_comment: Optional[str] = None, thread_ts: Optional[str] = None, + request_file_info: bool = True, **kwargs, ) -> AsyncSlackResponse: """This wrapper method provides an easy way to upload files using the following endpoints: @@ -14144,11 +14149,12 @@ thread_ts=thread_ts, **kwargs, ) - await _attach_full_file_metadata_async( - client=self, - token_as_arg=kwargs.get("token"), - completion=completion, - ) + if request_file_info is True: + await _attach_full_file_metadata_async( + client=self, + token_as_arg=kwargs.get("token"), + completion=completion, + ) return completion</code></pre> </details> </dd> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-slack-sdk-3.19.1/docs/api-docs/slack_sdk/web/async_slack_response.html new/python-slack-sdk-3.19.2/docs/api-docs/slack_sdk/web/async_slack_response.html --- old/python-slack-sdk-3.19.1/docs/api-docs/slack_sdk/web/async_slack_response.html 2022-10-06 06:24:03.000000000 +0200 +++ new/python-slack-sdk-3.19.2/docs/api-docs/slack_sdk/web/async_slack_response.html 2022-10-27 11:13:10.000000000 +0200 @@ -30,11 +30,13 @@ <pre><code class="python">"""A Python module for interacting and consuming responses from Slack.""" import logging -from typing import Union +from typing import Any, Optional, TypeVar, Union, overload import slack_sdk.errors as e from .internal_utils import _next_cursor_is_present +T = TypeVar("T") + class AsyncSlackResponse: """An iterable container of response data. @@ -188,6 +190,14 @@ else: raise StopAsyncIteration + @overload + def get(self, key: str, default: None = None) -> Optional[Any]: + ... + + @overload + def get(self, key: str, default: T) -> T: + ... + def get(self, key, default=None): """Retrieves any key from the response data. @@ -429,6 +439,14 @@ else: raise StopAsyncIteration + @overload + def get(self, key: str, default: None = None) -> Optional[Any]: + ... + + @overload + def get(self, key: str, default: T) -> T: + ... + def get(self, key, default=None): """Retrieves any key from the response data. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-slack-sdk-3.19.1/docs/api-docs/slack_sdk/web/client.html new/python-slack-sdk-3.19.2/docs/api-docs/slack_sdk/web/client.html --- old/python-slack-sdk-3.19.1/docs/api-docs/slack_sdk/web/client.html 2022-10-06 06:24:03.000000000 +0200 +++ new/python-slack-sdk-3.19.2/docs/api-docs/slack_sdk/web/client.html 2022-10-27 11:13:10.000000000 +0200 @@ -3035,6 +3035,7 @@ channel: Optional[str] = None, initial_comment: Optional[str] = None, thread_ts: Optional[str] = None, + request_file_info: bool = True, **kwargs, ) -> SlackResponse: """This wrapper method provides an easy way to upload files using the following endpoints: @@ -3133,11 +3134,12 @@ thread_ts=thread_ts, **kwargs, ) - _attach_full_file_metadata( - client=self, - token_as_arg=kwargs.get("token"), - completion=completion, - ) + if request_file_info is True: + _attach_full_file_metadata( + client=self, + token_as_arg=kwargs.get("token"), + completion=completion, + ) return completion def files_getUploadURLExternal( @@ -7673,6 +7675,7 @@ channel: Optional[str] = None, initial_comment: Optional[str] = None, thread_ts: Optional[str] = None, + request_file_info: bool = True, **kwargs, ) -> SlackResponse: """This wrapper method provides an easy way to upload files using the following endpoints: @@ -7771,11 +7774,12 @@ thread_ts=thread_ts, **kwargs, ) - _attach_full_file_metadata( - client=self, - token_as_arg=kwargs.get("token"), - completion=completion, - ) + if request_file_info is True: + _attach_full_file_metadata( + client=self, + token_as_arg=kwargs.get("token"), + completion=completion, + ) return completion def files_getUploadURLExternal( @@ -14002,7 +14006,7 @@ </details> </dd> <dt id="slack_sdk.web.client.WebClient.files_upload_v2"><code class="name flex"> -<span>def <span class="ident">files_upload_v2</span></span>(<span>self, *, filename: Optional[str] = None, file: Union[str, bytes, io.IOBase, ForwardRef(None)] = None, content: Union[str, bytes, ForwardRef(None)] = None, title: Optional[str] = None, alt_txt: Optional[str] = None, snippet_type: Optional[str] = None, file_uploads: Optional[List[Dict[str, Any]]] = None, channel: Optional[str] = None, initial_comment: Optional[str] = None, thread_ts: Optional[str] = None, **kwargs) â> <a title="slack_sdk.web.slack_response.SlackResponse" href="slack_response.html#slack_sdk.web.slack_response.SlackResponse">SlackResponse</a></span> +<span>def <span class="ident">files_upload_v2</span></span>(<span>self, *, filename: Optional[str] = None, file: Union[str, bytes, io.IOBase, ForwardRef(None)] = None, content: Union[str, bytes, ForwardRef(None)] = None, title: Optional[str] = None, alt_txt: Optional[str] = None, snippet_type: Optional[str] = None, file_uploads: Optional[List[Dict[str, Any]]] = None, channel: Optional[str] = None, initial_comment: Optional[str] = None, thread_ts: Optional[str] = None, request_file_info: bool = True, **kwargs) â> <a title="slack_sdk.web.slack_response.SlackResponse" href="slack_response.html#slack_sdk.web.slack_response.SlackResponse">SlackResponse</a></span> </code></dt> <dd> <div class="desc"><p>This wrapper method provides an easy way to upload files using the following endpoints:</p> @@ -14037,6 +14041,7 @@ channel: Optional[str] = None, initial_comment: Optional[str] = None, thread_ts: Optional[str] = None, + request_file_info: bool = True, **kwargs, ) -> SlackResponse: """This wrapper method provides an easy way to upload files using the following endpoints: @@ -14135,11 +14140,12 @@ thread_ts=thread_ts, **kwargs, ) - _attach_full_file_metadata( - client=self, - token_as_arg=kwargs.get("token"), - completion=completion, - ) + if request_file_info is True: + _attach_full_file_metadata( + client=self, + token_as_arg=kwargs.get("token"), + completion=completion, + ) return completion</code></pre> </details> </dd> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-slack-sdk-3.19.1/docs/api-docs/slack_sdk/web/index.html new/python-slack-sdk-3.19.2/docs/api-docs/slack_sdk/web/index.html --- old/python-slack-sdk-3.19.1/docs/api-docs/slack_sdk/web/index.html 2022-10-06 06:24:03.000000000 +0200 +++ new/python-slack-sdk-3.19.2/docs/api-docs/slack_sdk/web/index.html 2022-10-27 11:13:10.000000000 +0200 @@ -296,6 +296,14 @@ else: raise StopIteration + @overload + def get(self, key: str, default: None = None) -> Optional[Any]: + ... + + @overload + def get(self, key: str, default: T) -> T: + ... + def get(self, key, default=None): """Retrieves any key from the response data. @@ -3447,6 +3455,7 @@ channel: Optional[str] = None, initial_comment: Optional[str] = None, thread_ts: Optional[str] = None, + request_file_info: bool = True, **kwargs, ) -> SlackResponse: """This wrapper method provides an easy way to upload files using the following endpoints: @@ -3545,11 +3554,12 @@ thread_ts=thread_ts, **kwargs, ) - _attach_full_file_metadata( - client=self, - token_as_arg=kwargs.get("token"), - completion=completion, - ) + if request_file_info is True: + _attach_full_file_metadata( + client=self, + token_as_arg=kwargs.get("token"), + completion=completion, + ) return completion def files_getUploadURLExternal( @@ -9776,7 +9786,7 @@ </details> </dd> <dt id="slack_sdk.web.WebClient.files_upload_v2"><code class="name flex"> -<span>def <span class="ident">files_upload_v2</span></span>(<span>self, *, filename: Optional[str] = None, file: Union[str, bytes, io.IOBase, ForwardRef(None)] = None, content: Union[str, bytes, ForwardRef(None)] = None, title: Optional[str] = None, alt_txt: Optional[str] = None, snippet_type: Optional[str] = None, file_uploads: Optional[List[Dict[str, Any]]] = None, channel: Optional[str] = None, initial_comment: Optional[str] = None, thread_ts: Optional[str] = None, **kwargs) â> <a title="slack_sdk.web.slack_response.SlackResponse" href="slack_response.html#slack_sdk.web.slack_response.SlackResponse">SlackResponse</a></span> +<span>def <span class="ident">files_upload_v2</span></span>(<span>self, *, filename: Optional[str] = None, file: Union[str, bytes, io.IOBase, ForwardRef(None)] = None, content: Union[str, bytes, ForwardRef(None)] = None, title: Optional[str] = None, alt_txt: Optional[str] = None, snippet_type: Optional[str] = None, file_uploads: Optional[List[Dict[str, Any]]] = None, channel: Optional[str] = None, initial_comment: Optional[str] = None, thread_ts: Optional[str] = None, request_file_info: bool = True, **kwargs) â> <a title="slack_sdk.web.slack_response.SlackResponse" href="slack_response.html#slack_sdk.web.slack_response.SlackResponse">SlackResponse</a></span> </code></dt> <dd> <div class="desc"><p>This wrapper method provides an easy way to upload files using the following endpoints:</p> @@ -9811,6 +9821,7 @@ channel: Optional[str] = None, initial_comment: Optional[str] = None, thread_ts: Optional[str] = None, + request_file_info: bool = True, **kwargs, ) -> SlackResponse: """This wrapper method provides an easy way to upload files using the following endpoints: @@ -9909,11 +9920,12 @@ thread_ts=thread_ts, **kwargs, ) - _attach_full_file_metadata( - client=self, - token_as_arg=kwargs.get("token"), - completion=completion, - ) + if request_file_info is True: + _attach_full_file_metadata( + client=self, + token_as_arg=kwargs.get("token"), + completion=completion, + ) return completion</code></pre> </details> </dd> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-slack-sdk-3.19.1/docs/api-docs/slack_sdk/web/internal_utils.html new/python-slack-sdk-3.19.2/docs/api-docs/slack_sdk/web/internal_utils.html --- old/python-slack-sdk-3.19.1/docs/api-docs/slack_sdk/web/internal_utils.html 2022-10-06 06:24:03.000000000 +0200 +++ new/python-slack-sdk-3.19.2/docs/api-docs/slack_sdk/web/internal_utils.html 2022-10-27 11:13:10.000000000 +0200 @@ -345,12 +345,12 @@ else: data = file elif content is not None: - if isinstance(content, str): # filepath + if isinstance(content, str): data = content.encode("utf-8") elif isinstance(content, bytes): data = content else: - raise SlackRequestError("The given content must be either filepath as str or data as bytes") + raise SlackRequestError("content for file upload must be 'str' (UTF-8 encoded) or 'bytes' (for data)") filename = upload_file.get("filename") if upload_file.get("filename") is None and isinstance(file, str): @@ -364,6 +364,9 @@ if data is None: raise SlackRequestError(f"File content not found for filename: {filename}, title: {title}") + if title is None: + title = filename # to be consistent with files.upload API + return { "filename": filename, "data": data, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-slack-sdk-3.19.1/docs/api-docs/slack_sdk/web/legacy_client.html new/python-slack-sdk-3.19.2/docs/api-docs/slack_sdk/web/legacy_client.html --- old/python-slack-sdk-3.19.1/docs/api-docs/slack_sdk/web/legacy_client.html 2022-10-06 06:24:03.000000000 +0200 +++ new/python-slack-sdk-3.19.2/docs/api-docs/slack_sdk/web/legacy_client.html 2022-10-27 11:13:10.000000000 +0200 @@ -3045,6 +3045,7 @@ channel: Optional[str] = None, initial_comment: Optional[str] = None, thread_ts: Optional[str] = None, + request_file_info: bool = True, **kwargs, ) -> Union[Future, SlackResponse]: """This wrapper method provides an easy way to upload files using the following endpoints: @@ -3143,11 +3144,12 @@ thread_ts=thread_ts, **kwargs, ) - _attach_full_file_metadata( - client=self, - token_as_arg=kwargs.get("token"), - completion=completion, - ) + if request_file_info is True: + _attach_full_file_metadata( + client=self, + token_as_arg=kwargs.get("token"), + completion=completion, + ) return completion def files_getUploadURLExternal( @@ -7683,6 +7685,7 @@ channel: Optional[str] = None, initial_comment: Optional[str] = None, thread_ts: Optional[str] = None, + request_file_info: bool = True, **kwargs, ) -> Union[Future, SlackResponse]: """This wrapper method provides an easy way to upload files using the following endpoints: @@ -7781,11 +7784,12 @@ thread_ts=thread_ts, **kwargs, ) - _attach_full_file_metadata( - client=self, - token_as_arg=kwargs.get("token"), - completion=completion, - ) + if request_file_info is True: + _attach_full_file_metadata( + client=self, + token_as_arg=kwargs.get("token"), + completion=completion, + ) return completion def files_getUploadURLExternal( @@ -14012,7 +14016,7 @@ </details> </dd> <dt id="slack_sdk.web.legacy_client.LegacyWebClient.files_upload_v2"><code class="name flex"> -<span>def <span class="ident">files_upload_v2</span></span>(<span>self, *, filename: Optional[str] = None, file: Union[str, bytes, io.IOBase, ForwardRef(None)] = None, content: Union[str, bytes, ForwardRef(None)] = None, title: Optional[str] = None, alt_txt: Optional[str] = None, snippet_type: Optional[str] = None, file_uploads: Optional[List[Dict[str, Any]]] = None, channel: Optional[str] = None, initial_comment: Optional[str] = None, thread_ts: Optional[str] = None, **kwargs) â> Union[_asyncio.Future, <a title="slack_sdk.web.legacy_slack_response.LegacySlackResponse" href="legacy_slack_response.html#slack_sdk.web.legacy_slack_response.LegacySlackResponse">LegacySlackResponse</a>]</span> +<span>def <span class="ident">files_upload_v2</span></span>(<span>self, *, filename: Optional[str] = None, file: Union[str, bytes, io.IOBase, ForwardRef(None)] = None, content: Union[str, bytes, ForwardRef(None)] = None, title: Optional[str] = None, alt_txt: Optional[str] = None, snippet_type: Optional[str] = None, file_uploads: Optional[List[Dict[str, Any]]] = None, channel: Optional[str] = None, initial_comment: Optional[str] = None, thread_ts: Optional[str] = None, request_file_info: bool = True, **kwargs) â> Union[_asyncio.Future, <a title="slack_sdk.web.legacy_slack_response.LegacySlackResponse" href="legacy_slack_response.html#slack_sdk.web.legacy_slack_response.LegacySlackResponse">LegacySlackResponse</a>]</span> </code></dt> <dd> <div class="desc"><p>This wrapper method provides an easy way to upload files using the following endpoints:</p> @@ -14047,6 +14051,7 @@ channel: Optional[str] = None, initial_comment: Optional[str] = None, thread_ts: Optional[str] = None, + request_file_info: bool = True, **kwargs, ) -> Union[Future, SlackResponse]: """This wrapper method provides an easy way to upload files using the following endpoints: @@ -14145,11 +14150,12 @@ thread_ts=thread_ts, **kwargs, ) - _attach_full_file_metadata( - client=self, - token_as_arg=kwargs.get("token"), - completion=completion, - ) + if request_file_info is True: + _attach_full_file_metadata( + client=self, + token_as_arg=kwargs.get("token"), + completion=completion, + ) return completion</code></pre> </details> </dd> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-slack-sdk-3.19.1/docs/api-docs/slack_sdk/web/slack_response.html new/python-slack-sdk-3.19.2/docs/api-docs/slack_sdk/web/slack_response.html --- old/python-slack-sdk-3.19.1/docs/api-docs/slack_sdk/web/slack_response.html 2022-10-06 06:24:03.000000000 +0200 +++ new/python-slack-sdk-3.19.2/docs/api-docs/slack_sdk/web/slack_response.html 2022-10-27 11:13:10.000000000 +0200 @@ -30,11 +30,13 @@ <pre><code class="python">"""A Python module for interacting and consuming responses from Slack.""" import logging -from typing import Union +from typing import Any, Optional, TypeVar, Union, overload import slack_sdk.errors as e from .internal_utils import _next_cursor_is_present +T = TypeVar("T") + class SlackResponse: """An iterable container of response data. @@ -185,6 +187,14 @@ else: raise StopIteration + @overload + def get(self, key: str, default: None = None) -> Optional[Any]: + ... + + @overload + def get(self, key: str, default: T) -> T: + ... + def get(self, key, default=None): """Retrieves any key from the response data. @@ -423,6 +433,14 @@ else: raise StopIteration + @overload + def get(self, key: str, default: None = None) -> Optional[Any]: + ... + + @overload + def get(self, key: str, default: T) -> T: + ... + def get(self, key, default=None): """Retrieves any key from the response data. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-slack-sdk-3.19.1/integration_tests/web/test_files_upload_v2.py new/python-slack-sdk-3.19.2/integration_tests/web/test_files_upload_v2.py --- old/python-slack-sdk-3.19.1/integration_tests/web/test_files_upload_v2.py 2022-10-06 06:24:03.000000000 +0200 +++ new/python-slack-sdk-3.19.2/integration_tests/web/test_files_upload_v2.py 2022-10-27 11:13:10.000000000 +0200 @@ -190,3 +190,50 @@ file=upload["file"]["id"], ) self.assertIsNotNone(deletion) + + def test_request_file_info_false(self): + client = self.sync_client + upload = client.files_upload_v2( + channels=self.channel_id, + title="Foo", + filename="foo.txt", + content="foo", + ) + self.assertIsNotNone(upload) + self.assertIsNotNone(upload.get("files")[0].get("id")) + self.assertIsNotNone(upload.get("files")[0].get("name")) + + upload = client.files_upload_v2( + channels=self.channel_id, + title="Foo", + filename="foo.txt", + content="foo", + request_file_info=False, + ) + self.assertIsNotNone(upload) + self.assertIsNotNone(upload.get("files")[0].get("id")) + self.assertIsNone(upload.get("files")[0].get("name")) + + @async_test + async def test_request_file_info_false_async(self): + client = self.async_client + upload = await client.files_upload_v2( + channels=self.channel_id, + title="Foo", + filename="foo.txt", + content="foo", + ) + self.assertIsNotNone(upload) + self.assertIsNotNone(upload.get("files")[0].get("id")) + self.assertIsNotNone(upload.get("files")[0].get("name")) + + upload = await client.files_upload_v2( + channels=self.channel_id, + title="Foo", + filename="foo.txt", + content="foo", + request_file_info=False, + ) + self.assertIsNotNone(upload) + self.assertIsNotNone(upload.get("files")[0].get("id")) + self.assertIsNone(upload.get("files")[0].get("name")) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-slack-sdk-3.19.1/setup.py new/python-slack-sdk-3.19.2/setup.py --- old/python-slack-sdk-3.19.1/setup.py 2022-10-06 06:24:03.000000000 +0200 +++ new/python-slack-sdk-3.19.2/setup.py 2022-10-27 11:13:10.000000000 +0200 @@ -305,6 +305,7 @@ "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", ], keywords="slack slack-api web-api slack-rtm websocket chat chatbot chatops", packages=find_packages( diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-slack-sdk-3.19.1/slack_sdk/models/views/__init__.py new/python-slack-sdk-3.19.2/slack_sdk/models/views/__init__.py --- old/python-slack-sdk-3.19.1/slack_sdk/models/views/__init__.py 2022-10-06 06:24:03.000000000 +0200 +++ new/python-slack-sdk-3.19.2/slack_sdk/models/views/__init__.py 2022-10-27 11:13:10.000000000 +0200 @@ -206,7 +206,7 @@ selected_conversation: Optional[str] = None, selected_channel: Optional[str] = None, selected_user: Optional[str] = None, - selected_option: Optional[str] = None, + selected_option: Optional[Union[dict, Option]] = None, selected_conversations: Optional[Sequence[str]] = None, selected_channels: Optional[Sequence[str]] = None, selected_users: Optional[Sequence[str]] = None, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-slack-sdk-3.19.1/slack_sdk/version.py new/python-slack-sdk-3.19.2/slack_sdk/version.py --- old/python-slack-sdk-3.19.1/slack_sdk/version.py 2022-10-06 06:24:03.000000000 +0200 +++ new/python-slack-sdk-3.19.2/slack_sdk/version.py 2022-10-27 11:13:10.000000000 +0200 @@ -1,2 +1,2 @@ """Check the latest version at https://pypi.org/project/slack-sdk/""" -__version__ = "3.19.1" +__version__ = "3.19.2" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-slack-sdk-3.19.1/slack_sdk/web/async_client.py new/python-slack-sdk-3.19.2/slack_sdk/web/async_client.py --- old/python-slack-sdk-3.19.1/slack_sdk/web/async_client.py 2022-10-06 06:24:03.000000000 +0200 +++ new/python-slack-sdk-3.19.2/slack_sdk/web/async_client.py 2022-10-27 11:13:10.000000000 +0200 @@ -3015,6 +3015,7 @@ channel: Optional[str] = None, initial_comment: Optional[str] = None, thread_ts: Optional[str] = None, + request_file_info: bool = True, **kwargs, ) -> AsyncSlackResponse: """This wrapper method provides an easy way to upload files using the following endpoints: @@ -3113,11 +3114,12 @@ thread_ts=thread_ts, **kwargs, ) - await _attach_full_file_metadata_async( - client=self, - token_as_arg=kwargs.get("token"), - completion=completion, - ) + if request_file_info is True: + await _attach_full_file_metadata_async( + client=self, + token_as_arg=kwargs.get("token"), + completion=completion, + ) return completion async def files_getUploadURLExternal( diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-slack-sdk-3.19.1/slack_sdk/web/async_slack_response.py new/python-slack-sdk-3.19.2/slack_sdk/web/async_slack_response.py --- old/python-slack-sdk-3.19.1/slack_sdk/web/async_slack_response.py 2022-10-06 06:24:03.000000000 +0200 +++ new/python-slack-sdk-3.19.2/slack_sdk/web/async_slack_response.py 2022-10-27 11:13:10.000000000 +0200 @@ -1,11 +1,13 @@ """A Python module for interacting and consuming responses from Slack.""" import logging -from typing import Union +from typing import Any, Optional, TypeVar, Union, overload import slack_sdk.errors as e from .internal_utils import _next_cursor_is_present +T = TypeVar("T") + class AsyncSlackResponse: """An iterable container of response data. @@ -159,6 +161,14 @@ else: raise StopAsyncIteration + @overload + def get(self, key: str, default: None = None) -> Optional[Any]: + ... + + @overload + def get(self, key: str, default: T) -> T: + ... + def get(self, key, default=None): """Retrieves any key from the response data. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-slack-sdk-3.19.1/slack_sdk/web/client.py new/python-slack-sdk-3.19.2/slack_sdk/web/client.py --- old/python-slack-sdk-3.19.1/slack_sdk/web/client.py 2022-10-06 06:24:03.000000000 +0200 +++ new/python-slack-sdk-3.19.2/slack_sdk/web/client.py 2022-10-27 11:13:10.000000000 +0200 @@ -3006,6 +3006,7 @@ channel: Optional[str] = None, initial_comment: Optional[str] = None, thread_ts: Optional[str] = None, + request_file_info: bool = True, **kwargs, ) -> SlackResponse: """This wrapper method provides an easy way to upload files using the following endpoints: @@ -3104,11 +3105,12 @@ thread_ts=thread_ts, **kwargs, ) - _attach_full_file_metadata( - client=self, - token_as_arg=kwargs.get("token"), - completion=completion, - ) + if request_file_info is True: + _attach_full_file_metadata( + client=self, + token_as_arg=kwargs.get("token"), + completion=completion, + ) return completion def files_getUploadURLExternal( diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-slack-sdk-3.19.1/slack_sdk/web/internal_utils.py new/python-slack-sdk-3.19.2/slack_sdk/web/internal_utils.py --- old/python-slack-sdk-3.19.1/slack_sdk/web/internal_utils.py 2022-10-06 06:24:03.000000000 +0200 +++ new/python-slack-sdk-3.19.2/slack_sdk/web/internal_utils.py 2022-10-27 11:13:10.000000000 +0200 @@ -317,12 +317,12 @@ else: data = file elif content is not None: - if isinstance(content, str): # filepath + if isinstance(content, str): data = content.encode("utf-8") elif isinstance(content, bytes): data = content else: - raise SlackRequestError("The given content must be either filepath as str or data as bytes") + raise SlackRequestError("content for file upload must be 'str' (UTF-8 encoded) or 'bytes' (for data)") filename = upload_file.get("filename") if upload_file.get("filename") is None and isinstance(file, str): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-slack-sdk-3.19.1/slack_sdk/web/legacy_client.py new/python-slack-sdk-3.19.2/slack_sdk/web/legacy_client.py --- old/python-slack-sdk-3.19.1/slack_sdk/web/legacy_client.py 2022-10-06 06:24:03.000000000 +0200 +++ new/python-slack-sdk-3.19.2/slack_sdk/web/legacy_client.py 2022-10-27 11:13:10.000000000 +0200 @@ -3017,6 +3017,7 @@ channel: Optional[str] = None, initial_comment: Optional[str] = None, thread_ts: Optional[str] = None, + request_file_info: bool = True, **kwargs, ) -> Union[Future, SlackResponse]: """This wrapper method provides an easy way to upload files using the following endpoints: @@ -3115,11 +3116,12 @@ thread_ts=thread_ts, **kwargs, ) - _attach_full_file_metadata( - client=self, - token_as_arg=kwargs.get("token"), - completion=completion, - ) + if request_file_info is True: + _attach_full_file_metadata( + client=self, + token_as_arg=kwargs.get("token"), + completion=completion, + ) return completion def files_getUploadURLExternal( diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-slack-sdk-3.19.1/slack_sdk/web/slack_response.py new/python-slack-sdk-3.19.2/slack_sdk/web/slack_response.py --- old/python-slack-sdk-3.19.1/slack_sdk/web/slack_response.py 2022-10-06 06:24:03.000000000 +0200 +++ new/python-slack-sdk-3.19.2/slack_sdk/web/slack_response.py 2022-10-27 11:13:10.000000000 +0200 @@ -1,11 +1,13 @@ """A Python module for interacting and consuming responses from Slack.""" import logging -from typing import Union +from typing import Any, Optional, TypeVar, Union, overload import slack_sdk.errors as e from .internal_utils import _next_cursor_is_present +T = TypeVar("T") + class SlackResponse: """An iterable container of response data. @@ -156,6 +158,14 @@ else: raise StopIteration + @overload + def get(self, key: str, default: None = None) -> Optional[Any]: + ... + + @overload + def get(self, key: str, default: T) -> T: + ... + def get(self, key, default=None): """Retrieves any key from the response data.