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 <[email protected]>
+
+- 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='[email protected]',
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) <[email protected]>'
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) <[email protected]>'
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