From c191eab6e1a531063cacdd5b1c79b5cf02096587 Mon Sep 17 00:00:00 2001 From: Shoban Chiddarth Date: Tue, 7 Jun 2022 22:02:11 +0530 Subject: =?UTF-8?q?MAINT:=20Rename=20doc/records.rst.txt=E2=86=92doc/recor?= =?UTF-8?q?ds.rst?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/records.rst.txt | 86 ----------------------------------------------------- 1 file changed, 86 deletions(-) delete mode 100644 doc/records.rst.txt (limited to 'doc/records.rst.txt') diff --git a/doc/records.rst.txt b/doc/records.rst.txt deleted file mode 100644 index 3c0d55216..000000000 --- a/doc/records.rst.txt +++ /dev/null @@ -1,86 +0,0 @@ - -The ndarray supports records intrinsically. None of the default -descriptors have fields defined, but you can create new descriptors -easily. The ndarray even supports nested arrays of records inside of -a record. Any record that the array protocol can describe can be -represented. The ndarray also supports partial field descriptors. -Not every byte has to be accounted for. - -This was done by adding to the established ``PyArray_Descr *`` structure: - -1. A PyObject ``*fields`` member which contains a dictionary of "field - name" : (``PyArray_Descr`` ``*field-type``, ``offset``, [optional field - title]). If a title is given, then it is also inserted into the - dictionary and used to key the same entry. - -2. A byteorder member. By default this is '=' (native), or '|' - (not-applicable). - -3. An additional ``PyArray_ArrDescr`` ``*member`` of the structure which - contains a simple representation of an array of another base-type. - types. The ``PyArray_ArrayDescr`` structure has members - ``PyArray_Descr *``, ``PyObject *``, for holding a reference to - the base-type and the shape of the sub-array. - -4. The ``PyArray_Descr *`` as official Python object that fully describes - a region of memory for the data - - -Data type conversions ---------------------- - -We can support additional data-type -conversions. The data-type passed in is converted to a -``PyArray_Descr *`` object. - -New possibilities for the "data-type" -````````````````````````````````````` - -**List [data-type 1, data-type 2, ..., data-type n]** - Equivalent to {'names':['f1','f2',...,'fn'], - 'formats': [data-type 1, data-type 2, ..., data-type n]} - - This is a quick way to specify a record format with default field names. - - -**Tuple (flexible type, itemsize) (fixed type, shape)** - Get converted to a new ``PyArray_Descr *`` object with a flexible - type. The latter structure also sets the ``PyArray_ArrayDescr`` field of the - returned ``PyArray_Descr *``. - - -**Dictionary (keys "names", "titles", and "formats")** - This will be converted to a ``NPY_VOID`` type with corresponding - fields parameter (the formats list will be converted to actual - ``PyArray_Descr *`` objects). - - -**Objects (anything with an .itemsize and .fields attribute)** - If its an instance of (a sub-class of) void type, then a new - ``PyArray_Descr*`` structure is created corresponding to its - typeobject (and ``NPY_VOID``) typenumber. If the type is - registered, then the registered type-number is used. - - Otherwise a new ``NPY_VOID PyArray_Descr*`` structure is created - and filled ->elsize and ->fields filled in appropriately. - - The itemsize attribute must return a number > 0. The fields - attribute must return a dictionary with at least "names" and - "formats" entries. The "formats" entry will be converted to a - "proper" descr->fields entry (all generic data-types converted to - ``PyArray_Descr *`` structure). - - -Reference counting for ``PyArray_Descr *`` objects. -``````````````````````````````````````````````````` - -Most functions that take ``PyArary_Descr *`` as arguments and return a -``PyObject *`` steal the reference unless otherwise noted in the code: - -Functions that return ``PyArray_Descr *`` objects return a new -reference. - -.. tip:: - - There is a new function and a new method of array objects both labelled - dtypescr which can be used to try out the ``PyArray_DescrConverter``. -- cgit v1.2.1