PySequence (Jython API documentation)
Date: 2024-08-18

org.python.core

## Class PySequence

- java.lang.Object
- - org.python.core.PyObject
  - - org.python.core.PySequence

- All Implemented Interfaces:
    java.io.Serializable
  Direct Known Subclasses:
    AstList, BaseBytes, Py2kBuffer, PyArray, PyBaseString, PyMemoryView, PySequenceList, PyXRange

      public abstract class PySequence
      extends PyObject

  The abstract superclass of PyObjects that implements a Sequence. Minimize the work in creating such objects. Method names are designed to make it possible for subclasses of PySequence to implement java.util.List. Subclasses must also implement get, getslice, and repeat methods. Subclasses that are mutable should also implement: set, setslice, del, and delRange.
  See Also:
    Serialized Form

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.python.core.PyObject

      `PyObject.ConversionException`

  - ### Field Summary

    - ### Fields inherited from class org.python.core.PyObject

      `gcMonitorGlobal, TYPE`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `__delitem__(PyObject index)` Equivalent to the standard Python __delitem__ method.
    `void` | `__delslice__(PyObject start, PyObject stop, PyObject step)`
    `PyObject` | `__eq__(PyObject o)` Equivalent to the standard Python __eq__ method.
    `PyObject` | `__finditem__(int index)` A variant of the __finditem__ method which accepts a primitive `int` as the key.
    `PyObject` | `__finditem__(PyObject index)` Very similar to the standard Python __getitem__ method.
    `PyObject` | `__ge__(PyObject o)` Equivalent to the standard Python __ge__ method.
    `PyObject` | `__getitem__(PyObject index)` Equivalent to the standard Python __getitem__ method.
    `PyObject` | `__getslice__(PyObject start, PyObject stop, PyObject step)`
    `PyObject` | `__gt__(PyObject o)` Equivalent to the standard Python __gt__ method.
    `PyObject` | `__iter__()` Return an iterator that is used to iterate the element of this sequence.
    `PyObject` | `__le__(PyObject o)` Equivalent to the standard Python __le__ method.
    `PyObject` | `__lt__(PyObject o)` Equivalent to the standard Python __lt__ method.
    `PyObject` | `__ne__(PyObject o)` Equivalent to the standard Python __ne__ method.
    `boolean` | `__nonzero__()` Equivalent to the standard Python __nonzero__ method.
    `void` | `__setitem__(int index, PyObject value)` A variant of the __setitem__ method which accepts a primitive `int` as the key.
    `void` | `__setitem__(PyObject index, PyObject value)` Equivalent to the standard Python __setitem__ method.
    `void` | `__setslice__(PyObject start, PyObject stop, PyObject step, PyObject value)`
    `java.lang.Object` | `__tojava__(java.lang.Class<?> c)` Equivalent to the Jython __tojava__ method.
    `boolean` | `isMappingType()`
    `boolean` | `isNumberType()`
    `boolean` | `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__, __len__, __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, hashCode, implementsDescrDelete, implementsDescrGet, implementsDescrSet, invoke, invoke, invoke, invoke, invoke, invoke, isCallable, isDataDescr, isIndex, isInteger, noAttributeError, object___subclasshook__, readonlyAttributeError, setDict, setType, toString`

    - ### Methods inherited from class java.lang.Object

      `getClass, notify, notifyAll, wait, wait, wait`

