Week 8 Check-in

Published: 07/29/2020

What did you do this week?

This week I started a new PR that adds multimethods for indexing routines. The multimethods added so far are the following:

Genenating index arrays

  • indices
  • ix_
  • ravel_multi_index
  • unravel_index
  • diag_indices
  • diag_indices_from
  • mask_indices
  • tril_indices
  • tril_indices_from
  • triu_indices
  • triu_indices_from

I also finished the two PRs from the previous week, one that adds multimethods for mathematical functions and another for functional programming routines. As mentioned in my last blog post, this week I also managed to merge another PR that picks up on work previously done by one of my mentors. This PR extended the overriding of classes to other backends, more specifically, to Dask and Sparse.

What is coming up next?

I will continue the PR started this week by adding more multimethods that target indexing routines. This should be mostly writing default implementations for the new multimethods. Depending on how this goes I might also start a new PR that picks up on work previously started by one of my mentors on adding multimethods for NumPy's random module.

Did you get stuck anywhere?

There were no blocks this week, only one test that I could not understand why it was failing. Turns out that uarray, the backend mechanism behind unumpy, was calling the default implementations after these failed in a given backend with the arguments previously marked for dispatching not being coerced into array types. This was fixed on the uarray side by one of my mentors by skipping this last call to the defaults under certain conditions.