public abstract class PySequence extends PyObject
| Modifier and Type | Class and Description |
|---|---|
protected class |
PySequence.DefaultIndexDelegate
Class defining the default behaviour of sequences with respect to slice assignment, etc.,
which is the one correct for
list. |
PyObject.ConversionException| Modifier and Type | Field and Description |
|---|---|
protected SequenceIndexDelegate |
delegator
A delegate that handles index checking and manipulation for get, set and del operations on
this sequence in the form of a "pluggable behaviour".
|
attributes, gcMonitorGlobal, objtype, TYPE| Modifier | Constructor and Description |
|---|---|
protected |
PySequence(PyType type)
Construct a PySequence for the given sub-type with the default index behaviour.
|
protected |
PySequence(PyType type,
SequenceIndexDelegate behaviour)
Construct a PySequence for the given sub-type with custom index behaviour.
|
| 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.
|
protected int |
boundToSequence(int index)
Adjusts
index such that it's ≥0 and ≤ __len__. |
protected static int |
cmp(PyObject o1,
int ol1,
PyObject o2,
int ol2)
Compare the specified object/length pairs.
|
protected void |
del(int index)
Deletes an element from the sequence (and closes up the gap).
|
protected void |
delRange(int start,
int stop)
Deletes a contiguous sub-sequence (and closes up the gap).
|
protected void |
delslice(int start,
int stop,
int step,
int n)
Deletes a simple or extended slice and closes up the gap(s).
|
protected static PySequence |
fastSequence(PyObject seq,
java.lang.String msg)
Return a copy of a sequence where the __len__() method is telling the truth.
|
protected abstract PyObject |
getslice(int start,
int stop,
int step)
Returns a range of elements from the sequence.
|
boolean |
isMappingType() |
boolean |
isNumberType() |
boolean |
isSequenceType() |
protected boolean |
isSubType(PyObject other)
isSubType tailored for PySequence binops.
|
protected abstract PyObject |
pyget(int index)
Returns the element of the sequence at the given index.
|
protected void |
pyset(int index,
PyObject value)
Sets the indexed element of the sequence to the given value.
|
protected abstract PyObject |
repeat(int count)
Returns a (concrete subclass of) PySequence that repeats the given sequence, as in the
implementation of
__mul__ for strings. |
protected java.lang.String |
runsupportedopMessage(java.lang.String op,
PyObject o2)
Return sequence-specific error messages suitable for substitution.
|
protected void |
setslice(int start,
int stop,
int step,
PyObject value)
Sets the given range of elements according to Python slice assignment semantics.
|
protected static int |
sliceLength(int start,
int stop,
long step)
Make step a long in case adding the start, stop and step together overflows an int.
|
protected java.lang.String |
unsupportedopMessage(java.lang.String op,
PyObject o2)
Return sequence-specific error messages suitable for substitution.
|
__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__, __rawdir__, __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, _unsupportedop, _xor, adaptToCoerceTuple, asDouble, asIndex, asIndex, asInt, asInt, asIterable, asLong, asLong, asName, asName, asString, asString, asStringOrNull, asStringOrNull, bit_length, conjugate, delDict, delType, dispatch__init__, equals, fastGetClass, fastGetDict, finalize, getDict, getJavaProxy, getType, hashCode, impAttr, implementsDescrDelete, implementsDescrGet, implementsDescrSet, invoke, invoke, invoke, invoke, invoke, invoke, isCallable, isDataDescr, isIndex, isInteger, mergeClassDict, mergeDictAttr, mergeListAttr, noAttributeError, object___subclasshook__, readonlyAttributeError, setDict, setType, toStringprotected SequenceIndexDelegate delegator
SequenceIndexDelegate.protected PySequence(PyType type)
type - actual (Python) type of sub-classprotected PySequence(PyType type, SequenceIndexDelegate behaviour)
type - actual (Python) type of sub-classbehaviour - specific index behaviour (or null)protected abstract PyObject pyget(int index)
__getitem__(org.python.core.PyObject) It is guaranteed by PySequence that
when it calls pyget(int) the index is within the bounds of the array. Any other
clients must make the same guarantee.index - index of element to return.protected abstract PyObject getslice(int start, int stop, int step)
start - the position of the first element.stop - one more than the position of the last element.step - the step size.protected abstract PyObject repeat(int count)
__mul__ for strings.count - the number of times to repeat the sequence.protected void pyset(int index,
PyObject value)
__setitem__(int, org.python.core.PyObject) It is guaranteed by
PySequence that when it calls pyset(int) the index is within the bounds of the array. Any
other clients must make the same guarantee.index - index of the element to set.value - the value to set this element to.protected void setslice(int start,
int stop,
int step,
PyObject value)
start==stop, it is equivalent to insertion at that point. If the step size is
not one, and start!=stop, the slice defines a certain number of elements to be
replaced, and the value must be a sequence of exactly that many elements (or convertible to
such a sequence).start - the position of the first element.stop - one more than the position of the last element.step - the step size.value - an object consistent with the slice assignmentprotected void del(int index)
index - index of the element to delete.protected void delRange(int start,
int stop)
start - the position of the first element.stop - one more than the position of the last element.protected void delslice(int start,
int stop,
int step,
int n)
[start:stop:step] mean what they would in Python, after application of
the "end-relative" rules for negative numbers and None. The count n
is as supplied by PySlice.indicesEx(int). This method is unsafe in that slice
parameters are assumed correct.start - the position of the first element.stop - beyond the position of the last element (not necessarily just beyond).step - from one element to the next (positive or negative)n - number of elements to deletepublic boolean __nonzero__()
PyObjectPyObject is considered true.__nonzero__ in class PyObjectpublic PyObject __iter__()
PyObjectIf 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
}
public PyObject __eq__(PyObject o)
PyObjectpublic PyObject __ne__(PyObject o)
PyObjectpublic PyObject __lt__(PyObject o)
PyObjectpublic PyObject __le__(PyObject o)
PyObjectpublic PyObject __gt__(PyObject o)
PyObjectpublic PyObject __ge__(PyObject o)
PyObjectprotected boolean isSubType(PyObject other)
other - PyObjectprotected static int cmp(PyObject o1, int ol1, PyObject o2, int ol2)
protected static PySequence fastSequence(PyObject seq, java.lang.String msg)
protected static final int sliceLength(int start,
int stop,
long step)
protected int boundToSequence(int index)
index such that it's ≥0 and ≤ __len__. If index
starts off negative, it's treated as an index from the end of the sequence going back to the
start.public PyObject __finditem__(int index)
PyObjectint 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.__finditem__ in class PyObjectindex - the key to lookup in this sequence.PyObject.__finditem__(PyObject)public PyObject __finditem__(PyObject index)
PyObject__finditem__ in class PyObjectindex - the key to lookup in this containerpublic PyObject __getitem__(PyObject index)
PyObject__finditem__ method instead.__getitem__ in class PyObjectindex - the key to lookup in this container.PyObject.__finditem__(PyObject)public boolean isMappingType()
throws PyIgnoreMethodTag
isMappingType in class PyObjectPyIgnoreMethodTagpublic boolean isNumberType()
throws PyIgnoreMethodTag
isNumberType in class PyObjectPyIgnoreMethodTagpublic PyObject __getslice__(PyObject start, PyObject stop, PyObject step)
__getslice__ in class PyObjectpublic void __setslice__(PyObject start, PyObject stop, PyObject step, PyObject value)
__setslice__ in class PyObjectpublic void __delslice__(PyObject start, PyObject stop, PyObject step)
__delslice__ in class PyObjectpublic void __setitem__(int index,
PyObject value)
PyObjectint 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.__setitem__ in class PyObjectindex - the key whose value will be setvalue - the value to set this key toPyObject.__setitem__(PyObject, PyObject)public void __setitem__(PyObject index, PyObject value)
PyObject__setitem__ in class PyObjectindex - the key whose value will be setvalue - the value to set this key topublic void __delitem__(PyObject index)
PyObject__delitem__ in class PyObjectindex - the key to be removed from the containerpublic java.lang.Object __tojava__(java.lang.Class<?> c)
throws PyIgnoreMethodTag
PyObjectPy.NoConversion if this
PyObject can not be converted to the desired Java class.__tojava__ in class PyObjectc - the Class to convert this PyObject to.PyIgnoreMethodTagprotected java.lang.String unsupportedopMessage(java.lang.String op,
PyObject o2)
unsupportedopMessage in class PyObjectprotected java.lang.String runsupportedopMessage(java.lang.String op,
PyObject o2)
runsupportedopMessage in class PyObjectpublic boolean isSequenceType()
isSequenceType in class PyObject