- - ### Method Detail

    - #### __nonzero__

          public boolean __nonzero__()

      Description copied from class: `PyObject`
      Equivalent to the standard Python __nonzero__ method. Returns whether of not a given `PyObject` is considered true.
      Overrides:
        `__nonzero__` in class `PyObject`

    - #### __iter__

          public PyObject __iter__()

      Description copied from class: `PyObject`
      Return an iterator that is used to iterate the element of this sequence. From version 2.2, this method is the primary protocol for looping over sequences.

      If a PyObject subclass should support iteration based in the __finditem__() method, it must supply an implementation of __iter__() like this:

           public PyObject __iter__() {
               return new PySequenceIter(this);
           }

      When iterating over a python sequence from java code, it should be done with code like this:

           for (PyObject item : seq.asIterable()) {
               // Do something with item
           }

      Overrides:
        `__iter__` in class `PyObject`

    - #### __eq__

          public PyObject __eq__(PyObject o)

      Description copied from class: `PyObject`
      Equivalent to the standard Python __eq__ method.
      Overrides:
        `__eq__` in class `PyObject`
      Parameters:
        `o` - the object to compare this with.
      Returns:
        the result of the comparison.

    - #### __ne__

          public PyObject __ne__(PyObject o)

      Description copied from class: `PyObject`
      Equivalent to the standard Python __ne__ method.
      Overrides:
        `__ne__` in class `PyObject`
      Parameters:
        `o` - the object to compare this with.
      Returns:
        the result of the comparison.

    - #### __lt__

          public PyObject __lt__(PyObject o)

      Description copied from class: `PyObject`
      Equivalent to the standard Python __lt__ method.
      Overrides:
        `__lt__` in class `PyObject`
      Parameters:
        `o` - the object to compare this with.
      Returns:
        the result of the comparison.

    - #### __le__

          public PyObject __le__(PyObject o)

      Description copied from class: `PyObject`
      Equivalent to the standard Python __le__ method.
      Overrides:
        `__le__` in class `PyObject`
      Parameters:
        `o` - the object to compare this with.
      Returns:
        the result of the comparison.

    - #### __gt__

          public PyObject __gt__(PyObject o)

      Description copied from class: `PyObject`
      Equivalent to the standard Python __gt__ method.
      Overrides:
        `__gt__` in class `PyObject`
      Parameters:
        `o` - the object to compare this with.
      Returns:
        the result of the comparison.

    - #### __ge__

          public PyObject __ge__(PyObject o)

      Description copied from class: `PyObject`
      Equivalent to the standard Python __ge__ method.
      Overrides:
        `__ge__` in class `PyObject`
      Parameters:
        `o` - the object to compare this with.
      Returns:
        the result of the comparison.

    - #### __finditem__

          public PyObject __finditem__(int index)

      Description copied from class: `PyObject`
      A variant of the __finditem__ method which accepts a primitive `int` as the key. By default, this method will call `__finditem__(PyObject key)` with the appropriate args. The only reason to override this method is for performance.
      Overrides:
        `__finditem__` in class `PyObject`
      Parameters:
        `index` - the key to lookup in this sequence.
      Returns:
        the value corresponding to key or null if key is not found.
      See Also:
        `PyObject.__finditem__(PyObject)`

    - #### __finditem__

          public PyObject __finditem__(PyObject index)

      Description copied from class: `PyObject`
      Very similar to the standard Python __getitem__ method. Instead of throwing a KeyError if the item isn't found, this just returns null. Classes that wish to implement __getitem__ should override this method instead (with the appropriate semantics.
      Overrides:
        `__finditem__` in class `PyObject`
      Parameters:
        `index` - the key to lookup in this container
      Returns:
        the value corresponding to key or null if key is not found

    - #### __getitem__

          public PyObject __getitem__(PyObject index)

      Description copied from class: `PyObject`
      Equivalent to the standard Python __getitem__ method. This method should not be overridden. Override the `__finditem__` method instead.
      Overrides:
        `__getitem__` in class `PyObject`
      Parameters:
        `index` - the key to lookup in this container.
      Returns:
        the value corresponding to that key.
      See Also:
        `PyObject.__finditem__(PyObject)`

    - #### isMappingType

          public boolean isMappingType()
                                throws PyIgnoreMethodTag

      Overrides:
        `isMappingType` in class `PyObject`
      Throws:
        `PyIgnoreMethodTag`

    - #### isNumberType

          public boolean isNumberType()
                               throws PyIgnoreMethodTag

      Overrides:
        `isNumberType` in class `PyObject`
      Throws:
        `PyIgnoreMethodTag`

    - #### __getslice__

          public PyObject __getslice__(PyObject start,
                                       PyObject stop,
                                       PyObject step)

      Overrides:
        `__getslice__` in class `PyObject`

    - #### __setslice__

          public void __setslice__(PyObject start,
                                   PyObject stop,
                                   PyObject step,
                                   PyObject value)

      Overrides:
        `__setslice__` in class `PyObject`

    - #### __delslice__

          public void __delslice__(PyObject start,
                                   PyObject stop,
                                   PyObject step)

      Overrides:
        `__delslice__` in class `PyObject`

    - #### __setitem__

          public void __setitem__(int index,
                                  PyObject value)

      Description copied from class: `PyObject`
      A variant of the __setitem__ method which accepts a primitive `int` as the key. By default, this will call `__setitem__(PyObject key, PyObject value)` with the appropriate args. The only reason to override this method is for performance.
      Overrides:
        `__setitem__` in class `PyObject`
      Parameters:
        `index` - the key whose value will be set
        `value` - the value to set this key to
      See Also:
        `PyObject.__setitem__(PyObject, PyObject)`

    - #### __setitem__

          public void __setitem__(PyObject index,
                                  PyObject value)

      Description copied from class: `PyObject`
      Equivalent to the standard Python __setitem__ method.
      Overrides:
        `__setitem__` in class `PyObject`
      Parameters:
        `index` - the key whose value will be set
        `value` - the value to set this key to

    - #### __delitem__

          public void __delitem__(PyObject index)

      Description copied from class: `PyObject`
      Equivalent to the standard Python __delitem__ method.
      Overrides:
        `__delitem__` in class `PyObject`
      Parameters:
        `index` - the key to be removed from the container

    - #### __tojava__

          public java.lang.Object __tojava__(java.lang.Class<?> c)
                                      throws PyIgnoreMethodTag

      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 object `Py.NoConversion` if this `PyObject` can not be converted to the desired Java class.
      Overrides:
        `__tojava__` in class `PyObject`
      Parameters:
        `c` - the Class to convert this `PyObject` to.
      Throws:
        `PyIgnoreMethodTag`

    - #### isSequenceType

          public boolean isSequenceType()

      Overrides:
        `isSequenceType` in class `PyObject`

Jython homepage