kngwyu
58a0841ff7
Rewrite LazyTypeObjects without once_cell
2020-02-07 00:10:27 +09:00
kngwyu
f8de335b00
Make PyTypeInfo::type_object return &'static instead of NonNull
2020-02-06 19:11:59 +09:00
Yuji Kanagawa
14980d742d
Merge pull request #755 from davidhewitt/property-doc
...
Fix docstrings generated by `[pyo3(get, set)]`
2020-02-03 18:14:54 +09:00
Yuji Kanagawa
8fea23a0b8
Merge pull request #751 from davidhewitt/remove-static-mut
...
Remove static mut from PyTypeInfo implementation
2020-02-03 17:39:25 +09:00
David Hewitt
dfb7d7c58d
Fix docstrings generated by [pyo3(get, set)]
2020-02-03 08:01:30 +00:00
David Hewitt
04f30c5971
Revisions from PR#751
2020-02-03 07:34:42 +00:00
kngwyu
b88fe39ed6
Implement From<&PyNativeType> for Py
2020-02-02 15:28:44 +09:00
David Hewitt
7531b9fb07
Remove even more uses of static mut
2020-01-30 13:24:55 +00:00
David Hewitt
5cbdef6471
Remove static mut from PyTypeInfo implementation
2020-01-30 00:14:27 +00:00
kngwyu
d1f28e9089
Separate FromPyObjectImpl from pyobject_native_type_convert!
2020-01-29 18:12:16 +09:00
David Hewitt
d536974208
Remove unneeded brackets
2020-01-27 08:33:40 +00:00
Yuji Kanagawa
541816b7d2
Merge pull request #730 from davidhewitt/extract-clone
...
FromPyObject for #[pyclass] with T: Clone
2020-01-25 12:42:05 +09:00
David Hewitt
fdf407e045
FromPyObject for #[pyclass] with T: Clone
2020-01-24 08:57:28 +00:00
David Hewitt
43df3299ab
Remove PyNoArgsFunction
2020-01-22 16:27:36 +00:00
Yuji Kanagawa
4fe1841c5f
Merge branch 'master' into v0.9.0
2020-01-17 14:27:02 +09:00
Yuji Kanagawa
db6c822fa2
Merge pull request #734 from ijl/rm-spin
...
Use parking_lot::Mutex instead of spin::Mutex
2020-01-17 14:24:54 +09:00
ijl
23d380ef07
_Py_HashBytes()
2020-01-16 14:04:25 +00:00
ijl
a55a48b189
_PyDict_SetItem_KnownHash()
2020-01-16 14:04:17 +00:00
ijl
4b2f4b3a15
Use parking_lot::Mutex instead of spin::Mutex
...
spin is no longer maintained.
Fixes #718 .
2020-01-16 13:53:54 +00:00
kngwyu
56f68a55cd
Bump version to 0.9.0-alpha.1
2020-01-16 20:05:44 +09:00
David Hewitt
f45eaa00b5
Remove dead code
2020-01-13 23:26:45 +00:00
Alexander Niederbühl
a126f5d0ab
Fix typo in panic message
2020-01-12 14:33:20 +01:00
kngwyu
302b3bb088
Merge branch 'master' into pyclass-new-layout
2020-01-11 15:03:25 +09:00
Alexander Niederbühl
1f675dcaa7
Clear error indicator when the exception is handled on the Rust side
...
Leaving Python's global exception state is misleading, e.g. subsequent
calls of `py.eval` will fail.
2020-01-11 00:44:11 +01:00
kngwyu
ea9824a982
Fix document for PyList::iter
2020-01-08 23:44:16 +09:00
kngwyu
7b502821ce
Use &PyAny instead of PyObject in PyDictIterator
2020-01-08 23:43:40 +09:00
kngwyu
026caeda68
Implement iter for PySet and PyFrozenSet
2020-01-08 23:15:53 +09:00
kngwyu
c57177a169
Refine tests and documents around pyclass.rs
2020-01-08 22:44:50 +09:00
David Hewitt
f7a4fbaa38
Use _PySet_NextEntry
2020-01-08 09:43:03 +00:00
kngwyu
451de182cb
Merge branch 'master' into pyclass-new-layout
2020-01-08 17:16:33 +09:00
David Hewitt
ec79285fe4
Implement IntoIterator for PySet and PyFrozenSet
2020-01-08 00:07:11 +00:00
David Hewitt
72e9abd4c7
Remove specialization from IntoPy implementation
2020-01-07 09:32:34 +00:00
David Hewitt
bf507da154
Remove specialization from FromPyObject blanket impls
2020-01-07 09:01:35 +00:00
kngwyu
ab0a731e5e
Fix use order in prelude
2020-01-07 17:38:20 +09:00
kngwyu
67a98d6c4a
Remove unnecessary Box
2020-01-07 17:37:29 +09:00
kngwyu
f26e07cfd6
Replace IntoInitializer<T> with Into<PyClassInitializer<T>>
2020-01-07 13:08:41 +09:00
kngwyu
b602b4bf6c
Enhance documentation and tests around #[new]
2020-01-07 12:49:36 +09:00
David Hewitt
60edeb889e
Simplify IntoInitializer
2020-01-06 13:19:58 +00:00
kngwyu
d22b03edde
Bump version to 0.8.5
2020-01-05 16:39:18 +09:00
kngwyu
18e565fab5
New PyClassInitializer
2020-01-05 16:01:05 +09:00
kngwyu
8f8785d7c2
Merge branch 'master' into pyclass-new-layout
2019-12-29 23:51:51 +09:00
kngwyu
766a520a10
Documentation enhancement
2019-12-29 00:02:48 +09:00
Alexander Niederbühl
3fae391a3c
Ignore missing # Safety
section in ffi module
2019-12-28 03:54:41 +01:00
Guillaume Desmottes
6f202efa59
dict: implement FromPyObject for BTreeMap
2019-12-24 18:53:19 +05:30
Guillaume Desmottes
ea7a384999
dict: implement FromPyObject for HashMap
...
Based on code from Ben Avrahami on https://github.com/PyO3/pyo3/issues/516
2019-12-24 18:53:00 +05:30
kngwyu
58590393c5
Fix accidently changed file permission
2019-12-24 12:27:22 +09:00
kngwyu
ea51756933
Resolve some clippy complains
2019-12-23 18:05:06 +09:00
kngwyu
d5cff058ef
Fix documents and a clippy warning
2019-12-23 02:09:36 +09:00
kngwyu
acb1120c55
Fix examples with the new #[new] API
2019-12-22 23:59:28 +09:00
kngwyu
e2dc843de5
Fix a corner case for PyClassInitializer
2019-12-22 23:54:41 +09:00
kngwyu
efa16a6dc7
Fix documents accompanied by PyClassShell
2019-12-22 19:41:25 +09:00
kngwyu
6b84401126
Make it enable to safely inherit native types
2019-12-21 23:28:55 +09:00
kngwyu
8175d6f36a
Merge branch 'master' into pyclass-new-layout
2019-12-19 16:12:45 +09:00
David Hewitt
0b45135ff6
Fix documentation typo
2019-12-17 09:42:00 +00:00
kngwyu
b86de9376d
Introduce PyClassInitializer
2019-12-15 21:04:36 +09:00
kngwyu
a6639076b9
Introduce PyInternalCaster
2019-12-14 23:16:39 +09:00
kngwyu
d8a4ecb476
Bump version to 0.8.4
2019-12-14 15:20:55 +09:00
kngwyu
bdb66afe0a
Make PyClassShell have dict&weakref
2019-12-08 17:18:25 +09:00
kngwyu
4b5fa7e977
Introduce PyClass trait and PyClassShell
2019-12-07 17:56:49 +09:00
Simonas Kazlauskas
2ba887a8cf
Fix docs on how to obtain object from PyErr
2019-12-05 00:56:10 +02:00
kngwyu
935adaa5d5
Bump version to 0.8.3
2019-11-23 17:09:10 +09:00
kngwyu
6c6d54db3c
Fix compile error in the latest nightly
2019-11-23 16:29:49 +09:00
kngwyu
8550e0f575
Remove #[init] attribute
2019-10-31 19:39:53 +09:00
kngwyu
b5157b0431
Add doctests for allow_threads
2019-10-28 13:21:30 +09:00
kngwyu
6dff93b7e9
Make &Py~ types unsendable
2019-10-27 23:13:07 +09:00
kngwyu
7977fe68e2
Use Unsendable alias instead of Phantomdata<Rc<()>>
2019-10-27 23:12:59 +09:00
kngwyu
14d2196ba0
Bump version to 0.8.2
2019-10-26 22:47:19 +09:00
Yuji Kanagawa
da1ab1b2b8
Merge pull request #644 from sebpuetz/fix-mapping-protocol
...
Remove contains and iter from PyMappingProtocol.
2019-10-26 22:36:08 +09:00
Alexander Niederbühl
04dece4804
Move PyBytes from string.rs into own file
2019-10-26 00:56:14 +02:00
Sebastian Puetz
3b707c8511
Remove contains and iter from PyMappingProtocol.
...
The methods are not expected by CPython and are only explicitly
callable. To get iteration support, PyIterProtocol should be
implemented and to get support for `x in mapping`,
PySequenceProtocol's __contains__ should be implemented.
https://github.com/PyO3/pyo3/issues/611
2019-10-25 17:20:44 +02:00
Alexander Niederbühl
defa43015a
Fix handling of invalid utf-8 sequences in PyString::to_string_lossy
2019-10-24 22:45:32 +02:00
ijl
caf4713b3a
FFI for PEP 590 Vectorcall
...
https://www.python.org/dev/peps/pep-0590/
This was tested on 3.7 using _PyCFunctionFast and 3.8
using PyObject_Vectorcall. Extending pyo3-derive-backend
to generate code using vectorcall is not done here.
This exposes PyObject_Vectorcall with a link_name to the
underscored name on 3.8 because it is expected to be stabilized
on 3.9.
This fixes the "fast" objects being new in 3.7, not 3.6.
2019-10-23 21:40:38 +00:00
Alexander Niederbühl
7a4909bdc7
Guard against PyUnicode_AsUTF8AndSize returning null
2019-10-23 00:39:47 +02:00
Alexander Niederbühl
b0925e1109
Add conversion traits for PyBytes
2019-10-20 14:42:12 +02:00
Yuji Kanagawa
f6f607ef68
Merge pull request #624 from kngwyu/seq-setitem
...
Fix PySequenceProtocol::set_item
2019-10-19 13:44:49 +09:00
Yuji Kanagawa
69975339be
Merge pull request #630 from programmerjake/fix-bigint-overflow
...
Fix off-by-one error in FromPyObject for BigInt
2019-10-19 13:44:32 +09:00
Jacob Lifshay
f55037c377
switch to using macro for test & change test name
2019-10-18 16:20:16 -07:00
Jacob Lifshay
85492842ac
Fix off-by-one error in FromPyObject for BigInt
...
Fixes #629
2019-10-14 22:31:22 -07:00
kngwyu
d57f2423c8
Fix PySequenceProtocol::set_item
2019-10-12 21:03:21 +09:00
kngwyu
ee69ffd0f0
Support TryFromSliceError/TryFromIntError -> PyErr conversion
2019-10-12 17:25:28 +09:00
kngwyu
13ccdbee84
Implement IntoPy<PyObject> for BigInts
2019-10-12 15:13:09 +09:00
kngwyu
d019fe814c
Bump version to 0.8.1
2019-10-08 01:52:06 +09:00
Yuji Kanagawa
d602b65347
Merge pull request #615 from PyO3/fix-specialization
...
Fix broken specialized implementations with Rust 1.40
2019-10-08 01:39:07 +09:00
Martin Larralde
33bf37d3d8
Run cargo fmt
on source code and update CHANGELOG.md
2019-10-07 17:12:32 +02:00
Martin Larralde
5397a62f48
Fix broken specialized implementations with Rust 1.40
2019-10-07 16:01:15 +02:00
kngwyu
9b2fbbbe15
[BigInt] Refactor and handle zero based on reviews
2019-10-04 21:04:26 +09:00
kngwyu
a18c8ddf59
Fix typos in BigInt tests
2019-09-28 21:22:42 +09:00
kngwyu
f8573e7e13
[BigInt] Fix tests for neg value
2019-09-28 18:12:23 +09:00
kngwyu
a6d38c9929
Support conversion between num-bigint and Python Long
2019-09-28 17:43:26 +09:00
kngwyu
c38bf5ea7c
Use to/from_ne_bytes for 128bit int conversion
2019-09-28 16:19:31 +09:00
Yuji Kanagawa
75516d87eb
Merge pull request #603 from kngwyu/upd-doc
...
Update README and document
2019-09-28 16:18:53 +09:00
Yuji Kanagawa
d860ee3f21
Merge pull request #597 from kngwyu/err-nosegv
...
Reguire GIL before constructing PyErr from Rust value
2019-09-28 15:11:23 +09:00
kngwyu
a344999526
[DOC] Add Python from Rust section in the guide
2019-09-23 21:44:42 +09:00
kngwyu
35851b7ff9
Fix documents following the review comment
2019-09-15 22:17:36 +09:00
kngwyu
44f26f4bb9
Update README and document
2019-09-15 19:58:41 +09:00
kngwyu
05a1a097a9
Remove mem::forget from PyBuffer::release
2019-09-14 16:56:11 +09:00
kngwyu
46ba019829
Address clippy warning(to_args->from_err_args)
2019-09-07 16:07:24 +09:00
kngwyu
a82726a240
Reguire GIL before constructing PyErr from Rust value
2019-09-07 15:38:59 +09:00
Yuji Kanagawa
aaa28a3bd0
Merge pull request #594 from PyO3/pyo3-pack-to-maturin
...
Replace pyo3-pack with maturin
2019-09-07 11:49:09 +09:00
Alexander Niederbühl
68c3208d35
Move files from ffi3 into ffi
...
Since Python 2 is no longer supported, one folder should be enough.
2019-09-07 00:50:47 +02:00
konstin
a3cde076f4
Replace pyo3-pack with maturin
2019-09-06 01:12:37 +02:00
konstin
a3e41cc819
Release 0.8.0
2019-09-05 13:18:50 +02:00
konstin
3228b4cd6c
Merge pull request #585 from andersk/drain-gil
...
Require the GIL to be held in ReleasePool::drain
2019-09-05 12:46:35 +02:00
kngwyu
df44e500a9
Remove py from parse_fn_args's args(to address clippy warning)
2019-09-02 23:05:42 +09:00
kngwyu
c7e377a472
[derive_utils] Copy kwargs not to modify it
2019-09-01 23:59:24 +09:00
kngwyu
96b71bfb76
Merge branch 'master' into parse_args_msg
2019-08-31 17:03:15 +09:00
Anders Kaseorg
e70e9ab5e6
Require the GIL to be held to drain the ReleasePool
...
This adds a `Python` marker to `GILPool`, to prevent the caller from
misusing it to drain the `ReleasePool` and release Python objects
without the GIL held.
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2019-08-29 23:55:59 -07:00
konstin
b04727c11f
FromPy implies IntoPy
2019-08-25 23:52:56 +02:00
konstin
30e82a3018
Replace IntoPyObject with IntoPy<PyObject>
2019-08-24 19:23:28 +02:00
Samuele Maci
f15fa210f4
Remove unnecessary trailing semicolon
2019-08-17 15:27:07 +02:00
Samuele Maci
6b4a221d61
Address clippy::float_cmp issues
2019-08-17 14:10:36 +02:00
Samuele Maci
0de22c665f
Address clippy::identity_conversion issues
2019-08-17 14:10:36 +02:00
Samuele Maci
6ae27f9c44
Address clippy::unreadable_literal issues
2019-08-17 14:10:35 +02:00
Yuji Kanagawa
be22d9e5bb
Merge pull request #573 from kngwyu/ref_into
...
Implement IntoPyObject to PyRef
2019-08-11 21:04:36 +09:00
kngwyu
5ab216dfe0
Implement IntoPyObject to PyRef
2019-08-11 18:43:50 +09:00
Yuji Kanagawa
1f85593d0a
Merge pull request #564 from kngwyu/paste
...
Replace mashup with paste
2019-08-11 18:42:21 +09:00
konstin
664209b3ed
Merge pull request #558 from danieldk/fix-iter-null-deref
...
Fix NULL pointer deref when creating iterator for non-iterable
2019-08-05 14:39:33 +02:00
konstin
38f25f6462
Merge pull request #550 from hengchu/fix/rhs-arithmetic
...
Attempting to fix #549
2019-08-05 11:40:24 +02:00
kngwyu
41f31e85fd
Replace mashup with paste
2019-08-04 23:50:10 +09:00
Alexander Niederbühl
1e01f4f8cc
Use to_string() instead of description() for exception messages
...
`description()` is soft-deprecated and can differ from `to_string()`.
For example for NotFound error:
* `description()`: "entity not found"
* `to_string()`: "No such file or directory (os error 2)"
Since io errors provide their error code through the Display trait there
is no need to get it through `raw_os_error()`.
2019-08-01 00:48:56 +02:00
Daniël de Kok
ac28a3114b
Fix NULL pointer deref when creating iterator for non-iterable
...
Fixes #494 .
2019-07-27 19:58:18 +02:00
hengchu
3596cc65c0
adding a small testcase for rhs arithmetics
2019-07-21 23:05:03 -04:00
konstin
a4ed4543d1
Remove an unsafe
2019-07-21 14:08:49 +02:00
hengchu
741b7e3daa
make rhs-arith protocol impls public traits
2019-07-21 03:33:39 -04:00
konstin
58e17be1a6
Merge pull request #545 from PyO3/replace-PyByteArray-data
...
Replace unsound PyByteArray::data with PyByteArray::to_vec
2019-07-20 13:14:14 +02:00
konstin
cd2eefb65a
fixup
2019-07-20 12:22:10 +02:00
konstin
1736568d28
Rename also in the tests
2019-07-19 18:17:11 +02:00
Omer Katz
182b2fc615
Add empty() to PySet and PyFrozenSet.
2019-07-19 17:35:47 +03:00
konstin
bd86b6750e
Replace unsound PyByteArray::data with PyByteArray::to_vec
2019-07-18 22:57:33 +02:00
konstin
d90ac76400
Implement Index for PyBytes
2019-07-17 12:29:14 +02:00
konstin
5ae014fe52
Merge pull request #532 from Alexander-N/gc-default
...
Remove default implementation for PyGCProtocol
2019-07-15 12:02:52 +02:00
konstin
7e4b7168a6
Merge pull request #534 from Alexander-N/clippy
...
Make CI fail on clippy warnings
2019-07-15 11:48:22 +02:00
kngwyu
370849e075
Use [Option<T>; N] in ArrayList
2019-07-15 13:32:18 +09:00
Alexander Niederbühl
cc31c7dbf2
Ignore remaining clippy lints
2019-07-14 22:42:37 +02:00
Alexander Niederbühl
faa21f48c7
Fix some clippy lints
2019-07-14 22:42:37 +02:00
Alexander Niederbühl
ec71dc63a0
Remove #[allow(unused_variables)]
2019-07-14 18:09:12 +02:00
Alexander Niederbühl
7c687a8d38
Remove default implementation for PyGCProtocol
...
Implementations for these methods should always be provided. See #531
2019-07-14 17:26:04 +02:00
konstin
7a83cb6afa
Use existing fields and methods before calling custom __getattr__
...
Previously, defining `__getattr__` would override all existing fields and methods. This changes it to behave like a `__getattr__` method defined in python, i.e. the custom method is only called if there isn't a field or method of that name
2019-07-13 22:54:43 +09:00
Yuji Kanagawa
5d85ea7fdc
Merge pull request #513 from kngwyu/pinbox
...
Refactoring around Box usages
2019-07-10 11:43:10 +09:00
ijl
c27d9947a8
Fix deprecation warnings on sync and mem
2019-07-07 09:52:25 +00:00
kngwyu
a4cf09f16a
Refactor derive_utils
2019-06-16 22:13:50 +09:00
Georg Brandl
cba1657460
Adjust the varargs/kwds objects to remove arguments consumed by parameters
...
Also fix some other validation issues and add more tests.
fixes #420
2019-06-16 22:13:50 +09:00
Georg Brandl
241a8956c9
Fix the argument parsing TypeError message
...
- parens are already added by the _LOCATION at call site
- fix plural-"s" logic
2019-06-16 22:13:50 +09:00
kngwyu
2fa017a508
Refactor type_object::initialize_type
2019-06-16 21:54:06 +09:00
kngwyu
02d93346c2
Use Pin<Box> for PyBuffer
2019-06-16 21:53:02 +09:00
Yuji Kanagawa
3e69389e68
Merge pull request #512 from kngwyu/expose-py-run
...
Expose py_run! macro
2019-06-15 23:50:14 +09:00
kngwyu
503ec1a061
Use unindent crate instead of _indoc_runtime
2019-06-15 01:10:18 +09:00
kngwyu
f642dbccb2
Refactor py_run!
2019-06-14 18:58:00 +09:00
kngwyu
8dbb388372
Change add_wrapped to take &impl Fn
2019-06-14 12:42:32 +09:00
kngwyu
0f9a3b1194
Expose py_run macro
2019-06-13 18:18:06 +09:00
konstin
dfd5a2abb8
Print error before on class init panic
...
Inspired by https://github.com/rust-numpy/rust-numpy/issues/97 , also fixes some warnings from the latest nightly
2019-06-05 12:01:09 +02:00
Martin Larralde
99fdafbb88
Allow setting the module name for a pyclass ( #499 )
...
* Add `MODULE` const value to `PyTypeInfo` trait
* Allow setting module name in `pyclass` macro arguments
* Add `$module` argument to `pyobject_native_type` macro in `pyo3::types`
* Set the right module for builtin types in `pyo3::types`
* Add `module` argument to example `word_count.WordCounter` class
* Add `module` argument of `pyclass` macro to guide
* Reformat code using `rustfmt`
* Add tests and entry in CHANGELOG.md for `module` argument in `pyclass`
* Make `$module` parameter in `pyobject_native_type` optional
* Make `pyobject_native_type` declare module as `Some("builtins")` by default
2019-06-03 12:18:44 +09:00
konstin
0279b3d69f
Release 0.7.0
2019-05-26 17:27:14 +09:00
kngwyu
4bf448ecaa
Complete the PR
2019-05-25 23:19:07 +09:00
Georg Brandl
39d3ceb551
Make PyTuple constructors return &PyTuple
2019-05-25 22:40:32 +09:00
Alexander Niederbühl
6a7090c0b0
Fix some clippy lints
2019-05-16 00:16:23 +02:00
konstin
eeeee236fd
Merge pull request #478 from kngwyu/run_returns_empty
...
Change Python::run to return PyResult<()>
2019-05-12 15:16:17 +02:00
Alexander Niederbühl
299d325375
Enable setting the module name of a class
...
This is relevant for pickling objects.
2019-05-08 23:39:22 +02:00
kngwyu
803f18e61d
Change Python::run to return PyResult<()>
2019-05-08 15:49:24 +09:00
Georg Brandl
cdabf9e1a5
Make more constructors return &PyX instead of Py<PyX>
...
fixes #405
2019-05-06 10:33:31 +02:00
Alexander Niederbühl
c68333c5c2
Fix clippy::len_without_is_empty
...
Also remove obsolete Python 2 comment and add some punctuation for
consistency.
2019-05-04 15:36:10 +02:00
Alexander Niederbühl
d174c6ed23
Fix clippy::type_complexity
...
Don't use PyResult since no error is returned.
2019-05-04 14:03:24 +02:00
konstin
c6a5c054e1
Merge pull request #469 from PyO3/remove_doc_comment
...
Remove doc-comment
2019-04-28 18:26:51 +02:00
konstin
cd15719765
Remove doc-comment
2019-04-28 10:36:32 +02:00
Maarten de Vries
651e28ccbb
marshal: Remove unwrapped ffi functions.
2019-04-26 10:10:50 +02:00
Maarten de Vries
caa5c7f88a
marshal: Add example to documentation of dumps
.
2019-04-26 10:10:50 +02:00
Maarten de Vries
739efb1b54
marshal: Use PyAny and PyBytes in safe interface.
2019-04-26 10:10:50 +02:00
Maarten de Vries
35168883b2
Add safe marshal module wrapping unsafe ffi::PyMarhshal_*.
2019-04-26 10:10:50 +02:00
Maarten de Vries
1ebdb9f364
Move marshal module from ffi3 to ffi.
2019-04-26 10:10:50 +02:00
Maarten de Vries
0a5edcb74e
Add PyMarshal_* functions to ffi modules.
2019-04-26 10:10:50 +02:00
Alexander Niederbühl
1d92c24db8
Add pypy.md to doctests
...
At the moment there are no code snippets, but all files in the guide
should be included.
2019-04-24 22:44:47 +02:00
Alexander Niederbühl
e912900926
Add mistakenly ignored test again
2019-04-24 22:41:59 +02:00
Yuji Kanagawa
60cd0d09c4
Merge pull request #419 from kngwyu/pyclass-regression
...
Allow slf: PyRef<Self>/PyRefMut<Self> in pymethods
2019-04-24 14:10:28 +09:00
Yuji Kanagawa
5cc6b55c71
Merge pull request #455 from Alexander-N/clippy
...
Fix some clippy lints
2019-04-24 12:39:21 +09:00
Alexander Niederbühl
faa3feda3f
Merge branch 'master' into doctest
2019-04-23 21:58:09 +02:00
Alexander Niederbühl
6d87934ce0
Fix some clippy lints
2019-04-23 21:44:40 +02:00
konstin
7149a1fecb
Bump to 0.7.0-alpha.1 ( #457 )
2019-04-23 18:55:35 +02:00
kngwyu
09bf9bbf4a
Allow slf: PyRef<Self> by replacing Self
2019-04-23 23:16:09 +09:00
kngwyu
5a2b021fda
Remove FromPyObject from PyRef
...
It's invalid
2019-04-23 23:16:09 +09:00
kngwyu
b2e01066f0
Introduce FromPyPointer for slf: PyRef/PyRefMut
2019-04-23 23:16:09 +09:00
kngwyu
515c7beac0
Allow slf: Py<Self>/PyRef<Self>/PyRefMut<Self> in pymethods
2019-04-23 23:16:08 +09:00
Omer BenAmram
f8bf258602
Support rust extensions for PyPy via cpyext ( #393 )
...
* wip
* removed stuff
* removed another change
* implemented minimum amouth of ifdefs to make pypy3 hello world to compile
* implemented minimum amount of ifdefs to make pypy3 hello world to compile
* hacking on build.rs
* compiler is happy!
* few todos remain
* extracted build logic to seperate module
* added pypy test
* finally fixed pypy structs
* removed some todos
* test should now be machine independent
* fixed all pypy3 symbols
* added pypy feature
* removed `is_pypy`
* added pypy2 declerations also
* fix for cpython2
* improved libpypy detection
* added all pypy2 macros
* fixed errneous type
* more fixes
* fix python2 string macros
* modsupport symbol
* fix
* fixed and added many symbols
* fixes
* remove dup
* remove mac-specific config
* fix all name mangling macros
* unite imports
* missing symbol
* fix pybool
* implemented another missing symbol
* it works
* fix merge conflict
* uncomment non default features
* cargo.toml
* Cargo fmt
* small merge fixes
* use newer build version
* whoops
* fix build script
* more build hacks
* some random hiccups
* small fixes
* it builds!
* it builds and runs
* revert everything in FFI2
* revert changes to ffi2
* check python3 for pypy
* tiny fix
* revert ffi2 for real
* revert weird formatting changes
* bring back missing feature
* tiny error
* fix py3.7 issue
* add pypy3.5 6.0 to travis
* remove dbg!
* another tiny fix
* removed some useless annotations, and fixed inlines annotations
* removed `pretty_assertions`
* removed pypy feature from cargo.toml
* fix for Py_CompileStringFlags
* tox runs word_count!
* __dict__ changes are not supported for PyPy
* fix 3.7 and copy comment
* fix test script 😳
* transfer ownership of strings to cpython when possible
* remove cstr! macro
* added missing nuls
* as_bytes() -> b’’ string
* symbol removed by mistake
* properly shim pypy date time API, some tests are passing!
* extension_module tests now not crashing! (some still skipped)
* maybe travis has new pypy version?
* small error on windows (build script)
* fix conditional compilation
* try to make tests run on travis..
* invert condition
* added pytest-faulthandler to facilitate debugging
* correctly name dir
* use full paths
* say —yes to conda
* fix
* syntax error
* change PATH
* fixed a terrible bug with PyTypeObjects in PyPy
* fix PyTypeObject defs
* re-enabled tests!
* all tests are passing!
* make the fix ad-hoc for now
* removed build module
* revert changes that cause an additional GC bug
* prevented buggy test from failing pypy
* removed unused comment
* don’t run coverage on pypy
* removed some erroneous symbols from function calls which are actually macros
* restore py37 pyunicode missing def
* use only `link_name` in PyPy specific declarations
* only setup PyPy when testing against PyPy
* annotation that was eaten during merge
* remove change to comment by mistake + unnecessary changes to cargo.toml
* xfail dates test only on pypy
* changed comment to be a little more helpful
* cleaned up some warnings
* Update src/ffi3/ceval.rs
Co-Authored-By: omerbenamram <omerbenamram@gmail.com>
* @konstin PR notes
* rustfmt
* some documentation
* if configured via env var only, default to cpython
* remove extra unsafe
* refer users to guide for pypy
* Update guide/src/pypy.md
Co-Authored-By: omerbenamram <omerbenamram@gmail.com>
* Update guide/src/pypy.md
Co-Authored-By: omerbenamram <omerbenamram@gmail.com>
* @konstin applied patch
* check that pypy at least build
* search explicitly for libpypy
* added note about some known unsupported features
* use ld_version
* export PYTHON_SYS_EXECUTABLE to `cargo build` test
* inverted if
* always link pypy dynamically
* remove unused imports
* Apply @kngwyu’s suggestion
* fix tox configuration
* try conda virtualenv
* try to simply not install python at all inside pypy environment
* setup pypy before using “python"
* use system_site_packages
* revert change to .travis
* moved cpyext datetime documentation to module level, and revised it.
* Update src/ffi/datetime.rs
Co-Authored-By: omerbenamram <omerbenamram@gmail.com>
* rustfmt
* Update src/ffi/datetime.rs
Co-Authored-By: omerbenamram <omerbenamram@gmail.com>
* kept only notes that are relevant to users.
* invert if
* use bash and not sh
2019-04-23 13:18:42 +02:00
Alexander Niederbühl
5858823e83
Test readme and user guide with doc-comment
...
Also rename some files for consistency.
2019-04-19 22:38:11 +02:00
konstin
f62f384ecd
Merge pull request #448 from PyO3/fix_442
...
Properly scope libc to fix #442
2019-04-18 18:46:47 +02:00
konstin
6d80ee0679
Properly scope libc to fix #442
...
Apparently we can't add a test for that because the test crates have libc
in scope
2019-04-17 19:08:55 +02:00
Georg Brandl
527da127f3
Make Py(Frozen)Set::new return PyResult<&Py(Frozen)Set>
...
fixes #437
2019-04-17 12:17:58 +02:00
ijl
afb82ee875
PyFloat_AS_DOUBLE()
2019-04-16 12:53:03 +00:00
Martin Larralde
60efd5b9c2
Merge pull request #432 from althonos/master
...
Fix documentation-related bugs
2019-04-14 19:05:59 -07:00
Ivan Enderlin
a78465f8b1
doc(types) Fix a typo in PySlice
...
Thanks for the awesome project!
2019-04-13 20:59:31 -07:00
Martin Larralde
3f4f068c7f
Ensure #[getter]
doc is exposed as the __doc__
of the descriptor
2019-04-14 00:23:59 +02:00
Martin Larralde
72003ec37a
Add entry to CHANGELOG.md
2019-04-04 09:47:21 +02:00
Martin Larralde
ad9e676512
Have PyModule
generate a __all__
list from its members
2019-04-04 09:43:32 +02:00
Martin Larralde
08334fe582
Fix create_exception
macro not using an unsafe impl
2019-03-31 05:40:06 +02:00
Martin Larralde
2c82a03170
Add entry to CHANGELOG.md
and fix typo
2019-03-31 05:29:20 +02:00
Martin Larralde
d482b715de
Fix signatures of PySequenceProtocol
methods
2019-03-31 05:28:52 +02:00
konstin
9a9b519bcb
Mark PyTypeObject as unsafe
2019-03-30 20:25:47 +01:00
ijl
80179be2b0
Merge num3, num_common to num
2019-03-29 12:37:26 +00:00
ijl
fdeef7d67e
Merge string and stringutils
2019-03-29 12:37:26 +00:00
ijl
2bb0d05a30
Drop support for python2
2019-03-29 12:37:26 +00:00
konstin
20481e8324
Whitelist clippy error
2019-03-24 17:33:08 +01:00
konstin
97189a16b9
Try fixing cargo fmt on travis ci
2019-03-24 17:19:15 +01:00
konstin
f75f742c58
Fix CStr usages
2019-03-20 21:48:41 +01:00
Miles Granger
711155d7ad
Update tests & docs with IntoPyDict::into_py_dict(py)
2019-03-20 20:04:00 +01:00
konstin
3e475b052b
Merge pull request #388 from kngwyu/pyany
...
Rename PyObjectRef with PyAny
2019-03-18 11:04:29 +01:00
konstin
09883574e5
Remove cstr macro
2019-03-18 11:01:55 +01:00
konstin
59a9d4fd9f
Merge branch 'master' into pyany
2019-03-18 01:00:26 +01:00
Alexander Niederbühl
5a3466d1d7
Fix compilation for Python 2
2019-03-17 21:06:26 +01:00
Alexander Niederbühl
f79f84a31b
Complete __dict__ support
...
Add `__dict__` slot to tp_getset of type_object. See
https://bugs.python.org/issue16272 for why this is necessary.
2019-03-17 20:31:05 +01:00
Sebastian Köln
7564f76051
fix #398
2019-03-15 15:54:14 +01:00
Alexander Niederbühl
3a6e0a2724
Remove use of INCREF
and cnt
2019-03-10 02:49:51 +01:00
Alexander Niederbühl
f68ae0cfae
Fix flaky tests
...
The tests were flaky because they took references to the empty tuple
which is a singleton. Use a unique object for each test to make them
independent.
2019-03-06 00:12:30 +01:00
kngwyu
f3fe0dfdd5
Move From<PyRef> impl to any.rs
2019-03-04 21:49:43 +09:00
kngwyu
c6a6634d8a
Move PyAny to any.rs
2019-03-04 14:23:40 +09:00
kngwyu
874d8a0835
Rename PyObjectRef with PyAny
2019-03-04 13:50:43 +09:00
konstin
dcce57f4f9
Merge pull request #369 from kngwyu/hide-nativetype
...
Make PyNativeType unsafe
2019-02-26 23:53:12 +01:00
kngwyu
498689423e
Make PyNativeType unsafe
2019-02-25 23:15:13 +09:00
kngwyu
86d239e445
Rename ToPyPointer with AsPyPointer
2019-02-24 16:20:04 +09:00
konstin
d3743fec64
Python 2
2019-02-23 18:42:40 +01:00
konstin
6cd07c369c
Simpler new and clippy fixes
2019-02-23 18:38:00 +01:00
konstin
ad590bd158
Some api improvements
2019-02-23 18:01:22 +01:00
konstin
0cd72ac213
Bump to 0.6.0-alpha.4
2019-02-20 11:30:09 +01:00
konstin
32a15bc4a9
Merge pull request #364 from PyO3/parser_refactoring
...
Big proc macro refactoring
2019-02-19 22:22:23 +01: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
kngwyu
8d9b4dd153
Introduce PyDictItem
2019-02-18 16:06:37 +09:00
Chris Jones
5a28a1c4f0
Add PyList.reverse()
.
2019-02-17 22:22:46 +00:00
Yuji Kanagawa
b01592e201
Merge pull request #359 from chr1sj0nes/pylist_from_iterator
...
Add support for creating `PyList` from any `IntoIterator` for known s…
2019-02-17 09:50:06 +09:00
Chris Jones
e1ffd6c352
Add support for creating PyList
from any IntoIterator
for known size.
2019-02-16 23:28:03 +00:00
Chris Jones
275e6cb7c8
Add PyList.sort()
.
2019-02-15 23:20:02 +00:00
konstin
6cb098ee12
Replace py.init_[ref|mut] with Py[Ref|Mut]::new
2019-02-13 21:52:21 +01:00
konstin
1a489d2829
Make the init methods use a value instead of a function
2019-02-13 13:59:47 +01:00
konstin
ce659941e8
Cleanup PyTypeObject and PyTypeCreate
2019-02-13 12:32:59 +01:00
konstin
c13f0708a4
Replace IntoPyTuple with IntoPy<Py<PyTuple>>
2019-02-12 22:58:23 +01:00
kngwyu
4a552a88cf
Py::new_ref -> PyRef::new
2019-02-08 23:51:14 +09:00
kngwyu
f95f4e8c14
Fix python2 test
2019-02-08 14:09:49 +09:00
kngwyu
c80134fbcd
Refactor PyRef/PyRefMut based on reviews
2019-02-08 13:58:44 +09:00
kngwyu
1d3dd2c343
Write documents of PyRef/PyRefMut
2019-02-07 15:17:27 +09:00
kngwyu
01fc1405b0
Modify AsPyRef::as_ref to return PyRef
2019-02-07 14:27:13 +09:00
kngwyu
22687c3712
Modify PyIterProtocol to take PyRefMut
2019-02-05 17:27:34 +09:00
kngwyu
76e30b5248
Remove ToPyPointer and so on from pyclass
2019-02-04 00:34:06 +09:00
konstin
56f2257e90
rust 2018 fixes
2019-02-01 16:23:34 +01:00
konstin
c71c116f29
Better trait bounds with PyMethodsProtocol
2019-02-01 16:23:34 +01:00
konstin
ae8a37cd0a
Allow 0..n pymethod blocks without specialization
2019-02-01 16:23:34 +01:00
konstin
829f35af5b
Migrate to rust 2018
2019-02-01 16:23:34 +01:00
konstin
e1154120d1
ffi2 to rust 2018
2019-02-01 16:23:34 +01:00
konstin
0495ee52d3
ffi2 to rust 2018
2019-02-01 15:25:58 +01:00
konstin
936f0153e8
Migrate to rust 2018
2019-02-01 14:23:29 +01:00
konstin
423b5d1099
Merge pull request #327 from StarryInternet/fix-cross-compilation
...
Implement Basic Cross Compile Support
2019-02-01 13:50:39 +01:00
Matt Pelland
80a6318b43
avoid signedness issues when cross compiling
2019-01-30 18:08:03 -05:00
Alexander Niederbühl
df36292523
Add $crate:: prefix in import_exception!
...
Also change doctest to use Rust 2018 macro includes.
2019-01-28 18:25:02 +01:00
Alexander Niederbühl
fbd012601e
Fix kwargs
...
kwargs was broken by a check for the number of given arguments. Only
apply this check if no arbitary number of keyword arguments are allowed
by a "**" parameter of `#[args(...)`.
Closes #318
2019-01-25 00:47:28 +01:00
Joel Höner
262b708de2
Add $crate:: prefix in create_exception!
2019-01-13 22:00:52 +01:00
konstin
5edd263371
rustfmt
2019-01-08 20:18:06 +01:00
konstin
146cb31c59
Merge pull request #317 from PyO3/issue_313
...
Fix #313
2019-01-08 19:39:25 +01:00
konstin
27520cb683
Fix #313
...
Thanks to @sumeet for the patch
2018-12-28 20:41:03 +01:00
konstin
322594128c
Merge pull request #316 from kngwyu/arraylist-fix
...
Fix memory leak in ArrayList
2018-12-28 20:31:26 +01:00
kngwyu
bbfe79fa57
Fix memory leak in ArrayList
2018-12-26 20:18:02 +09:00
kngwyu
419884c6ba
Use Box::into_raw instead of forget vec
2018-12-26 17:49:08 +09:00
ijl
984751a57f
Macro Rust doc
2018-12-21 02:07:43 +00:00
ijl
3452d6544a
ffi3 list macros, matching ffi2
2018-12-20 23:32:35 +00:00
Pavel Potoček
cbe668a0f4
Add (probably) forgotten type parameters to the pyobject_native_type_convert
macro.
...
This is needed for `rust-numpy` to compile.
2018-12-05 10:56:39 +01:00
ijl
b8a6d67e31
PyTryFrom::try_from_mut_unchecked()
2018-12-01 10:27:48 -05:00
ijl
d18ebea1c2
PyTryFrom::try_from_unchecked()
...
This allows casting a PyObjectRef to a specific type of PyObject
with no overhead.
2018-12-01 10:12:27 -05:00
konstin
790a103753
Merge pull request #291 from PyO3/exception_macros
...
Refactor the exception macros
2018-12-01 13:04:06 +01:00
kngwyu
7a83c1dc0f
Revert removing default from impl FromPyObject for &T and &mut T
2018-11-29 22:45:36 +09: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
kngwyu
b8f1373bec
Remove default for impl PyTryFrom for &T and &mut T
2018-11-27 14:42:09 +09:00
kngwyu
2539acc1e8
Remove default from ReturnTypeIntoPyResult
2018-11-27 14:31:00 +09:00
kngwyu
119e0abde2
Fix ArrayList::truncate
2018-11-21 16:28:26 +09:00
kngwyu
949097874f
Fix bug in ArrayList::pop_back
2018-11-21 16:00:26 +09:00
kngwyu
63ec65d5ac
Refactor ReleasePool
2018-11-21 16:00:26 +09:00
kngwyu
acbab2b3f0
Use ArrayList::truncate for borrowed pointers
2018-11-21 16:00:26 +09:00
kngwyu
4c38b21e49
Fix ArrayList::push_back
2018-11-21 16:00:26 +09:00
kngwyu
be77846979
Use LinkedList<[T; 256]> in ReleasePool
2018-11-21 16:00:26 +09:00
kngwyu
25a5b74ba6
Use linked list in ReleasePool
2018-11-21 16:00:26 +09:00
konstin
13d4d66fdb
cargo fmt
2018-11-15 21:58:22 +01:00
konstin
d618ca401a
Merge pull request #274 from kngwyu/releasepool-nonnull
...
Use NonNull in ReleasePool and add bench_dict
2018-11-15 20:27:06 +01:00
konstin
f645720fe5
Merge pull request #270 from PyO3/module
...
Treat modules as normal objects
2018-11-15 20:26:46 +01:00
konstin
9c8c5a6063
Rename #[pymodinit] to #[pymodule]
2018-11-15 19:43:29 +01:00
konstin
863ffb161f
Add wrap_module macro
2018-11-15 19:43:29 +01:00
konstin
42f84ff881
Add clippy to travis
2018-11-15 15:23:45 +01:00
konstin
3de622cdfd
Better explaination for the cast
2018-11-15 12:10:16 +01:00
konstin
287a168b18
Fix test failure
2018-11-15 12:08:22 +01:00
kngwyu
a73bd06c1f
Replace NonNull::new_unchecked with new().unwrap() in test
2018-11-15 13:40:35 +09:00
konstin
5f175a41cf
Make clippy happy
2018-11-14 16:49:48 +01:00
kngwyu
6d442e5969
Use NonNull in release pool
2018-11-14 15:39:07 +09:00
Yuji Kanagawa
42dbaeb913
Merge pull request #268 from kngwyu/fix-dict-iter
...
Fix PyDictIterator's segfault(for #159 )
2018-11-13 14:29:42 +09:00
kngwyu
1081ba9447
Fix import module name in test_dict_iter
2018-11-13 11:50:13 +09:00
konstin
3614f38154
Remove some transmute
2018-11-12 21:38:20 +01:00
kngwyu
faa5efc5a1
Remove unnecessary Drop for PyDictIterator
2018-11-13 01:00:15 +09:00
kngwyu
3b01b8f6ba
Review fixes
2018-11-13 00:53:06 +09:00
konstin
d1de3338d1
Refactor PyObjectAlloc
2018-11-12 16:45:57 +01:00
kngwyu
34099b33f8
Fix PyDictIterator's segfault(for #159 )
2018-11-13 00:25:54 +09:00
konstin
6cec1c39cc
Update changelog
2018-11-12 15:11:03 +01:00
konstin
aed0466915
s/PyObjectWithToken/PyObjectWithGIL/g
2018-11-12 15:10:53 +01:00
konstin
57afb51604
Remove PyToken completely; Fixes #94
2018-11-12 14:42:21 +01:00
konstin
fb2349b6ec
Remove PyToken usages from tests
2018-11-12 14:41:29 +01:00
konstin
d2ba436d6d
Remove the unnecessary type parameter PyObjectAlloc
2018-11-12 14:37:06 +01:00
konstin
9f45efebaf
Format
2018-11-11 12:25:53 +01:00
konstin
4c0ddbe61e
Merge pull request #263 from kngwyu/fix-240
...
Fix #240
2018-11-11 11:49:31 +01:00
kngwyu
bd6f923f43
Fix #240
2018-11-09 13:11:47 +09:00