Package org.python.core
Class PyMemoryView
java.lang.Object
org.python.core.PyObject
org.python.core.PySequence
org.python.core.PyMemoryView
- All Implemented Interfaces:
Serializable,BufferProtocol,Traverseproc
Class implementing the Python
memoryview type. It provides a wrapper around the
Jython buffer API.- 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
ConstructorsConstructorDescriptionPyMemoryView(BufferProtocol pybuf) Construct aPyMemoryViewfrom an object bearing theBufferProtocolinterface. -
Method Summary
Modifier and TypeMethodDescriptionCalled at the start of a context-managed suite (supporting thewithclause).Equivalent to the standard Python __eq__ method.booleanCalled at the end of a context-managed suite (supporting thewithclause), and will release thememoryview.Equivalent to the standard Python __ge__ method.Equivalent to the standard Python __gt__ method.Equivalent to the standard Python __le__ method.int__len__()Equivalent to the standard Python __len__ method.Equivalent to the standard Python __lt__ method.Equivalent to the standard Python __ne__ method.__tojava__(Class<?> c) Equivalent to the Jython __tojava__ method.format()getBuffer(int flags) Method by which the consumer requests the buffer from the exporter.inthashCode()intitemsize()final voidintndim()obj()voidSets the indexed element of the memoryview to the given value, treating the operation as assignment to a slice of length one.booleanreadonly()booleanOptional operation.voidrelease()Request a release of the underlying buffer exposed by thememoryviewobject.shape()strides()tobytes()Implementation of Pythontobytes().tolist()Implementation of Pythontolist().intTraverses all directly containedPyObjects.Methods inherited from class org.python.core.PySequence
__delitem__, __delslice__, __finditem__, __finditem__, __getitem__, __getslice__, __iter__, __nonzero__, __setitem__, __setitem__, __setslice__, isMappingType, isNumberType, isSequenceTypeMethods 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 Details
-
TYPE
-
-
Constructor Details
-
PyMemoryView
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- Throws:
ClassCastException- in cases wherepybuf.getBufferdoes so.
-
-
Method Details
-
__tojava__
Description copied from class:PyObjectEquivalent to the Jython __tojava__ method. Tries to coerce this object to an instance of the requested Java class. Returns the special objectPy.NoConversionif thisPyObjectcan not be converted to the desired Java class.- Overrides:
__tojava__in classPySequence- Parameters:
c- the Class to convert thisPyObjectto.
-
obj
-
format
-
itemsize
public int itemsize() -
shape
-
ndim
public int ndim() -
strides
-
suboffsets
-
readonly
public boolean readonly() -
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
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. -
hashCode
public int hashCode() -
__eq__
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__
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__
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__
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__
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__
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__
Called at the start of a context-managed suite (supporting thewithclause).- Returns:
- this object
-
__exit__
Called at the end of a context-managed suite (supporting thewithclause), and will release thememoryview.- Returns:
- false
-
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
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
Sets 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-AttributeErrorif value cannot be converted to an integerPyException-ValueErrorif value<0 or value>255
-
traverse
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
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
-