public class PyMemoryView extends PySequence implements BufferProtocol, Traverseproc
memoryview
type. It provides a wrapper around the
Jython buffer API.PyObject.ConversionException
Modifier and Type | Field and Description |
---|---|
static PyType |
TYPE |
gcMonitorGlobal
Constructor and Description |
---|
PyMemoryView(BufferProtocol pybuf)
Construct a
PyMemoryView from an object bearing the BufferProtocol
interface. |
Modifier and Type | Method and Description |
---|---|
PyObject |
__enter__()
Called at the start of a context-managed suite (supporting the
with clause). |
PyObject |
__eq__(PyObject other)
Equivalent to the standard Python __eq__ method.
|
boolean |
__exit__(PyObject type,
PyObject value,
PyObject traceback)
Called at the end of a context-managed suite (supporting the
with clause), and
will release the memoryview . |
PyObject |
__ge__(PyObject other)
Equivalent to the standard Python __ge__ method.
|
PyObject |
__gt__(PyObject other)
Equivalent to the standard Python __gt__ method.
|
PyObject |
__le__(PyObject other)
Equivalent to the standard Python __le__ method.
|
int |
__len__()
Equivalent to the standard Python __len__ method.
|
PyObject |
__lt__(PyObject other)
Equivalent to the standard Python __lt__ method.
|
PyObject |
__ne__(PyObject other)
Equivalent to the standard Python __ne__ method.
|
String |
format() |
PyBuffer |
getBuffer(int flags)
Method by which the consumer requests the buffer from the exporter.
|
int |
hashCode() |
int |
itemsize() |
void |
memoryview_release() |
int |
ndim() |
PyObject |
obj() |
void |
pyset(int index,
PyObject value)
Sets the indexed element of the memoryview to the given value, treating the operation as
assignment to a slice of length one.
|
boolean |
readonly() |
boolean |
refersDirectlyTo(PyObject ob)
Optional operation.
|
void |
release()
Request a release of the underlying buffer exposed by the
memoryview object. |
PyObject |
shape() |
PyObject |
strides() |
PyObject |
suboffsets() |
PyString |
tobytes()
Implementation of Python
tobytes() . |
PyList |
tolist()
Implementation of Python
tolist() . |
int |
traverse(Visitproc visit,
Object arg)
Traverses all directly contained
PyObject s. |
__delitem__, __delslice__, __finditem__, __finditem__, __getitem__, __getslice__, __iter__, __nonzero__, __setitem__, __setitem__, __setslice__, __tojava__, isMappingType, isNumberType, isSequenceType
__abs__, __add__, __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__, __iadd__, __iand__, __idiv__, __idivmod__, __ifloordiv__, __ilshift__, __imod__, __imul__, __index__, __int__, __invert__, __ior__, __ipow__, __irshift__, __isub__, __iternext__, __itruediv__, __ixor__, __long__, __lshift__, __mod__, __mul__, __neg__, __not__, __oct__, __or__, __pos__, __pow__, __pow__, __radd__, __rand__, __rdiv__, __rdivmod__, __reduce__, __reduce_ex__, __reduce_ex__, __repr__, __rfloordiv__, __rlshift__, __rmod__, __rmul__, __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, toString
public static final PyType TYPE
public PyMemoryView(BufferProtocol pybuf)
PyMemoryView
from an object bearing the BufferProtocol
interface. If this object is already an exported buffer, the memoryview
takes a
new lease on it. The buffer so obtained will be writable if the underlying object permits it.pybuf
- buffer exported by some underlying objectpublic PyObject obj()
public String format()
public int itemsize()
public PyObject shape()
public int ndim()
public PyObject strides()
public PyObject suboffsets()
public boolean readonly()
public PyString tobytes()
tobytes()
. Return the data in the buffer as a byte
string (an object of class str
).public PyList tolist()
tolist()
. Return the data in the buffer as a
list
where the elements are an appropriate type (int
in the case of
a byte-oriented buffer, which is the only case presently supported).public int __len__()
PyObject
public PyObject __eq__(PyObject other)
PyObject
__eq__
in class PySequence
other
- the object to compare this with.public PyObject __ne__(PyObject other)
PyObject
__ne__
in class PySequence
other
- the object to compare this with.public PyObject __lt__(PyObject other)
PyObject
__lt__
in class PySequence
other
- the object to compare this with.public PyObject __le__(PyObject other)
PyObject
__le__
in class PySequence
other
- the object to compare this with.public PyObject __ge__(PyObject other)
PyObject
__ge__
in class PySequence
other
- the object to compare this with.public PyObject __gt__(PyObject other)
PyObject
__gt__
in class PySequence
other
- the object to compare this with.public PyObject __enter__()
with
clause).public boolean __exit__(PyObject type, PyObject value, PyObject traceback)
with
clause), and
will release the memoryview
.public PyBuffer getBuffer(int flags)
PyBuffer.release()
on the buffer it
obtained, since some objects alter their behaviour while buffers are exported.
The PyBuffer
returned from this method is just the one on which the
memoryview
was first constructed. The Jython buffer API is such that sharing
directly is safe (as long as the get-release discipline is observed).
getBuffer
in interface BufferProtocol
flags
- specifying features demanded and the navigational capabilities of the consumerpublic void release()
memoryview
object.
Many objects take special actions when a view is held on them (for example, a
bytearray
would temporarily forbid resizing); therefore, calling
release()
is handy to remove these restrictions (and free any dangling
resources) as soon as possible.
After this method has been called, any further operation on the view raises a
ValueError
(except release()
itself which can be called multiple
times with the same effect as just one call).
This becomes an exposed method in CPython from 3.2. The Jython implementation of
memoryview
follows the Python 3.3 design internally and therefore safely
anticipates Python 3 in exposing memoryview.release
along with the related
context-management behaviour.
public final void memoryview_release()
public void pyset(int index, PyObject value) throws PyException
PySequence.__setitem__(int, org.python.core.PyObject)
It is guaranteed by PySequence that the index is within the bounds of
the memoryview. Any other clients calling pyset(int, PyObject) must make the same
guarantee.index
- index of the element to set.value
- to set this element to, regarded as a buffer of length one unit.PyException(AttributeError)
- if value cannot be converted to an integerPyException(ValueError)
- if value<0 or value>255PyException
public int traverse(Visitproc visit, Object arg)
Traverseproc
PyObject
s.
Like in CPython, arg
must be passed
unmodified to visit
as its second parameter.
If Visitproc.visit(PyObject, Object)
returns
nonzero, this return value
must be returned immediately by traverse.
Visitproc.visit(PyObject, Object)
must not be
called with a null
PyObject-argument.traverse
in interface Traverseproc
public boolean refersDirectlyTo(PyObject ob)
Traverseproc
Traverseproc.traverse(Visitproc, Object)
with
a visitproc that just watches out for ob
.
Must return false
if ob
is null
.refersDirectlyTo
in interface Traverseproc