org.python.core

## Class PyObject

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

All Implemented Interfaces:
  java.io.Serializable

Direct Known Subclasses:
  _codecs.EncodingMap, _hashlib.Hash, _marshal.Marshaller, _marshal.Unmarshaller, AbstractReference, BasePointer, BaseSet, ByReference, CData, Condition, CType, DynamicLibrary, exceptions, importer, JavaImporter, Lock, MatchObject, operator, PatternObject, PyBaseException, PyBeanEvent, PyBeanEventProperty, PyBuiltinCallable, PyCell, PyClass, PyClassMethod, PyCode, PyComplex, PyCompoundCallable, PyConnection, PyCursor, PyDeque, PyDescriptor, PyDialect, PyDictionary, PyDictProxy, PyFile, PyFileReader, PyFileWriter, PyFloat, PyFrame, PyFunction, PyInstance, PyInteger, PyIterator, PyJavaPackage, PyLocal, PyLock, PyLong, PyMethod, PyModule, PyNone, PyObjectDerived, PyPartial, PyProperty, PyRandom, PyReflectedField, PyReflectedFunction, PySequence, PySingleton, PySlice, PyStatement, PyStaticMethod, PyStringMap, PyStruct, PySuper, PySystemState, PyTraceback, PyType, PyWriter, ScannerObject, StructLayout.Field, synchronize.SynchronizedCallable, zxJDBC

    public class PyObject
    extends java.lang.Object
    implements java.io.Serializable

All objects known to the Jython runtime system are represented by an instance of the class `PyObject` or one of its subclasses.

See Also:
  Serialized Form

### Nested Class Summary

Nested Classes
`static class` `PyObject.ConversionException`

### Field Summary

Fields
`static PyType` `TYPE`

### Constructor Summary

