Import of collections.Hashable fails in Python 3.10

Author: PTrieboldCreated Oct 19, 2022Updated Feb 27, 2025

System information

  • OS Platform and Distribution (e.g., Linux Ubuntu 16.04): macOS 12.6
  • Python version: 3.10.7
  • NumPy version: 1.23.3

Describe the current behavior import of numpy_ml fails due to an ImportError with the collections module.

Describe the expected behavior Importing just the module should not generate an ImportError

Code to reproduce the issue

# Python 3.10 or newer
import numpy_ml

Other info / logs In Python 3.10 the deprecated aliases were removed.

Remove deprecated aliases to Collections Abstract Base Classes from the collections module. (Contributed by Victor Stinner in bpo-37324.)

from What’s New In Python 3.10

fix To fix the bug, in /numpy_ml/utils/data_structures.py change

from collections import Hashable

to

from collections.abc import Hashable