Hello community, here is the log from the commit of package python-uncertainties for openSUSE:Factory checked in at 2019-08-19 21:38:18 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-uncertainties (Old) and /work/SRC/openSUSE:Factory/.python-uncertainties.new.22127 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-uncertainties" Mon Aug 19 21:38:18 2019 rev:7 rq:724152 version:3.1.2 Changes: -------- --- /work/SRC/openSUSE:Factory/python-uncertainties/python-uncertainties.changes 2019-08-05 10:38:16.971320804 +0200 +++ /work/SRC/openSUSE:Factory/.python-uncertainties.new.22127/python-uncertainties.changes 2019-08-19 21:38:21.172348189 +0200 @@ -1,0 +2,11 @@ +Fri Aug 16 15:57:12 UTC 2019 - Todd R <toddrme2...@gmail.com> + +- Update to 3.1.2 + * Starting with NumPy 1.17, numpy.linalg.pinv has a None + __defaults__ attribute, for which the code made no provision. + This is fixed. +- Remove upstream-included patches: + fix_raw_strings.patch + fix_numpy_1_17.patch + +------------------------------------------------------------------- Old: ---- fix_numpy_1_17.patch fix_raw_strings.patch uncertainties-3.1.1.tar.gz New: ---- uncertainties-3.1.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-uncertainties.spec ++++++ --- /var/tmp/diff_new_pack.Ls8fVN/_old 2019-08-19 21:38:22.216347533 +0200 +++ /var/tmp/diff_new_pack.Ls8fVN/_new 2019-08-19 21:38:22.216347533 +0200 @@ -18,23 +18,18 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-uncertainties -Version: 3.1.1 +Version: 3.1.2 Release: 0 Summary: Uncertainties on the Quantities Involved (aka "Error Propagation") License: BSD-3-Clause Group: Development/Languages/Python URL: https://github.com/lebigot/uncertainties/ Source: https://files.pythonhosted.org/packages/source/u/uncertainties/uncertainties-%{version}.tar.gz -# PATCH-FIX-UPSTREAM fix_raw_strings.patch - gh#lebigot/uncertainties#98 -Patch0: fix_raw_strings.patch -# PATCH-FIX-UPSTREAM fix_numpy_1_17.patch - gh#lebigot/uncertainties#89 -Patch1: fix_numpy_1_17.patch BuildRequires: %{python_module nose} BuildRequires: %{python_module numpy} BuildRequires: %{python_module setuptools} BuildRequires: fdupes BuildRequires: python-rpm-macros -# Package uses 2to3 to generate python3 compatible code BuildRequires: python3-testsuite BuildRequires: python3-tools BuildArch: noarch @@ -53,7 +48,8 @@ # crazy directory layout rm -r uncertainties-py23 mv uncertainties-py27 uncertainties -%autopatch -p1 +sed -i -e '/^#!\//, 1d' uncertainties/1to2.py +sed -i -e '/^#!\//, 1d' uncertainties/lib1to2/test_1to2.py %build %python_build ++++++ uncertainties-3.1.1.tar.gz -> uncertainties-3.1.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/uncertainties-3.1.1/PKG-INFO new/uncertainties-3.1.2/PKG-INFO --- old/uncertainties-3.1.1/PKG-INFO 2019-05-30 20:02:29.000000000 +0200 +++ new/uncertainties-3.1.2/PKG-INFO 2019-08-05 09:52:54.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: uncertainties -Version: 3.1.1 +Version: 3.1.2 Summary: Transparent calculations with uncertainties on the quantities involved (aka error propagation); fast calculation of derivatives Home-page: http://uncertainties-python-package.readthedocs.io/ Author: Eric O. LEBIGOT (EOL) @@ -108,6 +108,7 @@ Main changes: + - 3.1.2: Partial fix for NumPy 1.17 and `unumpy.ulinalg.pinv()`. - 3.1: Variables built through a correlation or covariance matrix, and that have uncertainties that span many orders of magnitude are now calculated more accurately (improved ``correlated_values()`` and diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/uncertainties-3.1.1/README.rst new/uncertainties-3.1.2/README.rst --- old/uncertainties-3.1.1/README.rst 2019-05-19 22:33:18.000000000 +0200 +++ new/uncertainties-3.1.2/README.rst 2019-08-04 22:15:34.000000000 +0200 @@ -34,7 +34,7 @@ * Documentation: http://uncertainties-python-package.readthedocs.io/ * Issues: https://github.com/lebigot/uncertainties/issues/ -* Python Package Index entry: http://pypi.python.org/pypi/uncertainties/ +* Python Package Index entry: https://pypi.org/project/uncertainties * Code: https://github.com/lebigot/uncertainties/ GitHub diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/uncertainties-3.1.1/doc/index.rst new/uncertainties-3.1.2/doc/index.rst --- old/uncertainties-3.1.1/doc/index.rst 2019-05-19 22:33:18.000000000 +0200 +++ new/uncertainties-3.1.2/doc/index.rst 2019-08-04 22:15:34.000000000 +0200 @@ -387,10 +387,10 @@ `donations`_: they help keep this project alive by providing positive feedback. -I greatly appreciate having gotten key technical input from Arnaud -Delobelle, Pierre Cladé, and Sebastian Walter. Patches by Pierre -Cladé, Tim Head, José Sabater Montes, Martijn Pieters, Ram Rachum, -Christoph Deil, Gabi Davar and Roman Yurchak are gratefully acknowledged. +I greatly appreciate having gotten key technical input from Arnaud Delobelle, +Pierre Cladé, and Sebastian Walter. Patches by Pierre Cladé, Tim Head, José +Sabater Montes, Martijn Pieters, Ram Rachum, Christoph Deil, Gabi Davar, Roman +Yurchak and Paul Romano are gratefully acknowledged. I would also like to thank users who contributed with feedback and suggestions, which greatly helped improve this program: Joaquin Abian, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/uncertainties-3.1.1/setup.py new/uncertainties-3.1.2/setup.py --- old/uncertainties-3.1.1/setup.py 2019-05-30 20:02:20.000000000 +0200 +++ new/uncertainties-3.1.2/setup.py 2019-08-04 22:15:34.000000000 +0200 @@ -42,7 +42,7 @@ # Common options for distutils/setuptools's setup(): setup_options = dict( name='uncertainties', - version='3.1.1', + version='3.1.2', author='Eric O. LEBIGOT (EOL)', author_email='eric.lebi...@normalesup.org', url='http://uncertainties-python-package.readthedocs.io/', @@ -160,6 +160,7 @@ Main changes: +- 3.1.2: Partial fix for NumPy 1.17 and `unumpy.ulinalg.pinv()`. - 3.1: Variables built through a correlation or covariance matrix, and that have uncertainties that span many orders of magnitude are now calculated more accurately (improved ``correlated_values()`` and diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/uncertainties-3.1.1/uncertainties-py23/__init__.py new/uncertainties-3.1.2/uncertainties-py23/__init__.py --- old/uncertainties-3.1.1/uncertainties-py23/__init__.py 2019-05-30 19:48:32.000000000 +0200 +++ new/uncertainties-3.1.2/uncertainties-py23/__init__.py 2019-08-04 22:18:14.000000000 +0200 @@ -225,7 +225,7 @@ from uncertainties.core import __all__ # For a correct help(uncertainties) # Numerical version: -__version_info__ = (3, 1, 1) +__version_info__ = (3, 1, 2) __version__ = '.'.join(map(str, __version_info__)) __author__ = 'Eric O. LEBIGOT (EOL) <eric.lebi...@normalesup.org>' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/uncertainties-3.1.1/uncertainties-py23/core.py new/uncertainties-3.1.2/uncertainties-py23/core.py --- old/uncertainties-3.1.1/uncertainties-py23/core.py 2019-05-30 19:48:32.000000000 +0200 +++ new/uncertainties-3.1.2/uncertainties-py23/core.py 2019-08-04 22:18:14.000000000 +0200 @@ -1037,13 +1037,13 @@ # parentheses. This has the side effect of making the part between # the parentheses non-breakable (the text inside parentheses in a # LaTeX math expression $...$ can be broken). - 'latex': ('\left(', r'\right)'), + 'latex': (r'\left(', r'\right)'), 'default': ('(', ')') # Basic text mode } def format_num(nom_val_main, error_main, common_exp, fmt_parts, prec, main_pres_type, options): - ''' + r''' Return a formatted number with uncertainty. Null errors (error_main) are displayed as the integer 0, with @@ -1184,10 +1184,10 @@ elif isnan(error_main): uncert_str = robust_format(error_main, main_pres_type) if 'L' in options: - uncert_str = '\mathrm{%s}' % uncert_str + uncert_str = r'\mathrm{%s}' % uncert_str elif isinf(error_main): if 'L' in options: - uncert_str = '\infty' + uncert_str = r'\infty' else: uncert_str = robust_format(error_main, main_pres_type) else: # Error with a meaningful first digit (not 0, and real number) @@ -1257,7 +1257,7 @@ if 'L' in options: if isnan(nom_val_main): - nom_val_str = '\mathrm{%s}' % nom_val_str + nom_val_str = r'\mathrm{%s}' % nom_val_str elif isinf(nom_val_main): # !! It is wasteful, in this case, to replace # nom_val_str: could this be avoided while avoiding to @@ -1395,7 +1395,7 @@ if 'L' in options: if isnan(nom_val_main): - nom_val_str = '\mathrm{%s}' % nom_val_str + nom_val_str = r'\mathrm{%s}' % nom_val_str elif isinf(nom_val_main): if nom_val_main < 0: sign_str = '-' @@ -1404,9 +1404,9 @@ nom_val_str = '%s\infty' % sign_str if isnan(error_main): - error_str = '\mathrm{%s}' % error_str + error_str = r'\mathrm{%s}' % error_str elif isinf(error_main): - error_str = '\infty' + error_str = r'\infty' if nom_has_exp: nom_val_str += exp_str @@ -1440,7 +1440,7 @@ # Unicode-compatible LaTeX source can use ±: pm_symbol = u'±' elif 'L' in options: - pm_symbol = ' \pm ' + pm_symbol = r' \pm ' else: pm_symbol = '+/-' @@ -1987,7 +1987,7 @@ # Format specification parsing: - match = re.match(''' + match = re.match(r''' (?P<fill>[^{}]??)(?P<align>[<>=^]?) # fill cannot be { or } (?P<sign>[-+ ]?) (?P<zero>0?) @@ -2962,7 +2962,7 @@ # Regexp for a number with uncertainty (e.g., "-1.234(2)e-6"), where # the uncertainty is optional (in which case the uncertainty is # implicit). The uncertainty can also be nan or NAN: -NUMBER_WITH_UNCERT_RE_STR = u''' +NUMBER_WITH_UNCERT_RE_STR = ur''' ([+-])? # Sign %s # Main number (?:\(%s\))? # Optional uncertainty @@ -2979,7 +2979,7 @@ # Number with uncertainty with a factored exponent (e.g., of the form # (... +/- ...)e10): this is a loose matching, so as to accommodate # for multiple formats: -NUMBER_WITH_UNCERT_GLOBAL_EXP_RE_MATCH = re.compile(u''' +NUMBER_WITH_UNCERT_GLOBAL_EXP_RE_MATCH = re.compile(ur''' \( (?P<simple_num_with_uncert>.*) \) @@ -3053,7 +3053,7 @@ return (value, uncert_value) # Regexp for catching the two variable parts of -1.2×10⁻¹²: -PRETTY_PRINT_MATCH = re.compile(u'(.*?)\s*×\s*10(.*)').match +PRETTY_PRINT_MATCH = re.compile(ur'(.*?)\s*×\s*10(.*)').match def to_float(value_str): ''' @@ -3130,7 +3130,7 @@ else: factor = 1 # No global exponential factor - match = re.match(u'(.*)(?:\+/-|±)(.*)', representation) + match = re.match(ur'(.*)(?:\+/-|±)(.*)', representation) if match: (nom_value, uncert) = match.groups() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/uncertainties-3.1.1/uncertainties-py23/unumpy/core.py new/uncertainties-3.1.2/uncertainties-py23/unumpy/core.py --- old/uncertainties-3.1.1/uncertainties-py23/unumpy/core.py 2019-05-30 19:48:32.000000000 +0200 +++ new/uncertainties-3.1.2/uncertainties-py23/unumpy/core.py 2019-08-04 22:18:14.000000000 +0200 @@ -14,6 +14,7 @@ # Standard modules: import sys import itertools +import inspect # 3rd-party modules: import numpy diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/uncertainties-3.1.1/uncertainties-py23/unumpy/test_unumpy.py new/uncertainties-3.1.2/uncertainties-py23/unumpy/test_unumpy.py --- old/uncertainties-3.1.1/uncertainties-py23/unumpy/test_unumpy.py 2019-05-30 19:48:32.000000000 +0200 +++ new/uncertainties-3.1.2/uncertainties-py23/unumpy/test_unumpy.py 2019-08-04 22:18:14.000000000 +0200 @@ -64,8 +64,11 @@ # Equivalent with an array of AffineScalarFunc objects: try: numpy.exp(arr + ufloat(0, 0)) - except AttributeError: - pass # ! This is usual (but could be avoided) + except (AttributeError, TypeError): + # In numpy<1.17, an AttributeError is raised in this situation. This was + # considered a bug however, and in numpy 1.17 it was changed to a + # TypeError (see PR #12700 in numpy repository) + pass else: raise Exception("numpy.exp unexpectedly worked") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/uncertainties-3.1.1/uncertainties-py27/__init__.py new/uncertainties-3.1.2/uncertainties-py27/__init__.py --- old/uncertainties-3.1.1/uncertainties-py27/__init__.py 2019-05-30 19:47:40.000000000 +0200 +++ new/uncertainties-3.1.2/uncertainties-py27/__init__.py 2019-08-04 22:12:44.000000000 +0200 @@ -225,7 +225,7 @@ from .core import __all__ # For a correct help(uncertainties) # Numerical version: -__version_info__ = (3, 1, 1) +__version_info__ = (3, 1, 2) __version__ = '.'.join(map(str, __version_info__)) __author__ = 'Eric O. LEBIGOT (EOL) <eric.lebi...@normalesup.org>' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/uncertainties-3.1.1/uncertainties-py27/core.py new/uncertainties-3.1.2/uncertainties-py27/core.py --- old/uncertainties-3.1.1/uncertainties-py27/core.py 2019-05-30 19:47:40.000000000 +0200 +++ new/uncertainties-3.1.2/uncertainties-py27/core.py 2019-08-04 22:12:44.000000000 +0200 @@ -1019,13 +1019,13 @@ # parentheses. This has the side effect of making the part between # the parentheses non-breakable (the text inside parentheses in a # LaTeX math expression $...$ can be broken). - 'latex': ('\left(', r'\right)'), + 'latex': (r'\left(', r'\right)'), 'default': ('(', ')') # Basic text mode } def format_num(nom_val_main, error_main, common_exp, fmt_parts, prec, main_pres_type, options): - ''' + r''' Return a formatted number with uncertainty. Null errors (error_main) are displayed as the integer 0, with @@ -1166,10 +1166,10 @@ elif isnan(error_main): uncert_str = robust_format(error_main, main_pres_type) if 'L' in options: - uncert_str = '\mathrm{%s}' % uncert_str + uncert_str = r'\mathrm{%s}' % uncert_str elif isinf(error_main): if 'L' in options: - uncert_str = '\infty' + uncert_str = r'\infty' else: uncert_str = robust_format(error_main, main_pres_type) else: # Error with a meaningful first digit (not 0, and real number) @@ -1239,13 +1239,13 @@ if 'L' in options: if isnan(nom_val_main): - nom_val_str = '\mathrm{%s}' % nom_val_str + nom_val_str = r'\mathrm{%s}' % nom_val_str elif isinf(nom_val_main): # !! It is wasteful, in this case, to replace # nom_val_str: could this be avoided while avoiding to # duplicate the formula for nom_val_str for the common # case (robust_format(...))? - nom_val_str = '%s\infty' % ('-' if nom_val_main < 0 else '') + nom_val_str = r'%s\infty' % ('-' if nom_val_main < 0 else '') value_str = nom_val_str+value_end @@ -1364,14 +1364,14 @@ if 'L' in options: if isnan(nom_val_main): - nom_val_str = '\mathrm{%s}' % nom_val_str + nom_val_str = r'\mathrm{%s}' % nom_val_str elif isinf(nom_val_main): - nom_val_str = '%s\infty' % ('-' if nom_val_main < 0 else '') + nom_val_str = r'%s\infty' % ('-' if nom_val_main < 0 else '') if isnan(error_main): - error_str = '\mathrm{%s}' % error_str + error_str = r'\mathrm{%s}' % error_str elif isinf(error_main): - error_str = '\infty' + error_str = r'\infty' if nom_has_exp: nom_val_str += exp_str @@ -1405,7 +1405,7 @@ # Unicode-compatible LaTeX source can use ±: pm_symbol = u'±' elif 'L' in options: - pm_symbol = ' \pm ' + pm_symbol = r' \pm ' else: pm_symbol = '+/-' @@ -1954,7 +1954,7 @@ # Format specification parsing: - match = re.match(''' + match = re.match(r''' (?P<fill>[^{}]??)(?P<align>[<>=^]?) # fill cannot be { or } (?P<sign>[-+ ]?) (?P<zero>0?) @@ -2923,7 +2923,7 @@ # Regexp for a number with uncertainty (e.g., "-1.234(2)e-6"), where # the uncertainty is optional (in which case the uncertainty is # implicit). The uncertainty can also be nan or NAN: -NUMBER_WITH_UNCERT_RE_STR = u''' +NUMBER_WITH_UNCERT_RE_STR = ur''' ([+-])? # Sign %s # Main number (?:\(%s\))? # Optional uncertainty @@ -2940,7 +2940,7 @@ # Number with uncertainty with a factored exponent (e.g., of the form # (... +/- ...)e10): this is a loose matching, so as to accommodate # for multiple formats: -NUMBER_WITH_UNCERT_GLOBAL_EXP_RE_MATCH = re.compile(u''' +NUMBER_WITH_UNCERT_GLOBAL_EXP_RE_MATCH = re.compile(ur''' \( (?P<simple_num_with_uncert>.*) \) @@ -3012,7 +3012,7 @@ return (value, uncert_value) # Regexp for catching the two variable parts of -1.2×10⁻¹²: -PRETTY_PRINT_MATCH = re.compile(u'(.*?)\s*×\s*10(.*)').match +PRETTY_PRINT_MATCH = re.compile(ur'(.*?)\s*×\s*10(.*)').match def to_float(value_str): ''' @@ -3089,7 +3089,7 @@ else: factor = 1 # No global exponential factor - match = re.match(u'(.*)(?:\+/-|±)(.*)', representation) + match = re.match(ur'(.*)(?:\+/-|±)(.*)', representation) if match: (nom_value, uncert) = match.groups() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/uncertainties-3.1.1/uncertainties-py27/unumpy/core.py new/uncertainties-3.1.2/uncertainties-py27/unumpy/core.py --- old/uncertainties-3.1.1/uncertainties-py27/unumpy/core.py 2019-05-30 19:47:40.000000000 +0200 +++ new/uncertainties-3.1.2/uncertainties-py27/unumpy/core.py 2019-08-04 22:12:44.000000000 +0200 @@ -14,6 +14,7 @@ # Standard modules: import sys import itertools +import inspect # 3rd-party modules: import numpy @@ -532,7 +533,20 @@ yield term1+term2+term3 # Default rcond argument for the generalization of numpy.linalg.pinv: -pinv_default = numpy.linalg.pinv.__defaults__[0] # Python 1, 2.6+: +# +# Most common modern case first: +try: + pinv_default = ( + inspect.signature(numpy.linalg.pinv).parameters["rcond"].default) +except AttributeError: # No inspect.signature() before Python 3.3 + try: + # In numpy 1.17+, pinv is wrapped using a decorator which unfortunately + # results in the metadata (argument defaults) being lost. However, we + # can still get at the original function using the __wrapped__ + # attribute (which is what inspect.signature() does). + pinv_default = numpy.linalg.pinv.__wrapped__.__defaults__[0] + except AttributeError: # Function not wrapped in NumPy < 1.17 + pinv_default = numpy.linalg.pinv.__defaults__[0] # Python 1, 2.6+: pinv_with_uncert = func_with_deriv_to_uncert_func(pinv_with_derivatives) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/uncertainties-3.1.1/uncertainties-py27/unumpy/test_unumpy.py new/uncertainties-3.1.2/uncertainties-py27/unumpy/test_unumpy.py --- old/uncertainties-3.1.1/uncertainties-py27/unumpy/test_unumpy.py 2019-05-30 19:47:40.000000000 +0200 +++ new/uncertainties-3.1.2/uncertainties-py27/unumpy/test_unumpy.py 2019-08-04 22:12:44.000000000 +0200 @@ -62,8 +62,11 @@ # Equivalent with an array of AffineScalarFunc objects: try: numpy.exp(arr + ufloat(0, 0)) - except AttributeError: - pass # ! This is usual (but could be avoided) + except (AttributeError, TypeError): + # In numpy<1.17, an AttributeError is raised in this situation. This was + # considered a bug however, and in numpy 1.17 it was changed to a + # TypeError (see PR #12700 in numpy repository) + pass else: raise Exception("numpy.exp unexpectedly worked") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/uncertainties-3.1.1/uncertainties.egg-info/PKG-INFO new/uncertainties-3.1.2/uncertainties.egg-info/PKG-INFO --- old/uncertainties-3.1.1/uncertainties.egg-info/PKG-INFO 2019-05-30 20:02:28.000000000 +0200 +++ new/uncertainties-3.1.2/uncertainties.egg-info/PKG-INFO 2019-08-05 09:52:54.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: uncertainties -Version: 3.1.1 +Version: 3.1.2 Summary: Transparent calculations with uncertainties on the quantities involved (aka error propagation); fast calculation of derivatives Home-page: http://uncertainties-python-package.readthedocs.io/ Author: Eric O. LEBIGOT (EOL) @@ -108,6 +108,7 @@ Main changes: + - 3.1.2: Partial fix for NumPy 1.17 and `unumpy.ulinalg.pinv()`. - 3.1: Variables built through a correlation or covariance matrix, and that have uncertainties that span many orders of magnitude are now calculated more accurately (improved ``correlated_values()`` and