Constructors
Constructor and Description
`PyObject()` The standard constructor for a `PyObject`.
`PyObject(PyType objtype)`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`PyObject` `__abs__()` Equivalent to the standard Python __abs__ method.
`PyObject` `__add__(PyObject other)` Equivalent to the standard Python __add__ method
`PyObject` `__and__(PyObject other)` Equivalent to the standard Python __and__ method
`PyObject` `__call__()` A variant of the __call__ method with no arguments.
`PyObject` `__call__(PyObject arg0)` A variant of the __call__ method with one argument.
`PyObject` `__call__(PyObject[] args)` A variant of the __call__ method when no keywords are passed.
`PyObject` `__call__(PyObject[] args, java.lang.String[] keywords)` The basic method to override when implementing a callable object.
`PyObject` `__call__(PyObject arg0, PyObject arg1)` A variant of the __call__ method with two arguments.
`PyObject` `__call__(PyObject arg1, PyObject[] args, java.lang.String[] keywords)` A variant of the __call__ method with one extra initial argument.
`PyObject` `__call__(PyObject arg0, PyObject arg1, PyObject arg2)` A variant of the __call__ method with three arguments.
`PyObject` `__call__(PyObject arg0, PyObject arg1, PyObject arg2, PyObject arg3)` A variant of the __call__ method with four arguments.
`PyObject` `__call__(ThreadState state)`
`PyObject` `__call__(ThreadState state, PyObject arg0)`
`PyObject` `__call__(ThreadState state, PyObject[] args)`
`PyObject` `__call__(ThreadState state, PyObject[] args, java.lang.String[] keywords)`
`PyObject` `__call__(ThreadState state, PyObject arg0, PyObject arg1)`
`PyObject` `__call__(ThreadState state, PyObject arg1, PyObject[] args, java.lang.String[] keywords)`
`PyObject` `__call__(ThreadState state, PyObject arg0, PyObject arg1, PyObject arg2)`
`PyObject` `__call__(ThreadState state, PyObject arg0, PyObject arg1, PyObject arg2, PyObject arg3)`
`int` `__cmp__(PyObject other)` Equivalent to the standard Python __cmp__ method.
`PyObject` `__coerce__(PyObject pyo)` Equivalent to the standard Python __coerce__ method.
`java.lang.Object` `__coerce_ex__(PyObject o)` Implements numeric coercion
`PyComplex` `__complex__()` Equivalent to the standard Python __complex__ method.
`boolean` `__contains__(PyObject o)` Equivalent to the standard Python __contains__ method.
`void` `__delattr__(PyString name)` Equivalent to the standard Python __delattr__ method.
`void` `__delattr__(java.lang.String name)` A variant of the __delattr__ method which accepts a String as the key.
`void` `__delete__(PyObject obj)`
`void` `__delitem__(PyObject key)` Equivalent to the standard Python __delitem__ method.
`void` `__delitem__(java.lang.String key)` A variant of the __delitem__ method which accepts a String as the key.
`void` `__delslice__(PyObject start, PyObject stop)`
`void` `__delslice__(PyObject s_start, PyObject s_stop, PyObject s_step)`
`PyObject` `__dir__()` Equivalent to the standard Python __dir__ method.
`PyObject` `__div__(PyObject other)` Equivalent to the standard Python __div__ method
`PyObject` `__divmod__(PyObject other)` Equivalent to the standard Python __divmod__ method
`PyObject` `__eq__(PyObject other)` Equivalent to the standard Python __eq__ method.
`PyObject` `__findattr__(PyString name)` Very similar to the standard Python __getattr__ method.
`PyObject` `__findattr__(java.lang.String name)` A variant of the __findattr__ method which accepts a Java `String` as the name.
`PyObject` `__findattr_ex__(java.lang.String name)` Attribute lookup hook.
`PyObject` `__finditem__(int key)` A variant of the __finditem__ method which accepts a primitive `int` as the key.
`PyObject` `__finditem__(PyObject key)` Very similar to the standard Python __getitem__ method.
`PyObject` `__finditem__(java.lang.String key)` A variant of the __finditem__ method which accepts a Java `String` as the key.
`PyFloat` `__float__()` Equivalent to the standard Python __float__ method.
`PyObject` `__floordiv__(PyObject other)` Equivalent to the standard Python __floordiv__ method
`PyObject` `__ge__(PyObject other)` Equivalent to the standard Python __ge__ method.
`PyObject` `__get__(PyObject obj, PyObject type)` Get descriptor for this PyObject.
`PyObject` `__getattr__(PyString name)` Equivalent to the standard Python __getattr__ method.
`PyObject` `__getattr__(java.lang.String name)` A variant of the __getattr__ method which accepts a Java `String` as the name.
`PyObject` `__getitem__(int key)` Equivalent to the standard Python __getitem__ method.
`PyObject` `__getitem__(PyObject key)` Equivalent to the standard Python __getitem__ method.
`PyTuple` `__getnewargs__()`
`PyObject` `__getslice__(PyObject start, PyObject stop)`
`PyObject` `__getslice__(PyObject s_start, PyObject s_stop, PyObject s_step)`
`PyObject` `__gt__(PyObject other)` Equivalent to the standard Python __gt__ method.
`PyInteger` `__hash__()` Equivalent to the standard Python __hash__ method.
`PyString` `__hex__()` Equivalent to the standard Python __hex__ method Should only be overridden by numeric objects that can be reasonably represented as a hexadecimal string.
`PyObject` `__iadd__(PyObject other)` Equivalent to the standard Python __iadd__ method
`PyObject` `__iand__(PyObject other)` Equivalent to the standard Python __iand__ method
`PyObject` `__idiv__(PyObject other)` Equivalent to the standard Python __idiv__ method
`PyObject` `__idivmod__(PyObject other)` Equivalent to the standard Python __idivmod__ method
`PyObject` `__ifloordiv__(PyObject other)` Equivalent to the standard Python __ifloordiv__ method
`PyObject` `__ilshift__(PyObject other)` Equivalent to the standard Python __ilshift__ method
`PyObject` `__imod__(PyObject other)` Equivalent to the standard Python __imod__ method
`PyObject` `__imul__(PyObject other)` Equivalent to the standard Python __imul__ method
`PyObject` `__index__()` Equivalent to the standard Python __index__ method.
`PyObject` `__int__()` Equivalent to the standard Python __int__ method.
`PyObject` `__invert__()` Equivalent to the standard Python __invert__ method.
`PyObject` `__ior__(PyObject other)` Equivalent to the standard Python __ior__ method
`PyObject` `__ipow__(PyObject other)` Equivalent to the standard Python __ipow__ method
`PyObject` `__irshift__(PyObject other)` Equivalent to the standard Python __irshift__ method
`PyObject` `__isub__(PyObject other)` Equivalent to the standard Python __isub__ method
`PyObject` `__iter__()` Return an iterator that is used to iterate the element of this sequence.
`PyObject` `__iternext__()` Return the next element of the sequence that this is an iterator for.
`PyObject` `__itruediv__(PyObject other)` Equivalent to the standard Python __itruediv__ method
`PyObject` `__ixor__(PyObject other)` Equivalent to the standard Python __ixor__ method
`PyObject` `__le__(PyObject other)` Equivalent to the standard Python __le__ method.
`int` `__len__()` Equivalent to the standard Python __len__ method.
`PyObject` `__long__()` Equivalent to the standard Python __long__ method.
`PyObject` `__lshift__(PyObject other)` Equivalent to the standard Python __lshift__ method
`PyObject` `__lt__(PyObject other)` Equivalent to the standard Python __lt__ method.
`PyObject` `__mod__(PyObject other)` Equivalent to the standard Python __mod__ method
`PyObject` `__mul__(PyObject other)` Equivalent to the standard Python __mul__ method
`PyObject` `__ne__(PyObject other)` Equivalent to the standard Python __ne__ method.
`PyObject` `__neg__()` Equivalent to the standard Python __neg__ method.
`boolean` `__nonzero__()` Equivalent to the standard Python __nonzero__ method.
`PyObject` `__not__()` Implements boolean not
`PyString` `__oct__()` Equivalent to the standard Python __oct__ method.
`PyObject` `__or__(PyObject other)` Equivalent to the standard Python __or__ method
`PyObject` `__pos__()` Equivalent to the standard Python __pos__ method.
`PyObject` `__pow__(PyObject other)` Equivalent to the standard Python __pow__ method
`PyObject` `__pow__(PyObject o2, PyObject o3)` Implements the three argument power function.
`PyObject` `__radd__(PyObject other)` Equivalent to the standard Python __radd__ method
`PyObject` `__rand__(PyObject other)` Equivalent to the standard Python __rand__ method
`PyObject` `__rdiv__(PyObject other)` Equivalent to the standard Python __rdiv__ method
`PyObject` `__rdivmod__(PyObject other)` Equivalent to the standard Python __rdivmod__ method
`PyObject` `__reduce__()` Used for pickling.
`PyObject` `__reduce_ex__()`
`PyObject` `__reduce_ex__(int arg)` Used for pickling.
`PyString` `__repr__()` Equivalent to the standard Python __repr__ method.
`PyObject` `__rfloordiv__(PyObject other)` Equivalent to the standard Python __rfloordiv__ method
`PyObject` `__rlshift__(PyObject other)` Equivalent to the standard Python __rlshift__ method
`PyObject` `__rmod__(PyObject other)` Equivalent to the standard Python __rmod__ method
`PyObject` `__rmul__(PyObject other)` Equivalent to the standard Python __rmul__ method
`PyObject` `__ror__(PyObject other)` Equivalent to the standard Python __ror__ method
`PyObject` `__rpow__(PyObject other)` Equivalent to the standard Python __rpow__ method
`PyObject` `__rrshift__(PyObject other)` Equivalent to the standard Python __rrshift__ method
`PyObject` `__rshift__(PyObject other)` Equivalent to the standard Python __rshift__ method
`PyObject` `__rsub__(PyObject other)` Equivalent to the standard Python __rsub__ method
`PyObject` `__rtruediv__(PyObject other)` Equivalent to the standard Python __rtruediv__ method
`PyObject` `__rxor__(PyObject other)` Equivalent to the standard Python __rxor__ method
`void` `__set__(PyObject obj, PyObject value)`
`void` `__setattr__(PyString name, PyObject value)` Equivalent to the standard Python __setattr__ method.
`void` `__setattr__(java.lang.String name, PyObject value)` A variant of the __setattr__ method which accepts a String as the key.
`void` `__setitem__(int key, PyObject value)` A variant of the __setitem__ method which accepts a primitive `int` as the key.
`void` `__setitem__(PyObject key, PyObject value)` Equivalent to the standard Python __setitem__ method.
`void` `__setitem__(java.lang.String key, PyObject value)` A variant of the __setitem__ method which accepts a String as the key.
`void` `__setslice__(PyObject start, PyObject stop, PyObject value)`
`void` `__setslice__(PyObject s_start, PyObject s_stop, PyObject s_step, PyObject value)`
`PyString` `__str__()` Equivalent to the standard Python __str__ method.
`PyObject` `__sub__(PyObject other)` Equivalent to the standard Python __sub__ method
`java.lang.Object` `__tojava__(java.lang.Class<?> c)` Equivalent to the Jython __tojava__ method.
`PyObject` `__truediv__(PyObject other)` Equivalent to the standard Python __truediv__ method
`PyUnicode` `__unicode__()`
`PyObject` `__xor__(PyObject other)` Equivalent to the standard Python __xor__ method
`PyObject` `_add(PyObject o2)` Implements the Python expression `this + o2`
`PyObject` `_and(PyObject o2)` Implements the Python expression `this & o2`
`PyObject` `_callextra(PyObject[] args, java.lang.String[] keywords, PyObject starargs, PyObject kwargs)`
`int` `_cmp(PyObject o)` Implements cmp(this, other)
`PyObject` `_div(PyObject o2)` Implements the Python expression `this / o2`
`PyObject` `_divmod(PyObject o2)` Implements the Python expression `this divmod o2`
`PyObject` `_doget(PyObject container)`
`PyObject` `_doget(PyObject container, PyObject wherefound)`
`boolean` `_doset(PyObject container, PyObject value)`
`PyObject` `_eq(PyObject o)` Implements the Python expression `this == other`.
`PyObject` `_floordiv(PyObject o2)` Implements the Python expression `this // o2`
`PyObject` `_ge(PyObject o)` Implements the Python expression `this >= other`.
`PyObject` `_gt(PyObject o)` Implements the Python expression `this > other`.
`PyObject` `_iadd(PyObject o2)` Implements the Python expression `this += o2`
`PyObject` `_iand(PyObject o2)` Implements the Python expression `this &= o2`
`PyObject` `_idiv(PyObject o2)` Implements the Python expression `this /= o2`
`PyObject` `_idivmod(PyObject o2)` Implements the Python expression `this divmod= o2`
`PyObject` `_ifloordiv(PyObject o2)` Implements the Python expression `this //= o2`
`PyObject` `_ilshift(PyObject o2)` Implements the Python expression `this <<= o2`
`PyObject` `_imod(PyObject o2)` Implements the Python expression `this %= o2`
`PyObject` `_imul(PyObject o2)` Implements the Python expression `this *= o2`
`PyObject` `_in(PyObject o)` Implements `in` operator.
`PyObject` `_ior(PyObject o2)` Implements the Python expression `this |= o2`
`PyObject` `_ipow(PyObject o2)` Implements the Python expression `this **= o2`
`PyObject` `_irshift(PyObject o2)` Implements the Python expression `this >>= o2`
`PyObject` `_is(PyObject o)` Implements `is` operator.
`PyObject` `_isnot(PyObject o)` Implements `is not` operator.
`PyObject` `_isub(PyObject o2)` Implements the Python expression `this -= o2`
`PyObject` `_itruediv(PyObject o2)` Implements the Python expression `this /= o2`
`PyObject` `_ixor(PyObject o2)` Implements the Python expression `this ^= o2`
`PyObject` `_jcall(java.lang.Object[] args)`
`PyObject` `_jcallexc(java.lang.Object[] args)` A convenience function for PyProxys.
`void` `_jthrow(java.lang.Throwable t)`
`PyObject` `_le(PyObject o)` Implements the Python expression `this <= other`.
`PyObject` `_lshift(PyObject o2)` Implements the Python expression `this << o2`
`PyObject` `_lt(PyObject o)` Implements the Python expression `this < other`.
`PyObject` `_mod(PyObject o2)` Implements the Python expression `this % o2`
`PyObject` `_mul(PyObject o2)` Implements the Python expression `this * o2`
`PyObject` `_ne(PyObject o)` Implements the Python expression `this !`
`PyObject` `_notin(PyObject o)` Implements `not in` operator.
`PyObject` `_or(PyObject o2)` Implements the Python expression `this | o2`
`PyObject` `_pow(PyObject o2)` Implements the Python expression `this ** o2`
`PyObject` `_rshift(PyObject o2)` Implements the Python expression `this >> o2`
`PyObject` `_sub(PyObject o2)` Implements the Python expression `this - o2`
`PyObject` `_truediv(PyObject o2)` Implements the Python expression `this / o2`
`PyObject` `_xor(PyObject o2)` Implements the Python expression `this ^ o2`
`double` `asDouble()` Convert this object into a double.
`int` `asIndex()` Convert this object into an index-sized integer.
`int` `asIndex(PyObject err)` Convert this object into an index-sized integer.
`int` `asInt()` Convert this object into an int.
`int` `asInt(int index)`
`java.lang.Iterable<PyObject>` `asIterable()` Returns an Iterable over the Python iterator returned by __iter__ on this object.
`long` `asLong()` Convert this object longo an long.
`long` `asLong(int index)`
`java.lang.String` `asName(int index)`
`static java.lang.String` `asName(PyObject obj)`
`java.lang.String` `asString()`
`java.lang.String` `asString(int index)`
`java.lang.String` `asStringOrNull()`
`java.lang.String` `asStringOrNull(int index)`
`void` `delDict()`
`void` `delType()`
`void` `dispatch__init__(PyObject[] args, java.lang.String[] keywords)` Dispatch __init__ behavior
`boolean` `equals(java.lang.Object ob_other)` Should almost never be overridden.
`PyObject` `fastGetClass()`
`PyObject` `fastGetDict()` xxx implements where meaningful
`PyObject` `getDict()` xxx implements where meaningful
`PyType` `getType()`
`int` `hashCode()`
`boolean` `implementsDescrDelete()`
`boolean` `implementsDescrGet()`
`boolean` `implementsDescrSet()`
`PyObject` `invoke(java.lang.String name)` Shortcut for calling a method on a PyObject with no args.
`PyObject` `invoke(java.lang.String name, PyObject arg1)` Shortcut for calling a method on a PyObject with one arg.
`PyObject` `invoke(java.lang.String name, PyObject[] args)`
`PyObject` `invoke(java.lang.String name, PyObject[] args, java.lang.String[] keywords)` Shortcut for calling a method on a PyObject from Java.
`PyObject` `invoke(java.lang.String name, PyObject arg1, PyObject arg2)` Shortcut for calling a method on a PyObject with two args.
`PyObject` `invoke(java.lang.String name, PyObject arg1, PyObject[] args, java.lang.String[] keywords)` Shortcut for calling a method on a PyObject with one extra initial argument.
`boolean` `isCallable()`
`boolean` `isDataDescr()`
`boolean` `isIndex()` Determine if this object can act as an index (implements __index__).
`boolean` `isMappingType()`
`boolean` `isNumberType()`
`boolean` `isSequenceType()`
`void` `noAttributeError(java.lang.String name)`
`void` `readonlyAttributeError(java.lang.String name)`
`void` `setDict(PyObject newDict)`
`void` `setType(PyType type)`
`java.lang.String` `toString()`

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

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

