package org.python.modules.sets; import java.util.Iterator; import org.python.core.Py; import org.python.core.PyBuiltinFunction; import org.python.core.PyBuiltinMethod; import org.python.core.PyBuiltinMethodNarrow; import org.python.core.PyException; import org.python.core.PyMethodDescr; import org.python.core.PyNewWrapper; import org.python.core.PyObject; import org.python.core.PyString; import org.python.core.PyType; public class PySet extends BaseSet { public PySet() { super(); } public PySet(PyType type) { super(type); } public PySet(PyObject data) { super(data); } //~ BEGIN GENERATED REGION -- DO NOT EDIT SEE gexpose.py /* type info */ public static final String exposed_name = "Set"; public static final Class exposed_base = PyObject.class; public static void typeSetup(PyObject dict, PyType.Newstyle marker) { class exposed___ne__ extends PyBuiltinMethodNarrow { exposed___ne__(PyObject self, PyBuiltinFunction.Info info) { super(self, info); } public PyBuiltinFunction bind(PyObject self) { return new exposed___ne__(self, info); } public PyObject __call__(PyObject arg0) { PyObject ret = ((PySet) self).baseset___ne__(arg0); if (ret == null) return Py.NotImplemented; return ret; } } dict.__setitem__("__ne__", new PyMethodDescr("__ne__", PySet.class, 1, 1, new exposed___ne__(null, null))); class exposed___eq__ extends PyBuiltinMethodNarrow { exposed___eq__(PyObject self, PyBuiltinFunction.Info info) { super(self, info); } public PyBuiltinFunction bind(PyObject self) { return new exposed___eq__(self, info); } public PyObject __call__(PyObject arg0) { PyObject ret = ((PySet) self).baseset___eq__(arg0); if (ret == null) return Py.NotImplemented; return ret; } } dict.__setitem__("__eq__", new PyMethodDescr("__eq__", PySet.class, 1, 1, new exposed___eq__(null, null))); class exposed___or__ extends PyBuiltinMethodNarrow { exposed___or__(PyObject self, PyBuiltinFunction.Info info) { super(self, info); } public PyBuiltinFunction bind(PyObject self) { return new exposed___or__(self, info); } public PyObject __call__(PyObject arg0) { PyObject ret = ((PySet) self).baseset___or__(arg0); if (ret == null) return Py.NotImplemented; return ret; } } dict.__setitem__("__or__", new PyMethodDescr("__or__", PySet.class, 1, 1, new exposed___or__(null, null))); class exposed___xor__ extends PyBuiltinMethodNarrow { exposed___xor__(PyObject self, PyBuiltinFunction.Info info) { super(self, info); } public PyBuiltinFunction bind(PyObject self) { return new exposed___xor__(self, info); } public PyObject __call__(PyObject arg0) { PyObject ret = ((PySet) self).baseset___xor__(arg0); if (ret == null) return Py.NotImplemented; return ret; } } dict.__setitem__("__xor__", new PyMethodDescr("__xor__", PySet.class, 1, 1, new exposed___xor__(null, null))); class exposed___sub__ extends PyBuiltinMethodNarrow { exposed___sub__(PyObject self, PyBuiltinFunction.Info info) { super(self, info); } public PyBuiltinFunction bind(PyObject self) { return new exposed___sub__(self, info); } public PyObject __call__(PyObject arg0) { PyObject ret = ((PySet) self).baseset___sub__(arg0); if (ret == null) return Py.NotImplemented; return ret; } } dict.__setitem__("__sub__", new PyMethodDescr("__sub__", PySet.class, 1, 1, new exposed___sub__(null, null))); class exposed___and__ extends PyBuiltinMethodNarrow { exposed___and__(PyObject self, PyBuiltinFunction.Info info) { super(self, info); } public PyBuiltinFunction bind(PyObject self) { return new exposed___and__(self, info); } public PyObject __call__(PyObject arg0) { PyObject ret = ((PySet) self).baseset___and__(arg0); if (ret == null) return Py.NotImplemented; return ret; } } dict.__setitem__("__and__", new PyMethodDescr("__and__", PySet.class, 1, 1, new exposed___and__(null, null))); class exposed___gt__ extends PyBuiltinMethodNarrow { exposed___gt__(PyObject self, PyBuiltinFunction.Info info) { super(self, info); } public PyBuiltinFunction bind(PyObject self) { return new exposed___gt__(self, info); } public PyObject __call__(PyObject arg0) { PyObject ret = ((PySet) self).baseset___gt__(arg0); if (ret == null) return Py.NotImplemented; return ret; } } dict.__setitem__("__gt__", new PyMethodDescr("__gt__", PySet.class, 1, 1, new exposed___gt__(null, null))); class exposed___ge__ extends PyBuiltinMethodNarrow { exposed___ge__(PyObject self, PyBuiltinFunction.Info info) { super(self, info); } public PyBuiltinFunction bind(PyObject self) { return new exposed___ge__(self, info); } public PyObject __call__(PyObject arg0) { PyObject ret = ((PySet) self).baseset___ge__(arg0); if (ret == null) return Py.NotImplemented; return ret; } } dict.__setitem__("__ge__", new PyMethodDescr("__ge__", PySet.class, 1, 1, new exposed___ge__(null, null))); class exposed___le__ extends PyBuiltinMethodNarrow { exposed___le__(PyObject self, PyBuiltinFunction.Info info) { super(self, info); } public PyBuiltinFunction bind(PyObject self) { return new exposed___le__(self, info); } public PyObject __call__(PyObject arg0) { PyObject ret = ((PySet) self).baseset___le__(arg0); if (ret == null) return Py.NotImplemented; return ret; } } dict.__setitem__("__le__", new PyMethodDescr("__le__", PySet.class, 1, 1, new exposed___le__(null, null))); class exposed___lt__ extends PyBuiltinMethodNarrow { exposed___lt__(PyObject self, PyBuiltinFunction.Info info) { super(self, info); } public PyBuiltinFunction bind(PyObject self) { return new exposed___lt__(self, info); } public PyObject __call__(PyObject arg0) { PyObject ret = ((PySet) self).baseset___lt__(arg0); if (ret == null) return Py.NotImplemented; return ret; } } dict.__setitem__("__lt__", new PyMethodDescr("__lt__", PySet.class, 1, 1, new exposed___lt__(null, null))); class exposed___contains__ extends PyBuiltinMethodNarrow { exposed___contains__(PyObject self, PyBuiltinFunction.Info info) { super(self, info); } public PyBuiltinFunction bind(PyObject self) { return new exposed___contains__(self, info); } public PyObject __call__(PyObject arg0) { return Py.newBoolean(((PySet) self).baseset___contains__(arg0)); } } dict.__setitem__("__contains__", new PyMethodDescr("__contains__", PySet.class, 1, 1, new exposed___contains__( null, null))); class exposed___deepcopy__ extends PyBuiltinMethodNarrow { exposed___deepcopy__(PyObject self, PyBuiltinFunction.Info info) { super(self, info); } public PyBuiltinFunction bind(PyObject self) { return new exposed___deepcopy__(self, info); } public PyObject __call__(PyObject arg0) { return ((PySet) self).baseset___deepcopy__(arg0); } } dict.__setitem__("__deepcopy__", new PyMethodDescr("__deepcopy__", PySet.class, 1, 1, new exposed___deepcopy__( null, null))); class exposed___nonzero__ extends PyBuiltinMethodNarrow { exposed___nonzero__(PyObject self, PyBuiltinFunction.Info info) { super(self, info); } public PyBuiltinFunction bind(PyObject self) { return new exposed___nonzero__(self, info); } public PyObject __call__() { return Py.newBoolean(((PySet) self).baseset___nonzero__()); } } dict.__setitem__("__nonzero__", new PyMethodDescr("__nonzero__", PySet.class, 0, 0, new exposed___nonzero__( null, null))); class exposed_copy extends PyBuiltinMethodNarrow { exposed_copy(PyObject self, PyBuiltinFunction.Info info) { super(self, info); } public PyBuiltinFunction bind(PyObject self) { return new exposed_copy(self, info); } public PyObject __call__() { return ((PySet) self).baseset_copy(); } } dict.__setitem__("copy", new PyMethodDescr("copy", PySet.class, 0, 0, new exposed_copy(null, null))); class exposed_union extends PyBuiltinMethodNarrow { exposed_union(PyObject self, PyBuiltinFunction.Info info) { super(self, info); } public PyBuiltinFunction bind(PyObject self) { return new exposed_union(self, info); } public PyObject __call__(PyObject arg0) { return ((PySet) self).baseset_union(arg0); } } dict.__setitem__("union", new PyMethodDescr("union", PySet.class, 1, 1, new exposed_union(null, null))); class exposed_difference extends PyBuiltinMethodNarrow { exposed_difference(PyObject self, PyBuiltinFunction.Info info) { super(self, info); } public PyBuiltinFunction bind(PyObject self) { return new exposed_difference(self, info); } public PyObject __call__(PyObject arg0) { return ((PySet) self).baseset_difference(arg0); } } dict.__setitem__("difference", new PyMethodDescr("difference", PySet.class, 1, 1, new exposed_difference(null, null))); class exposed_symmetric_difference extends PyBuiltinMethodNarrow { exposed_symmetric_difference(PyObject self, PyBuiltinFunction.Info info) { super(self, info); } public PyBuiltinFunction bind(PyObject self) { return new exposed_symmetric_difference(self, info); } public PyObject __call__(PyObject arg0) { return ((PySet) self).baseset_symmetric_difference(arg0); } } dict.__setitem__("symmetric_difference", new PyMethodDescr("symmetric_difference", PySet.class, 1, 1, new exposed_symmetric_difference(null, null))); class exposed_intersection extends PyBuiltinMethodNarrow { exposed_intersection(PyObject self, PyBuiltinFunction.Info info) { super(self, info); } public PyBuiltinFunction bind(PyObject self) { return new exposed_intersection(self, info); } public PyObject __call__(PyObject arg0) { return ((PySet) self).baseset_intersection(arg0); } } dict.__setitem__("intersection", new PyMethodDescr("intersection", PySet.class, 1, 1, new exposed_intersection( null, null))); class exposed_issubset extends PyBuiltinMethodNarrow { exposed_issubset(PyObject self, PyBuiltinFunction.Info info) { super(self, info); } public PyBuiltinFunction bind(PyObject self) { return new exposed_issubset(self, info); } public PyObject __call__(PyObject arg0) { return ((PySet) self).baseset_issubset(arg0); } } dict.__setitem__("issubset", new PyMethodDescr("issubset", PySet.class, 1, 1, new exposed_issubset(null, null))); class exposed_issuperset extends PyBuiltinMethodNarrow { exposed_issuperset(PyObject self, PyBuiltinFunction.Info info) { super(self, info); } public PyBuiltinFunction bind(PyObject self) { return new exposed_issuperset(self, info); } public PyObject __call__(PyObject arg0) { return ((PySet) self).baseset_issuperset(arg0); } } dict.__setitem__("issuperset", new PyMethodDescr("issuperset", PySet.class, 1, 1, new exposed_issuperset(null, null))); class exposed___len__ extends PyBuiltinMethodNarrow { exposed___len__(PyObject self, PyBuiltinFunction.Info info) { super(self, info); } public PyBuiltinFunction bind(PyObject self) { return new exposed___len__(self, info); } public PyObject __call__() { return Py.newInteger(((PySet) self).baseset___len__()); } } dict.__setitem__("__len__", new PyMethodDescr("__len__", PySet.class, 0, 0, new exposed___len__(null, null))); class exposed___reduce__ extends PyBuiltinMethodNarrow { exposed___reduce__(PyObject self, PyBuiltinFunction.Info info) { super(self, info); } public PyBuiltinFunction bind(PyObject self) { return new exposed___reduce__(self, info); } public PyObject __call__() { return ((PySet) self).baseset___reduce__(); } } dict.__setitem__("__reduce__", new PyMethodDescr("__reduce__", PySet.class, 0, 0, new exposed___reduce__(null, null))); class exposed___hash__ extends PyBuiltinMethodNarrow { exposed___hash__(PyObject self, PyBuiltinFunction.Info info) { super(self, info); } public PyBuiltinFunction bind(PyObject self) { return new exposed___hash__(self, info); } public PyObject __call__() { return Py.newInteger(((PySet) self).Set_hashCode()); } } dict.__setitem__("__hash__", new PyMethodDescr("__hash__", PySet.class, 0, 0, new exposed___hash__(null, null))); class exposed___repr__ extends PyBuiltinMethodNarrow { exposed___repr__(PyObject self, PyBuiltinFunction.Info info) { super(self, info); } public PyBuiltinFunction bind(PyObject self) { return new exposed___repr__(self, info); } public PyObject __call__() { return new PyString(((PySet) self).baseset_toString()); } } dict.__setitem__("__repr__", new PyMethodDescr("__repr__", PySet.class, 0, 0, new exposed___repr__(null, null))); class exposed_add extends PyBuiltinMethodNarrow { exposed_add(PyObject self, PyBuiltinFunction.Info info) { super(self, info); } public PyBuiltinFunction bind(PyObject self) { return new exposed_add(self, info); } public PyObject __call__(PyObject arg0) { ((PySet) self).Set_add(arg0); return Py.None; } } dict.__setitem__("add", new PyMethodDescr("add", PySet.class, 1, 1, new exposed_add(null, null))); class exposed_remove extends PyBuiltinMethodNarrow { exposed_remove(PyObject self, PyBuiltinFunction.Info info) { super(self, info); } public PyBuiltinFunction bind(PyObject self) { return new exposed_remove(self, info); } public PyObject __call__(PyObject arg0) { ((PySet) self).Set_remove(arg0); return Py.None; } } dict.__setitem__("remove", new PyMethodDescr("remove", PySet.class, 1, 1, new exposed_remove(null, null))); class exposed_discard extends PyBuiltinMethodNarrow { exposed_discard(PyObject self, PyBuiltinFunction.Info info) { super(self, info); } public PyBuiltinFunction bind(PyObject self) { return new exposed_discard(self, info); } public PyObject __call__(PyObject arg0) { ((PySet) self).Set_discard(arg0); return Py.None; } } dict.__setitem__("discard", new PyMethodDescr("discard", PySet.class, 1, 1, new exposed_discard(null, null))); class exposed_pop extends PyBuiltinMethodNarrow { exposed_pop(PyObject self, PyBuiltinFunction.Info info) { super(self, info); } public PyBuiltinFunction bind(PyObject self) { return new exposed_pop(self, info); } public PyObject __call__() { return ((PySet) self).Set_pop(); } } dict.__setitem__("pop", new PyMethodDescr("pop", PySet.class, 0, 0, new exposed_pop(null, null))); class exposed_clear extends PyBuiltinMethodNarrow { exposed_clear(PyObject self, PyBuiltinFunction.Info info) { super(self, info); } public PyBuiltinFunction bind(PyObject self) { return new exposed_clear(self, info); } public PyObject __call__() { ((PySet) self).Set_clear(); return Py.None; } } dict.__setitem__("clear", new PyMethodDescr("clear", PySet.class, 0, 0, new exposed_clear(null, null))); class exposed_update extends PyBuiltinMethodNarrow { exposed_update(PyObject self, PyBuiltinFunction.Info info) { super(self, info); } public PyBuiltinFunction bind(PyObject self) { return new exposed_update(self, info); } public PyObject __call__(PyObject arg0) { ((PySet) self).Set_update(arg0); return Py.None; } } dict.__setitem__("update", new PyMethodDescr("update", PySet.class, 1, 1, new exposed_update(null, null))); class exposed_union_update extends PyBuiltinMethodNarrow { exposed_union_update(PyObject self, PyBuiltinFunction.Info info) { super(self, info); } public PyBuiltinFunction bind(PyObject self) { return new exposed_union_update(self, info); } public PyObject __call__(PyObject arg0) { ((PySet) self).Set_union_update(arg0); return Py.None; } } dict.__setitem__("union_update", new PyMethodDescr("union_update", PySet.class, 1, 1, new exposed_union_update( null, null))); class exposed_intersection_update extends PyBuiltinMethodNarrow { exposed_intersection_update(PyObject self, PyBuiltinFunction.Info info) { super(self, info); } public PyBuiltinFunction bind(PyObject self) { return new exposed_intersection_update(self, info); } public PyObject __call__(PyObject arg0) { ((PySet) self).Set_intersection_update(arg0); return Py.None; } } dict.__setitem__("intersection_update", new PyMethodDescr("intersection_update", PySet.class, 1, 1, new exposed_intersection_update(null, null))); class exposed_symmetric_difference_update extends PyBuiltinMethodNarrow { exposed_symmetric_difference_update(PyObject self, PyBuiltinFunction.Info info) { super(self, info); } public PyBuiltinFunction bind(PyObject self) { return new exposed_symmetric_difference_update(self, info); } public PyObject __call__(PyObject arg0) { ((PySet) self).Set_symmetric_difference_update(arg0); return Py.None; } } dict.__setitem__("symmetric_difference_update", new PyMethodDescr("symmetric_difference_update", PySet.class, 1, 1, new exposed_symmetric_difference_update(null, null))); class exposed_difference_update extends PyBuiltinMethodNarrow { exposed_difference_update(PyObject self, PyBuiltinFunction.Info info) { super(self, info); } public PyBuiltinFunction bind(PyObject self) { return new exposed_difference_update(self, info); } public PyObject __call__(PyObject arg0) { ((PySet) self).Set_difference_update(arg0); return Py.None; } } dict.__setitem__("difference_update", new PyMethodDescr("difference_update", PySet.class, 1, 1, new exposed_difference_update(null, null))); class exposed__as_immutable extends PyBuiltinMethodNarrow { exposed__as_immutable(PyObject self, PyBuiltinFunction.Info info) { super(self, info); } public PyBuiltinFunction bind(PyObject self) { return new exposed__as_immutable(self, info); } public PyObject __call__() { return ((PySet) self).Set__as_immutable(); } } dict.__setitem__("_as_immutable", new PyMethodDescr("_as_immutable", PySet.class, 0, 0, new exposed__as_immutable(null, null))); class exposed___init__ extends PyBuiltinMethod { exposed___init__(PyObject self, PyBuiltinFunction.Info info) { super(self, info); } public PyBuiltinFunction bind(PyObject self) { return new exposed___init__(self, info); } public PyObject __call__(PyObject[] args) { return __call__(args, Py.NoKeywords); } public PyObject __call__(PyObject[] args, String[] keywords) { ((PySet) self).Set_init(args, keywords); return Py.None; } } dict.__setitem__("__init__", new PyMethodDescr("__init__", PySet.class, -1, -1, new exposed___init__(null, null))); dict.__setitem__("__new__", new PyNewWrapper(PySet.class, "__new__", -1, -1) { public PyObject new_impl(boolean init, PyType subtype, PyObject[] args, String[] keywords) { PySet newobj; if (for_type == subtype) { newobj = new PySet(); if (init) newobj.Set_init(args, keywords); } else { newobj = new PySetDerived(subtype); } return newobj; } }); } //~ END GENERATED REGION -- DO NOT EDIT SEE gexpose.py final void Set_init(PyObject[] args, String[] kwds) { int nargs = args.length - kwds.length; if (nargs > 1) { throw PyBuiltinFunction.DefaultInfo.unexpectedCall(nargs, false, exposed_name, 0, 1); } if (nargs == 0) { return; } PyObject o = args[0]; _update(o); } public PyObject __ior__(PyObject other) { return Set___ior__(other); } final PyObject Set___ior__(PyObject other) { BaseSet bs = this._binary_sanity_check(other); this._set.addAll(bs._set); return this; } public PyObject __ixor__(PyObject other) { return Set___ixor__(other); } final PyObject Set___ixor__(PyObject other) { this._binary_sanity_check(other); Set_symmetric_difference_update(other); return this; } public PyObject __iand__(PyObject other) { return Set___iand__(other); } final PyObject Set___iand__(PyObject other) { BaseSet bs = this._binary_sanity_check(other); this._set = ((BaseSet) this.__and__(bs))._set; return this; } public PyObject __isub__(PyObject other) { return Set___isub__(other); } final PyObject Set___isub__(PyObject other) { BaseSet bs = this._binary_sanity_check(other); this._set.removeAll(bs._set); return this; } public int hashCode() { return Set_hashCode(); } final int Set_hashCode() { throw Py.TypeError("Can't hash a Set, only an ImmutableSet."); } final void Set_add(PyObject o) { try { this._set.add(o); } catch (PyException e) { PyObject immutable = this.asImmutable(e, o); this._set.add(immutable); } } final void Set_remove(PyObject o) { boolean b = false; try { b = this._set.remove(o); } catch (PyException e) { PyObject immutable = this.asImmutable(e, o); b = this._set.remove(immutable); } if (!b) { throw new PyException(Py.LookupError, o.toString()); } } final void Set_discard(PyObject o) { try { this._set.remove(o); } catch (PyException e) { PyObject immutable = this.asImmutable(e, o); this._set.remove(immutable); } } final PyObject Set_pop() { Iterator iterator = this._set.iterator(); Object first = iterator.next(); this._set.remove(first); return (PyObject) first; } final void Set_clear() { this._set.clear(); } final void Set_update(PyObject data) { this._update(data); } final void Set_union_update(PyObject other) { this._update(other); } final void Set_intersection_update(PyObject other) { if (other instanceof BaseSet) { this.__iand__(other); } else { BaseSet set = (BaseSet) baseset_intersection(other); this._set = set._set; } } final void Set_symmetric_difference_update(PyObject other) { BaseSet bs = (other instanceof BaseSet) ? (BaseSet) other : new PySet(other); for (Iterator iterator = bs._set.iterator(); iterator.hasNext();) { Object o = iterator.next(); if (this._set.contains(o)) { this._set.remove(o); } else { this._set.add(o); } } } final void Set_difference_update(PyObject other) { if (other instanceof BaseSet) { this.__isub__(other); return; } PyObject iter = other.__iter__(); for (PyObject o; (o = iter.__iternext__()) != null;) { if (this.__contains__(o)) { this._set.remove(o); } } } final PyObject Set__as_immutable() { return new PyImmutableSet(this); } }