Package org.python.core
Class PyMemoryView
- java.lang.Object
-
- org.python.core.PyObject
-
- org.python.core.PySequence
-
- org.python.core.PyMemoryView
-
- All Implemented Interfaces:
java.io.Serializable,BufferProtocol,Traverseproc
public class PyMemoryView extends PySequence implements BufferProtocol, Traverseproc
Class implementing the Pythonmemoryviewtype. It provides a wrapper around the Jython buffer API.- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.python.core.PyObject
PyObject.ConversionException
-
-
Field Summary
Fields Modifier and Type Field Description static PyTypeTYPE-
Fields inherited from class org.python.core.PyObject
gcMonitorGlobal
-
-
Constructor Summary
Constructors Constructor Description PyMemoryView(BufferProtocol pybuf)Construct aPyMemoryViewfrom an object bearing theBufferProtocolinterface.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description PyObject__enter__()Called at the start of a context-managed suite (supporting thewithclause).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 thewithclause), and will release thememoryview.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.java.lang.Stringformat()PyBuffergetBuffer(int flags)Method by which the consumer requests the buffer from the exporter.inthashCode()intitemsize()voidmemoryview_release()intndim()PyObjectobj()voidpyset(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.booleanreadonly()booleanrefersDirectlyTo(PyObject ob)Optional operation.voidrelease()Request a release of the underlying buffer exposed by thememoryviewobject.PyObjectshape()PyObjectstrides()PyObjectsuboffsets()PyStringtobytes()Implementation of Pythontobytes().PyListtolist()Implementation of Pythontolist().inttraverse(Visitproc visit, java.lang.Object arg)Traverses all directly containedPyObjects.-
Methods inherited from class org.python.core.PySequence
__delitem__, __delslice__, __finditem__, __finditem__, __getitem__, __getslice__, __iter__, __nonzero__, __setitem__, __setitem__, __setslice__, __tojava__, isMappingType, isNumberType, isSequenceType
-
Methods inherited from class org.python.core.PyObject
__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
-
-
-
-
Field Detail
-
TYPE
public static final PyType TYPE
-
-
Constructor Detail
-
PyMemoryView
public PyMemoryView(BufferProtocol pybuf)
Construct aPyMemoryViewfrom an object bearing theBufferProtocolinterface. If this object is already an exported buffer, thememoryviewtakes a new lease on it. The buffer so obtained will be writable if the underlying object permits it.- Parameters:
pybuf- buffer exported by some underlying object
-
-
Method Detail
-
obj
public PyObject obj()
-
format
public java.lang.String format()
-
itemsize
public int itemsize()
-
shape
public PyObject shape()
-
ndim
public int ndim()
-
strides
public PyObject strides()
-
suboffsets
public PyObject suboffsets()
-
readonly
public boolean readonly()
-
tobytes
public PyString tobytes()
Implementation of Pythontobytes(). Return the data in the buffer as a byte string (an object of classstr).- Returns:
- byte string of buffer contents.
-
tolist
public PyList tolist()
Implementation of Pythontolist(). Return the data in the buffer as alistwhere the elements are an appropriate type (intin the case of a byte-oriented buffer, which is the only case presently supported).- Returns:
- a list of buffer contents.
-
__len__
public int __len__()
Description copied from class:PyObjectEquivalent to the standard Python __len__ method. Part of the mapping discipline.
-
__eq__
public PyObject __eq__(PyObject other)
Description copied from class:PyObjectEquivalent to the standard Python __eq__ method.- Overrides:
__eq__in classPySequence- Parameters:
other- the object to compare this with.- Returns:
- the result of the comparison.
-
__ne__
public PyObject __ne__(PyObject other)
Description copied from class:PyObjectEquivalent to the standard Python __ne__ method.- Overrides:
__ne__in classPySequence- Parameters:
other- the object to compare this with.- Returns:
- the result of the comparison.
-
__lt__
public PyObject __lt__(PyObject other)
Description copied from class:PyObjectEquivalent to the standard Python __lt__ method.- Overrides:
__lt__in classPySequence- Parameters:
other- the object to compare this with.- Returns:
- the result of the comparison.
-
__le__
public PyObject __le__(PyObject other)
Description copied from class:PyObjectEquivalent to the standard Python __le__ method.- Overrides:
__le__in classPySequence- Parameters:
other- the object to compare this with.- Returns:
- the result of the comparison.
-
__ge__
public PyObject __ge__(PyObject other)
Description copied from class:PyObjectEquivalent to the standard Python __ge__ method.- Overrides:
__ge__in classPySequence- Parameters:
other- the object to compare this with.- Returns:
- the result of the comparison.
-
__gt__
public PyObject __gt__(PyObject other)
Description copied from class:PyObjectEquivalent to the standard Python __gt__ method.- Overrides:
__gt__in classPySequence- Parameters:
other- the object to compare this with.- Returns:
- the result of the comparison.
-
__enter__
public PyObject __enter__()
Called at the start of a context-managed suite (supporting thewithclause).- Returns:
- this object
-
__exit__
public boolean __exit__(PyObject type, PyObject value, PyObject traceback)
Called at the end of a context-managed suite (supporting thewithclause), and will release thememoryview.- Returns:
- false
-
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 toPyBuffer.release()on the buffer it obtained, since some objects alter their behaviour while buffers are exported.The
PyBufferreturned from this method is just the one on which thememoryviewwas first constructed. The Jython buffer API is such that sharing directly is safe (as long as the get-release discipline is observed).- Specified by:
getBufferin interfaceBufferProtocol- Parameters:
flags- specifying features demanded and the navigational capabilities of the consumer- Returns:
- exported buffer
-
release
public void release()
Request a release of the underlying buffer exposed by thememoryviewobject. Many objects take special actions when a view is held on them (for example, abytearraywould temporarily forbid resizing); therefore, callingrelease()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(exceptrelease()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
memoryviewfollows the Python 3.3 design internally and therefore safely anticipates Python 3 in exposingmemoryview.releasealong with the related context-management behaviour.
-
memoryview_release
public final void memoryview_release()
-
pyset
public void pyset(int index, PyObject value) throws PyExceptionSets the indexed element of the memoryview to the given value, treating the operation as assignment to a slice of length one. This is different from the same operation on a byte array, where the assigned value must be an int: here it must have the buffer API and length one. This is an extension point called by PySequence in its implementation ofPySequence.__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.- Parameters:
index- index of the element to set.value- to set this element to, regarded as a buffer of length one unit.- Throws:
PyException(AttributeError)- if value cannot be converted to an integerPyException(ValueError)- if value<0 or value>255PyException
-
traverse
public int traverse(Visitproc visit, java.lang.Object arg)
Description copied from interface:TraverseprocTraverses all directly containedPyObjects. Like in CPython,argmust be passed unmodified tovisitas 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 anullPyObject-argument.- Specified by:
traversein interfaceTraverseproc
-
refersDirectlyTo
public boolean refersDirectlyTo(PyObject ob)
Description copied from interface:TraverseprocOptional operation. Should only be implemented if it is more efficient than callingTraverseproc.traverse(Visitproc, Object)with a visitproc that just watches out forob. Must returnfalseifobisnull.- Specified by:
refersDirectlyToin interfaceTraverseproc
-
-