### Field Detail

#### TYPE

    public static final PyType TYPE

### Constructor Detail

#### PyObject

    public PyObject(PyType objtype)

#### PyObject

    public PyObject()

The standard constructor for a `PyObject`. It will set the `objtype` field to correspond to the specific subclass of `PyObject` being instantiated.

### Method Detail

#### getType

    public PyType getType()

#### setType

    public void setType(PyType type)

#### delType

    public void delType()

#### fastGetClass

    public PyObject fastGetClass()

#### dispatch__init__

    public void dispatch__init__(PyObject[] args,
                                 java.lang.String[] keywords)

Dispatch __init__ behavior

#### __repr__

    public PyString __repr__()

Equivalent to the standard Python __repr__ method. This method should not typically need to be overrriden. The easiest way to configure the string representation of a `PyObject` is to override the standard Java `toString` method.

#### toString

    public java.lang.String toString()

Overrides:
  `toString` in class `java.lang.Object`

#### __str__

    public PyString __str__()

Equivalent to the standard Python __str__ method. This method should not typically need to be overridden. The easiest way to configure the string representation of a `PyObject` is to override the standard Java `toString` method.

#### __unicode__

    public PyUnicode __unicode__()

#### __hash__

    public final PyInteger __hash__()

Equivalent to the standard Python __hash__ method. This method can not be overridden. Instead, you should override the standard Java `hashCode` method to return an appropriate hash code for the `PyObject`.

#### hashCode

    public int hashCode()

Overrides:
  `hashCode` in class `java.lang.Object`

#### equals

    public boolean equals(java.lang.Object ob_other)

Should almost never be overridden. If overridden, it is the subclasses responsibility to ensure that `a.equals(b) == true` iff `cmp(a,b) == 0`

Overrides:
  `equals` in class `java.lang.Object`

#### __nonzero__

    public boolean __nonzero__()

Equivalent to the standard Python __nonzero__ method. Returns whether of not a given `PyObject` is considered true.

#### __tojava__

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

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.

Parameters:
  `c` - the Class to convert this `PyObject` to.

#### __call__

    public PyObject __call__(PyObject[] args,
                             java.lang.String[] keywords)

The basic method to override when implementing a callable object. The first len(args)-len(keywords) members of args[] are plain arguments. The last len(keywords) arguments are the values of the keyword arguments.

Parameters:
  `args` - all arguments to the function (including keyword arguments).
  `keywords` - the keywords used for all keyword arguments.

#### __call__

    public PyObject __call__(ThreadState state,
                             PyObject[] args,
                             java.lang.String[] keywords)

#### __call__

    public PyObject __call__(PyObject arg1,
                             PyObject[] args,
                             java.lang.String[] keywords)

A variant of the __call__ method with one extra initial argument. This variant is used to allow method invocations to be performed efficiently. The default behavior is to invoke `__call__(args, keywords)` with the appropriate arguments. The only reason to override this function would be for improved performance.

Parameters:
  `arg1` - the first argument to the function.
  `args` - the last arguments to the function (including keyword arguments).
  `keywords` - the keywords used for all keyword arguments.

#### __call__

    public PyObject __call__(ThreadState state,
                             PyObject arg1,
                             PyObject[] args,
                             java.lang.String[] keywords)

#### __call__

    public PyObject __call__(PyObject[] args)

A variant of the __call__ method when no keywords are passed. The default behavior is to invoke `__call__(args, keywords)` with the appropriate arguments. The only reason to override this function would be for improved performance.

Parameters:
  `args` - all arguments to the function.

#### __call__

    public PyObject __call__(ThreadState state,
                             PyObject[] args)

#### __call__

    public PyObject __call__()

A variant of the __call__ method with no arguments. The default behavior is to invoke `__call__(args, keywords)` with the appropriate arguments. The only reason to override this function would be for improved performance.

#### __call__

    public PyObject __call__(ThreadState state)

#### __call__

    public PyObject __call__(PyObject arg0)

A variant of the __call__ method with one argument. The default behavior is to invoke `__call__(args, keywords)` with the appropriate arguments. The only reason to override this function would be for improved performance.

Parameters:
  `arg0` - the single argument to the function.

#### __call__

    public PyObject __call__(ThreadState state,
                             PyObject arg0)

#### __call__

    public PyObject __call__(PyObject arg0,
                             PyObject arg1)

A variant of the __call__ method with two arguments. The default behavior is to invoke `__call__(args, keywords)` with the appropriate arguments. The only reason to override this function would be for improved performance.

Parameters:
  `arg0` - the first argument to the function.
  `arg1` - the second argument to the function.

#### __call__

    public PyObject __call__(ThreadState state,
                             PyObject arg0,
                             PyObject arg1)

#### __call__

    public PyObject __call__(PyObject arg0,
                             PyObject arg1,
                             PyObject arg2)

