konstin
15204bab56
Better way to add functions to modules
2018-05-02 19:26:54 +02:00
konstin
0880ac166c
Merge master
2018-05-01 20:41:35 +02:00
konstin
5a8f5034d6
Fix make test
...
This is a follow-up to #147
2018-05-01 20:15:43 +02:00
konstin
d0c42dfcc1
Fix compilation on nightly
2018-05-01 15:44:38 +02:00
konstin
6113428746
Allow defining functions outside of the module declarations
...
This commit consists of
* a proc macro to convert rust functions into python functions (`#[function]`),
* a macro to register a function in a module (`add_function_to_module!`)
* Documenting both the old and the new way in the book
2018-04-30 23:17:09 +02:00
konstin
e570c6b9b9
Move the codegen into its own crate
...
This makes the code generatioin reusable from third party crates.
2018-04-05 13:39:07 +02:00
Bastien Orivel
7278f4275d
Bump log to 0.4
2018-02-27 18:05:29 +01:00
Nikolay Kim
d50d1fb7ea
enable python3.7 builds
2018-02-21 10:06:48 -08:00
Nikolay Kim
324a6b2697
drop RefFromPyObject; allow mut refs #106
2018-01-19 09:04:42 -08:00
Nikolay Kim
e5bf656cbc
revert pycls changes; fix word-cound-cls example
2017-11-18 07:20:03 -10:00
Nikolay Kim
b5ffefc50c
use as_ref for PyRawObject in __new__ wrapper
2017-11-18 07:07:19 -10:00
Nikolay Kim
03b6e5c122
refactor object allocation system
2017-08-11 20:17:09 -07:00
Nikolay Kim
bf793b4b71
added use; restore exception
2017-08-08 00:58:12 -07:00
Nikolay Kim
ed8599cfd3
refactor __new__ method implementation
2017-08-08 00:27:33 -07:00
Nikolay Kim
3b00145040
fix #[prop] impl
2017-08-07 23:52:24 -07:00
messense
268d7fd3d2
Generate getters/setters ( #76 )
2017-08-05 10:53:23 +08:00
Nikolay Kim
e44365bec6
make cast_xxx api consistent with PyObject::from_xxx api
2017-08-01 14:29:25 -07:00
Nikolay Kim
c44e23f4b9
add prelude mod
2017-07-31 10:42:55 -07:00
Nikolay Kim
325070f6c9
refactor downcast process
2017-07-28 23:19:00 -07:00
messense
0e2afb7b8b
Add __dict__ support ( #68 )
2017-07-28 22:21:59 +08:00
Nikolay Kim
afcfed492b
only c classes only as base class
2017-07-27 19:47:01 -07:00
Nikolay Kim
665a1da016
added PySuper and __init__ support
2017-07-27 16:20:21 -07:00
messense
ebcd4f5a33
subclass support ( #64 )
2017-07-27 23:05:15 +08:00
Nikolay Kim
d567817035
add base support for inheritance
2017-07-26 22:29:55 -07:00
Nikolay Kim
a120bbf15e
Refactor implementation. Drop parameter from constructor
2017-07-26 01:11:00 -07:00
Nikolay Kim
65a42a2b1a
remove py param
2017-07-25 18:11:45 -07:00
Nikolay Kim
3ab5e4526c
add weakref support #56
2017-07-24 13:03:18 -07:00
Nikolay Kim
ce15dda5b6
Allow to add gc support without implementing PyGCProtocol #57
2017-07-24 12:19:05 -07:00
Nikolay Kim
01ab0f828a
fix license name
2017-07-23 11:24:39 -07:00
Nikolay Kim
5a386ebb42
prepare release
2017-07-23 11:17:10 -07:00
Nikolay Kim
ba86596be1
prefix generated names with _
2017-07-23 10:07:23 -07:00
Nikolay Kim
eed2cb7307
fix modul init fn for python2
2017-07-21 13:13:58 -07: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
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