1
- from .core import (
2
- MatlabType ,
3
- WrappedArray ,
4
- DelayedCell ,
5
- AnyDelayedArray ,
6
- _ListMixin ,
7
- )
8
- from .utils import (
9
- _empty_array ,
10
- _copy_if_needed ,
11
- _import_matlab ,
12
- _matlab_array_types
13
- )
14
- global matlab
15
-
16
1
import numpy as np
17
2
3
+ from .core import AnyDelayedArray , DelayedCell , MatlabType , WrappedArray , _ListMixin
4
+ from .utils import _copy_if_needed , _empty_array , _import_matlab , _matlab_array_types
5
+
6
+ global matlab
7
+
18
8
19
9
class Cell (_ListMixin , WrappedArray ):
20
10
"""
@@ -77,8 +67,7 @@ class Cell(_ListMixin, WrappedArray):
77
67
def _DEFAULT (cls , shape : list = ()) -> np .ndarray :
78
68
data = np .empty (shape , dtype = object )
79
69
opt = dict (
80
- flags = ['refs_ok' , 'zerosize_ok' ],
81
- op_flags = ['writeonly' , 'no_broadcast' ]
70
+ flags = ["refs_ok" , "zerosize_ok" ], op_flags = ["writeonly" , "no_broadcast" ]
82
71
)
83
72
with np .nditer (data , ** opt ) as iter :
84
73
for elem in iter :
@@ -87,8 +76,9 @@ def _DEFAULT(cls, shape: list = ()) -> np.ndarray:
87
76
88
77
def _fill_default (self ):
89
78
arr = np .ndarray .view (self , np .ndarray )
90
- opt = dict (flags = ['refs_ok' , 'zerosize_ok' ],
91
- op_flags = ['writeonly' , 'no_broadcast' ])
79
+ opt = dict (
80
+ flags = ["refs_ok" , "zerosize_ok" ], op_flags = ["writeonly" , "no_broadcast" ]
81
+ )
92
82
with np .nditer (arr , ** opt ) as iter :
93
83
for elem in iter :
94
84
elem [()] = _empty_array ()
@@ -113,37 +103,36 @@ def _as_runtime(self) -> dict:
113
103
data = np .ndarray .view (self , np .ndarray )
114
104
data = np .reshape (data , [- 1 ], order = "F" ).tolist ()
115
105
data = MatlabType ._to_runtime (data )
116
- return dict (type__ = ' cell' , size__ = size , data__ = data )
106
+ return dict (type__ = " cell" , size__ = size , data__ = data )
117
107
118
108
@classmethod
119
109
def _from_runtime (cls , objdict : dict ) -> "Cell" :
120
110
if isinstance (objdict , (list , tuple , set )):
121
111
shape = [len (objdict )]
122
- objdict = dict (type__ = ' cell' , size__ = shape , data__ = objdict )
112
+ objdict = dict (type__ = " cell" , size__ = shape , data__ = objdict )
123
113
124
- if objdict [' type__' ] != ' cell' :
125
- raise TypeError (' objdict is not a cell' )
114
+ if objdict [" type__" ] != " cell" :
115
+ raise TypeError (" objdict is not a cell" )
126
116
127
- size = np .array (objdict [' size__' ], dtype = np .uint64 ).ravel ()
117
+ size = np .array (objdict [" size__" ], dtype = np .uint64 ).ravel ()
128
118
if len (size ) == 2 and size [0 ] == 1 :
129
119
# NOTE: should not be needed for Cell, as this should
130
120
# have been taken care of by MPython, but I am keeping it
131
121
# here for symmetry with Array and Struct.
132
122
size = size [1 :]
133
- data = np .fromiter (objdict [' data__' ], dtype = object )
123
+ data = np .fromiter (objdict [" data__" ], dtype = object )
134
124
data = data .reshape (size [::- 1 ]).transpose ()
135
125
try :
136
126
obj = data .view (cls )
137
127
except Exception :
138
128
raise RuntimeError (
139
- f'Failed to construct Cell data:\n '
140
- f' data={ data } \n '
141
- f' objdict={ objdict } '
129
+ f"Failed to construct Cell data:\n data={ data } \n objdict={ objdict } "
142
130
)
143
131
144
132
# recurse
145
- opt = dict (flags = ['refs_ok' , 'zerosize_ok' ],
146
- op_flags = ['readwrite' , 'no_broadcast' ])
133
+ opt = dict (
134
+ flags = ["refs_ok" , "zerosize_ok" ], op_flags = ["readwrite" , "no_broadcast" ]
135
+ )
147
136
with np .nditer (data , ** opt ) as iter :
148
137
for elem in iter :
149
138
elem [()] = MatlabType ._from_runtime (elem .item ())
@@ -276,8 +265,9 @@ def asrecursive(other):
276
265
other [...] = tmp
277
266
278
267
# recurse
279
- opt = dict (flags = ['refs_ok' , 'zerosize_ok' ],
280
- op_flags = ['readwrite' , 'no_broadcast' ])
268
+ opt = dict (
269
+ flags = ["refs_ok" , "zerosize_ok" ], op_flags = ["readwrite" , "no_broadcast" ]
270
+ )
281
271
with np .nditer (other , ** opt ) as iter :
282
272
for elem in iter :
283
273
elem [()] = MatlabType .from_any (elem .item ())
@@ -295,8 +285,9 @@ def _unroll_build(cls, arr):
295
285
# them to lists, and recurse.
296
286
rebuild = False
297
287
arr = np .asarray (arr )
298
- opt = dict (flags = ['refs_ok' , 'zerosize_ok' ],
299
- op_flags = ['readwrite' , 'no_broadcast' ])
288
+ opt = dict (
289
+ flags = ["refs_ok" , "zerosize_ok" ], op_flags = ["readwrite" , "no_broadcast" ]
290
+ )
300
291
with np .nditer (arr , ** opt ) as iter :
301
292
for elem in iter :
302
293
item = elem .item ()
0 commit comments