Alex Gaynor
ddff8bea25
Stabilize declarative modules ( #4257 )
2024-06-17 01:28:20 +00:00
Thomas Tanon
e0e3981e17
#[pymodule] mod some_module { ... } v3 ( #3815 )
...
* #[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>
2024-02-24 13:50:18 +00:00
David Hewitt
a9305ab389
ci: move lints to new 1.74 cargo.toml tables
2023-11-17 15:41:52 +00:00
David Hewitt
45b5ede26a
remove copyright headers from source files
2023-06-03 22:38:54 +01:00
David Hewitt
5667a095d6
hygiene: fix `#[pymethods(crate = "...")]`
2023-01-27 06:34:12 +00:00
David Hewitt
8e8b484169
add `#[pyo3(signature = (...))]` attribute ( #2702 )
2022-10-25 07:23:21 +01:00
David Hewitt
9257de40fd
docs: note that `#[pymodule]` will create hidden module, like `#[pyfunction]`
2022-09-27 07:55:21 +01:00
David Hewitt
5718adeec7
pyproto: remove deprecated feature
2022-09-06 08:38:44 +01:00
mejrs
e4e7e6e51c
Add frozen documentation
2022-06-22 01:47:40 +02:00
David Hewitt
7a9e70e2c7
wrap_x: change macros back to `macro_rules!`
2022-05-14 20:42:07 +01:00
cuishuang
19e32a0621
fix some typos
...
Signed-off-by: cuishuang <imcusg@gmail.com>
2022-04-24 22:06:32 +08:00
David Hewitt
c16cc35b30
pyclass: mapping flag
2022-04-02 16:15:44 +01:00
David Hewitt
87c79c0319
Merge pull request #2234 from davidhewitt/pyclass-args-refactor
...
pyclass: unify pyclass with its pyo3 arguments
2022-03-22 11:38:05 +00:00
David Hewitt
49c1d22606
docs: for #2234
2022-03-22 10:38:36 +00:00
David Hewitt
c734b116f9
macros: fix syn patch version
2022-03-21 23:53:08 +00:00
David Hewitt
5cc3ce99f1
pyclass: unify pyclass with its pyo3 arguments
2022-03-20 08:24:09 +00:00
David Hewitt
79123b396c
pyclass: deprecate gc option
2022-02-15 08:01:46 +00:00
b05902132
78f5afc82e
Finish implementation for pyclass enums
2022-02-07 22:17:11 +00:00
David Hewitt
558549e1c2
pyproto: split into new feature
2022-02-05 16:51:31 +00:00
David Hewitt
de8174684f
pyfunction: allow wrap_pyfunction to work on imports (even cross-crate)
2022-01-07 08:43:05 +00:00
David Hewitt
ff37f24625
macros: accept paths in wrap_x macros
2021-12-30 12:46:57 +00:00
mejrs
6afd80a26f
Create full feature and change doc rendering
2021-12-22 12:09:16 +01:00
Georg Brandl
e4f608f605
pyo3_path, part 2: add pyo3_path options and use them.
2021-12-09 07:24:18 +01:00
b05902132
b7419b5278
Refactor #[pyclass] and now it supports enum.
...
There's no functionality since it does not generate __richcmp__.
Also it only works on enums with only variants, and does not support
C-like enums.
2021-11-21 20:05:53 +08:00
David Hewitt
c9a4cd1f87
deprecations: remove items deprecated in PyO3 0.14
2021-11-19 16:33:29 +00:00
David Hewitt
3d1bcae3aa
guide: document `#[pyo3(from_py_with)]`
2021-11-07 12:57:40 +00:00
David Hewitt
4b2345fe80
pymethods: support __call__ proto
2021-10-23 00:06:46 +01:00
David Hewitt
f76535fd07
pyo3-macros-backend: support macros inside doc attributes
2021-08-28 22:47:20 +01:00
mejrs
e753d77e4a
deduplicate documentation
2021-08-19 22:55:39 +02:00
David Hewitt
3794aab11f
docs: use pyo3.rs/latest instead of pyo3.rs/main
2021-07-24 08:47:02 +01:00
David Hewitt
18e0aa17e0
pymodule: accept `#[pyo3(name = "...")]` option
2021-06-06 08:41:20 +01:00
David Hewitt
9b8b133905
pyfunction: document `#[pyo3(pass_module)]`
2021-06-05 17:36:50 +01:00
David Hewitt
cec4c2d2e9
text_signature: move to `#[pyo3(text_signature = "...")]`
2021-06-05 16:33:03 +01:00
David Hewitt
70f9d198e5
docs: add docs for `#[pyo3(name = "...")]`
2021-05-07 22:43:57 +01:00
David Hewitt
4d46abde73
macros: support `#[pyo3(name = "...")]`
2021-05-07 22:35:52 +01:00
mejrs
5f51520559
Merge branch 'main' into docsrs
2021-05-04 12:34:38 +02:00
David Hewitt
ea9cf5b58a
docs: use white-space style instead of blob
2021-05-03 16:38:57 +01:00
mejrs
aa6a236362
added suggested changes
2021-05-03 00:58:00 +02:00
mejrs
78c2d40cb8
install doc_cfg feature and workflow
2021-05-02 21:10:53 +02:00
mejrs
dc99707756
duplicated docs to *_with_inventory macros
2021-04-30 17:21:46 +02:00
mejrs
2c7670e124
fixed extra whitespace
2021-04-30 01:23:20 +02:00
mejrs
49ebc7b9cd
fixed doc typo
2021-04-30 00:43:07 +02:00
mejrs
90dfb0e5ae
relax wording a bit
2021-04-30 00:31:09 +02:00
mejrs
4144a098bc
proc_macro_docs
2021-04-30 00:13:19 +02:00
David Hewitt
977735db20
pymethods: make inventory optional
2021-03-04 19:52:58 +00:00
Georg Brandl
fa8d7518ca
Restore compatibility with Rust 1.41.
...
This version is currently supported by Debian stable and Alpine Linux.
Fixes #1420
2021-02-11 10:14:25 +01:00
David Hewitt
88872eba4f
macros-backend: improve error handling ergonomics
2021-01-10 10:25:43 +00:00
David Hewitt
a689ab42c6
macros: rename crates for consistency
2020-12-20 06:39:28 +00:00