Blosc/python-blosc2

Array API compliance

Open

#466 opened on Sep 10, 2025

View on GitHub
 (1 comment) (0 reactions) (0 assignees)Python (47 forks)auto 404
enhancementhelp wanted

Repository metrics

Stars
 (207 stars)
PR merge metrics
 (PR metrics pending)

Description

The following is a summary of the failing tests in the array-api-tests suite. When you have managed to make the test pass, mark the box next to the file.

There are three main groups of tests: 1 - lazy expression and chunking related things (unique_counts, cumulative_sum etc.) 2 - indexing related things (chiefly implement fancy indexing for .slice method) 3 - improving numexpr (add op_codes such as ge_bcd etc.)

  • test_utility_functions.py : add blosc2.diff function, squeeze needs to be modified to return a view (at C-level, follow expand_dims)
  • test_statistical_functions.py : add cumulative_sum and cumulative_prod
  • test_special_cases.py: everything
  • test_sorting_functions.py: add argsort
  • test_signatures.py : everything
  • test_set_functions.py: add unique_counts, unique_inverse, unique_all, unique_values
  • test_searching_functions.py: add argmax, argmin, where attribute to NDArray, nonzero, count_nonzero
  • test_operators_and_elementwise_functions.py: everything
  • test_manipulation_functions.py: SERIOUS (Fatal Python error: Floating-point exception)
  • test_linalg.py: haven't implemented most things (see #476), which is fine, but some tests also fail because numexpr needs a ge_bcd opcode.
  • test_inspection_functions: passes all
  • test_indexing_functions.py: need to improvetake and take_along_axis (latter fails tests)
  • test_has_names : fails 23 tests, need to add functions listed in comment below
  • test_fft.py: skips all tests
  • test_data_type_functions.py: a few different things (11 tests), add broadcast_arrays
  • test_creation_functions.py: add reshape for N-D arrays.
  • test_constants.py: passes all
  • test_array_object.py: one test takes too long for some reason sometimes

In addition, it would be nice to revamp the documentation to mirror the array API layout and classification of functions/classes/methods etc.

In order to run the tests, follow these steps:

  1. Git clone array-api test suite https://github.com/data-apis/array-api-tests
  2. Navigate to array-api-tests and $ pip install -r requirements.txt into environment.
  3. Return to home directory, git clone blosc2, navigate to resulting directory and pip install -e . in your environment.
  4. Run tests from python-blosc2 directory via ARRAY_API_TESTS_MODULE=blosc2 pytest ../array-api-tests/array_api_tests/test_has_names.py

Contributor guide