Skip to content

Fix website generation for non-default plot types - #463

Merged
nusbaume merged 3 commits into
NCAR:mainfrom
brianpm:fix-nondefault-plot-type
Aug 13, 2026
Merged

Fix website generation for non-default plot types#463
nusbaume merged 3 commits into
NCAR:mainfrom
brianpm:fix-nondefault-plot-type

Conversation

@brianpm

@brianpm brianpm commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Any plotting script using a plot_type outside "default_ptypes" crashed website generation with "TypeError: unhashable type: 'collections.OrderedDict'" from template_index.html.

The loop meant to register an unrecognized plot type appended the plot_types dict rather than the plot type itself, so index.html then tried to use that dict as a dictionary key.

Also copy the default list before appending. "res" is the shared variable-defaults dictionary and this loop runs once per web-data entry, so appending in place permanently modified the loaded defaults.

Verified with a plotting script registering plot_type "CloudRegimes": the tab now renders on index.html and the generated site has no broken internal links.

Any plotting script using a plot_type outside "default_ptypes" crashed
website generation with "TypeError: unhashable type:
'collections.OrderedDict'" from template_index.html.

The loop meant to register an unrecognized plot type appended the
plot_types dict rather than the plot type itself, so index.html then
tried to use that dict as a dictionary key.

Also copy the default list before appending. "res" is the shared
variable-defaults dictionary and this loop runs once per web-data entry,
so appending in place permanently modified the loaded defaults.

Verified with a plotting script registering plot_type "CloudRegimes":
the tab now renders on index.html and the generated site has no broken
internal links.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@nusbaume
nusbaume self-requested a review August 13, 2026 20:15

@nusbaume nusbaume left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Thanks @brianpm!

@nusbaume
nusbaume merged commit 7b19576 into NCAR:main Aug 13, 2026
7 checks passed
brianpm pushed a commit to brianpm/ADF that referenced this pull request Aug 21, 2026
The merge from main brings in PR NCAR#463, which fixes adf_web.py to append the
plot type rather than the whole plot_types dict to avail_plot_types. That was
the blocker recorded in the WEB_PLOT_TYPE comment: before it, any plot type
outside default_ptypes made the index template fail on an unhashable dict, so
this diagnostic had to borrow the generic "Special" tab.

The figures now land under a "CloudRegimes" tab. Verified with create_html:
true -- mean_diag_CloudRegimes.html is generated, index.html links to it, and
all 7 plot pages match their figure names with no broken hrefs or missing
images anywhere in the site.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@brianpm brianpm mentioned this pull request Aug 24, 2026
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.

3 participants