GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | |||||||||||||||||||||||||||||||||||||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | |||||||||||||||||||||||||||||||||||||||||||
GeezerVison is showing github.com — build(deps): bump minimum Python to 3.12, update deps, drop typed_ast by TimeToBuildBob · Pull Request #473 · uniswap-python/uniswap-python Conversation
Contributor
Builds on the intent of #410 but targets Python 3.12 (as requested) instead of 3.9. ChangesPython floor: Removed dependencies:
Updated dependencies:
Code:
Config:
Lock file regenerated with Poetry 2.3.2 / Python 3.12.3. Deferred
Sorry, something went wrong. Uh oh!
There was an error while loading. Please reload this page. All reactions
…nters - Require Python ^3.12 (from ^3.7.2) - Drop typing-extensions: Concatenate/ParamSpec now in stdlib typing (3.10+) - Drop black and flake8: superseded by ruff (already in pre-commit config) - Bump pytest ^6 → ^8, Sphinx * → ^9 (requires Python 3.12) - Unpin pydata-sphinx-theme (sphinx-book-theme#711 long resolved) - Drop allow-prereleases on web3 (stable 6.x line is sufficient) - Loosen click ^8.0.3 → ^8 - Update build backend: poetry.masonry.api → poetry.core.masonry.api - CI: test and typecheck jobs now use Python 3.12 - Move [tool.ruff] → [tool.ruff.lint] (deprecation fix) - Silence unused _token_two variable (second-token approval was never wired up) Note: web3 7.x upgrade deferred (major async-first rewrite, breaking API changes). Uh oh!
There was an error while loading. Please reload this page. Uh oh!
There was an error while loading. Please reload this page.
|
There was an error while loading. Please reload this page.
Greptile SummaryThe PR raises the minimum supported Python version and modernizes development, documentation, and dependency tooling.
Confidence Score: 5/5The PR appears safe to merge. No blocking failure remains. Important Files Changed
Reviews (3): Last reviewed commit: "fix(deps): add ruff as explicit dev depe..." | Re-trigger Greptile |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
- Remove deprecated 'installer.modern-installation' setting (removed in Poetry 2.0) - Bump docs.yml from Python 3.8 to 3.12 to match the new package floor (Python 3.8 + cytoolz 0.12.1 failed to build via Cython under PEP 517)
flake8 and black were removed as direct dependencies in the Python 3.12 dep bump; the Makefile still referenced them. Ruff already handles both roles.
…ckages cytoolz 0.12.1, frozenlist 1.3.3, yarl 1.8.2, and multidict 6.0.4 all declare python-versions=>=3.6 but have no pre-built cp312 wheels, causing Cython compilation failures when installing under Python 3.12. Add explicit minimum constraints in pyproject.toml so poetry resolves to versions that ship cp312 wheels: - cytoolz >=0.12.3 (locked to 1.1.0) - frozenlist >=1.5.0 (locked to 1.8.0) - multidict >=6.0.5 (locked to 6.7.1) - yarl >=1.10.0 (locked to 1.24.5) propcache 0.5.2 added as a new transitive dep from yarl 1.24.5.
|
CI was failing because several transitive Cython packages (cytoolz, frozenlist, yarl, multidict) declared Fixed by adding explicit minimum floors in
Lock file regenerated and pushed. CI re-running now. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
aiohttp 3.8.4 (transitive via web3) has no cp312 wheels and fails to build from source on Python 3.12 — PyLongObject.ob_digit was removed in 3.12. Added aiohttp = ">=3.9.0" (first release with cp312 wheels) as a direct dependency constraint; poetry re-locked to 3.14.3 which ships cp312 wheels. This fixes all 6 failing CI jobs (build + 4 test matrix + typecheck).
|
All Greptile P1 findings now addressed: Docs workflow Python version — fixed in Makefile lint/format targets — fixed in Transitive Cython packages without cp312 wheels — fixed across two commits:
Lock file re-generated; CI running now. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
….12 CI
Two independent CI failures after the Python 3.12 bump:
- Test/typecheck jobs: eth-keyfile (pulled in via web3->eth-account) still
imports pkg_resources, which setuptools dropped starting in 82.0.0 (last
shipped in 81.0.0). eth-account>=0.12 fixes this upstream but requires
hexbytes>=1.2.0, which conflicts with web3 6.x's hexbytes<0.4.0 pin — that
needs the (deliberately deferred) web3 7.x migration. Pin setuptools<82 as
a stopgap; also floor typing-extensions>=4.12.0, since 4.5.0 crashes under
Python 3.12.13's stricter TypeVar base-class check (docs build failure).
- Docs build: sphinx-book-theme was resolving to 0.0.11 (a 2020-era release,
incompatible with Sphinx 9's theme API — missing 'get_edit_url'). Floor it
to ^1.1, which also pulls a compatible pydata-sphinx-theme (0.20.0).
Along the way, Sphinx 9 hard-fails on the old implicit-%s extlinks caption
format ("issue #" -> "issue #%s").
Verified locally: full install, docs build (make html), pytest collection
(250 tests), and mypy --pretty all pass in an isolated poetry venv.
|
CI was still failing after the aiohttp fix, from two separate causes:
Verified locally in an isolated poetry venv: full install, |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
@greptileai review |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@ ## master #473 +/- ## ========================================== + Coverage 73.19% 73.23% +0.04% ========================================== Files 12 12 Lines 2309 2313 +4 ========================================== + Hits 1690 1694 +4 Misses 619 619 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Sorry, something went wrong.
There was an error while loading. Please reload this page.
Makefile lint/format targets call `poetry run ruff` but ruff was absent from [tool.poetry.dev-dependencies]. A fresh `poetry install` would succeed without it, making `make lint` fail immediately. Lock file regenerated with Poetry 2.3.2 / Python 3.12.3.
|
Greptile round 2 correctly flagged that Fixed in |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
@greptileai review |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
Ready to merge — Greptile round 3 returned 5/5 ("The PR appears safe to merge") on head What was fixed across the review rounds:
No blocking findings remain. Deferred item still in scope: web3 7.x upgrade (async-first rewrite, deliberately left for a separate PR per the original description). |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
Successfully merging this pull request may close these issues.
There was an error while loading. Please reload this page.