Ë
    ímxiæ£  ã                   óÌ  — d Z ddlZddlZddlZddlmZ ddlZddlZddl	m
Z
 ddlmZmZmZmZmZmZmZ ddlmZ ej*                  ej,                  ej.                  ej0                  ej2                  ej4                  ej6                  ej8                  ej:                  ej<                  ej>                  ej@                  e!gZ"g Z#e"D ]È  Z$dD ]Á  Z% ejL                  e$«      jO                  e%«      Z& ejP                  d«      jS                  e&«      Z*e#jW                   ejX                  g e&¬	«       ejX                  d
e&¬	«      e*e*j[                  d«      e*j[                  d«      j\                  e*j[                  d«      ddd…ddd…f   g«       ŒÃ ŒÊ g d¢Z/ddgddgddggdfddgddgddggdfgZ0dddddg d¢fddgfdd d!d"gfd#d$gZ1ddgd%dd&d%d'gddgd(dgfd)d*fd+d,ddgddggdfddgd-dd.d-d/gddgdd(gfd0d1fd2d3ddgddggdfgZ2 ejX                  e0 ejL                  e/«      jO                  d4«      ¬	«       ejX                  e2 ejL                  e1«      jO                  d4«      ¬	«       ejX                  e0 ejL                  e/«      jO                  d5«      ¬	«       ejX                  e2 ejL                  e1«      jO                  d5«      ¬	«       ejf                  d(d6g¬	«      gZ4 G d7„ d8e«      Z5d9„ Z6d:„ Z7d;„ Z8d<„ Z9d=„ Z:d>„ Z;d?„ Z<d@„ Z=dA„ Z>ej~                  j�                  edB¬C«      ej~                  j‚                  dD„ «       «       ZBdE„ ZC ejL                  dFd*¬G«      ZD ejL                  dHdIgdJdJgd(dKgdLœ«      ZE ejL                  dMdNgdJeEgdOœ«      ZF ejL                  g dP¢dJgdz  dOœ«      ZG ejL                  dHdIgdJdJgd(dKgdQdRgdSœ«      ZH ejL                  g g ddTœ«      ZIej~                  j•                  dUeDeEeFeGeHeIg«      dV„ «       ZKej~                  j�                  ej˜                  dWk\  dX¬C«      ej~                  j›                  edY¬C«      dZ„ «       «       ZNej~                  jŸ                  d[«      d\„ «       ZPd]„ ZQej~                  j•                  dU ejL                  dHej,                  fdIej0                  fdMej4                  fgd*¬G«       ejL                  d^ ejL                  dHdIgd_d_gddgdd`œdaf«      dbfg«       ejL                  dcg«       ejL                  d^ ejL                   ejL                   ejL                  dHdIgd_d_gddgdd`œ«      daf«      dbf«      fg«       ejL                  dH ejL                   ejL                   ejL                   ejL                  dHeRfdI ejL                  dHdIgd_d_gddgdd`œ«      fg«      daf«      dbf«      ddf«      fg«      g«      de„ «       ZSdf„ ZTej~                  j�                  edB¬C«      dg„ «       ZUej~                  j•                  dhdidg«      dj„ «       ZVdk„ ZWdl„ ZXg dm¢ZYg dn¢ZZdo„ Z[dp„ Z\dq„ Z]dr„ Z^ds„ Z_dt„ Z`du„ Zadv„ Zbdw„ Zcej~                  j�                  edx¬C«      ej~                  j�                  e dy¬C«      ej~                  j‚                   edz¬{«      ej~                  jÉ                  d|¬C«      d}„ «       «       «       «       «       Zed~„ Zfd„ Zgd€„ Zhej~                  j•                  dU ejL                  dHdIgei ejL                  d�d‚dƒi¬„«      gdOœ«       ejL                  eRd‚dƒi¬„«       ejL                  d…eRd†ffgd‚dƒi¬„«       ejL                  dHdIgei ejL                  dMg ejL                  eRi ¬„«      gdOœ«      gdOœ«      g«      ej~                  j�                  exr ejÔ                  jÖ                  d‡k  dˆ¬C«      d‰„ «       «       Zly)Ša¹D   Test the .npy file format.

Set up:

    >>> import sys
    >>> from io import BytesIO
    >>> from numpy.lib import format
    >>>
    >>> scalars = [
    ...     np.uint8,
    ...     np.int8,
    ...     np.uint16,
    ...     np.int16,
    ...     np.uint32,
    ...     np.int32,
    ...     np.uint64,
    ...     np.int64,
    ...     np.float32,
    ...     np.float64,
    ...     np.complex64,
    ...     np.complex128,
    ...     object,
    ... ]
    >>>
    >>> basic_arrays = []
    >>>
    >>> for scalar in scalars:
    ...     for endian in '<>':
    ...         dtype = np.dtype(scalar).newbyteorder(endian)
    ...         basic = np.arange(15).astype(dtype)
    ...         basic_arrays.extend([
    ...             np.array([], dtype=dtype),
    ...             np.array(10, dtype=dtype),
    ...             basic,
    ...             basic.reshape((3,5)),
    ...             basic.reshape((3,5)).T,
    ...             basic.reshape((3,5))[::-1,::2],
    ...         ])
    ...
    >>>
    >>> Pdescr = [
    ...     ('x', 'i4', (2,)),
    ...     ('y', 'f8', (2, 2)),
    ...     ('z', 'u1')]
    >>>
    >>>
    >>> PbufferT = [
    ...     ([3,2], [[6.,4.],[6.,4.]], 8),
    ...     ([4,3], [[7.,5.],[7.,5.]], 9),
    ...     ]
    >>>
    >>>
    >>> Ndescr = [
    ...     ('x', 'i4', (2,)),
    ...     ('Info', [
    ...         ('value', 'c16'),
    ...         ('y2', 'f8'),
    ...         ('Info2', [
    ...             ('name', 'S2'),
    ...             ('value', 'c16', (2,)),
    ...             ('y3', 'f8', (2,)),
    ...             ('z3', 'u4', (2,))]),
    ...         ('name', 'S2'),
    ...         ('z2', 'b1')]),
    ...     ('color', 'S2'),
    ...     ('info', [
    ...         ('Name', 'U8'),
    ...         ('Value', 'c16')]),
    ...     ('y', 'f8', (2, 2)),
    ...     ('z', 'u1')]
    >>>
    >>>
    >>> NbufferT = [
    ...     ([3,2], (6j, 6., ('nn', [6j,4j], [6.,4.], [1,2]), 'NN', True), 'cc', ('NN', 6j), [[6.,4.],[6.,4.]], 8),
    ...     ([4,3], (7j, 7., ('oo', [7j,5j], [7.,5.], [2,1]), 'OO', False), 'dd', ('OO', 7j), [[7.,5.],[7.,5.]], 9),
    ...     ]
    >>>
    >>>
    >>> record_arrays = [
    ...     np.array(PbufferT, dtype=np.dtype(Pdescr).newbyteorder('<')),
    ...     np.array(NbufferT, dtype=np.dtype(Ndescr).newbyteorder('<')),
    ...     np.array(PbufferT, dtype=np.dtype(Pdescr).newbyteorder('>')),
    ...     np.array(NbufferT, dtype=np.dtype(Ndescr).newbyteorder('>')),
    ... ]

Test the magic string writing.

    >>> format.magic(1, 0)
    '\x93NUMPY\x01\x00'
    >>> format.magic(0, 0)
    '\x93NUMPY\x00\x00'
    >>> format.magic(255, 255)
    '\x93NUMPY\xff\xff'
    >>> format.magic(2, 5)
    '\x93NUMPY\x02\x05'

Test the magic string reading.

    >>> format.read_magic(BytesIO(format.magic(1, 0)))
    (1, 0)
    >>> format.read_magic(BytesIO(format.magic(0, 0)))
    (0, 0)
    >>> format.read_magic(BytesIO(format.magic(255, 255)))
    (255, 255)
    >>> format.read_magic(BytesIO(format.magic(2, 5)))
    (2, 5)

Test the header writing.

    >>> for arr in basic_arrays + record_arrays:
    ...     f = BytesIO()
    ...     format.write_array_header_1_0(f, arr)   # XXX: arr is not a dict, items gets called on it
    ...     print(repr(f.getvalue()))
    ...
    "F\x00{'descr': '|u1', 'fortran_order': False, 'shape': (0,)}              \n"
    "F\x00{'descr': '|u1', 'fortran_order': False, 'shape': ()}                \n"
    "F\x00{'descr': '|u1', 'fortran_order': False, 'shape': (15,)}             \n"
    "F\x00{'descr': '|u1', 'fortran_order': False, 'shape': (3, 5)}            \n"
    "F\x00{'descr': '|u1', 'fortran_order': True, 'shape': (5, 3)}             \n"
    "F\x00{'descr': '|u1', 'fortran_order': False, 'shape': (3, 3)}            \n"
    "F\x00{'descr': '|u1', 'fortran_order': False, 'shape': (0,)}              \n"
    "F\x00{'descr': '|u1', 'fortran_order': False, 'shape': ()}                \n"
    "F\x00{'descr': '|u1', 'fortran_order': False, 'shape': (15,)}             \n"
    "F\x00{'descr': '|u1', 'fortran_order': False, 'shape': (3, 5)}            \n"
    "F\x00{'descr': '|u1', 'fortran_order': True, 'shape': (5, 3)}             \n"
    "F\x00{'descr': '|u1', 'fortran_order': False, 'shape': (3, 3)}            \n"
    "F\x00{'descr': '|i1', 'fortran_order': False, 'shape': (0,)}              \n"
    "F\x00{'descr': '|i1', 'fortran_order': False, 'shape': ()}                \n"
    "F\x00{'descr': '|i1', 'fortran_order': False, 'shape': (15,)}             \n"
    "F\x00{'descr': '|i1', 'fortran_order': False, 'shape': (3, 5)}            \n"
    "F\x00{'descr': '|i1', 'fortran_order': True, 'shape': (5, 3)}             \n"
    "F\x00{'descr': '|i1', 'fortran_order': False, 'shape': (3, 3)}            \n"
    "F\x00{'descr': '|i1', 'fortran_order': False, 'shape': (0,)}              \n"
    "F\x00{'descr': '|i1', 'fortran_order': False, 'shape': ()}                \n"
    "F\x00{'descr': '|i1', 'fortran_order': False, 'shape': (15,)}             \n"
    "F\x00{'descr': '|i1', 'fortran_order': False, 'shape': (3, 5)}            \n"
    "F\x00{'descr': '|i1', 'fortran_order': True, 'shape': (5, 3)}             \n"
    "F\x00{'descr': '|i1', 'fortran_order': False, 'shape': (3, 3)}            \n"
    "F\x00{'descr': '<u2', 'fortran_order': False, 'shape': (0,)}              \n"
    "F\x00{'descr': '<u2', 'fortran_order': False, 'shape': ()}                \n"
    "F\x00{'descr': '<u2', 'fortran_order': False, 'shape': (15,)}             \n"
    "F\x00{'descr': '<u2', 'fortran_order': False, 'shape': (3, 5)}            \n"
    "F\x00{'descr': '<u2', 'fortran_order': True, 'shape': (5, 3)}             \n"
    "F\x00{'descr': '<u2', 'fortran_order': False, 'shape': (3, 3)}            \n"
    "F\x00{'descr': '>u2', 'fortran_order': False, 'shape': (0,)}              \n"
    "F\x00{'descr': '>u2', 'fortran_order': False, 'shape': ()}                \n"
    "F\x00{'descr': '>u2', 'fortran_order': False, 'shape': (15,)}             \n"
    "F\x00{'descr': '>u2', 'fortran_order': False, 'shape': (3, 5)}            \n"
    "F\x00{'descr': '>u2', 'fortran_order': True, 'shape': (5, 3)}             \n"
    "F\x00{'descr': '>u2', 'fortran_order': False, 'shape': (3, 3)}            \n"
    "F\x00{'descr': '<i2', 'fortran_order': False, 'shape': (0,)}              \n"
    "F\x00{'descr': '<i2', 'fortran_order': False, 'shape': ()}                \n"
    "F\x00{'descr': '<i2', 'fortran_order': False, 'shape': (15,)}             \n"
    "F\x00{'descr': '<i2', 'fortran_order': False, 'shape': (3, 5)}            \n"
    "F\x00{'descr': '<i2', 'fortran_order': True, 'shape': (5, 3)}             \n"
    "F\x00{'descr': '<i2', 'fortran_order': False, 'shape': (3, 3)}            \n"
    "F\x00{'descr': '>i2', 'fortran_order': False, 'shape': (0,)}              \n"
    "F\x00{'descr': '>i2', 'fortran_order': False, 'shape': ()}                \n"
    "F\x00{'descr': '>i2', 'fortran_order': False, 'shape': (15,)}             \n"
    "F\x00{'descr': '>i2', 'fortran_order': False, 'shape': (3, 5)}            \n"
    "F\x00{'descr': '>i2', 'fortran_order': True, 'shape': (5, 3)}             \n"
    "F\x00{'descr': '>i2', 'fortran_order': False, 'shape': (3, 3)}            \n"
    "F\x00{'descr': '<u4', 'fortran_order': False, 'shape': (0,)}              \n"
    "F\x00{'descr': '<u4', 'fortran_order': False, 'shape': ()}                \n"
    "F\x00{'descr': '<u4', 'fortran_order': False, 'shape': (15,)}             \n"
    "F\x00{'descr': '<u4', 'fortran_order': False, 'shape': (3, 5)}            \n"
    "F\x00{'descr': '<u4', 'fortran_order': True, 'shape': (5, 3)}             \n"
    "F\x00{'descr': '<u4', 'fortran_order': False, 'shape': (3, 3)}            \n"
    "F\x00{'descr': '>u4', 'fortran_order': False, 'shape': (0,)}              \n"
    "F\x00{'descr': '>u4', 'fortran_order': False, 'shape': ()}                \n"
    "F\x00{'descr': '>u4', 'fortran_order': False, 'shape': (15,)}             \n"
    "F\x00{'descr': '>u4', 'fortran_order': False, 'shape': (3, 5)}            \n"
    "F\x00{'descr': '>u4', 'fortran_order': True, 'shape': (5, 3)}             \n"
    "F\x00{'descr': '>u4', 'fortran_order': False, 'shape': (3, 3)}            \n"
    "F\x00{'descr': '<i4', 'fortran_order': False, 'shape': (0,)}              \n"
    "F\x00{'descr': '<i4', 'fortran_order': False, 'shape': ()}                \n"
    "F\x00{'descr': '<i4', 'fortran_order': False, 'shape': (15,)}             \n"
    "F\x00{'descr': '<i4', 'fortran_order': False, 'shape': (3, 5)}            \n"
    "F\x00{'descr': '<i4', 'fortran_order': True, 'shape': (5, 3)}             \n"
    "F\x00{'descr': '<i4', 'fortran_order': False, 'shape': (3, 3)}            \n"
    "F\x00{'descr': '>i4', 'fortran_order': False, 'shape': (0,)}              \n"
    "F\x00{'descr': '>i4', 'fortran_order': False, 'shape': ()}                \n"
    "F\x00{'descr': '>i4', 'fortran_order': False, 'shape': (15,)}             \n"
    "F\x00{'descr': '>i4', 'fortran_order': False, 'shape': (3, 5)}            \n"
    "F\x00{'descr': '>i4', 'fortran_order': True, 'shape': (5, 3)}             \n"
    "F\x00{'descr': '>i4', 'fortran_order': False, 'shape': (3, 3)}            \n"
    "F\x00{'descr': '<u8', 'fortran_order': False, 'shape': (0,)}              \n"
    "F\x00{'descr': '<u8', 'fortran_order': False, 'shape': ()}                \n"
    "F\x00{'descr': '<u8', 'fortran_order': False, 'shape': (15,)}             \n"
    "F\x00{'descr': '<u8', 'fortran_order': False, 'shape': (3, 5)}            \n"
    "F\x00{'descr': '<u8', 'fortran_order': True, 'shape': (5, 3)}             \n"
    "F\x00{'descr': '<u8', 'fortran_order': False, 'shape': (3, 3)}            \n"
    "F\x00{'descr': '>u8', 'fortran_order': False, 'shape': (0,)}              \n"
    "F\x00{'descr': '>u8', 'fortran_order': False, 'shape': ()}                \n"
    "F\x00{'descr': '>u8', 'fortran_order': False, 'shape': (15,)}             \n"
    "F\x00{'descr': '>u8', 'fortran_order': False, 'shape': (3, 5)}            \n"
    "F\x00{'descr': '>u8', 'fortran_order': True, 'shape': (5, 3)}             \n"
    "F\x00{'descr': '>u8', 'fortran_order': False, 'shape': (3, 3)}            \n"
    "F\x00{'descr': '<i8', 'fortran_order': False, 'shape': (0,)}              \n"
    "F\x00{'descr': '<i8', 'fortran_order': False, 'shape': ()}                \n"
    "F\x00{'descr': '<i8', 'fortran_order': False, 'shape': (15,)}             \n"
    "F\x00{'descr': '<i8', 'fortran_order': False, 'shape': (3, 5)}            \n"
    "F\x00{'descr': '<i8', 'fortran_order': True, 'shape': (5, 3)}             \n"
    "F\x00{'descr': '<i8', 'fortran_order': False, 'shape': (3, 3)}            \n"
    "F\x00{'descr': '>i8', 'fortran_order': False, 'shape': (0,)}              \n"
    "F\x00{'descr': '>i8', 'fortran_order': False, 'shape': ()}                \n"
    "F\x00{'descr': '>i8', 'fortran_order': False, 'shape': (15,)}             \n"
    "F\x00{'descr': '>i8', 'fortran_order': False, 'shape': (3, 5)}            \n"
    "F\x00{'descr': '>i8', 'fortran_order': True, 'shape': (5, 3)}             \n"
    "F\x00{'descr': '>i8', 'fortran_order': False, 'shape': (3, 3)}            \n"
    "F\x00{'descr': '<f4', 'fortran_order': False, 'shape': (0,)}              \n"
    "F\x00{'descr': '<f4', 'fortran_order': False, 'shape': ()}                \n"
    "F\x00{'descr': '<f4', 'fortran_order': False, 'shape': (15,)}             \n"
    "F\x00{'descr': '<f4', 'fortran_order': False, 'shape': (3, 5)}            \n"
    "F\x00{'descr': '<f4', 'fortran_order': True, 'shape': (5, 3)}             \n"
    "F\x00{'descr': '<f4', 'fortran_order': False, 'shape': (3, 3)}            \n"
    "F\x00{'descr': '>f4', 'fortran_order': False, 'shape': (0,)}              \n"
    "F\x00{'descr': '>f4', 'fortran_order': False, 'shape': ()}                \n"
    "F\x00{'descr': '>f4', 'fortran_order': False, 'shape': (15,)}             \n"
    "F\x00{'descr': '>f4', 'fortran_order': False, 'shape': (3, 5)}            \n"
    "F\x00{'descr': '>f4', 'fortran_order': True, 'shape': (5, 3)}             \n"
    "F\x00{'descr': '>f4', 'fortran_order': False, 'shape': (3, 3)}            \n"
    "F\x00{'descr': '<f8', 'fortran_order': False, 'shape': (0,)}              \n"
    "F\x00{'descr': '<f8', 'fortran_order': False, 'shape': ()}                \n"
    "F\x00{'descr': '<f8', 'fortran_order': False, 'shape': (15,)}             \n"
    "F\x00{'descr': '<f8', 'fortran_order': False, 'shape': (3, 5)}            \n"
    "F\x00{'descr': '<f8', 'fortran_order': True, 'shape': (5, 3)}             \n"
    "F\x00{'descr': '<f8', 'fortran_order': False, 'shape': (3, 3)}            \n"
    "F\x00{'descr': '>f8', 'fortran_order': False, 'shape': (0,)}              \n"
    "F\x00{'descr': '>f8', 'fortran_order': False, 'shape': ()}                \n"
    "F\x00{'descr': '>f8', 'fortran_order': False, 'shape': (15,)}             \n"
    "F\x00{'descr': '>f8', 'fortran_order': False, 'shape': (3, 5)}            \n"
    "F\x00{'descr': '>f8', 'fortran_order': True, 'shape': (5, 3)}             \n"
    "F\x00{'descr': '>f8', 'fortran_order': False, 'shape': (3, 3)}            \n"
    "F\x00{'descr': '<c8', 'fortran_order': False, 'shape': (0,)}              \n"
    "F\x00{'descr': '<c8', 'fortran_order': False, 'shape': ()}                \n"
    "F\x00{'descr': '<c8', 'fortran_order': False, 'shape': (15,)}             \n"
    "F\x00{'descr': '<c8', 'fortran_order': False, 'shape': (3, 5)}            \n"
    "F\x00{'descr': '<c8', 'fortran_order': True, 'shape': (5, 3)}             \n"
    "F\x00{'descr': '<c8', 'fortran_order': False, 'shape': (3, 3)}            \n"
    "F\x00{'descr': '>c8', 'fortran_order': False, 'shape': (0,)}              \n"
    "F\x00{'descr': '>c8', 'fortran_order': False, 'shape': ()}                \n"
    "F\x00{'descr': '>c8', 'fortran_order': False, 'shape': (15,)}             \n"
    "F\x00{'descr': '>c8', 'fortran_order': False, 'shape': (3, 5)}            \n"
    "F\x00{'descr': '>c8', 'fortran_order': True, 'shape': (5, 3)}             \n"
    "F\x00{'descr': '>c8', 'fortran_order': False, 'shape': (3, 3)}            \n"
    "F\x00{'descr': '<c16', 'fortran_order': False, 'shape': (0,)}             \n"
    "F\x00{'descr': '<c16', 'fortran_order': False, 'shape': ()}               \n"
    "F\x00{'descr': '<c16', 'fortran_order': False, 'shape': (15,)}            \n"
    "F\x00{'descr': '<c16', 'fortran_order': False, 'shape': (3, 5)}           \n"
    "F\x00{'descr': '<c16', 'fortran_order': True, 'shape': (5, 3)}            \n"
    "F\x00{'descr': '<c16', 'fortran_order': False, 'shape': (3, 3)}           \n"
    "F\x00{'descr': '>c16', 'fortran_order': False, 'shape': (0,)}             \n"
    "F\x00{'descr': '>c16', 'fortran_order': False, 'shape': ()}               \n"
    "F\x00{'descr': '>c16', 'fortran_order': False, 'shape': (15,)}            \n"
    "F\x00{'descr': '>c16', 'fortran_order': False, 'shape': (3, 5)}           \n"
    "F\x00{'descr': '>c16', 'fortran_order': True, 'shape': (5, 3)}            \n"
    "F\x00{'descr': '>c16', 'fortran_order': False, 'shape': (3, 3)}           \n"
    "F\x00{'descr': 'O', 'fortran_order': False, 'shape': (0,)}              \n"
    "F\x00{'descr': 'O', 'fortran_order': False, 'shape': ()}                \n"
    "F\x00{'descr': 'O', 'fortran_order': False, 'shape': (15,)}             \n"
    "F\x00{'descr': 'O', 'fortran_order': False, 'shape': (3, 5)}            \n"
    "F\x00{'descr': 'O', 'fortran_order': True, 'shape': (5, 3)}             \n"
    "F\x00{'descr': 'O', 'fortran_order': False, 'shape': (3, 3)}            \n"
    "F\x00{'descr': 'O', 'fortran_order': False, 'shape': (0,)}              \n"
    "F\x00{'descr': 'O', 'fortran_order': False, 'shape': ()}                \n"
    "F\x00{'descr': 'O', 'fortran_order': False, 'shape': (15,)}             \n"
    "F\x00{'descr': 'O', 'fortran_order': False, 'shape': (3, 5)}            \n"
    "F\x00{'descr': 'O', 'fortran_order': True, 'shape': (5, 3)}             \n"
    "F\x00{'descr': 'O', 'fortran_order': False, 'shape': (3, 3)}            \n"
    "v\x00{'descr': [('x', '<i4', (2,)), ('y', '<f8', (2, 2)), ('z', '|u1')],\n 'fortran_order': False,\n 'shape': (2,)}         \n"
    "\x16\x02{'descr': [('x', '<i4', (2,)),\n           ('Info',\n            [('value', '<c16'),\n             ('y2', '<f8'),\n             ('Info2',\n              [('name', '|S2'),\n               ('value', '<c16', (2,)),\n               ('y3', '<f8', (2,)),\n               ('z3', '<u4', (2,))]),\n             ('name', '|S2'),\n             ('z2', '|b1')]),\n           ('color', '|S2'),\n           ('info', [('Name', '<U8'), ('Value', '<c16')]),\n           ('y', '<f8', (2, 2)),\n           ('z', '|u1')],\n 'fortran_order': False,\n 'shape': (2,)}      \n"
    "v\x00{'descr': [('x', '>i4', (2,)), ('y', '>f8', (2, 2)), ('z', '|u1')],\n 'fortran_order': False,\n 'shape': (2,)}         \n"
    "\x16\x02{'descr': [('x', '>i4', (2,)),\n           ('Info',\n            [('value', '>c16'),\n             ('y2', '>f8'),\n             ('Info2',\n              [('name', '|S2'),\n               ('value', '>c16', (2,)),\n               ('y3', '>f8', (2,)),\n               ('z3', '>u4', (2,))]),\n             ('name', '|S2'),\n             ('z2', '|b1')]),\n           ('color', '|S2'),\n           ('info', [('Name', '>U8'), ('Value', '>c16')]),\n           ('y', '>f8', (2, 2)),\n           ('z', '|u1')],\n 'fortran_order': False,\n 'shape': (2,)}      \n"
é    N)ÚBytesIO)Úformat)ÚIS_64BITÚIS_PYPYÚIS_WASMÚassert_Úassert_array_equalÚassert_raisesÚassert_raises_regex)Úrequires_memoryz<>iÜ  ©Údtypeé
   )é   é2   éÿÿÿÿé   )©ÚxÚi4©r   ©ÚyÚf8©r   r   ©ÚzÚu1é   g      @g      @é   é   g      @g      @é	   r   ÚInfo)ÚvalueÚc16)Úy2r   ÚInfo2)©ÚnameÚS2)r$   r%   r   )Úy3r   r   )Úz3Úu4r   r(   )Úz2Úb1)Úcolorr*   Úinfo)ÚNameÚU8)ÚValuer%   r   r   ù              @Únny              @é   ÚNNTÚcc)r8   r5   ù              @Úooy              @ÚOOFÚdd)r<   r:   ú<ú>)Úc©z<f8©é   r   c                   ó    ‡ — e Zd Zdˆ fd„	Zˆ xZS )ÚBytesIOSRandomSizec                 óN   •— dd l }|j                  d|«      }t        ‰| �  |«      S )Nr   r7   )ÚrandomÚrandintÚsuperÚread)ÚselfÚsizerG   Ú	__class__s      €úR/home/htdocs/ttos/venv/lib/python3.12/site-packages/numpy/lib/tests/test_format.pyrJ   zBytesIOSRandomSize.read“  s%   ø€ ÛØ�~‰~˜a Ó&ˆÜ‰w‰|˜DÓ!Ð!ó    ©N)Ú__name__Ú
