konstin
aeae195cb4
[WIP] Use syn::ext::IdentExt::unraw
2019-04-28 10:09:55 +02:00
ijl
2bb0d05a30
Drop support for python2
2019-03-29 12:37:26 +00:00
konstin
d02f7c3aa5
Big proc macro refactoring
...
* Removed a lot of clutter, unified some code
* Started using syn::parse::Parse for pyfunction attributes
* No more newlines between imports
* Renamed `#[prop(get, set)]` to `#[pyo3(get, set)]`
* `#[pyfunction]` now supports the same arguments as `#[pyfn()]`
* Some macros now emit proper spanned errors instead of panics.
2019-02-18 20:07:56 +01:00
konstin
936f0153e8
Migrate to rust 2018
2019-02-01 14:23:29 +01:00
konstin
89872dceb9
Replace deprecated methods
2018-12-15 14:15:43 +01:00
konstin
9102f2e364
Refactor the exception macros
...
* Renamed `py_exception` to `create_exception`
* The split up of the macros makes it possible to create exception structs with bodies to mimic python exceptions' members
* Used `Once` to fix a (theoretical) race condition with the is_null check
2018-11-27 23:07:15 +01:00
konstin
13d4d66fdb
cargo fmt
2018-11-15 21:58:22 +01:00
konstin
9c8c5a6063
Rename #[pymodinit] to #[pymodule]
2018-11-15 19:43:29 +01:00
konstin
3a95d163ca
New rustfmt version
...
You might need to upgrade to the latest nightly to get the same results
2018-09-28 23:34:57 +02:00
konstin
d92e522243
Syn 0.15
2018-09-09 00:20:04 +02:00
konstin
4c1ff24b2b
Fix raw identifiers
2018-09-03 20:50:18 +02:00
konstin
a5ab5661a2
Upgrade to syn 0.15-rc
2018-09-02 23:13:35 +02:00
konstin
fe8a719ee1
Rustfmt all the things ✔️
2018-07-30 23:05:10 +02:00
konstin
d59bebcc38
Upgrade from proc_macro to use_extern_macros
2018-07-18 13:08:05 +02:00
konstin
fe931a594f
#[pymodinit] now uses the function name as default module name
2018-07-10 00:13:02 +02:00
konstin
4013d40897
Add py
prefix to the proc macros and move them into the root module
...
This is important because `proc_macro_path_invoc` isn't going to be stabilized soon.
2018-07-08 23:33:48 +02:00
konstin
1201587353
Remove some old-syn clutter
2018-07-04 19:07:27 +02:00
konstin
bc412ede8f
Format pyo3cls and pyo3-derive-backend
2018-07-03 22:28:40 +02:00
konstin
1e31fc4451
Remove even more clutter
2018-07-03 21:11:56 +02:00
konstin
fd6ab73924
Upgrade to syn 0.14: Useful error messages 🎉
2018-06-15 22:41:16 +02:00
konstin
314a4a2b3e
Some more documentation work
2018-05-19 17:27:26 +02:00
Martin Larralde
580e50f727
Make build_py_proto
and build_py_methods
only accept ImplItem
2018-05-14 13:34:36 +02:00
Martin Larralde
4414d684e4
Tidy up pyo3cls/src/lib.rs
2018-05-14 01:14:50 +02:00
Martin Larralde
d1d0dddb48
Improve error messages in pyo3cls
2018-05-14 01:01:23 +02:00
Martin Larralde
d07c538779
Port pyo3cls
to latest syn
2018-05-14 00:49:15 +02:00
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
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