Asspose.Tex's Input Interface | Python
Per definizioni formali dell’implementazione I/O in Aspose.TeX per Python, consultare il riferimento API.
L’idea alla base della directory di input
Dato che i primitivi I/O della lingua tex possono solo gestire i nomi dei file, aspose.tex per Python definisce una directory come una mappatura tra nomi e raccolte di dati. Queste raccolte di dati possono essere file, flussi, array o qualsiasi altro tipo. L’API consente una specifica separata di directory di lavoro input e output. Fornisce la classe generale inputworkingdirectory, che gli utenti possono implementare per le loro esigenze specifiche. Inoltre, l’API fornisce implementazioni integrate, che saranno discusse più avanti. L’interfaccia include il metodo get_file(), che recupera il flusso di dati e determina il nome completo in base a un nome dato, che funge da tasto di mappatura.
Recupero input di file dal file system disco
Ecco l’approccio che adotteremmo:
1# Create conversion options instance.
2...
3# Specify a file system working directory for the input.
4options.input_working_directory = InputFileSystemDirectory(Utils.input_directory)
Questo particolare caso d’uso è abbastanza semplice, quindi possiamo passare da esso ora.
Recupero input di file da un archivio zip
Un’altra opzione è archiviare i file di input in un archivio ZIP e trattarli come una directory di input. In tale scenario, dovrebbero essere seguiti i seguenti passaggi:
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")
Per iniziare, creiamo il flusso contenente il file ZIP. Successivamente, dopo aver creato le opzioni di conversione, assegniamo un’istanza della classe InputZipDirectory alla proprietà input_working_directory. Il secondo parametro del costruttore rappresenta il percorso di base all’interno dell’archivio. Se desideriamo che l’intero archivio funzioni come directory di input, dobbiamo fornire una stringa vuota come argomento.
L’idea alla base del terminale di input
Ora consideriamo il concetto di input terminale. Aspose.TeX per Python definisce l’interfaccia generale iinputterminal specificamente a questo scopo, che include una singola proprietà che restituisce un’istanza di TerminalReader. Le implementazioni disponibili saranno discusse in seguito.
Ottenere l’input del terminale dalla console
Per raggiungere questo obiettivo, dobbiamo assegnare un’istanza della classe inputConsoleterminal all’opzione terminale_in.
1# Create conversion options instance.
2...
3# Specify the console as the input terminal.
4options.terminal_in = InputConsoleTerminal() # Default. Arbitrary assignment.
Tuttavia, a dire il vero, questo è il valore predefinito per l’opzione, quindi non è necessario specificarlo esplicitamente. Data l’assenza di altre implementazioni, questa sezione è puramente a fini dimostrativi.
In teoria, se abbiamo un file TEX interattivo (o script) con un comportamento prevedibile, potrebbe essere desiderabile implementare una versione del terminale di input che include uno script corrispondente per rispondere alle richieste del motore Tex. Sentiti libero di provarlo quando hai l’opportunità!