__module__Ú__qualname__rJ   Ú__classcell__)rM   s   @rN   rE   rE   ’  s   ø„ ÷"ñ "rO   rE   c                 ó¦   — t        «       }t        j                  || «       t        |j                  «       «      }t        j                  |d¬«      }|S )NT©Úallow_pickle©r   r   Úwrite_arrayÚgetvalueÚ
read_array©ÚarrÚfÚf2Úarr2s       rN   Ú	roundtripra   ™  s@   € Ü‹	€AÜ
×Ñ�q˜#ÔÜ	�—‘“Ó	€BÜ×Ñ˜R¨dÔ3€DØ€KrO   c                 ó¢   — t        «       }t        j                  || «       t        |j	                  «       «      }t        j
                  |«      }|S rP   )r   r   rY   rE   rZ   r[   r\   s       rN   Úroundtrip_randsizerc   ¡  s>   € Ü‹	€AÜ
×Ñ�q˜#ÔÜ	˜AŸJ™J›LÓ	)€BÜ×Ñ˜RÓ €DØ€KrO   c                 ó¨   — t        «       }t        j                  || «       t        |j                  «       dd «      }t        j                  |«      }|S )Nr   r   rX   r\   s       rN   Úroundtrip_truncatedre   ©  sE   € Ü‹	€AÜ
×Ñ�q˜#Ôä	�—‘“˜a Ð#Ó	$€BÜ×Ñ˜RÓ €DØ€KrO   c                 ó    — t        | |k(  «       y rP   )r   )Úo1Úo2s     rN   Úassert_equal_ri   ±  s   € ÜˆB�"‰HÕrO   c                  óV   — t         t        z   D ]  } t        | «      }t        | |«       Œ y rP   )Úbasic_arraysÚrecord_arraysra   r	   ©r]   r`   s     rN   Útest_roundtriprn   µ  s)   € ÜœmÑ+ò &ˆÜ˜‹~ˆÜ˜3 Õ%ñ&rO   c                  ó~   — t         t        z   D ]-  } | j                  t        k7  sŒt	        | «      }t        | |«       Œ/ y rP   )rk   rl   r   Úobjectrc   r	   rm   s     rN   Útest_roundtrip_randsizerq   »  s6   € ÜœmÑ+ò *ˆØ�9‰9œÓÜ% cÓ*ˆDÜ˜s DÕ)ñ*rO   c                  ól   — t         D ]+  } | j                  t        k7  sŒt        t        t
        | «       Œ- y rP   )rk   r   rp   r
   Ú
