Quiero leer un archivo PGN y luego avanzar a un cierto número de movimiento, y alimentarlo a un motor UCI. Resulta que los motores funcionan con notación algebraica larga, y los PGN son algebraicos cortos. ¿Cuál es una manera fácil de hacer la conversión? es decir, de SAN a LAN.
Me doy cuenta de que generar una notación algebraica larga requiere conocer el estado del tablero y las reglas de ajedrez, ¡así que no quiero volver a escribirlo todo! Seguramente algo como esto ya debe existir, ya sea un programa de línea de comandos o un módulo (preferiblemente en Python).
                    
                        pgn
                                programming
                                
                    
                    
                        multiplicación rápida
fuente
                
                fuente

Respuestas:
¿Sería esto lo que estás buscando? PGN-extract (Una utilidad de línea de comando) http://www.cs.kent.ac.uk/people/staff/djb/pgn-extract/
Puedo ver una bandera en el documento de características que podría ayudar:
-W[cm|epd|halg|lalg|elalg|san|uci]- especifique el formato de salida que se utilizará con-Whalgguión largo algebraico.-WlalgAlgebraico largo-Welalg[PNBRQK]es realzado algebraico largo. Usa los caracteres PNBRQK para el lenguajefuente
-Wucisi quieren alimentarlo a un motor UCI.