[med-svn] [Git][med-team/python-skbio][master] 10 commits: simde patch: remove; implemented upstream.

Étienne Mollier (@emollier) gitlab at salsa.debian.org
Sat Dec 3 22:26:48 GMT 2022



Étienne Mollier pushed to branch master at Debian Med / python-skbio


Commits:
7f80a763 by Étienne Mollier at 2022-12-03T23:00:09+01:00
simde patch: remove; implemented upstream.

- - - - -
9da7065f by Étienne Mollier at 2022-12-03T23:01:07+01:00
soften_test patch: remove; implemented upstream.

- - - - -
cb8795eb by Étienne Mollier at 2022-12-03T23:05:44+01:00
pandas1.1-ordination-fix.patch: remove; applied upstream.

- - - - -
bb860208 by Étienne Mollier at 2022-12-03T23:07:21+01:00
pandas1.1-valueerror.patch: remove; applied upstream.

- - - - -
37bc7d60 by Étienne Mollier at 2022-12-03T23:08:21+01:00
local_inventory patch: unfuzz.

- - - - -
dba145ca by Étienne Mollier at 2022-12-03T23:09:31+01:00
sphinx_add_javascript.patch: remove; fixed upstream.

- - - - -
2119df86 by Étienne Mollier at 2022-12-03T23:11:35+01:00
fix-dtype-precision-warnings.patch: remove; applied upstream.

- - - - -
3e5a857a by Étienne Mollier at 2022-12-03T23:12:18+01:00
update changelog

- - - - -
a88c5aff by Étienne Mollier at 2022-12-03T23:23:44+01:00
d/rules: include build root in CPPFLAGS.

This allows source code including the simde-sse2.h wrapper to find
it adequately.

- - - - -
b68aca0d by Étienne Mollier at 2022-12-03T23:25:50+01:00
update changelog.

- - - - -


10 changed files:

- debian/changelog
- − debian/patches/fix-dtype-precision-warnings.patch
- debian/patches/local_inventory
- − debian/patches/pandas1.1-ordination-fix.patch
- − debian/patches/pandas1.1-valueerror.patch
- debian/patches/series
- − debian/patches/simde
- − debian/patches/soften_test
- − debian/patches/sphinx_add_javascript.patch
- debian/rules


Changes:

=====================================
debian/changelog
=====================================
@@ -1,11 +1,22 @@
 python-skbio (0.5.7-1) UNRELEASED; urgency=medium
 
+  [ Andreas Tille ]
   * New upstream version
   * Standards-Version: 4.6.1 (routine-update)
   * Proper file name for upstream download
-  TODO: Refresh simde patch
 
- -- Andreas Tille <tille at debian.org>  Thu, 25 Aug 2022 17:46:30 +0200
+  [ Étienne Mollier ]
+  * simde patch: remove; implemented upstream.
+  * soften_test patch: remove; implemented upstream.
+  * pandas1.1-ordination-fix.patch: remove; applied upstream.
+  * pandas1.1-valueerror.patch: remove; applied upstream.
+  * local_inventory patch: unfuzz.
+  * sphinx_add_javascript.patch: remove; fixed upstream.
+  * fix-dtype-precision-warnings.patch: remove; applied upstream.
+  * d/rules: include build root in CPPFLAGS; allow source code to find the
+    simde-sse2.h wrapper.
+
+ -- Étienne Mollier <emollier at debian.org>  Sat, 03 Dec 2022 23:25:19 +0100
 
 python-skbio (0.5.6-6) unstable; urgency=medium
 


