Class PyArray

    • Field Detail

      • TYPE

        public static final PyType TYPE
    • Constructor Detail

      • PyArray

        public PyArray​(PyType type)
      • PyArray

        public PyArray​(java.lang.Class<?> type,
                       java.lang.Object data)
      • PyArray

        public PyArray​(java.lang.Class<?> type,
                       PyObject initial)
      • PyArray

        public PyArray​(java.lang.Class<?> type,
                       int n)
      • PyArray

        public PyArray​(PyArray toCopy)
    • Method Detail

      • zeros

        public static PyArray zeros​(int n,
                                    char typecode)
      • zeros

        public static PyArray zeros​(int n,
                                    java.lang.Class<?> ctype)
      • array_class

        public static java.lang.Class<?> array_class​(java.lang.Class<?> type)
      • array

        public static PyArray array​(PyObject init,
                                    java.lang.Class<?> ctype)
        Create a PyArray storing ctype types and being initialised with init.
        Parameters:
        init - an initialiser for the array - can be PyString or PySequence (including PyArray) or iterable type.
        ctype - Class type of the elements stored in the array.
        Returns:
        a new PyArray
      • array___iter__

        public PyObject array___iter__()
      • __imul__

        public PyObject __imul__​(PyObject o)
        Description copied from class: PyObject
        Equivalent to the standard Python __imul__ method.
        Overrides:
        __imul__ in class PyObject
        Parameters:
        o - the object to perform this binary operation with (the right-hand operand).
        Returns:
        the result of the imul, or null if this operation is not defined.
      • __mul__

        public PyObject __mul__​(PyObject o)
        Description copied from class: PyObject
        Equivalent to the standard Python __mul__ method.
        Overrides:
        __mul__ in class PyObject
        Parameters:
        o - the object to perform this binary operation with (the right-hand operand).
        Returns:
        the result of the mul, or null if this operation is not defined
      • __rmul__

        public PyObject __rmul__​(PyObject o)
        Description copied from class: PyObject
        Equivalent to the standard Python __rmul__ method.
        Overrides:
        __rmul__ in class PyObject
        Parameters:
        o - the object to perform this binary operation with (the left-hand operand).
        Returns:
        the result of the mul, or null if this operation is not defined.
      • __iadd__

        public PyObject __iadd__​(PyObject other)
        Description copied from class: PyObject
        Equivalent to the standard Python __iadd__ method.
        Overrides:
        __iadd__ in class PyObject
        Parameters:
        other - the object to perform this binary operation with (the right-hand operand).
        Returns:
        the result of the iadd, or null if this operation is not defined
      • __add__

        public PyObject __add__​(PyObject other)
        Description copied from class: PyObject
        Equivalent to the standard Python __add__ method.
        Overrides:
        __add__ in class PyObject
        Parameters:
        other - the object to perform this binary operation with (the right-hand operand).
        Returns:
        the result of the add, or null if this operation is not defined.
      • __len__

        public int __len__()
        Length of the array
        Overrides:
        __len__ in class PyObject
        Returns:
        number of elements in the array
      • __reduce__

        public PyObject __reduce__()
        Description copied from class: PyObject
        Used for pickling. Default implementation calls object___reduce__.
        Overrides:
        __reduce__ in class PyObject
        Returns:
        a tuple of (class, tuple)
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class PyObject
      • __tojava__

        public java.lang.Object __tojava__​(java.lang.Class<?> c)
        Description copied from class: PyObject
        Equivalent to the Jython __tojava__ method. Tries to coerce this object to an instance of the requested Java class. Returns the special object Py.NoConversion if this PyObject can not be converted to the desired Java class.
        Overrides:
        __tojava__ in class PySequence
        Parameters:
        c - target Class for the conversion
        Returns:
        Java object converted to required class type if possible.
      • array_append

        public final void array_append​(PyObject value)
      • append

        public void append​(PyObject value)
        Append new value x to the end of the array.
        Parameters:
        value - item to be appended to the array
      • array_byteswap

        public void array_byteswap()
      • byteswap

        public void byteswap()
        "Byteswap" all items of the array. This is only supported for values which are 1, 2, 4, or 8 bytes in size; for other types of values, RuntimeError is raised. It is useful when reading data from a file written on a machine with a different byte order.
      • clone

        public java.lang.Object clone()
        Implementation of Cloneable interface.
        Returns:
        copy of current PyArray
      • char2class

        public static java.lang.Class<?> char2class​(char type)
                                             throws PyIgnoreMethodTag
        Converts a character code for the array type to a Java Class.

        The following character codes and their native types are supported:

        Type code native type
        z boolean
        c char
        b byte
        h short
        i int
        l long
        f float
        d double

        Parameters:
        type - character code for the array type
        Returns:
        Class of the native type
        Throws:
        PyIgnoreMethodTag
      • array_count

        public final int array_count​(PyObject value)
      • count

        public PyInteger count​(PyObject value)
        Return the number of occurrences of x in the array.
        Parameters:
        value - instances of the value to be counted
        Returns:
        number of time value was found in the array.
      • array_extend

        public final void array_extend​(PyObject iterable)
      • extend

        public void extend​(PyObject iterable)
        Append items from iterable to the end of the array. If iterable is another array, it must have exactly the same type code; if not, TypeError will be raised. If iterable is not an array, it must be iterable and its elements must be the right type to be appended to the array.
        Parameters:
        iterable - iterable object used to extend the array
      • array_fromfile

        public final void array_fromfile​(PyObject f,
                                         int count)
      • fromfile

        public void fromfile​(PyObject f,
                             int count)
        Read count items (as machine values) from the file object f and append them to the end of the array. If less than count items are available, EOFError is raised, but the items that were available are still inserted into the array. f must be a real built-in file object; something else with a read() method won't do.
        Parameters:
        f - Python builtin file object to retrieve data
        count - number of array elements to read
      • array_fromlist

        public final void array_fromlist​(PyObject obj)
      • fromlist

        public void fromlist​(PyObject obj)
        Append items from the list. This is equivalent to "for x in list: a.append(x)" except that if there is a type error, the array is unchanged.
        Parameters:
        obj - input list object that will be appended to the array
      • fillFromStream

        public int fillFromStream​(java.io.InputStream is)
                           throws java.io.IOException
        Read primitive values from a stream into the array without resizing. Data is read until the array is filled or the stream runs out. If the stream does not contain a whole number of items (possible if the item size is not one byte), the behaviour in respect of the final partial item and straem position is not defined.
        Parameters:
        is - InputStream to source the data from
        Returns:
        number of primitives successfully read
        Throws:
        java.io.IOException - reflecting I/O errors during reading
      • fromstring

        public void fromstring​(PyObject input)
        Appends items from the object, which is a byte string of some kind (PyString or object with the buffer interface providing bytes) The string of bytes is interpreted as an array of machine values (as if it had been read from a file using the fromfile() method).
        Parameters:
        input - string of bytes containing array data
      • fromstring

        public void fromstring​(java.lang.String input)
        Appends items from the string, interpreting the string as an array of machine values (as if it had been read from a file using the fromfile() method).
        Parameters:
        input - string of bytes containing array data
      • fromunicode

        public void fromunicode​(PyUnicode input)
      • getArray

        public java.lang.Object getArray()
                                  throws PyIgnoreMethodTag
        Return the internal Java array storage of the PyArray instance
        Returns:
        the Array store.
        Throws:
        PyIgnoreMethodTag
      • getItemsize

        public int getItemsize()
        Getter for the storage size of the array's type.

        The sizes returned by this method represent the number of bytes used to store the type. In the case of streams, this is the number of bytes written to, or read from a stream. For memory this value is the minimum number of bytes required to store the type.

        This method is used by other methods to define read/write quanta from strings and streams.

        Values returned are:

        Type Size
        boolean 1
        byte 1
        char 1
        short 2
        int 4
        long 8
        float 4
        double 8
        Returns:
        number of bytes used to store array type.
      • getStorageSize

        public int getStorageSize()
      • getTypecode

        public java.lang.String getTypecode()
        Getter for the type code of the array. char2class describes the possible type codes and their meaning.
        Returns:
        single character type code for the array
      • array_index

        public final int array_index​(PyObject value)
      • index

        public PyObject index​(PyObject value)
        Return the smallest i such that i is the index of the first occurrence of value in the array.
        Parameters:
        value - value to find the index of
        Returns:
        index of the first occurrence of value
      • array_insert

        public final void array_insert​(int index,
                                       PyObject value)
      • insert

        public void insert​(int index,
                           PyObject value)
        Insert a new item with value value in the array before position index. Negative values are treated as being relative to the end of the array.
        Parameters:
        index - insert position
        value - value to be inserted into array
      • array_pop

        public final PyObject array_pop​(int i)
        Removes the item at the index i from the array and returns it. The optional argument defaults to -1, so that by default the last item is removed and returned.
      • pop

        public PyObject pop()
        Removes the last item from the array and return it.
      • pop

        public PyObject pop​(int index)
        Removes the item with the index index from the array and returns it.
        Parameters:
        index - array location to be popped from the array
        Returns:
        array element popped from index
      • array_remove

        public final void array_remove​(PyObject value)
      • remove

        public void remove​(PyObject value)
        Remove the first occurrence of value from the array.
        Parameters:
        value - array value to be removed
      • array_reverse

        public final void array_reverse()
      • reverse

        public void reverse()
        Reverse the elements in the array
      • set

        public void set​(int i,
                        PyObject value)
        Set an element in the array - the index needs to exist, this method does not automatically extend the array. See AbstractArray.setSize() or AbstractArray.ensureCapacity() for ways to extend capacity.

        This code specifically checks for overflows of the integral types: byte, short, int and long.

        Parameters:
        i - index of the element to be set
        value - value to set the element to
      • set

        public void set​(int i,
                        int value)
      • set

        public void set​(int i,
                        char value)
      • array_tofile

        public final void array_tofile​(PyObject f)
      • array_write

        public void array_write​(PyObject f)
      • tofile

        public void tofile​(PyObject f)
        Write all items (as machine values) to the file object f.
        Parameters:
        f - Python builtin file object to write data
      • array_tolist

        public final PyObject array_tolist()
      • tolist

        public PyObject tolist()
        Convert the array to an ordinary list with the same items.
        Returns:
        array contents as a list
      • toStream

        public int toStream​(java.io.OutputStream os)
                     throws java.io.IOException
        Generic stream writer to write the entire contents of the array to the stream as primitive types.
        Parameters:
        os - OutputStream to sink the array data to
        Returns:
        number of bytes successfully written
        Throws:
        java.io.IOException
      • array_tostring

        public final PyObject array_tostring()
      • tostring

        public java.lang.String tostring()
        Convert the array to an array of machine values and return the string representation (the same sequence of bytes that would be written to a file by the tofile() method.)
      • tounicode

        public java.lang.String tounicode()
      • array_tounicode

        public final PyObject array_tounicode()
      • getBuffer

        public PyBuffer getBuffer​(int flags)
        Method by which the consumer requests the buffer from the exporter. The consumer provides information on its intended method of navigation and the features the buffer object is asked (or assumed) to provide. Each consumer requesting a buffer in this way, when it has finished using it, should make a corresponding call to PyBuffer.release() on the buffer it obtained, since some objects alter their behaviour while buffers are exported.

        The PyBuffer returned from this method is a one-dimensional array of single byte items that allows modification of the object state. The existence of this export prohibits resizing the byte array. This prohibition is not only on the consumer of the view but extends to any other operations, such as any kind or insertion or deletion.

        Specified by:
        getBuffer in interface BufferProtocol
        Parameters:
        flags - specifying features demanded and the navigational capabilities of the consumer
        Returns:
        exported buffer
      • refersDirectlyTo

        public boolean refersDirectlyTo​(PyObject ob)
                                 throws java.lang.UnsupportedOperationException
        Description copied from interface: Traverseproc
        Optional operation. Should only be implemented if it is more efficient than calling Traverseproc.traverse(Visitproc, Object) with a visitproc that just watches out for ob. Must return false if ob is null.
        Specified by:
        refersDirectlyTo in interface Traverseproc
        Throws:
        java.lang.UnsupportedOperationException