ValueErrorre   ©r]   s    rN   Útest_roundtrip_truncatedru   Â  s,   € Üò @ˆØ�9‰9œÓÜœ*Ô&9¸3Õ?ñ@rO   c                 óL  — | dz  }t         D ]å  }|j                  t        k7  sŒt        |d«      5 }t	        j
                  ||«       d d d «       t        |d«      5 }|j                  dt        j                  «       |j                  «        d d d «       t        |d«      5 }t        j                  t        |j                  dk(  rdnd¬	«      5  t	        j                  |«      }d d d «       d d d «       Œç y # 1 sw Y   Œ°xY w# 1 sw Y   ŒwxY w# 1 sw Y   Œ,xY w# 1 sw Y   �ŒxY w)
Nza.npyÚwbzrb+r   Úrbr   z9EOF: reading array header, expected (\d+) bytes got (\d+)zŠFailed to read all data for array\. Expected \(.*?\) = (\d+) elements, could only read (\d+) elements\. \(file seems not fully written\?\)©Úmatch)rk   r   rp   Úopenr   rY   ÚseekÚosÚSEEK_ENDÚtruncateÚpytestÚraisesrs   rL   r[   )Útmp_pathÚpathr]   r^   Ú_s        rN   Útest_file_truncatedr…   Ç  s  € Ø�gÑ€DÜò -ˆØ�9‰9œÓÜ�d˜DÓ!ð + QÜ×"Ñ" 1 cÔ*÷+ô �d˜EÓ"ð  aØ—‘�rœ2Ÿ;™;Ô'Ø—
‘
”÷ô �d˜DÓ!ð - QÜ—]‘]Üð Ÿ™ Qšñ:ð>ôñ -ô ×)Ñ)¨!Ó,�A÷-÷-ð -ñ-÷+ð +ú÷ð ú÷-ð -ú÷-ñ -ús;   ¯C5Á1DÂ-DÃDÃ"DÃ5C>	ÄD
	ÄDÄDÄD#	c                  ó´   — t        j                  dt        j                  t        t        j
                  dz   f«      ¬«      } t        | «      }t        | |«       y )Nr7   r   )ÚnpÚonesr   Ústrr   ÚBUFFER_SIZEra   r	   )Úlong_str_arrÚlong_str_arr2s     rN   Útest_long_strr�   à  s?   € ä—7‘7˜1¤B§H¡H¬c´6×3EÑ3EÈÑ3IÐ-JÓ$KÔL€LÜ˜lÓ+€MÜ�| ]Õ3rO   zmemmap doesn't work correctly)Úreasonc                 ó~  — t        t        t        z   «      D �]  \  }}|j                  j                  rŒt
        j                  j                  | d|› d�«      }t
        j                  j                  | d|› d�«      }t        |d«      5 }t        j                  ||«       d d d «       |j                  j                  xr |j                  j                   }t        j                  |d|j                  |j                  |¬«      }||d<   |j!                  «        t        |d«      5 }|j#                  «       }d d d «       t        |d«      5 }|j#                  «       }	d d d «       t%        	«       t        j                  |d	¬