A variant of the __call__ method with three arguments. The default behavior is to invoke `__call__(args, keywords)` with the appropriate arguments. The only reason to override this function would be for improved performance.

Parameters:
  `arg0` - the first argument to the function.
  `arg1` - the second argument to the function.
  `arg2` - the third argument to the function.

#### __call__

    public PyObject __call__(ThreadState state,
                             PyObject arg0,
                             PyObject arg1,
                             PyObject arg2)

#### __call__

    public PyObject __call__(PyObject arg0,
                             PyObject arg1,
                             PyObject arg2,
                             PyObject arg3)

A variant of the __call__ method with four arguments. The default behavior is to invoke `__call__(args, keywords)` with the appropriate arguments. The only reason to override this function would be for improved performance.

Parameters:
  `arg0` - the first argument to the function.
  `arg1` - the second argument to the function.
  `arg2` - the third argument to the function.
  `arg3` - the fourth argument to the function.

#### __call__

    public PyObject __call__(ThreadState state,
                             PyObject arg0,
                             PyObject arg1,
                             PyObject arg2,
                             PyObject arg3)

#### _callextra

    public PyObject _callextra(PyObject[] args,
                               java.lang.String[] keywords,
                               PyObject starargs,
                               PyObject kwargs)

#### isCallable

    public boolean isCallable()

#### isNumberType

    public boolean isNumberType()

#### isMappingType

    public boolean isMappingType()

#### isSequenceType

    public boolean isSequenceType()

#### isIndex

    public boolean isIndex()

Determine if this object can act as an index (implements __index__).

Returns:
  true if the object can act as an index

#### __len__

    public int __len__()

Equivalent to the standard Python __len__ method. Part of the mapping discipline.

Returns:
  the length of the object

#### __finditem__

    public PyObject __finditem__(PyObject key)

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.

Parameters:
  `key` - the key to lookup in this container
Returns:
  the value corresponding to key or null if key is not found

#### __finditem__

    public PyObject __finditem__(int key)

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.

Parameters:
  `key` - the key to lookup in this sequence.
Returns:
  the value corresponding to key or null if key is not found.
See Also:
  `__finditem__(PyObject)`

#### __finditem__

    public PyObject __finditem__(java.lang.String key)

A variant of the __finditem__ method which accepts a Java `String` 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. Warning: key must be an interned string!!!!!!!!

Parameters:
  `key` - the key to lookup in this sequence - must be an interned string .
Returns:
  the value corresponding to key or null if key is not found.
See Also:
  `__finditem__(PyObject)`

#### __getitem__

    public PyObject __getitem__(int key)

Equivalent to the standard Python __getitem__ method. This variant takes a primitive `int` as the key. This method should not be overridden. Override the `__finditem__` method instead.

Parameters:
  `key` - the key to lookup in this container.
Returns:
  the value corresponding to that key.
Throws:
  `Py.KeyError` - if the key is not found.
See Also:
  `__finditem__(int)`

#### __getitem__

    public PyObject __getitem__(PyObject key)

Equivalent to the standard Python __getitem__ method. This method should not be overridden. Override the `__finditem__` method instead.

Parameters:
  `key` - the key to lookup in this container.
Returns:
  the value corresponding to that key.
Throws:
  `Py.KeyError` - if the key is not found.
See Also:
  `__finditem__(PyObject)`

#### __setitem__

    public void __setitem__(PyObject key,
                            PyObject value)

Equivalent to the standard Python __setitem__ method.

Parameters:
  `key` - the key whose value will be set
  `value` - the value to set this key to

#### __setitem__

    public void __setitem__(java.lang.String key,
                            PyObject value)

A variant of the __setitem__ method which accepts a String as the key. This String must be interned. By default, this will call `__setitem__(PyObject key, PyObject value)` with the appropriate args. The only reason to override this method is for performance.

Parameters:
  `key` - the key whose value will be set - must be an interned string .
  `value` - the value to set this key to
See Also:
  `__setitem__(PyObject, PyObject)`

#### __setitem__

    public void __setitem__(int key,
                            PyObject value)

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.

Parameters:
  `key` - the key whose value will be set
  `value` - the value to set this key to
See Also:
  `__setitem__(PyObject, PyObject)`

#### __delitem__

    public void __delitem__(PyObject key)

Equivalent to the standard Python __delitem__ method.

Parameters:
  `key` - the key to be removed from the container
Throws:
  `Py.KeyError` - if the key is not found in the container

#### __delitem__

    public void __delitem__(java.lang.String key)

A variant of the __delitem__ method which accepts a String as the key. This String must be interned. By default, this will call `__delitem__(PyObject key)` with the appropriate args. The only reason to override this method is for performance.

Parameters:
  `key` - the key who will be removed - must be an interned string .
Throws:
  `Py.KeyError` - if the key is not found in the container
See Also:
  `__delitem__(PyObject)`

#### __getslice__

    public PyObject __getslice__(PyObject s_start,
                                 PyObject s_stop,
                                 PyObject s_step)

#### __setslice__

    public void __setslice__(PyObject s_start,
                             PyObject s_stop,
                             PyObject s_step,
                             PyObject value)

#### __delslice__

    public void __delslice__(PyObject s_start,
                             PyObject s_stop,
                             PyObject s_step)

#### __getslice__

    public PyObject __getslice__(PyObject start,
                                 PyObject stop)

#### __setslice__

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

#### __delslice__

    public void __delslice__(PyObject start,
                             PyObject stop)

#### __iter__

    public PyObject __iter__()

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 somting with item
     }

Since:
  2.2

#### asIterable

    public java.lang.Iterable<PyObject> asIterable()

Returns an Iterable over the Python iterator returned by __iter__ on this object. If this object doesn't support __iter__, a TypeException will be raised when iterator is called on the returned Iterable.

#### __iternext__

    public PyObject __iternext__()

Return the next element of the sequence that this is an iterator for. Returns null when the end of the sequence is reached.

Since:
  2.2

#### __findattr__

    public final PyObject __findattr__(PyString name)

Very similar to the standard Python __getattr__ method. Instead of throwing a AttributeError if the item isn't found, this just returns null. By default, this method will call `__findattr__(name.internedString)` with the appropriate args.

Parameters:
  `name` - the name to lookup in this namespace
Returns:
  the value corresponding to name or null if name is not found

#### __findattr__

    public final PyObject __findattr__(java.lang.String name)

A variant of the __findattr__ method which accepts a Java `String` as the name. Warning: name must be an interned string!

Parameters:
  `name` - the name to lookup in this namespace must be an interned string .
Returns:
  the value corresponding to name or null if name is not found

#### __findattr_ex__

    public PyObject __findattr_ex__(java.lang.String name)

Attribute lookup hook. If the attribute is not found, null may be returned or a Py.AttributeError can be thrown, whatever is more correct, efficient and/or convenient for the implementing class. Client code should use `__getattr__(String)` or `__findattr__(String)`. Both methods have a clear policy for failed lookups.

Returns:
  The looked up value. May return null if the attribute is not found
Throws:
  `PyException(AttributeError)` - if the attribute is not found. This is not mandatory, null can be returned if it fits the implementation better, or for performance reasons.

#### __getattr__

    public final PyObject __getattr__(PyString name)

Equivalent to the standard Python __getattr__ method. By default, this method will call `__getattr__(name.internedString)` with the appropriate args.

Parameters:
  `name` - the name to lookup in this namespace
Returns:
  the value corresponding to name
Throws:
  `Py.AttributeError` - if the name is not found.
See Also:
  `__findattr_ex__(String)`

#### __getattr__

    public final PyObject __getattr__(java.lang.String name)

A variant of the __getattr__ method which accepts a Java `String` as the name. This method can not be overridden. Override the `__findattr_ex__` method instead. Warning: name must be an interned string!!!!!!!!

Parameters:
  `name` - the name to lookup in this namespace must be an interned string .
Returns:
  the value corresponding to name
Throws:
  `Py.AttributeError` - if the name is not found.
See Also:
  `__findattr__(java.lang.String)`

#### noAttributeError

    public void noAttributeError(java.lang.String name)

#### readonlyAttributeError

    public void readonlyAttributeError(java.lang.String name)

#### __setattr__

    public final void __setattr__(PyString name,
                                  PyObject value)

