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-05-23 00:06:14 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-fastcluster (Old) and /work/SRC/openSUSE:Factory/.python-fastcluster.new.2988 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-fastcluster" Sun May 23 00:06:14 2021 rev:8 rq:894946 version:1.1.28 Changes: -------- --- /work/SRC/openSUSE:Factory/python-fastcluster/python-fastcluster.changes 2021-01-19 16:06:16.759748813 +0100 +++ /work/SRC/openSUSE:Factory/.python-fastcluster.new.2988/python-fastcluster.changes 2021-05-23 00:06:20.734556114 +0200 @@ -1,0 +2,14 @@ +Sat May 22 11:40:08 UTC 2021 - Matej Cepl <[email protected]> + +- Add skip_error_test.patch removing the erroring test_vector + test (gh#dmuellner/fastcluster#21). + +------------------------------------------------------------------- +Fri May 14 15:05:07 UTC 2021 - Matej Cepl <[email protected]> + +- Update to 1.1.28: + - Replace deprecated ???numpy.bool??? and ???numpy.int??? by + ???bool??? and ???int???. + - Updated NumPy dependency for Python 3.9. + +------------------------------------------------------------------- Old: ---- fastcluster-1.1.26.tar.gz New: ---- fastcluster-1.1.28.tar.gz skip_error_test.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-fastcluster.spec ++++++ --- /var/tmp/diff_new_pack.hiq7I3/_old 2021-05-23 00:06:21.190553688 +0200 +++ /var/tmp/diff_new_pack.hiq7I3/_new 2021-05-23 00:06:21.190553688 +0200 @@ -19,16 +19,19 @@ %define skip_python36 1 %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-fastcluster -Version: 1.1.26 +Version: 1.1.28 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 [email protected] +# Skip over erroring test +Patch0: skip_error_test.patch BuildRequires: %{python_module devel} -BuildRequires: %{python_module nose} BuildRequires: %{python_module numpy-devel >= 1.9} +BuildRequires: %{python_module pytest} BuildRequires: %{python_module scipy} BuildRequires: %{python_module setuptools} BuildRequires: fdupes @@ -62,7 +65,8 @@ Documentation and help files for %{name}. %prep -%setup -q -n fastcluster-%{version} +%autosetup -p1 -n fastcluster-%{version} + sed -i 's/\r$//' CITATION.txt sed -i 's/\r$//' NEWS.txt sed -i 's/\r$//' README.txt @@ -77,7 +81,7 @@ %check export LANG=en_US.UTF-8 -%python_exec setup.py test +%pyunittest_arch -v tests %files %{python_files} %license COPYING.txt ++++++ fastcluster-1.1.26.tar.gz -> fastcluster-1.1.28.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fastcluster-1.1.26/NEWS.txt new/fastcluster-1.1.28/NEWS.txt --- old/fastcluster-1.1.26/NEWS.txt 2019-12-30 22:34:30.000000000 +0100 +++ new/fastcluster-1.1.28/NEWS.txt 2021-02-03 21:22:14.000000000 +0100 @@ -210,3 +210,11 @@ Version 1.1.26, 12/30/2019 ??? Small updates for Python 3.8. + +Version 1.1.27, 01/20/2021 + +??? Updated NumPy dependency for Python 3.9. + +Version 1.1.28, 02/03/2021 + +??? Replace deprecated ???numpy.bool??? and ???numpy.int??? by ???bool??? and ???int???. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fastcluster-1.1.26/PKG-INFO new/fastcluster-1.1.28/PKG-INFO --- old/fastcluster-1.1.26/PKG-INFO 2019-12-31 15:06:06.206344600 +0100 +++ new/fastcluster-1.1.28/PKG-INFO 2021-02-03 21:31:02.764438600 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: fastcluster -Version: 1.1.26 +Version: 1.1.28 Summary: Fast hierarchical clustering routines for R and Python. Home-page: http://danifold.net Author: Daniel M??llner diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fastcluster-1.1.26/docs/fastcluster.Rtex new/fastcluster-1.1.28/docs/fastcluster.Rtex --- old/fastcluster-1.1.26/docs/fastcluster.Rtex 2019-12-30 22:35:50.000000000 +0100 +++ new/fastcluster-1.1.28/docs/fastcluster.Rtex 2021-02-03 21:22:41.000000000 +0100 @@ -1,4 +1,4 @@ -\def\fastclusterversion{1.1.26} +\def\fastclusterversion{1.1.28} \documentclass[fontsize=10pt,paper=letter,BCOR=-6mm]{scrartcl} \usepackage[utf8]{inputenc} \usepackage{lmodern} @@ -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{December 30, 2019} +\date{February 3, 2021} \subtitle{Version \fastclusterversion} \maketitle @@ -114,7 +114,7 @@ \begin{abstract}\noindent\small The fastcluster package is a C++ library for hierarchical, agglomerative clustering. It efficiently implements the -seven most widely used clustering schemes: single, complete, average, weighted/mcquitty, Ward, centroid and median linkage. The library currently has interfaces to two languages: R and Python/SciPy. Part of the functionality is designed as drop-in replacement for existing routines: \linkage{} in the SciPy package \hierarchy{}, \hclust{} in R's \stats{} package, and the \flashClustPack{} package. Once the fastcluster library is loaded at the beginning of the code, every program that uses hierarchical clustering can benefit immediately and effortlessly from the performance gain. Moreover, there are memory-saving routines for clustering of vector data, which go beyond what the existing packages provide. +seven most widely used clustering schemes: single, complete, average, weighted/\hskip0pt mcquitty, Ward, centroid and median linkage. The library currently has interfaces to two languages: R and Python/SciPy. Part of the functionality is designed as drop-in replacement for existing routines: \linkage{} in the SciPy package \hierarchy{}, \hclust{} in R's \stats{} package, and the \flashClustPack{} package. Once the fastcluster library is loaded at the beginning of the code, every program that uses hierarchical clustering can benefit immediately and effortlessly from the performance gain. Moreover, there are memory-saving routines for clustering of vector data, which go beyond what the existing packages provide. \end{abstract} \noindent @@ -507,7 +507,7 @@ For single linkage clustering, any dissimilarity function may be chosen. Basically, every metric which is implemented in the method \pdist{} is reimplemented here. However, the metrics differ in some instances since a number of mistakes and typos (both in the code and in the documentation) were corrected in the \textit{fastcluster} package.\footnote{Hopefully, the SciPy metric will be corrected in future versions and some day coincide with the \textit{fastcluster} definitions. See the bug reports at \url{https://github.com/scipy/scipy/issues/2009}, \url{https://github.com/scipy/scipy/issues/2011}.} -Therefore, the available metrics with their definitions are listed below as a reference. The symbols $u$ and $v$ mostly denote vectors in $\mathbb R^D$ with coordinates $u_j$ and $v_j$ respectively. See below for additional metrics for Boolean vectors. Unless otherwise stated, the input array $X$ is converted to a floating point array (\texttt{X.dtype==numpy.double}) if it does has have already the required data type. Some metrics accept Boolean input; in this case this is stated explicitly below. +Therefore, the available metrics with their definitions are listed below as a reference. The symbols $u$ and $v$ mostly denote vectors in $\mathbb R^D$ with coordinates $u_j$ and $v_j$ respectively. See below for additional metrics for Boolean vectors. Unless otherwise stated, the input array $X$ is converted to a floating point array (\texttt{X.dtype==\allowbreak numpy.double}) if it does has have already the required data type. Some metrics accept Boolean input; in this case this is stated explicitly below. \begin{description} \item[\normalfont\textit{\q euclidean\q}:] Euclidean metric, $L_2$ norm @@ -531,7 +531,7 @@ \[ d(u,v) = \sqrt{(u-v)^{\mkern-3mu\top}V (u-v)} \] -Here, $V=\textit{extraarg}$, a $(D\times D)$-matrix. If $V$ is not specified, the inverse of the covariance matrix \texttt{numpy.linalg.inv(numpy.cov(X, rowvar=False))} is used: +Here, $V=\textit{extraarg}$, a $(D\times D)$-matrix. If $V$ is not specified, the inverse of the covariance matrix \texttt{numpy.linalg.inv(numpy.\allowbreak cov(\allowbreak X, rowvar=False))} is used: \[ (V^{-1})_{j,k} = \frac1{N-1} \sum_i (X_{i,j}-\mu(X_j))(X_{i,k}-\mu(X_k)) \] @@ -580,12 +580,12 @@ \end{quote} This method, however, is much slower than the built-in function. -\item[\normalfont\textit{\q hamming\q}:] The Hamming distance accepts a Boolean array (\texttt{X.dtype==bool}) for efficient storage. Any other data type is converted to \texttt{numpy.double}. +\item[\normalfont\textit{\q hamming\q}:] The Hamming distance accepts a Boolean array (\texttt{X.\allowbreak dtype\allowbreak ==\allowbreak bool}) for efficient storage. Any other data type is converted to \texttt{numpy.double}. \[ d(u,v) = |\{j\mid u_j\neq v_j\}| \] -\item[\normalfont\textit{\q jaccard\q}:] The Jaccard distance accepts a Boolean array (\texttt{X.dtype\hskip0pt ==\hskip0pt bool}) for efficient storage. Any other data type is converted to \texttt{numpy.double}. +\item[\normalfont\textit{\q jaccard\q}:] The Jaccard distance accepts a Boolean array (\texttt{X.dtype\allowbreak ==\allowbreak bool}) for efficient storage. Any other data type is converted to \texttt{numpy.double}. \[ d(u,v) = \frac{|\{j\mid u_j\neq v_j\}|}{|\{j\mid u_j\neq 0\text{ or } v_j\neq 0\}|} \] @@ -670,7 +670,7 @@ For the \textit{\q average\q} and \textit{\q weighted\q} alias \textit{\q mcquitty\q} methods, the same, non-squared distance matrix \texttt{d} as in the Python interface must be used for the same results. The \textit{\q single\q} and \textit{\q complete\q} methods only depend on the relative order of the distances, hence it does not make a difference whether the method operates on the distances or the squared distances. -The code example in the R documentation (enter \texttt{?hclust} or \texttt{example(hclust)} in R) contains another instance where the squared distance matrix is generated from Euclidean data. +The code example in the R documentation (enter \texttt{?hclust} or \texttt{ex\-am\-ple(hclust)} in R) contains another instance where the squared distance matrix is generated from Euclidean data. \item The Python interface is not designed to deal with missing values, and NaN values in the vector data raise an error message. The \hyperref[hclust.vector]{\texttt{hclust.vector}} method in the R interface, in contrast, deals with NaN and the (R specific) {\NA} values in the same way as the \dist{} method does. Confer the documentation for \dist{} for details. \end{itemize} Binary files old/fastcluster-1.1.26/docs/fastcluster.pdf and new/fastcluster-1.1.28/docs/fastcluster.pdf differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fastcluster-1.1.26/fastcluster.egg-info/PKG-INFO new/fastcluster-1.1.28/fastcluster.egg-info/PKG-INFO --- old/fastcluster-1.1.26/fastcluster.egg-info/PKG-INFO 2019-12-31 15:06:06.000000000 +0100 +++ new/fastcluster-1.1.28/fastcluster.egg-info/PKG-INFO 2021-02-03 21:31:02.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: fastcluster -Version: 1.1.26 +Version: 1.1.28 Summary: Fast hierarchical clustering routines for R and Python. Home-page: http://danifold.net Author: Daniel M??llner diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fastcluster-1.1.26/fastcluster.py new/fastcluster-1.1.28/fastcluster.py --- old/fastcluster-1.1.26/fastcluster.py 2019-12-30 22:36:41.000000000 +0100 +++ new/fastcluster-1.1.28/fastcluster.py 2021-02-03 21:24:34.000000000 +0100 @@ -20,11 +20,11 @@ """ __all__ = ['single', 'complete', 'average', 'weighted', 'ward', 'centroid', 'median', 'linkage', 'linkage_vector'] -__version_info__ = ('1', '1', '26') +__version_info__ = ('1', '1', '28') __version__ = '.'.join(__version_info__) -from numpy import double, empty, array, ndarray, var, cov, dot, bool, \ - expand_dims, ceil, sqrt +from numpy import double, empty, array, ndarray, var, cov, dot, expand_dims, \ + ceil, sqrt from numpy.linalg import inv try: from scipy.spatial.distance import pdist diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fastcluster-1.1.26/pyproject.toml new/fastcluster-1.1.28/pyproject.toml --- old/fastcluster-1.1.26/pyproject.toml 2019-12-29 21:28:04.000000000 +0100 +++ new/fastcluster-1.1.28/pyproject.toml 2021-01-20 16:29:43.000000000 +0100 @@ -16,4 +16,5 @@ "numpy==1.10.4; python_version<'3.6'", "numpy==1.12.1; python_version=='3.6'", "numpy==1.15.0; python_version=='3.7'", - "numpy==1.17.3; python_version=='3.8'"] + "numpy==1.17.3; python_version=='3.8'", + "numpy==1.19.3; python_version=='3.9'"] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fastcluster-1.1.26/setup.py new/fastcluster-1.1.28/setup.py --- old/fastcluster-1.1.26/setup.py 2019-12-30 22:57:32.000000000 +0100 +++ new/fastcluster-1.1.28/setup.py 2019-12-31 16:49:21.000000000 +0100 @@ -19,7 +19,8 @@ version = '.'.join(line.split("'")[1:-1:2]) break -print('Version: ' + version) +print('Fastcluster version: ' + version) +print('Python version: ' + sys.version) setup(name='fastcluster', version=version, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fastcluster-1.1.26/tests/nantest.py new/fastcluster-1.1.28/tests/nantest.py --- old/fastcluster-1.1.26/tests/nantest.py 2019-12-30 22:37:08.000000000 +0100 +++ new/fastcluster-1.1.28/tests/nantest.py 2021-02-03 21:24:59.000000000 +0100 @@ -10,7 +10,7 @@ import numpy as np import fastcluster -version = '1.1.26' +version = '1.1.28' if fastcluster.__version__ != version: raise ValueError('Wrong module version: {} instead of {}.'.format(fastcluster.__version__, version)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fastcluster-1.1.26/tests/test.py new/fastcluster-1.1.28/tests/test.py --- old/fastcluster-1.1.26/tests/test.py 2019-12-30 22:37:03.000000000 +0100 +++ new/fastcluster-1.1.28/tests/test.py 2021-02-03 21:24:55.000000000 +0100 @@ -11,7 +11,7 @@ from scipy.spatial.distance import pdist, squareform import math -version = '1.1.26' +version = '1.1.28' if fc.__version__ != version: raise ValueError('Wrong module version: {} instead of {}.'.format(fc.__version__, version)) @@ -46,7 +46,7 @@ n = len(Ds) row_repr = np.arange(2*n-1) row_repr[n:] = -1 - size = np.ones(n, dtype=np.int) + size = np.ones(n, dtype=int) np.fill_diagonal(Ds, np.nan) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fastcluster-1.1.26/tests/vectortest.py new/fastcluster-1.1.28/tests/vectortest.py --- old/fastcluster-1.1.26/tests/vectortest.py 2019-12-30 22:36:57.000000000 +0100 +++ new/fastcluster-1.1.28/tests/vectortest.py 2021-02-03 21:24:50.000000000 +0100 @@ -13,7 +13,7 @@ from scipy.spatial.distance import pdist, squareform import math -version = '1.1.26' +version = '1.1.28' if fc.__version__ != version: raise ValueError('Wrong module version: {} instead of {}.'.format(fc.__version__, version)) @@ -47,7 +47,7 @@ method = 'single' # metrics for boolean vectors - pcd = np.random.randint(0, 2, size=(n,dim), dtype=np.bool) + pcd = np.random.randint(0, 2, size=(n,dim), dtype=bool) pcd2 = pcd.copy() for metric in ('hamming', 'jaccard', 'yule', 'matching', 'dice', @@ -127,7 +127,7 @@ n = len(Ds) row_repr = np.arange(2*n-1) row_repr[n:] = -1 - size = np.ones(n, dtype=np.int) + size = np.ones(n, dtype=int) np.fill_diagonal(Ds, np.nan) ++++++ skip_error_test.patch ++++++ --- tests/__init__.py | 4 ---- tests/vectortest.py | 2 ++ 2 files changed, 2 insertions(+), 4 deletions(-) --- a/tests/__init__.py +++ b/tests/__init__.py @@ -8,7 +8,3 @@ class fastcluster_test(unittest.TestCase def test_nan(self): from tests.nantest import test self.assertTrue(test()) - - def test_vector(self): - from tests.vectortest import test - self.assertTrue(test(10))
