Edison convierte los mensajes EDIFACT en árboles sintácticos reales para Python

Parsing EDIFACT in Python with syntax trees

Edison convierte los mensajes EDIFACT en árboles sintácticos reales para Python

Edison, la librería de AmadeusITGroup, parsea EDIFACT modelando cada mensaje como un árbol sintáctico recursivo en lugar de una lista plana de segmentos. Defines el esquema una vez en Python y luego parseas, validas o imprimes mensajes contra esa estructura. Soporta grupos condicionales, obligatorios y repetibles, callbacks por segmento, versionado de esquemas, separadores escapados y EBCDIC, y exportación de grafos de transición con pydot.

En lugar de tratar un mensaje como una lista plana de segmentos, modela los mensajes como un árbol sintáctico: los segmentos pueden definir grupos de segmentos hijos, de forma recursiva.
  1. vc5

    Esto me transporta 20+ años atrás, a cuando tenía que crear/parsear mensajes EDI para varios minoristas cuando trabajaba en una distribuidora de discos independiente.

    Escribí una biblioteca en C para parsear los mensajes con callbacks al estilo de Expat. Hay bindings para Perl para hacerlo un poco más fácil de usar. Se soportan EDIFACT, X12 y Tradacoms.

    En fin, es poco probable que alguien necesite esto hoy en día, pero hay algunos scripts de Perl que pueden interpretar los "directorios" de EDIFACT (básicamente esquemas de mensajes), así que no tienes que construir tus propias definiciones de sintaxis de mensajes. Debería ser posible convertir la salida XML que genera en el Python necesario para definir la sintaxis de mensajes, definiciones de elementos, etc.

    Mucha suerte con ello: hay todo un mundo de estándares industriales locos por explorar.

    Ah, y la consultoría es una posibilidad si alguien la necesita ;-)

    --

    https://github.com/davidcoles/medici

  2. CharlesW

    En caso de que otros usuarios de HN tampoco hayan oído hablar de esto: https://en.wikipedia.org/wiki/EDIFACT

  3. alexprengere

    Edison es una biblioteca de Python para parsear mensajes EDIFACT. En lugar de tratar un mensaje como una lista plana de segmentos, modela los mensajes como un árbol sintáctico: los segmentos pueden definir grupos de segmentos hijos, de forma recursiva.

    Defines el árbol sintáctico una vez, luego parseas, validas o imprimes con formato los mensajes contra esa estructura.

    Funciona convirtiendo el árbol sintáctico en una máquina de estados de posibles transiciones entre segmentos.

Más de este día

2026-10-24