Equivalent to the standard Python __setattr__ method. This method can not be overridden.

Parameters:
  `name` - the name to lookup in this namespace
Throws:
  `Py.AttributeError` - if the name is not found.
See Also:
  `__setattr__(java.lang.String, PyObject)`

#### __setattr__

    public void __setattr__(java.lang.String name,
                            PyObject value)

A variant of the __setattr__ method which accepts a String as the key. This String must be interned.

Parameters:
  `name` - the name whose value will be set - must be an interned string .
  `value` - the value to set this name to
See Also:
  `__setattr__(PyString, PyObject)`

#### __delattr__

    public final void __delattr__(PyString name)

Equivalent to the standard Python __delattr__ method. This method can not be overridden.

Parameters:
  `name` - the name to which will be removed
Throws:
  `Py.AttributeError` - if the name doesn't exist
See Also:
  `__delattr__(java.lang.String)`

#### __delattr__

    public void __delattr__(java.lang.String name)

A variant of the __delattr__ method which accepts a String as the key. This String must be interned. By default, this will call `__delattr__(PyString name)` with the appropriate args. The only reason to override this method is for performance.

Parameters:
  `name` - the name which will be removed - must be an interned string .
Throws:
  `Py.AttributeError` - if the name doesn't exist
See Also:
  `__delattr__(PyString)`

#### __dir__

    public PyObject __dir__()

Equivalent to the standard Python __dir__ method.

Returns:
  a list of names defined by this object.

#### _doget

    public PyObject _doget(PyObject container)

#### _doget

    public PyObject _doget(PyObject container,
                           PyObject wherefound)

#### _doset

    public boolean _doset(PyObject container,
                          PyObject value)

#### __coerce_ex__

    public java.lang.Object __coerce_ex__(PyObject o)

Implements numeric coercion

Parameters:
  `o` - the other object involved in the coercion
Returns:
  null if coercion is not implemented Py.None if coercion was not possible a single PyObject to use to replace o if this is unchanged; or a PyObject[2] consisting of replacements for this and o.

#### __coerce__

    public final PyObject __coerce__(PyObject pyo)

Equivalent to the standard Python __coerce__ method. This method can not be overridden. To implement __coerce__ functionality, override __coerce_ex__ instead. Also, do not call this method from exposed 'coerce' methods. Instead, Use adaptToCoerceTuple over the result of the overriden __coerce_ex__.

Parameters:
  `pyo` - the other object involved in the coercion.
Returns:
  a tuple of this object and pyo coerced to the same type or Py.NotImplemented if no coercion is possible.
See Also:
  `__coerce_ex__(org.python.core.PyObject)`

#### __cmp__

    public int __cmp__(PyObject other)

Equivalent to the standard Python __cmp__ method.

Parameters:
  `other` - the object to compare this with.
Returns:
  -1 if this < o; 0 if this == o; +1 if this > o; -2 if no comparison is implemented

#### __eq__

    public PyObject __eq__(PyObject other)

Equivalent to the standard Python __eq__ method.

Parameters:
  `other` - the object to compare this with.
Returns:
  the result of the comparison.

#### __ne__

    public PyObject __ne__(PyObject other)

Equivalent to the standard Python __ne__ method.

Parameters:
  `other` - the object to compare this with.
Returns:
  the result of the comparison.

#### __le__

    public PyObject __le__(PyObject other)

Equivalent to the standard Python __le__ method.

Parameters:
  `other` - the object to compare this with.
Returns:
  the result of the comparison.

#### __lt__

    public PyObject __lt__(PyObject other)

Equivalent to the standard Python __lt__ method.

Parameters:
  `other` - the object to compare this with.
Returns:
  the result of the comparison.

#### __ge__

    public PyObject __ge__(PyObject other)

Equivalent to the standard Python __ge__ method.

Parameters:
  `other` - the object to compare this with.
Returns:
  the result of the comparison.

#### __gt__

    public PyObject __gt__(PyObject other)

Equivalent to the standard Python __gt__ method.

Parameters:
  `other` - the object to compare this with.
Returns:
  the result of the comparison.

#### _cmp

    public final int _cmp(PyObject o)

Implements cmp(this, other)

Parameters:
  `o` - the object to compare this with.
Returns:
  -1 if this < 0; 0 if this == o; +1 if this > o

#### _eq

    public final PyObject _eq(PyObject o)

Implements the Python expression `this == other`.

Parameters:
  `o` - the object to compare this with.
Returns:
  the result of the comparison

#### _ne

    public final PyObject _ne(PyObject o)

Implements the Python expression `this != other`.

Parameters:
  `o` - the object to compare this with.
Returns:
  the result of the comparison

#### _le

    public final PyObject _le(PyObject o)

Implements the Python expression `this <= other`.

Parameters:
  `o` - the object to compare this with.
Returns:
  the result of the comparison

#### _lt

    public final PyObject _lt(PyObject o)

Implements the Python expression `this < other`.

Parameters:
  `o` - the object to compare this with.
Returns:
  the result of the comparison

#### _ge

    public final PyObject _ge(PyObject o)

Implements the Python expression `this >= other`.

Parameters:
  `o` - the object to compare this with.
Returns:
  the result of the comparison

#### _gt

    public final PyObject _gt(PyObject o)

Implements the Python expression `this > other`.

Parameters:
  `o` - the object to compare this with.
Returns:
  the result of the comparison

#### _is

    public PyObject _is(PyObject o)

Implements `is` operator.

Parameters:
  `o` - the object to compare this with.
Returns:
  the result of the comparison

#### _isnot

    public PyObject _isnot(PyObject o)

Implements `is not` operator.

Parameters:
  `o` - the object to compare this with.
Returns:
  the result of the comparison

#### _in

    public final PyObject _in(PyObject o)

Implements `in` operator.

Parameters:
  `o` - the container to search for this element.
Returns:
  the result of the search.

#### _notin

    public final PyObject _notin(PyObject o)

Implements `not in` operator.

Parameters:
  `o` - the container to search for this element.
Returns:
  the result of the search.

#### __contains__

    public boolean __contains__(PyObject o)

Equivalent to the standard Python __contains__ method.

Parameters:
  `o` - the element to search for in this container.
Returns:
  the result of the search.

#### __not__

    public PyObject __not__()

Implements boolean not

Returns:
  not this.

#### __hex__

    public PyString __hex__()

Equivalent to the standard Python __hex__ method Should only be overridden by numeric objects that can be reasonably represented as a hexadecimal string.

Returns:
  a string representing this object as a hexadecimal number.

#### __oct__

    public PyString __oct__()

Equivalent to the standard Python __oct__ method. Should only be overridden by numeric objects that can be reasonably represented as an octal string.

Returns:
  a string representing this object as an octal number.

#### __int__

    public PyObject __int__()

Equivalent to the standard Python __int__ method. Should only be overridden by numeric objects that can be reasonably coerced into an integer.

Returns:
  an integer corresponding to the value of this object.

#### __long__

    public PyObject __long__()

Equivalent to the standard Python __long__ method. Should only be overridden by numeric objects that can be reasonably coerced into a python long.

Returns:
  a PyLong or PyInteger corresponding to the value of this object.

#### __float__

    public PyFloat __float__()

Equivalent to the standard Python __float__ method. Should only be overridden by numeric objects that can be reasonably coerced into a python float.

Returns:
  a float corresponding to the value of this object.

#### __complex__

    public PyComplex __complex__()

Equivalent to the standard Python __complex__ method. Should only be overridden by numeric objects that can be reasonably coerced into a python complex number.

Returns:
  a complex number corresponding to the value of this object.

#### __pos__

    public PyObject __pos__()

Equivalent to the standard Python __pos__ method.

Returns:
  +this.

#### __neg__

    public PyObject __neg__()

Equivalent to the standard Python __neg__ method.

Returns:
  -this.

#### __abs__

    public PyObject __abs__()

Equivalent to the standard Python __abs__ method.

Returns:
  abs(this).

#### __invert__

    public PyObject __invert__()

Equivalent to the standard Python __invert__ method.

Returns:
  ~this.

#### __index__

    public PyObject __index__()

Equivalent to the standard Python __index__ method.

Returns:
  a PyInteger or PyLong
