Commit Graph

4172 Commits

Author SHA1 Message Date
Carl Kadie 5f1d4a9f5c
Update README.md
A year ago, I upgraded our Python bioinformatics package from C++ to Rust/PyO3. It worked great! I suggest adding links to the project and a (free) article about lessons learned from the process. I'm especially happy with the ability to use Rayon and Rust generics.
2022-01-01 12:15:31 -08:00
David Hewitt cf965155f4 pymethods: support buffer protocol 2021-12-30 15:48:55 +00:00
David Hewitt 2503a2dd5e
Merge pull request #2082 from davidhewitt/opt-create-type-object
opt: less generated code for `#[pyclass]` creation
2021-12-30 15:34:24 +00:00
David Hewitt e33b3e6a5b opt: don't emit T::dict_offset and T::weakref_offset without attributes 2021-12-30 14:57:27 +00:00
David Hewitt 807e126178 pyclass: no need to try inherit base dict and weaklist 2021-12-30 14:17:58 +00:00
David Hewitt 90e8ef79e2 opt: reduce generated code for type object creation 2021-12-30 14:17:58 +00:00
David Hewitt 24eea5db9a
Merge pull request #2081 from davidhewitt/wrap-paths
macros: accept paths in wrap_x macros
2021-12-30 14:00:48 +00:00
David Hewitt ff37f24625 macros: accept paths in wrap_x macros 2021-12-30 12:46:57 +00:00
David Hewitt 7c2c4dad48
Merge pull request #2070 from mejrs/aliases
Implement rustdoc-scrape-examples
2021-12-28 10:51:18 +00:00
mejrs 8c2970939d Resolve merge conflicts 2021-12-28 05:38:45 +01:00
Bruno Kolenbrander ac66392068
Merge branch 'PyO3:main' into aliases 2021-12-28 04:50:03 +01:00
David Hewitt 19ecd177c3
Merge pull request #2067 from davidhewitt/xtask-coverage
xtask: add coverage command
2021-12-27 09:48:54 +00:00
David Hewitt f344c23928 xtask: support MSRV 2021-12-27 08:36:11 +00:00
David Hewitt d600a8c3a3 xtask: add test-py subcommand & use in CI 2021-12-26 22:39:42 +00:00
Bruno Kolenbrander 4d1d859a64
Merge branch 'main' into aliases 2021-12-24 22:28:22 +01:00
Bruno Kolenbrander ff202f4660
Apply suggestions from code review
Co-authored-by: David Hewitt <1939362+davidhewitt@users.noreply.github.com>
2021-12-24 08:12:04 +01:00
David Hewitt adcc8800c5
Merge pull request #2075 from davidhewitt/opt-argument-extraction
opt: make argument extraction code smaller
2021-12-24 02:46:01 +00:00
David Hewitt 90479ddae4 opt: make argument extraction code smaller 2021-12-24 01:52:15 +00:00
David Hewitt ebed1db5aa
Merge pull request #2076 from davidhewitt/opt-class-creation
opt: reduce class creation generated code
2021-12-24 01:47:48 +00:00
David Hewitt 33a618914f opt: reduce class creation generated code 2021-12-24 01:12:59 +00:00
David Hewitt a67180c8a4
Merge pull request #2074 from davidhewitt/python-tweaks
opt: improve handle_panic generated code
2021-12-24 00:46:26 +00:00
David Hewitt 5be5d77589 opt: improve handle_panic generated code 2021-12-24 00:17:04 +00:00
David Hewitt 947055ddda
Merge pull request #2068 from davidhewitt/optimize-frompyobject
macros: optimize generated code for #[derive(FromPyObject)]
2021-12-23 00:42:39 +00:00
James Hilton-Balfe a5511b8f8a
Fix markdown link (#2071) 2021-12-22 16:51:03 +00:00
mejrs eccdcf7adb fix link 2021-12-22 12:31:14 +01:00
Bruno Kolenbrander 6430fc4958
Merge pull request #17 from mejrs/aliases
Aliases
2021-12-22 12:16:29 +01:00
mejrs 9512ce4e87 Fix call example 2021-12-22 12:12:16 +01:00
mejrs 6afd80a26f Create full feature and change doc rendering 2021-12-22 12:09:16 +01:00
David Hewitt 492b7e4c0f macros: optimize generated code for #[derive(FromPyObject)] 2021-12-22 08:34:05 +00:00
David Hewitt ff6fb5dcc2 benches: add bench_frompyobject 2021-12-22 00:27:13 +00:00
David Hewitt d520961b3f xtask: add coverage command 2021-12-21 22:28:36 +00:00
David Hewitt 3858a63b80
Merge pull request #2064 from davidhewitt/test-hygiene-coverage-try-2
ci: ignore coverage for test_hygiene, try 2
2021-12-20 22:37:33 +00:00
David Hewitt 8a989eeb6a
Merge pull request #2062 from davidhewitt/more-pointer-casts
misc: remove some more *const -> *mut pointer casts
2021-12-20 21:14:45 +00:00
David Hewitt 75fe8e50ed ci: ignore coverage for test_hygiene, try 2 2021-12-20 21:13:42 +00:00
David Hewitt 5cab5d4da3 misc: remove some more *const -> *mut pointer casts 2021-12-20 20:36:46 +00:00
David Hewitt 6033d696b1
Merge pull request #2061 from Amanieu/fix_indices
Avoid UB in PySlice::indices
2021-12-20 19:53:37 +00:00
Amanieu d'Antras ed0a6b710a Add changelog entry 2021-12-20 18:34:14 +01:00
Amanieu d'Antras 1fb20dab91 Avoid UB in PySlice::indices
Mutating a variables that is not declared with `mut` is undefined
behavior.
2021-12-20 18:28:36 +01:00
David Hewitt c7ca8bb017
Merge pull request #2057 from davidhewitt/rust-cache
ci: try rust-cache action
2021-12-18 11:01:27 +00:00
David Hewitt c36dff3cf0
Merge pull request #2056 from davidhewitt/hygiene-no-coverage
ci: no coverage necessary for hygiene tests
2021-12-18 09:37:07 +00:00
David Hewitt 8f402f31da ci: try rust-cache action 2021-12-18 09:05:05 +00:00
David Hewitt 4cec3a2ecf ci: no coverage necessary for hygiene tests 2021-12-18 08:56:22 +00:00
David Hewitt 777a607b47
Merge pull request #2054 from aganders3/fix-changelog
Move changelog entry for #1996.
2021-12-16 18:41:17 +00:00
Ashley Anderson a6c70164cd Move changelog entry for #1996. 2021-12-16 13:12:03 -05:00
Ashley Anderson c30ca03b60
Expose cross compiling configuration from pyo3-build-config (#1996)
* Initial refactor - expose cross-compiling functions and add necessary fields to InterpreterConfig

* Refactor cross_compiling to take arch/vendor/os separately.

* Address review comments.

* Update changelog with note about pyo3-build-config APIs.

* Fix panic when parsing ABI tag on Windows.

* Update parse_sysconfigdata test to best-guess values for linux.

* Revert added fields in InterpreterConfig.

* Refactor parse_sysconfigdata to return Sysconfigdata (HashMap). Add InterpreterConfig::from_sysconfigdata.

* Update BuildFlags test to use from_sysconfigdata.

* Add tests for from_sysconfigdata. Refactor Sysconfigdata API to be more open.

* Add basic tests for not cross compiling. Add some error handling.

* Address review comments.

* Update search_lib_dir to recurse into lib and pypy dirs.

* Look even harder for sysconfigdata.

* Add skip-build-config feature.

* Revert skip-build-config feature.

* Suppress cargo:rerun-if-env-changed without resolve-config feature.
2021-12-16 00:18:37 +00:00
David Hewitt 233a14fa1e
Merge pull request #2051 from davidhewitt/generate-examples
examples: add cargo-generate configuration
2021-12-15 21:58:10 +00:00
David Hewitt bd3c3adf46 examples: make Cargo.toml files more uniform 2021-12-15 08:28:25 +00:00
David Hewitt 888b10c373 examples: add links to cargo-generate
Co-authored-by: Adam Reichold <adamreichold@users.noreply.github.com>
2021-12-15 08:12:43 +00:00
David Hewitt ce7e17c0e6 examples: add cargo-generate configuration 2021-12-15 08:11:46 +00:00
Bruno Kolenbrander 39cac9075b
Organize examples + add __call__ example (#2043)
* Add decorator example crate and split off chapter

* Move not-examples to their own folder

* Add some readme's

* Make black happy

* Make clippy happy

* Add decorator example crate and split off chapter

* Fix ci

* Add empty workspace key

* Try fix ci

* fix ci

* reuse target dir for examples CI

* add pytests folder to makefile recipes

* fix ci, try 2

* add missing pyproject.toml

* remove TOX_TESTENV_PASSENV from Makefile

Co-authored-by: David Hewitt <1939362+davidhewitt@users.noreply.github.com>
2021-12-15 00:45:26 +00:00