[med-svn] [Git][med-team/python-biom-format][master] 3 commits: New upstream version 2.1.18
Karsten Schöke (@karso)
gitlab at salsa.debian.org
Mon Oct 12 10:26:19 BST 2026
Karsten Schöke pushed to branch master at Debian Med / python-biom-format
Commits:
466d81c9 by Karsten Schöke at 2026-10-12T11:01:33+02:00
New upstream version 2.1.18
- - - - -
f0ba945b by Karsten Schöke at 2026-10-12T11:05:32+02:00
Update upstream source from tag 'upstream/2.1.18'
Update to upstream version '2.1.18'
with Debian dir 5cb3bc6bb0ea2b27107449e6ba67c1d14552b9ba
- - - - -
d22abeff by Karsten Schöke at 2026-10-12T11:08:24+02:00
d/patches: remove obsolete numpy-2.4.patch
- - - - -
12 changed files:
- .github/workflows/python-package-conda.yml
- .github/workflows/wheels.yml
- ChangeLog.md
- biom/table.py
- biom/tests/test_parse.py
- biom/util.py
- ci/conda_host_env.yml
- debian/changelog
- − debian/patches/numpy-2.4.patch
- debian/patches/series
- doc/conf.py
- pyproject.toml
Changes:
=====================================
.github/workflows/python-package-conda.yml
=====================================
@@ -9,8 +9,8 @@ on:
branches: [ master ]
env:
- latest_python: "3.13"
- supported_pythons: '["3.9", "3.10", "3.11", "3.12", "3.13"]'
+ latest_python: "3.14"
+ supported_pythons: '["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]'
miniforge_version: "23.11.0-0"
miniforge_variant: "Mambaforge"
@@ -81,7 +81,7 @@ jobs:
strategy:
fail-fast: true
matrix:
- os: [ubuntu-latest, macos-latest, windows-latest, ubuntu-24.04-arm, macos-13]
+ os: [ubuntu-latest, macos-latest, windows-latest, ubuntu-24.04-arm, macos-15-intel]
python_version: ${{ fromJSON(needs.conf.outputs.supported_pythons) }}
use_conda: [true, false]
steps:
=====================================
.github/workflows/wheels.yml
=====================================
@@ -18,7 +18,7 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
- os: [ubuntu-latest, ubuntu-24.04-arm, windows-latest, macos-13, macos-14]
+ os: [ubuntu-latest, ubuntu-24.04-arm, windows-latest, macos-15, macos-15-intel]
# The 5 runners correspond to 5 architectures. Details:
# https://cibuildwheel.pypa.io/en/stable/options/#archs
# The runners and architectures should be automatically associated. However, in
@@ -41,7 +41,7 @@ jobs:
submodules: true
- name: Build wheels
- uses: pypa/cibuildwheel at v2.23.3
+ uses: pypa/cibuildwheel at v3.4.1
- uses: actions/upload-artifact at v4
with:
=====================================
ChangeLog.md
=====================================
@@ -1,6 +1,21 @@
BIOM-Format ChangeLog
=====================
+biom-2.1.18
+-----------
+
+Bug fix and maintenance release, October 5th 2026.
+
+Bug fixes:
+
+* A regression with parse of UTF-8 characters was introduced, reported [here](https://forum.qiime2.org/t/feature-table-gives-ascii-codec-cant-decode-byte-0xc3-in-position-4-error/33858/7)
+* `np.in1d` was removed in NumPy 2.4, replaced with `np.isin`. See issue [#1003](https://github.com/biocore/biom-format/issues/1003)
+* `Table.to_anndata` failed with anndata >= 0.13, which removed the `dtype` argument to `AnnData`. The matrix is now cast prior to construction. See PR [#1005](https://github.com/biocore/biom-format/pull/1005)
+
+General Maintenance:
+
+* Python 3.14 added to CI and wheels are now built for Python 3.14. See PR [#1004](https://github.com/biocore/biom-format/pull/1004)
+
biom-2.1.17
-----------
=====================================
biom/table.py
=====================================
@@ -4182,11 +4182,15 @@ html
def axis_load(grp):
"""Loads all the data of the given group"""
# fetch all of the IDs
- ids = grp['ids'][:]
+ ids = grp['ids']
if ids.size > 0:
+ ids = ids.asstr()[:]
ids_dtype = 'U%d' % max([len(v) for v in ids])
ids = np.asarray(ids, dtype=ids_dtype)
+ else:
+ # .asstr does not handle an empty dataset
+ ids = ids[:]
parser = defaultdict(lambda: general_parser)
parser['taxonomy'] = vlen_list_of_str_parser
@@ -4234,7 +4238,7 @@ html
else:
desired_ids = np.asarray(desired_ids)
# Get the index of the source ids to include
- idx = np.in1d(source_ids, desired_ids)
+ idx = np.isin(source_ids, desired_ids)
# Retrieve only the ids that we are interested on
ids = source_ids[idx]
# Check that all desired ids have been found on source ids
@@ -4393,10 +4397,13 @@ html
if dense:
mat = mat.toarray()
+ # anndata 0.13 removed the AnnData(dtype=...) argument
+ mat = mat.astype(dtype)
+
var = self.metadata_to_dataframe("sample")
obs = self.metadata_to_dataframe("observation")
- adata = anndata.AnnData(mat, obs=obs, var=var, dtype=dtype)
+ adata = anndata.AnnData(mat, obs=obs, var=var)
# Convention for scRNA-seq analysis in Python
adata = adata.transpose()
=====================================
biom/tests/test_parse.py
=====================================
@@ -17,6 +17,7 @@ from tempfile import NamedTemporaryFile
import numpy as np
import numpy.testing as npt
+from biom import example_table
from biom.parse import (generatedby, MetadataMap, parse_biom_table, parse_uc,
load_table, save_table)
from biom.table import Table
@@ -283,6 +284,15 @@ class ParseTests(TestCase):
obs = Table.from_adjacency(''.join(lines))
self.assertEqual(obs, exp)
+ def test_parse_biom_table_hdf5_accent_utf8_regression(self):
+ tab = example_table.copy()
+ tab.update_ids({i: f'{i}fóó' for i in tab.ids()}, inplace=True)
+ with NamedTemporaryFile(delete=False) as tmpfile:
+ with h5py.File(tmpfile.name, 'w') as fp:
+ tab.to_hdf5(fp, 'asf')
+ obs = load_table(tmpfile.name)
+ self.assertEqual(obs, tab)
+
def test_parse_biom_table_hdf5(self):
"""Make sure we can parse a HDF5 table through the same loader"""
cwd = os.getcwd()
=====================================
biom/util.py
=====================================
@@ -41,7 +41,7 @@ __url__ = "http://biom-format.org"
__maintainer__ = "Daniel McDonald"
__email__ = "daniel.mcdonald at colorado.edu"
__format_version__ = (2, 1)
-__version__ = "2.1.17"
+__version__ = "2.1.18"
def generate_subsamples(table, n, axis='sample', by_id=False):
=====================================
ci/conda_host_env.yml
=====================================
@@ -3,10 +3,8 @@
name: testing
channels:
- conda-forge
- - defaults
dependencies:
- hdf5
- pip
- cython
- - pip:
- - "-r requirements.test.txt"
+ - pytest
=====================================
debian/changelog
=====================================
@@ -1,3 +1,9 @@
+python-biom-format (2.1.18-1) UNRELEASED; urgency=medium
+
+ * New upstream version 2.1.18
+
+ -- Karsten Schöke <karsten.schoeke at geobasis-bb.de> Mon, 12 Oct 2026 11:05:32 +0200
+
python-biom-format (2.1.17-5) unstable; urgency=medium
* Team upload.
=====================================
debian/patches/numpy-2.4.patch deleted
=====================================
@@ -1,17 +0,0 @@
-Author: Andreas Tille <tille at debian.org>
-Last-Update: 2026-05-18
-Bug-Debian: https://bugs.debian.org/1131071
-Description: in1d was replaced by isin in numpy 2.4
-Forwarded: https://github.com/biocore/biom-format/issues/1003
-
---- a/biom/table.py
-+++ b/biom/table.py
-@@ -4234,7 +4234,7 @@ html
- else:
- desired_ids = np.asarray(desired_ids)
- # Get the index of the source ids to include
-- idx = np.in1d(source_ids, desired_ids)
-+ idx = np.isin(source_ids, desired_ids)
- # Retrieve only the ids that we are interested on
- ids = source_ids[idx]
- # Check that all desired ids have been found on source ids
=====================================
debian/patches/series
=====================================
@@ -3,4 +3,3 @@ no-web-adds.patch
fix_future_import.patch
sphinx_1.6.patch
posix_shell.patch
-numpy-2.4.patch
=====================================
doc/conf.py
=====================================
@@ -57,15 +57,15 @@ master_doc = 'index'
# General information about the project.
project = 'biom-format'
-copyright = '2011-2025 The BIOM Format Development Team'
+copyright = '2011-2026 The BIOM Format Development Team'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
# built documents.
#
# The full version, including alpha/beta/rc tags.
-version = "2.1.17"
-release = "2.1.17"
+version = "2.1.18"
+release = "2.1.18"
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
=====================================
pyproject.toml
=====================================
@@ -39,6 +39,7 @@ classifiers = [
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
+ "Programming Language :: Python :: 3.14",
"Programming Language :: Python :: Implementation :: CPython",
"Operating System :: OS Independent",
"Operating System :: POSIX :: Linux",
@@ -83,7 +84,7 @@ test-requires = ["pytest", "numpy"]
skip = ["*-win32", "*-manylinux_i686", "pp*", "*-musllinux*"]
# Python versions to build
-build = "cp39-* cp310-* cp311-* cp312-* cp313-*"
+build = "cp39-* cp310-* cp311-* cp312-* cp313-* cp314-*"
[tool.pytest.ini_options]
addopts = ["--ignore=biom/assets/exercise_api.py "]
View it on GitLab: https://salsa.debian.org/med-team/python-biom-format/-/compare/e34a69c35b19ef09a06fc2c6b2139835dc8a3277...d22abeffb24755a4eaf53a113de68e29e8ad25c7
--
View it on GitLab: https://salsa.debian.org/med-team/python-biom-format/-/compare/e34a69c35b19ef09a06fc2c6b2139835dc8a3277...d22abeffb24755a4eaf53a113de68e29e8ad25c7
You're receiving this email because of your account on salsa.debian.org. Manage all notifications: https://salsa.debian.org/-/profile/notifications | Help: https://salsa.debian.org/help
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-med-commit/attachments/20261012/9da80f73/attachment-0001.htm>
More information about the debian-med-commit
mailing list