Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Testing `ca_nothing` for boolean needs to be deprecated

Abierto
#67 2 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
42/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
python
Área
backend

Línea de trabajo

Revisa la implementación de ca_nothing.bool en src/cothread/catools.py, utilizando el issue 45 para el comportamiento booleano inesperado descrito aquí. Determina cómo debe emitirse la advertencia de obsolescencia de una sola vez y verifica que el comportamiento esté marcado como un breaking change antes de eliminar la implementación.

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

Descripción

As discussed in https://github.com/dls-controls/aioca/issues/45 it would appear that allowing a ca_nothing value to return False to a boolean test triggers unexpected behaviour: it turns out that Exception subclasses are expected by core Python libraries to return True when tested with __bool__.

The obvious fix is to delete the implementation of ca_nothing.__bool__ here: https://github.com/DiamondLightSource/cothread/blob/bb6245082c22069abea0fa5f00f710777d632cda/src/cothread/catools.py#L103-L105 but unfortunately this is a breaking change for any code which is testing bool(value) rather than value.ok. The only reasonable solution is probably to raise a one-shot deprecation warning when this function is called.

Fortunately I don't think the boolean test feature of ca_nothing is documented, but this still needs to be flagged as a breaking change.

Lenguaje dominante
C
Estrellas
13
Forks
11
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Abrir en Codespaces

Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.

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 DiamondLightSource/cothread

Todos los issues de DiamondLightSource/cothread

Issues similares

Más issues de C

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.