«      }|j!                  «        �Œ‚ y # 1 sw Y   ŒüxY w# 1 sw Y   ŒqxY w# 1 sw Y   ŒXxY w)NÚnormalz.npyÚmemmaprw   úw+)Úmoder   ÚshapeÚfortran_order.rx   Úr)r“   )Ú	enumeraterk   rl   r   Ú	hasobjectr}   rƒ   Újoinr{   r   rY   ÚflagsÚf_contiguousÚc_contiguousÚopen_memmapr”   ÚflushrJ   ri   )
ÚtmpdirÚir]   ÚnfnÚmfnÚfpr•   ÚmaÚnormal_bytesÚmemmap_bytess
             rN   Útest_memmap_roundtripr§   ç  sv  € ô œL¬=Ñ8Ó9ó ‰ˆˆ3Ø�9‰9×Òàä�g‰g�l‰l˜6 V¨A¨3¨dÐ#3Ó4ˆÜ�g‰g�l‰l˜6 V¨A¨3¨dÐ#3Ó4ˆÜ�#�t‹_ð 	( Ü×Ñ˜r 3Ô'÷	(ð �I‰I×"Ñ"ÒA¨3¯9©9×+AÑ+AÐ'Að 	ä×Ñ ¨$°c·i±iØ&)§i¡i¸}ôNˆàˆˆ3‰Ø
�‰Œ
ô �#�t‹_ð 	% ØŸ7™7›9ˆL÷	%ä�#�t‹_ð 	% ØŸ7™7›9ˆL÷	%ä�l LÔ1ô ×Ñ ¨#Ô.ˆØ
�‰Ž
ñ5÷	(ð 	(ú÷	%ð 	%ú÷	%ð 	%ús$   Â	FÄ&F'ÅF3ÆF$	Æ'F0	Æ3F<	c                 ó(  — t         j                  j                  dd«      }t        j                  j                  | d«      }t        j                  ||¬«       t        j                  |«      5 }|d   }d d d «       t        |«       y # 1 sw Y   ŒxY w)NéÈ   zcompressed.npzrt   r]   )	r‡   rG   Úrandr}   rƒ   r™   Úsavez_compressedÚloadr	   )rŸ   r]   Únpz_fileÚnpzÚarr1s        rN   Útest_compressed_roundtripr°     sq   € Ü
�)‰)�.‰.˜˜cÓ
"€CÜ�w‰w�|‰|˜FÐ$4Ó5€HÜ×Ñ˜ cÕ*Ü	�‰�Ó	ð ˜cØ�5‰zˆ÷ä�s˜DÕ!÷ð ús   Á-BÂBz
i1, i4, i1)ÚalignÚaÚbr   é   )ÚnamesÚformatsÚoffsetsr@   Úd)rµ   r¶   )r²   Ú r³   ÚaaÚbb)rµ   r¶   r·   Útitles)rµ   r¶   ÚitemsizeÚdtc                 óD  — t        j                  d|«      }t        d«      D ]
  }|dz   ||<   Œ t        j                  j                  | d«      }t        j                  ||¬«       t        j                  |«      5 }|d   }d d d «       t        |«       y # 1 sw Y   ŒxY w)Nr   rC   zaligned.npzrt   r]   )	r‡   ÚzerosÚranger}   rƒ   r™   Úsavezr¬   r	   )rŸ   r¾   r]   r    r­   r®   r¯   s          rN   Útest_load_padded_dtyperÃ     s‰   € ä
