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

Generated Python code is not interoperable when a union contains a member called "value"

Abierto
#338 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

  • #339 de @Miko997 — cerrado sin fusionar

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
58/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Tranquilo
Stack tecnológico
c, python

Línea de trabajo

Empieza reproduciendo el problema con la IDL QualifiedName proporcionada en los ejemplos hello-world de Python y C. Compara el código generado y el comportamiento en el wire para un miembro de la unión llamado value frente a the_value. Se considera terminado cuando el publisher y el reader coinciden y se comunican correctamente con value sin cambios.

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

Descripción

When using an IDL file which defines a union, which contains a member called "value" - the generated python code is no longer interoperable with other language implementations.

For example:

module AddressSpace {

    union QualifiedName switch (boolean) {
        case TRUE:
            string value;
    };

    struct Node {
        long node_id;
        QualifiedName browse_name;
        string display_name;
    };

};

I used this IDL as a replacement for the "hello world" examples in both the python and C repositories (C acting as the publisher, python as the subscriber). With the IDL file exactly as above, the publisher never matches with a reader. Simply changing the above IDL file to replace the "value" member with something else (say, for example "the_value"), and regenerating the C and python code - causes everything to work as expected.

I am also aware of the @optional IDL syntax - but unfortunately cannot use it in this case.

Lenguaje dominante
Python
Estrellas
110
Forks
68
Merge medio
3 d 5 h
PR fusionados (30 d)
1

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

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 eclipse-cyclonedds/cyclonedds-python

Todos los issues de eclipse-cyclonedds/cyclonedds-python

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.