Skip to content

fix: add PyInstaller hook for pythreejs JSON data files#4004

Open
maartenbreddels wants to merge 1 commit into
spacetelescope:mainfrom
maartenbreddels:fix/pythreejs-pyinstaller-hook
Open

fix: add PyInstaller hook for pythreejs JSON data files#4004
maartenbreddels wants to merge 1 commit into
spacetelescope:mainfrom
maartenbreddels:fix/pythreejs-pyinstaller-hook

Conversation

@maartenbreddels
Copy link
Copy Markdown
Collaborator

Description

pythreejs loads JSON shader data files at import time (ShaderChunk, ShaderLib, and UniformsLib). PyInstaller doesn't automatically bundle these data files, causing runtime FileNotFoundError. This hook ensures the JSON files are included in the bundled application.

Fixes errors like:
https://github.com/spacetelescope/jdaviz/actions/runs/20140106864/job/57804784350?pr=3943

FileNotFoundError: [Errno 2] No such file or directory: '/home/runner/work/jdaviz/jdaviz/standalone/dist/jdaviz/_internal/pythreejs/renderers/shaders/ShaderChunk.autogen.json'
[PYI-15690:ERROR] Failed to execute script 'jdaviz-cli-entrypoint' due to unhandled exception!

Change log entry

  • Is a change log needed? If yes, is it added to CHANGES.rst? If you want to avoid merge conflicts,
    list the proposed change log here for review and add to CHANGES.rst before merge. If no, maintainer
    should add a no-changelog-entry-needed label.

Checklist for package maintainer(s)

This checklist is meant to remind the package maintainer(s) who will review this pull request of some common things to look for. This list is not exhaustive.

  • Are two approvals required? Branch protection rule does not check for the second approval. If a second approval is not necessary, please apply the trivial label.
  • Do the proposed changes actually accomplish desired goals? Also manually run the affected example notebooks, if necessary.
  • Do the proposed changes follow the STScI Style Guides?
  • Are tests added/updated as required? If so, do they follow the STScI Style Guides?
  • Are docs added/updated as required? If so, do they follow the STScI Style Guides?
  • If new remote data is added that uses MAST, is the URI added to the cache-download.yml workflow?
  • Did the CI pass? If not, are the failures related?
  • Is a milestone set? Set this to bugfix milestone if this is a bug fix and needs to be released ASAP; otherwise, set this to the next major release milestone. Bugfix milestone also needs an accompanying backport label.
  • After merge, any internal documentations need updating (e.g., JIRA, Innerspace)?

pythreejs loads JSON shader data files at import time (ShaderChunk, ShaderLib,
and UniformsLib). PyInstaller doesn't automatically bundle these data files,
causing runtime FileNotFoundError. This hook ensures the JSON files are included
in the bundled application.
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.

1 participant