David Hewitt
b9e95dc7c9
Implement std::error::Error for PyErr
2020-09-10 19:04:24 +01:00
Sebastian Pütz
2e8010b5df
Add native Function native types.
...
Add bindings for PyCFunction, PyFunction, PyClassMethod and
PyStaticMethod.
2020-09-08 09:51:31 +02:00
David Hewitt
16fe583b82
Merge pull request #1143 from sebpuetz/pyfunction-modules
...
PyModule in #[pyfunction]
2020-09-06 20:55:29 +01:00
Sebastian Pütz
64b06ea9ec
Change `add_submodule()` to take `&PyModule`.
...
The C-exported wrapper generated through `#[pymodule]` is only
required for the top-level module.
2020-09-05 15:54:57 +02:00
David Hewitt
2b0b853912
Add CHANGELOG to the guide
2020-09-05 14:44:39 +01:00
Sebastian Pütz
e65b849ab6
Doc fixes, changelog and rename.
2020-09-05 10:20:22 +02:00
Yuji Kanagawa
729f2f42e7
Merge pull request #1065 from sebpuetz/union
...
FromPyObject derivation for structs and enums
2020-08-31 21:28:49 +09:00
David Hewitt
82cb815afa
Use IntoPy<PyObject> for PyModule::add
2020-08-30 16:24:20 +01:00
Sebastian Pütz
60fe4925f5
'#[derive(FromPyObject)]` changes suggested by @davidwhewitt.
2020-08-30 10:22:01 +02:00
Mario
608aea726c
Allow other Result types in `#[pyfunction]` ( #1118 )
...
* Added a couple basic tests
* Implemented suggested change
* Fixed type inference
* cargo fmt
* Finished tests and removed warnings
* Include in CHANGELOG.md
* Moved test into separate file
* &'static str and function rename
* Mention in the book
2020-08-29 08:25:20 +01:00
Matthew Treinish
659d24e1a9
Add CHANGELOG entry and update conversions guide
2020-08-26 06:37:02 -04:00
kngwyu
3e958bf607
Encapsule slot_setter's behavior to an iterator
2020-08-20 14:41:51 +09:00
Rene Leveille
6ddae70a2b
fix changelog and added comment for finding sysconfigdata
2020-08-18 13:23:48 -04:00
Rene Leveille
aef159d4ee
appy suggestions from PR
2020-08-17 11:26:30 -04:00
Rene Leveille
3bc951a551
make clippy happy and add to changelog
2020-08-17 11:25:42 -04:00
David Hewitt
565e36d989
Merge pull request #1098 from davidhewitt/py-as-into-ref
...
Py::as_ref and Py::into_ref (remove AsPyRef)
2020-08-11 20:44:53 +01:00
Yuji Kanagawa
c4d9ab227e
Merge branch 'master' into iterator-example
2020-08-10 17:11:00 +09:00
kngwyu
093dda375f
Improve lifetime insertions for #[pyproto]
2020-08-10 15:18:16 +09:00
David Hewitt
7d0b3b386a
Add Py::into_ref
2020-08-09 23:00:34 +01:00
David Hewitt
f29e6bae7a
Replace PyObject with type alias for Py<T>
2020-08-09 12:28:21 +01:00
David Hewitt
e0376d24aa
Experimental support for PyPy 3.6
...
Co-authored-by: Yuji Kanagawa <yuji.kngw.80s.revive@gmail.com>
2020-08-08 14:54:34 +01:00
David Hewitt
1f37dbc1a7
Various fixes to edge cases with GILGuard
2020-08-06 14:32:59 +01:00
David Hewitt
dc5c2a9b8f
Rename PYTHON_SYS_EXECUTABLE to PYO3_PYTHON
2020-08-06 13:27:20 +01:00
Manuel Vázquez Acosta
f2ba3e6da7
#1064 : Comparisons with __eq__ should not raise TypeError ( #1072 )
...
* Add (failing) tests for issue #1064
* Return NotImplemented when richcmp doesn't match the expected type.
* Fix tests that expect TypeError when richcmp returns NotImplemented.
- The python code 'class Other: pass; c2 {} Other()' was raising a NameError:
c2 not found
- eq and ne never raise a TypeError, so I split the those cases.
* Return NotImplemented for number-like binary operations.
* Add dummy impl PyNumberProtocol for the test struct.
* Rework tests of NotImplemented.
* Make py_ternary_num_func return NotImplemented when type mismatches.
* Return NotImplement for type mismatches in binary inplace operators.
* Reduce boilerplate with `extract_or_return_not_implemented!`
* Extract common definition 'Other' into a function.
* Test explicitly for NotImplemented in the __ipow__ test.
* Add entry in CHANGELOG for PR #1072 .
* Add the section 'Emulating numeric types' to the guide.
* Ensure we're returning NotImplemented in tests.
* Simplify the tests: only test we return NotImplemented.
Our previous test were rather indirect: were relying that Python
behaves correctly when we return NotImplemented.
Now we only test that calling a pyclass dunder method returns NotImplemented
when the argument doesn't match the type signature. This is the expected
behavior.
* Remove reverse operators in tests of NotImplemented
The won't be used because of #844 .
* Apply suggestions from code review
Co-authored-by: Yuji Kanagawa <yuji.kngw.80s.revive@gmail.com>
* Add a note about #844 below the list of reflected operations.
Co-authored-by: Yuji Kanagawa <yuji.kngw.80s.revive@gmail.com>
2020-08-05 22:53:16 +09:00
Moritz Langenstein
a877300f72
Added Rust initialisation of Python-allocated bytes ( #1074 )
...
* Added Rust initialisation of Python-allocated bytes
* Added unsafe PyBytes::new_with_unit constructor
* Added examples to PyBytes::new_with and PyBytes::new_with_uninit (now with MaybeUninit<u8>)
* Fixed doc test imports for PyBytes::new_with and PyBytes::new_with_uninit
* Fixed clippy error in PyBytes::new_with_uninit test
* Added PyByteArray::new_with and Removed PyBytes::new_with_uninit
* Small doc fixes + FnOnce init closure for PyBytes::new_with and PyByteArray::new_with
Co-authored-by: David Hewitt <1939362+davidhewitt@users.noreply.github.com>
* Fixed where clause formatting in PyBytes::new_with and PyByteArray::new_with
Co-authored-by: David Hewitt <1939362+davidhewitt@users.noreply.github.com>
2020-08-03 09:04:06 +01:00
Yuji Kanagawa
aaeb5eab54
Merge pull request #1067 from davidhewitt/pyerr-send
...
Make `PyErr: Send + Sync`
2020-08-02 17:49:11 +09:00
kngwyu
f5f2e84f4b
Enable &Self in #[pymethods] again
2020-07-28 20:55:38 +09:00
David Hewitt
09aef5d299
Make `PyErr: Send + Sync`
2020-07-25 11:59:44 +01:00
Sebastian Puetz
43d1f43c72
Calculate offsets for weakreflist and dict in PyCell.
2020-07-21 10:38:20 +02:00
Sebastian Puetz
e75f768ea8
Move the ThreadChecker field in front of dict and weakref.
...
Offsets for dict and weakref are calculated from the end of the
PyCell struct. When using the non-dummy ThreadChecker, the offsets
were invalid since the `ThreadCheckerImpl` is not zero-sized.
2020-07-20 19:37:38 +02:00
Sebastian Puetz
63d6d4c0e2
Add type info to conversion errors.
2020-07-19 12:08:14 +02:00
David Hewitt
602080d397
Change PyIterator::from_object` to return underlying TypeError
2020-07-18 09:39:49 +01:00
David Hewitt
4ed9748b45
Rename exceptions to PyException etc; reintroduce deprecated ones
2020-07-18 06:02:57 +01:00
David Hewitt
3341d10e7f
Functions which cast reference to pointer are not unsafe.
2020-07-17 19:52:32 +01:00
David Hewitt
4020e4d0c8
Add `Python::with_gil`
2020-07-13 22:37:40 +01:00
David Hewitt
b1a37afa8c
Fix definition of _PyLong_AsByteArray
2020-07-09 16:38:01 +01:00
David Hewitt
5d07bbb50f
Correct CHANGELOG entries
2020-07-09 09:32:58 +01:00
David Hewitt
e5959f268e
Add CHANGELOG entry
2020-07-09 08:43:56 +01:00
Yuji Kanagawa
c00080e27f
Merge pull request #1020 from PyO3/to-str
...
Remove PyString::as_bytes since it cannot return raw bytes
2020-07-08 15:05:58 +09:00
kngwyu
581e6e0924
Remove register_gil
2020-07-08 13:36:00 +09:00
vthriller
0f2eeea4ed
CHANGELOG.md: trivial URL typo fix
2020-07-06 21:55:00 +03:00
kngwyu
7849b74dbf
Remove PyString::as_bytes since it cannot return raw bytes
2020-07-06 21:38:31 +09:00
David Hewitt
a5c1c9ade9
Update FFI definitions for pylifecycle.h
2020-07-04 15:03:42 +01:00
kngwyu
6cbe9ff30d
Bump version to 0.11.1
2020-06-30 14:53:55 +09:00
Yuji Kanagawa
512335186a
Merge branch 'master' into pyclass-unsendable
2020-06-30 14:17:40 +09:00
kngwyu
d76fe7835a
Introduce #[pyclass(unsendable)]
2020-06-30 12:30:17 +09:00
David Hewitt
a250de824d
Update CHANGELOG
2020-06-29 22:26:21 +01:00
David Hewitt
f89e9e0eb1
Write migration guide for 0.11
2020-06-27 23:59:44 +09:00
kngwyu
fd94a0d55c
Bump version to 0.11.0
2020-06-27 23:59:44 +09:00
David Hewitt
e140b729fc
Allow #[getter] and #[setter] functions to take PyRef
2020-06-27 14:55:22 +01:00
Yuji Kanagawa
e35622b941
Merge pull request #997 from davidhewitt/pyproto-next-return
...
Add __next__ return
2020-06-24 23:16:35 +09:00
scalexm
f5e1dff7eb
Update docs now that recursive `#[classattr]` are allowed again
2020-06-23 22:41:23 +02:00
David Hewitt
9f9137c6e4
Add ability to return from `__next__` / `__anext__`
2020-06-23 15:26:28 +01:00
David Hewitt
a9c7e12be0
Allow skipping the return type completely for `#[pyproto]` methods returning `()`.
2020-06-23 11:51:02 +01:00
David Hewitt
c7a4b4770f
Refactor `#[pyproto]` Result types
2020-06-23 11:08:36 +01:00
kngwyu
f053bc3881
Fix dealloc implementation to collectly use subtype's tp_free
2020-06-22 10:58:00 +09:00
kngwyu
b70ee9a5ad
Use subclass correctly in tp_new
2020-06-22 01:38:13 +09:00
Yuji Kanagawa
7075827a03
Merge pull request #969 from PyO3/poc-stable-rust
...
Stable Rust
2020-06-21 16:54:59 +09:00
kngwyu
a63e426f6f
Some doc and test cleanups mainly around specialization
2020-06-20 12:59:56 +09:00
David Hewitt
a1dbfa8c8c
Add pyo3::once_cell::GILOnceCell
2020-06-18 18:53:32 +01:00
konstin
3180e5cc06
POC stable rust (2 tests failing)
2020-06-18 17:21:09 +09:00
kngwyu
8a0c9bfcf5
Add a CHANGELOG entry for 961
2020-06-18 16:39:22 +09:00
Yuji Kanagawa
6ea834526b
Merge pull request #976 from davidhewitt/prefer-py
...
Add PyClass borrow methods to Py
2020-06-18 15:48:36 +09:00
David Hewitt
925986c706
Add PyCell::borrow shortcuts to Py
2020-06-17 08:58:32 +01:00
David Hewitt
e377afa5de
Add CHANGELOG entries for num crate version bumps
2020-06-15 20:14:56 +01:00
David Hewitt
a85d157111
Cleanups to ensure GIL-safety of Py<T> and PyObject methods
2020-06-14 16:37:34 +01:00
Yuji Kanagawa
bbdca6b0bd
Merge pull request #967 from davidhewitt/bytearray-as-bytes
...
Add accessor methods to `PyByteArray`
2020-06-13 16:53:22 +09:00
David Hewitt
8a85feca97
Change return type of `PyTuple::slice` to `&[&PyAny]`
2020-06-12 05:21:27 +01:00
David Hewitt
21d365f7d4
Add accessor methods to `PyByteArray`
2020-06-12 05:01:09 +01:00
David
33617bfffc
Require Send for #[pyclass]
2020-06-08 02:06:15 +01:00
Yuji Kanagawa
5939362e72
Fix docs and comments based on the review
...
Co-authored-by: David Hewitt <1939362+davidhewitt@users.noreply.github.com>
2020-06-05 17:48:43 +09:00
kngwyu
688021315e
Typed PyBuffer
2020-06-04 22:03:53 +09:00
Mara Bos
febccbf6e7
Call Py_Finalize at exit using libc::atexit.
...
This makes sure buffers are flushed, threads are joined, etc. when
exiting the process.
2020-05-24 14:56:54 +02:00
David Hewitt
29c93c87c7
Remove GetPropertyValue
2020-05-21 18:06:24 +01:00
Omer Katz
6f9048cd8f
Add FFI definition for PyObject_AsFileDescriptor ( #938 )
...
Add FFI definition for PyObject_AsFileDescriptor
Co-authored-by: David Hewitt <1939362+davidhewitt@users.noreply.github.com>
2020-05-19 22:14:53 +01:00
David Hewitt
5c5527dfec
Fix passing explicit None to pyfunction with default
2020-05-17 19:19:33 +01:00
Yuji Kanagawa
8e6398029d
Merge pull request #930 from davidhewitt/remove-managed-py-ref
...
Remove ManagedPyRef
2020-05-16 13:31:46 +09:00
David Hewitt
91d0dbceab
Remove ManagedPyRef
2020-05-15 21:38:40 +01:00
David Hewitt
aa81e382be
Fix changelog typo
2020-05-15 09:01:23 +01:00
kngwyu
837261c860
Bump version to 0.10.1
2020-05-14 20:57:51 +09:00
David Hewitt
3b1f720eb0
Fix deadlock in update_counts
2020-05-13 18:36:40 +01:00
Yuji Kanagawa
7e4d1c41e3
Bump version to 0.10.0 ( #919 )
...
* Bump version to 0.10.0
* Apply suggestions from code review
Co-authored-by: David Hewitt <1939362+davidhewitt@users.noreply.github.com>
* Improve CHANGELOG completeness and messaging
* ObjectProtocol was in prelude
Co-authored-by: David Hewitt <1939362+davidhewitt@users.noreply.github.com>
2020-05-13 13:24:36 +09:00
kngwyu
69dba08b01
Use PyMethodsImpl instead of *ProtocolImpl::methods
2020-05-11 20:08:21 +09:00
David Hewitt
86af474a95
Add Clone for PyObject / Py<T>
2020-05-10 12:01:18 +01:00
Yuji Kanagawa
8e84721438
Merge pull request #893 from davidhewitt/safe_acquire_gil
...
Close soundness hole with acquire_gil
2020-05-09 19:03:15 +09:00
David Hewitt
8ffe8c58b3
Close soundness hole with acquire_gil
2020-05-09 10:41:41 +01:00
scalexm
76c7f9eaa8
Add a changelog item for `#[classattr]`
2020-05-08 22:37:33 +02:00
David Hewitt
69fb04f04b
Clean up CHANGELOG
2020-05-08 15:41:53 +01:00
David Hewitt
a5ebef4b2e
Remove ObjectProtocol; Add methods to PyAny and use Deref
2020-05-08 10:05:19 +01:00
David Hewitt
b083e0babf
Make allow_threads safe with panics
2020-05-07 15:29:47 +01:00
David Hewitt
9380bfde6f
Add catch_unwind! macro to prevent panics crossing ffi boundaries
2020-05-05 08:17:06 +01:00
Mara Bos
39b41b3dc7
Replace num-traits dependency by std's TryFrom.
2020-05-04 15:50:07 +02:00
Yuji Kanagawa
0f07cf8db9
Merge pull request #886 from fusion-engineering-forks/dir
...
Add dir() to ObjectProtocol.
2020-05-04 18:07:27 +09:00
Mara Bos
36ebd0566c
Update CHANGELOG.md.
2020-05-03 14:32:43 +02:00
David Hewitt
b7ecec7812
Remove unsound return of borrowed objects
2020-05-02 23:35:26 +01:00
kngwyu
b6befcfb93
CHANGELOG and better docs for PyMethodsImpl
2020-05-02 18:46:48 +09:00
David Hewitt
3008528fa6
Allow use of `#[pyo3(get, set)]` with `Py<T>`
2020-04-22 22:21:27 +01:00
Yuji Kanagawa
ae81865232
Apply suggestions from David
...
Co-Authored-By: David Hewitt <1939362+davidhewitt@users.noreply.github.com>
2020-04-13 11:05:48 +09:00
kngwyu
2cd466dc46
Bound 'py lifetime by GILPool when it's possible
2020-04-12 23:55:23 +09:00
David Hewitt
97fd658593
Add IntoPy<PyObject> for HashSet and BTreeSet ( #865 )
2020-04-12 14:44:01 +09:00
Yuji Kanagawa
7b1e8a6daf
Merge pull request #851 from davidhewitt/pointer-optimization
...
Improve performance on pointer drop
2020-04-10 12:30:35 +09:00
Yuji Kanagawa
5add8d1dee
Merge branch 'master' into merge-0.9.2
2020-04-09 17:17:52 +09:00
kngwyu
a73ff502ba
More changelog
2020-04-09 17:13:05 +09:00
David Hewitt
fe57f64435
Improve performance on pointer drop
...
Co-Authored-By: Yuji Kanagawa <yuji.kngw.80s.revive@gmail.com>
2020-04-09 08:51:43 +01:00
Yuji Kanagawa
53b63cddc2
Merge pull request #855 from althonos/patch-gc
...
Fix potential panics caused by Garbage Collector
2020-04-09 16:39:58 +09:00
kngwyu
c83d88ba8d
Bump version to 0.9.2
2020-04-09 13:00:13 +09:00
Martin Larralde
049202c011
Add changelog entry [ci skip]
2020-04-08 16:35:22 +02:00
David Hewitt
b5b8264eb4
Tidy up changelog newlines
2020-04-08 08:02:54 +01:00
Árni Dagur
97aca504a3
Implement FromPyObject for HashSet and BTreeSet
2020-03-29 20:58:36 -04:00
kngwyu
4759358acb
Bump version to 0.9.1
2020-03-23 18:55:24 +09:00
kngwyu
1e39071c04
Retrieve FromPyObject implementation for &PySequence
2020-03-22 20:00:21 +09:00
kngwyu
89e5a654ad
Bump version to 0.9.0
2020-03-19 13:48:00 +09:00
kngwyu
02ee7a5afc
Expose PyAny to lib.rs and prelude
2020-03-18 13:38:18 +09:00
kngwyu
40077245ea
Fix PyModule::dict
2020-03-16 15:45:54 +09:00
Yuji Kanagawa
b7c4fdb9bc
Update CHANGELOG.md
...
Co-Authored-By: David Hewitt <1939362+davidhewitt@users.noreply.github.com>
2020-03-08 00:57:11 +09:00
kngwyu
cea707dd1c
Inhibit positional args after *
2020-03-06 14:01:27 +09:00
kngwyu
25069baef4
Fix the interpretation of '*'
2020-03-04 23:48:46 +09:00
Yuji Kanagawa
dc8e0c4c18
Merge branch 'master' into array-impls
2020-03-03 13:07:03 +09:00
Caio
6b78f1b43c
Implement `*Py*` traits for arrays (up to 32)
2020-03-02 18:25:07 -03:00
kngwyu
4b9cb70c3e
Update CHANGELOG
2020-03-02 20:44:29 +09:00
kngwyu
ee0c178fed
Remove ObjectProtocol::get_base and fix class.md
2020-03-02 13:08:37 +09:00
kngwyu
ca6227c739
Address review comments
2020-03-01 12:58:28 +09:00
Yuji Kanagawa
399e4bf9b1
Apply suggestions from code review
...
Co-Authored-By: David Hewitt <1939362+davidhewitt@users.noreply.github.com>
2020-03-01 12:43:04 +09:00
kngwyu
05159417a8
Update CHANGELOG
2020-02-25 22:16:27 +09:00
David Hewitt
d5509424b2
Make #[pymethods] aware of #[cfg]
2020-02-15 14:07:48 +00:00
Yuji Kanagawa
0eb4eb4e58
Merge branch 'master' into property-fixes
2020-02-10 15:13:19 +09:00
David Hewitt
6c25f6aacc
Bump minimum Rust version to 1.42.0-nightly
2020-02-09 10:54:00 +00:00
David Hewitt
50bb41f398
Add CHANGELOG entry for msrv bump
2020-02-08 19:02:52 +00:00
David Hewitt
cea8a9a2b0
Refactor to clean up property descriptor macros
2020-02-08 18:57:30 +00:00
David Hewitt
f8c8b8effd
Fix for PyObject with `#[pyo3(get)]`
2020-02-07 19:31:13 +00: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
David Hewitt
dfb7d7c58d
Fix docstrings generated by `[pyo3(get, set)]`
2020-02-03 08:01:30 +00:00
David Hewitt
7531b9fb07
Remove even more uses of `static mut`
2020-01-30 13:24:55 +00:00
Yuji Kanagawa
3c4809bf0f
Merge branch 'master' into fix-743
2020-01-27 23:40:18 +09:00
David Hewitt
a8ec946fc3
Fix usage of raw idents with #[pyo3(set)]
2020-01-27 10:29:14 +00:00
David Hewitt
7546429734
Fix Changelog typos and reorder entries
2020-01-27 10:26:31 +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
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
Alexander Niederbühl
472fbf4fb8
Update CHANGELOG.md
2020-01-12 01:28:41 +01:00
kngwyu
439efbb71e
Update CHANGELOG
2020-01-11 15:06:54 +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
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
d22b03edde
Bump version to 0.8.5
2020-01-05 16:39:18 +09: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
David Hewitt
4b18830f1e
Add `#[name]` attribute support for `#[pyfunction]`
2019-12-17 22:14:28 +00:00
David Hewitt
7702395b3d
Add #[name = "foo"] attribute to #[pymethods]
2019-12-17 17:45:53 +00:00
kngwyu
d8a4ecb476
Bump version to 0.8.4
2019-12-14 15:20:55 +09:00
Jacob Lifshay
9ac66ac1eb
add text_signature to changelog
2019-11-29 13:31:21 -08:00
kngwyu
a85ed6ba80
Update git tags for CHANGELOG
2019-11-23 18:39:59 +09:00
kngwyu
935adaa5d5
Bump version to 0.8.3
2019-11-23 17:09:10 +09:00
kngwyu
14d2196ba0
Bump version to 0.8.2
2019-10-26 22:47:19 +09:00
Yuji Kanagawa
6868d7f734
Merge branch 'master' into fix-mapping-protocol
2019-10-26 02:55:54 +09: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
Sebastian Puetz
4864c584f3
Fix derive for PyObjectSetAttrProtocol.
...
PyObjectSetAttrProtocol doesn't define associated type Success.
2019-10-25 16:10:00 +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
kngwyu
d019fe814c
Bump version to 0.8.1
2019-10-08 01:52:06 +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
b1ff620e48
Add entry to `CHANGELOG.md`
2019-09-15 14:46:06 +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
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
30e82a3018
Replace IntoPyObject with IntoPy<PyObject>
2019-08-24 19:23:28 +02:00
kngwyu
e055fdb338
Add a missing entry to CHANGELOG
2019-08-12 22:46:15 +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
5096f936dc
Disable segfaulty subclassing by default
...
See https://github.com/PyO3/pyo3/issues/220 and https://github.com/PyO3/pyo3/issues/407 for details on those segfaults
2019-08-05 11:52:47 +02:00
kngwyu
41f31e85fd
Replace mashup with paste
2019-08-04 23:50:10 +09: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
Paul Ganssle
e633ae25eb
Add changelog error for PR #532
2019-07-14 18:00:16 +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
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
kngwyu
9073956da6
Edit CHANGELOG
2019-06-15 23:12:22 +09: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
Azat Ibrakov
134c129edc
Fix installing in 'venv' and datetime tests on Windows ( #472 )
...
* Add failing test
* Complete formatting
* Fix commands execution
* Fix commands execution for Linux
* Extract virtual environment creation/removing into separate functions
* Complete error messages
* Complete examples building
* Use 'venv' independent path
* Call script by dotted path instead of 'source' call
* Add Travis CI script
* Rename variable: 'exec_prefix' -> 'base_prefix'
* Add AppVeyor script
* Remove Rust test
* Complete shell script mode
* Complete path to powershell script
* Use 'pushd'/'popd' instead of 'cd'
* Complete powershell script
* Complete shell script
* Fix setup
* Use 'tox-venv' plugin for 'venv' stdlib module support
* Remove additional 'venv' testing
* Use global environment instead of calling 'set'
* Use 'tox' for AppVeyor, extract commands into 'setup' & 'test' scripts
* Add updating of 'pip' & 'setuptools'
* Add moving in/back from examples directories
* Complete 'pip'/'setuptools' updating
* Complete requirements
* Complete 'word-count' example configuration
* Simplify 'setup' script
* Complete 'rustapi_module' example tests
* Revert formatting
* Complete examples configuration
* Remove redundant annotations
* Add entry in changelog
2019-05-12 22:20:17 +09:00
kngwyu
803f18e61d
Change Python::run to return PyResult<()>
2019-05-08 15:49:24 +09:00
konstin
5a63bdd964
Merge branch 'master' into pymethod-with-lifetime
2019-04-28 11:08:36 +02:00
Maarten de Vries
556e7ba029
Add marshal module to CHANGELOG.md
2019-04-26 13:13:51 +02:00
kngwyu
cf689840ef
Allow lifetime in pymethods
2019-04-26 14:28:29 +09: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
konstin
7149a1fecb
Bump to 0.7.0-alpha.1 ( #457 )
2019-04-23 18:55:35 +02:00
kngwyu
c7d6c48e68
Add changelog entry about `slf: PyRef`
2019-04-23 23:16:09 +09:00
Yuji Kanagawa
fb8d3605d1
Merge pull request #449 from birkenfeld/unwrapped_prop_types
...
Allow omitting PyResult wrapping in property get/set methods
2019-04-22 12:00:42 +09:00
Georg Brandl
117f6eb47d
Allow omitting PyResult wrapping in property get/set methods
...
fixes #443
2019-04-17 22:29:12 +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
Martin Larralde
e6ca87d5dc
Update `CHANGELOG.md` with latest bugfixes
2019-04-14 01:56:11 +02:00
Owez
303dc22831
Update CHANGELOG.md
2019-04-09 11:02:19 +01:00
Martin Larralde
72003ec37a
Add entry to `CHANGELOG.md`
2019-04-04 09:47:21 +02:00
Martin Larralde
2c82a03170
Add entry to `CHANGELOG.md` and fix typo
2019-03-31 05:29:20 +02:00
konstin
9a9b519bcb
Mark PyTypeObject as unsafe
2019-03-30 20:25:47 +01:00
konstin
3f27647b1b
Bump to 0.6.0
2019-03-28 12:49:59 +01:00
konstin
421b26bcef
Merge pull request #406 from Alexander-N/changelog
...
Fix markdown links in CHANGELOG.md
2019-03-19 21:03:10 +01:00
Alexander Niederbühl
484ceb43e1
Fix markdown links in CHANGELOG.md
2019-03-19 18:42:17 +01:00
konstin
59a9d4fd9f
Merge branch 'master' into pyany
2019-03-18 01:00:26 +01:00
Alexander Niederbühl
dd8e6211d5
Update CHANGELOG.md
2019-03-17 20:39:51 +01:00
kngwyu
2db0612b6e
Add a note about PyAny in CHANGELOG
2019-03-05 13:15:34 +09:00
konstin
ad590bd158
Some api improvements
2019-02-23 18:01:22 +01:00
konstin
61e449b10e
Update Changelog
2019-02-19 22:30:22 +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
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
c13f0708a4
Replace IntoPyTuple with IntoPy<Py<PyTuple>>
2019-02-12 22:58:23 +01:00
konstin
936f0153e8
Migrate to rust 2018
2019-02-01 14:23:29 +01:00
konstin
0deaee01ad
Bump to 0.6.0-alpha.1 and update changelog from 0.5.3
2019-01-04 11:53:46 +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
de2108d719
Update changelog
2018-11-26 00:16:47 +01:00
konstin
ece59c92f0
Update changelog
2018-11-24 13:17:42 +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
6cec1c39cc
Update changelog
2018-11-12 15:11:03 +01:00
konstin
d2ba436d6d
Remove the unnecessary type parameter PyObjectAlloc
2018-11-12 14:37:06 +01:00
konstin
c77049541a
Fix CI
...
black requires 3.6+ to be installed
2018-11-11 18:13:33 +01:00
konstin
cadd0fb50e
Release 0.5.0
2018-11-11 12:26:43 +01:00
konstin
234e2c6998
Release 0.5.0-alpha.3 to fix #256
2018-11-02 16:34:40 +01:00
konstin
3b63cc9178
v0.5.0-alpha.2
2018-10-29 17:36:06 +01:00
konstin
5100676497
Splitted PyTypeCreate of PyTypeObject to remove specialization
2018-10-03 22:12:22 +02:00
konstin
71c584a110
De-specialize ToBorrowedObject
2018-10-03 21:04:49 +02:00
ijl
851d2207c0
Simplify PyString, PyBytes, PyUnicode
...
PyStringData comments mention wanting to receive interpreter-
specific unicode types. I tried implementing this, but it's
more complex and slower to call libpython to fill a buffer
of u32 or such and convert that in Rust using widestring.
This implementation receives UTF-8 from PyUnicode_AsUTF8AndSize()
in python3 and PyUnicode_AsUTF8String() in python2. PyStringData
is removed as unnecessary.
The data() method on PyString, PyBytes, and PyUnicode is
replaced with as_bytes().
The python2 API changes improve the performance of
extracting unicode strings.
2018-09-28 21:47:44 +00:00
Paul Ganssle
106ba340f7
Add datetime to changelog
...
Document that datetime bindings have been added, plus one minor typo
fix.
2018-09-27 09:20:11 -04:00
ijl
28bc3cf1e6
PyDict::from_sequence()
2018-09-25 14:19:23 +00:00
ijl
868e28d5ad
Fix segfault on calling unknown method
2018-09-24 02:49:52 +00:00
konstin
302c099a76
Big refactoring to shrink the prelude
2018-09-21 23:34:28 +02:00
konstin
ddc6313e74
`#[pyclass]` objects can now be returned from rust functions
2018-09-06 18:04:13 +02:00
konstin
0101dc8136
Two default fn less
2018-08-31 21:11:08 +02:00
konstin
7c0379b13a
Remove many specialization uses
...
From over a hundret "default fn" uses down to 17
2018-08-25 20:48:17 +02:00
konstin
771d59b913
Fix another bunch of clippy lints
2018-08-21 23:51:13 +02:00
konstin
82129c70b4
Added an explenation that the GIL can temporarily be released even while holding a GILGuard
2018-08-20 22:56:24 +02:00
konstin
db4a2d9017
Get rid of the pyobject_extract macro
2018-08-20 22:53:43 +02:00
konstin
9cadbd11de
v0.4.1
2018-08-20 14:34:34 +02:00
konstin
b12b65cfae
Cleanup
2018-08-19 20:06:47 +02:00
konstin
b7dc0ad695
v0.4.0
2018-07-30 23:10:50 +02:00
konstin
fe8a719ee1
Rustfmt all the things ✔️
2018-07-30 23:05:10 +02:00
konstin
83db765889
Refactoring
2018-07-30 22:56:25 +02:00
konstin
2627fa8a08
0.3.2
2018-07-22 21:36:18 +02:00
konstin
7d4381fc5d
Fixed scoping bug in pyobject_native_type that would break rust-numpy
2018-07-18 14:06:17 +02:00
konstin
d59bebcc38
Upgrade from proc_macro to use_extern_macros
2018-07-18 13:08:05 +02:00
konstin
dbd74401eb
Rename the `base` option in the `pyclass` macro to `extends`
...
"extends" is intuitive for people with java or ES6 experience, and it also aligns pyo3 with
wasm-bindgen (see https://github.com/rustwasm/rfcs/pull/2 )
2018-07-15 12:08:20 +02:00
konstin
fe931a594f
#[pymodinit] now uses the function name as default module name
2018-07-10 00:13:02 +02:00
konstin
f6224ca0bc
Prepare for 0.3.0 release
2018-07-08 23:41:18 +02:00
konstin
60d1565a8f
Always clone on in getters
...
Since copy implies clone, this doesn't code.
2018-06-12 17:47:24 +02:00