Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-fastcluster for 
openSUSE:Factory checked in at 2021-06-01 10:39:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-fastcluster (Old)
 and      /work/SRC/openSUSE:Factory/.python-fastcluster.new.1898 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-fastcluster"

Tue Jun  1 10:39:17 2021 rev:9 rq:896226 version:1.2.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-fastcluster/python-fastcluster.changes    
2021-05-23 00:06:20.734556114 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-fastcluster.new.1898/python-fastcluster.changes
  2021-06-01 10:40:52.709162070 +0200
@@ -1,0 +2,8 @@
+Sun May 23 21:17:09 UTC 2021 - Matej Cepl <mc...@suse.com>
+
+- Update to 1.2.0:
+  - Dropped support for Python 2.
+  - Python interface: Updated definition of the Yule distance
+    function, following a change in SciPy 1.6.3.
+
+-------------------------------------------------------------------

Old:
----
  fastcluster-1.1.28.tar.gz
  skip_error_test.patch

New:
----
  fastcluster-1.2.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-fastcluster.spec ++++++
--- /var/tmp/diff_new_pack.brK5CS/_old  2021-06-01 10:40:53.181162873 +0200
+++ /var/tmp/diff_new_pack.brK5CS/_new  2021-06-01 10:40:53.185162880 +0200
@@ -16,19 +16,17 @@
 #
 
 
+%define         skip_python2 1
 %define         skip_python36 1
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 Name:           python-fastcluster
-Version:        1.1.28
+Version:        1.2.0
 Release:        0
 Summary:        Hierarchical clustering routines for Python
 License:        BSD-2-Clause
 Group:          Development/Languages/Python
 URL:            https://github.com/dmuellner/fastcluster
 Source:         
https://files.pythonhosted.org/packages/source/f/fastcluster/fastcluster-%{version}.tar.gz
-# PATCH-FIX-UPSTREAM skip_error_test.patch gh#dmuellner/fastcluster#21 
mc...@suse.com
-# Skip over erroring test
-Patch0:         skip_error_test.patch
 BuildRequires:  %{python_module devel}
 BuildRequires:  %{python_module numpy-devel >= 1.9}
 BuildRequires:  %{python_module pytest}

++++++ fastcluster-1.1.28.tar.gz -> fastcluster-1.2.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fastcluster-1.1.28/NEWS.txt 
new/fastcluster-1.2.0/NEWS.txt
--- old/fastcluster-1.1.28/NEWS.txt     2021-02-03 21:22:14.000000000 +0100
+++ new/fastcluster-1.2.0/NEWS.txt      2021-05-23 11:46:18.000000000 +0200
@@ -218,3 +218,9 @@
 Version 1.1.28, 02/03/2021
 
 ??? Replace deprecated ???numpy.bool??? and ???numpy.int??? by ???bool??? and 
???int???.
+
+Version 1.2.0, 05/23/2021
+
+??? Dropped support for Python 2.
+??? Python interface: Updated definition of the Yule distance function, 
following
+  a change in SciPy 1.6.3.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fastcluster-1.1.28/PKG-INFO 
new/fastcluster-1.2.0/PKG-INFO
--- old/fastcluster-1.1.28/PKG-INFO     2021-02-03 21:31:02.764438600 +0100
+++ new/fastcluster-1.2.0/PKG-INFO      2021-05-23 14:29:16.472244000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: fastcluster
-Version: 1.1.28
+Version: 1.2.0
 Summary: Fast hierarchical clustering routines for R and Python.
 Home-page: http://danifold.net
 Author: Daniel M??llner
@@ -61,7 +61,6 @@
 Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
 Classifier: Topic :: Scientific/Engineering :: Mathematics
 Classifier: Programming Language :: Python
-Classifier: Programming Language :: Python :: 2
 Classifier: Programming Language :: Python :: 3
 Classifier: Programming Language :: C++
 Classifier: Operating System :: OS Independent
@@ -71,5 +70,6 @@
 Classifier: Development Status :: 5 - Production/Stable
 Requires: numpy
 Provides: fastcluster
+Requires-Python: >=3
 Description-Content-Type: text/x-rst
 Provides-Extra: test
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fastcluster-1.1.28/docs/fastcluster.Rtex 
new/fastcluster-1.2.0/docs/fastcluster.Rtex
--- old/fastcluster-1.1.28/docs/fastcluster.Rtex        2021-02-03 
21:22:41.000000000 +0100
+++ new/fastcluster-1.2.0/docs/fastcluster.Rtex 2021-05-23 11:28:49.000000000 
+0200
@@ -1,5 +1,5 @@
-\def\fastclusterversion{1.1.28}
-\documentclass[fontsize=10pt,paper=letter,BCOR=-6mm]{scrartcl}
+\def\fastclusterversion{1.2.0}
+\documentclass[fontsize=10pt,paper=letter,BCOR=-6mm,DIV=8]{scrartcl}
 \usepackage[utf8]{inputenc}
 \usepackage{lmodern}
 \normalfont
