* feat: support pyclass on tuple enums
* cargo fmt
* changelog
* ruff format
* rebase with adaptation for FnArg refactor
* fix class.md from pr comments
* add enum tuple variant getitem implementation
* fmt
* progress toward getitem and len impl on derive pyclass for complex enum tuple
* working getitem and len slots for complex tuple enum pyclass derivation
* refactor code generation
* address PR concerns
- take py from function argument on get_item
- make more general slot def implementation
- remove unnecessary function arguments
- add testcases for uncovered cases including future feature match_args
* add tracking issue
* fmt
* ruff
* remove me
* support match_args for tuple enum
* integrate FnArg now takes Cow
* fix empty and single element tuples
* use impl_py_slot_def for cimplex tuple enum slots
* reverse erroneous doc change
* Address latest comments
* formatting suggestion
* fix :
- clippy beta
- better compile error (+related doc and test)
---------
Co-authored-by: Chris Arderne <chris@translucent.app>
* 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>
* deprecate GIL Refs in function arguments
* fix deprecated gil refs in function arguments
* add notes on deprecations limitations to migration guide
* Apply suggestions from code review
Co-authored-by: Icxolu <10486322+Icxolu@users.noreply.github.com>
* review: Icxolu
* fix proto method extract failure for option
* fix gil refs in examples
---------
Co-authored-by: Icxolu <10486322+Icxolu@users.noreply.github.com>
* deprecate `wrap_pyfunction` with `py` argument
The Python token in `wrap_pyfunction` is not handled automatically by
`WrapPyFunctionArg`, for backwards compatibility. This uses deref
specialization to deprecate this variant.
* merge `Extractor`s
* add deprecation ui test, revert closure variant due to test failure
* fix nightly
* deprecate `&PyModule` as `#[pymodule]` argument type
* cleanup
* add ui tests
* fix deprecations in tests
* fix maturin and setuptools-rust starters
* run `deprecated` ui test only when `gil-refs` as disabled
* Use single-arg form for `#[pymodule]` functions in docs and tests
* Update guide/src/function.md
Co-authored-by: Icxolu <10486322+Icxolu@users.noreply.github.com>
* Add test of two-argument module function
* Fix new test
---------
Co-authored-by: Icxolu <10486322+Icxolu@users.noreply.github.com>
* 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>