Throws:
  `a` - Py.TypeError if not supported

#### __pow__

    public PyObject __pow__(PyObject o2,
                            PyObject o3)

Implements the three argument power function.

Parameters:
  `o2` - the power to raise this number to.
  `o3` - the modulus to perform this operation in or null if no modulo is to be used
Returns:
  this object raised to the given power in the given modulus

#### __add__

    public PyObject __add__(PyObject other)

Equivalent to the standard Python __add__ method

Parameters:
  `other` - the object to perform this binary operation with (the right-hand operand).
Returns:
  the result of the add, or null if this operation is not defined

#### __radd__

    public PyObject __radd__(PyObject other)

Equivalent to the standard Python __radd__ method

Parameters:
  `other` - the object to perform this binary operation with (the left-hand operand).
Returns:
  the result of the add, or null if this operation is not defined.

#### __iadd__

    public PyObject __iadd__(PyObject other)

Equivalent to the standard Python __iadd__ method

Parameters:
  `other` - the object to perform this binary operation with (the right-hand operand).
Returns:
  the result of the iadd, or null if this operation is not defined

#### _add

    public final PyObject _add(PyObject o2)

Implements the Python expression `this + o2`

Parameters:
  `o2` - the object to perform this binary operation with.
Returns:
  the result of the add.
Throws:
  `Py.TypeError` - if this operation can't be performed with these operands.

#### _iadd

    public final PyObject _iadd(PyObject o2)

Implements the Python expression `this += o2`

Parameters:
  `o2` - the object to perform this inplace binary operation with.
Returns:
  the result of the iadd.
Throws:
  `Py.TypeError` - if this operation can't be performed with these operands.

#### __sub__

    public PyObject __sub__(PyObject other)

Equivalent to the standard Python __sub__ method

Parameters:
  `other` - the object to perform this binary operation with (the right-hand operand).
Returns:
  the result of the sub, or null if this operation is not defined

#### __rsub__

    public PyObject __rsub__(PyObject other)

Equivalent to the standard Python __rsub__ method

Parameters:
  `other` - the object to perform this binary operation with (the left-hand operand).
Returns:
  the result of the sub, or null if this operation is not defined.

#### __isub__

    public PyObject __isub__(PyObject other)

Equivalent to the standard Python __isub__ method

Parameters:
  `other` - the object to perform this binary operation with (the right-hand operand).
Returns:
  the result of the isub, or null if this operation is not defined

#### _sub

    public final PyObject _sub(PyObject o2)

Implements the Python expression `this - o2`

Parameters:
  `o2` - the object to perform this binary operation with.
Returns:
  the result of the sub.
Throws:
  `Py.TypeError` - if this operation can't be performed with these operands.

#### _isub

    public final PyObject _isub(PyObject o2)

Implements the Python expression `this -= o2`

Parameters:
  `o2` - the object to perform this inplace binary operation with.
Returns:
  the result of the isub.
Throws:
  `Py.TypeError` - if this operation can't be performed with these operands.

#### __mul__

    public PyObject __mul__(PyObject other)

Equivalent to the standard Python __mul__ method

Parameters:
  `other` - the object to perform this binary operation with (the right-hand operand).
Returns:
  the result of the mul, or null if this operation is not defined

#### __rmul__

    public PyObject __rmul__(PyObject other)

Equivalent to the standard Python __rmul__ method

Parameters:
  `other` - the object to perform this binary operation with (the left-hand operand).
Returns:
  the result of the mul, or null if this operation is not defined.

#### __imul__

    public PyObject __imul__(PyObject other)

Equivalent to the standard Python __imul__ method

Parameters:
  `other` - the object to perform this binary operation with (the right-hand operand).
Returns:
  the result of the imul, or null if this operation is not defined

#### _mul

    public final PyObject _mul(PyObject o2)

Implements the Python expression `this * o2`

Parameters:
  `o2` - the object to perform this binary operation with.
Returns:
  the result of the mul.
Throws:
  `Py.TypeError` - if this operation can't be performed with these operands.

#### _imul

    public final PyObject _imul(PyObject o2)

Implements the Python expression `this *= o2`

Parameters:
  `o2` - the object to perform this inplace binary operation with.
Returns:
  the result of the imul.
Throws:
  `Py.TypeError` - if this operation can't be performed with these operands.

#### __div__

    public PyObject __div__(PyObject other)

Equivalent to the standard Python __div__ method

Parameters:
  `other` - the object to perform this binary operation with (the right-hand operand).
Returns:
  the result of the div, or null if this operation is not defined

#### __rdiv__

    public PyObject __rdiv__(PyObject other)

Equivalent to the standard Python __rdiv__ method

Parameters:
  `other` - the object to perform this binary operation with (the left-hand operand).
Returns:
  the result of the div, or null if this operation is not defined.

#### __idiv__

    public PyObject __idiv__(PyObject other)

Equivalent to the standard Python __idiv__ method

Parameters:
  `other` - the object to perform this binary operation with (the right-hand operand).
Returns:
  the result of the idiv, or null if this operation is not defined

#### _div

    public final PyObject _div(PyObject o2)

Implements the Python expression `this / o2`

Parameters:
  `o2` - the object to perform this binary operation with.
Returns:
  the result of the div.
Throws:
  `Py.TypeError` - if this operation can't be performed with these operands.

#### _idiv

    public final PyObject _idiv(PyObject o2)

Implements the Python expression `this /= o2`

Parameters:
  `o2` - the object to perform this inplace binary operation with.
Returns:
  the result of the idiv.
Throws:
  `Py.TypeError` - if this operation can't be performed with these operands.

#### __floordiv__

    public PyObject __floordiv__(PyObject other)

Equivalent to the standard Python __floordiv__ method

Parameters:
  `other` - the object to perform this binary operation with (the right-hand operand).
Returns:
  the result of the floordiv, or null if this operation is not defined

#### __rfloordiv__

    public PyObject __rfloordiv__(PyObject other)

Equivalent to the standard Python __rfloordiv__ method

Parameters:
  `other` - the object to perform this binary operation with (the left-hand operand).
Returns:
  the result of the floordiv, or null if this operation is not defined.

#### __ifloordiv__

    public PyObject __ifloordiv__(PyObject other)

Equivalent to the standard Python __ifloordiv__ method

Parameters:
  `other` - the object to perform this binary operation with (the right-hand operand).
Returns:
  the result of the ifloordiv, or null if this operation is not defined

#### _floordiv

    public final PyObject _floordiv(PyObject o2)

Implements the Python expression `this // o2`

Parameters:
  `o2` - the object to perform this binary operation with.
Returns:
  the result of the floordiv.
Throws:
  `Py.TypeError` - if this operation can't be performed with these operands.

#### _ifloordiv

    public final PyObject _ifloordiv(PyObject o2)

Implements the Python expression `this //= o2`

Parameters:
  `o2` - the object to perform this inplace binary operation with.
Returns:
  the result of the ifloordiv.
Throws:
  `Py.TypeError` - if this operation can't be performed with these operands.

#### __truediv__

    public PyObject __truediv__(PyObject other)

Equivalent to the standard Python __truediv__ method

Parameters:
  `other` - the object to perform this binary operation with (the right-hand operand).
Returns:
  the result of the truediv, or null if this operation is not defined

#### __rtruediv__

    public PyObject __rtruediv__(PyObject other)

Equivalent to the standard Python __rtruediv__ method

Parameters:
  `other` - the object to perform this binary operation with (the left-hand operand).
Returns:
  the result of the truediv, or null if this operation is not defined.

#### __itruediv__

    public PyObject __itruediv__(PyObject other)

Equivalent to the standard Python __itruediv__ method

Parameters:
  `other` - the object to perform this binary operation with (the right-hand operand).
Returns:
  the result of the itruediv, or null if this operation is not defined

#### _truediv

    public final PyObject _truediv(PyObject o2)

Implements the Python expression `this / o2`

Parameters:
  `o2` - the object to perform this binary operation with.
Returns:
  the result of the truediv.
Throws:
  `Py.TypeError` - if this operation can't be performed with these operands.

#### _itruediv

    public final PyObject _itruediv(PyObject o2)

Implements the Python expression `this /= o2`

