Commit graph

2481 commits

Author SHA1 Message Date
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
Sebastian Pütz 06cd7c7d5a Fix some more docs. 2020-09-05 11:24:12 +02:00
Sebastian Pütz e65b849ab6 Doc fixes, changelog and rename. 2020-09-05 10:20:22 +02:00
Sebastian Pütz 9137855e81 Add documentation for accessing PyModule in #[pyfunction]s. 2020-09-04 10:02:40 +02:00
Sebastian Pütz 4aae523e54 Rename add_module to add_submodule, documentation fixes. 2020-09-04 09:02:49 +02:00
Sebastian Pütz 795c054511 Possible to pass PyModule as first arg.
This commit makes it possible to access the module of a function
by passing the `need_module` argument to the pyfn and pyfunction
macros.
2020-09-04 09:01:21 +02:00
Sebastian Pütz 3214249010 Make python function wrapper creation fallible.
Wrapping a function can fail if we can't get the module name.

Based on suggestion by @kngwyu
2020-09-03 15:48:32 +02:00
Sebastian Pütz 1f017b66fb Move py fn wrapper argument expansion to associated function.
Suggestion by @kngwyu.

Additionally replace some `expect` calls with error handling.
2020-09-03 15:21:33 +02:00
Sebastian Pütz 5bbca1a052 Set the module of #[pyfunction]s.
Previously neither the module nor the name of the module of
pyfunctions were registered. This commit passes the module and
its name when creating a new pyfunction.

PyModule::add_function and PyModule::add_module have been added and are
set to replace `add_wrapped` in a future release. `add_wrapped` is kept
for compatibility reasons during the transition.

Depending on whether a `PyModule` or `Python` is the argument for the
Python function-wrapper, the module will be registered with the function.
2020-09-03 14:49:28 +02:00
Sebastian Pütz acbb3eed60 Replace PyFunction_New with extern C function.
PyFunction_New was previously implemented as a Rust function
wrapper around a call to the extern C function PyFunction_NewExt
with a hard-coded third argument. This commit removes the Rust
wrapper and directly exposes the function from the CPython API.
2020-09-03 14:49:28 +02:00
David Hewitt 74f981120d
Merge pull request #1146 from programmerjake/fix-snake-case-warning
Add #[allow(non_snake_case)] to function with generated name
2020-09-03 08:27:43 +01:00
Jacob Lifshay 7acf8d9f57 Add #[allow(non_snake_case)] to function with generated name
Fixes #1145
2020-09-02 20:32:51 -07:00
David Hewitt 3c24d27a66
Merge pull request #1141 from davidhewitt/guide-subchapters
Start splitting long guide pages into subchapters
2020-09-02 19:44:48 +01:00
Yuji Kanagawa e2fcd8f5a5
Merge pull request #1137 from davidhewitt/tidy-proc-macros
Refactor proc_macro optional / python detection
2020-09-03 00:14:08 +09:00
Yuji Kanagawa 9ecd9892aa
Merge pull request #1138 from davidhewitt/ci-no-fail-fast
Disable fail-fast in CI test
2020-09-03 00:04:17 +09:00
Yuji Kanagawa 1c696714e7
Merge pull request #1139 from davidhewitt/ci-color
Enable colored cargo output in CI
2020-09-03 00:03:30 +09:00
Yuji Kanagawa 1b2095140d
Merge pull request #1142 from davidhewitt/reduce-coverage-noise
Allow tiny coverage drop in PR to reduce "failure" noise
2020-09-02 23:57:58 +09:00
David Hewitt 6a6ce3f9f7 Allow tiny coverage drop in PR to reduce "failure" noise 2020-09-02 08:10:51 +01:00
David Hewitt 3e86e4c247 Refactor proc_macro optional / python detection 2020-09-02 08:01:21 +01:00
David Hewitt 025f365cbe Enable colored cargo output in CI 2020-09-01 22:49:02 +01:00
David Hewitt 81afdaf6cd Start splitting long guide pages into subchapters 2020-09-01 22:44:27 +01:00
David Hewitt ffe543f65d
Merge pull request #1140 from davidhewitt/union-doc
Add doc for extracting Union via FromPyObject
2020-09-01 22:41:27 +01:00
David Hewitt f0650ebd94 Add doc for extracting Union via FromPyObject 2020-09-01 22:04:57 +01:00
David Hewitt 1255848e3e Disable fail-fast in CI test 2020-09-01 20:56:13 +01:00
David Hewitt c5065893dd
Merge pull request #1135 from sebpuetz/remove-duplicate-pool
Remove duplicate pool and py in py_init.
2020-09-01 20:47:04 +01:00
David Hewitt 9477ee85e7
Merge pull request #1136 from sebpuetz/reduce-compile-panics
Remove proc-macro panics.
2020-09-01 20:29:20 +01:00
Sebastian Puetz 4e7fe6e638 Remove proc-macro panics. 2020-09-01 20:27:47 +02:00
Sebastian Puetz 74ecd15580 Remove duplicate pool and py in py_init. 2020-09-01 19:45:27 +02:00
Yuji Kanagawa 4a05f2782c
Merge pull request #1129 from alex/limit-tuples
Use CPython stable APIs for implementing tuples.
2020-08-31 22:15:58 +09:00
Alex Gaynor 958ce796e9 Use CPython stable APIs for implementing tuples.
Refs #1125

