cibuildwheel 4.2.0__tar.gz → 4.2.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (231) hide show
  1. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/.github/workflows/copilot-setup-steps.yml +1 -1
  2. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/.github/workflows/release.yml +3 -3
  3. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/.github/workflows/test.yml +7 -7
  4. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/.github/workflows/update-dependencies.yml +1 -1
  5. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/.github/workflows/zizmor.yml +1 -1
  6. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/.pre-commit-config.yaml +3 -3
  7. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/PKG-INFO +13 -15
  8. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/README.md +11 -13
  9. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/bin/generate_schema.py +2 -0
  10. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/bin/inspect_all_known_projects.py +1 -1
  11. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/bin/update_pythons.py +3 -3
  12. cibuildwheel-4.2.1/cibuildwheel/__init__.py +1 -0
  13. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/extra.py +1 -1
  14. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/oci_container.py +6 -2
  15. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/platforms/android.py +0 -6
  16. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/platforms/ios.py +2 -4
  17. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/platforms/pyodide.py +1 -1
  18. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/platforms/windows.py +0 -2
  19. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/projectfiles.py +3 -1
  20. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/resources/build-platforms.toml +46 -46
  21. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/resources/constraints-pyodide312.txt +9 -9
  22. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/resources/constraints-pyodide313.txt +9 -9
  23. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/resources/constraints-pyodide314.txt +9 -9
  24. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/resources/constraints-pyodide315.txt +9 -9
  25. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/resources/constraints-python310.txt +11 -11
  26. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/resources/constraints-python311.txt +10 -10
  27. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/resources/constraints-python312.txt +10 -10
  28. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/resources/constraints-python313.txt +10 -10
  29. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/resources/constraints-python314.txt +10 -10
  30. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/resources/constraints-python315.txt +10 -10
  31. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/resources/constraints-python39.txt +7 -7
  32. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/resources/constraints.txt +10 -10
  33. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/resources/nodejs.toml +1 -1
  34. cibuildwheel-4.2.1/cibuildwheel/resources/pinned_docker_images.cfg +54 -0
  35. cibuildwheel-4.2.1/cibuildwheel/resources/python-build-standalone-releases.json +904 -0
  36. cibuildwheel-4.2.1/cibuildwheel/resources/virtualenv.toml +1 -0
  37. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/util/file.py +1 -1
  38. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/docs/changelog.md +9 -0
  39. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/docs/ci-services.md +1 -4
  40. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/docs/faq.md +3 -3
  41. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/docs/main.py +1 -1
  42. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/docs/platforms.md +2 -2
  43. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/examples/azure-pipelines-minimal.yml +3 -3
  44. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/examples/circleci-minimal.yml +3 -3
  45. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/examples/github-deploy.yml +1 -1
  46. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/examples/github-minimal.yml +1 -1
  47. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/examples/github-pipx.yml +1 -1
  48. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/examples/github-with-qemu.yml +1 -1
  49. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/examples/gitlab-minimal.yml +3 -3
  50. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/examples/gitlab-with-qemu.yml +1 -1
  51. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/pyproject.toml +26 -3
  52. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/test/test_android.py +49 -11
  53. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/unit_test/get_platform_test.py +19 -1
  54. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/unit_test/oci_container_test.py +29 -1
  55. cibuildwheel-4.2.0/cibuildwheel/__init__.py +0 -1
  56. cibuildwheel-4.2.0/cibuildwheel/resources/pinned_docker_images.cfg +0 -54
  57. cibuildwheel-4.2.0/cibuildwheel/resources/python-build-standalone-releases.json +0 -904
  58. cibuildwheel-4.2.0/cibuildwheel/resources/virtualenv.toml +0 -1
  59. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/.agents/skills/changelog-entry/SKILL.md +0 -0
  60. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/.circleci/config.yml +0 -0
  61. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/.circleci/prepare.sh +0 -0
  62. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/.editorconfig +0 -0
  63. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/.gitattributes +0 -0
  64. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/.github/CODEOWNERS +0 -0
  65. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  66. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/.github/dependabot.yml +0 -0
  67. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/.github/workflows/update-major-minor-tag.yml +0 -0
  68. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/.gitignore +0 -0
  69. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/.gitlab-ci.yml +0 -0
  70. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/.readthedocs.yml +0 -0
  71. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/AGENTS.md +0 -0
  72. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/CI.md +0 -0
  73. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/LICENSE +0 -0
  74. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/action.yml +0 -0
  75. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/azure-pipelines.yml +0 -0
  76. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/bin/bump_version.py +0 -0
  77. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/bin/generate_pyodide_constraints.py +0 -0
  78. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/bin/make_dependency_update_pr.py +0 -0
  79. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/bin/projects.py +0 -0
  80. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/bin/readme_changelog.py +0 -0
  81. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/bin/readme_options_table.py +0 -0
  82. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/bin/run_example_ci_configs.py +0 -0
  83. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/bin/run_tests.py +0 -0
  84. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/bin/sample_build.py +0 -0
  85. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/bin/update_docker.py +0 -0
  86. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/bin/update_how_it_works_image.py +0 -0
  87. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/bin/update_nodejs.py +0 -0
  88. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/bin/update_python_build_standalone.py +0 -0
  89. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/bin/update_virtualenv.py +0 -0
  90. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/__main__.py +0 -0
  91. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/_compat/__init__.py +0 -0
  92. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/_compat/tarfile.py +0 -0
  93. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/architecture.py +0 -0
  94. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/audit.py +0 -0
  95. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/bashlex_eval.py +0 -0
  96. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/ci.py +0 -0
  97. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/environment.py +0 -0
  98. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/errors.py +0 -0
  99. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/frontend.py +0 -0
  100. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/logger.py +0 -0
  101. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/options.py +0 -0
  102. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/platforms/__init__.py +0 -0
  103. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/platforms/linux.py +0 -0
  104. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/platforms/macos.py +0 -0
  105. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/py.typed +0 -0
  106. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/resources/android/_cross_venv.pth +0 -0
  107. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/resources/android/_cross_venv.py +0 -0
  108. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/resources/android/fortran_shim.py +0 -0
  109. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/resources/android/rust_shim.py +0 -0
  110. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/resources/cibuildwheel.schema.json +0 -0
  111. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/resources/constraints.in +0 -0
  112. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/resources/defaults.toml +0 -0
  113. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/resources/free-threaded-enable-314.xml +0 -0
  114. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/resources/free-threaded-enable-315.xml +0 -0
  115. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/resources/install_certifi.py +0 -0
  116. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/resources/ios-support/_cross_venv.py +0 -0
  117. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/resources/ios-support/arm64-iphoneos/_cross_arm64_iphoneos.py +0 -0
  118. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/resources/ios-support/arm64-iphoneos/sitecustomize.py +0 -0
  119. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/resources/ios-support/arm64-iphonesimulator/_cross_arm64_iphonesimulator.py +0 -0
  120. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/resources/ios-support/arm64-iphonesimulator/sitecustomize.py +0 -0
  121. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/resources/ios-support/make_cross_venv.py +0 -0
  122. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/resources/ios-support/x86_64-iphonesimulator/_cross_x86_64_iphonesimulator.py +0 -0
  123. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/resources/ios-support/x86_64-iphonesimulator/sitecustomize.py +0 -0
  124. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/resources/testing_temp_dir_file.py +0 -0
  125. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/schema.py +0 -0
  126. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/selector.py +0 -0
  127. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/typing.py +0 -0
  128. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/util/__init__.py +0 -0
  129. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/util/cmd.py +0 -0
  130. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/util/helpers.py +0 -0
  131. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/util/packaging.py +0 -0
  132. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/util/python_build_standalone.py +0 -0
  133. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/util/resources.py +0 -0
  134. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/cibuildwheel/venv.py +0 -0
  135. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/docs/_internal/pyodide-maintenance.md +0 -0
  136. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/docs/configuration.md +0 -0
  137. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/docs/contributing.md +0 -0
  138. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/docs/cpp_standards.md +0 -0
  139. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/docs/data/how-it-works.png +0 -0
  140. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/docs/data/projects.schema.json +0 -0
  141. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/docs/data/projects.yml +0 -0
  142. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/docs/data/readme_icons/android.svg +0 -0
  143. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/docs/data/readme_icons/apple.svg +0 -0
  144. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/docs/data/readme_icons/azurepipelines.svg +0 -0
  145. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/docs/data/readme_icons/circleci.svg +0 -0
  146. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/docs/data/readme_icons/github.svg +0 -0
  147. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/docs/data/readme_icons/gitlab.svg +0 -0
  148. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/docs/data/readme_icons/ios.svg +0 -0
  149. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/docs/data/readme_icons/linux.svg +0 -0
  150. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/docs/data/readme_icons/pyodide.svg +0 -0
  151. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/docs/data/readme_icons/travisci.svg +0 -0
  152. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/docs/data/readme_icons/windows.svg +0 -0
  153. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/docs/deliver-to-pypi.md +0 -0
  154. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/docs/diagram.html +0 -0
  155. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/docs/extra.css +0 -0
  156. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/docs/extra.js +0 -0
  157. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/docs/index.md +0 -0
  158. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/docs/options.md +0 -0
  159. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/docs/setup.md +0 -0
  160. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/docs/theme_overrides/js/theme.js +0 -0
  161. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/docs/working-examples.md +8 -8
  162. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/noxfile.py +0 -0
  163. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/properdocs.yml +0 -0
  164. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/test/README.md +0 -0
  165. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/test/__init__.py +0 -0
  166. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/test/_cross_venv_test_android.py +0 -0
  167. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/test/conftest.py +0 -0
  168. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/test/test_0_basic.py +0 -0
  169. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/test/test_abi3audit.py +0 -0
  170. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/test/test_abi_variants.py +0 -0
  171. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/test/test_before_all.py +0 -0
  172. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/test/test_before_build.py +0 -0
  173. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/test/test_before_test.py +0 -0
  174. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/test/test_build_frontend_args.py +0 -0
  175. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/test/test_build_skip.py +0 -0
  176. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/test/test_container_engine.py +0 -0
  177. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/test/test_container_images.py +0 -0
  178. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/test/test_cpp_standards.py +0 -0
  179. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/test/test_custom_repair_wheel.py +0 -0
  180. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/test/test_dependency_versions.py +0 -0
  181. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/test/test_emulation.py +0 -0
  182. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/test/test_environment.py +0 -0
  183. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/test/test_from_sdist.py +0 -0
  184. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/test/test_ios.py +0 -0
  185. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/test/test_linux_python.py +0 -0
  186. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/test/test_macos_archs.py +0 -0
  187. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/test/test_manylinuxXXXX_only.py +0 -0
  188. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/test/test_meson_python.py +0 -0
  189. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/test/test_musllinux_X_Y_only.py +0 -0
  190. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/test/test_pep518.py +0 -0
  191. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/test/test_projects/__init__.py +0 -0
  192. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/test/test_projects/__main__.py +0 -0
  193. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/test/test_projects/base.py +0 -0
  194. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/test/test_projects/c.py +0 -0
  195. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/test/test_projects/meson.py +0 -0
  196. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/test/test_projects/setuptools.py +0 -0
  197. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/test/test_pure_wheel.py +0 -0
  198. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/test/test_pyodide.py +0 -0
  199. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/test/test_ssl.py +0 -0
  200. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/test/test_subdir_package.py +0 -0
  201. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/test/test_testing.py +0 -0
  202. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/test/test_troubleshooting.py +0 -0
  203. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/test/test_wheel_tag.py +0 -0
  204. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/test/test_windows.py +0 -0
  205. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/test/utils.py +0 -0
  206. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/unit_test/__init__.py +0 -0
  207. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/unit_test/architecture_test.py +0 -0
  208. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/unit_test/audit_test.py +0 -0
  209. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/unit_test/build_ids_test.py +0 -0
  210. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/unit_test/build_selector_test.py +0 -0
  211. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/unit_test/conftest.py +0 -0
  212. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/unit_test/dependency_constraints_test.py +0 -0
  213. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/unit_test/download_test.py +0 -0
  214. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/unit_test/environment_test.py +0 -0
  215. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/unit_test/linux_build_steps_test.py +0 -0
  216. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/unit_test/main_commands_test.py +0 -0
  217. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/unit_test/main_tests/__init__.py +0 -0
  218. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/unit_test/main_tests/conftest.py +0 -0
  219. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/unit_test/main_tests/main_options_test.py +0 -0
  220. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/unit_test/main_tests/main_platform_test.py +0 -0
  221. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/unit_test/main_tests/main_requires_python_test.py +0 -0
  222. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/unit_test/option_prepare_test.py +0 -0
  223. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/unit_test/options_test.py +0 -0
  224. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/unit_test/options_toml_test.py +0 -0
  225. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/unit_test/projectfiles_test.py +0 -0
  226. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/unit_test/python_build_standalone_test.py +0 -0
  227. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/unit_test/test_sha256.py +0 -0
  228. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/unit_test/utils_test.py +0 -0
  229. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/unit_test/validate_schema_test.py +0 -0
  230. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/unit_test/venv_test.py +0 -0
  231. {cibuildwheel-4.2.0 → cibuildwheel-4.2.1}/unit_test/wheel_print_test.py +0 -0