Parameters:
  `o2` - the object to perform this inplace binary operation with.
Returns:
  the result of the itruediv.
Throws:
  `Py.TypeError` - if this operation can't be performed with these operands.

#### __mod__

    public PyObject __mod__(PyObject other)

Equivalent to the standard Python __mod__ method

Parameters:
  `other` - the object to perform this binary operation with (the right-hand operand).
Returns:
  the result of the mod, or null if this operation is not defined

#### __rmod__

    public PyObject __rmod__(PyObject other)

Equivalent to the standard Python __rmod__ method

Parameters:
  `other` - the object to perform this binary operation with (the left-hand operand).
Returns:
  the result of the mod, or null if this operation is not defined.

#### __imod__

    public PyObject __imod__(PyObject other)

Equivalent to the standard Python __imod__ method

Parameters:
  `other` - the object to perform this binary operation with (the right-hand operand).
Returns:
  the result of the imod, or null if this operation is not defined

#### _mod

    public final PyObject _mod(PyObject o2)

Implements the Python expression `this % o2`

Parameters:
  `o2` - the object to perform this binary operation with.
Returns:
  the result of the mod.
Throws:
  `Py.TypeError` - if this operation can't be performed with these operands.

#### _imod

    public final PyObject _imod(PyObject o2)

Implements the Python expression `this %= o2`

Parameters:
  `o2` - the object to perform this inplace binary operation with.
Returns:
  the result of the imod.
Throws:
  `Py.TypeError` - if this operation can't be performed with these operands.

#### __divmod__

    public PyObject __divmod__(PyObject other)

Equivalent to the standard Python __divmod__ method

Parameters:
  `other` - the object to perform this binary operation with (the right-hand operand).
Returns:
  the result of the divmod, or null if this operation is not defined

#### __rdivmod__

    public PyObject __rdivmod__(PyObject other)

Equivalent to the standard Python __rdivmod__ method

Parameters:
  `other` - the object to perform this binary operation with (the left-hand operand).
Returns:
  the result of the divmod, or null if this operation is not defined.

#### __idivmod__

    public PyObject __idivmod__(PyObject other)

Equivalent to the standard Python __idivmod__ method

Parameters:
  `other` - the object to perform this binary operation with (the right-hand operand).
Returns:
  the result of the idivmod, or null if this operation is not defined

#### _divmod

    public final PyObject _divmod(PyObject o2)

Implements the Python expression `this divmod o2`

Parameters:
  `o2` - the object to perform this binary operation with.
Returns:
  the result of the divmod.
Throws:
  `Py.TypeError` - if this operation can't be performed with these operands.

#### _idivmod

    public final PyObject _idivmod(PyObject o2)

Implements the Python expression `this divmod= o2`

Parameters:
  `o2` - the object to perform this inplace binary operation with.
Returns:
  the result of the idivmod.
Throws:
  `Py.TypeError` - if this operation can't be performed with these operands.

#### __pow__

    public PyObject __pow__(PyObject other)

Equivalent to the standard Python __pow__ method

Parameters:
  `other` - the object to perform this binary operation with (the right-hand operand).
Returns:
  the result of the pow, or null if this operation is not defined

#### __rpow__

    public PyObject __rpow__(PyObject other)

Equivalent to the standard Python __rpow__ method

Parameters:
  `other` - the object to perform this binary operation with (the left-hand operand).
Returns:
  the result of the pow, or null if this operation is not defined.

#### __ipow__

    public PyObject __ipow__(PyObject other)

Equivalent to the standard Python __ipow__ method

Parameters:
  `other` - the object to perform this binary operation with (the right-hand operand).
Returns:
  the result of the ipow, or null if this operation is not defined

#### _pow

    public final PyObject _pow(PyObject o2)

Implements the Python expression `this ** o2`

Parameters:
  `o2` - the object to perform this binary operation with.
Returns:
  the result of the pow.
Throws:
  `Py.TypeError` - if this operation can't be performed with these operands.

#### _ipow

    public final PyObject _ipow(PyObject o2)

Implements the Python expression `this **= o2`

Parameters:
  `o2` - the object to perform this inplace binary operation with.
Returns:
  the result of the ipow.
Throws:
  `Py.TypeError` - if this operation can't be performed with these operands.

#### __lshift__

    public PyObject __lshift__(PyObject other)

Equivalent to the standard Python __lshift__ method

Parameters:
  `other` - the object to perform this binary operation with (the right-hand operand).
Returns:
  the result of the lshift, or null if this operation is not defined

#### __rlshift__

    public PyObject __rlshift__(PyObject other)

Equivalent to the standard Python __rlshift__ method

Parameters:
  `other` - the object to perform this binary operation with (the left-hand operand).
Returns:
  the result of the lshift, or null if this operation is not defined.

#### __ilshift__

    public PyObject __ilshift__(PyObject other)

Equivalent to the standard Python __ilshift__ method

Parameters:
  `other` - the object to perform this binary operation with (the right-hand operand).
Returns:
  the result of the ilshift, or null if this operation is not defined

#### _lshift

    public final PyObject _lshift(PyObject o2)

Implements the Python expression `this << o2`

Parameters:
  `o2` - the object to perform this binary operation with.
Returns:
  the result of the lshift.
Throws:
  `Py.TypeError` - if this operation can't be performed with these operands.

#### _ilshift

    public final PyObject _ilshift(PyObject o2)

Implements the Python expression `this <<= o2`

Parameters:
  `o2` - the object to perform this inplace binary operation with.
Returns:
  the result of the ilshift.
Throws:
  `Py.TypeError` - if this operation can't be performed with these operands.

#### __rshift__

    public PyObject __rshift__(PyObject other)

Equivalent to the standard Python __rshift__ method

Parameters:
  `other` - the object to perform this binary operation with (the right-hand operand).
Returns:
  the result of the rshift, or null if this operation is not defined

#### __rrshift__

    public PyObject __rrshift__(PyObject other)

Equivalent to the standard Python __rrshift__ method

Parameters:
  `other` - the object to perform this binary operation with (the left-hand operand).
Returns:
  the result of the rshift, or null if this operation is not defined.

#### __irshift__

    public PyObject __irshift__(PyObject other)

Equivalent to the standard Python __irshift__ method

Parameters:
  `other` - the object to perform this binary operation with (the right-hand operand).
Returns:
  the result of the irshift, or null if this operation is not defined

#### _rshift

    public final PyObject _rshift(PyObject o2)

Implements the Python expression `this >> o2`

Parameters:
  `o2` - the object to perform this binary operation with.
Returns:
  the result of the rshift.
Throws:
  `Py.TypeError` - if this operation can't be performed with these operands.

#### _irshift

    public final PyObject _irshift(PyObject o2)

Implements the Python expression `this >>= o2`

Parameters:
  `o2` - the object to perform this inplace binary operation with.
Returns:
  the result of the irshift.
Throws:
  `Py.TypeError` - if this operation can't be performed with these operands.

#### __and__

    public PyObject __and__(PyObject other)

Equivalent to the standard Python __and__ method

Parameters:
  `other` - the object to perform this binary operation with (the right-hand operand).
Returns:
  the result of the and, or null if this operation is not defined

#### __rand__

    public PyObject __rand__(PyObject other)

Equivalent to the standard Python __rand__ method

Parameters:
  `other` - the object to perform this binary operation with (the left-hand operand).
Returns:
  the result of the and, or null if this operation is not defined.

#### __iand__

    public PyObject __iand__(PyObject other)

Equivalent to the standard Python __iand__ method

Parameters:
  `other` - the object to perform this binary operation with (the right-hand operand).
Returns:
  the result of the iand, or null if this operation is not defined

#### _and

    public final PyObject _and(PyObject o2)

Implements the Python expression `this & o2`

Parameters:
  `o2` - the object to perform this binary operation with.
Returns:
  the result of the and.
Throws:
  `Py.TypeError` - if this operation can't be performed with these operands.

#### _iand

    public final PyObject _iand(PyObject o2)

Implements the Python expression `this &= o2`

Parameters:
  `o2` - the object to perform this inplace binary operation with.
Returns:
  the result of the iand.
Throws:
  `Py.TypeError` - if this operation can't be performed with these operands.

