holoviz / datashader

Quickly and accurately render even the largest data.
http://datashader.org
BSD 3-Clause "New" or "Revised" License
3.31k stars 366 forks source link

Do not pass masked arrays to numba #1205

Closed ianthomas23 closed 1 year ago

ianthomas23 commented 1 year ago

This is a WIP to support numba 0.57. We can no longer pass masked arrays to numba, but that is OK as we handle the masks separately anyway.

There is a separate problem that occurs on macOS but not linux, that I am still investigating.

codecov[bot] commented 1 year ago

Codecov Report

Merging #1205 (8b7a2a4) into main (80d1ccf) will decrease coverage by 0.08%. The diff coverage is 75.00%.

@@            Coverage Diff             @@
##             main    #1205      +/-   ##
==========================================
- Coverage   84.70%   84.63%   -0.08%     
==========================================
  Files          35       35              
  Lines        8357     8354       -3     
==========================================
- Hits         7079     7070       -9     
- Misses       1278     1284       +6     
Impacted Files Coverage Δ
datashader/core.py 88.25% <ø> (-0.13%) :arrow_down:
datashader/glyphs/glyph.py 81.72% <50.00%> (ø)
datashader/resampling.py 82.09% <100.00%> (-1.03%) :arrow_down:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

ianthomas23 commented 1 year ago

There is a warning

  <snip>/site-packages/numba/np/ufunc/dufunc.py:84: NumbaDeprecationWarning: The 'nopython' keyword argument was not supplied to the 'numba.jit' decorator. The implicit default value for this argument is currently False, but it will be changed to True in Numba 0.59.0. See https://numba.readthedocs.io/en/stable/reference/deprecation.html#deprecation-of-object-mode-fall-back-behaviour-when-using-jit for details.
    dispatcher = jit(_target='npyufunc',

which can be ignored as it was fixed in https://github.com/numba/numba/pull/8909 and the fix will be included in the numba 0.57 release.

ianthomas23 commented 1 year ago

I am happy with this now, all tests are passing with new numba 0.57, numpy 1.24 and python 3.11 as well as previous versions of all 3. The CI failures are on codecov which is the usual inability to determine coverage of numba code.

The only change that could be removed is downloading packages from the numba conda channel; I will remove this in a separate PR when numba 0.57 is available on conda-forge.