Commit Graph

219 Commits

Author SHA1 Message Date
Nikolay Kim 2ee6419464 do not catch rust panics 2017-07-20 14:21:57 -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 f344c4ce3d added try downcast methods to PyDowncastFrom trait 2017-07-19 13:01:59 -07:00
Nikolay Kim 69963d75ec fix mod name 2017-07-18 10:53:02 -07: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 c5f5620f77 rename token() to py() 2017-07-13 19:04:00 -07:00
Nikolay Kim 8eb5dc0667 use associated consts 2017-07-13 16:45:50 -07:00
Nikolay Kim afe2324ecc fix api inconsystency 2017-06-29 11:23:55 +06:00
Nikolay Kim 800fa231ba fix class,md 2017-06-27 05:32:02 +06:00
Nikolay Kim 503e4221cc support &str as fn param 2017-06-24 15:28:53 -07:00
Nikolay Kim 3a2004eab2 rename PyInstance to PyObjectRef 2017-06-24 08:28:31 -07:00
messense 84ebdbcfe9
Add copyright headers to some files 2017-06-24 16:36:51 +08:00
messense 33ab9829f4 Fix no method named `extract` found for type `&&pyo3::PyInstance` in the (#44)
current scope
2017-06-24 16:19:14 +08:00
Nikolay Kim 8238a141ae py.init(..) return reference 2017-06-23 15:03:52 -07:00
Nikolay Kim e5b99ae2c9 typo 2017-06-23 12:20:54 -07:00
Nikolay Kim 7076a57fe4 use full push for function 2017-06-23 12:12:07 -07:00
Nikolay Kim cc56ded6bf fix python2 extension module initialization 2017-06-23 11:51:15 -07:00
Nikolay Kim 6482245038 fix imports 2017-06-23 11:24:17 -07:00
Nikolay Kim 289e5e0a2f call prepare_freethreaded_python on module init 2017-06-23 11:18:58 -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 c48386affa stopping point 2017-06-22 01:04:37 -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 e9341d6f05 add release pool 2017-06-21 12:33:27 -07:00
Nikolay Kim bc0f9b014f convert PyString object 2017-06-20 23:27:30 -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
messense 93b1dd8262 Add compile-test (#38) 2017-06-18 23:41:20 +08:00
messense a993d8d7e0 Add module doc string autogen (#39) 2017-06-18 23:00:27 +08:00
Nikolay Kim c0263f7bd5 remove debug print 2017-06-16 14:24:17 -07:00
Nikolay Kim 818fc4b127 forget is not needed 2017-06-15 14:23:25 -07:00
Nikolay Kim e85db971f9 fix module export functions 2017-06-15 14:20:30 -07:00
Nikolay Kim 0679fec859 update docs 2017-06-15 11:13:58 -07:00
Nikolay Kim fd1088f948 use PyPtr from top level 2017-06-15 10:41:29 -07:00
Nikolay Kim 5bf6ce3864 added __unicode__ method to PyObjectProtocol 2017-06-15 07:48:57 -07:00
messense b54eb12c50
Fix using of undeclared type or module `PyObject` 2017-06-15 15:23:10 +08:00
Nikolay Kim fdf971c54e add pyfn to python2 2017-06-14 14:14:34 -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
messense d6979c8556 doc string should not contain `///` (#32) 2017-06-13 12:15:44 +08: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 b8559519ca fix missing use 2017-06-11 23:46:54 -07:00
Nikolay Kim acc00b7738 fix python exptension export 2017-06-11 23:45:06 -07:00
Nikolay Kim fdd9ac7ae9 various improvements 2017-06-11 18:30:56 -07:00
Nikolay Kim 3b4d147219 initial impl for py2 2017-06-11 16:35:24 -07:00
Nikolay Kim c28a619efd add free list support 2017-06-09 14:27:37 -07:00
Nikolay Kim 5a44ccb40c add test for custom class name 2017-06-09 12:35:29 -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 a90c763bc0 add class and static methods #17 2017-06-08 11:29:40 -07: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 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 b84474155e convert PyGCProtocol 2017-05-30 12:42:07 -07:00
Nikolay Kim 86a8dfec0c restore sequence and iterator objects 2017-05-29 23:04:02 -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
Nikolay Kim bfb01f65d3 update tests 2017-05-27 11:43:45 -07:00
Nikolay Kim 6205be98b8 introduce PythonToken; cleanup number protocol 2017-05-27 10:49:38 -07:00
Nikolay Kim 52bcc11cd8 fix pyclass methods 2017-05-26 16:51:33 -07:00
Nikolay Kim 1df2c931e5 allow to extract refs from Py ptrs 2017-05-26 15:33:34 -07:00
Nikolay Kim d165dbe4d4 fixed gil lifetime; pass py object into protocol methods 2017-05-26 14:43:28 -07:00
Nikolay Kim 0979653b98 various cleanups 2017-05-25 08:06:10 -07:00
Nikolay Kim f3176dacfc use pyptr for everything 2017-05-25 08:06:06 -07:00
Nikolay Kim 912b9d2cb1 convert object and sequence protocols 2017-05-25 07:58:25 -07:00
Nikolay Kim 881e0e3336 rewrite method signatures in py::proto 2017-05-25 07:58:25 -07:00
Nikolay Kim 5fdad40caa rename PyTypeObjectInfo to PyTypeInfo; use PyTypeInfo::offset() for struct offset 2017-05-25 07:58:25 -07:00
Nikolay Kim 579c1280e9 simplify BaseObject; no need in PythonObject trait 2017-05-25 07:58:25 -07:00
Nikolay Kim d6fb90bdc2 stopping point 2017-05-25 07:58:25 -07:00
Nikolay Kim 8fd6e3216f convert object and number protocols to new system 2017-05-20 22:18:31 -07:00
Nikolay Kim 629f53ac52 new impl for sequence protocol 2017-05-20 12:15:28 -07:00
Nikolay Kim 452a4e8d7f more mapping protocol methods; start working on class tests 2017-05-20 10:40:33 -07:00
Nikolay Kim 201289d6ca add __new__ and __call__ support 2017-05-19 23:14:59 -07:00
Nikolay Kim eb64aa11ac generate method defs from protocols 2017-05-19 11:48:05 -07:00
Nikolay Kim 0c7293125c simplify class generation 2017-05-18 23:29:09 -07:00
Nikolay Kim 5119fa4f1d fix generated type name 2017-05-18 16:57:39 -07:00
Nikolay Kim 1ff47d49c1 added PyIterProtocol 2017-05-18 15:57:38 -07:00
Nikolay Kim 7a4a736d92 add agr extraction for setters, allow non snake vars 2017-05-18 14:46:29 -07:00
Nikolay Kim 93c3d9cebf put impl to private mod 2017-05-18 13:46:09 -07:00
Nikolay Kim 8b3c280450 fix optional arg generation 2017-05-18 11:15:06 -07:00
Nikolay Kim 04168ab86e added fn spec for args parsing 2017-05-18 00:05:49 -07:00
Nikolay Kim 9759cf7177 refactor PyAsyncProtocol 2017-05-17 18:25:26 -07:00
Nikolay Kim 7a75d3e652 remove unused code 2017-05-17 16:49:16 -07:00
Nikolay Kim 2eea45e9fa better slot trait definition 2017-05-17 16:33:18 -07:00
Nikolay Kim c9aefd7e5f drop py_class 2017-05-16 23:43:39 -07:00
Nikolay Kim 34e4d956f1 basic object customization interface 2017-05-16 16:54:27 -07:00
Nikolay Kim 086f24e7a1 added descriptor protocol support 2017-05-16 15:32:46 -07:00
Nikolay Kim 9b1c4c55f4 added properties support 2017-05-16 11:58:18 -07:00
Nikolay Kim 6d40d651a1 add number protocol 2017-05-16 03:31:48 -07:00
Nikolay Kim 78d7d99bd8 added sequence protocol 2017-05-16 01:27:59 -07:00
Nikolay Kim d45c0a36c4 add mapping protocol 2017-05-16 00:07:36 -07:00
Nikolay Kim 5427a33c75 stopping point 2017-05-15 22:24:06 -07:00
Nikolay Kim f4feade487 add PyAsyncProtocol 2017-05-14 18:55:04 -07:00
Nikolay Kim 3e20979f3f implement buffer protocol with proc macro 2017-05-14 12:52:30 -07:00