From 9ca5deea75cf85daf26ae6fde9edde7854679f5b Mon Sep 17 00:00:00 2001 From: Robert Forkel <xrotwang@googlemail.com> Date: Tue, 14 Mar 2023 10:56:20 +0100 Subject: [PATCH] release 1.9.0 --- CHANGELOG.md | 2 +- README.md | 25 +++++++++++++++++-------- setup.cfg | 3 ++- src/newick.py | 2 +- 4 files changed, 21 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 98143f1..9308304 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ The `newick` package adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). -## [Unreleased] +## [v1.9.0] - 2023-03-14 Support round-tripping Newick with two annotations per node, one before and one after the length separator. diff --git a/README.md b/README.md index 30e6bb5..26cbf69 100644 --- a/README.md +++ b/README.md @@ -128,14 +128,23 @@ can be accessed from the `dict` `Node.properties`: {'k1': 'v1', 'k2': 'v2'} ``` -Note that we still don't support **typed** node properties. I.e. values in `Node.properties` are -always strings. Since typed properties tend to be specific to the application writing the newick, -this level of support would require more knowledge of the creation context of the tree than can -safely be inferred from the Newick string alone. -```python ->>> newick.loads('(A,B)C[&range={1,5},support="100"];')[0].properties -{'range': '{1,5}', 'support': '"100"'} -``` +**Limitations:** + +- **Typed** node properties are not supported. I.e. values in `Node.properties` are + always strings. Since typed properties tend to be specific to the application writing the newick, + this level of support would require more knowledge of the creation context of the tree than can + safely be inferred from the Newick string alone. + ```python + >>> newick.loads('(A,B)C[&range={1,5},support="100"];')[0].properties + {'range': '{1,5}', 'support': '"100"'} + ``` +- Node annotations in comments are not completely round-trip-safe. In particular multiple comments + per node may be lumped together (using `|` as separator) when serializing a Newick node: + ```python + >>> newick.loads('(a,b)c[c1][c2]:3')[0].newick + '(a,b)c[c1|c2]:3' + ``` + ## Writing Newick diff --git a/setup.cfg b/setup.cfg index 62a8376..acb026b 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,7 @@ [metadata] name = newick -version = 1.8.2.dev0 +version = 1.9.0 + author = Robert Forkel author_email = robert_forkel@eva.mpg.de description = A python module to read and write the Newick format diff --git a/src/newick.py b/src/newick.py index cfe4f1c..cf01b6e 100644 --- a/src/newick.py +++ b/src/newick.py @@ -10,7 +10,7 @@ import pathlib import itertools import dataclasses -__version__ = "1.8.2.dev0" +__version__ = "1.9.0" QUOTE = "'" ESCAPE = {"'", "\\"} -- GitLab