[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