David Hewitt
96b8c9facf
migrate some final FromPyObject
implementations to the Bound
API ( #3869 )
...
* update `Py::extract` to use `extract_bound`
* update docstring of `FromPyObject`
* move `Option` conversions to new module & update
* move `Cell` conversions to new module & update
2024-02-19 22:14:26 +00:00
David Hewitt
4efc4b82a3
ci: fix redundant import warnings on nightly ( #3873 )
2024-02-19 22:07:05 +00:00
Icxolu
0bb9cab6d3
port PyComplex::from_complex
to Bound
API ( #3866 )
...
* port `PyComplex::from_complex` to `Bound` API
* add `PyComplexMethods` to the prelude
2024-02-18 23:37:02 +00:00
David Hewitt
a85ed34c45
add Bound API constructors from borrowed pointers ( #3858 )
...
* make `Borrowed` ptr constructors public
* introduce `Bound::from_borrowed_ptr` constructors
* clippy `assert_eq` -> `assert`
* rerrange function order and correct docstrings
2024-02-18 22:03:43 +00:00
Lily Foote
b4dc854585
Convert LazyTypeObject to use the Bound API ( #3855 )
2024-02-18 22:01:50 +00:00
Icxolu
4ce9c35983
port Python::get_type
to Bound
API ( #3846 )
...
* port `Python::get_type` to `Bound` API
* fix `is_subclass_and_is_instance` FIXME
2024-02-18 18:27:19 +00:00
David Hewitt
f04ad56df4
implement PyTypeMethods
( #3705 )
...
* implement `PyTypeMethods`
* introduce `PyType` bound constructors
* `from_type_ptr_bound` instead of `from_type_ptr_borrowed`
* correct conditional code
* just make `from_type_ptr_bound` create an owned `Bound`
* correct docstrings
Co-authored-by: Icxolu <10486322+Icxolu@users.noreply.github.com>
* Rework as `PyType::from_borrowed_type_ptr`
* correct doc link to `from_borrowed_type_ptr`
Co-authored-by: Lily Foote <code@lilyf.org>
* remove unneeded lifetime name
---------
Co-authored-by: Icxolu <10486322+Icxolu@users.noreply.github.com>
Co-authored-by: Lily Foote <code@lilyf.org>
2024-02-18 03:07:48 +00:00
Icxolu
1d295a12a0
port PyObject::downcast
to Bound
API ( #3856 )
...
* port `PyObject::downcast` to `Bound` API
* relax traits bounds for unchecked variant in `Bound` API
* deprecate `Python::(checked_)cast_as`
* reword deprecation warning
2024-02-18 01:11:43 +00:00
Lily Foote
0dd568d397
Use the new bound API instead of .as_ref(py) ( #3853 )
...
* Use the new bound API instead of .as_ref(py)
* Move import into a nested scope
* Use to_cow instead of to_str for compatibility
`to_str` is not available before Python 3.10 on the limited api.
* Relax &self lifetimes
* Use Bound<'py, PyAny> in test Mapping signatures
* Use .as_bytes(py)
* Simplify ThrowCallback::throw signature
* Avoid .as_any call with Py api instead of Bound
2024-02-18 00:09:56 +00:00
Lily Foote
5f42c02e4f
Remove stray " character from docstring ( #3852 )
2024-02-17 17:04:35 +00:00
Icxolu
c33d330b18
deprecate PyFrozenSet::empty
( #3851 )
2024-02-17 13:40:54 +00:00
Icxolu
1d8d81db2d
port PyFrozenSetBuilder
to Bound
API ( #3850 )
2024-02-17 12:21:41 +00:00
David Hewitt
eb90b81d44
always use a Python iterator for sets and frozensets ( #3849 )
...
* always use a Python iterator for sets and frozensets
* add newsfragment
2024-02-17 10:57:53 +00:00
Lily Foote
940804fe0d
Pyerr value bound ( #3820 )
...
* Implement PyErr::value_bound
* Use PyErr::value_bound in conversions
* Implement PyErr::from_value_bound
* Remove unnecessary clone
* Return a reference from PyErr::value_bound
* Avoid clone in PyErr::from_value_bound
* Use PyErr::from_value_bound instead of from_value
* Remove unnecessary .as_borrowed() calls
* Remove unused import
* Simplify UnraisableCapture.hook
* Use Bound::from_owned_ptr_or_opt in fn cause
* Update PyErrState::lazy to take Py<PyAny>
This is easier to work with elsewhere than `&PyAny` or
`Bound<'py, PyAny>`.
* Add Bound PyUnicodeDecodeError constructors
* Update PyErr::from_value_bound to take Bound
* Simplify PyErr::from_value
* Simplify PyErr::value
* Remove unnecessary reference
* Simplify Pyerr::cause implementation
* Simplify PyUnicodeDecodeError::new_bound
2024-02-17 00:27:45 +00:00
David Hewitt
ec6d587218
support Bound
for classmethod
and pass_module
( #3831 )
...
* support `Bound` for `classmethod` and `pass_module`
* `from_ref_to_ptr` -> `ref_from_ptr`
* add detailed docs to `ref_from_ptr`
2024-02-16 00:36:11 +00:00
Icxolu
05aedc9032
port PyErr::warn
to Bound
API ( #3842 )
...
* port `PyErr::new_type`
* port `PyErr::warn` and `PyErr::warn_explicit`
2024-02-16 00:12:43 +00:00
David Hewitt
dc8b948201
add PyBackedStr
and PyBackedBytes
( #3802 )
...
* add `PyBackedStr` and `PyBackedBytes`
* review: adamreichold feedback
* use `NonNull<[u8]>`
* clippy and newsfragment
* drop binding unused after refactoring
---------
Co-authored-by: Adam Reichold <adam.reichold@t-online.de>
2024-02-15 07:58:20 +00:00
Icxolu
f3ddd023c9
convert PyBuffer
to Bound
API ( #3836 )
2024-02-14 22:10:59 +00:00
Icxolu
9902633116
allow from_py_with
on function args to take a fn(&Bound) -> PyResult
( #3837 )
2024-02-14 22:03:04 +00:00
Icxolu
0c12d9137f
port Python::import
to Bound
API ( #3832 )
...
* port `Python::import` to `Bound` API
* tidy up imports in tests/test_datetime_import.rs
---------
Co-authored-by: David Hewitt <mail@davidhewitt.dev>
2024-02-14 00:24:37 +00:00
Icxolu
fbfeb2ff03
update #[derive(FromPyObject)]
to use extract_bound
( #3828 )
...
* update `#[derive(FromPyObject)]` to use `extract_bound`
* type inference for `from_py_with` using function pointers
2024-02-13 00:09:41 +00:00
David Hewitt
94b7d7e434
add DowncastIntoError::into_inner
( #3829 )
2024-02-12 21:40:05 +00:00
David Hewitt
5b9b76fe58
add _bound
constructors for datetime types ( #3778 )
...
* add `_bound` constructors for datetime types
* review: Icxolu feedback
* update uses of deprecated timezone_utc
2024-02-12 20:49:58 +00:00
Lily Foote
1279467d27
Pyerr isinstance ( #3826 )
...
* Implement PyErr::is_instance_bound
* Update is_instance_bound to take a reference
Co-authored-by: David Hewitt <mail@davidhewitt.dev>
* Remove spurious clone
---------
Co-authored-by: David Hewitt <mail@davidhewitt.dev>
2024-02-12 08:32:51 +00:00
Icxolu
c359f5ca1d
deprecate PyDict::new
constructor ( #3823 )
...
* deprecate `PyDict::new`
* update benchmarks
* convert `test_frompyobject`
2024-02-11 23:55:56 +00:00
Lily Foote
baf5c8ec0a
Implement PyErr::get_type_bound ( #3819 )
...
* Implement PyErr::get_type_bound
* Update docs for PyErr::get_type_bound
* Fix doctest for cloning PyErr
* Import the whole prelude in docs example
Co-authored-by: David Hewitt <mail@davidhewitt.dev>
* Remove unnecessary self lifetime
Co-authored-by: David Hewitt <mail@davidhewitt.dev>
* Remove more unnecessary self lifetimes
* Use variables to avoid dangling pointers
Co-authored-by: David Hewitt <mail@davidhewitt.dev>
* Avoid using ffi in fn ptype on Py_3_12
Co-authored-by: David Hewitt <mail@davidhewitt.dev>
* Add missing imports to fn ptype
---------
Co-authored-by: David Hewitt <mail@davidhewitt.dev>
2024-02-11 21:07:28 +00:00
David Hewitt
55488d3880
Merge pull request #3818 from davidhewitt/datetime-segv
...
fix segmentation fault when `datetime` module is invalid
2024-02-11 09:04:32 +00:00
David Hewitt
5b1104131f
fix segmentation fault when datetime
module is invalid
2024-02-11 02:44:31 +00:00
David Hewitt
07ea89d460
Merge pull request #3817 from Icxolu/into-pydict
...
port `IntoPyDict` to `Bound` API
2024-02-11 02:26:03 +00:00
Icxolu
e45fbe493c
port IntoPyDict
to Bound
API
2024-02-10 15:47:26 +01:00
David Hewitt
fa53d81e5f
Merge pull request #3801 from davidhewitt/encode-utf8
...
add `PyStringMethods::encode_utf8`
2024-02-10 14:16:32 +00:00
Icxolu
4d423b0c67
port Python::run
to Bound
API
2024-02-09 22:09:16 +01:00
David Hewitt
b7fb9e672e
Merge pull request #3782 from davidhewitt/type-check-bound
...
add `bound` method variants for `PyTypeInfo`
2024-02-09 20:22:44 +00:00
Icxolu
33dc33ecec
port Python::eval
to Bound
API
2024-02-09 17:52:00 +01:00
David Hewitt
367eeaeeab
add bound
method variants for PyTypeInfo
2024-02-08 22:27:05 +00:00
David Hewitt
3541506a16
ci: allow some dead code warnings on nightly
2024-02-08 20:52:03 +00:00
David Hewitt
030a618e0d
Merge pull request #3800 from snuderl/PyCFunction-bound-api
...
PyCFunction bound api
2024-02-06 18:28:40 +00:00
Blaž Šnuderl
aa3c938b5e
PyCFunction bound api
2024-02-06 18:44:53 +01:00
David Hewitt
86f294f6e6
expose Bound::from_owned_ptr
etc
2024-02-05 18:27:43 +00:00
David Hewitt
662eecfb44
add PyStringMethods::encode_utf8
2024-02-05 13:28:46 +00:00
David Hewitt
02f1df69b5
Merge pull request #3792 from davidhewitt/bound-pyclass-2
...
pyclass methods for `Bound`
2024-02-05 10:38:30 +00:00
Adam Reichold
c995426c81
Merge pull request #3799 from davidhewitt/move-cow
...
move `Cow[u8]` conversions into `conversions::std::slice` module
2024-02-05 10:18:33 +00:00
David Hewitt
42843de47b
pyclass methods for Bound
2024-02-05 09:41:22 +00:00
David Hewitt
7281268840
move Cow[u8]
conversions into conversions::std::slice
module
2024-02-05 08:52:07 +00:00
Bruno Kolenbrander
7938d4cadc
Merge pull request #3798 from davidhewitt/beta-map-clone
...
ci: fix beta clippy `map_clone` warning
2024-02-05 08:48:14 +00:00
David Hewitt
de93d15eeb
ci: fix beta clippy map_clone
warning
2024-02-05 07:57:27 +00:00
Blaž Šnuderl
f1384f3582
Implement PyNone.get() using PyNone.get_bound()
2024-02-05 08:06:59 +01:00
Blaž Šnuderl
1fd0aa2b19
Use new method to implement old
2024-02-05 08:03:25 +01:00
Blaz Snuderl
8388b14369
PyNotImplemented get_bound
2024-02-04 20:08:52 +01:00
Blaz Snuderl
8354590ae6
PyEllipsis get_bound method
2024-02-04 20:01:15 +01:00
David Hewitt
5dbb51b9ce
Merge pull request #3784 from davidhewitt/more-extract-bound
...
migrate many `FromPyObject` implementations to `Bound` API
2024-02-04 15:58:22 +00:00
Icxolu
304c8e655a
convert marshal
to Bound
API
2024-02-04 16:25:00 +01:00
David Hewitt
0d4df9c19d
adjust FromPyObject
implementations to always use 'py
lifetime
2024-02-04 14:22:03 +00:00
David Hewitt
2a741a21e6
migrate many FromPyObject
implementations to Bound
API
2024-02-04 14:22:03 +00:00
Blaž Šnuderl
d1e967e9ea
Uncomment a test
2024-02-04 07:31:29 +01:00
Blaž Šnuderl
eca943ea35
Add new get_bound and mark old get as deprecated
2024-02-04 07:30:28 +01:00
Blaž Šnuderl
7efd412a63
Merge branch 'main' into PyNone-new-api
2024-02-04 07:29:32 +01:00
David Hewitt
76d1b34cd5
Revert "Merge pull request #3578 from davidhewitt/typed-helpers"
...
This reverts commit 7b07d6d21b
, reversing
changes made to 99858236bd
.
2024-02-03 20:56:23 +00:00
Blaz Snuderl
b1863c73df
clippy
2024-02-03 21:25:47 +01:00
Blaz Snuderl
507ea28b27
test
2024-02-03 21:14:31 +01:00
Blaž Šnuderl
9641b11752
hmm
2024-02-03 20:57:46 +01:00
Blaž Šnuderl
a2a6062adc
fmt
2024-02-03 20:48:25 +01:00
Blaž Šnuderl
5e9d97d1c6
Implement new API for PyNone #3684
2024-02-03 19:09:12 +01:00
David Hewitt
d8c5e7943c
Merge pull request #3790 from Icxolu/bool
...
add `Bound` constructor for `PyBool`
2024-02-03 13:10:30 +00:00
Icxolu
af21a9dc74
add Bound
constructor for PyBool
2024-02-03 12:06:50 +01:00
David Hewitt
8f8d4d33fa
Merge pull request #3776 from davidhewitt/bound-extract
...
migrate `FromPyObject` for `Bound` and `Py` to new APIs
2024-02-02 23:10:47 +00:00
David Hewitt
57735540e8
Merge pull request #3736 from Tpt/tpt/systemtime
...
Adds conversion between SystemTime and datetime
2024-02-01 14:05:51 +00:00
David Hewitt
a60c1821af
implement PyFunctionArgument
for &Bound<T>
2024-02-01 13:22:53 +00:00
David Hewitt
d35a6a1fd6
Merge pull request #3785 from davidhewitt/bound-as-any
...
add `Bound::as_any` and `Bound::into_any` (and same for `Py`)
2024-02-01 10:52:25 +00:00
David Hewitt
49a57dfd18
clean up implementations in src/instance.rs
2024-02-01 10:14:58 +00:00
David Hewitt
4437e8f616
add Py::as_any
and Py::into_any
2024-02-01 09:07:36 +00:00
David Hewitt
cbc97f8ea9
add Bound::as_any
and Bound::into_any
2024-02-01 09:01:33 +00:00
David Hewitt
4c94be51a7
add PyBytes::new_bound
2024-02-01 08:52:28 +00:00
Icxolu
b14dbcf29f
add Bound
constructors for PyMemoryView
2024-01-30 22:52:31 +01:00
Icxolu
e704a760b7
add Bound
constructors for PyByteArray
2024-01-30 22:52:31 +01:00
David Hewitt
2f00eb1423
for now just change return type of intern!
2024-01-30 13:28:07 +00:00
David Hewitt
aa139ad422
add intern_bound!
macro
2024-01-30 10:58:19 +00:00
David Hewitt
fed8bcadaf
add remaining bound string constructors
2024-01-30 09:13:24 +00:00
David Hewitt
718be9fac5
Merge pull request #3770 from Icxolu/capsule
...
implement `PyCapsuleMethods`
2024-01-29 21:23:43 +00:00
Icxolu
e323fcbb9e
implement PyCapsuleMethods
2024-01-29 18:22:40 +01:00
David Hewitt
a3eb328378
migrate FromPyObject
for Bound
and Py
to extract_bound
2024-01-29 13:46:46 +00:00
David Hewitt
c47565666d
add PyString::new_bound
2024-01-29 13:14:00 +00:00
David Hewitt
7549a21154
Merge pull request #3773 from davidhewitt/float-new-bound
...
add `PyFloat::new_bound`
2024-01-29 11:52:45 +00:00
David Hewitt
345e122bbf
add PyFloat::new_bound
2024-01-29 11:06:34 +00:00
David Hewitt
d4d08b24b0
add PyDict::new_bound
without deprecation
2024-01-29 10:17:54 +00:00
David Hewitt
ffaa03e3f1
Migrate some conversions to extract_bound
2024-01-28 07:22:51 +00:00
David Hewitt
595ca4b3c1
Add extract_bound
method to FromPyObject
2024-01-28 07:22:51 +00:00
David Hewitt
ed7263faa2
Merge pull request #3767 from Icxolu/complex
...
implement `PyComplexMethods`
2024-01-27 22:06:02 +00:00
Icxolu
37e2a4d9c9
implement PyComplexMethods
2024-01-27 22:26:53 +01:00
David Hewitt
1657109ae0
documentation updates for PyList::new_bound
2024-01-27 21:12:55 +00:00
David Hewitt
674f7282d8
ToPyObject
and IntoPy
for Borrowed
2024-01-27 21:12:55 +00:00
David Hewitt
eed196329d
add list bound constructors
2024-01-27 21:12:55 +00:00
David Hewitt
0973da27e9
Merge pull request #3743 from davidhewitt/set-bound-constructors
...
add bound constructors for `PySet` and `PyFrozenSet`
2024-01-27 17:55:42 +00:00
Tpt
f83544910f
Adds conversion between SystemTime and datetime
2024-01-27 17:43:51 +01:00
David Hewitt
5f320d7a04
Merge pull request #3765 from davidhewitt/remove-py-newref
...
remove internal uses of `_Py_NewRef`
2024-01-27 13:35:29 +00:00
David Hewitt
87e0610b58
remove internal uses of _Py_NewRef
2024-01-27 12:07:46 +00:00
Icxolu
7918815cee
implement PySliceMethods
2024-01-27 11:34:32 +01:00
Icxolu
f86053e2c2
implement PyTracebackMethods
2024-01-27 11:34:32 +01:00
David Hewitt
06c95432c6
set & frozenset bound constructors
2024-01-17 09:45:41 +00:00
David Hewitt
43504cd15a
Merge pull request #3742 from samuelcolvin/int-extraction-performance
...
improve performance of successful int extract by ~30% by avoiding calls to `__index__` where redundant
2024-01-16 17:14:39 +00:00
Samuel Colvin
0e876d94d6
improve performance of successful int extract by ~30%
...
add newsfragment
formatting
skip slow path on 3.8+
formatting
cfg if,else
formatting again
dedicated macro, change int_convert_u64_or_i64 too
add float tests
force index call for PyLong_AsUnsignedLongLong
perform PyLong check for 3.8 too
perform PyLong check for <3.10
2024-01-16 13:51:19 +00:00
David Hewitt
7366b1a386
Merge pull request #3730 from Tpt/chrono-tz
...
Conversion between chrono_tz::Tz and zoneinfo.ZoneInfo
2024-01-15 14:48:27 +00:00
David Hewitt
ab699a0727
allow dead_code in IPowModulo
2024-01-12 15:55:21 +00:00
David Hewitt
4504a7c96e
fix some nightly lints 2024-01-12
2024-01-12 13:34:17 +00:00
Tpt
72f0c73925
Conversion between chrono_tz::Tz and zoneinfo.ZoneInfo
2024-01-08 15:19:49 +01:00
David Hewitt
50e33d86c7
add call_bound
and call_method_bound
2024-01-03 13:24:14 +00:00
Adam Reichold
e2c6eb86f9
Fix missing feature flags in implementation of Either conversion.
2024-01-02 20:47:42 +00:00
David Hewitt
eceb28bc79
Merge pull request #3702 from davidhewitt/bound-iterator-constructor
...
introduce PyIterator::from_bound_object
2024-01-02 15:34:54 +00:00
David Hewitt
783e98b1a8
introduce PyIterator::from_bound_object
2024-01-02 14:11:26 +00:00
David Hewitt
4cf58c8303
implement IntoPy<Py<PyTuple>>
for Bound<PyTuple>
2023-12-30 21:37:46 +00:00
David Hewitt
823b5feed3
improve tuple methods test coverage
2023-12-30 21:37:46 +00:00
David Hewitt
53d25f7ff2
add new PyTuple
constructors
2023-12-30 21:37:46 +00:00
David Hewitt
375e3d4eee
implement PyTupleMethods
2023-12-30 21:37:46 +00:00
Alex Gaynor
54390bc50b
Merge pull request #3712 from alex/binops
...
add PyAnyMethods for binary operators
2023-12-30 13:56:45 +00:00
Alex Gaynor
339660c117
add PyAnyMethods for binary operators
...
also pow
fixes #3709
2023-12-29 18:45:18 -05:00
David Hewitt
9a5668572b
implement PyModuleMethods
2023-12-29 21:46:46 +00:00
David Hewitt
3da1aac2dd
add gil-refs
feature to aid migration
2023-12-29 14:42:31 +00:00
David Hewitt
442d13dab3
introduce Bound::unbind
2023-12-26 13:17:12 +00:00
David Hewitt
e4fd557d2a
remove IntoIterator
for &Bound
2023-12-26 13:10:36 +00:00
David Hewitt
8a28a69c3d
implement PyFrozenSetMethods
2023-12-26 13:10:36 +00:00
David Hewitt
271cbf9edb
implement PySetMethods
2023-12-26 13:10:36 +00:00
David Hewitt
d36ad8f61f
introduce Bound::as_borrowed
2023-12-26 09:49:03 +00:00
David Hewitt
1b61cb015a
Add .as_borrowed()
conversion from gil-refs to Bound<T>
2023-12-26 09:49:03 +00:00
Adam Reichold
f37c682f8c
Merge pull request #3700 from davidhewitt/super-bound
...
introduce `PySuper::new_bound`
2023-12-25 09:48:39 +00:00
Adam Reichold
ff373eb1c6
Merge pull request #3697 from davidhewitt/as-gil-ref
...
expose `Bound::as_gil_ref` and `Bound::into_gil_ref`
2023-12-25 09:48:23 +00:00
Adam Reichold
bd660537d8
Merge pull request #3695 from davidhewitt/bound-iterator
...
implement iterator for `Bound` iterator
2023-12-25 09:46:01 +00:00
David Hewitt
38abfd2eed
expose Bound::as_gil_ref
and Bound::into_gil_ref
2023-12-24 22:10:09 +00:00
David Hewitt
d9cc0c0f24
introduce PySuper::new_bound
2023-12-24 20:04:15 +00:00
David Hewitt
6ca63b5772
Merge pull request #3698 from davidhewitt/unraisable-bound
...
implement `PyErr::write_unraisable_bound`
2023-12-24 19:54:27 +00:00
David Hewitt
d669a943f7
implement iterator for Bound
iterator
2023-12-24 19:52:36 +00:00
David Hewitt
1004ffa7d6
export Bound
and Borrowed
from lib.rs
2023-12-24 19:35:50 +00:00
David Hewitt
877e34ac86
implement PyErr::write_unraisable_bound
2023-12-24 19:35:29 +00:00
David Hewitt
f5b18468bc
partially revert changes to PyTzInfoAccess
trait
2023-12-24 15:07:42 +00:00
Adam Reichold
e99058a442
Merge pull request #3679 from davidhewitt/datetime2
...
implement datetime traits for `Bound`
2023-12-23 14:54:30 +00:00
David Hewitt
6832bf88f2
implement datetime traits for Py2
2023-12-23 15:34:07 +01:00
Adam Reichold
4dc6c1643e
Turn calls of __traverse__ into no-ops for unsendable pyclass if on the wrong thread
...
Adds a "threadsafe" variant of `PyCell::try_borrow` which will fail instead of
panicking if called on the wrong thread and use it in `call_traverse` to turn GC
traversals of unsendable pyclasses into no-ops if on the wrong thread.
This can imply leaking the underlying resource if the originator thread has
already exited so that the GC will never run there again, but it does avoid hard
aborts as we cannot raise an exception from within `call_traverse`.
2023-12-23 15:01:08 +01:00
Adam Reichold
e58b251fef
Copy note on using check_signals on non-main thread/interpreter from Python docs.
2023-12-22 12:08:37 +01:00
David Hewitt
4ac6a6bf15
add safety note to downcast_into_unchecked
2023-12-21 15:51:56 +00:00
David Hewitt
3092289020
expose BoundDictIterator
and BoundListIterator
2023-12-21 13:09:22 +00:00
David Hewitt
e8e6fb93d7
Add Py::bind
, Py::into_bound
, and Py::bind_borrowed
2023-12-21 13:03:59 +00:00
David Hewitt
0f242c399d
make DowncastError
and DowncastIntoError
public
2023-12-21 13:03:59 +00:00
David Hewitt
c08c6c0a41
make new downcast errors public API
2023-12-21 12:28:12 +00:00
David Hewitt
a09b9f8834
make Bound
and Borrowed
types public API
2023-12-21 12:20:33 +00:00
David Hewitt
704e9fc7b5
Py2
-> Bound
2023-12-21 12:04:45 +00:00
David Hewitt
2f080f4075
Py2Borrowed
-> Borrowed
2023-12-21 12:02:56 +00:00
David Hewitt
2788f4a110
Merge pull request #3680 from davidhewitt/list2
...
implement `PyListMethods`
2023-12-21 11:13:04 +00:00
David Hewitt
ee1272ed76
implement Copy
for Py2Borrowed
2023-12-21 10:44:39 +00:00
David Hewitt
de82e2d6e2
add Py2Borrowed::to_owned
2023-12-21 10:44:39 +00:00
David Hewitt
337e48328f
implement PyListMethods
2023-12-21 10:44:37 +00:00
Adam Reichold
3c97167fd1
Use write_unraisable to report errors loading type objects for ABC checks.
2023-12-21 11:33:26 +01:00
Adam Reichold
c1f4db0a9b
Increase use of common get_or_try_init_type_ref helper when caching type objects.
2023-12-21 11:33:25 +01:00
Adam Reichold
7f626b26d4
Merge pull request #3678 from davidhewitt/mapping2
...
implement `PyMappingMethods`
2023-12-21 09:47:35 +00:00
David Hewitt
43827e39ee
Merge pull request #3677 from davidhewitt/string2
...
implement `PyStringMethods`
2023-12-20 22:04:23 +00:00
David Hewitt
f4f3169cad
implement PyStringMethods
2023-12-20 16:19:18 +00:00
David Hewitt
8bd2972201
Merge pull request #3675 from davidhewitt/dict2-try2
...
implement `PyDictMethods`
2023-12-20 14:59:15 +00:00
David Hewitt
8e7c90733d
implement PyMappingMethods
2023-12-20 14:39:40 +00:00
David Hewitt
15d309eb1f
implement PyDictMethods
2023-12-20 14:18:45 +00:00
Adam Reichold
fd2fc983b1
Merge pull request #3676 from davidhewitt/any-iter
...
tidy up some Py2 <-> gil-ref conversions
2023-12-20 13:31:15 +00:00
Adam Reichold
1b3dc6d7ac
Merge pull request #3661 from PyO3/iter-output-type
...
Replace (A)IterNextOutput by autoref-based specialization to allow returning arbitrary value
2023-12-20 12:53:42 +00:00
David Hewitt
5181e35a61
tidy up some Py2 <-> gil-ref conversions
2023-12-20 12:50:15 +00:00
Adam Reichold
5528895f3e
Relax the error type in the Result<Option<T>, E>> specializations for __(a)next__.
2023-12-20 13:12:16 +01:00
David Hewitt
bc87b7bac6
deprecate PyTryFrom
and PyTryInto
2023-12-20 11:28:24 +00:00
Adam Reichold
83697f0c62
Also replace IterANextOutput by autoref-based specialization to allow returning arbitrary values
2023-12-20 09:56:16 +01:00
Adam Reichold
ca7d90dcf3
Replace IterNextOutput by autoref-based specialization to allow returning arbitrary values
2023-12-20 09:56:16 +01:00
Tpt
0752942c3f
Duration: drops truncation warning
2023-12-20 08:57:26 +01:00
Tpt
8b614745cf
Adds std::duration::Duration from/to Python conversions
2023-12-20 08:57:26 +01:00
Adam Reichold
ee54132ff6
Merge pull request #3671 from davidhewitt/dh/downcast-error-split
...
Add `Py2` variants of `PyDowncastError`
2023-12-19 21:31:38 +00:00
David Hewitt
1451418ee4
Add Py2
variants of PyDowncastError
2023-12-19 20:59:57 +00:00
David Hewitt
54ba6e82ca
Merge pull request #3651 from davidhewitt/bytes2
...
implement `PyBytesMethods` and `PyByteArrayMethods`
2023-12-19 19:56:16 +00:00
David Hewitt
35f7f1a78c
use Py2Borrowed to make PyBytesMethods slightly nicer
2023-12-19 19:02:23 +00:00
Adam Reichold
8bb64377b8
Merge pull request #3638 from PyO3/call-op-bool
...
Try harder by looking for a __bool__ magic method when extracing bool values from Python objects.
2023-12-19 18:52:55 +00:00
Adam Reichold
4177dfcc81
Apply __bool__ conversion only to numpy.bool_ to avoid false positives.
2023-12-19 18:55:28 +01:00
Adam Reichold
57002d2389
Align error message when no method __bool__ is defined with CPython's general style.
2023-12-19 18:55:28 +01:00
Adam Reichold
3e10d64fa2
Avoid attribute lookup overhead for __bool__ if the unlimited API is available.
2023-12-19 18:55:28 +01:00
Adam Reichold
8133aaa5d8
Try harder by looking for a __bool__ magic method when extracing bool values from Python objects.
...
I decided to not implement the full protocol for truth value testing [1] as it
seems confusing in the context of function arguments if basically any instance
of custom class or non-empty collection turns into `true`.
[1] https://docs.python.org/3/library/stdtypes.html#truth
2023-12-19 18:55:28 +01:00
David Hewitt
e727640ef3
Merge pull request #3664 from Tpt/chrono-abi3
...
Chrono: compatibility with abi3
2023-12-19 17:53:30 +00:00
David Hewitt
c5dce0172b
implement PyBytesMethods
and PyByteArrayMethods
2023-12-19 17:26:52 +00:00
Adam Reichold
68f417fb1c
Defend against mutable type objects when extracting their full name.
2023-12-19 16:51:24 +01:00
Adam Reichold
416d3c488f
Rename name to qualname and full_name to name to better match Python
2023-12-19 16:51:24 +01:00
Adam Reichold
2fdd52003e
Add PyType::full_name which is tp_name and has an abi3 fallback.
2023-12-19 15:47:21 +01:00
Tpt
d7eac6527b
Chrono: compatibility with abi3
2023-12-19 14:53:14 +01:00
David Hewitt
1dca87972a
Merge pull request #3662 from Tpt/chrono-test
...
Chrono: makes test independent of datetime C-API
2023-12-19 08:26:21 +00:00
Tpt
0d2387e858
Chrono: makes FromPyObject impl on DateTime generic
...
ToPyObject was already generic
2023-12-18 20:12:30 +01:00
Tpt
7705181049
Chrono: makes test independent of datetime C-API
2023-12-18 17:12:39 +01:00
Adam Reichold
ced97f80d1
Transition is_true to is_truthy to clarify that the test is not based on identity with or equality to the True singleton.
2023-12-16 14:04:37 +01:00
David Hewitt
867a273afc
Merge pull request #3648 from Tpt/timezone-constructor
...
Adds internal timezone_from_offset function
2023-12-15 16:12:32 +00:00
Tpt
dcaed199c7
Adds internal timezone_from_offset function
...
It allows to build conversions from chrono without direct access to the C API
2023-12-15 17:00:25 +01:00
David Hewitt
d7adc74ba5
implement PyBoolMethods
2023-12-15 14:39:04 +00:00
David Hewitt
97cf9b834c
Merge pull request #3653 from davidhewitt/native-type-source
...
Add `AsRefSource` to `PyNativeType`.
2023-12-14 22:33:49 +00:00
David Hewitt
ef8532b175
Add AsRefSource
to PyNativeType
.
2023-12-14 18:35:06 +00:00
Adam Reichold
d1b4b9e7d4
Merge pull request #3650 from davidhewitt/float2
...
implement `PyFloatMethods`
2023-12-14 18:07:32 +00:00
David Hewitt
8a7c5002bd
rename floatob.rs
to float.rs
2023-12-14 17:14:17 +00:00
David Hewitt
8bdae345f3
implement PyFloatMethods
2023-12-14 17:12:06 +00:00
David Hewitt
015f028589
hold onto module name properly in PyCFunction::internal_new
2023-12-14 16:23:53 +00:00
David Hewitt
82ac801be4
introduce traits to make ffi ptr handling cleaner
2023-12-14 13:00:45 +00:00
David Hewitt
ac4ee2841b
implement PySequenceMethods
2023-12-14 13:00:45 +00:00
messense
c21a84d999
Add support for extracting Rust set types from frozenset
2023-12-07 20:25:31 +08:00
David Hewitt
07726aefc4
Merge pull request #3609 from wyfo/async_receiver
...
feat: allow async methods to accept `&self`/`&mut self`
2023-12-07 07:38:25 +00:00
Joseph Perez
f34c70c2da
feat: allow async methods to accept &self
/&mut self
2023-12-07 07:42:10 +01:00
Adam Reichold
4baf0235c3
Merge pull request #3616 from neachdainn/3615-gilprotected-pyvisit
...
Enable `GILProtected` access via `PyVisit`
2023-12-05 20:43:38 +00:00