8.3.3.2. Various file format
With the introduction of the vectors and strings from version 3.10.0, more complex interaction with files were introduced: how to differ two iterations of a single vector and how to differentiate a double from a string. This depends highly on the nature of the input/output file under consideration, whether it is just a text file used as database (in this case it depends mostly on the way you’ve written the code that generate/parse it) or whether it corresponds to a more strict kind of file, for instance a piece of code (c++/python/zsh). In the latter case, strings and vectors are not written in the same way. To take this into account, a rule has been defined (commonly to both input and output files, both in the Launcher and Relauncher module). There is a method for any kind of file to define properties of vector and string objects:
setVectorProperties(string beg, string delim, string end): the first element is the string beginning of the vector (usually “[” for python, “(” for zsh/sh, nothing…), the second one is the delimiter between iterators (usually “,” for c++/python, blank for zsh/sh…) and the last one is the end of the string (usually the opposite character of the beginning one).setStringProperties(string beg, string end): the first and second elements are respectively the beginning and ending character used for string (oftenly""").
Depending on the kind of chosen file, there is a default configuration chosen. This default is precised in the following two sections.
Warning
The chosen output format has to be consistent with the output parameters investigated, particularly when some are vectors which can be empty for some specific configurations. In this peculiar but still possible case, the abscence of results is indeed a result of its own and should not be taken as a failure (from an incomplete output file for instance, this specific aspect being further discussed later-on in Dealing with attributes).
Most of the time this would be independent of Uranie as it would be specific to the code under investigation, and as such, it might be tricky to handle. Two use-case macro have been written to show this, so please take a look at empty vectors considered as results in Macro “relauncherCodeMultiTypeKeyEmptyVectors.py” or considered as an error in Macro “relauncherCodeMultiTypeKeyEmptyVectorsAsFailure.py” only because of the way the output Key-format output file is written. In a nutshell, in the former case caution has been taken to properly delimit and condensate the results so that even when the vector is empty there are sign of this, while on the other hand a simple dump is done for every instance of the vector meaning that with no content, no dumping is done leading to Uranie stating that there might be missing information in this output file (once again this is discussed in Dealing with attributes).