@@ -28,7 +28,7 @@ jobs:
28
28
  python-version: "3.x"
29
29
  allow-prereleases: true
30
30
 
31
- - uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
31
+ - uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
32
32
 
33
33
  - name: Install tooling
34
34
  run: |
@@ -17,7 +17,7 @@ jobs:
17
17
  with:
18
18
  persist-credentials: false
19
19
 
20
- - uses: hynek/build-and-inspect-python-package@d44ca7d91762de7a7d5436ddae667c6da6d1c3df # v2.18.0
20
+ - uses: hynek/build-and-inspect-python-package@2abe76da66d0a6a4a227101f9348ee855797cfa5 # v3.0.1
21
21
 
22
22
  publish:
23
23
  needs: [dist]
@@ -37,10 +37,10 @@ jobs:
37
37
  path: dist
38
38
 
39
39
  - name: Generate artifact attestation for sdist and wheel
40
- uses: actions/attest-build-provenance@0f67c3f4856b2e3261c31976d6725780e5e4c373 # v4.1.1
40
+ uses: actions/attest@1e69f48acb82d1966a394da916b4c1698aa569d6 # v4.2.2
41
41
  with:
42
42
  subject-path: "dist/cibuildwheel-*"
43
43
 
44
- - uses: pypa/gh-action-pypi-publish@ba38be9e461d3875417946c167d0b5f3d385a247 # v1.14.1
44
+ - uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # v1.14.2
45
45
  with:
46
46
  attestations: true
@@ -49,8 +49,8 @@ jobs:
49
49
  - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
50
50
  with:
51
51
  python-version: "3.x"