Reduces the number of compilation failures with `--features abi3` from 56 to 53.
2020-08-31 08:46:50 -04: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 3151c4876e
Merge pull request #1127 from alex/limit-buffers
Do not include PyBuffer APIs when building for abi3
2020-08-31 09:39:56 +01:00
Yuji Kanagawa 10d83bf7dd
Merge pull request #1124 from davidhewitt/module-constant
Use IntoPy<PyObject> for PyModule::add
2020-08-31 17:39:26 +09:00
Alex Gaynor 3e32b75284 Do not include PyBuffer APIs when building for abi3
Refs #1125

Reduces the number of compilation failures with `--features abi3` from 87 to 56.
2020-08-30 15:29:14 -04:00
David Hewitt 494ed63af0
Merge pull request #1126 from alex/limit-tp-name
Reduce the direct access to tp_name which is not part of the limited API
2020-08-30 20:10:58 +01:00
Alex Gaynor d93a5e308f Reduce the direct access to tp_name which is not part of the limited API
Refs #1125
2020-08-30 14:36:21 -04:00
Sebastian Pütz 0f32f886b8 More FromPyObject derive suggestions by @davidhewitt 2020-08-30 19:16:59 +02:00
David Hewitt 82cb815afa Use IntoPy<PyObject> for PyModule::add 2020-08-30 16:24:20 +01:00
Sebastian Pütz 7a9f4a1633 FromPyObject derive suggestions by @kngwyu 2020-08-30 15:33:50 +02:00
Yuji Kanagawa bd12d89a3e
Merge pull request #1122 from davidhewitt/guide-introduction
Add introduction to guide
2020-08-30 21:56:03 +09:00
David Hewitt 21cdb8ab7e Add introduction to guide 2020-08-30 13:03:28 +01:00
Sebastian Pütz 53a858c5c1 Add documentation for FromPyObject derivation. 2020-08-30 13:35:06 +02:00
Sebastian Pütz a8c5379eff Add compile fail tests for FromPyObject derives + some fixes.
Fix some error messages and accidental passes.
2020-08-30 12:54:13 +02:00
Sebastian Pütz 7781bb78de Specify item key and attr name as arguments. 2020-08-30 10:22:01 +02:00
Sebastian Pütz 60fe4925f5 '#[derive(FromPyObject)]` changes suggested by @davidwhewitt. 2020-08-30 10:22:01 +02:00
Sebastian Pütz 7168309464 Derive FromPyObject 2020-08-30 10:22:01 +02:00
David Hewitt f816786de4
Merge pull request #923 from davidhewitt/fix-cross-compile
Fix cross-compilation from unix to windows
2020-08-29 19:31:00 +01:00
David Hewitt 3fa1639b8c Fix cross-compilation from unix to windows 2020-08-29 11:37:49 +01:00
David Hewitt 987e83bc59
Merge pull request #1121 from davidhewitt/update-ui-tests
Update UI tests for Rust 1.46
2020-08-29 11:13:06 +01:00
David Hewitt 42296ea5c2 Update UI tests for Rust 1.46 2020-08-29 09:22:00 +01:00