#### __or__

    public PyObject __or__(PyObject other)

Equivalent to the standard Python __or__ method

Parameters:
  `other` - the object to perform this binary operation with (the right-hand operand).
Returns:
  the result of the or, or null if this operation is not defined

#### __ror__

    public PyObject __ror__(PyObject other)

Equivalent to the standard Python __ror__ method

Parameters:
  `other` - the object to perform this binary operation with (the left-hand operand).
Returns:
  the result of the or, or null if this operation is not defined.

#### __ior__

    public PyObject __ior__(PyObject other)

Equivalent to the standard Python __ior__ method

Parameters:
  `other` - the object to perform this binary operation with (the right-hand operand).
Returns:
  the result of the ior, or null if this operation is not defined

#### _or

    public final PyObject _or(PyObject o2)

Implements the Python expression `this | o2`

Parameters:
  `o2` - the object to perform this binary operation with.
Returns:
  the result of the or.
Throws:
  `Py.TypeError` - if this operation can't be performed with these operands.

#### _ior

    public final PyObject _ior(PyObject o2)

Implements the Python expression `this |= o2`

Parameters:
  `o2` - the object to perform this inplace binary operation with.
Returns:
  the result of the ior.
Throws:
  `Py.TypeError` - if this operation can't be performed with these operands.

#### __xor__

    public PyObject __xor__(PyObject other)

Equivalent to the standard Python __xor__ method

Parameters:
  `other` - the object to perform this binary operation with (the right-hand operand).
Returns:
  the result of the xor, or null if this operation is not defined

#### __rxor__

    public PyObject __rxor__(PyObject other)

Equivalent to the standard Python __rxor__ method

Parameters:
  `other` - the object to perform this binary operation with (the left-hand operand).
Returns:
  the result of the xor, or null if this operation is not defined.

#### __ixor__

    public PyObject __ixor__(PyObject other)

Equivalent to the standard Python __ixor__ method

Parameters:
  `other` - the object to perform this binary operation with (the right-hand operand).
Returns:
  the result of the ixor, or null if this operation is not defined

#### _xor

    public final PyObject _xor(PyObject o2)

Implements the Python expression `this ^ o2`

Parameters:
  `o2` - the object to perform this binary operation with.
Returns:
  the result of the xor.
Throws:
  `Py.TypeError` - if this operation can't be performed with these operands.

#### _ixor

    public final PyObject _ixor(PyObject o2)

Implements the Python expression `this ^= o2`

Parameters:
  `o2` - the object to perform this inplace binary operation with.
Returns:
  the result of the ixor.
Throws:
  `Py.TypeError` - if this operation can't be performed with these operands.

#### _jcallexc

    public PyObject _jcallexc(java.lang.Object[] args)
                       throws java.lang.Throwable

A convenience function for PyProxys.

Throws:
  `java.lang.Throwable`

#### _jthrow

    public void _jthrow(java.lang.Throwable t)

#### _jcall

    public PyObject _jcall(java.lang.Object[] args)

#### invoke

    public PyObject invoke(java.lang.String name,
                           PyObject[] args,
                           java.lang.String[] keywords)

Shortcut for calling a method on a PyObject from Java. This form is equivalent to o.__getattr__(name).__call__(args, keywords)

Parameters:
  `name` - the name of the method to call. This must be an interned string!
  `args` - an array of the arguments to the call.
  `keywords` - the keywords to use in the call.
Returns:
  the result of calling the method name with args and keywords.

#### invoke

    public PyObject invoke(java.lang.String name,
                           PyObject[] args)

#### invoke

    public PyObject invoke(java.lang.String name)

Shortcut for calling a method on a PyObject with no args.

Parameters:
  `name` - the name of the method to call. This must be an interned string!
Returns:
  the result of calling the method name with no args

#### invoke

    public PyObject invoke(java.lang.String name,
                           PyObject arg1)

Shortcut for calling a method on a PyObject with one arg.

Parameters:
  `name` - the name of the method to call. This must be an interned string!
  `arg1` - the one argument of the method.
Returns:
  the result of calling the method name with arg1

#### invoke

    public PyObject invoke(java.lang.String name,
                           PyObject arg1,
                           PyObject arg2)

Shortcut for calling a method on a PyObject with two args.

Parameters:
  `name` - the name of the method to call. This must be an interned string!
  `arg1` - the first argument of the method.
  `arg2` - the second argument of the method.
Returns:
  the result of calling the method name with arg1 and arg2

#### invoke

    public PyObject invoke(java.lang.String name,
                           PyObject arg1,
                           PyObject[] args,
                           java.lang.String[] keywords)

Shortcut for calling a method on a PyObject with one extra initial argument.

Parameters:
  `name` - the name of the method to call. This must be an interned string!
  `arg1` - the first argument of the method.
  `args` - an array of the arguments to the call.
  `keywords` - the keywords to use in the call.
Returns:
  the result of calling the method name with arg1 args and keywords

#### fastGetDict

    public PyObject fastGetDict()

xxx implements where meaningful

Returns:
  internal object per instance dict or null

#### getDict

    public PyObject getDict()

xxx implements where meaningful

Returns:
  internal object __dict__ or null

#### setDict

    public void setDict(PyObject newDict)

#### delDict

    public void delDict()

#### implementsDescrGet

    public boolean implementsDescrGet()

#### implementsDescrSet

    public boolean implementsDescrSet()

#### implementsDescrDelete

    public boolean implementsDescrDelete()

#### isDataDescr

    public boolean isDataDescr()

#### __get__

    public PyObject __get__(PyObject obj,
                            PyObject type)

Get descriptor for this PyObject.

Parameters:
  `obj` - - the instance accessing this descriptor. Can be null if this is being accessed by a type.
  `type` - - the type accessing this descriptor. Will be null if obj exists as obj is of the type accessing the descriptor.
Returns:
  - the object defined for this descriptor for the given obj and type.

#### __set__

    public void __set__(PyObject obj,
                        PyObject value)

#### __delete__

    public void __delete__(PyObject obj)

#### asName

    public static final java.lang.String asName(PyObject obj)

#### __reduce__

    public PyObject __reduce__()

Used for pickling. Default implementation calls object___reduce__.

Returns:
  a tuple of (class, tuple)

#### __reduce_ex__

    public PyObject __reduce_ex__(int arg)

Used for pickling. If the subclass specifies __reduce__, it will override __reduce_ex__ in the base-class, even if __reduce_ex__ was called with an argument.

Parameters:
  `arg` - PyInteger specifying reduce algorithm (method without this argument defaults to 0).
Returns:
  a tuple of (class, tuple)

#### __reduce_ex__

    public PyObject __reduce_ex__()

#### __getnewargs__

    public PyTuple __getnewargs__()

#### asString

    public java.lang.String asString(int index)
                              throws PyObject.ConversionException

Throws:
  `PyObject.ConversionException`

#### asString

    public java.lang.String asString()

#### asStringOrNull

    public java.lang.String asStringOrNull(int index)
                                    throws PyObject.ConversionException

Throws:
  `PyObject.ConversionException`

#### asStringOrNull

    public java.lang.String asStringOrNull()

#### asName

    public java.lang.String asName(int index)
                            throws PyObject.ConversionException

Throws:
  `PyObject.ConversionException`

#### asInt

    public int asInt(int index)
              throws PyObject.ConversionException

Throws:
  `PyObject.ConversionException`

#### asInt

    public int asInt()

Convert this object into an int. Throws a PyException on failure.

Returns:
  an int value

#### asLong

    public long asLong(int index)
                throws PyObject.ConversionException

Throws:
  `PyObject.ConversionException`

#### asLong

    public long asLong()

Convert this object longo an long. Throws a PyException on failure.

Returns:
  an long value

#### asDouble

    public double asDouble()

Convert this object into a double. Throws a PyException on failure.

Returns:
  a double value

#### asIndex

    public int asIndex()

Convert this object into an index-sized integer. Throws a PyException on failure.

Returns:
  an index-sized int

#### asIndex

    public int asIndex(PyObject err)

Convert this object into an index-sized integer. Throws a Python exception on Overflow if specified an exception type for err.

Parameters:
  `err` - the Python exception to raise on OverflowErrors
Returns:
  an index-sized int