TST: Some fixes & refactoring around glibc-dependent skips in test_umath.py#20274
TST: Some fixes & refactoring around glibc-dependent skips in test_umath.py#20274charris merged 4 commits intonumpy:mainfrom
Conversation
this anticipates reuse of this boolean within the test module
I decided to fix this, because the correct inclusion/exclusion was actually off for the glibc-version in manylinux 2014. |
| glibcver != '0.0' and glibcver < '2.17', | ||
| reason="Older glibc versions may not raise appropriate FP exceptions") | ||
| glibc_older_than = lambda x: (glibcver != '0.0' and glibcver < x) | ||
|
|
There was a problem hiding this comment.
The use of alphabetical order works, but it bothers me :)
There was a problem hiding this comment.
I tend to agree, but then, it was this way before already, and I didn't want to overengineer something for 3 tests...
What would you prefer? Comparing tuples? Using something like distutils.version.LooseVersion?
| x_basic = np.logspace(-2.999, 0, 10, endpoint=False) | ||
|
|
||
| if dtype is np.longcomplex: | ||
| if glibc_older_than("2.19") and dtype is np.longcomplex: |
There was a problem hiding this comment.
Not sure what that would do? If it's older than 2.18, ít's definitely older than 2.19?
There was a problem hiding this comment.
I was looking at the older comment that it was OK for glibc > 2.17.
There was a problem hiding this comment.
skip_longcomplex_msg = ('Trig functions of np.longcomplex values known to be '
'inaccurate on aarch64 for some compilation '
'configurations, should be fixed by building on a '
'platform using glibc>2.17')
There was a problem hiding this comment.
For the if-branches here, the pertinent part (being deleted) is:
# Can use 2.1 for > Ubuntu LTS Trusty (2014), glibc = 2.19.
if skip_longcomplex_msg:
pytest.skip(skip_longcomplex_msg)
I take from this comment that anything from glibc 2.19 onwards should be fine to take the else-clause (with the 2.1*eps). I cannot very (easily or quickly) how far back in terms of glibc-versions things would work, so I didn't try to change the version-boundaries as stated (or commented) in the code.
There was a problem hiding this comment.
[...] should be fixed by building on a platform using glibc>2.17'
Right, I couldn't evaluate that corner case (2.18), so I went with the conservative choice, of still running the check (resp. the looser tolerance) with 2.18.
Before the last commit, I actually had this as glibc_older_than_2_17, but then realized that this would do the wrong thing (due to glibc > 2.17) for manylinux 2014.
There was a problem hiding this comment.
OK, probably not worth worrying about. Manylinux2014 itself is getting towards end of life.
|
Thanks a lot for taking the time to review @charris! :) |
|
Thanks @h-vetinari . |
commit 30228578ac65ec6b90961700a5783c23d8e1b879
Author: Thomas Li <47963215+lithomas1@users.noreply.github.com>
Date: Wed Nov 17 16:21:27 2021 -0800
Add Windows config to GHA
update script [wheel build]
typo [wheel build]
fix typo? [wheel build]
fix linux builds? [wheel build]
typo [wheel build]
add license and pin to windows 2016
skip tests [wheel build]
pin to windows 2019 instead [wheel build]
try to find out the error on windows [wheel build]
maybe fix? [wheel build]
maybe fix? [wheel build]
fix? [wheel build]
cleanup [wheel build]
Add Windows config to GHA
update script [wheel build]
typo [wheel build]
fix typo? [wheel build]
fix linux builds? [wheel build]
typo [wheel build]
add license and pin to windows 2016
skip tests [wheel build]
pin to windows 2019 instead [wheel build]
try to find out the error on windows [wheel build]
maybe fix? [wheel build]
maybe fix? [wheel build]
fix? [wheel build]
cleanup [wheel build]
Add Windows config to GHA
update script [wheel build]
typo [wheel build]
fix typo? [wheel build]
fix linux builds? [wheel build]
typo [wheel build]
add license and pin to windows 2016
skip tests [wheel build]
pin to windows 2019 instead [wheel build]
try to find out the error on windows [wheel build]
maybe fix? [wheel build]
maybe fix? [wheel build]
fix? [wheel build]
cleanup [wheel build]
Update LICENSE_win32.txt
Update LICENSE_win32.txt
Add Windows config to GHA
update script [wheel build]
typo [wheel build]
fix typo? [wheel build]
fix linux builds? [wheel build]
typo [wheel build]
add license and pin to windows 2016
skip tests [wheel build]
pin to windows 2019 instead [wheel build]
try to find out the error on windows [wheel build]
maybe fix? [wheel build]
maybe fix? [wheel build]
fix? [wheel build]
cleanup [wheel build]
Update LICENSE_win32.txt
Update LICENSE_win32.txt
Add Windows config to GHA
update script [wheel build]
typo [wheel build]
fix typo? [wheel build]
fix linux builds? [wheel build]
typo [wheel build]
add license and pin to windows 2016
skip tests [wheel build]
pin to windows 2019 instead [wheel build]
try to find out the error on windows [wheel build]
maybe fix? [wheel build]
maybe fix? [wheel build]
fix? [wheel build]
cleanup [wheel build]
Add Windows config to GHA
update script [wheel build]
typo [wheel build]
fix typo? [wheel build]
fix linux builds? [wheel build]
typo [wheel build]
add license and pin to windows 2016
skip tests [wheel build]
pin to windows 2019 instead [wheel build]
try to find out the error on windows [wheel build]
maybe fix? [wheel build]
maybe fix? [wheel build]
fix? [wheel build]
cleanup [wheel build]
Update LICENSE_win32.txt
Update LICENSE_win32.txt
Add Windows config to GHA
update script [wheel build]
typo [wheel build]
fix typo? [wheel build]
fix linux builds? [wheel build]
typo [wheel build]
add license and pin to windows 2016
skip tests [wheel build]
pin to windows 2019 instead [wheel build]
try to find out the error on windows [wheel build]
maybe fix? [wheel build]
maybe fix? [wheel build]
fix? [wheel build]
cleanup [wheel build]
Update LICENSE_win32.txt
Update LICENSE_win32.txt
commit 4bd12df
Author: Thomas Li <47963215+lithomas1@users.noreply.github.com>
Date: Mon Nov 15 17:28:47 2021 -0800
# This is a combination of 14 commits.
# This is the 1st commit message:
Add Windows config to GHA
# This is the commit message numpy#2:
update script [wheel build]
# This is the commit message numpy#3:
typo [wheel build]
# This is the commit message numpy#4:
fix typo? [wheel build]
# This is the commit message numpy#5:
fix linux builds? [wheel build]
# This is the commit message numpy#6:
typo [wheel build]
# This is the commit message numpy#7:
add license and pin to windows 2016
# This is the commit message numpy#8:
skip tests [wheel build]
# This is the commit message numpy#9:
pin to windows 2019 instead [wheel build]
# This is the commit message numpy#10:
try to find out the error on windows [wheel build]
# This is the commit message numpy#11:
maybe fix? [wheel build]
# This is the commit message numpy#12:
maybe fix? [wheel build]
# This is the commit message numpy#13:
fix? [wheel build]
# This is the commit message numpy#14:
cleanup [wheel build]
commit 444a721
Merge: 376ad69 22448b4
Author: Charles Harris <charlesr.harris@gmail.com>
Date: Mon Nov 15 17:47:23 2021 -0700
Merge pull request numpy#20274 from h-vetinari/fix_15179
TST: Some fixes & refactoring around glibc-dependent skips in test_umath.py
commit 376ad69
Merge: b75fe57 546c47a
Author: Charles Harris <charlesr.harris@gmail.com>
Date: Mon Nov 15 17:31:41 2021 -0700
Merge pull request numpy#20327 from seberg/rename-interpolation
BUG,DEP: Fixup quantile/percentile and rename interpolation->method
commit 546c47a
Author: Sebastian Berg <sebastian@sipsolutions.net>
Date: Mon Nov 15 16:13:50 2021 -0600
DOC: Fixups for interpolation rename comments from review
Co-authored-by: Charles Harris <charlesr.harris@gmail.com>
commit b75fe57
Merge: 7310c09 cbc25d2
Author: Warren Weckesser <warren.weckesser@gmail.com>
Date: Mon Nov 15 17:27:08 2021 -0500
Merge pull request numpy#20369 from bilderbuchi/missing_diagnostics_newlines
MAINT: Fix newlines in diagnostics output of numpy.f2py.
commit cbc25d2
Author: Christoph Buchner <bilderbuchi@phononoia.at>
Date: Sun Nov 14 08:36:03 2021 +0100
MAINT: Fix newlines in diagnostics output of numpy.f2py.
Linebreaks were not consistently added to errmess/outmess
arguments, which led to very long lines and wrong
concatenation with compiler messages in f2py console output.
commit be15716
Author: Sebastian Berg <sebastian@sipsolutions.net>
Date: Fri Nov 12 12:10:20 2021 -0600
DOC: Add release not for quantile `interpolation` rename
Also updates the old release note to include the info (and generally
tweaks it a bit)
commit 7d8a8e7
Author: Sebastian Berg <sebastian@sipsolutions.net>
Date: Fri Nov 12 11:57:22 2021 -0600
DOC: Update percentile/quantile docs
Mainly fixes the method list slightly, tones down the warning a
bit and fixes the link to the paper (I did not realize that the
link failed to work due only because the reference was missing
from nanquantile/nanpercentile).
commit 5bd71fb
Author: Sebastian Berg <sebastian@sipsolutions.net>
Date: Tue Nov 9 09:48:59 2021 -0600
DOC: Add ticks to quantile interpolation/method error
Co-authored-by: abel <aoun@cerfacs.fr>
commit 0d5fb81
Author: Sebastian Berg <sebastian@sipsolutions.net>
Date: Mon Nov 8 20:39:50 2021 -0600
DOC: Remove reference to paper from quantile `method` kwarg
Apparently, sphinx does not resolve references to footnotes from
parameter descriptions.
commit 8437663
Author: Sebastian Berg <sebastian@sipsolutions.net>
Date: Mon Nov 8 18:25:37 2021 -0600
MAINT: Rename interpolation to method in percentile stubs
commit 8cfb6b5
Author: Sebastian Berg <sebastian@sipsolutions.net>
Date: Mon Nov 8 16:47:27 2021 -0600
TST: Add deprecation testcase for quantile interpolation rename
commit a5ac5a5
Author: Sebastian Berg <sebastian@sipsolutions.net>
Date: Mon Nov 8 16:41:24 2021 -0600
DOC: Fixup the percentile methods plot
commit 85f3dda
Author: Sebastian Berg <sebastian@sipsolutions.net>
Date: Mon Nov 8 16:37:41 2021 -0600
BUG: quantile discrete methods ended up using -1 as index sometimes
Also, the closest-observation did not correctly support multiple
quantiles calculated at the same time (broadcasting error).
commit 3993408
Author: Sebastian Berg <sebastian@sipsolutions.net>
Date: Mon Nov 8 15:38:30 2021 -0600
API,DEP: Rename percentile/quantile `interpolation=` to `method=`
commit 22448b4
Author: H. Vetinari <h.vetinari@gmx.com>
Date: Tue Nov 2 16:51:59 2021 +1100
TST: parametrize glibc-version check in test_umath.py
commit 12923c2
Author: H. Vetinari <h.vetinari@gmx.com>
Date: Tue Nov 2 14:21:01 2021 +1100
TST: skip coverage of large elements in sincos_float32 for ancient glibc
Fixes numpy#15179
commit 56268d5
Author: H. Vetinari <h.vetinari@gmx.com>
Date: Tue Nov 2 14:19:24 2021 +1100
TST: use existence of glibc-version to clean up a test
commit 01443e8
Author: H. Vetinari <h.vetinari@gmx.com>
Date: Tue Nov 2 14:18:52 2021 +1100
TST: turn glibc_older_than_2.17 into boolean instead of xfail
this anticipates reuse of this boolean within the test module
This is a partial reversion of numpy#20274. My guess is that `glibc_older_than("2.19")` is not working correctly on manylinux2014 on aarch64. Closes numpy#20426.
This is a partial reversion of numpy#20274. My guess is that `glibc_older_than("2.19")` is not working correctly on manylinux2014 on aarch64. Closes numpy#20426.
- test_sincos_float32 taken care of in numpy/numpy#20274 - TestF77Mismatch removed upstream in numpy/numpy#20457 - test_unary_PyUFunc_O_O_method_full fixed in 1.22 (numpy/numpy#19926)
I was looking at the test skips in the numpy feedstock by chance, and thought of fixing #15179, now that there's a glibc-version check that was introduced in #19209.
First step is taking that check and turning it into a reusable boolean. The second commit applies that also to a different glibc-relevant test
(though, strictly speaking, it's left open in 8b2b7a2 whether this also works for 2.17 & 2.18 - I can parametrize the check of course, but not sure that's worth the effort?)Finally, applying the fix suggested by @r-devulap (which has been tested in a conda-forge PR to work) conditionally on the glibc-version, so that the test in the numpy-feedstock can be switched on unconditionally.
Fixes #15179