root/trunk/raw_html/pydobject.html

Revision 62, 13.8 kB (checked in by KirkMcDonald, 2 years ago)

Added Linux support to docs; added raw_html for all the world to see.

Line 
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html>
3 <head>
4     <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
5     <link href="pyd.css" rel="stylesheet" type="text/css">
6     <title>pyd.pydobject</title>
7 </head>
8
9 <body>
10 %(nav)s
11 <div id="content">
12
13 <h1>pyd.pydobject</h1>
14 <!-- Generated by Ddoc from pyd\pydobject.d -->
15 <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>
16
17 <dl><dt><big>class <u>PydObject</u>;
18 </big></dt>
19 <dd>Wrapper class for a Python/C API PyObject.
20 <br><br>
21 Nearly all of these member functions may throw a PythonException if the
22  underlying Python API raises a Python exception.
23
24 <br><br>
25 <b>Authors:</b><br>
26 Kirk McDonald
27 <br><br>
28 <b>See Also:</b><br>
29 <a href="http://docs.python.org/api/api.html">The Python/C API</a>
30  
31 <br><br>
32
33 <dl><dt><big>this(PyObject * <i>o</i>, bool <i>borrowed</i> = false);
34 </big></dt>
35 <dd>Wrap around a passed PyObject*.
36 <br><br>
37 <b>Params:</b><br>
38 <table>
39 <tr><td>PyObject * <i>o</i></td>  <td>The PyObject to wrap.</td></tr>
40 <tr><td>bool <i>borrowed</i></td> <td>Whether <i>o</i> is a borrowed reference. Instances
41                  of PydObject always own their references.
42                  Therefore, Py_INCREF will be called if <i>borrowed</i> is
43                  true.</td></tr>
44 </table><br /></dd>
45
46 <dt><big>this();</big></dt>
47 <dd>The default constructor constructs an instance of the Py_None PydObject.<br /><br /></dd>
48
49 <dt><big>PyObject * <u>ptr</u>();</big></dt>
50 <dd>Returns a borrowed reference to the PyObject.<br><br></dd>
51
52 <dt><big>bool <u>hasattr</u>(char[] <i>attr_name</i>);</big></dt>
53 <dd>Same as hasattr(this, <i>attr_name</i>) in Python.<br><br></dd>
54
55 <dt><big>bool <u>hasattr</u>(PydObject <i>attr_name</i>);
56 </big></dt>
57 <dd>Same as hasattr(this, <i>attr_name</i>) in Python.
58 <br><br>
59
60 </dd>
61 <dt><big>PydObject <u>getattr</u>(char[] <i>attr_name</i>);
62 </big></dt>
63 <dd>Same as getattr(this, <i>attr_name</i>) in Python.
64 <br><br>
65
66 </dd>
67 <dt><big>PydObject <u>getattr</u>(PydObject <i>attr_name</i>);
68 </big></dt>
69 <dd>Same as getattr(this, <i>attr_name</i>) in Python.
70 <br><br>
71
72 </dd>
73 <dt><big>void <u>setattr</u>(char[] <i>attr_name</i>, PydObject <i>v</i>);
74 </big></dt>
75 <dd>Same as setattr(this, <i>attr_name</i>, <i>v</i>) in Python.
76      
77 <br><br>
78
79 </dd>
80 <dt><big>void <u>setattr</u>(PydObject <i>attr_name</i>, PydObject <i>v</i>);
81 </big></dt>
82 <dd>Same as setattr(this, <i>attr_name</i>, <i>v</i>) in Python.
83      
84 <br><br>
85
86 </dd>
87 <dt><big>void <u>delattr</u>(char[] <i>attr_name</i>);
88 </big></dt>
89 <dd>Same as del this.<i>attr_name</i> in Python.
90      
91 <br><br>
92
93 </dd>
94 <dt><big>void <u>delattr</u>(PydObject <i>attr_name</i>);
95 </big></dt>
96 <dd>Same as del this.<i>attr_name</i> in Python.
97      
98 <br><br>
99
100 </dd>
101 <dt><big>int <u>opCmp</u>(PydObject <i>rhs</i>);
102 </big></dt>
103 <dd>Exposes Python object comparison to D. Same as cmp(this, <i>rhs</i>) in Python.
104      
105 <br><br>
106
107 </dd>
108 <dt><big>bool <u>opEquals</u>(PydObject <i>rhs</i>);
109 </big></dt>
110 <dd>Exposes Python object equality check to D.
111      
112 <br><br>
113
114 </dd>
115 <dt><big>PydObject <u>repr</u>();
116 </big></dt>
117 <dd>Same as repr(this) in Python.
118 <br><br>
119
120 </dd>
121 <dt><big>PydObject <u>str</u>();
122 </big></dt>
123 <dd>Same as str(this) in Python.
124 <br><br>
125
126 </dd>
127 <dt><big>char[] <u>toString</u>();
128 </big></dt>
129 <dd>Allows use of PydObject in writef via %%s
130 <br><br>
131
132 </dd>
133 <dt><big>PydObject <u>unicode</u>();
134 </big></dt>
135 <dd>Same as unicode(this) in Python.
136 <br><br>
137
138 </dd>
139 <dt><big>bool <u>isInstance</u>(PydObject <i>cls</i>);
140 </big></dt>
141 <dd>Same as isinstance(this, <i>cls</i>) in Python.
142 <br><br>
143
144 </dd>
145 <dt><big>bool <u>isSubclass</u>(PydObject <i>cls</i>);
146 </big></dt>
147 <dd>Same as issubclass(this, <i>cls</i>) in Python. Only works if this is a class.
148 <br><br>
149
150 </dd>
151 <dt><big>bool <u>callable</u>();
152 </big></dt>
153 <dd>Same as callable(this) in Python.
154 <br><br>
155
156 </dd>
157 <dt><big>PydObject <u>opCall</u>(PydObject <i>args</i> = null);
158 </big></dt>
159 <dd>Calls the PydObject. <strong>(Note: The opCall functions will be changing in the future to something more useful.)</strong>
160 <br><br>
161 <b>Params:</b><br>
162 <table><tr><td>PydObject <i>args</i></td>
163 <td>Should be a PydTuple of the arguments to pass. Omit to
164              call with no arguments.</td></tr>
165 </table><br>
166 <b>Returns:</b><br>
167 Whatever the function PydObject returns.
168      
169 <br><br>
170
171 </dd>
172 <dt><big>PydObject <u>opCall</u>(PydObject <i>args</i>, PydObject <i>kw</i>);
173 </big></dt>
174 <dd>Calls the PydObject with positional and keyword arguments.
175 <br><br>
176 <b>Params:</b><br>
177 <table><tr><td>PydObject <i>args</i></td>
178 <td>Positional arguments. Should be a PydTuple. Pass an empty
179              PydTuple for no positional arguments.</td></tr>
180 <tr><td>PydObject <i>kw</i></td>
181 <td>Keyword arguments. Should be a PydDict.</td></tr>
182 </table><br>
183 <b>Returns:</b><br>
184 Whatever the function PydObject returns.
185      
186 <br><br>
187
188 </dd>
189 <dt><big>PydObject <u>method</u>(char[] <i>name</i>, PydObject <i>args</i> = null);
190 </big></dt>
191 <dd><br><br>
192 </dd>
193 <dt><big>int <u>hash</u>();
194 </big></dt>
195 <dd>Same as hash(this) in Python.
196 <br><br>
197
198 </dd>
199 <dt><big>bool <u>toBool</u>();
200 </big></dt>
201 <dd>Same as "not not this" in Python.
202 <br><br>
203
204 </dd>
205 <dt><big>bool <u>not</u>();
206 </big></dt>
207 <dd>Same as "not this" in Python.
208 <br><br>
209
210 </dd>
211 <dt><big>PydObject <u>type</u>();
212 </big></dt>
213 <dd>Gets the type of this PydObject. Same as type(this) in Python.
214 <br><br>
215 <b>Returns:</b><br>
216 The type PydObject of this PydObject.
217      
218 <br><br>
219
220 </dd>
221 <dt><big>int <u>length</u>();
222 </big></dt>
223 <dd>The length of this PydObject. Same as len(this) in Python.
224      
225 <br><br>
226
227 </dd>
228 <dt><big>int <u>size</u>();
229 </big></dt>
230 <dd>Same as length()
231 <br><br>
232
233 </dd>
234 <dt><big>PydObject <u>dir</u>();
235 </big></dt>
236 <dd>Same as dir(this) in Python.
237 <br><br>
238
239 </dd>
240 <dt><big>PydObject <u>opIndex</u>(PydObject <i>key</i>);
241 </big></dt>
242 <dd>Equivalent to o[key] in Python.
243 <br><br>
244
245 </dd>
246 <dt><big>PydObject <u>opIndex</u>(char[] <i>key</i>);
247 </big></dt>
248 <dd>Equivalent to o['key'] in Python; usually only makes sense for
249  mappings.
250      
251 <br><br>
252
253 </dd>
254 <dt><big>PydObject <u>opIndex</u>(int <i>i</i>);
255 </big></dt>
256 <dd>Equivalent to o[i] in Python; usually only makes sense for sequences.
257 <br><br>
258
259 </dd>
260 <dt><big>void <u>opIndexAssign</u>(PydObject <i>value</i>, PydObject <i>key</i>);
261 </big></dt>
262 <dd>Equivalent to o[key] = value in Python.
263 <br><br>
264
265 </dd>
266 <dt><big>void <u>opIndexAssign</u>(PydObject <i>value</i>, char[] <i>key</i>);
267 </big></dt>
268 <dd>Equivalent to o['key'] = value in Python. Usually only makes sense for
269  mappings.
270      
271 <br><br>
272
273 </dd>
274 <dt><big>void <u>opIndexAssign</u>(PydObject <i>value</i>, int <i>i</i>);
275 </big></dt>
276 <dd>Equivalent to o[i] = value in Python. Usually only makes sense for
277  sequences.
278      
279 <br><br>
280
281 </dd>
282 <dt><big>void <u>delItem</u>(PydObject <i>key</i>);
283 </big></dt>
284 <dd>Equivalent to del o[key] in Python.
285 <br><br>
286
287 </dd>
288 <dt><big>void <u>delItem</u>(char[] <i>key</i>);
289 </big></dt>
290 <dd>Equivalent to del o['key'] in Python. Usually only makes sense for
291  mappings.
292      
293 <br><br>
294
295 </dd>
296 <dt><big>void <u>delItem</u>(int <i>i</i>);
297 </big></dt>
298 <dd>Equivalent to del o[i] in Python. Usually only makes sense for
299  sequences.
300      
301 <br><br>
302
303 </dd>
304 <dt><big>PydObject <u>opSlice</u>(int <i>i1</i>, int <i>i2</i>);
305 </big></dt>
306 <dd>Equivalent to o[i1:i2] in Python.
307 <br><br>
308
309 </dd>
310 <dt><big>PydObject <u>opSlice</u>();
311 </big></dt>
312 <dd>Equivalent to o[:] in Python.
313 <br><br>
314
315 </dd>
316 <dt><big>void <u>opSliceAssign</u>(PydObject <i>v</i>, int <i>i1</i>, int <i>i2</i>);
317 </big></dt>
318 <dd>Equivalent to o[i1:i2] = v in Python.
319 <br><br>
320
321 </dd>
322 <dt><big>void <u>opSliceAssign</u>(PydObject <i>v</i>);
323 </big></dt>
324 <dd>Equivalent to o[:] = v in Python.
325 <br><br>
326
327 </dd>
328 <dt><big>void <u>delSlice</u>(int <i>i1</i>, int <i>i2</i>);
329 </big></dt>
330 <dd>Equivalent to del o[i1:i2] in Python.
331 <br><br>
332
333 </dd>
334 <dt><big>void <u>delSlice</u>();
335 </big></dt>
336 <dd>Equivalent to del o[:] in Python.
337 <br><br>
338
339 </dd>
340 <dt><big>int <u>opApply</u>(int delegate(inout PydObject) <i>dg</i>);
341 </big></dt>
342 <dd>Iterates over the items in a collection, be they the items in a
343  sequence, keys in a dictionary, or some other iteration defined for the
344  PydObject's type.
345      
346 <br><br>
347
348 </dd>
349 <dt><big>int <u>opApply</u>(int delegate(inout PydObject, inout PydObject) <i>dg</i>);
350 </big></dt>
351 <dd>Iterate over (key, value) pairs in a dictionary. If the PydObject is not
352  a dict, this simply does nothing. (It iterates over no items.) You
353  should not attempt to modify the dictionary while iterating through it,
354  with the exception of modifying values. Adding or removing items while
355  iterating through it is an especially bad idea.
356      
357 <br><br>
358
359 </dd>
360 <dt><big>PydObject <u>opAdd</u>(PydObject <i>o</i>);
361 </big></dt>
362 <dd><br><br>
363 </dd>
364 <dt><big>PydObject <u>opSub</u>(PydObject <i>o</i>);
365 </big></dt>
366 <dd><br><br>
367 </dd>
368 <dt><big>PydObject <u>opMul</u>(PydObject <i>o</i>);
369 </big></dt>
370 <dd><br><br>
371 </dd>
372 <dt><big>PydObject <u>opMul</u>(int <i>count</i>);
373 </big></dt>
374 <dd>Sequence repetition
375 <br><br>
376
377 </dd>
378 <dt><big>PydObject <u>opDiv</u>(PydObject <i>o</i>);
379 </big></dt>
380 <dd><br><br>
381 </dd>
382 <dt><big>PydObject <u>floorDiv</u>(PydObject <i>o</i>);
383 </big></dt>
384 <dd><br><br>
385 </dd>
386 <dt><big>PydObject <u>opMod</u>(PydObject <i>o</i>);
387 </big></dt>
388 <dd><br><br>
389 </dd>
390 <dt><big>PydObject <u>divmod</u>(PydObject <i>o</i>);
391 </big></dt>
392 <dd><br><br>
393 </dd>
394 <dt><big>PydObject <u>pow</u>(PydObject <i>o1</i>, PydObject <i>o2</i> = null);
395 </big></dt>
396 <dd><br><br>
397 </dd>
398 <dt><big>PydObject <u>opPos</u>();
399 </big></dt>
400 <dd><br><br>
401 </dd>
402 <dt><big>PydObject <u>opNeg</u>();
403 </big></dt>
404 <dd><br><br>
405 </dd>
406 <dt><big>PydObject <u>abs</u>();
407 </big></dt>
408 <dd><br><br>
409 </dd>
410 <dt><big>PydObject <u>opCom</u>();
411 </big></dt>
412 <dd><br><br>
413 </dd>
414 <dt><big>PydObject <u>opShl</u>(PydObject <i>o</i>);
415 </big></dt>
416 <dd><br><br>
417 </dd>
418 <dt><big>PydObject <u>opShr</u>(PydObject <i>o</i>);
419 </big></dt>
420 <dd><br><br>
421 </dd>
422 <dt><big>PydObject <u>opAnd</u>(PydObject <i>o</i>);
423 </big></dt>
424 <dd><br><br>
425 </dd>
426 <dt><big>PydObject <u>opXor</u>(PydObject <i>o</i>);
427 </big></dt>
428 <dd><br><br>
429 </dd>
430 <dt><big>PydObject <u>opOr</u>(PydObject <i>o</i>);
431 </big></dt>
432 <dd><br><br>
433 </dd>
434 <dt><big>PydObject <u>opAddAssign</u>(PydObject <i>o</i>);
435 </big></dt>
436 <dd><br><br>
437 </dd>
438 <dt><big>PydObject <u>opSubAssign</u>(PydObject <i>o</i>);
439 </big></dt>
440 <dd><br><br>
441 </dd>
442 <dt><big>PydObject <u>opMulAssign</u>(PydObject <i>o</i>);
443 </big></dt>
444 <dd><br><br>
445 </dd>
446 <dt><big>PydObject <u>opMulAssign</u>(int <i>count</i>);
447 </big></dt>
448 <dd>In-place sequence repetition
449 <br><br>
450
451 </dd>
452 <dt><big>PydObject <u>opDivAssign</u>(PydObject <i>o</i>);
453 </big></dt>
454 <dd><br><br>
455 </dd>
456 <dt><big>PydObject <u>floorDivAssign</u>(PydObject <i>o</i>);
457 </big></dt>
458 <dd><br><br>
459 </dd>
460 <dt><big>PydObject <u>opModAssign</u>(PydObject <i>o</i>);
461 </big></dt>
462 <dd><br><br>
463 </dd>
464 <dt><big>PydObject <u>powAssign</u>(PydObject <i>o1</i>, PydObject <i>o2</i> = null);
465 </big></dt>
466 <dd><br><br>
467 </dd>
468 <dt><big>PydObject <u>opShlAssign</u>(PydObject <i>o</i>);
469 </big></dt>
470 <dd><br><br>
471 </dd>
472 <dt><big>PydObject <u>opShrAssign</u>(PydObject <i>o</i>);
473 </big></dt>
474 <dd><br><br>
475 </dd>
476 <dt><big>PydObject <u>opAndAssign</u>(PydObject <i>o</i>);
477 </big></dt>
478 <dd><br><br>
479 </dd>
480 <dt><big>PydObject <u>opXorAssign</u>(PydObject <i>o</i>);
481 </big></dt>
482 <dd><br><br>
483 </dd>
484 <dt><big>PydObject <u>opOrAssign</u>(PydObject <i>o</i>);
485 </big></dt>
486 <dd><br><br>
487 </dd>
488 <dt><big>PydObject <u>asInt</u>();
489 </big></dt>
490 <dd><br><br>
491 </dd>
492 <dt><big>PydObject <u>asLong</u>();
493 </big></dt>
494 <dd><br><br>
495 </dd>
496 <dt><big>PydObject <u>asFloat</u>();
497 </big></dt>
498 <dd><br><br>
499 </dd>
500 <dt><big>int <u>toLong</u>();
501 </big></dt>
502 <dd><br><br>
503 </dd>
504 <dt><big>long <u>toLongLong</u>();
505 </big></dt>
506 <dd><br><br>
507 </dd>
508 <dt><big>double <u>toDouble</u>();
509 </big></dt>
510 <dd><br><br>
511 </dd>
512 <dt><big>cdouble <u>toComplex</u>();
513 </big></dt>
514 <dd><br><br>
515 </dd>
516 <dt><big>PydObject <u>opCat</u>(PydObject <i>o</i>);
517 </big></dt>
518 <dd>Sequence concatenation
519 <br><br>
520
521 </dd>
522 <dt><big>PydObject <u>opCatAssign</u>(PydObject <i>o</i>);
523 </big></dt>
524 <dd>In-place sequence concatenation
525 <br><br>
526
527 </dd>
528 <dt><big>int <u>count</u>(PydObject <i>v</i>);
529 </big></dt>
530 <dd><br><br>
531 </dd>
532 <dt><big>int <u>index</u>(PydObject <i>v</i>);
533 </big></dt>
534 <dd><br><br>
535 </dd>
536 <dt><big>PydObject <u>asList</u>();
537 </big></dt>
538 <dd>Converts any iterable PydObject to a list
539 <br><br>
540
541 </dd>
542 <dt><big>PydObject <u>asTuple</u>();
543 </big></dt>
544 <dd>Converts any iterable PydObject to a tuple
545 <br><br>
546
547 </dd>
548 <dt><big>bool <u>opIn_r</u>(PydObject <i>v</i>);
549 </big></dt>
550 <dd>Same as "<i>v</i> in this" in Python.
551 <br><br>
552
553 </dd>
554 <dt><big>bool <u>hasKey</u>(PydObject <i>key</i>);
555 </big></dt>
556 <dd>Same as opIn_r
557 <br><br>
558
559 </dd>
560 <dt><big>bool <u>opIn_r</u>(char[] <i>key</i>);
561 </big></dt>
562 <dd>Same as "'v' in this" in Python.
563 <br><br>
564
565 </dd>
566 <dt><big>bool <u>hasKey</u>(char[] <i>key</i>);
567 </big></dt>
568 <dd>Same as opIn_r
569 <br><br>
570
571 </dd>
572 <dt><big>PydObject <u>keys</u>();
573 </big></dt>
574 <dd><br><br>
575 </dd>
576 <dt><big>PydObject <u>values</u>();
577 </big></dt>
578 <dd><br><br>
579 </dd>
580 <dt><big>PydObject <u>items</u>();
581 </big></dt>
582 <dd><br><br>
583 </dd>
584 </dl>
585 </dd>
586 </dl>
587
588 <hr />
589 <small>Page generated by <a href="http://www.digitalmars.com/d/ddoc.html">Ddoc</a>.</small>
590 </div>
591
592 </body>
593 </html>
Note: See TracBrowser for help on using the browser.