Add support for "sub apps"
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 25/100
Línea de trabajo
Empieza revisando las APIs de composición de slack_bolt.App y slack_bolt.async_app.AsyncApp y, después, lee la solución alternativa descrita en el issue #236. Compara el comportamiento solicitado de add_app con include_router de FastAPI y add_typer de Typer. El trabajo estará terminado cuando se puedan adjuntar subaplicaciones o plugins definidos de forma independiente a ambas variantes de app sin pasar manualmente la app principal ni invocar directamente los decoradores.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
When creating a large slack application it would be nice to be able to reuse components in a more pythonic way than what is possible right now.
A workaround is described in issue #236, but it requires passing the app object around and manually wiring up things by registering and calling decorators as functions directly.
I suggest adding a feature much like include_router in FastAPI or add_typer in Typer.
This feature will let us create sub-apps in separate files or even separate packages, like plugins that can be published on pypi.org separately.
Here is a small example illustrating what I mean:
main.py
Here is our main app, where we add a plugin from a separate package
import os
from slack_bolt import App
from my_plugin import my_plugin
# Initializes your app with your bot token and signing secret
app = App(
token=os.environ.get("SLACK_BOT_TOKEN"),
signing_secret=os.environ.get("SLACK_SIGNING_SECRET")
)
app.add_app(my_plugin)
my_plugin.py
A simple plugin that just creates a slack_bolt app, but without any config
from slack_bolt import App
my_plugin = App()
@my_plugin.message("hello")
def message_hello(message, say):
say("Hello world")
Category
- slack_bolt.App and/or its core components
- slack_bolt.async_app.AsyncApp and/or its core components
- Adapters in slack_bolt.adapter
- Others
- Lenguaje dominante
- Python
- Estrellas
- 1.3k
- Forks
- 288
- Merge medio
- 1 d 8 h
- PR fusionados (30 d)
- 10
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de slackapi/bolt-python
-
docs enhancement server-side
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
slackapi/bolt-python#1576 · 1 comentario ·
-
auto-triage-skip bug security semver:major
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
slackapi/bolt-python#1447 · 9 comentarios ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 65/100
slackapi/bolt-python#1577 ·
-
area:async auto-triage-skip dependencies
Dificultad 3/5 1-2 días Aptitud para principiantes 65/100
slackapi/bolt-python#1472 · 1 comentario · 1 reacción ·
-
auto-triage-skip enhancement
slackapi/bolt-python#1346 · 2 comentarios · 1 asignado ·
Todos los issues de slackapi/bolt-python
Issues similares
-
货币战争手改优先级配置缺少列表元素类型校验(P3) Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
syfoud/Simulated_Scepter#172 ·
-
A cancelled tests run makes the coverage comment workflow fail and reports it as a red check on main Abiertoarea: ci bug perceived difficulty: 3
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Nitjsefnie-Harness-Commons/daedalus#921 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
EleutherAI/lm-evaluation-harness#4207 ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 92/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
ClickHouse/clickhouse-connect#1057 ·