[med-svn] [Git][med-team/python-iow][upstream] New upstream version 1.0.8
Michael R. Crusoe (@crusoe)
gitlab at salsa.debian.org
Wed Sep 3 11:18:44 BST 2025
Michael R. Crusoe pushed to branch upstream at Debian Med / python-iow
Commits:
d3048fac by Michael R. Crusoe at 2025-09-02T18:28:55+02:00
New upstream version 1.0.8
- - - - -
8 changed files:
- .github/workflows/python-package-conda.yml
- .github/workflows/release.yml
- bp/__init__.py
- bp/_io.pyx
- bp/_version.py
- bp/tests/test_io.py
- ci/conda_requirements.txt
- setup.py
Changes:
=====================================
.github/workflows/python-package-conda.yml
=====================================
@@ -8,8 +8,8 @@ on:
env:
latest_python: "3.12"
- supported_pythons: '["3.8", "3.9", "3.10", "3.11", "3.12"]'
- miniforge_version: "22.9.0-2"
+ supported_pythons: '["3.9", "3.10", "3.11", "3.12"]'
+ miniforge_version: "23.11.0-0"
miniforge_variant: "Mambaforge"
jobs:
=====================================
.github/workflows/release.yml
=====================================
@@ -12,10 +12,10 @@ jobs:
- uses: actions/checkout at v2
with:
submodules: true
- - name: Set up Python 3.8
+ - name: Set up Python 3.10
uses: actions/setup-python at v2
with:
- python-version: 3.8
+ python-version: '3.10'
- name: Build distribution
run: |
# set version from '${{ github.ref_name }}'
=====================================
bp/__init__.py
=====================================
@@ -11,9 +11,18 @@ from ._conv import to_skbio_treenode, from_skbio_treenode, to_skbio_treearray
from ._insert import insert_fully_resolved
+def load(fp, as_treenode=False):
+ data = open(fp).read()
+ tree = parse_newick(data)
+ if as_treenode:
+ return to_skbio_treenode(tree)
+ else:
+ return tree
+
+
__all__ = ['BP', 'parse_newick', 'to_skbio_treenode', 'from_skbio_treenode',
'to_skbio_treearray', 'write_newick', 'parse_jplace',
- 'insert_fully_resolved']
+ 'insert_fully_resolved', 'load']
from . import _version
__version__ = _version.get_versions()['version']
=====================================
bp/_io.pyx
=====================================
@@ -148,8 +148,6 @@ cpdef parse_newick(unicode data):
np.ndarray[np.double_t, ndim=1] lengths
np.ndarray[np.int32_t, ndim=1] edges
- if data.count(',') == 0:
- raise ValueError("Only trees with more than 1 node supported")
data = data.strip()
if not data.endswith(';'):
@@ -157,6 +155,9 @@ cpdef parse_newick(unicode data):
datalen = len(data)
topology = _newick_to_bp(data)
+
+ if len(topology.B) <= 2:
+ raise ValueError("Only trees with more than 1 node supported")
names = np.full(len(topology.B), None, dtype=object)
lengths = np.zeros(len(topology.B), dtype=np.double)
=====================================
bp/_version.py
=====================================
@@ -24,9 +24,9 @@ def get_keywords():
# setup.py/versioneer.py will grep for the variable names, so they must
# each be defined on a line of their own. _version.py will just call
# get_keywords().
- git_refnames = " (HEAD -> master, tag: 1.0.7)"
- git_full = "6df7c5c8e1e9bb319e26e3801c41607fec4958da"
- git_date = "2024-06-26 20:07:04 -0700"
+ git_refnames = " (HEAD -> master, tag: 1.0.8)"
+ git_full = "0ecd00722bc14016e2ac603641a2046fb052f2a2"
+ git_date = "2025-04-18 11:46:43 -0600"
keywords = {"refnames": git_refnames, "full": git_full, "date": git_date}
return keywords
=====================================
bp/tests/test_io.py
=====================================
@@ -105,21 +105,21 @@ class NewickTests(TestCase):
in_ = '((foo"bar":1,baz:2)x:3)r;'
exp = skbio.TreeNode.read([in_])
obs = to_skbio_treenode(parse_newick(in_))
- self.assertEqual(obs.compare_subsets(exp), 0.0)
+ self.assertEqual(obs.compare_rfd(exp), 0.0)
def test_parse_newick_with_commas(self):
# bug: comma is getting interpreted even if in quotes
in_ = "(('foo,bar':1,baz:2)x:3)r;"
exp = skbio.TreeNode.read([in_])
obs = to_skbio_treenode(parse_newick(in_))
- self.assertEqual(obs.compare_subsets(exp), 0.0)
+ self.assertEqual(obs.compare_rfd(exp), 0.0)
def test_parse_newick_with_parens(self):
# bug: parens are getting interpreted even if in quotes
in_ = "(('foo(b)ar':1,baz:2)x:3)r;"
exp = skbio.TreeNode.read([in_])
obs = to_skbio_treenode(parse_newick(in_))
- self.assertEqual(obs.compare_subsets(exp), 0.0)
+ self.assertEqual(obs.compare_rfd(exp), 0.0)
def test_parse_newick(self):
in_ = "((a:2,b):1,(c:4,d)y:20,e)r;"
@@ -301,6 +301,21 @@ class JPlaceParseTests(TestCase):
pdt.assert_frame_equal(obs_df, exp_df)
self.assertEqual(obs_tree.compare_rfd(exp_tree), 0)
+ def test_parse_newick_linear_tree(self):
+ # https://github.com/biocore/improved-octo-waddle/pull/48
+ test = '((b:3)a:2)root:1;'
+
+ # Test that we can parse these edge cases successfully, without
+ # mistaking them for single-node trees
+ topology = parse_newick(test)
+
+ # Convert the tree to a skbio TreeNode to make checking easier
+ skbio_tree = to_skbio_treenode(topology)
+ self.assertEqual(skbio_tree.name, "root")
+ self.assertEqual([n.name for n in skbio_tree.children], ["a"])
+ self.assertEqual([n.name for n in skbio_tree.non_tips()], ["a"])
+ self.assertEqual([n.name for n in skbio_tree.tips()], ["b"])
+
if __name__ == '__main__':
main()
=====================================
ci/conda_requirements.txt
=====================================
@@ -1,5 +1,5 @@
pytest
numpy
flake8
-cython < 1.0.0
+cython
scikit-bio
=====================================
setup.py
=====================================
@@ -120,8 +120,8 @@ setup(name='iow',
package_data={'bp': ['BitArray/*', ]},
install_requires=[
'numpy >= 1.9.2',
- 'nose >= 1.3.7',
- 'cython >= 0.24.1, < 1.0.0',
+ 'pytest',
+ 'cython',
'pandas',
'click',
'scikit-bio >= 0.5.0'],
View it on GitLab: https://salsa.debian.org/med-team/python-iow/-/commit/d3048fac2f2c6509ceda5d1e513b52597094d6e7
--
View it on GitLab: https://salsa.debian.org/med-team/python-iow/-/commit/d3048fac2f2c6509ceda5d1e513b52597094d6e7
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-med-commit/attachments/20250903/bc35ce79/attachment-0001.htm>
More information about the debian-med-commit
mailing list