* graalpy: recognize graalpy implementation when building
* graalpy: global Ellipse, None, NotImplemented, True, and False are only available as pointers
* graalpy: PyObject struct is opaque, use functions for everything
* graalpy: missing many of the same functions as pypy
* graalpy: do not have 128bit conversion functions
* graalpy: add functions for datetime accessor macros
* graalpy: add implementations for list macro functions
* graalpy: skip tuple macros
* graalpy: always use extern Py_CompileString function
* graalpy: disable assertion that does not apply to graalpy
* graalpy: floatobject structure is opaque on graalpy
* graalpy: ignore gc dependent test
* graalpy: add CI config
* graalpy: run rust fmt
* graalpy: add changelog entry
* graalpy: discover interpreter on PATH
* graalpy: interpreter id is not applicable to graalpy (just like pypy)
* graalpy: skip tests that cannot work on GraalPy
* graalpy: fix constructing normalized Err instances
Co-authored-by: David Hewitt <mail@davidhewitt.dev>
* graalpy: correct capi library name, but skip rust tests due to missing symbols
* graalpy: no support for C extensions on windows in latest release
* graalpy: declare support versions
* graalpy: frame, code, method, and function objects access from C API is mostly missing
* graalpy: take care only to expose C structure that GraalPy allocates
* graalpy: Bail out if graalpy version is less than what we support
---------
Co-authored-by: David Hewitt <mail@davidhewitt.dev>
* add `FromPyObjectBound` adjustment for `&str` without GIL Refs
* review: alex, Icxolu feedback
* add newsfragment
* add newsfragment for `FromPyObject` trait change
* make some examples compatible with abi3 < 3.10
* seal `FromPyObjectBound`
* fixup chrono_tz conversion
* #[pymodule] mod some_module { ... } v3
Based on #2367 and #3294
Allows to export classes, native classes, functions and submodules and provide an init function
See test/test_module.rs for an example
Future work:
- update examples, README and guide
- investigate having #[pyclass] and #[pyfunction] directly in the #[pymodule]
Co-authored-by: David Hewitt <mail@davidhewitt.dev>
Co-authored-by: Georg Brandl <georg@python.org>
* tests: group exported imports
* Consolidate pymodule macro code to avoid duplicates
* Makes pymodule_init take Bound<'_, PyModule>
* Renames #[pyo3] to #[pymodule_export]
* Gates #[pymodule] mod behind the experimental-declarative-modules feature
* Properly fails on functions inside of declarative modules
---------
Co-authored-by: David Hewitt <mail@davidhewitt.dev>
Co-authored-by: Georg Brandl <georg@python.org>
* fix `either` feature conditional compilation, again
* test feature powerset in CI
* install `rust-src` for feature powerset tests
* review: adamreichold feedback
* Fix one more case of redundant imports.
* just check feature powerset for now
---------
Co-authored-by: Adam Reichold <adam.reichold@t-online.de>
* 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>