Skip to content

fix: updates pydeck pyproject.toml to include dynamic field#10048

Open
Lanceypantsy wants to merge 3 commits intovisgl:masterfrom
Lanceypantsy:pydeck-update-dynamic-pyproject
Open

fix: updates pydeck pyproject.toml to include dynamic field#10048
Lanceypantsy wants to merge 3 commits intovisgl:masterfrom
Lanceypantsy:pydeck-update-dynamic-pyproject

Conversation

@Lanceypantsy
Copy link

@Lanceypantsy Lanceypantsy commented Feb 26, 2026

Closes #10047

Background

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.

After the updates, the wheel builds successfully:

pip wheel --no-build-isolation --no-deps ./bindings/pydeck
Processing ./bindings/pydeck
  Preparing metadata (pyproject.toml) ... done
Building wheels for collected packages: pydeck
  Building wheel for pydeck (pyproject.toml) ... done
  Created wheel for pydeck: filename=pydeck-0.9.1-py2.py3-none-any.whl size=11298026 sha256=64b5aba3cf88d686252ba2569c0a858f7a248d0ac8b4d4799a7c60c79cdcf6c8
  Stored in directory: /private/var/folders/gk/l1x3q77d4snf5jvdzc3p22gr0000gn/T/pip-ephem-wheel-cache-s1dq9z1m/wheels/6b/71/9d/da53b57ba8918522003c452495d63608573606f0ad1166f7c3
Successfully built pydeck

Change List

  • updates pydeck pyproject.toml to include dynamic field

Note

Low Risk
Low risk: packaging-only change that affects how metadata is sourced during builds, with no runtime behavior impact.

Overview
Ensures pydeck builds correctly with modern setuptools by adding a dynamic list to bindings/pydeck/pyproject.toml, allowing metadata (e.g., readme, license, authors, and dependency fields) to be populated from setup.py instead of being ignored.

Written by Cursor Bugbot for commit 79816b7. This will update automatically on new commits. Configure here.

Lanceypantsy and others added 2 commits February 26, 2026 12:04
updates pydeck pyproject.toml to include dynamic field

Signed-off-by: Lance Barto <lbarto@redhat.com>
name = "pydeck"
version = "0.9.1"
requires-python = ">=3.8"
dynamic = ["readme", "license", "authors", "keywords", "classifiers", "dependencies", "optional-dependencies"]
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing description in dynamic field list

Medium Severity

The dynamic list is missing "description", even though setup.py defines description="Widget for deck.gl maps". Since description is neither statically declared in [project] nor listed in dynamic, modern setuptools will silently ignore it — the exact same class of bug this PR aims to fix for readme. The package metadata will have no description.

Fix in Cursor Fix in Web

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Lanceypantsy could you decide if this should be addressed?

Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

name = "pydeck"
version = "0.9.1"
requires-python = ">=3.8"
dynamic = ["readme", "license", "authors", "keywords", "classifiers", "dependencies", "optional-dependencies"]
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing urls in dynamic field list

Low Severity

The dynamic list is missing "urls", even though setup.py defines url="https://github.com/visgl/deck.gl/tree/master/bindings/pydeck". The url parameter in setup() maps to the urls metadata field in PEP 621. Without declaring it in dynamic, modern setuptools will silently drop the homepage URL from the package metadata, so PyPI will show no project URL.

Fix in Cursor Fix in Web

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] pyproject.toml for pydeck python library needs to have dynamic field

2 participants