Commit graph

518 commits

Author SHA1 Message Date
Nikolay Kim ce15dda5b6 Allow to add gc support without implementing PyGCProtocol #57 2017-07-24 12:19:05 -07:00
messense 1834ec4a33
Add PyDict::iter 2017-07-23 22:46:04 +08:00
Nikolay Kim 98bdf63a4d use const_fn for type size and offset calculation 2017-07-21 09:48:48 -07:00
Nikolay Kim 2ee6419464 do not catch rust panics 2017-07-20 14:21:57 -07:00
Nikolay Kim 5f1a410d6e more cleanups 2017-07-20 09:11:28 -07:00
Nikolay Kim 0756e341a8 cleanup PyModule 2017-07-20 08:33:30 -07:00
Nikolay Kim a00ae1757c add PyDict keys,values,items methods 2017-07-20 08:23:43 -07:00
Nikolay Kim 97c6b7591a added PyList::append method, added refcnt tests 2017-07-20 08:05:12 -07:00
Nikolay Kim e23c7247e6 fix memory leak in PyList::set_item and insert_item 2017-07-19 22:22:19 -07:00
Nikolay Kim 1035aaae49 fix python2 related code 2017-07-19 13:22:26 -07:00
Nikolay Kim 13820f4ce3 added PyTuple::slice and PyTuple::split_from methods 2017-07-19 13:04:58 -07:00
Nikolay Kim f344c4ce3d added try downcast methods to PyDowncastFrom trait 2017-07-19 13:01:59 -07:00
Nikolay Kim 9cecfc0ec9 fix fn names 2017-07-19 09:27:19 -07:00
Nikolay Kim 63baa575a6 fix memory leak in call and call_method 2017-07-19 09:22:54 -07:00
Nikolay Kim 5559dbb9ed fix memory leak 2017-07-19 06:35:59 -07:00
Nikolay Kim c6067b90c1 more docs 2017-07-18 14:15:44 -07:00
Nikolay Kim 01d688fc98 use better name for Pointers 2017-07-18 11:12:35 -07:00
Nikolay Kim fc1df289bd drop PyClone trait; doc cleanups 2017-07-18 10:13:50 -07:00
messense dd29dbce80 Use std::ptr::null() and std::ptr::null_mut() (#51) 2017-07-18 23:23:21 +08:00
messense 5a8fd2febc
Some more clippy warning fixes
[rustfix](https://github.com/killercup/rustfix) makes it much easier.
2017-07-18 22:10:56 +08:00
messense e69163344a Fix some clippy warnings (#49) 2017-07-18 19:28:49 +08:00
Nikolay Kim 2d06b07717 fix PyNumberProtocol methods #48 2017-07-17 16:49:19 -07:00
Nikolay Kim 149aa3a0eb always inline all py() 2017-07-14 16:21:18 -07:00
Nikolay Kim 292bd2c139 inline py() call 2017-07-14 14:21:07 -07:00
Nikolay Kim 4daac50781 remove associated_consts feature 2017-07-14 03:17:57 -07:00
Nikolay Kim c5f5620f77 rename token() to py() 2017-07-13 19:04:00 -07:00
Nikolay Kim fb8b32072f add basic args test 2017-07-13 18:50:34 -07:00
Nikolay Kim 8eb5dc0667 use associated consts 2017-07-13 16:45:50 -07:00
Nikolay Kim ed31492d36 rename pointer mod to object 2017-07-13 13:05:50 -07:00
Nikolay Kim 27f8747ba6 safe typeob dealloc and tests for release pools 2017-07-13 13:01:31 -07:00
Nikolay Kim 49de1f1d40 cleanup cb_unary and gc protcol 2017-07-10 00:40:30 +06:00
Nikolay Kim ce05cb91c0 fix pointer release list 2017-07-10 00:37:20 +06:00
Nikolay Kim c1c4648add delay decref until gil available 2017-07-09 12:08:57 +06:00
Nikolay Kim a90d8c241f fix ref counter for get_kwargs 2017-07-04 10:24:04 +06:00
Nikolay Kim 3028dcf58f fix error from instancel fixed bool 2017-06-30 08:51:45 +06:00
Nikolay Kim afe2324ecc fix api inconsystency 2017-06-29 11:23:55 +06:00
Nikolay Kim 8bc1195f12 Merge branch 'master' of github.com:PyO3/PyO3 2017-06-27 05:06:09 +06:00
Nikolay Kim 503e4221cc support &str as fn param 2017-06-24 15:28:53 -07:00
Nikolay Kim 082db89aa6 do not modify ref counter for borrowed ptr 2017-06-24 12:57:18 -07:00
messense 2d217be349
Use isize for hash protocol 2017-06-24 23:43:01 +08:00
Nikolay Kim 3a2004eab2 rename PyInstance to PyObjectRef 2017-06-24 08:28:31 -07:00
messense 4e836cb229
Don't reexport Py_hash_t and Py_ssize_t 2017-06-24 22:36:45 +08:00
messense 378fae9659
Hide argparse module in API docs 2017-06-24 22:30:46 +08:00
messense a5e3429d60
Remove unnecessary ObjectProtocol import 2017-06-24 22:29:35 +08:00
messense 0ba541e762
Add missing module level docs 2017-06-24 16:47:36 +08:00
messense 84ebdbcfe9
Add copyright headers to some files 2017-06-24 16:36:51 +08:00
Nikolay Kim d80eee6fba move IterNextResultConverter to proper location 2017-06-23 16:37:31 -07:00
Nikolay Kim 352774744a use StopAsyncIteration for __anext__ #35 2017-06-23 16:11:50 -07:00
Nikolay Kim 64f120a8f7 review system exceptions 2017-06-23 16:00:44 -07:00
Nikolay Kim 14c6aaad55 py.init returns ptr, init_ref and init_mut ref and mut ref 2017-06-23 15:15:07 -07:00
Nikolay Kim 8238a141ae py.init(..) return reference 2017-06-23 15:03:52 -07:00
Nikolay Kim f0ece6dfde added doc strings 2017-06-23 13:50:27 -07:00
Nikolay Kim 3e3fed9c18 remove True and False python methods 2017-06-23 13:42:46 -07:00
Nikolay Kim b1e6f07060 fix doc comments 2017-06-23 13:27:18 -07:00
Nikolay Kim cc56ded6bf fix python2 extension module initialization 2017-06-23 11:51:15 -07:00
Nikolay Kim 61f85c730e fix doc tests; fix unsued import warning 2017-06-23 10:38:04 -07:00
Nikolay Kim 006e38cd6e fix kwargs for py methods 2017-06-23 10:06:41 -07:00
Nikolay Kim a58aa7b5e6 rename PyObject 2017-06-22 20:56:09 -07:00
Nikolay Kim 2faf18bb9e rename token method 2017-06-22 13:35:21 -07:00
Nikolay Kim 00bd5615ed drop py paramater for protcol definitions 2017-06-22 12:32:01 -07:00
Nikolay Kim cb969161c6 fix unchecked downcast; added objects pool 2017-06-22 10:26:07 -07:00
Nikolay Kim b9377849c8 rename modules 2017-06-22 01:16:22 -07:00
Nikolay Kim c48386affa stopping point 2017-06-22 01:04:37 -07:00
Nikolay Kim 397f50571b do not derive Debug for GILGuard 2017-06-21 15:17:16 -07:00
Nikolay Kim af663e0f80 update PyType 2017-06-21 15:11:32 -07:00
Nikolay Kim 7cf8e1ab80 modify PyDict 2017-06-21 14:08:16 -07:00
Nikolay Kim 96788bf192 more types 2017-06-21 13:10:40 -07:00
Nikolay Kim e9341d6f05 add release pool 2017-06-21 12:33:27 -07:00
Nikolay Kim 08ddb3f14f other types 2017-06-21 12:33:21 -07:00
Nikolay Kim bc0f9b014f convert PyString object 2017-06-20 23:27:30 -07:00
Nikolay Kim ce53e8230b add downcast traits to Py 2017-06-20 15:09:12 -07:00
Nikolay Kim c4ba2b0f2e rename InstancePtr to AsPyRef 2017-06-20 14:22:49 -07:00
Nikolay Kim 40efa5c955 rename Ptr to Py 2017-06-19 23:57:34 -07:00
Nikolay Kim 7b5521fdb3 simplify instance ptr, droped #[py::ptr] annotation attr 2017-06-19 20:55:07 -07:00
Nikolay Kim b4deb673c7 refactor #[args()] attribute #40 2017-06-19 14:05:14 -07:00
Nikolay Kim 005c36548b add specialization to docs 2017-06-18 09:28:21 -07:00
messense 75d6684d25
Clarify Python module doc string 2017-06-18 23:15:10 +08:00
messense f681038133
Prefer expect() and map_err() to unwrap() 2017-06-17 17:40:11 +08:00
Nikolay Kim 60a965edc3 update link to example py extension 2017-06-15 14:30:11 -07:00
Nikolay Kim e85db971f9 fix module export functions 2017-06-15 14:20:30 -07:00
Nikolay Kim f4d0fe3950 docs cleanup 2017-06-15 13:13:52 -07:00
Nikolay Kim edc9fc1b7f hide some traits 2017-06-15 11:43:38 -07:00
Nikolay Kim 0679fec859 update docs 2017-06-15 11:13:58 -07:00
Nikolay Kim ac0594a5b2 do not use pub pointers mod 2017-06-15 10:36:41 -07:00
Nikolay Kim 3bed79fe0b add clippy and doc to travis 2017-06-15 09:11:19 -07:00
Nikolay Kim 5bf6ce3864 added __unicode__ method to PyObjectProtocol 2017-06-15 07:48:57 -07:00
Nikolay Kim bd7a0feb8c merge master 2017-06-15 07:16:40 -07:00
messense b8b9daf67a
Enable doc test for src/lib.rs examples 2017-06-15 16:06:04 +08:00
Nikolay Kim d9bd485072 macro_use is not requires 2017-06-14 14:42:05 -07:00
Nikolay Kim 293569b6af remove import 2017-06-14 14:23:51 -07:00
Nikolay Kim b67954fd19 remove GILProtected 2017-06-14 14:15:29 -07:00
Nikolay Kim 706477f139 replace py_fn! macro with pyfn attribute 2017-06-14 14:08:30 -07:00
Nikolay Kim 319ee30c79 new impl for #[args] attribute 2017-06-13 22:37:26 -07:00
Nikolay Kim 7379766ea8 added __doc__ to methods 2017-06-12 21:08:59 -07:00
Nikolay Kim d7c3d34198 add class doc string 2017-06-12 17:15:26 -07:00
Nikolay Kim 6204a06cbc update docstring 2017-06-11 23:54:24 -07:00
Nikolay Kim 52df3a4323 Merge branch 'master' of github.com:PyO3/PyO3 2017-06-11 22:24:05 -07:00
Nikolay Kim 26fccf6022 added proper PyString for py2 handling 2017-06-11 22:23:49 -07:00
messense f07e562251
PyType.is_instance/is_subclass should not consume self 2017-06-12 11:56:19 +08:00
Nikolay Kim b21ded3aaa added PyInt for py2 2017-06-11 20:36:57 -07:00
Nikolay Kim 8d4e0204f1 move PyFloat to separate module 2017-06-11 20:04:34 -07:00
Nikolay Kim d619ded980 use Py_TPFLAGS_CHECKTYPES for py2 2017-06-11 19:45:01 -07:00
Nikolay Kim fdd9ac7ae9 various improvements 2017-06-11 18:30:56 -07:00
Nikolay Kim 03ced8917b PyString for py2 2017-06-11 17:20:18 -07:00
Nikolay Kim 805429e0f4 remove unneeded macro 2017-06-11 16:49:25 -07:00
Nikolay Kim 05d4a0a9a4 rename ffi to ffi3 2017-06-11 16:47:27 -07:00
Nikolay Kim 3b4d147219 initial impl for py2 2017-06-11 16:35:24 -07:00
messense 6b18ccb50b Implement is_instance and is_subclass (#27)
* Implement is_instance

* Implement is_subclass

* Move is_instance and is_subclass to Python impl

* Move implementation detail to PyType
2017-06-12 00:41:02 +08:00
messense cb68cd23a2 Fix some clippy warnings (#26) 2017-06-11 23:46:23 +08:00
Nikolay Kim 8188c9533c do not use descriptor objects for method defs 2017-06-09 15:55:39 -07:00
Nikolay Kim c28a619efd add free list support 2017-06-09 14:27:37 -07:00
Nikolay Kim cfb2b16288 allow to override class name #14 2017-06-09 12:30:13 -07:00
Nikolay Kim ea8f11fa6d refactor PyTypeObject trait 2017-06-08 14:34:29 -07:00
Nikolay Kim 86c20bb139 Change sig of PyIterProtocol.__next__ method #18 2017-06-08 13:43:24 -07:00
Nikolay Kim 9e08d3eec5 simplify class method macros 2017-06-08 13:11:16 -07:00
Nikolay Kim 6204de4a6a Merge branch 'master' of github.com:PyO3/PyO3 2017-06-08 11:29:52 -07:00
Nikolay Kim a90c763bc0 add class and static methods #17 2017-06-08 11:29:40 -07:00
messense e12e98a7c1 Convert some std error types to PyErr (#22)
* Convert some std error types to PyErr

* Add ToPyErr trait
2017-06-08 09:40:30 +08:00
Nikolay Kim b3079f759c use descriptor objects for class methods; use PyNoArgsFunction for methods without args 2017-06-06 21:57:03 -07:00
Nikolay Kim a584ce12e5 release py objects aftre use 2017-06-06 19:26:59 -07:00
Nikolay Kim 84f5578997 varios cleanups 2017-06-05 20:25:00 -07:00
Nikolay Kim a448aa54cc clone_ref return Self 2017-06-03 17:42:12 -07:00
Nikolay Kim 57cc139c81 drop Py pointer 2017-06-03 17:27:26 -07:00
Nikolay Kim b75160daf3 remove pyobject lifetime 2017-06-02 18:58:16 -07:00
Nikolay Kim 27bd365f5c cleanups 2017-06-02 09:23:48 -07:00
Nikolay Kim cbfdfa2d07 better naming 2017-06-01 15:06:48 -07:00
Nikolay Kim fc762288fe use From instead of as_object; fix type object 2017-06-01 13:34:46 -07:00
Nikolay Kim 9176dc4df1 consistent naming for pointers 2017-06-01 10:35:02 -07:00
Nikolay Kim bcaaeb8522 simplify PythonToken 2017-06-01 09:45:00 -07:00
Nikolay Kim 6834a18a5b add ptr support to class 2017-05-31 20:50:40 -07:00
Nikolay Kim 4cdb77335e reenable buffer tests 2017-05-31 16:26:21 -07:00
Nikolay Kim 2f3ea202b3 add mirror ptr types for native py classes 2017-05-31 15:52:13 -07:00
Nikolay Kim 92bf7b9c05 rename pptr to PyObjectPtr 2017-05-31 01:08:39 -07:00
Nikolay Kim a3e6117090 incref on inplace number protocol 2017-05-31 01:07:21 -07:00
Nikolay Kim 5d25c7deea simplify Py and PyPtr objects 2017-05-30 18:57:36 -07:00
Nikolay Kim 3040ac12b9 refactor ToPyObject 2017-05-30 17:23:23 -07:00
Nikolay Kim b8913a3705 refactor IntoPyObject trait; rename pptr into pyptr, introduce pptr pointers 2017-05-30 16:29:13 -07:00
Nikolay Kim 3b90c569f7 update tests 2017-05-30 13:03:00 -07:00
Nikolay Kim 2b4eba1fc7 Merge pull request #10 from messense/feature/optimize-run_code
Optimize `Python.run_code`
2017-05-30 13:02:00 -07:00
Nikolay Kim b84474155e convert PyGCProtocol 2017-05-30 12:42:07 -07:00
messense ec7381084f
Restore PySet and PyFrozenSet 2017-05-30 16:16:48 +08:00
Nikolay Kim 86a8dfec0c restore sequence and iterator objects 2017-05-29 23:04:02 -07:00
Nikolay Kim 61b8bd0695 fix ptr borrowing PyTuple::get_item 2017-05-29 18:36:44 -07:00
Nikolay Kim 4232caf3a3 update tests 2017-05-29 16:16:48 -07:00
Nikolay Kim ad38688378 fix sequence protocol; convert buffer protocol 2017-05-29 15:08:19 -07:00
Nikolay Kim 51ac8c9c78 better gil token scope 2017-05-29 13:30:38 -07:00
Nikolay Kim ea8ccf190a special treatment for native python objects 2017-05-29 02:47:27 -07:00
Nikolay Kim 55d0d58734 added pptr pointer 2017-05-28 21:19:29 -07:00
Nikolay Kim 969cba2c16 remove Token 2017-05-28 08:57:34 -07:00
Nikolay Kim 6c87c9b77b introduce python token system 2017-05-27 22:45:48 -07:00