Blob Blame History Raw
From a577b00c49691ed9549e9d20a95583ea2231b89e Mon Sep 17 00:00:00 2001
From: "Ankur Sinha (Ankur Sinha Gmail)" <sanjay.ankur@gmail.com>
Date: Wed, 29 Dec 2021 19:15:55 +0000
Subject: [PATCH 2/2] fix: correct sized import

---
 pyNN/parameters.py | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/pyNN/parameters.py b/pyNN/parameters.py
index a7d06b11..627cd439 100644
--- a/pyNN/parameters.py
+++ b/pyNN/parameters.py
@@ -6,7 +6,10 @@ Parameter set handling
 """
 
 import numpy as np
-import collections
+try:
+    from collections import Sized
+except ImportError:
+    from collections.abc import Sized
 from pyNN.core import is_listlike
 from pyNN import errors
 from pyNN.random import RandomDistribution, NativeRNG
@@ -296,11 +299,11 @@ class ParameterSpace(object):
                     raise errors.NonExistentParameterError(name,
                                                            model_name,
                                                            valid_parameter_names=self.schema.keys())
-                if issubclass(expected_dtype, ArrayParameter) and isinstance(value, collections.Sized):
+                if issubclass(expected_dtype, ArrayParameter) and isinstance(value, Sized):
                     if len(value) == 0:
                         value = ArrayParameter([])
                     elif not isinstance(value[0], ArrayParameter):  # may be a more generic way to do it, but for now this special-casing seems like the most robust approach
-                        if isinstance(value[0], collections.Sized):  # e.g. list of tuples
+                        if isinstance(value[0], Sized):  # e.g. list of tuples
                             value = type(value)([ArrayParameter(x) for x in value])
                         else:
                             value = ArrayParameter(value)
-- 
2.33.1