@@ -94,7 +94,7 @@
 %\VignetteIndexEntry{User's manual}
 \title{The \textit{fastcluster} package: User's manual}
 \author{\href{http://danifold.net}{Daniel M??llner}}
-\date{February 3, 2021}
+\date{May 23, 2021}
 \subtitle{Version \fastclusterversion}
 \maketitle
 
@@ -125,7 +125,10 @@
 Daniel M??llner, \textit{fastcluster: Fast Hierarchical, Agglomerative 
Clustering Routines for R and Python}, Journal of Statistical Software, 
\textbf{53} (2013), no.~9, 1--18, \url{http://www.jstatsoft.org/v53/i09/}.
 \end{quote}
 
-\textbf{The fastcluster package is considered stable and will undergo few 
changes from now on. If some years from now there have not been any updates, 
this does not necessarily mean that the package is unmaintained but maybe it 
just was not necessary to correct anything. Of course, please still report 
potential bugs and incompatibilities to \texttt{dan...@danifold.net}.}
+The fastcluster package is considered stable and will undergo few changes from 
now on. If some years from now there have not been any updates, this does not 
necessarily mean that the package is unmaintained but maybe it just was not 
necessary to correct anything. Of course, please still report potential bugs 
and incompatibilities to \texttt{dan...@danifold.net}.
+
+\textbf{The \hyperref[yule]{???Yule??? distance function} changed in the 
Python interface of fastcluster version 1.2.0. This is following a 
\href{https://github.com/scipy/scipy/commit/3b22d1da98dc1b5f64bc944c21f398d4ba782bce}{change
 in SciPy 1.6.3}.}
+
 
 \pagebreak
 \tableofcontents
@@ -448,7 +451,7 @@
 \[
   d(A,B) = \|\vec c_A-\vec c_B\|,
 \]
-where $\vec c_A$ denotes the centroid of the points in cluster 
$A$.\pagebreak[2]
+where $\vec c_A$ denotes the centroid of the points in cluster $A$.
 
 \item [\normalfont\textit{method=\q median\q}:]
 $\displaystyle d(K,L) = \sqrt{\tfrac12 d(I,L)^2+\tfrac12 d(J,L)^2-\tfrac14 
d(I,J)^2}$
@@ -459,7 +462,7 @@
 \]
 in Euclidean space for all nodes $A,B$. Notice however that this distance 
depends on the order of the merging steps.
 
-\item [\normalfont\textit{method=\q ward\q}:]
+\item [\normalfont\textit{method=\q ward\q}:] \raggedright
 $\displaystyle d(K,L) = \sqrt{\frac{(|I|+|L|)\cdot d(I,L)^2+(|J|+|L|)\cdot 
d(J,L)^2-|L|\cdot d(I,J)^2}{|I|+|J|+|L|}}$
 
 The global cluster dissimilarity can be expressed as
@@ -608,9 +611,12 @@
 
 \begin{description}
 \item[\normalfont\textit{\q yule\q}]
-\[
- d(u,v) = \frac{2bc}{ad+bc}
-\]
+\phantomsection\label{yule}
+\begin{align*}
+  d(u,v) &= \frac{2bc}{ad+bc} && \text{if $bc \neq 0$}\\
+  d(u,v) &= 0 && \text{if $bc = 0$}
+\end{align*}
+Note that the second clause $d(u,v)=0$ if $bc = 0$ was introduced in 
fastcluster version 1.2.0. Before, the result was NaN if the denominator in the 
formula was zero. fastcluster is following a 
\href{https://github.com/scipy/scipy/commit/3b22d1da98dc1b5f64bc944c21f398d4ba782bce}{change
 in SciPy 1.6.3} here.
 
 \item[\normalfont\textit{\q dice\q}]
 \begin{gather*}
@@ -653,7 +659,7 @@
 
 \section{Behavior for NaN and infinite values}\label{sec:infnan}
 
-Whenever the fastcluster package encounters a NaN value as the distance 
between nodes, either as the initial distance or as an updated distance after 
some merging steps, it raises an error. This was designed intentionally, even 
if there might be ways to propagate NaNs through the algorithms in a more or 
less sensible way. Indeed, since the clustering result depends on every single 
distance value, the presence of NaN values usually indicates a dubious 
clustering result, and therefore NaN values should be eliminated in 
preprocessing.\pagebreak[1]
+Whenever the fastcluster package encounters a NaN value as the distance 
between nodes, either as the initial distance or as an updated distance after 
some merging steps, it raises an error. This was designed intentionally, even 
if there might be ways to propagate NaNs through the algorithms in a more or 
less sensible way. Indeed, since the clustering result depends on every single 
distance value, the presence of NaN values usually indicates a dubious 
clustering result, and therefore NaN values should be eliminated in 
preprocessing.
 
 In the R interface for vector input, coordinates with {\NA} value are 
interpreted as missing data and treated in the same way as R's {\dist} function 
does. This results in valid output whenever the resulting distances are not 
NaN. The Python interface does not provide any way of handling missing 
coordinates, and data should be processed accordingly and given as pairwise 
distances to the clustering algorithms in this case.
 
Binary files old/fastcluster-1.1.28/docs/fastcluster.pdf and 
new/fastcluster-1.2.0/docs/fastcluster.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fastcluster-1.1.28/fastcluster.egg-info/PKG-INFO 
new/fastcluster-1.2.0/fastcluster.egg-info/PKG-INFO
--- old/fastcluster-1.1.28/fastcluster.egg-info/PKG-INFO        2021-02-03 
21:31:02.000000000 +0100
+++ new/fastcluster-1.2.0/fastcluster.egg-info/PKG-INFO 2021-05-23 
14:29:16.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: fastcluster
-Version: 1.1.28
+Version: 1.2.0
 Summary: Fast hierarchical clustering routines for R and Python.
 Home-page: http://danifold.net
 Author: Daniel M??llner
@@ -61,7 +61,6 @@
 Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
 Classifier: Topic :: Scientific/Engineering :: Mathematics
 Classifier: Programming Language :: Python
-Classifier: Programming Language :: Python :: 2
 Classifier: Programming Language :: Python :: 3
 Classifier: Programming Language :: C++
 Classifier: Operating System :: OS Independent
@@ -71,5 +70,6 @@
 Classifier: Development Status :: 5 - Production/Stable
 Requires: numpy
 Provides: fastcluster
+Requires-Python: >=3
 Description-Content-Type: text/x-rst
 Provides-Extra: test
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fastcluster-1.1.28/fastcluster.egg-info/requires.txt 
new/fastcluster-1.2.0/fastcluster.egg-info/requires.txt
--- old/fastcluster-1.1.28/fastcluster.egg-info/requires.txt    2021-02-03 
21:31:02.000000000 +0100
+++ new/fastcluster-1.2.0/fastcluster.egg-info/requires.txt     2021-05-23 
14:29:16.000000000 +0200
@@ -1,4 +1,4 @@
 numpy>=1.9
 
 [test]
-scipy
+scipy>=1.6.3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fastcluster-1.1.28/fastcluster.py 
new/fastcluster-1.2.0/fastcluster.py
--- old/fastcluster-1.1.28/fastcluster.py       2021-02-03 21:24:34.000000000 
+0100
+++ new/fastcluster-1.2.0/fastcluster.py        2021-05-23 11:30:54.000000000 
+0200
@@ -20,7 +20,7 @@
 """
 
 __all__ = ['single', 'complete', 'average', 'weighted', 'ward', 'centroid', 
'median', 'linkage', 'linkage_vector']
-__version_info__ = ('1', '1', '28')
+__version_info__ = ('1', '2', '0')
 __version__ = '.'.join(__version_info__)
 
 from numpy import double, empty, array, ndarray, var, cov, dot, expand_dims, \
@@ -421,7 +421,8 @@
 
 metric='yule'
 
-    d(u,v) = 2bc / (ad+bc)
+    d(u,v) = 2bc / (ad+bc)  if bc???0
+    d(u,v) = 0              if bc=0
 
 metric='dice':
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fastcluster-1.1.28/setup.py 
new/fastcluster-1.2.0/setup.py
--- old/fastcluster-1.1.28/setup.py     2019-12-31 16:49:21.000000000 +0100
+++ new/fastcluster-1.2.0/setup.py      2021-05-23 12:48:02.000000000 +0200
@@ -75,9 +75,10 @@
 (2013), no. 9, 1???18, http://www.jstatsoft.org/v53/i09/.
 """,
       long_description_content_type='text/x-rst',
+      python_requires='>=3',
       requires=['numpy'],
       install_requires=["numpy>=1.9"],
-      extras_require={'test':  ['scipy']},
+      extras_require={'test':  ['scipy>=1.6.3']},
       provides=['fastcluster'],
       ext_modules=[Extension('_fastcluster',
                              ['src/fastcluster_python.cpp'],
@@ -112,7 +113,6 @@
           "Topic :: Scientific/Engineering :: Bio-Informatics",
           "Topic :: Scientific/Engineering :: Mathematics",
           "Programming Language :: Python",
-          "Programming Language :: Python :: 2",
           "Programming Language :: Python :: 3",
           "Programming Language :: C++",
           "Operating System :: OS Independent",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fastcluster-1.1.28/src/fastcluster_python.cpp 
new/fastcluster-1.2.0/src/fastcluster_python.cpp
--- old/fastcluster-1.1.28/src/fastcluster_python.cpp   2018-05-13 
22:28:24.000000000 +0200
+++ new/fastcluster-1.2.0/src/fastcluster_python.cpp    2021-05-23 
10:03:04.000000000 +0200
@@ -1022,10 +1022,10 @@
     }
   }
 
-  // Caution: zero denominators can happen here!
   t_float yule(const t_index i, const t_index j) const {
     nbool_correspond_tfft(i, j);
-    return static_cast<t_float>(2*NTFFT) / static_cast<t_float>(NTFFT + NFFTT);
+    return (NTFFT==0) ? 0 :
+      static_cast<t_float>(2*NTFFT) / static_cast<t_float>(NTFFT + NFFTT);
   }
 
   // Prevent a zero denominator for equal vectors.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fastcluster-1.1.28/tests/__init__.py 
new/fastcluster-1.2.0/tests/__init__.py
--- old/fastcluster-1.1.28/tests/__init__.py    2018-05-13 22:28:24.000000000 
+0200
+++ new/fastcluster-1.2.0/tests/__init__.py     2021-05-22 20:38:48.000000000 
+0200
@@ -3,12 +3,12 @@
 class fastcluster_test(unittest.TestCase):
     def test(self):
         from tests.test import test
-        self.assertTrue(test(10))
+        test(10)
 
     def test_nan(self):
         from tests.nantest import test
-        self.assertTrue(test())
+        test()
 
     def test_vector(self):
         from tests.vectortest import test
-        self.assertTrue(test(10))
+        test(10)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fastcluster-1.1.28/tests/nantest.py 
new/fastcluster-1.2.0/tests/nantest.py
--- old/fastcluster-1.1.28/tests/nantest.py     2021-02-03 21:24:59.000000000 
+0100
+++ new/fastcluster-1.2.0/tests/nantest.py      2021-05-23 11:24:06.000000000 
+0200
@@ -10,7 +10,7 @@
 import numpy as np
 import fastcluster
 
-version = '1.1.28'
+version = '1.2.0'
 if fastcluster.__version__ != version:
     raise ValueError('Wrong module version: {} instead of 
{}.'.format(fastcluster.__version__, version))
 
@@ -66,8 +66,6 @@
         except FloatingPointError:
             pass
 
-    return True
-
 if __name__ == "__main__":
     test()
     print('OK.')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fastcluster-1.1.28/tests/test.py 
new/fastcluster-1.2.0/tests/test.py
--- old/fastcluster-1.1.28/tests/test.py        2021-02-03 21:24:55.000000000 
+0100
+++ new/fastcluster-1.2.0/tests/test.py 2021-05-23 11:24:15.000000000 +0200
@@ -11,7 +11,7 @@
 from scipy.spatial.distance import pdist, squareform
 import math
 
-version = '1.1.28'
+version = '1.2.0'
 if fc.__version__ != version:
     raise ValueError('Wrong module version: {} instead of 
{}.'.format(fc.__version__, version))
 
@@ -152,17 +152,11 @@
         print('Number of points: {0}'.format(n))
         D = pdist(np.random.randn(n,dim))
 
-        try:
-            print('Real distance values:')
-            test_all(D)
-            D = np.round(D*n/4)
-            print('Integer distance values:')
-            test_all(D)
-        except AssertionError as E:
-            print(E)
-            print(squareform(D))
-            return False
-    return True
+        print('Real distance values:')
+        test_all(D)
+        D = np.round(D*n/4)
+        print('Integer distance values:')
+        test_all(D)
 
 if __name__ == "__main__":
     test(None)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fastcluster-1.1.28/tests/vectortest.py 
new/fastcluster-1.2.0/tests/vectortest.py
--- old/fastcluster-1.1.28/tests/vectortest.py  2021-02-03 21:24:50.000000000 
+0100
+++ new/fastcluster-1.2.0/tests/vectortest.py   2021-05-23 11:24:23.000000000 
+0200
@@ -13,7 +13,7 @@
 from scipy.spatial.distance import pdist, squareform
 import math
 
-version = '1.1.28'
+version = '1.2.0'
 if fc.__version__ != version:
     raise ValueError('Wrong module version: {} instead of 
{}.'.format(fc.__version__, version))
 
@@ -233,13 +233,7 @@
         print('Dimension: {0}'.format(dim))
         print('Number of points: {0}'.format(n))
 
-        try:
-            test_all(n,dim)
-        except AssertionError as E:
-            print(E.args[0])
-            print(E.args[1])
-            return False
-    return True
+        test_all(n,dim)
 
 if __name__ == "__main__":
     test(None)

Reply via email to