# Changelog — latex2pydata LaTeX package


## v0.7.0 (2026/02/25)

*  Switched to `\str_mdfive_hash:e` for MD5 hashing.  This replaces
   `\pdf@mdfivesum` from the `pdftexcmds` package.  Under LuaTeX,
   `\pdf@mdfivesum` ignores most multi-byte code points (code points >= 256
   for UTF-8), which can cause hash collisions (#3, gpoore/minted#467).

   `\pdf@mdfivesumnative` provides the desired functionality, but switching to
   `\str_mdfive_hash:e` is simpler and allows dropping the `pdftexcmds`
   package as a dependency.

*  Minimum supported `fvextra` is now v1.14.0 (2026/02/25).



## v0.6.0 (2025/03/26)

*  `\pydatasetfilename` now automatically reuses file handles when files are
   closed, so that the total number of file handles created is never more than
   the maximum number of files open simultaneously.  This minimizes the
   potential for "`No more room for a new \write`" errors.  Previously, one
   file handle was created per file (#2).



## v0.5.0 (2025/03/03)

*  Renamed schema missing setting `rawstr` to `verbatim`.

*  Improved schema documentation.

*  Renamed `*mlvaluestart` macros to `*mlvalueopen` and renamed `*mlvalueend`
   macros to `*mlvalueclose`, so that `mlvalue` macros are consistent with
   `dict` and `list` macros for handling opening/closing delimiters.  The old
   macros are retained for now for backward compatibility.



## v0.4.0 (2024/11/17)

*  Replaced buffer index counter with a macro to prevent issues with commands
   and environments such as `\text` from `amsmath` that modify counter
   behavior.



## v0.3.0 (2024/10/16)

*  Replaced buffer length counters with macros to prevent issues with
   `\includeonly` resetting counters.



## v0.2.0 (2024-05-16)

*  Operations on file handles, file names, and buffers are now global.
   This prevents errors due to groups.

*  `\pydatasetfilehandle`, `\pydatareleasefilehandle`, `\pydatasetfilename`,
   and `\pydataclosefilename` are redesigned to deal with cases where the same
   file is opened, written, closed, and then later reopened and overwritten.
   `\pydatasetfilename` now reuses file handles when the same file is
   opened and closed multiple times.  `\pydataclosefilename` no longer
   attempts to close files `\AtEndDocument`, since that can interfere with
   files that need to remain open as long as possible.

*  Added new commands `\pydatawritekeyedefvalue` and
   `\pydatabufferkeyedefvalue`.  These `\edef` the value before interpreting
   it as verbatim text.

*  Simplified implementation of `pydatabuffermlvalue` environment, based on
   latest `fvextra`.

*  Added error messages for unknown file handles and file names.

*  Added additional state and data checks in `\pydatawritebuffer`.

*  Added documentation for `\pydatawritemlvaluestart`,
   `\pydatawritemlvalueline`, `\pydatawritemlvalueend`,
   `\pydatabuffermlvaluestart`, `\pydatabuffermlvalueline`,
   `\pydatabuffermlvalueend`.

*  Updated `tcblisting` usage in docs for compatibility with the latest
   `tcolorbox`.



## v0.1.0 (2023-11-19)

*  Initial release.
