MCPcopy Create free account
hub / github.com/numpy/numpy / __init__

Method __init__

numpy/f2py/tests/test_array_from_pyobj.py:268–353  ·  view source on GitHub ↗
(self, typ, dims, intent, obj)

Source from the content-addressed store, hash-verified

266 f' {self.obj})|arr={self.arr}')
267
268 def __init__(self, typ, dims, intent, obj):
269 self.type = typ
270 self.dims = dims
271 self.intent = intent
272 self.obj_copy = copy.deepcopy(obj)
273 self.obj = obj
274
275 # arr.dtypechar may be different from typ.dtypechar
276 self.arr = wrap.call(typ.type_num,
277 typ.elsize,
278 dims, intent.flags, obj)
279
280 assert isinstance(self.arr, np.ndarray)
281
282 self.arr_attr = wrap.array_attrs(self.arr)
283
284 if len(dims) > 1:
285 if self.intent.is_intent("c"):
286 assert (intent.flags & wrap.F2PY_INTENT_C)
287 assert not self.arr.flags["FORTRAN"]
288 assert self.arr.flags["CONTIGUOUS"]
289 assert (not self.arr_attr[6] & wrap.FORTRAN)
290 else:
291 assert (not intent.flags & wrap.F2PY_INTENT_C)
292 assert self.arr.flags["FORTRAN"]
293 assert not self.arr.flags["CONTIGUOUS"]
294 assert (self.arr_attr[6] & wrap.FORTRAN)
295
296 if obj is None:
297 self.pyarr = None
298 self.pyarr_attr = None
299 return
300
301 if intent.is_intent("cache"):
302 assert isinstance(obj, np.ndarray), repr(type(obj))
303 self.pyarr = np.array(obj).reshape(*dims).copy()
304 else:
305 self.pyarr = np.array(
306 np.array(obj, dtype=typ.dtypechar).reshape(*dims),
307 order=self.intent.is_intent("c") and "C" or "F",
308 )
309 assert self.pyarr.dtype == typ
310 self.pyarr.setflags(write=self.arr.flags["WRITEABLE"])
311 assert self.pyarr.flags["OWNDATA"], (obj, intent)
312 self.pyarr_attr = wrap.array_attrs(self.pyarr)
313
314 if len(dims) > 1:
315 if self.intent.is_intent("c"):
316 assert not self.pyarr.flags["FORTRAN"]
317 assert self.pyarr.flags["CONTIGUOUS"]
318 assert (not self.pyarr_attr[6] & wrap.FORTRAN)
319 else:
320 assert self.pyarr.flags["FORTRAN"]
321 assert not self.pyarr.flags["CONTIGUOUS"]
322 assert (self.pyarr_attr[6] & wrap.FORTRAN)
323
324 assert self.arr_attr[1] == self.pyarr_attr[1] # nd
325 assert self.arr_attr[2] == self.pyarr_attr[2] # dimensions

Callers

nothing calls this directly

Calls 8

arr_equalMethod · 0.95
has_shared_memoryMethod · 0.95
flags2namesFunction · 0.85
TypeClass · 0.85
is_intentMethod · 0.80
reshapeMethod · 0.80
copyMethod · 0.45
tobytesMethod · 0.45

Tested by

no test coverage detected