Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: PyO3/pyo3
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v0.23.0
Choose a base ref
...
head repository: PyO3/pyo3
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v0.24.0
Choose a head ref
Loading
Showing with 7,503 additions and 2,368 deletions.
  1. +1 −2 .github/workflows/benches.yml
  2. +4 −0 .github/workflows/build.yml
  3. +122 −93 .github/workflows/ci.yml
  4. +5 −3 .github/workflows/coverage-pr-base.yml
  5. +1 −1 .github/workflows/gh-pages.yml
  6. +8 −0 .netlify/build.sh
  7. +126 −3 CHANGELOG.md
  8. +11 −8 Cargo.toml
  9. +2 −1 Contributing.md
  10. +5 −3 README.md
  11. +6 −1 build.rs
  12. +1 −1 emscripten/Makefile
  13. +1 −0 examples/Cargo.toml
  14. +1 −1 examples/decorator/.template/pre-script.rhai
  15. +1 −1 examples/maturin-starter/.template/pre-script.rhai
  16. +1 −1 examples/plugin/.template/pre-script.rhai
  17. +1 −1 examples/setuptools-rust-starter/.template/pre-script.rhai
  18. +1 −1 examples/word-count/.template/pre-script.rhai
  19. +4 −0 guide/book.toml
  20. +0 −1 guide/pyclass-parameters.md
  21. +1 −0 guide/src/SUMMARY.md
  22. +11 −11 guide/src/building-and-distribution.md
  23. +3 −3 guide/src/class.md
  24. +3 −3 guide/src/class/numeric.md
  25. +3 −1 guide/src/class/thread-safety.md
  26. +121 −40 guide/src/conversions/traits.md
  27. +294 −5 guide/src/debugging.md
  28. +4 −544 guide/src/ecosystem/async-await.md
  29. +107 −0 guide/src/ecosystem/tracing.md
  30. +16 −0 guide/src/features.md
  31. +68 −25 guide/src/free-threading.md
  32. +2 −2 guide/src/function.md
  33. +1 −77 guide/src/function/signature.md
  34. +2 −2 guide/src/migration.md
  35. +58 −1 guide/src/parallelism.md
  36. +13 −0 guide/src/performance.md
  37. +25 −0 guide/theme/tabs.css
  38. +75 −0 guide/theme/tabs.js
  39. +84 −38 noxfile.py
  40. +14 −14 pyo3-benches/benches/bench_call.rs
  41. +5 −5 pyo3-benches/benches/bench_extract.rs
  42. +7 −5 pyo3-benches/benches/bench_intopyobject.rs
  43. +29 −1 pyo3-benches/benches/bench_list.rs
  44. +2 −8 pyo3-benches/benches/bench_pyobject.rs
  45. +6 −12 pyo3-benches/benches/bench_set.rs
  46. +40 −0 pyo3-benches/benches/bench_tuple.rs
  47. +6 −5 pyo3-build-config/Cargo.toml
  48. +388 −100 pyo3-build-config/src/impl_.rs
  49. +2 −0 pyo3-build-config/src/import_lib.rs
  50. +101 −2 pyo3-build-config/src/lib.rs
  51. +1 −1 pyo3-ffi-check/Cargo.toml
  52. +1 −1 pyo3-ffi-check/build.rs
  53. +13 −0 pyo3-ffi-check/macro/src/lib.rs
  54. +11 −2 pyo3-ffi/Cargo.toml
  55. +2 −2 pyo3-ffi/README.md
  56. +20 −17 pyo3-ffi/build.rs
  57. +37 −4 pyo3-ffi/src/abstract_.rs
  58. +8 −26 pyo3-ffi/src/cpython/abstract_.rs
  59. +0 −1 pyo3-ffi/src/cpython/complexobject.rs
  60. +0 −1 pyo3-ffi/src/cpython/floatobject.rs
  61. +2 −1 pyo3-ffi/src/cpython/frameobject.rs
  62. +1 −1 pyo3-ffi/src/cpython/genobject.rs
  63. +2 −2 pyo3-ffi/src/cpython/listobject.rs
  64. +1 −1 pyo3-ffi/src/cpython/mod.rs
  65. +2 −4 pyo3-ffi/src/cpython/object.rs
  66. +1 −0 pyo3-ffi/src/cpython/objimpl.rs
  67. +14 −14 pyo3-ffi/src/cpython/pyerrors.rs
  68. +1 −1 pyo3-ffi/src/cpython/pyframe.rs
  69. +3 −3 pyo3-ffi/src/cpython/pystate.rs
  70. +0 −1 pyo3-ffi/src/cpython/tupleobject.rs
  71. +4 −9 pyo3-ffi/src/cpython/unicodeobject.rs
  72. +12 −20 pyo3-ffi/src/datetime.rs
  73. +12 −0 pyo3-ffi/src/genericaliasobject.rs
  74. +3 −1 pyo3-ffi/src/lib.rs
  75. +5 −2 pyo3-ffi/src/object.rs
  76. +5 −1 pyo3-ffi/src/pybuffer.rs
  77. +1 −0 pyo3-ffi/src/pyerrors.rs
  78. +5 −3 pyo3-ffi/src/pyhash.rs
  79. +74 −3 pyo3-ffi/src/pystate.rs
  80. +4 −3 pyo3-macros-backend/Cargo.toml
  81. +35 −1 pyo3-macros-backend/src/attributes.rs
  82. +0 −54 pyo3-macros-backend/src/deprecations.rs
  83. +174 −53 pyo3-macros-backend/src/frompyobject.rs
  84. +72 −18 pyo3-macros-backend/src/intopyobject.rs
  85. +0 −1 pyo3-macros-backend/src/lib.rs
  86. +1 −8 pyo3-macros-backend/src/method.rs
  87. +37 −32 pyo3-macros-backend/src/params.rs
  88. +53 −87 pyo3-macros-backend/src/pyclass.rs
  89. +1 −1 pyo3-macros-backend/src/pyfunction.rs
  90. +7 −13 pyo3-macros-backend/src/pyfunction/signature.rs
  91. +1 −4 pyo3-macros-backend/src/pyimpl.rs
  92. +14 −18 pyo3-macros-backend/src/pymethod.rs
  93. +1 −0 pyo3-macros-backend/src/quotes.rs
  94. +16 −2 pyo3-macros-backend/src/utils.rs
  95. +3 −2 pyo3-macros/Cargo.toml
  96. +1 −1 pyproject.toml
  97. +1 −0 pytests/Cargo.toml
  98. +1 −1 pytests/src/awaitable.rs
  99. +25 −0 pytests/src/misc.rs
  100. +6 −0 pytests/tests/test_comparisons.py
  101. +28 −0 pytests/tests/test_hammer_gil_in_thread.py
  102. +7 −2 pytests/tests/test_othermod.py
  103. +4 −4 pytests/tests/test_path.py
  104. +150 −0 src/call.rs
  105. +67 −14 src/conversion.rs
  106. +97 −68 src/conversions/chrono.rs
  107. +52 −0 src/conversions/chrono_tz.rs
  108. +6 −22 src/conversions/either.rs
  109. +1,340 −0 src/conversions/jiff.rs
  110. +2 −0 src/conversions/mod.rs
  111. +65 −31 src/conversions/std/path.rs
  112. +184 −0 src/conversions/uuid.rs
  113. +2 −5 src/coroutine.rs
  114. +7 −1 src/err/err_state.rs
  115. +17 −0 src/err/impls.rs
  116. +26 −9 src/err/mod.rs
  117. +2 −0 src/exceptions.rs
  118. +1 −1 src/ffi/tests.rs
  119. +24 −18 src/impl_/freelist.rs
  120. +28 −73 src/impl_/pyclass.rs
  121. +5 −4 src/impl_/pymethods.rs
  122. +3 −8 src/impl_/wrap.rs
  123. +48 −4 src/instance.rs
  124. +29 −18 src/internal_tricks.rs
  125. +5 −2 src/lib.rs
  126. +69 −24 src/marker.rs
  127. +7 −8 src/pycell/impl_.rs
  128. +1 −0 src/sealed.rs
  129. +124 −24 src/sync.rs
  130. +2 −0 src/tests/hygiene/misc.rs
  131. +38 −0 src/tests/hygiene/pyclass.rs
  132. +48 −104 src/types/any.rs
  133. +2 −2 src/types/datetime.rs
  134. +51 −0 src/types/datetime_abi3.rs
  135. +74 −45 src/types/dict.rs
  136. +19 −7 src/types/frozenset.rs
  137. +72 −0 src/types/genericalias.rs
  138. +69 −0 src/types/iterator.rs
  139. +770 −61 src/types/list.rs
  140. +2 −2 src/types/mappingproxy.rs
  141. +7 −17 src/types/mod.rs
  142. +8 −10 src/types/module.rs
  143. +8 −20 src/types/sequence.rs
  144. +22 −19 src/types/set.rs
  145. +528 −18 src/types/tuple.rs
  146. +5 −6 src/types/weakref/proxy.rs
  147. +5 −6 src/types/weakref/reference.rs
  148. +8 −4 src/version.rs
  149. +4 −4 tests/test_class_basics.rs
  150. +7 −1 tests/test_compile_error.rs
  151. +1 −1 tests/test_datetime_import.rs
  152. +25 −60 tests/test_enum.rs
  153. +242 −5 tests/test_frompyobject.rs
  154. +36 −24 tests/test_gc.rs
  155. +1 −1 tests/test_getter_setter.rs
  156. +60 −7 tests/test_intopyobject.rs
  157. +1 −1 tests/test_methods.rs
  158. +67 −0 tests/test_pyerr_debug_unformattable.rs
  159. +3 −3 tests/test_pyfunction.rs
  160. +25 −0 tests/ui/ambiguous_associated_items.rs
  161. +37 −0 tests/ui/deprecated.rs
  162. +33 −0 tests/ui/deprecated.stderr
  163. +0 −34 tests/ui/deprecations.rs
  164. +0 −37 tests/ui/deprecations.stderr
  165. +12 −0 tests/ui/forbid_unsafe.rs
  166. +8 −1 tests/ui/invalid_argument_attributes.rs
  167. +26 −6 tests/ui/invalid_argument_attributes.stderr
  168. +2 −2 tests/ui/invalid_cancel_handle.stderr
  169. +47 −1 tests/ui/invalid_frompy_derive.rs
  170. +64 −8 tests/ui/invalid_frompy_derive.stderr
  171. +32 −0 tests/ui/invalid_intopy_derive.rs
  172. +30 −0 tests/ui/invalid_intopy_derive.stderr
  173. +13 −0 tests/ui/invalid_intopy_with.rs
  174. +23 −0 tests/ui/invalid_intopy_with.stderr
  175. +1 −1 tests/ui/invalid_property_args.stderr
  176. +0 −11 tests/ui/invalid_proto_pymethods.stderr
  177. +8 −0 tests/ui/invalid_pycallargs.rs
  178. +33 −0 tests/ui/invalid_pycallargs.stderr
  179. +4 −15 tests/ui/invalid_pyclass_args.stderr
  180. +0 −3 tests/ui/invalid_pyfunctions.rs
  181. +10 −17 tests/ui/invalid_pyfunctions.stderr
  182. +1 −1 tests/ui/invalid_pymethod_receiver.stderr
  183. +1 −1 tests/ui/invalid_pymethods.stderr
  184. +1 −1 tests/ui/invalid_result_conversion.stderr
  185. +1 −1 tests/ui/not_send.stderr
  186. +1 −1 tests/ui/not_send2.stderr
  187. +6 −0 tests/ui/pyclass_probe.rs
  188. +8 −8 tests/ui/pyclass_send.stderr
  189. +2 −2 tests/ui/reject_generics.stderr
  190. +2 −2 tests/ui/static_ref.stderr
3 changes: 1 addition & 2 deletions .github/workflows/benches.yml
Original file line number Diff line number Diff line change
@@ -15,8 +15,7 @@ concurrency:

jobs:
benchmarks:
# No support for 24.04, see https://github.com/CodSpeedHQ/runner/issues/42
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
4 changes: 4 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -38,6 +38,10 @@ jobs:
- name: Install nox
run: python -m pip install --upgrade pip && pip install nox

- if: inputs.python-version == 'graalpy24.1'
name: Install GraalPy virtualenv (only GraalPy 24.1)
run: python -m pip install 'git+https://github.com/oracle/graalpython#egg=graalpy_virtualenv_seeder&subdirectory=graalpy_virtualenv_seeder'

- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@master
with:
Loading