�(‰(�1�b‹/€CÜ�1‹Xò ˆØ�Q‘ˆˆAŠðä�w‰w�|‰|˜F MÓ2€HÜ‡H�HˆX˜3ÕÜ	�‰�Ó	ð ˜cØ�5‰zˆ÷ä�s˜DÕ!÷ð ús   Á;BÂB)r   é   zsee gh-23988z!Emscripten NODEFS has a buggy dupc                  óT  — d} t         j                  j                  t         j                  j                  t        «      d| «      }t        j                  t        d¬«      5  t        j                  |«      }d d d «       t        t        j                  d«      «       y # 1 sw Y   Œ)xY w)Nzwin64python2.npyÚdatazReading.*this warning\.ry   r   )r}   rƒ   r™   ÚdirnameÚ__file__r€   ÚwarnsÚUserWarningr‡   r¬   r	   rˆ   )Úfnamerƒ   rÆ   s      rN   Ú%test_python2_python3_interoperabilityrÌ   +  so   € ð €EÜ�7‰7�<‰<œŸ™Ÿ™¬Ó1°6¸5ÓA€DÜ	�‰”kÐ)CÔ	Dñ Ü�w‰w�t‹}ˆ÷ä�tœRŸW™W Q›ZÕ(÷ð ús   Á BÂB'zJignore:.*align should be passed:numpy.exceptions.VisibleDeprecationWarningc            	      óª  — t         j                  j                  t         j                  j                  t        «      d«      } t        j                  d t        ddgt        ¬«      }dD �]é  }t         j                  j                  | |«      }dD ]Ñ  }t        j                  |d|¬«      }|j                  d	«      r|d
   }|j                  «        n|}|dk(  ra|j                  d«      rPt        t        |d   t        «      «       t!        |d d |d d «       t!        |d   j#                  |«      |d   «       Œªt        t        |d   t$        «      «       t!        ||«       ŒÓ |j                  d«      s�Œ|j                  d	«      rˆt        j                  |d¬«      }t'        t(        |j*                  d
«       |j                  «        t        j                  |ddd¬«      }t'        t,        |j*                  d
«       |j                  «        �Œ¦t'        t(        t
        j                  |d¬«       t'        t,        t
        j                  |ddd¬«       �Œì y )NrÆ   u   å„ªè‰¯s   ä¸�è‰¯r   )zpy2-np0-objarr.npyúpy2-objarr.npyúpy2-objarr.npzzpy3-objarr.npyzpy3-objarr.npz)ÚbytesÚlatin1T©rW   Úencodingz.npzr   rÑ   Úpy2r   r   rV   F)rW   Úfix_importsrÓ   )r}   rƒ   r™   rÇ   rÈ   r‡   ÚarrayrÁ   rp   r¬   ÚendswithÚcloseÚ
startswithr   Ú
isinstancer‰   r	   ÚencoderÐ   r
   ÚUnicodeErrorÚ__getitem__ÚImportError)Údata_dirÚexpectedrË   rƒ   rÓ   Údata_frÆ   s          rN   Útest_pickle_python2_python3râ   5  sÌ  € ô
 �w‰w�|‰|œBŸG™GŸO™O¬HÓ5°vÓ>€Hä�x‰x˜œu nØ4ð6ä$ô&€Hð6ó #1ˆä�w‰w�|‰|˜H eÓ,ˆà+ò 	3ˆHÜ—W‘W˜T°¸xÔHˆFØ�~‰~˜fÔ%Ø˜c‘{�Ø—‘•à�à˜8Ò#¨×(8Ñ(8¸Ô(?Üœ
 4¨¡7¬CÓ0Ô1Ü" 4¨¨ 9¨h°s¸¨mÔ<ä" 4¨¡8§?¡?°8Ó#<¸hÀr¹lÕKäœ
 4¨¡7¬EÓ2Ô3Ü" 4¨Õ2ð	3ð" ×Ñ˜EÖ"Ø�~‰~˜fÔ%Ü—w‘w˜t°$Ô7�Üœl¨D×,<Ñ,<¸cÔBØ—
