Skip to content

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

Merged
Pessimistress merged 1 commit intovisgl:masterfrom
Lanceypantsy:pydeck-update-dynamic-pyproject
Mar 10, 2026
Merged

fix: updates pydeck pyproject.toml to include dynamic field#10048
Pessimistress merged 1 commit intovisgl:masterfrom
Lanceypantsy:pydeck-update-dynamic-pyproject

Conversation

@Lanceypantsy
Copy link
Copy Markdown
Contributor

@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.

Comment thread bindings/pydeck/pyproject.toml Outdated
Copy link
Copy Markdown

@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.

Comment thread bindings/pydeck/pyproject.toml Outdated
updates pydeck pyproject.toml to include dynamic field

Signed-off-by: Lance Barto <lbarto@redhat.com>
@Lanceypantsy Lanceypantsy force-pushed the pydeck-update-dynamic-pyproject branch from 79816b7 to fbc548a Compare March 10, 2026 19:11
@Lanceypantsy
Copy link
Copy Markdown
Contributor Author

@chrisgervang

I've rebased and updated the PR with the changes suggested by the bot. This should be g2g. sorry for the delay

@coveralls
Copy link
Copy Markdown

Coverage Status

coverage: 91.011%. remained the same
when pulling fbc548a on Lanceypantsy:pydeck-update-dynamic-pyproject
into 1d10e01 on visgl:master.

@Pessimistress Pessimistress merged commit dde6f5b into visgl:master Mar 10, 2026
5 checks passed
@chrisgervang chrisgervang added this to the v9.3 milestone Apr 1, 2026
chrisgervang pushed a commit that referenced this pull request Apr 17, 2026
updates pydeck pyproject.toml to include dynamic field

Signed-off-by: Lance Barto <lbarto@redhat.com>
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

4 participants