PageRenderTime 71ms CodeModel.GetById 41ms RepoModel.GetById 1ms app.codeStats 0ms

/raw_html/pydobject.html

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