=====================================
debian/patches/fix-dtype-precision-warnings.patch deleted
=====================================
@@ -1,724 +0,0 @@
-Description: fix dtype, precision, warnings, and more
-Origin: upstream, https://github.com/biocore/scikit-bio/commit/357c7fe847187bc540c4914c3ffd607d9432857d
-Author: Evan Bolyen <ebolyen at gmail.com>
-Last-Update: 2021-10-26
-
---- a/doc/source/_templates/autosummary/class.rst
-+++ b/doc/source/_templates/autosummary/class.rst
-@@ -16,7 +16,9 @@
-                         '__repr__',
-                         '__setattr__',
-                         '__sizeof__',
--                        '__subclasshook__'] and item.startswith('__')) %}
-+                        '__subclasshook__',
-+                        '__init_subclass__',
-+                        '__class_getitem__'] and item.startswith('__')) %}
-       {{ built_in_methods.append(item) or '' }}
-    {% endif %}
- {% endfor %}
---- a/doc/source/conf.py
-+++ b/doc/source/conf.py
-@@ -69,16 +69,13 @@
-                 return specials[display_name], '', summary, real_name
-             return display_name, sig, summary, real_name
- 
--        skip = ['__init_subclass__']
- 
-         items = []
-         for item in super(NewAuto, self).get_items(names):
--            if item[0] not in skip:
--                temp_item = fix_item(*item)
--                # Drop slot_wrappers (see above)
--                if temp_item is not None:
--                    items.append(temp_item)
--
-+            temp_item = fix_item(*item)
-+            # Drop slot_wrappers (see above)
-+            if temp_item is not None:
-+                items.append(temp_item)
-         return items
- 
- autosummary.Autosummary = NewAuto
---- a/skbio/alignment/_indexing.py
-+++ b/skbio/alignment/_indexing.py
-@@ -7,7 +7,7 @@
- # ----------------------------------------------------------------------------
- 
- from abc import ABCMeta, abstractmethod
--import collections
-+import collections.abc
- 
- import numpy as np
- import pandas as pd
-@@ -160,7 +160,7 @@
-         complete_key = False
-         partial_key = False
-         duplicated_key = False
--        if not isinstance(indexable, collections.Hashable):
-+        if not isinstance(indexable, collections.abc.Hashable):
-             return False
-         if axis == 0 and self._has_fancy_index():
-             try:
---- a/skbio/alignment/_pairwise.py
-+++ b/skbio/alignment/_pairwise.py
-@@ -793,7 +793,7 @@
- def _init_matrices_sw(aln1, aln2, gap_open_penalty, gap_extend_penalty):
-     shape = (aln2.shape.position+1, aln1.shape.position+1)
-     score_matrix = np.zeros(shape)
--    traceback_matrix = np.zeros(shape, dtype=np.int)
-+    traceback_matrix = np.zeros(shape, dtype=int)
-     traceback_matrix += _traceback_encoding['uninitialized']
-     traceback_matrix[0, :] = _traceback_encoding['alignment-end']
-     traceback_matrix[:, 0] = _traceback_encoding['alignment-end']
-@@ -803,7 +803,7 @@
- def _init_matrices_nw(aln1, aln2, gap_open_penalty, gap_extend_penalty):
-     shape = (aln2.shape.position+1, aln1.shape.position+1)
-     score_matrix = np.zeros(shape)
--    traceback_matrix = np.zeros(shape, dtype=np.int)
-+    traceback_matrix = np.zeros(shape, dtype=int)
-     traceback_matrix += _traceback_encoding['uninitialized']
-     traceback_matrix[0, 0] = _traceback_encoding['alignment-end']
- 
-@@ -826,7 +826,7 @@
-         aln1, aln2, gap_open_penalty, gap_extend_penalty):
-     shape = (aln2.shape.position+1, aln1.shape.position+1)
-     score_matrix = np.zeros(shape)
--    traceback_matrix = np.zeros(shape, dtype=np.int)
-+    traceback_matrix = np.zeros(shape, dtype=int)
-     traceback_matrix += _traceback_encoding['uninitialized']
-     traceback_matrix[0, 0] = _traceback_encoding['alignment-end']
- 
---- a/skbio/alignment/_tabular_msa.py
-+++ b/skbio/alignment/_tabular_msa.py
-@@ -781,7 +781,7 @@
-         if minter is not None and index is not None:
-             raise ValueError(
-                 "Cannot use both `minter` and `index` at the same time.")
--        self._seqs = pd.Series([])
-+        self._seqs = pd.Series([], dtype=object)
-         self.extend(sequences, minter=minter, index=index,
-                     reset_index=minter is None and index is None)
- 
-@@ -1983,12 +1983,13 @@
-                                   step=1)
- 
-         if len(self):
--            self._seqs = self._seqs.append(pd.Series(sequences, index=index))
-+            self._seqs = self._seqs.append(pd.Series(sequences, index=index,
-+                                                     dtype=object))
-         else:
-             # Not using Series.append to avoid turning a RangeIndex supplied
-             # via `index` parameter into an Int64Index (this happens in pandas
-             # 0.18.0).
--            self._seqs = pd.Series(sequences, index=index)
-+            self._seqs = pd.Series(sequences, index=index, dtype=object)
- 
-             # When extending a TabularMSA without sequences, the number of
-             # positions in the TabularMSA may change from zero to non-zero. If
---- a/skbio/alignment/tests/test_tabular_msa.py
-+++ b/skbio/alignment/tests/test_tabular_msa.py
-@@ -6,7 +6,7 @@
- # The full license is in the file COPYING.txt, distributed with this software.
- # ----------------------------------------------------------------------------
- 
--import collections
-+import collections.abc
- import copy
- import unittest
- import functools
-@@ -1377,6 +1377,8 @@
-                                                                'd']},
-                                     index=[('b', 'x', 0)]))
- 
-+    @unittest.skipIf(tuple(map(int, pd.__version__.split('.'))) < (1, 2, 5),
-+                     "Old pandas will return empty frame")
-     def test_multiindex_complicated_axis_empty_selection(self):
-         a = RNA("UUAG", metadata={0: 0}, positional_metadata={0: [1, 2, 3, 4]})
-         b = RNA("UAAG", metadata={1: 0}, positional_metadata={1: [1, 2, 3, 4]})
-@@ -1386,13 +1388,12 @@
-                          positional_metadata={'c': ['a', 'b', 'c', 'd']},
-                          index=[('a', 'x', 0), ('a', 'x', 1), ('a', 'y', 2),
-                                 ('b', 'x', 0)])
--
--        self.assertEqual(self.get(msa, (([False, True, False, True],
--                                         'x', 2), Ellipsis)),
--                         TabularMSA([], metadata={'x': 'y'},
--                                    # TODO: Change for #1198
--                                    positional_metadata=None,
--                                    index=[]))
-+        # Pandas will KeyError when the intersection is empty
-+        # change appears to have happened in:
-+        # https://github.com/pandas-dev/pandas/pull/42245
-+        # but this was not bisected to confirm
-+        with self.assertRaises(KeyError):
-+            self.get(msa, (([False, True, False, True], 'x', 2), Ellipsis))
- 
-     def test_bool_index_scalar_bool_label(self):
-         a = DNA("ACGA", metadata={0: 0}, positional_metadata={0: [1, 2, 3, 4]})
-@@ -3642,7 +3643,7 @@
- 
- class TestHashable(unittest.TestCase):
-     def test_unhashable_type(self):
--        self.assertNotIsInstance(TabularMSA([]), collections.Hashable)
-+        self.assertNotIsInstance(TabularMSA([]), collections.abc.Hashable)
- 
-     def test_unhashable_object(self):
-         with self.assertRaisesRegex(TypeError, r'unhashable'):
---- a/skbio/diversity/_util.py
-+++ b/skbio/diversity/_util.py
-@@ -6,7 +6,7 @@
- # The full license is in the file COPYING.txt, distributed with this software.
- # ----------------------------------------------------------------------------
- 
--import collections
-+import collections.abc
- 
- import numpy as np
- import pandas as pd
-@@ -22,7 +22,10 @@
- 
-     """
-     counts = np.asarray(counts)
--    if not np.all(np.isreal(counts)):
-+    try:
-+        if not np.all(np.isreal(counts)):
-+            raise Exception
-+    except Exception:
-         raise ValueError("Counts vector must contain real-valued entries.")
-     if counts.ndim != 1:
-         raise ValueError("Only 1-D vectors are supported.")
-@@ -47,7 +50,8 @@
-         return np.asarray(counts)
-     else:
- 
--        if len(counts) == 0 or not isinstance(counts[0], collections.Iterable):
-+        if len(counts) == 0 or not isinstance(counts[0],
-+                                              collections.abc.Iterable):
-             counts = [counts]
-         counts = np.asarray(counts)
-         if counts.ndim > 2:
---- a/skbio/io/format/fasta.py
-+++ b/skbio/io/format/fasta.py
-@@ -778,7 +778,7 @@
-         fh.write('>%s\n%s\n' % (header, seq_str))
- 
-         if qual is not None:
--            qual_str = ' '.join(np.asarray(qual_scores, dtype=np.str))
-+            qual_str = ' '.join(np.asarray(qual_scores, dtype=str))
-             if max_width is not None:
-                 qual_str = qual_wrapper.fill(qual_str)
-             qual.write('>%s\n%s\n' % (header, qual_str))
---- a/skbio/io/format/gff3.py
-+++ b/skbio/io/format/gff3.py
-@@ -214,7 +214,7 @@
- # ----------------------------------------------------------------------------
- 
- import re
--from collections import Iterable
-+from collections.abc import Iterable
- 
- from skbio.sequence import DNA, Sequence
- from skbio.io import create_format, GFF3FormatError
---- a/skbio/io/format/lsmat.py
-+++ b/skbio/io/format/lsmat.py
-@@ -225,7 +225,7 @@
-     for id_, vals in zip(ids, obj.data):
-         fh.write("%s" % id_)
-         fh.write(delimiter)
--        fh.write(delimiter.join(np.asarray(vals, dtype=np.str)))
-+        fh.write(delimiter.join(np.asarray(vals, dtype=str)))
-         fh.write('\n')
- 
- 
---- a/skbio/io/format/ordination.py
-+++ b/skbio/io/format/ordination.py
-@@ -411,7 +411,7 @@
- 
- 
- def _format_vector(vector, id_=None):
--    formatted_vector = '\t'.join(np.asarray(vector, dtype=np.str))
-+    formatted_vector = '\t'.join(np.asarray(vector, dtype=str))
- 
-     if id_ is None:
-         return "%s\n" % formatted_vector
---- a/skbio/sequence/_grammared_sequence.py
-+++ b/skbio/sequence/_grammared_sequence.py
-@@ -345,7 +345,7 @@
-                 "Note: Use `lowercase` if your sequence contains lowercase "
-                 "characters not in the sequence's alphabet."
-                 % ('s' if len(bad) > 1 else '',
--                   [str(b.tostring().decode("ascii")) for b in bad] if
-+                   [str(b.tobytes().decode("ascii")) for b in bad] if
-                    len(bad) > 1 else bad[0],
-                    list(self.alphabet)))
- 
---- a/skbio/sequence/_sequence.py
-+++ b/skbio/sequence/_sequence.py
-@@ -25,7 +25,7 @@
- 
- 
- class Sequence(MetadataMixin, PositionalMetadataMixin, IntervalMetadataMixin,
--               collections.Sequence, SkbioObject):
-+               collections.abc.Sequence, SkbioObject):
-     """Store generic sequence data and optional associated metadata.
- 
-     ``Sequence`` objects do not enforce an alphabet or grammar and are thus the
-@@ -424,7 +424,7 @@
- 
-     @property
-     def _string(self):
--        return self._bytes.tostring()
-+        return self._bytes.tobytes()
- 
-     @classonlymethod
-     @experimental(as_of="0.4.1")
-@@ -1305,7 +1305,7 @@
-         index = self._munge_to_index_array(lowercase)
-         outbytes = self._bytes.copy()
-         outbytes[index] ^= self._ascii_invert_case_bit_offset
--        return str(outbytes.tostring().decode('ascii'))
-+        return str(outbytes.tobytes().decode('ascii'))
- 
-     @stable(as_of="0.4.0")
-     def count(self, subsequence, start=None, end=None):
-@@ -1812,7 +1812,7 @@
-             # Downcast from int64 to uint8 then convert to str. This is safe
-             # because we are guaranteed to have indices in the range 0 to 255
-             # inclusive.
--            chars = indices.astype(np.uint8).tostring().decode('ascii')
-+            chars = indices.astype(np.uint8).tobytes().decode('ascii')
- 
-         obs_counts = freqs[indices]
-         if relative:
-@@ -2102,7 +2102,7 @@
-         """
-         if isinstance(sliceable, str):
-             if sliceable in self.positional_metadata:
--                if self.positional_metadata[sliceable].dtype == np.bool:
-+                if self.positional_metadata[sliceable].dtype == bool:
-                     sliceable = self.positional_metadata[sliceable]
-                 else:
-                     raise TypeError("Column '%s' in positional metadata does "
-@@ -2121,7 +2121,7 @@
-                 if isinstance(s, (bool, np.bool_)):
-                     bool_mode = True
-                 elif isinstance(s, (slice, int, np.signedinteger)) or (
--                        hasattr(s, 'dtype') and s.dtype != np.bool):
-+                        hasattr(s, 'dtype') and s.dtype != bool):
-                     int_mode = True
-                 else:
-                     raise TypeError("Invalid type in iterable: %s, must be one"
-@@ -2132,7 +2132,7 @@
-                                 " int.")
-             sliceable = np.r_[sliceable]
- 
--        if sliceable.dtype == np.bool:
-+        if sliceable.dtype == bool:
-             if sliceable.size != len(self):
-                 raise ValueError("Boolean array (%d) does not match length of"
-                                  " sequence (%d)."
---- a/skbio/sequence/tests/test_sequence.py
-+++ b/skbio/sequence/tests/test_sequence.py
-@@ -11,7 +11,7 @@
- import itertools
- import re
- from types import GeneratorType
--from collections import Hashable
-+from collections.abc import Hashable
- from unittest import TestCase, main
- 
- import numpy as np
---- a/skbio/stats/distance/_base.py
-+++ b/skbio/stats/distance/_base.py
-@@ -547,8 +547,8 @@
-             subset = self._data[i_idx, j_indices]
-             values.append(subset)
- 
--        i = pd.Series(i, name='i')
--        j = pd.Series(j, name='j')
-+        i = pd.Series(i, name='i', dtype=str)
-+        j = pd.Series(j, name='j', dtype=str)
-         values = pd.Series(np.hstack(values), name='value')
- 
-         return pd.concat([i, j, values], axis=1)
---- a/skbio/stats/distance/_mantel.py
-+++ b/skbio/stats/distance/_mantel.py
-@@ -282,7 +282,7 @@
-     else:
-         perm_gen = (corr_func(x.permute(condensed=True), y_flat)[0]
-                     for _ in range(permutations))
--        permuted_stats = np.fromiter(perm_gen, np.float, count=permutations)
-+        permuted_stats = np.fromiter(perm_gen, float, count=permutations)
- 
-         if alternative == 'two-sided':
-             count_better = (np.absolute(permuted_stats) >=
---- a/skbio/stats/distance/_permdisp.py
-+++ b/skbio/stats/distance/_permdisp.py
-@@ -139,8 +139,8 @@
-     test statistic name        F-value
-     sample size                      6
-     number of groups                 2
--    test statistic             1.03296
--    p-value                       0.35
-+    test statistic      ... 1.03...
-+    p-value             ...
-     number of permutations          99
-     Name: PERMDISP results, dtype: object
- 
-@@ -155,7 +155,7 @@
-     test statistic name        F-value
-     sample size                      6
-     number of groups                 2
--    test statistic             1.03296
-+    test statistic      ... 1.03...
-     p-value                        NaN
-     number of permutations           0
-     Name: PERMDISP results, dtype: object
-@@ -175,8 +175,8 @@
-     test statistic name        F-value
-     sample size                      6
-     number of groups                 2
--    test statistic             3.67082
--    p-value                   0.428571
-+    test statistic     ... 3.67...
-+    p-value            ... 0.42...
-     number of permutations           6
-     Name: PERMDISP results, dtype: object
- 
-@@ -194,8 +194,8 @@
-     test statistic name        F-value
-     sample size                      6
-     number of groups                 2
--    test statistic             3.67082
--    p-value                   0.428571
-+    test statistic      ... 3.67...
-+    p-value             ... 0.42...
-     number of permutations           6
-     Name: PERMDISP results, dtype: object
- 
-@@ -248,7 +248,8 @@
-         centroids = samples.groupby('grouping').apply(_config_med)
- 
-     for label, df in samples.groupby('grouping'):
--        groups.append(cdist(df.values[:, :-1], [centroids.loc[label].values],
-+        groups.append(cdist(df.values[:, :-1].astype('float64'),
-+                            [centroids.loc[label].values],
-                             metric='euclidean'))
- 
-     stat, _ = f_oneway(*groups)
---- a/skbio/stats/distance/tests/test_base.py
-+++ b/skbio/stats/distance/tests/test_base.py
-@@ -935,7 +935,7 @@
-     def test_to_series_1x1(self):
-         series = self.dm_1x1.to_series()
- 
--        exp = pd.Series([], index=[])
-+        exp = pd.Series([], index=[], dtype='float64')
-         assert_series_almost_equal(series, exp)
- 
-     def test_to_series_2x2(self):
---- a/skbio/stats/distance/tests/test_bioenv.py
-+++ b/skbio/stats/distance/tests/test_bioenv.py
-@@ -146,7 +146,7 @@
-         # same distances yields *very* similar results. Thus, the discrepancy
-         # seems to stem from differences when computing ranks/ties.
-         obs = bioenv(self.dm_vegan, self.df_vegan)
--        assert_data_frame_almost_equal(obs, self.exp_results_vegan)
-+        assert_data_frame_almost_equal(obs, self.exp_results_vegan, rtol=1e-3)
- 
-     def test_bioenv_no_distance_matrix(self):
-         with self.assertRaises(TypeError):
---- a/skbio/stats/distance/tests/test_permanova.py
-+++ b/skbio/stats/distance/tests/test_permanova.py
-@@ -12,7 +12,7 @@
- 
- import numpy as np
- import pandas as pd
--from pandas.util.testing import assert_series_equal
-+from pandas.testing import assert_series_equal
- 
- from skbio import DistanceMatrix
- from skbio.stats.distance import permanova
---- a/skbio/stats/distance/tests/test_permdisp.py
-+++ b/skbio/stats/distance/tests/test_permdisp.py
-@@ -12,7 +12,7 @@
- import numpy as np
- import numpy.testing as npt
- import pandas as pd
--from pandas.util.testing import assert_series_equal
-+from pandas.testing import assert_series_equal
- from scipy.stats import f_oneway
- import hdmedians as hd
- 
---- a/skbio/stats/gradient.py
-+++ b/skbio/stats/gradient.py
-@@ -168,7 +168,7 @@
-                 np.abs((w_vector[i] - w_vector[i-1]))
-             )
- 
--    return trajectories
-+    return trajectories.astype('float64')
- 
- 
- def _ANOVA_trajectories(category, res_by_group):
---- a/skbio/stats/ordination/_utils.py
-+++ b/skbio/stats/ordination/_utils.py
-@@ -237,7 +237,7 @@
-     distance_matrix : 2D array_like
-         Distance matrix.
-     """
--    distance_matrix = distance_matrix.astype(np.float)
-+    distance_matrix = distance_matrix.astype(float)
- 
-     for i in np.arange(len(distance_matrix)):
-         distance_matrix[i] = (distance_matrix[i] * distance_matrix[i]) / -2
-@@ -259,7 +259,7 @@
-     e_matrix : 2D array_like
-         A matrix representing the "E matrix" as described above.
-     """
--    e_matrix = e_matrix.astype(np.float)
-+    e_matrix = e_matrix.astype(float)
- 
-     row_means = np.zeros(len(e_matrix), dtype=float)
-     col_means = np.zeros(len(e_matrix), dtype=float)
---- a/skbio/stats/ordination/tests/test_principal_coordinate_analysis.py
-+++ b/skbio/stats/ordination/tests/test_principal_coordinate_analysis.py
-@@ -15,7 +15,8 @@
- from skbio import DistanceMatrix, OrdinationResults
- from skbio.stats.distance import DissimilarityMatrixError
- from skbio.stats.ordination import pcoa, pcoa_biplot
--from skbio.util import get_data_path, assert_ordination_results_equal
-+from skbio.util import (get_data_path, assert_ordination_results_equal,
-+                        assert_data_frame_almost_equal)
- 
- 
- class TestPCoA(TestCase):
-@@ -262,7 +263,7 @@
-         full = pcoa_biplot(self.ordination, self.descriptors).features
- 
-         # the biplot should be identical regardless of the number of axes used
--        pd.util.testing.assert_almost_equal(subset, full.iloc[:, :2])
-+        assert_data_frame_almost_equal(subset, full.iloc[:, :2])
- 
-     def test_mismatching_samples(self):
-         new_index = self.descriptors.index.tolist()
---- a/skbio/stats/tests/test_composition.py
-+++ b/skbio/stats/tests/test_composition.py
-@@ -10,7 +10,7 @@
- from unittest import TestCase, main
- import numpy as np
- import numpy.testing as npt
--import pandas.util.testing as pdt
-+import pandas.testing as pdt
- from numpy.random import normal
- import pandas as pd
- import scipy
-@@ -256,7 +256,8 @@
- 
-     def test_clr_inv(self):
-         npt.assert_allclose(clr_inv(self.rdata1), self.ortho1)
--        npt.assert_allclose(clr(clr_inv(self.rdata1)), self.rdata1)
-+        npt.assert_allclose(clr(clr_inv(self.rdata1)), self.rdata1,
-+                            rtol=1e-4, atol=1e-5)
- 
-         # make sure that inplace modification is not occurring
-         clr_inv(self.rdata1)
-@@ -521,7 +522,7 @@
-                                  normal(10, 1, L),
-                                  normal(10, 1, L)))
-         self.table2 = np.absolute(self.table2)
--        self.table2 = pd.DataFrame(self.table2.astype(np.int).T)
-+        self.table2 = pd.DataFrame(self.table2.astype(int).T)
-         self.cats2 = pd.Series([0]*D + [1]*D)
- 
-         # Real valued data with 2 groupings and no significant difference
-@@ -554,7 +555,7 @@
-                                  normal(10, 1, L),
-                                  normal(10, 1, L)))
-         self.table4 = np.absolute(self.table4)
--        self.table4 = pd.DataFrame(self.table4.astype(np.int).T)
-+        self.table4 = pd.DataFrame(self.table4.astype(int).T)
-         self.cats4 = pd.Series([0]*D + [1]*D + [2]*D)
- 
-         # Noncontiguous case
-@@ -635,7 +636,7 @@
-                                  normal(10, 10, L),
-                                  normal(10, 10, L)))
-         self.table9 = np.absolute(self.table9)+1
--        self.table9 = pd.DataFrame(self.table9.astype(np.int).T)
-+        self.table9 = pd.DataFrame(self.table9.astype(int).T)
-         self.cats9 = pd.Series([0]*D + [1]*D + [2]*D)
- 
-         # Real valued data with 2 groupings
-@@ -669,7 +670,7 @@
-                                   normal(10, 10, L),
-                                   normal(10, 10, L)))
-         self.table10 = np.absolute(self.table10) + 1
--        self.table10 = pd.DataFrame(self.table10.astype(np.int).T)
-+        self.table10 = pd.DataFrame(self.table10.astype(int).T)
-         self.cats10 = pd.Series([0]*D + [1]*D)
- 
-         # zero count
---- a/skbio/stats/tests/test_gradient.py
-+++ b/skbio/stats/tests/test_gradient.py
-@@ -13,7 +13,7 @@
- import numpy as np
- import pandas as pd
- import numpy.testing as npt
--import pandas.util.testing as pdt
-+import pandas.testing as pdt
- 
- from skbio.util import get_data_path, assert_data_frame_almost_equal
- from skbio.stats.gradient import (GradientANOVA, AverageGradientANOVA,
-@@ -237,7 +237,7 @@
-                                       's6': np.array([2.1795918367]),
-                                       's7': np.array([17.8]),
-                                       's8': np.array([20.3428571428])},
--                                     orient='index')
-+                                     orient='index').astype(np.float64)
-         obs = _weight_by_vector(trajectory, w_vector)
-         assert_data_frame_almost_equal(obs.sort_index(), exp.sort_index())
- 
-@@ -254,16 +254,16 @@
-         w_vector = pd.Series(np.array([1, 2, 3, 4, 5, 6, 7, 8]),
-                              ['s1', 's2', 's3', 's4',
-                               's5', 's6', 's7', 's8']).astype(np.float64)
--        exp = pd.DataFrame.from_dict({'s1': np.array([1.0]),
--                                      's2': np.array([2.0]),
--                                      's3': np.array([3.0]),
--                                      's4': np.array([4.0]),
--                                      's5': np.array([5.0]),
--                                      's6': np.array([6.0]),
--                                      's7': np.array([7.0]),
--                                      's8': np.array([8.0])
-+        exp = pd.DataFrame.from_dict({'s1': np.array([1]),
-+                                      's2': np.array([2]),
-+                                      's3': np.array([3]),
-+                                      's4': np.array([4]),
-+                                      's5': np.array([5]),
-+                                      's6': np.array([6]),
-+                                      's7': np.array([7]),
-+                                      's8': np.array([8])
-                                       },
--                                     orient='index')
-+                                     orient='index').astype(np.float64)
-         obs = _weight_by_vector(trajectory, w_vector)
-         assert_data_frame_almost_equal(obs.sort_index(), exp.sort_index())
- 
-@@ -276,11 +276,12 @@
-         trajectory.sort_values(by=0, inplace=True)
-         w_vector = pd.Series(np.array([25, 30, 35, 40, 45]),
-                              ['s2', 's3', 's4', 's5', 's6']).astype(np.float64)
--        exp = pd.DataFrame.from_dict({'s2': np.array([2.0]),
--                                      's3': np.array([3.0]),
--                                      's4': np.array([4.0]),
--                                      's5': np.array([5.0]),
--                                      's6': np.array([6.0])}, orient='index')
-+        exp = pd.DataFrame.from_dict({'s2': np.array([2]),
-+                                      's3': np.array([3]),
-+                                      's4': np.array([4]),
-+                                      's5': np.array([5]),
-+                                      's6': np.array([6])},
-+                                     orient='index').astype(np.float64)
-         obs = _weight_by_vector(trajectory, w_vector)
-         assert_data_frame_almost_equal(obs.sort_index(), exp.sort_index())
- 
---- a/skbio/tree/_tree.py
-+++ b/skbio/tree/_tree.py
-@@ -2186,7 +2186,7 @@
-             (lo, hi, end) = (mids[0], mids[-1], len(result))
-             prefixes = [PAD] * (lo + 1) + [PA + '|'] * \
-                 (hi - lo - 1) + [PAD] * (end - hi)
--            mid = np.int(np.trunc((lo + hi) / 2))
-+            mid = int(np.trunc((lo + hi) / 2))
-             prefixes[mid] = char1 + '-' * (LEN - 2) + prefixes[mid][-1]
-             result = [p + l for (p, l) in zip(prefixes, result)]
-             if show_internal:
---- a/skbio/tree/tests/test_nj.py
-+++ b/skbio/tree/tests/test_nj.py
-@@ -80,8 +80,9 @@
-                          self.expected1_str)
-         # what is the correct way to compare TreeNode objects for equality?
-         actual_TreeNode = nj(self.dm1)
-+        # precision error on ARM: 1.6653345369377348e-16 != 0.0
-         self.assertAlmostEqual(actual_TreeNode.compare_tip_distances(
--            self.expected1_TreeNode), 0.0)
-+            self.expected1_TreeNode), 0.0, places=10)
- 
-     def test_nj_dm2(self):
-         actual_TreeNode = nj(self.dm2)
---- a/skbio/util/_exception.py
-+++ b/skbio/util/_exception.py
-@@ -9,7 +9,7 @@
- 
- class TestingUtilError(Exception):
-     """Raised when an exception is needed to test exception handling."""
--    pass
-+    __test__ = False  # prevent py-test from collecting it
- 
- 
- class OverrideError(AssertionError):
---- a/skbio/util/_testing.py
-+++ b/skbio/util/_testing.py
-@@ -12,7 +12,7 @@
- 
- import numpy as np
- import numpy.testing as npt
--import pandas.util.testing as pdt
-+import pandas.testing as pdt
- from scipy.spatial.distance import pdist
- from ._decorator import experimental
- 
-@@ -265,7 +265,7 @@
- 
- 
- @experimental(as_of="0.4.0")
--def assert_data_frame_almost_equal(left, right):
-+def assert_data_frame_almost_equal(left, right, rtol=1e-5):
-     """Raise AssertionError if ``pd.DataFrame`` objects are not "almost equal".
- 
-     Wrapper of ``pd.util.testing.assert_frame_equal``. Floating point values
-@@ -306,10 +306,10 @@
-                            check_index_type=True,
-                            check_column_type=True,
-                            check_frame_type=True,
--                           check_less_precise=False,
-                            check_names=True,
-                            by_blocks=False,
--                           check_exact=False)
-+                           check_exact=False,
-+                           rtol=rtol)
-     # this check ensures that empty DataFrames with different indices do not
-     # compare equal. exact=True specifies that the type of the indices must be
-     # exactly the same
-@@ -323,7 +323,6 @@
-                             check_dtype=True,
-                             check_index_type=True,
-                             check_series_type=True,
--                            check_less_precise=False,
-                             check_names=True,
-                             check_exact=False,
-                             check_datetimelike_compat=False,
---- a/skbio/util/tests/test_testing.py
-+++ b/skbio/util/tests/test_testing.py
-@@ -228,7 +228,8 @@
- 
-     def setUp(self):
-         self.series = [
--            pd.Series(),
-+            pd.Series(dtype='float64'),
-+            pd.Series(dtype=object),
-             pd.Series(dtype='int64'),
-             pd.Series([1, 2, 3]),
-             pd.Series([3, 2, 1]),
---- a/skbio/workflow.py
-+++ b/skbio/workflow.py
-@@ -204,7 +204,7 @@
- from copy import deepcopy
- from time import time
- from functools import update_wrapper
--from collections import Iterable
-+from collections.abc import Iterable
- from types import MethodType
- 
- from skbio.util._decorator import experimental


=====================================
debian/patches/local_inventory
=====================================
@@ -3,7 +3,7 @@ Description: Use Debian packages for intersphinx-links
 Forwarded: not-needed
 --- python-skbio.orig/doc/source/conf.py
 +++ python-skbio/doc/source/conf.py
-@@ -428,12 +428,12 @@
+@@ -425,12 +425,12 @@
  # Intersphinx configuration
  # -----------------------------------------------------------------------------
  intersphinx_mapping = {


=====================================
debian/patches/pandas1.1-ordination-fix.patch deleted
=====================================
@@ -1,137 +0,0 @@
-From: Jamie Morton <jamietmorton at gmail.com>
-Date: Wed, 26 Aug 2020 10:37:27 -0600
-Origin: upstream, https://github.com/biocore/scikit-bio/pull/1720
-Bug-Upstream: https://github.com/biocore/scikit-bio/issues/1713
-Subject: Ordination fix (#1720)
-
-* `skbio.stats.ordination` tests have been relaxed.
-
-* Fixes build errors for newer versions of NumPy, Pandas, and SciPy.
-
-* Corrected a criticial bug in `skbio.alignment.StripedSmithWaterman` /
-  `skbio.alignment.local_pairwise_align_ssw` which would cause the
-  formatting of the aligned sequences to misplace gap characters by the
-  number of gap characters present in the opposing aligned sequence up
-  to that point. This was caused by a faulty implementation of CIGAR
-  string parsing, see
-  [#1679](https://github.com/biocore/scikit-bio/pull/1679) for full
-  details.
-
----
- CHANGELOG.md                                       |  5 ++
- .../ordination/tests/test_redundancy_analysis.py   |  1 -
- skbio/util/_testing.py                             | 59 ++++++++++++++--------
- 3 files changed, 44 insertions(+), 21 deletions(-)
-
-diff --git a/CHANGELOG.md b/CHANGELOG.md
-index ebdfe7e..61ae9a1 100644
---- a/CHANGELOG.md
-+++ b/CHANGELOG.md
-@@ -23,6 +23,11 @@
- ### Performance enhancements
- 
- ### Bug fixes
-+* * `skbio.stats.ordination` tests have been relaxed. ([#1713](https://github.com/biocore/scikit-bio/issues/1713))
-+
-+* Fixes build errors for newer versions of NumPy, Pandas, and SciPy.
-+
-+* Corrected a criticial bug in `skbio.alignment.StripedSmithWaterman`/`skbio.alignment.local_pairwise_align_ssw` which would cause the formatting of the aligned sequences to misplace gap characters by the number of gap characters present in the opposing aligned sequence up to that point. This was caused by a faulty implementation of CIGAR string parsing, see [#1679](https://github.com/biocore/scikit-bio/pull/1679) for full details.
- 
- * Fixes build errors for newer versions of NumPy, Pandas, and SciPy.
- 
-diff --git a/skbio/stats/ordination/tests/test_redundancy_analysis.py b/skbio/stats/ordination/tests/test_redundancy_analysis.py
-index 601832f..a8aefe8 100644
---- a/skbio/stats/ordination/tests/test_redundancy_analysis.py
-+++ b/skbio/stats/ordination/tests/test_redundancy_analysis.py
-@@ -245,7 +245,6 @@ class TestRDAResults_biplot_score(TestCase):
-             proportion_explained=vegan_propexpl,
-             eigvals=vegan_eigvals)
- 
--        pdt.assert_frame_equal(res_samples, vegan_samples)
-         # This scaling constant is required to make skbio comparable to vegan.
-         scaling = (rda_.eigvals[0] / rda_.eigvals[:6])
-         exp.biplot_scores *= scaling
-diff --git a/skbio/util/_testing.py b/skbio/util/_testing.py
-index ae6ff1f..0d69fbc 100644
---- a/skbio/util/_testing.py
-+++ b/skbio/util/_testing.py
-@@ -12,8 +12,8 @@ import sys
- 
- import numpy as np
- import numpy.testing as npt
--import pandas.testing as pdt
--
-+import pandas.util.testing as pdt
-+from scipy.spatial.distance import pdist
- from ._decorator import experimental
- 
- 
-@@ -118,24 +118,25 @@ def assert_ordination_results_equal(left, right, ignore_method_names=False,
-         npt.assert_equal(left.short_method_name, right.short_method_name)
-         npt.assert_equal(left.long_method_name, right.long_method_name)
- 
--    _assert_frame_equal(left.samples, right.samples,
--                        ignore_columns=ignore_axis_labels,
--                        ignore_directionality=ignore_directionality,
--                        decimal=decimal)
--
--    _assert_frame_equal(left.features, right.features,
--                        ignore_columns=ignore_axis_labels,
--                        ignore_directionality=ignore_directionality,
--                        decimal=decimal)
--    _assert_frame_equal(left.biplot_scores, right.biplot_scores,
--                        ignore_columns=ignore_axis_labels,
--                        ignore_directionality=ignore_directionality,
--                        decimal=decimal)
--
--    _assert_frame_equal(left.sample_constraints, right.sample_constraints,
--                        ignore_columns=ignore_axis_labels,
--                        ignore_directionality=ignore_directionality,
--                        decimal=decimal)
-+    _assert_frame_dists_equal(left.samples, right.samples,
-+                              ignore_columns=ignore_axis_labels,
-+                              ignore_directionality=ignore_directionality,
-+                              decimal=decimal)
-+
-+    _assert_frame_dists_equal(left.features, right.features,
-+                              ignore_columns=ignore_axis_labels,
-+                              ignore_directionality=ignore_directionality,
-+                              decimal=decimal)
-+
-+    _assert_frame_dists_equal(left.biplot_scores, right.biplot_scores,
-+                              ignore_columns=ignore_axis_labels,
-+                              ignore_directionality=ignore_directionality,
-+                              decimal=decimal)
-+
-+    _assert_frame_dists_equal(left.sample_constraints, right.sample_constraints,
-+                              ignore_columns=ignore_axis_labels,
-+                              ignore_directionality=ignore_directionality,
-+                              decimal=decimal)
- 
-     _assert_series_equal(left.eigvals, right.eigvals, ignore_axis_labels,
-                          decimal=decimal)
-@@ -156,6 +157,24 @@ def _assert_series_equal(left_s, right_s, ignore_index=False, decimal=7):
-             pdt.assert_index_equal(left_s.index, right_s.index)
- 
- 
-+def _assert_frame_dists_equal(left_df, right_df, ignore_index=False,
-+                              ignore_columns=False,
-+                              ignore_directionality=False, decimal=7):
-+    if left_df is None or right_df is None:
-+        assert left_df is None and right_df is None
-+    else:
-+        left_values = left_df.values
-+        right_values = right_df.values
-+        left_dists = pdist(left_values)
-+        right_dists = pdist(right_values)
-+        npt.assert_almost_equal(left_dists, right_dists, decimal=decimal)
-+
-+        if not ignore_index:
-+            pdt.assert_index_equal(left_df.index, right_df.index)
-+        if not ignore_columns:
-+            pdt.assert_index_equal(left_df.columns, right_df.columns)
-+
-+
- def _assert_frame_equal(left_df, right_df, ignore_index=False,
-                         ignore_columns=False, ignore_directionality=False,
-                         decimal=7):


=====================================
debian/patches/pandas1.1-valueerror.patch deleted
=====================================
@@ -1,31 +0,0 @@
-Date: Tue, 20 Oct 2020 10:43:09 -0700
-Origin: https://github.com/biocore/scikit-bio/pull/1719
-Author: Ritik Raina <rraina at ucsd.edu>
-Bug-Debian: https://bugs.debian.org/972548
-Subject: Update ValueError message assertion check
-
-Fixes compatibility with Pandas 1.1.
-
----
- skbio/metadata/_testing.py | 7 +++++--
- 1 file changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/skbio/metadata/_testing.py b/skbio/metadata/_testing.py
-index 42ed277..c413133 100644
---- a/skbio/metadata/_testing.py
-+++ b/skbio/metadata/_testing.py
-@@ -715,9 +715,12 @@ class PositionalMetadataMixinTests:
-         # array-like objects will fail if wrong size.
-         for array_like in (np.array(range(length-1)), range(length-1),
-                            np.array(range(length+1)), range(length+1)):
-+
-             with self.assertRaisesRegex(ValueError,
--                                        "Length of values does not match "
--                                        "length of index"):
-+                                        r'Length of values \(' +
-+                                        str(len(array_like)) +
-+                                        r'\) does not match length'
-+                                        r' of index \(8\)'):
-                 obj.positional_metadata['bar'] = array_like
- 
-     def test_positional_metadata_setter_pandas_consumable(self):


=====================================
debian/patches/series
=====================================
@@ -1,10 +1,4 @@
 mathjax-path
 0002-use-libsww-as-library-not-embedded-src.patch
 no_privacy_breach_logo.patch
-simde
-soften_test
-pandas1.1-ordination-fix.patch
-pandas1.1-valueerror.patch
 local_inventory
-sphinx_add_javascript.patch
-fix-dtype-precision-warnings.patch


=====================================
debian/patches/simde deleted
=====================================
@@ -1,65 +0,0 @@
-From: Michael R. Crusoe <crusoe at debian.org>
-Subject: add SIMD everywhere for non x86 support
-Forwarded: https://github.com/biocore/scikit-bio/pull/1709
---- python-skbio.orig/skbio/alignment/_lib/ssw.c
-+++ python-skbio/skbio/alignment/_lib/ssw.c
-@@ -35,7 +35,8 @@
-  *
-  */
- 
--#include <emmintrin.h>
-+#define SIMDE_ENABLE_NATIVE_ALIASES
-+#include "simde/x86/sse2.h"
- #include <stdint.h>
- #include <stdlib.h>
- #include <stdio.h>
---- python-skbio.orig/skbio/alignment/_lib/ssw.h
-+++ python-skbio/skbio/alignment/_lib/ssw.h
-@@ -14,7 +14,8 @@
- #include <stdio.h>
- #include <stdint.h>
- #include <string.h>
--#include <emmintrin.h>
-+#define SIMDE_ENABLE_NATIVE_ALIASES
-+#include "simde/x86/sse2.h"
- 
- /*! @typedef    structure of the query profile  */
- struct _profile;
-@@ -127,4 +128,4 @@
- }
- #endif  // __cplusplus
- 
--#endif  // SSW_H
-\ No newline at end of file
-+#endif  // SSW_H
---- python-skbio.orig/setup.py
-+++ python-skbio/setup.py
-@@ -60,19 +60,24 @@
- USE_CYTHON = os.environ.get('USE_CYTHON', False)
- ext = '.pyx' if USE_CYTHON else '.c'
- 
-+extra_args = ["-DSIMDE_ENABLE_OPENMP", "-fopenmp-simd", "-O3"]
- extensions = [
-     Extension("skbio.metadata._intersection",
--              ["skbio/metadata/_intersection" + ext]),
-+              ["skbio/metadata/_intersection" + ext],
-+              extra_compile_args=extra_args),
-     Extension("skbio.stats.__subsample",
-               ["skbio/stats/__subsample" + ext],
--              include_dirs=[np.get_include()]),
-+              include_dirs=[np.get_include()],
-+              extra_compile_args=extra_args),
-     Extension("skbio.alignment._ssw_wrapper",
-               ["skbio/alignment/_ssw_wrapper" + ext],
-               include_dirs=[np.get_include()],
--              libraries=['ssw']),
-+              libraries=['ssw'],
-+              extra_compile_args=extra_args),
-     Extension("skbio.diversity._phylogenetic",
-               ["skbio/diversity/_phylogenetic" + ext],
--              include_dirs=[np.get_include()])
-+              include_dirs=[np.get_include()],
-+              extra_compile_args=extra_args)
- ]
- 
- if USE_CYTHON:


=====================================
debian/patches/soften_test deleted
=====================================
@@ -1,14 +0,0 @@
-Author: Michael R. Crusoe <crusoe at debian.org>
-Description: 2.220446049250313e-16 is basically zero
-Forwarded: https://github.com/biocore/scikit-bio/pull/1709
---- python-skbio.orig/skbio/tree/tests/test_nj.py
-+++ python-skbio/skbio/tree/tests/test_nj.py
-@@ -80,7 +80,7 @@
-                          self.expected1_str)
-         # what is the correct way to compare TreeNode objects for equality?
-         actual_TreeNode = nj(self.dm1)
--        self.assertEqual(actual_TreeNode.compare_tip_distances(
-+        self.assertAlmostEqual(actual_TreeNode.compare_tip_distances(
-             self.expected1_TreeNode), 0.0)
- 
-     def test_nj_dm2(self):


=====================================
debian/patches/sphinx_add_javascript.patch deleted
=====================================
@@ -1,16 +0,0 @@
-Author: Andreas Tille <tille at debian.org>
-Last-Update: Wed, 13 Oct 2021 08:44:29 +0200
-Description: add_javascript() was deprecated in v1.8 and removed in v4.0. add_js_file() is a successor of the API.
-             same with add_stylesheet
-Forwarded: https://github.com/biocore/scikit-bio/issues/1783
-
---- a/doc/source/conf.py
-+++ b/doc/source/conf.py
-@@ -514,5 +514,5 @@ _closure()
- # Add the 'copybutton' javascript, to hide/show the prompt in code
- # examples, originally taken from scikit-learn's doc/conf.py
- def setup(app):
--    app.add_javascript('copybutton.js')
--    app.add_stylesheet('style.css')
-+    app.add_js_file('copybutton.js')
-+    app.add_css_file('style.css')


=====================================
debian/rules
=====================================
@@ -4,6 +4,7 @@
 #export DH_VERBOSE=1
 
 export DEB_BUILD_MAINT_OPTIONS = hardening=+bindnow
+export DEB_CPPFLAGS_MAINT_APPEND = -I$(CURDIR)
 
 export PYBUILD_NAME=skbio
 export MPLBACKEND=agg



View it on GitLab: https://salsa.debian.org/med-team/python-skbio/-/compare/de86b294072de5d2646e6f832e2e9437197e8473...b68aca0dfebe9d3fd8edf968c633de3192f807f5

-- 
View it on GitLab: https://salsa.debian.org/med-team/python-skbio/-/compare/de86b294072de5d2646e6f832e2e9437197e8473...b68aca0dfebe9d3fd8edf968c633de3192f807f5
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/20221203/f71c050a/attachment-0001.htm>


More information about the debian-med-commit mailing list