Interfaz de entrada de Aspose.TeX | Pitón

Para obtener definiciones formales de la implementación de E/S en Aspose.TeX para Python, consulte la referencia de API.

La idea detrás del directorio de entrada

Dado que las primitivas de E/S del lenguaje TeX solo pueden manejar nombres de archivos, Aspose.TeX para Python define un directorio como un mapeo entre nombres y colecciones de datos. Estas colecciones de datos pueden ser archivos, secuencias, matrices o cualquier otro tipo. La API permite la especificación separada de directorios de trabajo de entrada y salida. Proporciona la clase general InputWorkingDirectory, que los usuarios pueden implementar para sus necesidades específicas. Además, la API proporciona implementaciones integradas, que se analizarán más adelante. La interfaz incluye el método get_file(), que recupera el flujo de datos y determina el nombre completo del archivo en función de un nombre determinado, que sirve como clave de mapeo.

Recuperar la entrada de archivos del sistema de archivos del disco

Este es el enfoque que adoptaríamos:

1# Create conversion options instance.
2...
3# Specify a file system working directory for the input.
4options.input_working_directory = InputFileSystemDirectory(Utils.input_directory)

Este caso de uso particular es bastante sencillo, por lo que podemos continuar con él ahora.

Recuperar la entrada de un archivo desde un archivo ZIP

Otra opción es almacenar los archivos de entrada en un archivo ZIP y tratarlo como un directorio de entrada. En tal escenario, se deben seguir los siguientes pasos:

1# Open the stream for the ZIP archive that will serve as the input working directory.
2with open(path.join(Utils.input_directory, "zip-in.zip")) as in_zip_stream:
3    # Create conversion options instance.
4    ...
5    # Specify a ZIP archive working directory for the input. You can also specify a path inside the archive.
6    options.input_working_directory = InputZipDirectory(in_zip_stream, "in")

Para empezar, creamos la secuencia que contiene el archivo ZIP. Posteriormente, después de crear las opciones de conversión, asignamos una instancia de la clase InputZipDirectory a la propiedad input_working_directory. El segundo parámetro del constructor representa la ruta base dentro del archivo. Si deseamos que todo el archivo funcione como directorio de entrada, debemos proporcionar una cadena vacía como argumento.

La idea detrás del terminal de entrada

Ahora consideremos el concepto de entrada terminal. Aspose.TeX para Python define la interfaz general IInputTerminal específicamente para este propósito, que incluye una propiedad única que devuelve una instancia de la implementación TerminalReader. Las implementaciones disponibles se discutirán más adelante.

Obtener entrada de terminal desde la consola

Para lograr esto, necesitamos asignar una instancia de la clase InputConsoleTerminal a la opción terminal_in.

1# Create conversion options instance.
2...
3# Specify the console as the input terminal.
4options.terminal_in = InputConsoleTerminal()  # Default. Arbitrary assignment.

Sin embargo, para ser honesto, este es el valor predeterminado para la opción, por lo que no hay necesidad real de especificarlo explícitamente. Dada la ausencia de otras implementaciones, esta sección tiene fines puramente demostrativos.

En teoría, si tenemos un archivo (o script) TeX interactivo con un comportamiento predecible, podría ser deseable implementar una versión del terminal de entrada que incluya un script correspondiente para responder a las solicitudes del motor TeX. ¡No dudes en probarlo cuando tengas la oportunidad!

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.