CardKit sequence example raises SyntaxError at module scope

Abierto Apto para principiantes
#161 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
1/5
Tiempo estimado
Menos de una hora
Aptitud para principiantes
94/100
Tipo de issue
Documentación
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
python

Línea de trabajo

Abre doc/channel/cardkit-streaming.md y encuentra el patrón de secuencia recomendado de CardKit. Comprueba el fragmento con el enfoque de compilación de Python documentado y, a continuación, ajusta el patrón de scope o state para que el ejemplo sea sintácticamente válido al copiarlo. Vuelve a ejecutar la comprobación de documentación de todo el repositorio y confirma que los 71 fences explícitos de Python se compilan correctamente.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Affected version

  • lark-oapi 1.7.3
  • Default branch commit: 0b9e6e48b74bb4b34462fc67b7e738b27e73e697
  • File: doc/channel/cardkit-streaming.md, recommended sequence pattern

Problem

The recommended CardKit sequence snippet declares seq at module scope and then uses nonlocal seq inside patch():

seq = 0

async def patch(text):
    nonlocal seq
    seq += 1
    await channel.update_card_element_content(card_id, "main", text, sequence=seq)

nonlocal can only reference a binding in an enclosing function scope, not a module-level binding, so copying or compiling the example raises:

SyntaxError: no binding for nonlocal 'seq' found

Reproduction

source = '''
seq = 0
async def patch(text):
    nonlocal seq
    seq += 1
'''
compile(source, "cardkit-example.py", "exec")

The repository-wide documentation check compiled 71 explicit Python code fences with ast.PyCF_ALLOW_TOP_LEVEL_AWAIT; this was the only fence that failed.

Expected behavior

The recommended pattern should be syntactically valid when copied into an application.

Suggested fix

Place both seq and the nested patch() helper inside an enclosing async function, keeping nonlocal seq meaningful, or use another state pattern that compiles at module scope. The lower-level complete example later in the same page already uses a valid direct increment pattern.

I searched open and closed issues, all pull request states, and repository history for nonlocal seq, CardKit streaming, and the document path. I found no existing report or competing fix.

Lenguaje dominante
Python
Estrellas
559
Forks
102
Métricas de merge de PR
Sin PR fusionados en 30 d

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de larksuite/oapi-sdk-python

Todos los issues de larksuite/oapi-sdk-python

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.