‘
”Ü—w‘w˜t°$ÀEØ(0ô2�äœk¨4×+;Ñ+;¸SÔAØ—
‘
–äœl¬B¯G©G°TØ+/õ1äœk¬2¯7©7°DØ+/¸UØ'/÷1ñC#1rO   c           	      ó’  — t         j                  j                  t         j                  j                  t        «      d«      }t         j                  j                  |d«      }t        t        t        j                  |dd¬«       t         j                  j                  |d«      }t        j                  |dd¬«      5 }t        t        |j                  d«       d d d «       t         j                  j                  | d«      }t        t        t        j                  |t        j                  d gt        ¬	«      d¬
«       y # 1 sw Y   ŒfxY w)NrÆ   rÎ   FrÑ   rÒ   rÏ   r   zpickle-disabled.npyr   rV   )r}   rƒ   r™   rÇ   rÈ   r
   rs   r‡   r¬   rÝ   ÚsaverÖ   rp   )rŸ   rß   rƒ   r^   s       rN   Útest_pickle_disallowrå   f  sØ   € Ü�w‰w�|‰|œBŸG™GŸO™O¬HÓ5°vÓ>€Hä�7‰7�<‰<˜Ð"2Ó3€DÜ”*œbŸg™g tØ$¨xõ9ô �7‰7�<‰<˜Ð"2Ó3€DÜ	�‰� E°HÔ	=ð 6ÀÜ”j !§-¡-°Ô5÷6ô �7‰7�<‰<˜Ð 5Ó6€DÜ”*œbŸg™g t¬R¯X©X°t°fÄFÔ-KØ$ö&÷	6ð 6ús   Â<D=Ä=Er   Úi1)rµ   r¶   r·   r½   )r   )r!   )r   rA   r   rB   c                 ó´   — t        j                  | j                  «      }t        || «       t	        j
                  d| «      }t        |«      }t        ||«       y )Nr   )r   Údescr_to_dtypeÚdescrri   r‡   rÀ   ra   r	   )r¾   Údt1r¯   r`   s       rN   Útest_descr_to_dtyperë   u  sE   € ôd ×
Ñ
 §¡Ó
)€CÜ�#�rÔÜ�8‰8�A�r‹?€DÜ�T‹?€DÜ�t˜TÕ"rO   c                  óø  — t        «       } t        d«      D �cg c]  }d|z  dz  t        f‘Œ }}t        j                  d|¬«      }t        j                  | |d¬«       t        j                  d¬	«      5 }t        j                  d
dt        «       t        j                  | |«       t        |d   j                  t        u «       d d d «       | j                  d«       | j                  «       }t        t        |«      t
        j                   z  dk(  «       | j                  d«       t        j"                  | d¬«      }t%        ||«       t'        t(        t
        j                  | |d«       y c c}w # 1 sw Y   Œ­xY w)Néô  ú%déd   éè  r   ©r   r   ©ÚversionT©ÚrecordÚalwaysr¹   r   é@ ©Úmax_header_size©r7   r   )r   rÁ   Úfloatr‡   rˆ   r   rY   ÚwarningsÚcatch_warningsÚfilterwarningsrÊ   r   Úcategoryr|   ÚreadlineÚlenÚARRAY_ALIGNr[   r	   r
   rs   )r^   r    r¾   r¸   ÚwÚheaderÚns          rN   Útest_version_2_0r  ­  s$  € Ü‹	€Aä-2°3«ZÖ	8¨ˆD�1‰H˜ÑœUÒ
#Ð	8€BÐ	8Ü
�‰�˜BÔ€Aä
×Ñ�q˜! VÕ,Ü	×	 Ñ	 ¨Ô	-ð .°Ü×Ñ ¨"¬kÔ:Ü×Ñ˜1˜aÔ Ü��!‘—‘¤Ð,Ô-÷.ð ‡F�Fˆ1„IØ�Z‰Z‹\€FÜŒC�‹Kœ&×,Ñ,Ñ,°Ñ1Ô2à‡F�Fˆ1„IÜ×Ñ˜!¨VÔ4€AÜ�q˜!Ôô ”*œf×0Ñ0°!°Q¸Õ?ùò' 
9÷.ð .ús   ˜E+Á4AE0Å0E9c           	      óØ  — t        d«      D �cg c]  }d|z  dz  t        f‘Œ }}t        j                  d|¬«      }t        j
                  j                  | d«      }t        j
                  j                  | d«      }t        t        t        j                  |d|j                  |j                  d	¬
«       t        j                  |d|j                  |j                  d¬
«      }||d<   |j                  «        t        j                  |dd¬«      }t        ||«       t        j                   d¬«      5 }t        j"                  ddt$        «       t        j                  |d|j                  |j                  d ¬
«      }t'        |d   j(                  t$        u «       ||d<   |j                  «        d d d «       t        j                  |dd¬«      }t        ||«       y c c}w # 1 sw Y   Œ3xY w)Nrí   rî   rï   rð   r   zversion2_01.npyzversion2_02.npyr’   rú   )r“   r   r”   ró   rñ   .r–   r÷   )r“   rù   Trô   rö   r¹   r   )rÁ   rû   r‡   rˆ   r}   rƒ   r™   r
   rs   r   r�   r   r”   rž   r	   rü   rý   rþ   rÊ   r   rÿ   )rŸ   r    r¾   r¸   Útf1Útf2r¤   r  s           rN   Útest_version_2_0_memmapr
  Æ  s…  € ô .3°3«ZÖ	8¨ˆD�1‰H˜ÑœUÒ
#Ð	8€BÐ	8Ü
�‰�˜BÔ€AÜ
�'‰'�,‰,�vÐ0Ó
1€CÜ
�'‰'�,‰,�vÐ0Ó
1€Cô ”*œf×0Ñ0°#¸DÈÏÉØ"#§'¡'°6õ;ô 
×	Ñ	˜C d°!·'±'Ø"#§'¡'°6ô
;€Bà€B€s�GØ‡H�H„JÜ	×	Ñ	˜C c¸6Ô	B€BÜ�r˜1Ôä	×	 Ñ	 ¨Ô	-ð °Ü×Ñ ¨"¬kÔ:Ü×Ñ ¨$°a·g±gØ&'§g¡g°tô=ˆä��!‘—‘¤Ð,Ô-Øˆˆ3‰Ø
�‰Œ
÷ô 
×	Ñ	˜C c¸6Ô	B€Bä�r˜1Õùò5 
9÷ ð ús   ŽGÄ1A=G Ç G)Ú	mmap_moder–   c                 ó¸  — t         j                  j                  | d«      }t        j                  dddz  dz   ¬«      }t        j                  t        d¬«      5  t        j                  ||«       d d d «       t        j                  t        d	¬«      5  t        j                  ||¬
«       d d d «       t        j                  t        d	¬«      5  t        j                  ||d¬«       d d d «       t        j                  ||d¬«      }t        ||«       t        j                  ||d¬«      }t        ||«       y # 1 sw Y   ŒÉxY w# 1 sw Y   ŒšxY w# 1 sw Y   ŒjxY w)Nzlarge_header.npyr7   úi,é'  r    r   ú.*format 2.0ry   úHeader.*large)r  é N  )r  rù   T)r  rW   é ¿ )r}   rƒ   r™   r‡   rÖ   r€   rÉ   rÊ   rä   r�   rs   r¬   r	   )rŸ   r  r^   r]   Úress        rN   Útest_huge_headerr  å  s  € ä
�‰�‰�VÐ/Ó0€AÜ
�(‰(�1˜D 5™L¨3Ñ.Ô
/€Cä	�‰”k¨Ô	8ñ Ü
�‰��3Œ÷ô 
�‰”z¨Ô	9ñ (Ü
�‰�˜YÕ'÷(ô 
�‰”z¨Ô	9ñ ?Ü
�‰�˜Y¸Õ>÷?ô �'‰'�!˜y°tÔ
<€CÜ�s˜CÔ ä
�'‰'�!˜y¸&Ô
A€CÜ�s˜CÕ ÷ð ú÷(ð (ú÷?ð ?ús$   ÁD8ÂEÃEÄ8EÅEÅEc                 óÈ  — t         j                  j                  | d«      }t        j                  dddz  dz   ¬«      }t        j                  t        d¬«      5  t        j                  ||¬	«       d d d «       t        j                  t        d
¬«      5  t        j                  |«      d    d d d «       t        j                  t        d
¬«      5  t        j                  |d¬«      d    d d d «       t        j                  |d¬«      d   }t        ||«       t        j                  |d¬«      d   }t        ||«       y # 1 sw Y   ŒÐxY w# 1 sw Y   Œ xY w# 1 sw Y   ŒnxY w)Nzlarge_header.npzr7   r  r  r    r   r  ry   rt   r  r]   r  rø   TrV   r  )r}   rƒ   r™   r‡   rÖ   r€   rÉ   rÊ   rÂ   r�   rs   r¬   r	   )rŸ   r^   r]   r  s       rN   Útest_huge_header_npzr  ù  s  € Ü
�‰�‰�VÐ/Ó0€AÜ
�(‰(�1˜D 5™L¨3Ñ.Ô
/€Cä	�‰”k¨Ô	8ñ Ü
�‰�˜Õ÷ô 
�‰”z¨Ô	9ñ Ü
�‰�‹
�5Ò÷ô 
�‰”z¨Ô	9ñ 1Ü
�‰� 5Ô)¨%Ò0÷1ô �'‰'�! $Ô
'¨Ñ
.€CÜ�s˜CÔ ä
�'‰'�! VÔ
,¨UÑ
3€CÜ�s˜CÕ ÷ð ú÷ð ú÷1ð 1ús$   ÁE ÂEÃEÅ E	ÅEÅE!c                  óæ  — t        «       } t        j                  d«      }t        j                  | |d¬«       t        j                  | |«       t        j                  | |d ¬«       t        j                  | |«       t        j                  | |d¬«       t        j                  | |«       g d¢}|D ]3  }t        t        d«      5  t        j                  | ||¬«       d d d «       Œ5 y # 1 sw Y   Œ@xY w)Nr7   rú   rò   rñ   ))r7   r7   )r   r   )r   r7   r   )éÿ   r  z we only support format version.*)r   r‡   Úaranger   rY   r   rs   )r^   r]   Úbad_versionsró   s       rN   Útest_write_versionr    sÎ   € Ü‹	€AÜ
�)‰)�A‹,€Cä
×Ñ�q˜# vÕ.Ü
×Ñ�q˜#Ôä
×Ñ�q˜# tÕ,Ü
×Ñ�q˜#Ôä
×Ñ�q˜# vÕ.Ü
×Ñ�q˜#Ôò€Lð  ò 8ˆÜ ¤Ø!CóEñ 	8ä×Ñ˜q #¨wÕ7÷	8ð 	8ñ8÷	8ð 	8ús   ÃC'Ã'C0	)s   “NUMPYs   “NUMPY  s   “NUMPY s   “NUMPY s   “NUMPYs   “NUMPYÿÿ)s   ’NUMPY s    NUMPY s   “numpy s   “MATLB s   “NUMPYs   “NUMPYrO   c                  ó:  — t        «       } t        «       }t        j                  dt        ¬«      }t	        j
                  | |d¬«       t	        j
                  ||d¬«       | j                  d«       |j                  d«       t	        j                  | «      }t	        j                  |«      }t        |dk(  «       t        |dk(  «       t        | j                  «       t        j                  k(  «       t        |j                  «       t        j                  k(  «       y )N©r   r´   r   rú   rò   rñ   r   )r   r‡   rˆ   rû   r   rY   r|   Ú
read_magicr   ÚtellÚ	MAGIC_LEN)Ús1Ús2r]   Úversion1Úversion2s        rN   Útest_read_magicr%  :  sÆ   € Ü	‹€BÜ	‹€Bä
�'‰'�&¤Ô
&€Cä
×Ñ�r˜3¨Õ/Ü
×Ñ�r˜3¨Õ/à‡G�GˆA„JØ‡G�GˆA„Jä× Ñ  Ó$€HÜ× Ñ  Ó$€HäˆH˜ÑÔÜˆH˜ÑÔäˆB�G‰G‹Iœ×)Ñ)Ñ)Ô*ÜˆB�G‰G‹Iœ×)Ñ)Ñ)Õ*rO   c                  ón   — t         D ],  } t        | «      }t        t        t        j
                  |«       Œ. y rP   )Úmalformed_magicr   r
   rs   r   r[   ©Úmagicr^   s     rN   Útest_read_magic_bad_magicr*  O  s,   € Ü ò 8ˆÜ�E‹NˆÜ”j¤&×"3Ñ"3°QÕ7ñ8rO   c                  ó|   — t         t        z   D ],  } t        | «      }t        t        t
        j                  |«       Œ. y rP   )Úbad_version_magicr'  r   r
   rs   r   r[   r(  s     rN   Útest_read_version_1_0_bad_magicr-  U  s1   € Ü"¤_Ñ4ò 8ˆÜ�E‹NˆÜ”j¤&×"3Ñ"3°QÕ7ñ8rO   c                  ó  — t        t        t        j                  dd«       t        t        t        j                  dd«       t        t        t        j                  dd«       t        t        t        j                  dd«       y )Nr   r7   é   )r
   rs   r   r)  © rO   rN   Útest_bad_magic_argsr1  [  sJ   € Ü”*œfŸl™l¨B°Ô2Ü”*œfŸl™l¨C°Ô3Ü”*œfŸl™l¨A¨rÔ2Ü”*œfŸl™l¨A¨sÕ3rO   c                  óº   — t        «       } ddddœ}t        j                  | |«       t        «       } ddz  dfg|d<   t        t        t        j                  | |«       y )Nr0  Fz<i8©r”   r•   ré   Á   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxr/  ré   )r   r   Úwrite_array_header_1_0r
   rs   ©Úsr¸   s     rN   Útest_large_headerr8  b  sU   € Ü‹	€AØ u°uÑ=€AÜ
×!Ñ! ! QÔ'ä‹	€AØ˜s‘? EÐ*Ð+€A€g�JÜ”*œf×;Ñ;¸QÀÕBrO   c                  óx  — t        «       } t        j                  dt        ¬«      }t	        j
                  | |d¬«       | j                  t        j                  «       t	        j                  | «      \  }}}t        | j                  «       t        j                  z  dk(  «       t        |||fddt        fk(  «       y )Nr  r   rú   rò   r   F)r   r‡   rˆ   rû   r   rY   r|   r   Úread_array_header_1_0r   r  r  ©r7  r]   r”   Úfortranr   s        rN   Útest_read_array_header_1_0r=  l  ó�   € Ü‹	€Aä
�'‰'�&¤Ô
&€CÜ
×Ñ�q˜# vÕ.à‡F�FŒ6×ÑÔÜ"×8Ñ8¸Ó;Ñ€Eˆ7�EäˆA�F‰F‹H”v×)Ñ)Ñ)¨QÑ.Ô/ÜˆU�G˜UÐ#¨°´uÐ'=Ñ=Õ>rO   c                  óx  — t        «       } t        j                  dt        ¬«      }t	        j
                  | |d¬«       | j                  t        j                  «       t	        j                  | «      \  }}}t        | j                  «       t        j                  z  dk(  «       t        |||fddt        fk(  «       y )Nr  r   rñ   rò   r   F)r   r‡   rˆ   rû   r   rY   r|   r   Úread_array_header_2_0r   r  r  r;  s        rN   Útest_read_array_header_2_0rA  y  r>  rO   c                  óÞ  — t        «       } t        t        t        j                  | «       t        d«      } t        t        t        j                  | «       t        d«      } t        t        t        j                  | «       t        d«      } t        t        t        j                  | «       dddddœ}t        «       } t        j
                  | |«       t        t        t        j                  | «       y )	Nó   1s    s@   “NUMPY 6 {'descr': 'x', 'shape': (1, 2), }                    
©r7   r   Fr   r   )r”   r•   ré   Úextrakey)r   r
   rs   r   r:  r5  r6  s     rN   Útest_bad_headerrF  †  s·   € ä‹	€AÜ”*œf×:Ñ:¸AÔ>Ü�‹€AÜ”*œf×:Ñ:¸AÔ>ô 	�Ó€AÜ”*œf×:Ñ:¸AÔ>ô
 	ð	"ó	€Aô ”*œf×:Ñ:¸AÔ>àØØØñ	€Aô 	‹	€AÜ
×!Ñ! ! QÔ'Ü”*œf×:Ñ:¸AÕ>rO   c                 ó–  — t         j                  dk(  st         j                  dk(  rt        j                  d«       t        j
                  j                  | d«      }	 dd l}|j                  ddd|g«       t        |d
«      5 }|j                  d«       t        j                  d«      }t        j                  ||«       d d d «       t        |d«      5 }|j                  d«       t        j                  |«      }d d d «       t!        «       y # t        $ r t        j                  d	«       Y Œ¹w xY w# 1 sw Y   ŒuxY w# 1 sw Y   ŒFxY w)NÚwin32Úcygwinz)Unknown if Windows has sparse filesystemsÚsparse_filer   r   z-sÚ
5368709120zCould not create 5GB large filerw   l        rC   rx   )ÚsysÚplatformr€   Úskipr}   rƒ   r™   Ú
subprocessÚ
check_callÚ	Exceptionr{   r|   r‡   r  rä   r¬   r	   )rŸ   Útf_nameÚspr^   r¸   r–   s         rN   Útest_large_file_supportrT  £  s  € Ü�‰˜Ò¤3§<¡<°8Ò#;Ü�‰Ð?Ô@ä�g‰g�l‰l˜6 =Ó1€Gð7ó 	 Ø
�‰�z 4¨°wÐ?Ô@ô 
ˆg�tÓ	ð  Ø	�‰ˆzÔÜ�I‰I�a‹LˆÜ
�‰��1Œ÷ô
 
ˆg�tÓ	ð  Ø	�‰ˆzÔÜ�G‰G�A‹Jˆ÷ô �q˜!Õøô ò 7Ü�‰Ð5Ö6ð7ú÷ð ú÷
ð ús*   ÁD Â=D3Ã'D?ÄD0Ä/D0Ä3D<Ä?Ezflaky on PyPyztest requires 64-bit systeml        )Ú
free_byteszcrashes with low memoryc                 óâ  — d}	 t        j                  |t         j                  ¬«      }t        j                  j                  | d«      }t        |d«      5 }t        j                  |¬«       d d d «       ~t        |d«      5 }t        j                  |«      d   }d d d «       j                  |k(  sJ ‚y # t        $ r t	        j
                  d«       Y Œ¬w xY w# 1 sw Y   ŒmxY w# 1 sw Y   ŒKxY w)	N)i   @r   r   zCould not create large fileÚlarge_archiverw   rt   rx   r]   )r‡   ÚemptyÚuint8ÚMemoryErrorr€   rN  r}   rƒ   r™   r{   rÂ   r¬   r”   )rŸ   r”   r²   rË   r^   Únew_as         rN   Útest_large_archiver\  ¼  sÑ   € ð €Eð3Ü�H‰H�U¤"§(¡(Ô+ˆô �G‰G�L‰L˜ Ó1€Eä	ˆe�TÓ	ð ˜aÜ
�‰�˜Õ÷ð 	
ä	ˆe�TÓ	ð "˜aÜ—‘˜“
˜5Ñ!ˆ÷"ð �;‰;˜%ÒÐÑøô ò 3Ü�‰Ð1Ö2ð3ú÷
ð ú÷
"ð "ús)   „%B5 ÁCÂC%Â5CÃCÃC"Ã%C.c                 óÄ   — t         j                  j                  | d«      }t        j                  |«       t        j
                  |«      5 }	 d d d «       y # 1 sw Y   y xY w)Nznothing.npz)r}   rƒ   r™   r‡   rÂ   r¬   )rŸ   rË   Únpss      rN   Útest_empty_npzr_  ×  sF   € ä�G‰G�L‰L˜ Ó/€EÜ‡H�HˆU„OÜ	�‰�‹ð ˜3Ø÷÷ ñ ús   ÁAÁAc                 óV  — t        j                  g d¢dt        fdt        fg¬«      }t        j                  j                  | d«      }t        |d«      5 }t        j                  ||d¬«       d d d «       t        |d	«      5 }t        j                  |«      }d d d «       t        |«       t        |d«      5 }t        j                  t        «      5  t        j                  ||d ¬«       d d d «       d d d «       y # 1 sw Y   Œ�xY w# 1 sw Y   ŒqxY w# 1 sw Y   Œ*xY w# 1 sw Y   y xY w)
N)©r7   r   rD  ra  rD  Úintu   æ•´å½¢r   zunicode.npyrw   )r   r   rò   rx   )r‡   rÖ   rb  r}   rƒ   r™   r{   r   rY   r[   r	   r€   rÉ   rÊ   )rŸ   r]   rË   r^   r`   s        rN   Útest_unicode_field_namesrc  ß  s
  € ä