52
- - uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
53
- - uses: j178/prek-action@5337cb91e0fa35a7ff31b9ca345126d8bbbcdf16 # v2.0.6
52
+ - uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
53
+ - uses: j178/prek-action@4e14d07f9231acabce116ccfca13b13dd9755ece # v3.0.0
54
54
  - name: PyLint checks
55
55
  run: uvx nox -s pylint -- --output-format=github
56
56
 
@@ -66,7 +66,7 @@ jobs:
66
66
  name: Install Python
67
67
  with:
68
68
  python-version: "3.x"
69
- - uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
69
+ - uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
70
70
  - name: Install dependencies
71
71
  run: uv sync --no-dev --group test
72
72
  - name: Generate a sample project
@@ -130,7 +130,7 @@ jobs:
130
130
  python-version: ${{ matrix.python_version }}
131
131
  allow-prereleases: true
132
132
 
133
- - uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
133
+ - uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
134
134
 
135
135
  - name: Free up disk space
136
136
  if: runner.os == 'Linux' && matrix.test_select != 'android'
@@ -260,7 +260,7 @@ jobs:
260
260
  - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
261
261
  with:
262
262
  python-version: "3.x"
263
- - uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
263
+ - uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
264
264
  - name: Install dependencies
265
265
  run: uv sync --no-dev --group test
266
266
  - name: Get qemu emulated architectures
@@ -285,7 +285,7 @@ jobs:
285
285
  - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
286
286
  with:
287
287
  python-version: "3.x"
288
- - uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
288
+ - uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
289
289
  - name: Install dependencies
290
290
  run: uv sync --no-dev --group test
291
291
 
@@ -310,7 +310,7 @@ jobs:
310
310
  name: Install Python 3.12
311
311
  with:
312
312
  python-version: '3.12'
313
- - uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
313
+ - uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
314
314
 
315
315
  - name: Install dependencies
316
316
  run: uv sync --no-dev --group test
@@ -41,7 +41,7 @@ jobs:
41
41
  with:
42
42
  persist-credentials: false
43
43
 
44
- - uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
44
+ - uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
45
45
  with:
46
46
  python-version: "3.14"
47
47
 
@@ -21,4 +21,4 @@ jobs:
21
21
  persist-credentials: false
22
22
 
23
23
  - name: Run zizmor 🌈
24
- uses: zizmorcore/zizmor-action@6fc4b006235f201fdab3722e17240ab420d580e5 # v0.6.1
24
+ uses: zizmorcore/zizmor-action@3dc1ecc9bcb9e94e9b2c709687979e1298497054 # v0.6.2
@@ -18,14 +18,14 @@ repos:
18
18
  exclude: ^cibuildwheel/resources/android/android.patch$
19
19
 
20
20
  - repo: https://github.com/astral-sh/ruff-pre-commit
21
- rev: c59bba8fb259db0fec2bbb77ad8ba51ea7341b56 # frozen: v0.15.20
21
+ rev: 39d9ac5938dadb73df0564a45f163e25ff9fa6e2 # frozen: v0.16.1
22
22
  hooks:
23
23
  - id: ruff-check
24
24
  args: ["--fix"]
25
25
  - id: ruff-format
26
26
 
27
27
  - repo: https://github.com/pre-commit/mirrors-mypy
28
- rev: d2823d321df3af8f878f7ee3414dc94d037145b9 # frozen: v2.1.0
28
+ rev: 41e691678310dfd3833f7ab4e180ddb014310356 # frozen: v2.3.0
29
29
  hooks:
30
30
  - id: mypy
31
31
  name: mypy 3.11 on cibuildwheel/
@@ -85,7 +85,7 @@ repos:
85
85
  exclude: "^cibuildwheel/resources/"
86
86
 
87
87
  - repo: https://github.com/codespell-project/codespell
88
- rev: 2ccb47ff45ad361a21071a7eedda4c37e6ae8c5a # frozen: v2.4.2
88
+ rev: 57b21406f092110c18776e39b0bda50d37c945c8 # frozen: v2.4.3
89
89
  hooks:
90
90
  - id: codespell
91
91
  args: ["-w"]
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.5
2
2
  Name: cibuildwheel
3
- Version: 4.2.0
3
+ Version: 4.2.1
4
4
  Summary: Build Python wheels on CI with minimal configuration.
5
5
  Project-URL: Changelog, https://github.com/pypa/cibuildwheel#changelog
6
6
  Project-URL: Documentation, https://cibuildwheel.pypa.io
@@ -134,7 +134,7 @@ jobs:
134
134
  - uses: actions/setup-python@v6
135
135
 
136
136
  - name: Install cibuildwheel
137
- run: python -m pip install cibuildwheel==4.2.0
137
+ run: python -m pip install cibuildwheel==4.2.1
138
138
 
139
139
  - name: Build wheels
140
140
  run: python -m cibuildwheel --output-dir wheelhouse
@@ -275,6 +275,15 @@ Changelog
275
275
 
276
276
  <!-- [[[cog from readme_changelog import mini_changelog; print(mini_changelog()) ]]] -->
277
277
 
