Skip to content

Commit 43b3f2a

Browse files
crazyengRaj Balaebail
authored andcommitted
array might have been a generator
1 parent 52c9c95 commit 43b3f2a

1 file changed

Lines changed: 8 additions & 4 deletions

File tree

wolframclient/language/array.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
from __future__ import absolute_import, print_function, unicode_literals
22

33
import struct
4+
from functools import reduce
5+
from operator import mul
46

57
from wolframclient.exception import WolframLanguageException
68
from wolframclient.serializers.wxfencoder import constants
@@ -12,6 +14,10 @@
1214
from collections import Sequence
1315

1416

17+
def pack(format, *elements):
18+
return struct.pack(b"<%i%s" % (len(elements), force_bytes(format)), *elements)
19+
20+
1521
class NumericArray(Sequence):
1622
def __init__(self, array, type, shape=None):
1723

@@ -29,15 +35,13 @@ def _valid_type_or_fail(self, type):
2935
return type
3036

3137
def tobytes(self):
32-
return struct.pack(
33-
b"<%i%s" % (len(self), force_bytes(self.struct.format[1])), *self.array
34-
)
38+
return pack(self.struct.format[1], *self.array)
3539

3640
def __getitem__(self, k):
3741
return self.array[k]
3842

3943
def __len__(self):
40-
return len(self.array)
44+
return reduce(mul, self.shape, 1)
4145

4246

4347
class PackedArray(NumericArray):

0 commit comments

Comments
 (0)