�(‰(ò ð 
”ˆØ	GÌÐMðô€Cô �G‰G�L‰L˜ Ó/€EÜ	ˆe�TÓ	ð 3˜aÜ×Ñ˜1˜c¨6Õ2÷3ä	ˆe�TÓ	ð $˜aÜ× Ñ  Ó#ˆ÷$ä�s˜DÔ!ô 
ˆe�TÓ	ð 5˜aÜ�\‰\œ+Ó&ñ 	5Ü×Ñ˜q #¨tÕ4÷	5÷5ð 5÷3ð 3ú÷$ð $ú÷	5ð 	5ú÷5ð 5ús<   ÁC;ÂDÂ7DÃDÃ*DÃ;DÄDÄD	ÄDÄD(c                  óh  — g d¢g d¢g d¢g d¢fD ]œ  \  } }}t        t        j                  «      D �cg c]  }d|z  ‘Œ	 c}D ]i  }t        «       }t        j                  || rd|fn|df| t        j                  d|z  t        fg«      dœ«       t        |j                  «       «      |k(  rŒiJ ‚ Œž y c c}w )	N)Fé   é€   )Fé   éÀ   )Trg  rf  )Té   rh  r   r   ú r3  )
rÁ   r   ÚGROWTH_AXIS_MAX_DIGITSr   r5  r‡   r   rb  r  rZ   )Úis_fortran_arrayÚdtype_spaceÚexpected_header_lengthr    rL   r£   s         rN   Útest_header_growth_axisro  ö  s¿   € âÒ*ªOº_ðBò @Ñ=Ð˜+Ð'=ô %*¬&×*GÑ*GÓ$HÖI˜q�R˜“UÒIò 	@ˆDÜ“ˆBÜ×)Ñ)¨"Ù&6˜!˜T™¸TÀ1¸IØ!1ÜŸ™ C¨+Ñ$5´sÐ#;Ð"<Ó=ñ/ô ô �r—{‘{“}Ó%Ð)?Ó?Ð?Ð?ñ	@ñ@ùò Js   ±B/ÚS3ÚsomeÚstuff)ÚmetadataÚsubarrayr   )é   r   r    zPyPy bug in error formattingc                 ó¾  — t        j                  d| ¬«      }t        «       }t        j                  t
        «      5  t        j                  ||«       d d d «       |j                  d«       t        j                  |«      }ddl	m
} t        ||«        ||j                  «      |j                  usJ ‚ ||j                  «      |j                  u sJ ‚y # 1 sw Y   Œ‚xY w)Nr   r   r   )Údrop_metadata)r‡   rˆ   r   r€   rÉ   rÊ   rä   r|   r¬   Únumpy.lib._utils_implrw  r	   r   )r¾   r]   Úbufr`   rw  s        rN   Útest_metadata_dtyperz    s§   € ô �'‰'�"˜BÔ
€CÜ
‹)€CÜ	�‰”kÓ	"ñ Ü
�‰��SÔ÷à‡H�HˆQ„Kô �7‰7�3‹<€Då3Ü�s˜DÔ!Ù˜Ÿ™Ó#¨3¯9©9Ñ4Ð4Ð4Ù˜Ÿ™Ó$¨¯
©
Ñ2Ð2Ñ2÷ð ús   »CÃC)mÚ__doc__r}   rL  rü   Úior   r€   Únumpyr‡   Ú	numpy.libr   Únumpy.testingr   r   r   r   r	   r
   r   Únumpy.testing._private.utilsr   rY  Úint8Úuint16Úint16Úuint32Úint32Úuint64Úint64Úfloat32Úfloat64Ú	complex64Ú
