-
-
Notifications
You must be signed in to change notification settings - Fork 37
Support SETUPPY_FORCE_PURE in tests #79
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Support testing without the C extension if SETUPPY_FORCE_PURE is set. This makes the test suite behavior consistent with setup.py behavior.
Ping. |
@mgorny Ooops I missed this. Why do I need this? AFAIK there's no place where I set SETUPPY_FORCE_PURE for tests. |
Downstreams use |
I just want to understand why anyone would repackage this as pure-python in a downstream. Which distros? Some details? |
Gentoo. We give our users an option to disable all C extensions, if they wish. However, in my case the primary use is comparing behavior of the same module on PyPy (where there is no C extension ever) and CPython. By building the package on CPython without the extension modules, I have fewer differences to be concerned about, and therefore it is easier to determine whether the particular problem is specific to PyPy or perhaps to the use of pure Python code paths. |
Thank you! |
Bumps the pip group with 6 updates: | Package | From | To | | --- | --- | --- | | [boto3](https://github.com/boto/boto3) | `1.40.11` | `1.40.16` | | [boto3-stubs](https://github.com/youtype/mypy_boto3_builder) | `1.40.11` | `1.40.16` | | [flask](https://github.com/pallets/flask) | `3.1.1` | `3.1.2` | | [lazy-object-proxy](https://github.com/ionelmc/python-lazy-object-proxy) | `1.11.0` | `1.12.0` | | [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` | | [botocore](https://github.com/boto/botocore) | `1.40.11` | `1.40.16` | Updates `boto3` from 1.40.11 to 1.40.16 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/boto/boto3/commit/fe7457e86d52e19c71e3196d3073fe1ab1a1ee27"><code>fe7457e</code></a> Merge branch 'release-1.40.16'</li> <li><a href="https://github.com/boto/boto3/commit/393025907df9c9d28da5b1fdc260e349ce253117"><code>3930259</code></a> Bumping version to 1.40.16</li> <li><a href="https://github.com/boto/boto3/commit/0954e8f28f228ca4fe463e636eb1f15a8f964498"><code>0954e8f</code></a> Add changelog entries from botocore</li> <li><a href="https://github.com/boto/boto3/commit/8836e3333947dd90b52f10a4f05ec5bb7f4bb9e0"><code>8836e33</code></a> Merge branch 'release-1.40.15'</li> <li><a href="https://github.com/boto/boto3/commit/e1dfc5f234c892770f40fc7d73ae7333ba11f4fb"><code>e1dfc5f</code></a> Merge branch 'release-1.40.15' into develop</li> <li><a href="https://github.com/boto/boto3/commit/14dbc58bdfdec9bfb37fb8f27ca084fa7c17c0cd"><code>14dbc58</code></a> Bumping version to 1.40.15</li> <li><a href="https://github.com/boto/boto3/commit/679ec9af44e67d6747883f37541427be8854fa94"><code>679ec9a</code></a> Add changelog entries from botocore</li> <li><a href="https://github.com/boto/boto3/commit/9e5b34a20b18c3fa2439ea690b63ed57190ab4c1"><code>9e5b34a</code></a> Merge branch 'release-1.40.14'</li> <li><a href="https://github.com/boto/boto3/commit/e4939704424850e05ebe63091cfa9b6544877f8b"><code>e493970</code></a> Merge branch 'release-1.40.14' into develop</li> <li><a href="https://github.com/boto/boto3/commit/07e80dd737178be5be0cbdc9225112df4fa7138e"><code>07e80dd</code></a> Bumping version to 1.40.14</li> <li>Additional commits viewable in <a href="https://github.com/boto/boto3/compare/1.40.11...1.40.16">compare view</a></li> </ul> </details> <br /> Updates `boto3-stubs` from 1.40.11 to 1.40.16 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/youtype/mypy_boto3_builder/releases">boto3-stubs's releases</a>.</em></p> <blockquote> <h2>8.8.0 - Python 3.8 runtime is back</h2> <h3>Changed</h3> <ul> <li><code>[services]</code> <code>install_requires</code> section is calculated based on dependencies in use, so <code>typing-extensions</code> version is set properly</li> <li><code>[all]</code> Replaced <code>typing</code> imports with <code>collections.abc</code> with a fallback to <code>typing</code> for Python <3.9</li> <li><code>[all]</code> Added aliases for <code>builtins.list</code>, <code>builtins.set</code>, <code>builtins.dict</code>, and <code>builtins.type</code>, so Python 3.8 runtime should work as expected again (reported by <a href="https://github.com/YHallouard"><code>@YHallouard</code></a> in <a href="https://redirect.github.com/youtype/mypy_boto3_builder/issues/340">#340</a> and <a href="https://github.com/Omri-Ben-Yair"><code>@Omri-Ben-Yair</code></a> in <a href="https://redirect.github.com/youtype/mypy_boto3_builder/issues/336">#336</a>)</li> <li><code>[all]</code> Unions use the same type annotations as the rest of the structures due to proper fallbacks</li> </ul> <h3>Fixed</h3> <ul> <li><code>[services]</code> Universal input/output shapes were not replaced properly in service subresources</li> <li><code>[docs]</code> Simplified doc links rendering for services</li> <li><code>[services]</code> Cleaned up unnecessary imports in <code>client.pyi</code></li> <li><code>[builder]</code> Import records with fallback are always rendered</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/youtype/mypy_boto3_builder/commits">compare view</a></li> </ul> </details> <br /> Updates `flask` from 3.1.1 to 3.1.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pallets/flask/releases">flask's releases</a>.</em></p> <blockquote> <h2>3.1.2</h2> <p>This is the Flask 3.1.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.</p> <p>PyPI: <a href="https://pypi.org/project/Flask/3.1.2/">https://pypi.org/project/Flask/3.1.2/</a> Changes: <a href="https://flask.palletsprojects.com/page/changes/#version-3-1-2">https://flask.palletsprojects.com/page/changes/#version-3-1-2</a> Milestone: <a href="https://github.com/pallets/flask/milestone/38?closed=1">https://github.com/pallets/flask/milestone/38?closed=1</a></p> <ul> <li><code>stream_with_context</code> does not fail inside async views. <a href="https://redirect.github.com/pallets/flask/issues/5774">#5774</a></li> <li>When using <code>follow_redirects</code> in the test client, the final state of <code>session</code> is correct. <a href="https://redirect.github.com/pallets/flask/issues/5786">#5786</a></li> <li>Relax type hint for passing bytes IO to <code>send_file</code>. <a href="https://redirect.github.com/pallets/flask/issues/5776">#5776</a></li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pallets/flask/blob/main/CHANGES.rst">flask's changelog</a>.</em></p> <blockquote> <h2>Version 3.1.2</h2> <p>Released 2025-08-19</p> <ul> <li><code>stream_with_context</code> does not fail inside async views. :issue:<code>5774</code></li> <li>When using <code>follow_redirects</code> in the test client, the final state of <code>session</code> is correct. :issue:<code>5786</code></li> <li>Relax type hint for passing bytes IO to <code>send_file</code>. :issue:<code>5776</code></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pallets/flask/commit/2c1b30d0503cfb064f1cb252e6614a06915a362a"><code>2c1b30d</code></a> release version 3.1.2</li> <li><a href="https://github.com/pallets/flask/commit/1292419ddfc6a14fc7f85b5ed7efcc2d215f1ad3"><code>1292419</code></a> Update GitHub Actions workflow for artifact handling (<a href="https://redirect.github.com/pallets/flask/issues/5795">#5795</a>)</li> <li><a href="https://github.com/pallets/flask/commit/4dd52ca9c768c9b6d04180f0547d6f4b6e34f211"><code>4dd52ca</code></a> Update GitHub Actions workflow for artifact handling</li> <li><a href="https://github.com/pallets/flask/commit/55c62556571ee46a94da174643b50ece06edead4"><code>55c6255</code></a> update dev dependencies</li> <li><a href="https://github.com/pallets/flask/commit/d8259eb11900285af9b80b0fa47f841174c054e3"><code>d8259eb</code></a> use Jinja name consistently</li> <li><a href="https://github.com/pallets/flask/commit/38b4c1e19b50494cfcdc9332899e09b7fed34979"><code>38b4c1e</code></a> refactor stream_with_context for async views (<a href="https://redirect.github.com/pallets/flask/issues/5799">#5799</a>)</li> <li><a href="https://github.com/pallets/flask/commit/9822a0351574790cb66c652fcc396ad7aa2b09d8"><code>9822a03</code></a> refactor stream_with_context for async views</li> <li><a href="https://github.com/pallets/flask/commit/49b7e7bc8fb69d605719991d1c0a99fcee689053"><code>49b7e7b</code></a> security docs for TRUSTED_HOSTS (<a href="https://redirect.github.com/pallets/flask/issues/5798">#5798</a>)</li> <li><a href="https://github.com/pallets/flask/commit/b228ca3d87745b746d904a2108429617a814ffda"><code>b228ca3</code></a> security docs for TRUSTED_HOSTS</li> <li><a href="https://github.com/pallets/flask/commit/ff64079a516c269f171ababf3d92b86886a62ffd"><code>ff64079</code></a> update flask-talisman link</li> <li>Additional commits viewable in <a href="https://github.com/pallets/flask/compare/3.1.1...3.1.2">compare view</a></li> </ul> </details> <br /> Updates `lazy-object-proxy` from 1.11.0 to 1.12.0 <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/ionelmc/python-lazy-object-proxy/blob/master/CHANGELOG.rst">lazy-object-proxy's changelog</a>.</em></p> <blockquote> <h2>1.12.0 (2025-08-22)</h2> <ul> <li>Fixed testing issues when C extensions are not desired. Contributed by Michał Górny in <code>[#79](ionelmc/python-lazy-object-proxy#79) <https://github.com/ionelmc/python-lazy-object-proxy/pull/79></code>_.</li> <li>Added support for GraalPy. Contributed by Michael Šimáček in <code>[#87](ionelmc/python-lazy-object-proxy#87) <https://github.com/ionelmc/python-lazy-object-proxy/pull/87></code>_.</li> <li>Fixed testing issues on Python 3.14. Contributed by Michał Górny in <code>[#88](ionelmc/python-lazy-object-proxy#88) <https://github.com/ionelmc/python-lazy-object-proxy/pull/88></code>_.</li> <li>Modernized packaging to have metadata in <code>pyproject.toml</code>.</li> <li>Added Python 3.14 wheels.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/ionelmc/python-lazy-object-proxy/commit/1b694980d50cd483a2d5159ac7f4d63c894ec630"><code>1b69498</code></a> Bump version: 1.11.0 → 1.12.0</li> <li><a href="https://github.com/ionelmc/python-lazy-object-proxy/commit/bea77620523cf1d7684d69efc55809041120f8ec"><code>bea7762</code></a> Update changelog.</li> <li><a href="https://github.com/ionelmc/python-lazy-object-proxy/commit/9faf21f5a9ef3d317d746e42b21aabd817597ebe"><code>9faf21f</code></a> Just include all the readme for now.</li> <li><a href="https://github.com/ionelmc/python-lazy-object-proxy/commit/93f108ee5e43b7c118954948d8be0a57e9a80f92"><code>93f108e</code></a> Add some constraints in here too (hopefully pyproject license parsing issues ...</li> <li><a href="https://github.com/ionelmc/python-lazy-object-proxy/commit/c6f1e42498835ac853286c1b7961f0153f37eb8a"><code>c6f1e42</code></a> Fix action.</li> <li><a href="https://github.com/ionelmc/python-lazy-object-proxy/commit/79c9023c0a9712da9e848518849fdbe5a2d202e3"><code>79c9023</code></a> Bump CI deps.</li> <li><a href="https://github.com/ionelmc/python-lazy-object-proxy/commit/7a12e795fdd6cad9e5d7afb7fa009b5521d9d844"><code>7a12e79</code></a> Remove cover envs for mostly PITA platforms.</li> <li><a href="https://github.com/ionelmc/python-lazy-object-proxy/commit/0582c4147e24f070ea26a89108a6181ce1918268"><code>0582c41</code></a> Require build deps in env (to allow building inplace ext properly).</li> <li><a href="https://github.com/ionelmc/python-lazy-object-proxy/commit/b53add7a0f0dd38c9751a77bc4276d8d000c7946"><code>b53add7</code></a> Try require newer setuptools.</li> <li><a href="https://github.com/ionelmc/python-lazy-object-proxy/commit/ec64b9e15bba075185890afd45dbccc7d7bc7f42"><code>ec64b9e</code></a> Let tox figure out graal bin.</li> <li>Additional commits viewable in <a href="https://github.com/ionelmc/python-lazy-object-proxy/compare/v1.11.0...v1.12.0">compare view</a></li> </ul> </details> <br /> Updates `requests` from 2.32.4 to 2.32.5 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/psf/requests/releases">requests's releases</a>.</em></p> <blockquote> <h2>v2.32.5</h2> <h2>2.32.5 (2025-08-18)</h2> <p><strong>Bugfixes</strong></p> <ul> <li>The SSLContext caching feature originally introduced in 2.32.0 has created a new class of issues in Requests that have had negative impact across a number of use cases. The Requests team has decided to revert this feature as long term maintenance of it is proving to be unsustainable in its current iteration.</li> </ul> <p><strong>Deprecations</strong></p> <ul> <li>Added support for Python 3.14.</li> <li>Dropped support for Python 3.8 following its end of support.</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/psf/requests/blob/main/HISTORY.md">requests's changelog</a>.</em></p> <blockquote> <h2>2.32.5 (2025-08-18)</h2> <p><strong>Bugfixes</strong></p> <ul> <li>The SSLContext caching feature originally introduced in 2.32.0 has created a new class of issues in Requests that have had negative impact across a number of use cases. The Requests team has decided to revert this feature as long term maintenance of it is proving to be unsustainable in its current iteration.</li> </ul> <p><strong>Deprecations</strong></p> <ul> <li>Added support for Python 3.14.</li> <li>Dropped support for Python 3.8 following its end of support.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/psf/requests/commit/b25c87d7cb8d6a18a37fa12442b5f883f9e41741"><code>b25c87d</code></a> v2.32.5</li> <li><a href="https://github.com/psf/requests/commit/131e506079d97606e4214cc4d87b780ac478de7a"><code>131e506</code></a> Merge pull request <a href="https://redirect.github.com/psf/requests/issues/7010">#7010</a> from psf/dependabot/github_actions/actions/checkout-...</li> <li><a href="https://github.com/psf/requests/commit/b336cb2bc616a63a93c6470c558fc1f576b77f90"><code>b336cb2</code></a> Bump actions/checkout from 4.2.0 to 5.0.0</li> <li><a href="https://github.com/psf/requests/commit/46e939b5525d9c72b677340985582b04b128478a"><code>46e939b</code></a> Update publish workflow to use <code>artifact-id</code> instead of <code>name</code></li> <li><a href="https://github.com/psf/requests/commit/4b9c546aa3f35fca6ca24945376fe7462bb007c4"><code>4b9c546</code></a> Merge pull request <a href="https://redirect.github.com/psf/requests/issues/6999">#6999</a> from psf/dependabot/github_actions/step-security/har...</li> <li><a href="https://github.com/psf/requests/commit/7618dbef01d333f23ba4b9c4d97397b06dd89cb6"><code>7618dbe</code></a> Bump step-security/harden-runner from 2.12.0 to 2.13.0</li> <li><a href="https://github.com/psf/requests/commit/2edca11103c1c27dd8b572dab544b7f48cf3b446"><code>2edca11</code></a> Add support for Python 3.14 and drop support for Python 3.8 (<a href="https://redirect.github.com/psf/requests/issues/6993">#6993</a>)</li> <li><a href="https://github.com/psf/requests/commit/fec96cd5976ad763e45bac9a033d62cca1877a00"><code>fec96cd</code></a> Update Makefile rules (<a href="https://redirect.github.com/psf/requests/issues/6996">#6996</a>)</li> <li><a href="https://github.com/psf/requests/commit/d58d8aa2f45c3575268d6d5250745ef69f9cf8b7"><code>d58d8aa</code></a> docs: clarify timeout parameter uses seconds in Session.request (<a href="https://redirect.github.com/psf/requests/issues/6994">#6994</a>)</li> <li><a href="https://github.com/psf/requests/commit/91a3eabd3dcc4d7f36dd8249e4777a90ef9b4305"><code>91a3eab</code></a> Bump github/codeql-action from 3.28.5 to 3.29.0</li> <li>Additional commits viewable in <a href="https://github.com/psf/requests/compare/v2.32.4...v2.32.5">compare view</a></li> </ul> </details> <br /> Updates `botocore` from 1.40.11 to 1.40.16 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/boto/botocore/commit/56a479a3656697e1dfc00e83cfd77631dee5fe8e"><code>56a479a</code></a> Merge branch 'release-1.40.16'</li> <li><a href="https://github.com/boto/botocore/commit/7aa26bb438c4d50953e701b7d25cc6b63015051b"><code>7aa26bb</code></a> Bumping version to 1.40.16</li> <li><a href="https://github.com/boto/botocore/commit/cb07fe673070c453ece194edabe4511db47ccaeb"><code>cb07fe6</code></a> Update to latest models</li> <li><a href="https://github.com/boto/botocore/commit/2d3b8f931ebb8ac73ed0ef65f768a9100e815edb"><code>2d3b8f9</code></a> Merge branch 'release-1.40.15'</li> <li><a href="https://github.com/boto/botocore/commit/b341c8a4f798247e29dc2e226d1e9001a81c7cfa"><code>b341c8a</code></a> Merge branch 'release-1.40.15' into develop</li> <li><a href="https://github.com/boto/botocore/commit/8bf6d3bc9d5b1f7b05459caae508737494815c8f"><code>8bf6d3b</code></a> Bumping version to 1.40.15</li> <li><a href="https://github.com/boto/botocore/commit/ca2ef01a8b4c2a4bace8d8fcaf508d199e2f8f1f"><code>ca2ef01</code></a> Update partitions file</li> <li><a href="https://github.com/boto/botocore/commit/adc93120be804adef40ad5437c9e6d10fda00a46"><code>adc9312</code></a> Update endpoints model</li> <li><a href="https://github.com/boto/botocore/commit/3b27a77a78f6e8f9015ce52ba3784f0a225be1e2"><code>3b27a77</code></a> Update to latest models</li> <li><a href="https://github.com/boto/botocore/commit/d174054a9ccf07486d15b07cfa906608a8971fb5"><code>d174054</code></a> Fix use_ssl parameter ignored when custom HTTPS endpoint_url provided (<a href="https://redirect.github.com/boto/botocore/issues/3542">#3542</a>)</li> <li>Additional commits viewable in <a href="https://github.com/boto/botocore/compare/1.40.11...1.40.16">compare view</a></li> </ul> </details> <br /> Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details> --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Charles OuGuo <[email protected]>
Support testing without the C extension if SETUPPY_FORCE_PURE is set. This makes the test suite behavior consistent with setup.py behavior.