Class PyArray
- All Implemented Interfaces:
Serializable
,Cloneable
,BufferProtocol
,Traverseproc
- Direct Known Subclasses:
PyArrayDerived
See also the jarray module.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class org.python.core.PyObject
PyObject.ConversionException
-
Field Summary
FieldsFields inherited from class org.python.core.PyObject
gcMonitorGlobal
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionEquivalent to the standard Python __add__ method.Equivalent to the standard Python __iadd__ method.Equivalent to the standard Python __imul__ method.int
__len__()
Length of the arrayEquivalent to the standard Python __mul__ method.Used for pickling.Equivalent to the standard Python __rmul__ method.__tojava__
(Class<?> c) Equivalent to the Jython __tojava__ method.void
Append new value x to the end of the array.static PyArray
static PyArray
Create a PyArray storingctype
types and being initialised withinit
.final void
array_append
(PyObject value) void
static Class<?>
array_class
(Class<?> type) final int
array_count
(PyObject value) final void
array_extend
(PyObject iterable) final void
array_fromfile
(PyObject f, int count) final void
array_fromlist
(PyObject obj) final int
array_index
(PyObject value) final void
array_insert
(int index, PyObject value) final PyObject
array_pop
(int i) Removes the item at the indexi
from the array and returns it.final void
array_remove
(PyObject value) final void
final void
final PyObject
final PyObject
final PyObject
void
void
byteswap()
"Byteswap" all items of the array.static Class<?>
char2class
(char type) Converts a character code for the array type to a JavaClass
.clone()
Implementation ofCloneable
interface.Return the number of occurrences of x in the array.void
Append items fromiterable
to the end of the array.int
Read primitive values from a stream into the array without resizing.void
Readcount
items (as machine values) from the file objectf
and append them to the end of the array.void
Append items from the list.void
fromstring
(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 thefromfile()
method).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 thefromfile()
method).void
fromunicode
(PyUnicode input) getArray()
Return the internal Java array storage of the PyArray instancegetBuffer
(int flags) Method by which the consumer requests the buffer from the exporter.int
Getter for the storage size of the array's type.int
Getter for the type code of the array.int
hashCode()
Return the smallest i such that i is the index of the first occurrence ofvalue
in the array.void
Insert a new item with valuevalue
in the array before positionindex
.pop()
Removes the last item from the array and return it.pop
(int index) Removes the item with the indexindex
from the array and returns it.boolean
Optional operation.void
Remove the first occurrence ofvalue
from the array.void
reverse()
Reverse the elements in the arrayvoid
set
(int i, char value) void
set
(int i, int value) void
Set an element in the array - the index needs to exist, this method does not automatically extend the array.void
Write all items (as machine values) to the file objectf
.tolist()
Convert the array to an ordinary list with the same items.int
toStream
(OutputStream os) Generic stream writer to write the entire contents of the array to the stream as primitive types.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 thetofile()
method.)toString()
int
Traverses all directly containedPyObject
s.static PyArray
zeros
(int n, char typecode) static PyArray
Methods inherited from class org.python.core.PySequence
__delitem__, __delslice__, __eq__, __finditem__, __finditem__, __ge__, __getitem__, __getslice__, __gt__, __iter__, __le__, __lt__, __ne__, __nonzero__, __setitem__, __setitem__, __setslice__, isMappingType, isNumberType, isSequenceType
Methods inherited from class org.python.core.PyObject
__abs__, __and__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __cmp__, __coerce__, __coerce_ex__, __complex__, __contains__, __delattr__, __delattr__, __delete__, __delitem__, __delslice__, __dir__, __div__, __divmod__, __ensure_finalizer__, __findattr__, __findattr__, __findattr_ex__, __finditem__, __float__, __floordiv__, __format__, __get__, __getattr__, __getattr__, __getitem__, __getnewargs__, __getslice__, __hash__, __hex__, __iand__, __idiv__, __idivmod__, __ifloordiv__, __ilshift__, __imod__, __index__, __int__, __invert__, __ior__, __ipow__, __irshift__, __isub__, __iternext__, __itruediv__, __ixor__, __long__, __lshift__, __mod__, __neg__, __not__, __oct__, __or__, __pos__, __pow__, __pow__, __radd__, __rand__, __rdiv__, __rdivmod__, __reduce_ex__, __reduce_ex__, __repr__, __rfloordiv__, __rlshift__, __rmod__, __ror__, __rpow__, __rrshift__, __rshift__, __rsub__, __rtruediv__, __rxor__, __set__, __setattr__, __setattr__, __setitem__, __setslice__, __str__, __sub__, __truediv__, __trunc__, __unicode__, __xor__, _add, _and, _callextra, _cmp, _div, _divmod, _doget, _doget, _doset, _eq, _floordiv, _ge, _gt, _iadd, _iand, _idiv, _idivmod, _ifloordiv, _ilshift, _imod, _imul, _in, _ior, _ipow, _irshift, _is, _isnot, _isub, _itruediv, _ixor, _jcall, _jcallexc, _jthrow, _le, _lshift, _lt, _mod, _mul, _ne, _notin, _or, _pow, _rshift, _sub, _truediv, _xor, asDouble, asIndex, asIndex, asInt, asInt, asIterable, asLong, asLong, asName, asName, asString, asString, asStringOrNull, asStringOrNull, bit_length, conjugate, delDict, delType, dispatch__init__, equals, fastGetClass, fastGetDict, getDict, getType, implementsDescrDelete, implementsDescrGet, implementsDescrSet, invoke, invoke, invoke, invoke, invoke, invoke, isCallable, isDataDescr, isIndex, isInteger, noAttributeError, object___subclasshook__, readonlyAttributeError, setDict, setType
-
Field Details
-
TYPE
-
-
Constructor Details
-
PyArray
-
PyArray
-
PyArray
-
PyArray
-
PyArray
-
-
Method Details
-
zeros
-
zeros
-
array
-
array_class
-
array
Create a PyArray storingctype
types and being initialised withinit
.- 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
-
hashCode
public int hashCode() -
array___iter__
-
__imul__
Description copied from class:PyObject
Equivalent to the standard Python __imul__ method. -
__mul__
Description copied from class:PyObject
Equivalent to the standard Python __mul__ method. -
__rmul__
Description copied from class:PyObject
Equivalent to the standard Python __rmul__ method. -
__iadd__
Description copied from class:PyObject
Equivalent to the standard Python __iadd__ method. -
__add__
Description copied from class:PyObject
Equivalent to the standard Python __add__ method. -
__len__
public int __len__()Length of the array -
__reduce__
Description copied from class:PyObject
Used for pickling. Default implementation calls object___reduce__.- Overrides:
__reduce__
in classPyObject
- Returns:
- a tuple of (class, tuple)
-
toString
-
__tojava__
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 objectPy.NoConversion
if thisPyObject
can not be converted to the desired Java class.- Overrides:
__tojava__
in classPySequence
- Parameters:
c
- targetClass
for the conversion- Returns:
- Java object converted to required class type if possible.
-
array_append
-
append
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
Implementation ofCloneable
interface.- Returns:
- copy of current PyArray
-
char2class
Converts a character code for the array type to a JavaClass
.Supported character codes and their native types 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
-
count
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
-
extend
Append items fromiterable
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
-
fromfile
Readcount
items (as machine values) from the file objectf
and append them to the end of the array. If less thancount
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 datacount
- number of array elements to read
-
array_fromlist
-
fromlist
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
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:
IOException
- reflecting I/O errors during reading
-
fromstring
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 thefromfile()
method).- Parameters:
input
- string of bytes containing array data
-
fromstring
Appends items from the string, interpreting the string as an array of machine values (as if it had been read from a file using thefromfile()
method).- Parameters:
input
- string of bytes containing array data
-
fromunicode
-
getArray
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 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
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
-
index
Return the smallest i such that i is the index of the first occurrence ofvalue
in the array.- Parameters:
value
- value to find the index of- Returns:
- index of the first occurrence of
value
-
array_insert
-
insert
Insert a new item with valuevalue
in the array before positionindex
. Negative values are treated as being relative to the end of the array.- Parameters:
index
- insert positionvalue
- value to be inserted into array
-
array_pop
Removes the item at the indexi
from the array and returns it. The optional argument defaults to -1, so that by default the last item is removed and returned. -
pop
Removes the last item from the array and return it. -
pop
Removes the item with the indexindex
from the array and returns it.- Parameters:
index
- array location to be popped from the array- Returns:
- array element popped from index
-
array_remove
-
remove
Remove the first occurrence ofvalue
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
Set an element in the array - the index needs to exist, this method does not automatically extend the array. SeeAbstractArray.setSize()
orAbstractArray.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 setvalue
- value to set the element to
-
set
public void set(int i, int value) -
set
public void set(int i, char value) -
array_tofile
-
array_write
-
tofile
Write all items (as machine values) to the file objectf
.- Parameters:
f
- Python builtin file object to write data
-
array_tolist
-
tolist
Convert the array to an ordinary list with the same items.- Returns:
- array contents as a list
-
toStream
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:
IOException
-
array_tostring
-
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 thetofile()
method.) -
tounicode
-
array_tounicode
-
getBuffer
Method by which the consumer requests the buffer from the exporter. The consumer provides information on its ability to understand buffer navigation. Each consumer requesting a buffer in this way, when it has finished using it, should make a corresponding call toPyBuffer.release()
on the buffer it obtained, orPyBuffer.close()
using try-with-resources, 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 array. This prohibition is not only on the consumer of the view but extends to operations on the underlying array, such asinsert(int, PyObject)
orpop()
.- Specified by:
getBuffer
in interfaceBufferProtocol
- Parameters:
flags
- specifying features demanded and the navigational capabilities of the consumer- Returns:
- exported buffer
-
traverse
Description copied from interface:Traverseproc
Traverses all directly containedPyObject
s. Like in CPython,arg
must be passed unmodified tovisit
as its second parameter. IfVisitproc.visit(PyObject, Object)
returns nonzero, this return value must be returned immediately by traverse.Visitproc.visit(PyObject, Object)
must not be called with anull
PyObject-argument.- Specified by:
traverse
in interfaceTraverseproc
-
refersDirectlyTo
Description copied from interface:Traverseproc
Optional operation. Should only be implemented if it is more efficient than callingTraverseproc.traverse(Visitproc, Object)
with a visitproc that just watches out forob
. Must returnfalse
ifob
isnull
.- Specified by:
refersDirectlyTo
in interfaceTraverseproc
- Throws:
UnsupportedOperationException
-