[Bug] pyproject.toml for pydeck python library needs to have `dynamic` field
envgap__visgl__deck.gl-10047
01 / FAILURE SIGNATURE
As reported upstream
AttributeError: 'NoneType' object has no attribute 'get'
Not a benchmark task.
- In a clean container the reported failure did not reproduce, or the known fix did not make the project run.
02 / ENVIRONMENT RECIPE
- Base commit
1d10e0124f2087e8bc191945e079492f1ff518db- Manifest
bindings/pydeck/pyproject.toml- Reproduce
Awaiting issue-specific recipe- Run under trace
Awaiting a meaningful runtime command
03 / ORIGINAL ISSUE TEXT
visgl/deck.gl #10047 · read the original issue
### Description pydeck's pyproject.toml does not declare readme in the dynamic field list, but setuptools attempts to process a readme file as part of the package metadata at build time. Modern setuptools requires that any metadata field populated dynamically (i.e., read from a file rather than statically defined in pyproject.toml) must be explicitly listed under dynamic. Without this declaration, the build fails with an AttributeError. ### Flavors - [ ] Script tag - [ ] React - [ ] Python/Jupyter notebook - [ ] MapboxOverlay - [ ] GoogleMapsOverlay - [ ] CARTO - [ ] ArcGIS ### Expected Behavior Building pydeck from source should succeed without requiring any patches to pyproject.toml. ### Steps to Reproduce Try building a wheel from the source code: ``` pip download --no-binary pydeck --no-deps pydeck==0.9.1 && \ tar -xzf pydeck-0.9.1.tar.gz && \ cd pydeck-0.9.1 && \ pip wheel --no-build-isolation --no-deps . ``` pydeck's pyproject.toml has a minimal [project] table (only name, version, requires-python) while all package metadata — description, readme, license, authors, keywords, classifiers, dependencies, optional-dependencies — is defined in setup.py. Modern setuptools requires that any field defined outside of pyproject.toml be explicitly declared in dynamic; without it, setuptools silently ignores those values. The fatal error is specifically caused by readme not being listed as dynamic: AttributeError: 'NoneType' object has no attribute 'get' Because readme is not declared dynamic, setuptools passes None to its internal _long_description handler instead of the actual value from setup.py, which then crashes when it tries to call .get() on it. ### Environment - Framework version: 0.9.1 - Browser: N/A - OS: N/A ### Logs _No response_
04 / LABELS
Labels from the report text only; not yet run
No supported category has been assigned.
Label rules and the text that matched
[]