With HydPy 6.1, we switch to a tighter release cycle. Compared to HydPy 6.0, there are a few breaking changes, but those require, at most, little client code adjustments (ask you type checker) and do not change any functionality. Hence, the transition from 6.0 to 6.1 should be smooth.
Here is the list of the most notable new features, documentation improvements, and fixes.
New features:
- The different file managers (for example, the [ConditionManager](https://hydpy-dev.github.io/hydpy/6/filetools.html#hydpy.core.filetools.ConditionManager)) now print a note when they create or remove a directory. This feature can be turned off by setting [printprogress](https://hydpy-dev.github.io/hydpy/6/optiontools.html#hydpy.core.optiontools.Options.printprogress) to `False`.
- The new "script function" [xml_validate](https://hydpy-dev.github.io/hydpy/6/xmltools.html#hydpy.exe.xmltools.xml_validate) allows to check if an XML workflow file fits to XSD schema definition file of the relevant HydPy version from the command line.
- Reading time series from or writing time series to NetCDF files via the related methods of the classes [HydPy](https://hydpy-dev.github.io/hydpy/6/hydpytools.html#hydpy.core.hydpytools.HydPy), [Elements](https://hydpy-dev.github.io/hydpy/6/devicetools.html#hydpy.core.devicetools.Elements), and [Nodes](https://hydpy-dev.github.io/hydpy/6/devicetools.html#hydpy.core.devicetools.Nodes) now works "automatically", meaning one has not to bother with manually opening and closing NetCDF reader and writer objects anymore.
- The option [reprdigits](https://hydpy-dev.github.io/hydpy/6/optiontools.html#hydpy.core.optiontools.Options.reprdigits) now controls the number format for writing ASCII time series files. By default, all numbers are written in scientific notation (consistent with HydPy 6.0). If you set [reprdigits](https://hydpy-dev.github.io/hydpy/6/optiontools.html#hydpy.core.optiontools.Options.reprdigits) to two, for example, all numbers are written in the decimal form with at most two decimal places
- Class [ConditionManager](https://hydpy-dev.github.io/hydpy/6/filetools.html#hydpy.core.filetools.ConditionManager) now has the option [prefix](https://hydpy-dev.github.io/hydpy/6/filetools.html#hydpy.core.filetools.ConditionManager.prefix) for changing the prefix of the automatically determined, time-dependent condition directory names. This feature eases, for example, to read the initial conditions of different ensemble members from separate directories
- All subelements of `<conditions_io>` in XML workflow files are now optional. Making the XML elements `<inputpath>` and `<outputpath>` optional was necessary because otherwise, the new element `<prefix>` would be generally impactless. Making the XML element `<zip>` optional was primarily for consistency but also for convenience, as its default value `false` should apply to most use cases.
- When using HydPy from the command line, you can now select two alternative error styles (`single_line` and `splittable`) to squeeze printed error messages in single lines, which is more easily processable for tools like [Delft-FEWS](https://oss.deltares.nl/web/delft-fews). The old behaviour is now named `multiline` and the default of the new `errorstyle` option. For more information, please look at the documentation for the central [hyd.py](https://hydpy-dev.github.io/hydpy/6/hyd.html) script.
- Function [summarise_ncfile](https://hydpy-dev.github.io/hydpy/6/netcdftools.html#hydpy.core.netcdftools.summarise_ncfile) now automatically determines and prints the time grid of the analysed NetCDF file if it has the `time reference` attribute defined.
- The new functions [create_projectstructure](https://hydpy-dev.github.io/hydpy/6/filetools.html#hydpy.core.filetools.create_projectstructure) and [check_projectstructure](https://hydpy-dev.github.io/hydpy/6/filetools.html#hydpy.core.filetools.check_projectstructure) create and check the basic directory structure of a HydPy project. By default, checking also happens automatically when initialising class [HydPy](https://hydpy-dev.github.io/hydpy/6/hydpytools.html#hydpy.core.hydpytools.HydPy). This feature can be turned off by setting [checkprojectstructure](https://hydpy-dev.github.io/hydpy/6/optiontools.html#hydpy.core.optiontools.Options.checkprojectstructure) to `False`.
Documentation improvements:
- We added the [Simulation](https://hydpy-dev.github.io/hydpy/6/simulation.html#simulation) section to the [User Guide](https://hydpy-dev.github.io/hydpy/6/user_guide.html). It explains semi-comprehensively performing a simulation run via Python scripts or XML workflow files. It should build a bridge between the [Quick Start's](https://hydpy-dev.github.io/hydpy/6/quickstart.html) introductory remarks and the [Reference Manual's](https://hydpy-dev.github.io/hydpy/6/reference_manual.html) extremely detailed explanations.
- The new [Creating an Environment](https://hydpy-dev.github.io/hydpy/6/installation.html#creating-an-environment) section of the [Installation Instructions](https://hydpy-dev.github.io/hydpy/6/installation.html) introduces to using virtual environments for the robust installation of, for example, different HydPy versions on the same computer.
Fixes:
- Reading initial conditions files with initial condition data already in RAM (for example, resulting from a previous simulation run) could result in unnecessary trimmings of the read values. The user was warned but had to solve the problem himself (for example, by deleting the data first and rereading the files afterwards). We fixed this issue by applying the "postponed trimming" strategy already implemented for resetting data via dictionaries.