Skip to content

Releases: bmrb-io/PyNMRSTAR

v3.5.0 - Unicode handling improvements

05 Feb 22:03

Choose a tag to compare

Major improvements:

  • The library now scans for whitespace in a fully unicode-aware manner. It warns when whitespace other than that officially allowed in the STAR specification is found (' ', '\t', '\r', '\n', '\v') but it still parses it without issues. If raise_parse_warnings is set, an exception is thrown.

Minor improvements:

  • pynmrstar.Loop.category is converted to a property to be able to validate it when set. Previously, invalid loop categories (tag prefixes) could be provided.

Potentially breaking changes:

  • pynmrstar.definitions.WHITESPACE has been removed. This allowed users to set custom characters that they considered whitespace. This functionality was never encouraged. Instead, the standard STAR whitespace characters are considered official whitespace characters, but anything in Unicode considered whitespace is also handled properly.

v3.4.0 - The Rusty Release

28 Jan 18:53
6c1947e

Choose a tag to compare

Major improvements:

The C helper module has been reimplemented in Rust and other performance critical functions have also been moved to the Rust module. (Specifically, the Parsing logic and the loop string formatting logic.) Additional effort towards maximizing the performance of the Rust module has been made, leading to massive speedups in performance of common actions.

  • Parsing a file is now nearly twice as fast.
  • Rendering an Entry to a string is now nearly three times as fast.

This change is tested to be and understood to be fully backwards compatible, but due to the major nature of the change is getting a new minor version number.

v3.4.0b2

14 Jan 23:22

Choose a tag to compare

v3.4.0b2 Pre-release
Pre-release

Major improvements:

The C helper module has been reimplemented in Rust and other performance critical functions have also been moved to the Rust module. (Specifically, the Parsing logic and the loop string formatting logic.) Additional effort towards maximizing the performance of the Rust module has been made, leading to massive speedups in performance of common actions.

Parsing a file is now nearly twice as fast.
Rendering an Entry to a string is now nearly three times as fast.

This change is tested to be and understood to be fully backwards compatible, but due to the major nature of the change is getting a new minor version number.

3.3.6

11 Sep 16:28

Choose a tag to compare

Add support for pathlib.Path objects where appropriate and minor typing improvements.

3.3.5

02 Jan 19:35

Choose a tag to compare

  1. Packaging improvements.
  2. Adds official support for Python 3.13
  3. Drops official support for Python 3.7

3.1.0

11 Feb 00:14
e4f4b12

Choose a tag to compare

Changes:

  • PyNMRSTAR automatically retries fetching an entry from the BMR API using an exponential backoff if rate limited.
  • PyNMRSTAR now lists the package requests as a requirement, which allows it to significantly speed up fetching entries
    from the database. It will still work if requests is not installed though, as in the case where you have checked out
    the code locally and don't have requests installed - you just won't get the enhanced performance.

Breaking changes:

  • The default value of skip_empty_loops of the method write_to_file() for both Entry and Saveframe has
    been changed to True to write out empty loops. Technically according to the NMR-STAR format, empty loops should
    be omitted. In practice, many libraries fail to treat a missing tag as equivalent to a present but null tag, and
    would be confused by the fact that reading in a file and writing it back out again would cause these empty loops to
    go missing. You can still manually specify skip_empty_loops=True to maintain the previous behavior.

v2.6.6 - Maintenance Release

27 Jan 16:39

Choose a tag to compare

Changes:

  • Update API URLs to point to new BMRB.io domain.
  • Update built-in schema version.