complex128rp   Úscalarsrk   ÚscalarÚendianr   Únewbyteorderr  ÚastypeÚbasicÚextendrÖ   ÚreshapeÚTÚPdescrÚPbufferTÚNdescrÚNbufferTrÀ   rl   rE   ra   rc   re   ri   rn   rq   ru   r…   r�   ÚmarkÚskipifÚslowr§   r°   rê   Údt2Údt3Údt4Údt5Údt6ÚparametrizerÃ   Úversion_infoÚxfailrÌ   rþ   râ   rå   rb  rë   r  r
  r  r  r  r,  r'  r%  r*  r-  r1  r8  r=  rA  rF  rT  Úthread_unsafer\  r_  rc  ro  rû   Úimplementationró   rz  r0  rO   rN   ú<module>r¦     sj	  ðñRóf 
Û 
Û Ý ã ã Ý ÷÷ ñ õ 9ð ‡H�HØ‡G�GØ‡I�IØ‡H�HØ‡I�IØ‡H�HØ‡I�IØ‡H�HØ‡J�JØ‡J�JØ‡L�LØ‡M�MØ
ð€ð €Øò €FØò ˆØ�—‘˜Ó ×-Ñ-¨fÓ5ˆØ�—	‘	˜$“×&Ñ& uÓ-ˆØ×ÑàˆB�H‰H�R˜uÔ%àˆB�H‰H�R˜uÔ%àà�M‰M˜(Ó#à�M‰M˜(Ó#×%Ñ%à�M‰M˜(Ó#¡D b D©#¨A¨# IÑ.ð
õ 	ñðò6
€ð ˆ€Vˆr�2ˆh˜˜R˜Ð! 1Ð%Øˆ€Vˆr�2ˆh˜˜R˜Ð! 1Ð%ð€ð( ØØØØ	ò  ð 	!ð
 	Øð	ð 	ð ØØØðð ð Øð#
€ð( ˆ€Vˆb�"�t˜b "˜X¨¨B x°!°Q°Ð8¸$ÀÐEØ	ˆ:˜˜R˜ 2 r (Ð+¨Qð0àˆ€Vˆb�"�t˜b "˜X¨¨B x°!°Q°Ð8¸$ÀÐFØ	ˆ:˜˜R˜ 2 r (Ð+¨Qð0ð€ð €B‡H�HˆX˜X˜RŸX™X fÓ-×:Ñ:¸3Ó?Ô@Ø€B‡H�HˆX˜X˜RŸX™X fÓ-×:Ñ:¸3Ó?Ô@Ø€B‡H�HˆX˜X˜RŸX™X fÓ-×:Ñ:¸3Ó?Ô@Ø€B‡H�HˆX˜X˜RŸX™X fÓ-×:Ñ:¸3Ó?Ô@Ø€B‡H�HˆQÐ1Ð2Ô3ð€ô"˜ô "òòòòò&ò*ò@ò
-ò24ð ‡�×Ñ�GÐ$CÐÓDØ‡�×Ññó ó Eðò<"ð €b‡h�hˆ| 4Ô(€à€b‡h�h˜#˜s˜°°t°Ø˜q˜6ñ#ó $€ð €b‡h�h˜#˜s˜°°s°Ñ<Ó=€à€b‡h�hš°T°F¸Q±JÑ?Ó@€à€b‡h�h˜#˜s˜°°t°Ø˜q˜6¨d°D¨\ñ;ó <€ð €b‡h�h˜¨¸Ñ:Ó;€à‡�×Ñ˜  S¨#¨s°C¸Ð=Ó>ñ"ó ?ð"ð ‡�×Ñ�C×$Ñ$¨Ñ/¸ÐÓGØ‡�×Ñ�7Ð#FÐÓGñ)ó Hó Hð)ð ‡�×ÑØPóRñ,1óRð,1ò^&ð ‡�×Ñ˜ð €B‡H�Hˆs�B—G‘GˆnØ�B—H‘HˆoØ�B—H‘Hˆoðð ôð €B‡H�Hˆs�H�B—H‘H¨¨c¨
Ø*.°¨Ø*+¨Q¨Ø*+ñð
 ðó ð ðð ó ð €B‡H�Hð ð ó ð €B‡H�Hˆs�H�B—H‘HØˆ�‰ØˆB�H‰H  S˜zØ"&¨ Ø"# Q Ø"#ñ%ó &ð ðó 	ð 	ð	
ó 	ð 	ð 

ó 
ð €B‡H�HØ	ˆhˆb�h‰hØˆB�H‰HØ�—‘Ø�B—H‘HØ˜c˜
Ø˜h˜bŸh™h°#°s°Ø48¸$°<Ø45°q°6Ø45ñ(7ó 8ð 9ðó ð ð	ó 	ð ðó ð ð
ó ð 	ð
ó ð=0 ó 0ñb#óc0ðb#ò@ð2 ‡�×Ñ�GÐ$CÐÓDñó Eðð< ‡�×Ñ˜ s¨D kÓ2ñ!ó 3ð!ò&!ò(8ò6Ð ò€ò+ò*8ò8ò4òCò
?ò
?ò?ò:ð2 ‡�×Ñ�G OÐÓ4Ø‡�×Ñ˜�LÐ)FÐÓGØ‡�×ÑÙ˜IÔ&Ø‡�×ÑÐ";ÐÓ<ñ ó =ó 'ó ó Hó 5ð
 ò,ò5ò.@ð ‡�×Ñ˜Ø€B‡H�H˜˜S�z°°x°r·x±xÀØ! 7Ð+ô8-ð 0.ñ /ó 0à€B‡H�HˆS˜F GÐ,Ô-Ø€B‡H�Hˆz˜C ˜;Ð'Ð(°F¸GÐ3DÔEà€B‡H�H˜˜S�zØˆxˆr�x‰x 3 %°X°R·X±X¸cÈBÔ5OÐ4PÑQÓRð/ñ ó ð	 ó 	ð ‡�×Ñ�GÒG × 2Ñ 2× :Ñ :¸iÑ GØ-ð ó /ñ3ó/ó	ñ3rO   