/raw_html/pydobject.html
HTML | 593 lines | 511 code | 81 blank | 1 comment | 0 complexity | 09144a5014f8a690758b40741c2760ac MD5 | raw file
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
- <link href="pyd.css" rel="stylesheet" type="text/css">
- <title>pyd.pydobject</title>
- </head>
-
- <body>
- %(nav)s
- <div id="content">
-
- <h1>pyd.pydobject</h1>
- <!-- Generated by Ddoc from pyd\pydobject.d -->
- <p>The PydObject class wraps a PyObject*, using the D garbage collector to handle the reference count so that you don't have to. It also overloads quite a lot of operators, and tries to make using Python objects in D code as much like using them in Python as possible. However, it is incomplete (the function and method call methods in particular need work, and there are a number of helper functions that need to be written), and remains a work in progress.</p>
-
- <dl><dt><big>class <u>PydObject</u>;
- </big></dt>
- <dd>Wrapper class for a Python/C API PyObject.
- <br><br>
- Nearly all of these member functions may throw a PythonException if the
- underlying Python API raises a Python exception.
-
- <br><br>
- <b>Authors:</b><br>
- Kirk McDonald
- <br><br>
- <b>See Also:</b><br>
- <a href="http://docs.python.org/api/api.html">The Python/C API</a>
-
- <br><br>
-
- <dl><dt><big>this(PyObject * <i>o</i>, bool <i>borrowed</i> = false);
- </big></dt>
- <dd>Wrap around a passed PyObject*.
- <br><br>
- <b>Params:</b><br>
- <table>
- <tr><td>PyObject * <i>o</i></td> <td>The PyObject to wrap.</td></tr>
- <tr><td>bool <i>borrowed</i></td> <td>Whether <i>o</i> is a borrowed reference. Instances
- of PydObject always own their references.
- Therefore, Py_INCREF will be called if <i>borrowed</i> is
- true.</td></tr>
- </table><br /></dd>
-
- <dt><big>this();</big></dt>
- <dd>The default constructor constructs an instance of the Py_None PydObject.<br /><br /></dd>
-
- <dt><big>PyObject * <u>ptr</u>();</big></dt>
- <dd>Returns a borrowed reference to the PyObject.<br><br></dd>
-
- <dt><big>bool <u>hasattr</u>(char[] <i>attr_name</i>);</big></dt>
- <dd>Same as hasattr(this, <i>attr_name</i>) in Python.<br><br></dd>
-
- <dt><big>bool <u>hasattr</u>(PydObject <i>attr_name</i>);
- </big></dt>
- <dd>Same as hasattr(this, <i>attr_name</i>) in Python.
- <br><br>
-
- </dd>
- <dt><big>PydObject <u>getattr</u>(char[] <i>attr_name</i>);
- </big></dt>
- <dd>Same as getattr(this, <i>attr_name</i>) in Python.
- <br><br>
-
- </dd>
- <dt><big>PydObject <u>getattr</u>(PydObject <i>attr_name</i>);
- </big></dt>
- <dd>Same as getattr(this, <i>attr_name</i>) in Python.
- <br><br>
-
- </dd>
- <dt><big>void <u>setattr</u>(char[] <i>attr_name</i>, PydObject <i>v</i>);
- </big></dt>
- <dd>Same as setattr(this, <i>attr_name</i>, <i>v</i>) in Python.
-
- <br><br>
-
- </dd>
- <dt><big>void <u>setattr</u>(PydObject <i>attr_name</i>, PydObject <i>v</i>);
- </big></dt>
- <dd>Same as setattr(this, <i>attr_name</i>, <i>v</i>) in Python.
-
- <br><br>
-
- </dd>
- <dt><big>void <u>delattr</u>(char[] <i>attr_name</i>);
- </big></dt>
- <dd>Same as del this.<i>attr_name</i> in Python.
-
- <br><br>
-
- </dd>
- <dt><big>void <u>delattr</u>(PydObject <i>attr_name</i>);
- </big></dt>
- <dd>Same as del this.<i>attr_name</i> in Python.
-
- <br><br>
-
- </dd>
- <dt><big>int <u>opCmp</u>(PydObject <i>rhs</i>);
- </big></dt>
- <dd>Exposes Python object comparison to D. Same as cmp(this, <i>rhs</i>) in Python.
-
- <br><br>
-
- </dd>
- <dt><big>bool <u>opEquals</u>(PydObject <i>rhs</i>);
- </big></dt>
- <dd>Exposes Python object equality check to D.
-
- <br><br>
-
- </dd>
- <dt><big>PydObject <u>repr</u>();
- </big></dt>
- <dd>Same as repr(this) in Python.
- <br><br>
-
- </dd>
- <dt><big>PydObject <u>str</u>();
- </big></dt>
- <dd>Same as str(this) in Python.
- <br><br>
-
- </dd>
- <dt><big>char[] <u>toString</u>();
- </big></dt>
- <dd>Allows use of PydObject in writef via %%s
- <br><br>
-
- </dd>
- <dt><big>PydObject <u>unicode</u>();
- </big></dt>
- <dd>Same as unicode(this) in Python.
- <br><br>
-
- </dd>
- <dt><big>bool <u>isInstance</u>(PydObject <i>cls</i>);
- </big></dt>
- <dd>Same as isinstance(this, <i>cls</i>) in Python.
- <br><br>
-
- </dd>
- <dt><big>bool <u>isSubclass</u>(PydObject <i>cls</i>);
- </big></dt>
- <dd>Same as issubclass(this, <i>cls</i>) in Python. Only works if this is a class.
- <br><br>
-
- </dd>
- <dt><big>bool <u>callable</u>();
- </big></dt>
- <dd>Same as callable(this) in Python.
- <br><br>
-
- </dd>
- <dt><big>PydObject <u>opCall</u>(PydObject <i>args</i> = null);
- </big></dt>
- <dd>Calls the PydObject. <strong>(Note: The opCall functions will be changing in the future to something more useful.)</strong>
- <br><br>
- <b>Params:</b><br>
- <table><tr><td>PydObject <i>args</i></td>
- <td>Should be a PydTuple of the arguments to pass. Omit to
- call with no arguments.</td></tr>
- </table><br>
- <b>Returns:</b><br>
- Whatever the function PydObject returns.
-
- <br><br>
-
- </dd>
- <dt><big>PydObject <u>opCall</u>(PydObject <i>args</i>, PydObject <i>kw</i>);
- </big></dt>
- <dd>Calls the PydObject with positional and keyword arguments.
- <br><br>
- <b>Params:</b><br>
- <table><tr><td>PydObject <i>args</i></td>
- <td>Positional arguments. Should be a PydTuple. Pass an empty
- PydTuple for no positional arguments.</td></tr>
- <tr><td>PydObject <i>kw</i></td>
- <td>Keyword arguments. Should be a PydDict.</td></tr>
- </table><br>
- <b>Returns:</b><br>
- Whatever the function PydObject returns.
-
- <br><br>
-
- </dd>
- <dt><big>PydObject <u>method</u>(char[] <i>name</i>, PydObject <i>args</i> = null);
- </big></dt>
- <dd><br><br>
- </dd>
- <dt><big>int <u>hash</u>();
- </big></dt>
- <dd>Same as hash(this) in Python.
- <br><br>
-
- </dd>
- <dt><big>bool <u>toBool</u>();
- </big></dt>
- <dd>Same as "not not this" in Python.
- <br><br>
-
- </dd>
- <dt><big>bool <u>not</u>();
- </big></dt>
- <dd>Same as "not this" in Python.
- <br><br>
-
- </dd>
- <dt><big>PydObject <u>type</u>();
- </big></dt>
- <dd>Gets the type of this PydObject. Same as type(this) in Python.
- <br><br>
- <b>Returns:</b><br>
- The type PydObject of this PydObject.
-
- <br><br>
-
- </dd>
- <dt><big>int <u>length</u>();
- </big></dt>
- <dd>The length of this PydObject. Same as len(this) in Python.
-
- <br><br>
-
- </dd>
- <dt><big>int <u>size</u>();
- </big></dt>
- <dd>Same as length()
- <br><br>
-
- </dd>
- <dt><big>PydObject <u>dir</u>();
- </big></dt>
- <dd>Same as dir(this) in Python.
- <br><br>
-
- </dd>
- <dt><big>PydObject <u>opIndex</u>(PydObject <i>key</i>);
- </big></dt>
- <dd>Equivalent to o[key] in Python.
- <br><br>
-
- </dd>
- <dt><big>PydObject <u>opIndex</u>(char[] <i>key</i>);
- </big></dt>
- <dd>Equivalent to o['key'] in Python; usually only makes sense for
- mappings.
-
- <br><br>
-
- </dd>
- <dt><big>PydObject <u>opIndex</u>(int <i>i</i>);
- </big></dt>
- <dd>Equivalent to o[i] in Python; usually only makes sense for sequences.
- <br><br>
-
- </dd>
- <dt><big>void <u>opIndexAssign</u>(PydObject <i>value</i>, PydObject <i>key</i>);
- </big></dt>
- <dd>Equivalent to o[key] = value in Python.
- <br><br>
-
- </dd>
- <dt><big>void <u>opIndexAssign</u>(PydObject <i>value</i>, char[] <i>key</i>);
- </big></dt>
- <dd>Equivalent to o['key'] = value in Python. Usually only makes sense for
- mappings.
-
- <br><br>
-
- </dd>
- <dt><big>void <u>opIndexAssign</u>(PydObject <i>value</i>, int <i>i</i>);
- </big></dt>
- <dd>Equivalent to o[i] = value in Python. Usually only makes sense for
- sequences.
-
- <br><br>
-
- </dd>
- <dt><big>void <u>delItem</u>(PydObject <i>key</i>);
- </big></dt>
- <dd>Equivalent to del o[key] in Python.
- <br><br>
-
- </dd>
- <dt><big>void <u>delItem</u>(char[] <i>key</i>);
- </big></dt>
- <dd>Equivalent to del o['key'] in Python. Usually only makes sense for
- mappings.
-
- <br><br>
-
- </dd>
- <dt><big>void <u>delItem</u>(int <i>i</i>);
- </big></dt>
- <dd>Equivalent to del o[i] in Python. Usually only makes sense for
- sequences.
-
- <br><br>
-
- </dd>
- <dt><big>PydObject <u>opSlice</u>(int <i>i1</i>, int <i>i2</i>);
- </big></dt>
- <dd>Equivalent to o[i1:i2] in Python.
- <br><br>
-
- </dd>
- <dt><big>PydObject <u>opSlice</u>();
- </big></dt>
- <dd>Equivalent to o[:] in Python.
- <br><br>
-
- </dd>
- <dt><big>void <u>opSliceAssign</u>(PydObject <i>v</i>, int <i>i1</i>, int <i>i2</i>);
- </big></dt>
- <dd>Equivalent to o[i1:i2] = v in Python.
- <br><br>
-
- </dd>
- <dt><big>void <u>opSliceAssign</u>(PydObject <i>v</i>);
- </big></dt>
- <dd>Equivalent to o[:] = v in Python.
- <br><br>
-
- </dd>
- <dt><big>void <u>delSlice</u>(int <i>i1</i>, int <i>i2</i>);
- </big></dt>
- <dd>Equivalent to del o[i1:i2] in Python.
- <br><br>
-
- </dd>
- <dt><big>void <u>delSlice</u>();
- </big></dt>
- <dd>Equivalent to del o[:] in Python.
- <br><br>
-
- </dd>
- <dt><big>int <u>opApply</u>(int delegate(inout PydObject) <i>dg</i>);
- </big></dt>
- <dd>Iterates over the items in a collection, be they the items in a
- sequence, keys in a dictionary, or some other iteration defined for the
- PydObject's type.
-
- <br><br>
-
- </dd>
- <dt><big>int <u>opApply</u>(int delegate(inout PydObject, inout PydObject) <i>dg</i>);
- </big></dt>
- <dd>Iterate over (key, value) pairs in a dictionary. If the PydObject is not
- a dict, this simply does nothing. (It iterates over no items.) You
- should not attempt to modify the dictionary while iterating through it,
- with the exception of modifying values. Adding or removing items while
- iterating through it is an especially bad idea.
-
- <br><br>
-
- </dd>
- <dt><big>PydObject <u>opAdd</u>(PydObject <i>o</i>);
- </big></dt>
- <dd><br><br>
- </dd>
- <dt><big>PydObject <u>opSub</u>(PydObject <i>o</i>);
- </big></dt>
- <dd><br><br>
- </dd>
- <dt><big>PydObject <u>opMul</u>(PydObject <i>o</i>);
- </big></dt>
- <dd><br><br>
- </dd>
- <dt><big>PydObject <u>opMul</u>(int <i>count</i>);
- </big></dt>
- <dd>Sequence repetition
- <br><br>
-
- </dd>
- <dt><big>PydObject <u>opDiv</u>(PydObject <i>o</i>);
- </big></dt>
- <dd><br><br>
- </dd>
- <dt><big>PydObject <u>floorDiv</u>(PydObject <i>o</i>);
- </big></dt>
- <dd><br><br>
- </dd>
- <dt><big>PydObject <u>opMod</u>(PydObject <i>o</i>);
- </big></dt>
- <dd><br><br>
- </dd>
- <dt><big>PydObject <u>divmod</u>(PydObject <i>o</i>);
- </big></dt>
- <dd><br><br>
- </dd>
- <dt><big>PydObject <u>pow</u>(PydObject <i>o1</i>, PydObject <i>o2</i> = null);
- </big></dt>
- <dd><br><br>
- </dd>
- <dt><big>PydObject <u>opPos</u>();
- </big></dt>
- <dd><br><br>
- </dd>
- <dt><big>PydObject <u>opNeg</u>();
- </big></dt>
- <dd><br><br>
- </dd>
- <dt><big>PydObject <u>abs</u>();
- </big></dt>
- <dd><br><br>
- </dd>
- <dt><big>PydObject <u>opCom</u>();
- </big></dt>
- <dd><br><br>
- </dd>
- <dt><big>PydObject <u>opShl</u>(PydObject <i>o</i>);
- </big></dt>
- <dd><br><br>
- </dd>
- <dt><big>PydObject <u>opShr</u>(PydObject <i>o</i>);
- </big></dt>
- <dd><br><br>
- </dd>
- <dt><big>PydObject <u>opAnd</u>(PydObject <i>o</i>);
- </big></dt>
- <dd><br><br>
- </dd>
- <dt><big>PydObject <u>opXor</u>(PydObject <i>o</i>);
- </big></dt>
- <dd><br><br>
- </dd>
- <dt><big>PydObject <u>opOr</u>(PydObject <i>o</i>);
- </big></dt>
- <dd><br><br>
- </dd>
- <dt><big>PydObject <u>opAddAssign</u>(PydObject <i>o</i>);
- </big></dt>
- <dd><br><br>
- </dd>
- <dt><big>PydObject <u>opSubAssign</u>(PydObject <i>o</i>);
- </big></dt>
- <dd><br><br>
- </dd>
- <dt><big>PydObject <u>opMulAssign</u>(PydObject <i>o</i>);
- </big></dt>
- <dd><br><br>
- </dd>
- <dt><big>PydObject <u>opMulAssign</u>(int <i>count</i>);
- </big></dt>
- <dd>In-place sequence repetition
- <br><br>
-
- </dd>
- <dt><big>PydObject <u>opDivAssign</u>(PydObject <i>o</i>);
- </big></dt>
- <dd><br><br>
- </dd>
- <dt><big>PydObject <u>floorDivAssign</u>(PydObject <i>o</i>);
- </big></dt>
- <dd><br><br>
- </dd>
- <dt><big>PydObject <u>opModAssign</u>(PydObject <i>o</i>);
- </big></dt>
- <dd><br><br>
- </dd>
- <dt><big>PydObject <u>powAssign</u>(PydObject <i>o1</i>, PydObject <i>o2</i> = null);
- </big></dt>
- <dd><br><br>
- </dd>
- <dt><big>PydObject <u>opShlAssign</u>(PydObject <i>o</i>);
- </big></dt>
- <dd><br><br>
- </dd>
- <dt><big>PydObject <u>opShrAssign</u>(PydObject <i>o</i>);
- </big></dt>
- <dd><br><br>
- </dd>
- <dt><big>PydObject <u>opAndAssign</u>(PydObject <i>o</i>);
- </big></dt>
- <dd><br><br>
- </dd>
- <dt><big>PydObject <u>opXorAssign</u>(PydObject <i>o</i>);
- </big></dt>
- <dd><br><br>
- </dd>
- <dt><big>PydObject <u>opOrAssign</u>(PydObject <i>o</i>);
- </big></dt>
- <dd><br><br>
- </dd>
- <dt><big>PydObject <u>asInt</u>();
- </big></dt>
- <dd><br><br>
- </dd>
- <dt><big>PydObject <u>asLong</u>();
- </big></dt>
- <dd><br><br>
- </dd>
- <dt><big>PydObject <u>asFloat</u>();
- </big></dt>
- <dd><br><br>
- </dd>
- <dt><big>int <u>toLong</u>();
- </big></dt>
- <dd><br><br>
- </dd>
- <dt><big>long <u>toLongLong</u>();
- </big></dt>
- <dd><br><br>
- </dd>
- <dt><big>double <u>toDouble</u>();
- </big></dt>
- <dd><br><br>
- </dd>
- <dt><big>cdouble <u>toComplex</u>();
- </big></dt>
- <dd><br><br>
- </dd>
- <dt><big>PydObject <u>opCat</u>(PydObject <i>o</i>);
- </big></dt>
- <dd>Sequence concatenation
- <br><br>
-
- </dd>
- <dt><big>PydObject <u>opCatAssign</u>(PydObject <i>o</i>);
- </big></dt>
- <dd>In-place sequence concatenation
- <br><br>
-
- </dd>
- <dt><big>int <u>count</u>(PydObject <i>v</i>);
- </big></dt>
- <dd><br><br>
- </dd>
- <dt><big>int <u>index</u>(PydObject <i>v</i>);
- </big></dt>
- <dd><br><br>
- </dd>
- <dt><big>PydObject <u>asList</u>();
- </big></dt>
- <dd>Converts any iterable PydObject to a list
- <br><br>
-
- </dd>
- <dt><big>PydObject <u>asTuple</u>();
- </big></dt>
- <dd>Converts any iterable PydObject to a tuple
- <br><br>
-
- </dd>
- <dt><big>bool <u>opIn_r</u>(PydObject <i>v</i>);
- </big></dt>
- <dd>Same as "<i>v</i> in this" in Python.
- <br><br>
-
- </dd>
- <dt><big>bool <u>hasKey</u>(PydObject <i>key</i>);
- </big></dt>
- <dd>Same as opIn_r
- <br><br>
-
- </dd>
- <dt><big>bool <u>opIn_r</u>(char[] <i>key</i>);
- </big></dt>
- <dd>Same as "'v' in this" in Python.
- <br><br>
-
- </dd>
- <dt><big>bool <u>hasKey</u>(char[] <i>key</i>);
- </big></dt>
- <dd>Same as opIn_r
- <br><br>
-
- </dd>
- <dt><big>PydObject <u>keys</u>();
- </big></dt>
- <dd><br><br>
- </dd>
- <dt><big>PydObject <u>values</u>();
- </big></dt>
- <dd><br><br>
- </dd>
- <dt><big>PydObject <u>items</u>();
- </big></dt>
- <dd><br><br>
- </dd>
- </dl>
- </dd>
- </dl>
-
- <hr />
- <small>Page generated by <a href="http://www.digitalmars.com/d/ddoc.html">Ddoc</a>.</small>
- </div>
-
- </body>
- </html>