Class PyMemoryView

    • Field Detail

      • TYPE

        public static final PyType TYPE
    • Constructor Detail

      • PyMemoryView

        public PyMemoryView​(BufferProtocol pybuf)
        Construct a 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.
        Parameters:
        pybuf - buffer exported by some underlying object
    • Method Detail

      • format

        public java.lang.String format()
      • itemsize

        public int itemsize()
      • ndim

        public int ndim()
      • suboffsets

        public PyObject suboffsets()
      • readonly

        public boolean readonly()
      • tobytes

        public PyString tobytes()
        Implementation of Python tobytes(). Return the data in the buffer as a byte string (an object of class str).
        Returns:
        byte string of buffer contents.
      • tolist

        public PyList tolist()
        Implementation of Python 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).
        Returns:
        a list of buffer contents.
      • __len__

        public int __len__()
        Description copied from class: PyObject
        Equivalent to the standard Python __len__ method. Part of the mapping discipline.
        Overrides:
        __len__ in class PyObject
        Returns:
        the length of the object
      • __eq__

        public PyObject __eq__​(PyObject other)
        Description copied from class: PyObject
        Equivalent to the standard Python __eq__ method.
        Overrides:
        __eq__ in class PySequence
        Parameters:
        other - the object to compare this with.
        Returns:
        the result of the comparison.
      • __ne__

        public PyObject __ne__​(PyObject other)
        Description copied from class: PyObject
        Equivalent to the standard Python __ne__ method.
        Overrides:
        __ne__ in class PySequence
        Parameters:
        other - the object to compare this with.
        Returns:
        the result of the comparison.
      • __lt__

        public PyObject __lt__​(PyObject other)
        Description copied from class: PyObject
        Equivalent to the standard Python __lt__ method.
        Overrides:
        __lt__ in class PySequence
        Parameters:
        other - the object to compare this with.
        Returns:
        the result of the comparison.
      • __le__

        public PyObject __le__​(PyObject other)
        Description copied from class: PyObject
        Equivalent to the standard Python __le__ method.
        Overrides:
        __le__ in class PySequence
        Parameters:
        other - the object to compare this with.
        Returns:
        the result of the comparison.
      • __ge__

        public PyObject __ge__​(PyObject other)
        Description copied from class: PyObject
        Equivalent to the standard Python __ge__ method.
        Overrides:
        __ge__ in class PySequence
        Parameters:
        other - the object to compare this with.
        Returns:
        the result of the comparison.
      • __gt__

        public PyObject __gt__​(PyObject other)
        Description copied from class: PyObject
        Equivalent to the standard Python __gt__ method.
        Overrides:
        __gt__ in class PySequence
        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 the with clause).
        Returns:
        this object
      • __exit__

        public 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.
        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 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 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).

        Specified by:
        getBuffer in interface BufferProtocol
        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 the 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.

      • memoryview_release

        public final void memoryview_release()
      • pyset

        public void pyset​(int index,
                          PyObject value)
                   throws PyException
        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 of 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.
        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 integer
        PyException(ValueError) - if value<0 or value>255
        PyException