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