278
+ ### v4.2.1
279
+
280
+ _5 September 2026_
281
+
282
+ - 🐛 Respects the NuGet package sources configured on the machine when installing CPython on Windows, instead of always falling back to nuget.org (#2966)
283
+ - 🐛 Fixes a `NameError` on Pyodide when an already-compatible wheel was reused, which made the test step fail (#2968)
284
+ - 🛠 Updates the Android Python versions, and the Android testbed's Gradle version, making it compatible with Java 25 (#2962)
285
+ - 🛠 Updates dependencies including CPython 3.15.0rc2 (#2965, #2970, #2976, #2981, #2985)
286
+
278
287
  ### v4.2.0
279
288
 
280
289
  _4 August 2026_
@@ -377,18 +386,7 @@ See @henryiii's [release post](https://iscinumpy.dev/post/cibuildwheel-4-0-0/) f
377
386
  - 📚 Links back to source in docs (#2806)
378
387
  - 📚 Removes outdated numpy info (#2855)
379
388
 
380
-
381
- ### v3.4.1
382
-
383
- _2 April 2026_
384
-
385
- - ⚠️ Building for the experimental CPython 3.13 free-threading variant is now deprecated. That functionality will be removed in the next minor release. The [`enable`](https://cibuildwheel.pypa.io/en/stable/options/#enable) option `cpython-freethreading` is therefore also deprecated. Builds specifying `enable = "all"` no longer select `cpython-freethreading`. CPython 3.14 free-threading support remains available without the `enable` flag. (#2787)
386
- - 🐛 iOS builds will no longer skip `repair-wheel-command` if it's defined in config (#2761)
387
- - 🐛 Fix bug causing `uv` to fail when environments define PYTHON_VERSION or UV_PYTHON, conflicting with our venvs (#2795)
388
- - ✨ cibuildwheel prints the selected build identifiers at the start of the build. (#2785)
389
- - 🔐 The GitHub Action now references other actions with a full SHA (#2744)
390
-
391
- <!-- [[[end]]] (sum: fEuiF50wvg) -->
389
+ <!-- [[[end]]] (sum: 0zxqpn7F3B) -->
392
390
 
393
391
  ---
394
392
 
@@ -97,7 +97,7 @@ jobs:
97
97
  - uses: actions/setup-python@v6
98
98
 
99
99
  - name: Install cibuildwheel
100
- run: python -m pip install cibuildwheel==4.2.0
100
+ run: python -m pip install cibuildwheel==4.2.1
101
101
 
102
102
  - name: Build wheels
103
103
  run: python -m cibuildwheel --output-dir wheelhouse
@@ -238,6 +238,15 @@ Changelog
238
238
 
239
239
  <!-- [[[cog from readme_changelog import mini_changelog; print(mini_changelog()) ]]] -->
240
240
 
241
+ ### v4.2.1
242
+
243
+ _5 September 2026_
244
+
245
+ - 🐛 Respects the NuGet package sources configured on the machine when installing CPython on Windows, instead of always falling back to nuget.org (#2966)
246
+ - 🐛 Fixes a `NameError` on Pyodide when an already-compatible wheel was reused, which made the test step fail (#2968)
247
+ - 🛠 Updates the Android Python versions, and the Android testbed's Gradle version, making it compatible with Java 25 (#2962)
248
+ - 🛠 Updates dependencies including CPython 3.15.0rc2 (#2965, #2970, #2976, #2981, #2985)
249
+
241
250
  ### v4.2.0
242
251
 
243
252
  _4 August 2026_
@@ -340,18 +349,7 @@ See @henryiii's [release post](https://iscinumpy.dev/post/cibuildwheel-4-0-0/) f
340
349
  - 📚 Links back to source in docs (#2806)
341
350
  - 📚 Removes outdated numpy info (#2855)
342
351
 
343
-
344
- ### v3.4.1
345
-
346
- _2 April 2026_
347
-
348
- - ⚠️ Building for the experimental CPython 3.13 free-threading variant is now deprecated. That functionality will be removed in the next minor release. The [`enable`](https://cibuildwheel.pypa.io/en/stable/options/#enable) option `cpython-freethreading` is therefore also deprecated. Builds specifying `enable = "all"` no longer select `cpython-freethreading`. CPython 3.14 free-threading support remains available without the `enable` flag. (#2787)
349
- - 🐛 iOS builds will no longer skip `repair-wheel-command` if it's defined in config (#2761)
350
- - 🐛 Fix bug causing `uv` to fail when environments define PYTHON_VERSION or UV_PYTHON, conflicting with our venvs (#2795)
351
- - ✨ cibuildwheel prints the selected build identifiers at the start of the build. (#2785)
352
- - 🔐 The GitHub Action now references other actions with a full SHA (#2744)
353
-
354
- <!-- [[[end]]] (sum: fEuiF50wvg) -->
352
+ <!-- [[[end]]] (sum: 0zxqpn7F3B) -->
355
353
 
356
354
  ---
357
355
 
@@ -318,6 +318,8 @@ for value in schema["properties"].values():
318
318
  case {"type": "string_table_array"}:
319
319
  del value["type"]
320
320
  value["oneOf"] = string_table_array
321
+ case _:
322
+ pass
321
323
 
322
324
  overrides = yaml.safe_load(
323
325
  """
@@ -49,7 +49,7 @@ def parse(contents: str) -> str | None:
49
49
  analyzer = Analyzer()
50
50
  analyzer.visit(tree)
51
51
  return analyzer.requires_python or ""
52
- except Exception:
52
+ except Exception: # noqa: BLE001
53
53
  return None
54
54
 
55
55
 
@@ -76,9 +76,9 @@ class WindowsVersions:
76
76
  response.raise_for_status()
77
77
  api_info = response.json()
78
78
 
79
- for resource in api_info["resources"]:
80
- if resource["@type"] == "PackageBaseAddress/3.0.0":
81
- endpoint = resource["@id"]
79
+ endpoint = next(
80
+ r["@id"] for r in api_info["resources"] if r["@type"] == "PackageBaseAddress/3.0.0"
81
+ )
82
82
 
83
83
  ARCH_DICT = {"32": "win32", "64": "win_amd64", "ARM64": "win_arm64"}
84
84
  PACKAGE_DICT = {"32": "pythonx86", "64": "python", "ARM64": "pythonarm64"}
@@ -0,0 +1 @@
1
+ __version__ = "4.2.1"
@@ -83,7 +83,7 @@ def github_api_request(path: str, *, max_retries: int = 3) -> dict[str, Any]:
83
83
 
84
84
  if retry_count == max_retries - 1:
85
85
  print(f"GitHub API request failed (Network error: {e}). Check network connection.")
86
- raise e
86
+ raise
87
87
 
88
88
  # Should never be reached but to keep the type checker happy
89
89
  msg = "Unexpected execution path in github_api_request"
@@ -546,9 +546,14 @@ class OCIContainer:
546
546
  else:
547
547
  output_io = sys.stdout.buffer
548
548
 
549
- while True:
549
+ return_code = None
550
+ while return_code is None:
550
551
  line = self.bash_stdout.readline()
551
552
 
553
+ if not line:
554
+ msg = "Failed to read the return code, the container shell has exited"
555
+ raise RuntimeError(msg)
556
+
552
557
  if line.endswith(bytes(end_of_message, encoding="utf8") + b"\n"):
553
558
  # fmt: off
554
559
  footer_offset = (
@@ -563,7 +568,6 @@ class OCIContainer:
563
568
  # add the last line to output, without the footer
564
569
  output_io.write(line[0:footer_offset])
565
570
  output_io.flush()
566
- break
567
571
  else:
568
572
  output_io.write(line)
569
573
  output_io.flush()
@@ -222,12 +222,6 @@ def setup_target_python(config: PythonConfiguration, build_path: Path) -> Path:
222
222
  python_dir = build_path / "python"
223
223
  python_dir.mkdir()
224
224
  shutil.unpack_archive(python_tgz, python_dir)
225
-
226
- # Work around https://github.com/python/cpython/issues/138800. This can be removed
227
- # once we've updated to Python versions that include the fix.
228
- pc_path = python_dir / f"prefix/lib/pkgconfig/python-{config.version}.pc"
229
- pc_path.write_text(pc_path.read_text().replace("$(BLDLIBRARY)", f"-lpython{config.version}"))
230
-
231
225
  return python_dir
232
226
 
233
227
 
@@ -540,7 +540,7 @@ def build(options: Options, tmp_path: Path) -> None:
540
540
  f"that is compatible with {config.identifier}. "
541
541
  "Skipping build step..."
542
542
  )
543
- test_wheel = compatible_wheel
543
+ repaired_wheel = compatible_wheel
544
544
  else:
545
545
  if build_options.before_build:
546
546
  log.step("Running before_build...")
@@ -632,8 +632,6 @@ def build(options: Options, tmp_path: Path) -> None:
632
632
 
633
633
  run_audit(tmp_dir=tmp_path, build_options=build_options, wheel=repaired_wheel)
634
634
 
635
- test_wheel = repaired_wheel
636
-
637
635
  if build_options.test_command and build_options.test_selector(config.identifier):
638
636
  if not config.is_simulator:
639
637
  log.step("Skipping tests on non-simulator SDK")
@@ -693,7 +691,7 @@ def build(options: Options, tmp_path: Path) -> None:
693
691
  platform_tag,
694
692
  "--target",
695
693
  testbed_path / "iOSTestbed" / "app_packages",
696
- f"{test_wheel}{build_options.test_extras}",
694
+ f"{repaired_wheel}{build_options.test_extras}",
697
695
  *build_options.test_requires,
698
696
  env=test_env,
699
697
  )
@@ -473,7 +473,7 @@ def build(options: Options, tmp_path: Path) -> None:
473
473
  print(
474
474
  f"\nFound previously built wheel {compatible_wheel.name}, that's compatible with {config.identifier}. Skipping build step..."
475
475
  )
476
- built_wheel = compatible_wheel
476
+ repaired_wheel = compatible_wheel
477
477
  else:
478
478
  if build_options.before_build:
479
479
  log.step("Running before_build...")
@@ -81,8 +81,6 @@ def get_nuget_args(
81
81
  package_name,
82
82
  "-Version",
83
83
  version,
84
- "-FallbackSource",
85
- "https://api.nuget.org/v3/index.json",
86
84
  "-OutputDirectory",
87
85
  str(output_directory),
88
86
  ]
@@ -60,6 +60,8 @@ class Analyzer(ast.NodeVisitor):
60
60
  case ast.keyword(arg="python_requires", value=ast.Constant(value=str() as version)):
61
61
  if unnested or name_main_unnested:
62
62
  self.requires_python = version
63
+ case _:
64
+ pass
63
65
 
64
66
 
65
67
  def setup_py_python_requires(content: str) -> str | None:
@@ -68,7 +70,7 @@ def setup_py_python_requires(content: str) -> str | None:
68
70
  analyzer = Analyzer()
69
71
  analyzer.visit(tree)
70
72
  return analyzer.requires_python or None
71
- except Exception: # pylint: disable=broad-except
73
+ except Exception: # noqa: BLE001
72
74
  return None
73
75
 
74
76
 
@@ -153,21 +153,21 @@ python_configurations = [
153
153
  { identifier = "cp312-macosx_x86_64", version = "3.12", url = "https://www.python.org/ftp/python/3.12.10/python-3.12.10-macos11.pkg", sha256 = "8373e58da4ea146b3eb1c1f9834f19a319440b6b679b06050b1f9ee3237aa8e4" },
154
154
  { identifier = "cp312-macosx_arm64", version = "3.12", url = "https://www.python.org/ftp/python/3.12.10/python-3.12.10-macos11.pkg", sha256 = "8373e58da4ea146b3eb1c1f9834f19a319440b6b679b06050b1f9ee3237aa8e4" },
155
155
  { identifier = "cp312-macosx_universal2", version = "3.12", url = "https://www.python.org/ftp/python/3.12.10/python-3.12.10-macos11.pkg", sha256 = "8373e58da4ea146b3eb1c1f9834f19a319440b6b679b06050b1f9ee3237aa8e4" },
156
- { identifier = "cp313-macosx_x86_64", version = "3.13", url = "https://www.python.org/ftp/python/3.13.14/python-3.13.14-macos11.pkg", sha256 = "8e58affb218c155a1dfdc27b291f817129669f8760e7a297adb2e4439ba5d2e8" },
157
- { identifier = "cp313-macosx_arm64", version = "3.13", url = "https://www.python.org/ftp/python/3.13.14/python-3.13.14-macos11.pkg", sha256 = "8e58affb218c155a1dfdc27b291f817129669f8760e7a297adb2e4439ba5d2e8" },
158
- { identifier = "cp313-macosx_universal2", version = "3.13", url = "https://www.python.org/ftp/python/3.13.14/python-3.13.14-macos11.pkg", sha256 = "8e58affb218c155a1dfdc27b291f817129669f8760e7a297adb2e4439ba5d2e8" },
159
- { identifier = "cp314-macosx_x86_64", version = "3.14", url = "https://www.python.org/ftp/python/3.14.6/python-3.14.6-macos11.pkg", sha256 = "d3c9fff52214847e4fab03e9eaf53dd2a8e51e3534aa0b61f201b749f86bef28" },
160
- { identifier = "cp314-macosx_arm64", version = "3.14", url = "https://www.python.org/ftp/python/3.14.6/python-3.14.6-macos11.pkg", sha256 = "d3c9fff52214847e4fab03e9eaf53dd2a8e51e3534aa0b61f201b749f86bef28" },
161
- { identifier = "cp314-macosx_universal2", version = "3.14", url = "https://www.python.org/ftp/python/3.14.6/python-3.14.6-macos11.pkg", sha256 = "d3c9fff52214847e4fab03e9eaf53dd2a8e51e3534aa0b61f201b749f86bef28" },
162
- { identifier = "cp314t-macosx_x86_64", version = "3.14", url = "https://www.python.org/ftp/python/3.14.6/python-3.14.6-macos11.pkg", sha256 = "d3c9fff52214847e4fab03e9eaf53dd2a8e51e3534aa0b61f201b749f86bef28" },
163
- { identifier = "cp314t-macosx_arm64", version = "3.14", url = "https://www.python.org/ftp/python/3.14.6/python-3.14.6-macos11.pkg", sha256 = "d3c9fff52214847e4fab03e9eaf53dd2a8e51e3534aa0b61f201b749f86bef28" },
164
- { identifier = "cp314t-macosx_universal2", version = "3.14", url = "https://www.python.org/ftp/python/3.14.6/python-3.14.6-macos11.pkg", sha256 = "d3c9fff52214847e4fab03e9eaf53dd2a8e51e3534aa0b61f201b749f86bef28" },
165
- { identifier = "cp315-macosx_x86_64", version = "3.15", url = "https://www.python.org/ftp/python/3.15.0/python-3.15.0rc1-macos11.pkg", sha256 = "57e0b1095f5dda52a8ff8b3b73140a52dfb3b76bdcf9e0284f2dbe10f7ee92ea" },
166
- { identifier = "cp315-macosx_arm64", version = "3.15", url = "https://www.python.org/ftp/python/3.15.0/python-3.15.0rc1-macos11.pkg", sha256 = "57e0b1095f5dda52a8ff8b3b73140a52dfb3b76bdcf9e0284f2dbe10f7ee92ea" },
167
- { identifier = "cp315-macosx_universal2", version = "3.15", url = "https://www.python.org/ftp/python/3.15.0/python-3.15.0rc1-macos11.pkg", sha256 = "57e0b1095f5dda52a8ff8b3b73140a52dfb3b76bdcf9e0284f2dbe10f7ee92ea" },
168
- { identifier = "cp315t-macosx_x86_64", version = "3.15", url = "https://www.python.org/ftp/python/3.15.0/python-3.15.0rc1-macos11.pkg", sha256 = "57e0b1095f5dda52a8ff8b3b73140a52dfb3b76bdcf9e0284f2dbe10f7ee92ea" },
169
- { identifier = "cp315t-macosx_arm64", version = "3.15", url = "https://www.python.org/ftp/python/3.15.0/python-3.15.0rc1-macos11.pkg", sha256 = "57e0b1095f5dda52a8ff8b3b73140a52dfb3b76bdcf9e0284f2dbe10f7ee92ea" },
170
- { identifier = "cp315t-macosx_universal2", version = "3.15", url = "https://www.python.org/ftp/python/3.15.0/python-3.15.0rc1-macos11.pkg", sha256 = "57e0b1095f5dda52a8ff8b3b73140a52dfb3b76bdcf9e0284f2dbe10f7ee92ea" },
156
+ { identifier = "cp313-macosx_x86_64", version = "3.13", url = "https://www.python.org/ftp/python/3.13.15/python-3.13.15-macos11.pkg", sha256 = "3b7eaf7f29825f796e8267024435540ddf1f17fc9a97ad58095daa7a75bfdcd3" },
157
+ { identifier = "cp313-macosx_arm64", version = "3.13", url = "https://www.python.org/ftp/python/3.13.15/python-3.13.15-macos11.pkg", sha256 = "3b7eaf7f29825f796e8267024435540ddf1f17fc9a97ad58095daa7a75bfdcd3" },
158
+ { identifier = "cp313-macosx_universal2", version = "3.13", url = "https://www.python.org/ftp/python/3.13.15/python-3.13.15-macos11.pkg", sha256 = "3b7eaf7f29825f796e8267024435540ddf1f17fc9a97ad58095daa7a75bfdcd3" },
159
+ { identifier = "cp314-macosx_x86_64", version = "3.14", url = "https://www.python.org/ftp/python/3.14.7/python-3.14.7-macos11.pkg", sha256 = "70c5239ad2d62925d2947e46921d0ddd3d35be3d2f0a2d50db33da507dbcb419" },
160
+ { identifier = "cp314-macosx_arm64", version = "3.14", url = "https://www.python.org/ftp/python/3.14.7/python-3.14.7-macos11.pkg", sha256 = "70c5239ad2d62925d2947e46921d0ddd3d35be3d2f0a2d50db33da507dbcb419" },
161
+ { identifier = "cp314-macosx_universal2", version = "3.14", url = "https://www.python.org/ftp/python/3.14.7/python-3.14.7-macos11.pkg", sha256 = "70c5239ad2d62925d2947e46921d0ddd3d35be3d2f0a2d50db33da507dbcb419" },
162
+ { identifier = "cp314t-macosx_x86_64", version = "3.14", url = "https://www.python.org/ftp/python/3.14.7/python-3.14.7-macos11.pkg", sha256 = "70c5239ad2d62925d2947e46921d0ddd3d35be3d2f0a2d50db33da507dbcb419" },
163
+ { identifier = "cp314t-macosx_arm64", version = "3.14", url = "https://www.python.org/ftp/python/3.14.7/python-3.14.7-macos11.pkg", sha256 = "70c5239ad2d62925d2947e46921d0ddd3d35be3d2f0a2d50db33da507dbcb419" },
164
+ { identifier = "cp314t-macosx_universal2", version = "3.14", url = "https://www.python.org/ftp/python/3.14.7/python-3.14.7-macos11.pkg", sha256 = "70c5239ad2d62925d2947e46921d0ddd3d35be3d2f0a2d50db33da507dbcb419" },
165
+ { identifier = "cp315-macosx_x86_64", version = "3.15", url = "https://www.python.org/ftp/python/3.15.0/python-3.15.0rc2-macos11.pkg", sha256 = "3d4e5812c66f7ea950ea91e3673f24373f4abae75333b4f705158e8d73483d6f" },
166
+ { identifier = "cp315-macosx_arm64", version = "3.15", url = "https://www.python.org/ftp/python/3.15.0/python-3.15.0rc2-macos11.pkg", sha256 = "3d4e5812c66f7ea950ea91e3673f24373f4abae75333b4f705158e8d73483d6f" },
167
+ { identifier = "cp315-macosx_universal2", version = "3.15", url = "https://www.python.org/ftp/python/3.15.0/python-3.15.0rc2-macos11.pkg", sha256 = "3d4e5812c66f7ea950ea91e3673f24373f4abae75333b4f705158e8d73483d6f" },
168
+ { identifier = "cp315t-macosx_x86_64", version = "3.15", url = "https://www.python.org/ftp/python/3.15.0/python-3.15.0rc2-macos11.pkg", sha256 = "3d4e5812c66f7ea950ea91e3673f24373f4abae75333b4f705158e8d73483d6f" },
169
+ { identifier = "cp315t-macosx_arm64", version = "3.15", url = "https://www.python.org/ftp/python/3.15.0/python-3.15.0rc2-macos11.pkg", sha256 = "3d4e5812c66f7ea950ea91e3673f24373f4abae75333b4f705158e8d73483d6f" },
170
+ { identifier = "cp315t-macosx_universal2", version = "3.15", url = "https://www.python.org/ftp/python/3.15.0/python-3.15.0rc2-macos11.pkg", sha256 = "3d4e5812c66f7ea950ea91e3673f24373f4abae75333b4f705158e8d73483d6f" },
171
171
  { identifier = "pp39-macosx_x86_64", version = "3.9", url = "https://downloads.python.org/pypy/pypy3.9-v7.3.16-macos_x86_64.tar.gz", sha256 = "7ea762a1b0af7545a74cd4260bb3fd2812813deffef2ef8d2fddd5e03fa63ef1" },
172
172
  { identifier = "pp39-macosx_arm64", version = "3.9", url = "https://downloads.python.org/pypy/pypy3.9-v7.3.16-macos_arm64.tar.gz", sha256 = "b09ce3a865c1c0f4e58c0ee4f70511f1b27dfc1f7148f4b6060cfdfd581c9e82" },
173
173
  { identifier = "pp310-macosx_x86_64", version = "3.10", url = "https://downloads.python.org/pypy/pypy3.10-v7.3.19-macos_x86_64.tar.gz", sha256 = "63f9d30cdd9e47cfe279be941975ac3d24e46c79756cd1d1bd2c551c27d8b32c" },
@@ -188,25 +188,25 @@ python_configurations = [
188
188
  { identifier = "cp311-win_amd64", version = "3.11.9" },
189
189
  { identifier = "cp312-win32", version = "3.12.10" },
190
190
  { identifier = "cp312-win_amd64", version = "3.12.10" },
191
- { identifier = "cp313-win32", version = "3.13.14" },
192
- { identifier = "cp313-win_amd64", version = "3.13.14" },
193
- { identifier = "cp314-win32", version = "3.14.6" },
194
- { identifier = "cp314t-win32", version = "3.14.6" },
195
- { identifier = "cp314-win_amd64", version = "3.14.6" },
196
- { identifier = "cp314t-win_amd64", version = "3.14.6" },
197
- { identifier = "cp315-win32", version = "3.15.0-rc1" },
198
- { identifier = "cp315t-win32", version = "3.15.0-rc1" },
199
- { identifier = "cp315-win_amd64", version = "3.15.0-rc1" },
200
- { identifier = "cp315t-win_amd64", version = "3.15.0-rc1" },
191
+ { identifier = "cp313-win32", version = "3.13.15" },
192
+ { identifier = "cp313-win_amd64", version = "3.13.15" },
193
+ { identifier = "cp314-win32", version = "3.14.7" },
194
+ { identifier = "cp314t-win32", version = "3.14.7" },
195
+ { identifier = "cp314-win_amd64", version = "3.14.7" },
196
+ { identifier = "cp314t-win_amd64", version = "3.14.7" },
197
+ { identifier = "cp315-win32", version = "3.15.0-rc2" },
198
+ { identifier = "cp315t-win32", version = "3.15.0-rc2" },
199
+ { identifier = "cp315-win_amd64", version = "3.15.0-rc2" },
200
+ { identifier = "cp315t-win_amd64", version = "3.15.0-rc2" },
201
201
  { identifier = "cp39-win_arm64", version = "3.9.10" },
202
202
  { identifier = "cp310-win_arm64", version = "3.10.11" },
203
203
  { identifier = "cp311-win_arm64", version = "3.11.9" },
204
204
  { identifier = "cp312-win_arm64", version = "3.12.10" },
205
- { identifier = "cp313-win_arm64", version = "3.13.14" },
206
- { identifier = "cp314-win_arm64", version = "3.14.6" },
207
- { identifier = "cp314t-win_arm64", version = "3.14.6" },
208
- { identifier = "cp315-win_arm64", version = "3.15.0-rc1" },
209
- { identifier = "cp315t-win_arm64", version = "3.15.0-rc1" },
205
+ { identifier = "cp313-win_arm64", version = "3.13.15" },
206
+ { identifier = "cp314-win_arm64", version = "3.14.7" },
207
+ { identifier = "cp314t-win_arm64", version = "3.14.7" },
208
+ { identifier = "cp315-win_arm64", version = "3.15.0-rc2" },
209
+ { identifier = "cp315t-win_arm64", version = "3.15.0-rc2" },
210
210
  { identifier = "pp39-win_amd64", version = "3.9", url = "https://downloads.python.org/pypy/pypy3.9-v7.3.16-win64.zip", sha256 = "06ec12a5e964dc0ad33e6f380185a4d295178dce6d6df512f508e7aee00a1323" },
211
211
  { identifier = "pp310-win_amd64", version = "3.10", url = "https://downloads.python.org/pypy/pypy3.10-v7.3.19-win64.zip", sha256 = "c0d07bba6c8fb4e5804f4a8b3f8ef07cc3d89f6ad1db42a45ffb9be60bbb7cc2" },
212
212
  { identifier = "pp311-win_amd64", version = "3.11", url = "https://downloads.python.org/pypy/pypy3.11-v7.3.23-win64.zip", sha256 = "948b8ea58dea5b9917210fe4afd242c788fbfaba1c3f1a25e696a404f703389a" },
@@ -217,29 +217,29 @@ python_configurations = [
217
217
  python_configurations = [
218
218
  { identifier = "cp312-pyodide_wasm32", version = "3.12", default_pyodide_version = "0.27.7", node_version = "v22", sha256 = "0c2e7db42efa5d1dac38b50f8b3d659a1e3885d0a233494831b8206281307d52" },
219
219
  { identifier = "cp313-pyodide_wasm32", version = "3.13", default_pyodide_version = "0.29.4", node_version = "v22", sha256 = "a29fc4a076408a18fc29eb4b280f80c6dddc95c19514c874c29e590d0931c02a" },
220
- { identifier = "cp314-pyodide_wasm32", version = "3.14", default_pyodide_version = "314.0.4", node_version = "v24", sha256 = "257ceae085eaa1423c2ab49794d7a72bf36ddad475d126fa929791b9a8ab7289" },
220
+ { identifier = "cp314-pyodide_wasm32", version = "3.14", default_pyodide_version = "314.0.6", node_version = "v24", sha256 = "8ae243c193895fd200e63df38975026ab41f693381067018a1b9d4db9c3783f7" },
221
221
  { identifier = "cp315-pyodide_wasm32", version = "3.15", default_pyodide_version = "315.0.0a2", node_version = "v24", sha256 = "d7c0d6ddf0fce807668d7413d0e0f20fbc7922128ba8361ed71d9cff048cb96a" },
222
222
  ]
223
223
 
224
224
  [android]
225
225
  python_configurations = [
226
- { identifier = "cp313-android_arm64_v8a", version = "3.13", url = "https://repo.maven.apache.org/maven2/com/chaquo/python/python/3.13.14/python-3.13.14-aarch64-linux-android.tar.gz", sha256 = "2541c4fa77b6543504c97fa90a71c745225b5800fe25bc8c73a6516b594d0cbc" },
227
- { identifier = "cp313-android_x86_64", version = "3.13", url = "https://repo.maven.apache.org/maven2/com/chaquo/python/python/3.13.14/python-3.13.14-x86_64-linux-android.tar.gz", sha256 = "9d96f7e077677b6651b2e756034ed41ab4479f5f8bf3168a814f458bc2ac137e" },
228
- { identifier = "cp314-android_arm64_v8a", version = "3.14", url = "https://www.python.org/ftp/python/3.14.6/python-3.14.6-aarch64-linux-android.tar.gz", sha256 = "38bbe77d3167b5cd554e03b1021324926f09f3825202b065951dd7638e9c37e5" },
229
- { identifier = "cp314-android_x86_64", version = "3.14", url = "https://www.python.org/ftp/python/3.14.6/python-3.14.6-x86_64-linux-android.tar.gz", sha256 = "e04eb26607627e68d148f89de793372f54a345c91b13628567f24abcdd3bfa3e" },
230
- { identifier = "cp315-android_arm64_v8a", version = "3.15", url = "https://www.python.org/ftp/python/3.15.0/python-3.15.0rc1-aarch64-linux-android.tar.gz", sha256 = "7d6fb28a69368841656f919a08141b0e3720837ac67987388037ee9d2a5c5492" },
231
- { identifier = "cp315-android_x86_64", version = "3.15", url = "https://www.python.org/ftp/python/3.15.0/python-3.15.0rc1-x86_64-linux-android.tar.gz", sha256 = "f048f5c60b538efc64e4c26399a0a21202ce430949d5b2c10369d624548a5dc3" },
226
+ { identifier = "cp313-android_arm64_v8a", version = "3.13", url = "https://repo.maven.apache.org/maven2/com/chaquo/python/python/3.13.15/python-3.13.15-aarch64-linux-android.tar.gz", sha256 = "a51d1e153f68f1c40f612a5431e9f79870d993da795173b3d27564e42b056271" },
227
+ { identifier = "cp313-android_x86_64", version = "3.13", url = "https://repo.maven.apache.org/maven2/com/chaquo/python/python/3.13.15/python-3.13.15-x86_64-linux-android.tar.gz", sha256 = "2096ecd6e180274ad1637cf140f7d6c2a160fe5ef9bfb47fd318e3d963f2d929" },
228
+ { identifier = "cp314-android_arm64_v8a", version = "3.14", url = "https://www.python.org/ftp/python/3.14.7/python-3.14.7-aarch64-linux-android.tar.gz", sha256 = "6d50cc3aa66e414a439594089bcdfb5f1264358155c70c1f00471c24cfb477fb" },
229
+ { identifier = "cp314-android_x86_64", version = "3.14", url = "https://www.python.org/ftp/python/3.14.7/python-3.14.7-x86_64-linux-android.tar.gz", sha256 = "2c16ce2359565cd8c24f86cfb75630768ba6607e732946b294b969797f583b60" },
230
+ { identifier = "cp315-android_arm64_v8a", version = "3.15", url = "https://www.python.org/ftp/python/3.15.0/python-3.15.0rc2-aarch64-linux-android.tar.gz", sha256 = "642f40c4f12b401f4d6eed32851dec2b8d003188af6fead70ea0dc0ee0fc00ae" },
231
+ { identifier = "cp315-android_x86_64", version = "3.15", url = "https://www.python.org/ftp/python/3.15.0/python-3.15.0rc2-x86_64-linux-android.tar.gz", sha256 = "a5a5f9296ba977f29025fc2391b053868a51457b229fffff1cc469f78af5bfc8" },
232
232
  ]
233
233
 
234
234
  [ios]
235
235
  python_configurations = [
236
- { identifier = "cp313-ios_arm64_iphoneos", version = "3.13", url = "https://github.com/beeware/Python-Apple-support/releases/download/3.13-b14/Python-3.13-iOS-support.b14.tar.gz", sha256 = "8b5cb76ef8d8a2946052479358eeec9d54b4496cb60920e175ec1489b5cf7963" },
237
- { identifier = "cp313-ios_x86_64_iphonesimulator", version = "3.13", url = "https://github.com/beeware/Python-Apple-support/releases/download/3.13-b14/Python-3.13-iOS-support.b14.tar.gz", sha256 = "8b5cb76ef8d8a2946052479358eeec9d54b4496cb60920e175ec1489b5cf7963" },
238
- { identifier = "cp313-ios_arm64_iphonesimulator", version = "3.13", url = "https://github.com/beeware/Python-Apple-support/releases/download/3.13-b14/Python-3.13-iOS-support.b14.tar.gz", sha256 = "8b5cb76ef8d8a2946052479358eeec9d54b4496cb60920e175ec1489b5cf7963" },
239
- { identifier = "cp314-ios_arm64_iphoneos", version = "3.14", url = "https://github.com/beeware/Python-Apple-support/releases/download/3.14-b10/Python-3.14-iOS-support.b10.tar.gz", sha256 = "200ef60eb67be0483ceb638daa9048f84f41a9a952707a5ad4c3198037c7b583" },
240
- { identifier = "cp314-ios_x86_64_iphonesimulator", version = "3.14", url = "https://github.com/beeware/Python-Apple-support/releases/download/3.14-b10/Python-3.14-iOS-support.b10.tar.gz", sha256 = "200ef60eb67be0483ceb638daa9048f84f41a9a952707a5ad4c3198037c7b583" },
241
- { identifier = "cp314-ios_arm64_iphonesimulator", version = "3.14", url = "https://github.com/beeware/Python-Apple-support/releases/download/3.14-b10/Python-3.14-iOS-support.b10.tar.gz", sha256 = "200ef60eb67be0483ceb638daa9048f84f41a9a952707a5ad4c3198037c7b583" },
242
- { identifier = "cp315-ios_arm64_iphoneos", version = "3.15", url = "https://www.python.org/ftp/python/3.15.0/python-3.15.0rc1-iOS-XCframework.tar.gz", sha256 = "178bf7bef9cd0f18b27cacb98b14332a5ba44c9427543ffb71f8809bc1f11c3c" },
243
- { identifier = "cp315-ios_x86_64_iphonesimulator", version = "3.15", url = "https://www.python.org/ftp/python/3.15.0/python-3.15.0rc1-iOS-XCframework.tar.gz", sha256 = "178bf7bef9cd0f18b27cacb98b14332a5ba44c9427543ffb71f8809bc1f11c3c" },
244
- { identifier = "cp315-ios_arm64_iphonesimulator", version = "3.15", url = "https://www.python.org/ftp/python/3.15.0/python-3.15.0rc1-iOS-XCframework.tar.gz", sha256 = "178bf7bef9cd0f18b27cacb98b14332a5ba44c9427543ffb71f8809bc1f11c3c" },
236
+ { identifier = "cp313-ios_arm64_iphoneos", version = "3.13", url = "https://github.com/beeware/Python-Apple-support/releases/download/3.13-b15/Python-3.13-iOS-support.b15.tar.gz", sha256 = "80175765a31babe43b0910395cf86ba4e8412adf1902b069d55b74d523ecc5d1" },
237
+ { identifier = "cp313-ios_x86_64_iphonesimulator", version = "3.13", url = "https://github.com/beeware/Python-Apple-support/releases/download/3.13-b15/Python-3.13-iOS-support.b15.tar.gz", sha256 = "80175765a31babe43b0910395cf86ba4e8412adf1902b069d55b74d523ecc5d1" },
238
+ { identifier = "cp313-ios_arm64_iphonesimulator", version = "3.13", url = "https://github.com/beeware/Python-Apple-support/releases/download/3.13-b15/Python-3.13-iOS-support.b15.tar.gz", sha256 = "80175765a31babe43b0910395cf86ba4e8412adf1902b069d55b74d523ecc5d1" },
239
+ { identifier = "cp314-ios_arm64_iphoneos", version = "3.14", url = "https://github.com/beeware/Python-Apple-support/releases/download/3.14-b11/Python-3.14-iOS-support.b11.tar.gz", sha256 = "b591f3301bd22a4f423c49c746cac9e55558b909fd14d6eb8327ccc62234ab7b" },
240
+ { identifier = "cp314-ios_x86_64_iphonesimulator", version = "3.14", url = "https://github.com/beeware/Python-Apple-support/releases/download/3.14-b11/Python-3.14-iOS-support.b11.tar.gz", sha256 = "b591f3301bd22a4f423c49c746cac9e55558b909fd14d6eb8327ccc62234ab7b" },
241
+ { identifier = "cp314-ios_arm64_iphonesimulator", version = "3.14", url = "https://github.com/beeware/Python-Apple-support/releases/download/3.14-b11/Python-3.14-iOS-support.b11.tar.gz", sha256 = "b591f3301bd22a4f423c49c746cac9e55558b909fd14d6eb8327ccc62234ab7b" },
242
+ { identifier = "cp315-ios_arm64_iphoneos", version = "3.15", url = "https://www.python.org/ftp/python/3.15.0/python-3.15.0rc2-iOS-XCframework.tar.gz", sha256 = "2496d92689da625cd349e856e17b3d540787f8d17806e21536e8d394d940adc0" },
243
+ { identifier = "cp315-ios_x86_64_iphonesimulator", version = "3.15", url = "https://www.python.org/ftp/python/3.15.0/python-3.15.0rc2-iOS-XCframework.tar.gz", sha256 = "2496d92689da625cd349e856e17b3d540787f8d17806e21536e8d394d940adc0" },
244
+ { identifier = "cp315-ios_arm64_iphonesimulator", version = "3.15", url = "https://www.python.org/ftp/python/3.15.0/python-3.15.0rc2-iOS-XCframework.tar.gz", sha256 = "2496d92689da625cd349e856e17b3d540787f8d17806e21536e8d394d940adc0" },
245
245
  ]
@@ -17,7 +17,7 @@ cattrs==26.1.0
17
17
  # pyodide-lock
18
18
  certifi==2026.7.22
19
19
  # via requests
20
- charset-normalizer==3.4.9
20
+ charset-normalizer==3.5.1
21
21
  # via requests
22
22
  click==8.1.8
23
23
  # via
@@ -26,11 +26,11 @@ click==8.1.8
26
26
  # pyodide-cli
27
27
  distlib==0.4.3
28
28
  # via virtualenv
29
- filelock==3.32.2
29
+ filelock==3.32.5
30
30
  # via
31
31
  # python-discovery
32
32
  # virtualenv
33
- idna==3.18
33
+ idna==3.19
34
34
  # via requests
35
35
  leb128==1.0.9
36
36
  # via auditwheel-emscripten
@@ -46,11 +46,11 @@ packaging==26.3
46
46
  # wheel
47
47
  pip==26.2.1
48
48
  # via -r .nox/update_constraints/tmp/constraints-pyodide.in
49
- platformdirs==4.11.0
49
+ platformdirs==4.11.7
50
50
  # via
51
51
  # pyodide-build
52
52
  # virtualenv
53
- pygments==2.20.0
53
+ pygments==2.21.0
54
54
  # via rich
55
55
  pyodide-build==0.39.0
56
56
  # via -r .nox/update_constraints/tmp/constraints-pyodide.in
@@ -58,11 +58,11 @@ pyodide-cli==0.5.0
58
58
  # via
59
59
  # auditwheel-emscripten
60
60
  # pyodide-build
61
- pyodide-lock==0.2.0
61
+ pyodide-lock==0.2.1
62
62
  # via pyodide-build
63
63
  pyproject-hooks==1.2.0
64
64
  # via build
65
- python-discovery==1.5.1
65
+ python-discovery==1.6.0
66
66
  # via virtualenv
67
67
  requests==2.34.2
68
68
  # via pyodide-build
@@ -76,11 +76,11 @@ typing-extensions==4.16.0
76
76
  # via cattrs
77
77
  urllib3==2.7.0
78
78
  # via requests
79
- virtualenv==21.7.1
79
+ virtualenv==21.7.8
80
80
  # via
81
81
  # build
82
82
  # pyodide-build
83
- wheel==0.47.0
83
+ wheel==0.48.0
84
84
  # via
85
85
  # auditwheel-emscripten
86
86
  # pyodide-build