File: README.rst

package info (click to toggle)
cyarray 1.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 452 kB
  • sloc: python: 768; makefile: 15
file content (64 lines) | stat: -rw-r--r-- 1,979 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
cyarray: a typed, re-sizable Cython array
------------------------------------------

|CI Status|  |Documentation Status|


.. |CI Status| image:: https://github.com/pypr/cyarray/actions/workflows/tests.yml/badge.svg
    :target: https://github.com/pypr/cyarray/actions/workflows/tests.yml

.. |Documentation Status| image:: https://readthedocs.org/projects/cyarray/badge/?version=latest
    :target: https://cyarray.readthedocs.io/en/latest/?badge=latest
    :alt: Documentation Status


The cyarray package provides a fast, typed, re-sizable, Cython array.

It currently provides the following arrays: ``IntArray, UIntArray, LongArray,
FloatArray, DoubleArray``.

All arrays provide for the following operations:

- access by indexing.
- access through get/set function.
- resizing the array.
- appending values at the end of the array.
- reserving space for future appends.
- access to internal data through a numpy array.

If you are writing Cython code this is a convenient array to use as it exposes
the raw underlying pointer to the data. For example if you use a ``FloatArray``
and access its ``data`` attribute it will be a ``float*``.

Each array also provides an interface to its data through a numpy array.
This is done through the ``get_npy_array`` function. The returned numpy
array can be used just like any other numpy array but for the following
restrictions:

- the array may not be resized.
- references of this array should not be kept.
- slices of this array may not be made.

The numpy array may however be copied and used in any manner.

Installation
------------

cyarray can be installed using pip_::

  $ pip install cyarray

The package requires ``Cython``, ``numpy``, and ``mako`` to be installed and
also requires a suitably configured C/C++ compiler.

.. _pip: http://www.pip-installer.org

Usage
-----

In Python one may import and use the package as::

  from cyarray.api import IntArray
  a = IntArray(10)

Here ``a`` is an array of 10 integers.