Skip to content

Commit 3aa9c30

Browse files
version 1.20.1 (#1137)
1 parent 6f4854b commit 3aa9c30

File tree

125 files changed

+721
-662
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

125 files changed

+721
-662
lines changed

docs/static/api-docs/slack_bolt/adapter/asgi/aiohttp/index.html

+2-4
Original file line numberDiff line numberDiff line change
@@ -96,14 +96,12 @@ <h2 id="args">Args</h2>
9696
)
9797

9898
async def handle_installation(self, request: AsgiHttpRequest) -&gt; BoltResponse:
99-
oauth_flow: AsyncOAuthFlow = self.app.oauth_flow
100-
return await oauth_flow.handle_installation(
99+
return await self.app.oauth_flow.handle_installation( # type: ignore[union-attr]
101100
AsyncBoltRequest(body=await request.get_raw_body(), query=request.query_string, headers=request.get_headers())
102101
)
103102

104103
async def handle_callback(self, request: AsgiHttpRequest) -&gt; BoltResponse:
105-
oauth_flow: AsyncOAuthFlow = self.app.oauth_flow
106-
return await oauth_flow.handle_callback(
104+
return await self.app.oauth_flow.handle_callback( # type: ignore[union-attr]
107105
AsyncBoltRequest(body=await request.get_raw_body(), query=request.query_string, headers=request.get_headers())
108106
)</code></pre>
109107
</details>

docs/static/api-docs/slack_bolt/adapter/asgi/async_handler.html

+2-4
Original file line numberDiff line numberDiff line change
@@ -96,14 +96,12 @@ <h2 id="args">Args</h2>
9696
)
9797

9898
async def handle_installation(self, request: AsgiHttpRequest) -&gt; BoltResponse:
99-
oauth_flow: AsyncOAuthFlow = self.app.oauth_flow
100-
return await oauth_flow.handle_installation(
99+
return await self.app.oauth_flow.handle_installation( # type: ignore[union-attr]
101100
AsyncBoltRequest(body=await request.get_raw_body(), query=request.query_string, headers=request.get_headers())
102101
)
103102

104103
async def handle_callback(self, request: AsgiHttpRequest) -&gt; BoltResponse:
105-
oauth_flow: AsyncOAuthFlow = self.app.oauth_flow
106-
return await oauth_flow.handle_callback(
104+
return await self.app.oauth_flow.handle_callback( # type: ignore[union-attr]
107105
AsyncBoltRequest(body=await request.get_raw_body(), query=request.query_string, headers=request.get_headers())
108106
)</code></pre>
109107
</details>

docs/static/api-docs/slack_bolt/adapter/asgi/base_handler.html

+7-7
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ <h2 class="section-title" id="header-classes">Classes</h2>
4545
<span>Expand source code</span>
4646
</summary>
4747
<pre><code class="python">class BaseSlackRequestHandler:
48-
app: App # type: ignore
48+
app: Union[App, &#34;AsyncApp&#34;] # type: ignore[name-defined]
4949
path: str
5050

5151
async def dispatch(self, request: AsgiHttpRequest) -&gt; BoltResponse:
@@ -68,13 +68,13 @@ <h2 class="section-title" id="header-classes">Classes</h2>
6868
return AsgiHttpResponse(
6969
status=bolt_response.status, headers=bolt_response.headers, body=bolt_response.body
7070
)
71-
if path == self.app.oauth_flow.redirect_uri_path:
72-
bolt_response: BoltResponse = await self.handle_callback(request)
71+
elif path == self.app.oauth_flow.redirect_uri_path:
72+
bolt_response = await self.handle_callback(request)
7373
return AsgiHttpResponse(
7474
status=bolt_response.status, headers=bolt_response.headers, body=bolt_response.body
7575
)
7676
if method == &#34;POST&#34; and path == self.path:
77-
bolt_response: BoltResponse = await self.dispatch(request)
77+
bolt_response = await self.dispatch(request)
7878
return AsgiHttpResponse(status=bolt_response.status, headers=bolt_response.headers, body=bolt_response.body)
7979
return AsgiHttpResponse(status=404, headers={&#34;content-type&#34;: [&#34;text/plain;charset=utf-8&#34;]}, body=&#34;Not Found&#34;)
8080

@@ -91,23 +91,23 @@ <h2 class="section-title" id="header-classes">Classes</h2>
9191
async def __call__(self, scope: scope_type, receive: Callable, send: Callable) -&gt; None:
9292
if scope[&#34;type&#34;] == &#34;http&#34;:
9393
response: AsgiHttpResponse = await self._get_http_response(
94-
scope[&#34;method&#34;], scope[&#34;path&#34;], AsgiHttpRequest(scope, receive)
94+
method=scope[&#34;method&#34;], path=scope[&#34;path&#34;], request=AsgiHttpRequest(scope, receive) # type: ignore[arg-type]
9595
)
9696
await send(response.get_response_start())
9797
await send(response.get_response_body())
9898
return
9999
if scope[&#34;type&#34;] == &#34;lifespan&#34;:
100100
await send(await self._handle_lifespan(receive))
101101
return
102-
raise TypeError(f&#34;Unsupported scope type: {scope[&#39;type&#39;]}&#34;)</code></pre>
102+
raise TypeError(f&#34;Unsupported scope type: {scope[&#39;type&#39;]!r}&#34;)</code></pre>
103103
</details>
104104
<h3>Subclasses</h3>
105105
<ul class="hlist">
106106
<li><a title="slack_bolt.adapter.asgi.builtin.SlackRequestHandler" href="builtin/index.html#slack_bolt.adapter.asgi.builtin.SlackRequestHandler">SlackRequestHandler</a></li>
107107
</ul>
108108
<h3>Class variables</h3>
109109
<dl>
110-
<dt id="slack_bolt.adapter.asgi.base_handler.BaseSlackRequestHandler.app"><code class="name">var <span class="ident">app</span><a title="slack_bolt.app.app.App" href="../../app/app.html#slack_bolt.app.app.App">App</a></code></dt>
110+
<dt id="slack_bolt.adapter.asgi.base_handler.BaseSlackRequestHandler.app"><code class="name">var <span class="ident">app</span>Union[<a title="slack_bolt.app.app.App" href="../../app/app.html#slack_bolt.app.app.App">App</a>, AsyncApp]</code></dt>
111111
<dd>
112112
<div class="desc"></div>
113113
</dd>

docs/static/api-docs/slack_bolt/adapter/asgi/builtin/index.html

+3-5
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ <h2 id="args">Args</h2>
6565
<span>Expand source code</span>
6666
</summary>
6767
<pre><code class="python">class SlackRequestHandler(BaseSlackRequestHandler):
68-
def __init__(self, app: App, path: str = &#34;/slack/events&#34;): # type: ignore
68+
def __init__(self, app: App, path: str = &#34;/slack/events&#34;):
6969
&#34;&#34;&#34;Setup Bolt as an ASGI web framework, this will make your application compatible with ASGI web servers.
7070
This can be used for production deployment.
7171

@@ -94,14 +94,12 @@ <h2 id="args">Args</h2>
9494
)
9595

9696
async def handle_installation(self, request: AsgiHttpRequest) -&gt; BoltResponse:
97-
oauth_flow: OAuthFlow = self.app.oauth_flow
98-
return oauth_flow.handle_installation(
97+
return self.app.oauth_flow.handle_installation( # type: ignore[union-attr]
9998
BoltRequest(body=await request.get_raw_body(), query=request.query_string, headers=request.get_headers())
10099
)
101100

102101
async def handle_callback(self, request: AsgiHttpRequest) -&gt; BoltResponse:
103-
oauth_flow: OAuthFlow = self.app.oauth_flow
104-
return oauth_flow.handle_callback(
102+
return self.app.oauth_flow.handle_callback( # type: ignore[union-attr]
105103
BoltRequest(body=await request.get_raw_body(), query=request.query_string, headers=request.get_headers())
106104
)</code></pre>
107105
</details>

docs/static/api-docs/slack_bolt/adapter/asgi/http_request.html

+5-5
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,10 @@ <h2 class="section-title" id="header-classes">Classes</h2>
5050

5151
def __init__(self, scope: scope_type, receive: Callable):
5252
self.receive = receive
53-
self.query_string = str(scope[&#34;query_string&#34;], ENCODING)
54-
self.raw_headers = scope[&#34;headers&#34;]
53+
self.query_string = str(scope[&#34;query_string&#34;], ENCODING) # type: ignore[arg-type]
54+
self.raw_headers: Iterable[Tuple[bytes, bytes]] = scope[&#34;headers&#34;] # type: ignore[assignment]
5555

56-
def get_headers(self) -&gt; Dict[str, str]:
56+
def get_headers(self) -&gt; Dict[str, Union[str, Sequence[str]]]:
5757
return {str(header[0], ENCODING): str(header[1], (ENCODING)) for header in self.raw_headers}
5858

5959
async def get_raw_body(self) -&gt; str:
@@ -64,7 +64,7 @@ <h2 class="section-title" id="header-classes">Classes</h2>
6464
if chunk[&#34;type&#34;] != &#34;http.request&#34;:
6565
raise Exception(&#34;Body chunks could not be received from asgi server&#34;)
6666

67-
chunks.extend(chunk.get(&#34;body&#34;, b&#34;&#34;))
67+
chunks.extend(chunk.get(&#34;body&#34;, b&#34;&#34;)) # type: ignore[arg-type]
6868
if not chunk.get(&#34;more_body&#34;, False):
6969
break
7070
return bytes(chunks).decode(ENCODING)</code></pre>
@@ -87,7 +87,7 @@ <h3>Instance variables</h3>
8787
<h3>Methods</h3>
8888
<dl>
8989
<dt id="slack_bolt.adapter.asgi.http_request.AsgiHttpRequest.get_headers"><code class="name flex">
90-
<span>def <span class="ident">get_headers</span></span>(<span>self) ‑> Dict[str, str]</span>
90+
<span>def <span class="ident">get_headers</span></span>(<span>self) ‑> Dict[str, Union[str, Sequence[str]]]</span>
9191
</code></dt>
9292
<dd>
9393
<div class="desc"></div>

docs/static/api-docs/slack_bolt/adapter/asgi/index.html

+3-5
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ <h2 id="args">Args</h2>
9696
<span>Expand source code</span>
9797
</summary>
9898
<pre><code class="python">class SlackRequestHandler(BaseSlackRequestHandler):
99-
def __init__(self, app: App, path: str = &#34;/slack/events&#34;): # type: ignore
99+
def __init__(self, app: App, path: str = &#34;/slack/events&#34;):
100100
&#34;&#34;&#34;Setup Bolt as an ASGI web framework, this will make your application compatible with ASGI web servers.
101101
This can be used for production deployment.
102102

@@ -125,14 +125,12 @@ <h2 id="args">Args</h2>
125125
)
126126

127127
async def handle_installation(self, request: AsgiHttpRequest) -&gt; BoltResponse:
128-
oauth_flow: OAuthFlow = self.app.oauth_flow
129-
return oauth_flow.handle_installation(
128+
return self.app.oauth_flow.handle_installation( # type: ignore[union-attr]
130129
BoltRequest(body=await request.get_raw_body(), query=request.query_string, headers=request.get_headers())
131130
)
132131

133132
async def handle_callback(self, request: AsgiHttpRequest) -&gt; BoltResponse:
134-
oauth_flow: OAuthFlow = self.app.oauth_flow
135-
return oauth_flow.handle_callback(
133+
return self.app.oauth_flow.handle_callback( # type: ignore[union-attr]
136134
BoltRequest(body=await request.get_raw_body(), query=request.query_string, headers=request.get_headers())
137135
)</code></pre>
138136
</details>

docs/static/api-docs/slack_bolt/adapter/aws_lambda/chalice_handler.html

+5-5
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ <h2 class="section-title" id="header-classes">Classes</h2>
6767
<span>Expand source code</span>
6868
</summary>
6969
<pre><code class="python">class ChaliceSlackRequestHandler:
70-
def __init__(self, app: App, chalice: Chalice, lambda_client: Optional[BaseClient] = None): # type: ignore
70+
def __init__(self, app: App, chalice: Chalice, lambda_client: Optional[BaseClient] = None):
7171
self.app = app
7272
self.chalice = chalice
7373
self.logger = get_bolt_app_logger(app.name, ChaliceSlackRequestHandler, app.logger)
@@ -78,7 +78,7 @@ <h2 class="section-title" id="header-classes">Classes</h2>
7878
LocalLambdaClient,
7979
)
8080

81-
lambda_client = LocalLambdaClient(self.chalice, None)
81+
lambda_client = LocalLambdaClient(self.chalice, None) # type: ignore[arg-type]
8282
except ImportError:
8383
logging.info(&#34;Failed to load LocalLambdaClient for CLI mode.&#34;)
8484
pass
@@ -99,7 +99,7 @@ <h2 class="section-title" id="header-classes">Classes</h2>
9999
root.removeHandler(handler)
100100

101101
def handle(self, request: Request):
102-
body: str = request.raw_body.decode(&#34;utf-8&#34;) if request.raw_body else &#34;&#34;
102+
body: str = request.raw_body.decode(&#34;utf-8&#34;) if request.raw_body else &#34;&#34; # type: ignore[union-attr]
103103
self.logger.debug(f&#34;Incoming request: {request.to_dict()}, body: {body}&#34;)
104104

105105
method = request.method
@@ -121,7 +121,7 @@ <h2 class="section-title" id="header-classes">Classes</h2>
121121
bolt_resp = oauth_flow.handle_installation(bolt_req)
122122
return to_chalice_response(bolt_resp)
123123
elif method == &#34;POST&#34;:
124-
bolt_req: BoltRequest = to_bolt_request(request, body)
124+
bolt_req = to_bolt_request(request, body)
125125
# https://docs.aws.amazon.com/lambda/latest/dg/python-context.html
126126
aws_lambda_function_name = self.chalice.lambda_context.function_name
127127
bolt_req.context[&#34;aws_lambda_function_name&#34;] = aws_lambda_function_name
@@ -130,7 +130,7 @@ <h2 class="section-title" id="header-classes">Classes</h2>
130130
aws_response = to_chalice_response(bolt_resp)
131131
return aws_response
132132
elif method == &#34;NONE&#34;:
133-
bolt_req: BoltRequest = to_bolt_request(request, body)
133+
bolt_req = to_bolt_request(request, body)
134134
bolt_resp = self.app.dispatch(bolt_req)
135135
aws_response = to_chalice_response(bolt_resp)
136136
return aws_response

docs/static/api-docs/slack_bolt/adapter/aws_lambda/chalice_lazy_listener_runner.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ <h2 class="section-title" id="header-classes">Classes</h2>
5656

5757
chalice_request: dict = request.context[&#34;chalice_request&#34;]
5858
request.headers[&#34;x-slack-bolt-lazy-only&#34;] = [&#34;1&#34;]
59-
request.headers[&#34;x-slack-bolt-lazy-function-name&#34;] = [request.lazy_function_name]
59+
request.headers[&#34;x-slack-bolt-lazy-function-name&#34;] = [request.lazy_function_name] # type: ignore[list-item]
6060
payload = {
6161
&#34;method&#34;: &#34;NONE&#34;,
6262
&#34;headers&#34;: {k: v[0] for k, v in request.headers.items()},

docs/static/api-docs/slack_bolt/adapter/aws_lambda/handler.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ <h2 class="section-title" id="header-classes">Classes</h2>
6767
<span>Expand source code</span>
6868
</summary>
6969
<pre><code class="python">class SlackRequestHandler:
70-
def __init__(self, app: App): # type: ignore
70+
def __init__(self, app: App):
7171
self.app = app
7272
self.logger = get_bolt_app_logger(app.name, SlackRequestHandler, app.logger)
7373
self.app.listener_runner.lazy_listener_runner = LambdaLazyListenerRunner(self.logger)

docs/static/api-docs/slack_bolt/adapter/aws_lambda/index.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ <h2 class="section-title" id="header-classes">Classes</h2>
7777
<span>Expand source code</span>
7878
</summary>
7979
<pre><code class="python">class SlackRequestHandler:
80-
def __init__(self, app: App): # type: ignore
80+
def __init__(self, app: App):
8181
self.app = app
8282
self.logger = get_bolt_app_logger(app.name, SlackRequestHandler, app.logger)
8383
self.app.listener_runner.lazy_listener_runner = LambdaLazyListenerRunner(self.logger)

docs/static/api-docs/slack_bolt/adapter/bottle/handler.html

+2-2
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ <h2 class="section-title" id="header-classes">Classes</h2>
6161
<span>Expand source code</span>
6262
</summary>
6363
<pre><code class="python">class SlackRequestHandler:
64-
def __init__(self, app: App): # type: ignore
64+
def __init__(self, app: App):
6565
self.app = app
6666

6767
def handle(self, req: Request, resp: Response) -&gt; str:
@@ -77,7 +77,7 @@ <h2 class="section-title" id="header-classes">Classes</h2>
7777
set_response(bolt_resp, resp)
7878
return bolt_resp.body or &#34;&#34;
7979
elif req.method == &#34;POST&#34;:
80-
bolt_resp: BoltResponse = self.app.dispatch(to_bolt_request(req))
80+
bolt_resp = self.app.dispatch(to_bolt_request(req))
8181
set_response(bolt_resp, resp)
8282
return bolt_resp.body or &#34;&#34;
8383

docs/static/api-docs/slack_bolt/adapter/bottle/index.html

+2-2
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ <h2 class="section-title" id="header-classes">Classes</h2>
5353
<span>Expand source code</span>
5454
</summary>
5555
<pre><code class="python">class SlackRequestHandler:
56-
def __init__(self, app: App): # type: ignore
56+
def __init__(self, app: App):
5757
self.app = app
5858

5959
def handle(self, req: Request, resp: Response) -&gt; str:
@@ -69,7 +69,7 @@ <h2 class="section-title" id="header-classes">Classes</h2>
6969
set_response(bolt_resp, resp)
7070
return bolt_resp.body or &#34;&#34;
7171
elif req.method == &#34;POST&#34;:
72-
bolt_resp: BoltResponse = self.app.dispatch(to_bolt_request(req))
72+
bolt_resp = self.app.dispatch(to_bolt_request(req))
7373
set_response(bolt_resp, resp)
7474
return bolt_resp.body or &#34;&#34;
7575

docs/static/api-docs/slack_bolt/adapter/cherrypy/handler.html

+2-2
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ <h2 class="section-title" id="header-classes">Classes</h2>
6767
<span>Expand source code</span>
6868
</summary>
6969
<pre><code class="python">class SlackRequestHandler:
70-
def __init__(self, app: App): # type: ignore
70+
def __init__(self, app: App):
7171
self.app = app
7272

7373
def handle(self) -&gt; bytes:
@@ -85,7 +85,7 @@ <h2 class="section-title" id="header-classes">Classes</h2>
8585
set_response_status_and_headers(bolt_resp)
8686
return (bolt_resp.body or &#34;&#34;).encode(&#34;utf-8&#34;)
8787
elif req.method == &#34;POST&#34;:
88-
bolt_resp: BoltResponse = self.app.dispatch(build_bolt_request())
88+
bolt_resp = self.app.dispatch(build_bolt_request())
8989
set_response_status_and_headers(bolt_resp)
9090
return (bolt_resp.body or &#34;&#34;).encode(&#34;utf-8&#34;)
9191

docs/static/api-docs/slack_bolt/adapter/cherrypy/index.html

+2-2
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ <h2 class="section-title" id="header-classes">Classes</h2>
5353
<span>Expand source code</span>
5454
</summary>
5555
<pre><code class="python">class SlackRequestHandler:
56-
def __init__(self, app: App): # type: ignore
56+
def __init__(self, app: App):
5757
self.app = app
5858

5959
def handle(self) -&gt; bytes:
@@ -71,7 +71,7 @@ <h2 class="section-title" id="header-classes">Classes</h2>
7171
set_response_status_and_headers(bolt_resp)
7272
return (bolt_resp.body or &#34;&#34;).encode(&#34;utf-8&#34;)
7373
elif req.method == &#34;POST&#34;:
74-
bolt_resp: BoltResponse = self.app.dispatch(build_bolt_request())
74+
bolt_resp = self.app.dispatch(build_bolt_request())
7575
set_response_status_and_headers(bolt_resp)
7676
return (bolt_resp.body or &#34;&#34;).encode(&#34;utf-8&#34;)
7777

docs/static/api-docs/slack_bolt/adapter/django/handler.html

+2-2
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ <h3>Inherited members</h3>
175175
<span>Expand source code</span>
176176
</summary>
177177
<pre><code class="python">class SlackRequestHandler:
178-
def __init__(self, app: App): # type: ignore
178+
def __init__(self, app: App):
179179
self.app = app
180180
listener_runner = self.app.listener_runner
181181
# This runner closes all thread-local connections in the thread when an execution completes
@@ -238,7 +238,7 @@ <h3>Inherited members</h3>
238238
bolt_resp = oauth_flow.handle_callback(to_bolt_request(req))
239239
return to_django_response(bolt_resp)
240240
elif req.method == &#34;POST&#34;:
241-
bolt_resp: BoltResponse = self.app.dispatch(to_bolt_request(req))
241+
bolt_resp = self.app.dispatch(to_bolt_request(req))
242242
return to_django_response(bolt_resp)
243243

244244
return HttpResponse(status=404, content=b&#34;Not Found&#34;)</code></pre>

docs/static/api-docs/slack_bolt/adapter/django/index.html

+2-2
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ <h2 class="section-title" id="header-classes">Classes</h2>
5353
<span>Expand source code</span>
5454
</summary>
5555
<pre><code class="python">class SlackRequestHandler:
56-
def __init__(self, app: App): # type: ignore
56+
def __init__(self, app: App):
5757
self.app = app
5858
listener_runner = self.app.listener_runner
5959
# This runner closes all thread-local connections in the thread when an execution completes
@@ -116,7 +116,7 @@ <h2 class="section-title" id="header-classes">Classes</h2>
116116
bolt_resp = oauth_flow.handle_callback(to_bolt_request(req))
117117
return to_django_response(bolt_resp)
118118
elif req.method == &#34;POST&#34;:
119-
bolt_resp: BoltResponse = self.app.dispatch(to_bolt_request(req))
119+
bolt_resp = self.app.dispatch(to_bolt_request(req))
120120
return to_django_response(bolt_resp)
121121

122122
return HttpResponse(status=404, content=b&#34;Not Found&#34;)</code></pre>

docs/static/api-docs/slack_bolt/adapter/falcon/async_resource.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ <h2 class="section-title" id="header-classes">Classes</h2>
6262
app.add_route(&#34;/slack/events&#34;, AsyncSlackAppResource(app))
6363
&#34;&#34;&#34;
6464

65-
def __init__(self, app: AsyncApp): # type: ignore
65+
def __init__(self, app: AsyncApp):
6666
if falcon_version.__version__.startswith(&#34;2.&#34;):
6767
raise BoltError(&#34;This ASGI compatible adapter requires Falcon version &gt;= 3.0&#34;)
6868

docs/static/api-docs/slack_bolt/adapter/falcon/index.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ <h2 class="section-title" id="header-classes">Classes</h2>
7070
api.add_route(&#34;/slack/events&#34;, SlackAppResource(app))
7171
&#34;&#34;&#34;
7272

73-
def __init__(self, app: App): # type: ignore
73+
def __init__(self, app: App):
7474
self.app = app
7575

7676
def on_get(self, req: Request, resp: Response):

docs/static/api-docs/slack_bolt/adapter/falcon/resource.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ <h2 class="section-title" id="header-classes">Classes</h2>
5959
api.add_route(&#34;/slack/events&#34;, SlackAppResource(app))
6060
&#34;&#34;&#34;
6161

62-
def __init__(self, app: App): # type: ignore
62+
def __init__(self, app: App):
6363
self.app = app
6464

6565
def on_get(self, req: Request, resp: Response):

0 commit comments

Comments
 (0)