Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
6035 commits
Select commit Hold shift + click to select a range
590a44b
Update uv lock file
camdecoster Aug 12, 2025
0ef0f76
Merge pull request #5319 from plotly/release-6.3.0
camdecoster Aug 12, 2025
9bf5973
Merge remote-tracking branch 'origin/main' into docs-update-next-release
camdecoster Aug 12, 2025
6f0b108
Merge pull request #5269 from plotly/docs-update-next-release
camdecoster Aug 12, 2025
b2ad290
Update docs to plotly.py 6.3.0
camdecoster Aug 12, 2025
a35aacd
Merge pull request #5320 from plotly/cam/update-docs-to-plotly.py-6.3.0
camdecoster Aug 12, 2025
7c1ec27
Fix broken import in `mplexporter` tests
mgorny Aug 13, 2025
7344f9f
Copy width/height calculating logic from kaleido
ayjayt Aug 13, 2025
a0695c7
Add proper defaults to dict .get()
ayjayt Aug 14, 2025
b50fd38
Add proper defaults to dict .get() x2
ayjayt Aug 14, 2025
bf89e7b
Format with ruff.
ayjayt Aug 14, 2025
50e5b9c
Add some width/height testing.
ayjayt Aug 14, 2025
b49e8c2
Fix test formatting.
ayjayt Aug 14, 2025
1031db1
Fix variable access.
ayjayt Aug 14, 2025
462f649
Move test_kaleido helper fns to top of file
ayjayt Aug 18, 2025
e01f6c7
Use pio defaults to check test defaults
ayjayt Aug 18, 2025
6101511
Pull off ruff format.
ayjayt Aug 18, 2025
b04b67a
Update CITATION.cff
Coding-with-Adam Aug 19, 2025
cb71ec2
Merge pull request #5325 from geopozo/andrew/better-kaleido-defaults
emilykl Aug 19, 2025
e4d41f2
Merge pull request #5331 from plotly/Coding-with-Adam-patch-1
Coding-with-Adam Aug 21, 2025
fe883c4
Merge pull request #5303 from plotly/add-missing-imports
gvwilson Aug 27, 2025
6cc770a
Merge pull request #5302 from plotly/fix-docs
gvwilson Aug 27, 2025
a045fc4
Add list of supported values
LiamConnors Sep 10, 2025
658eeba
update links
LiamConnors Sep 12, 2025
a40fb06
Merge pull request #5345 from plotly/fix-broken-docs-build
LiamConnors Sep 12, 2025
b72d5f8
Merge branch 'doc-prod' into add-maki
LiamConnors Sep 12, 2025
a537842
Merge pull request #5344 from plotly/add-maki
LiamConnors Sep 15, 2025
3ee41a0
Merge branch 'main' into marthacryan-patch-1
marthacryan Sep 29, 2025
bcc57c8
Merge pull request #5274 from plotly/marthacryan-patch-1
marthacryan Sep 29, 2025
4e47186
update plotly.js to version 3.1.1
emilykl Oct 1, 2025
15f3b6f
update FigureWidget and JupyterLab extension bundles
emilykl Oct 1, 2025
fa1a280
print help when no command supplied to commands.py
emilykl Oct 1, 2025
7ce2c4e
Refactored create_hexbin_mapbox to use *_map chart types instead of *…
ajlien Oct 1, 2025
60c1a96
Updated create_hexbin_mapbox docstring
ajlien Oct 1, 2025
78b7dc1
update labextension files because they are different than CI for some…
emilykl Oct 1, 2025
9cdb90a
add npm ls step in check-js-build
emilykl Oct 1, 2025
ba373b3
format
emilykl Oct 1, 2025
d2f312c
Merge branch 'main' into changes-for-main
LiamConnors Oct 1, 2025
3398e3c
Merge pull request #5359 from plotly/changes-for-main
LiamConnors Oct 1, 2025
dd24a30
Merge branch 'main' into update-plotlyjs-v3.1.1
emilykl Oct 1, 2025
83b6b01
Merge pull request #5357 from plotly/update-plotlyjs-v3.1.1
emilykl Oct 1, 2025
9c6a926
Merge pull request #5315 from Lexachoc/patch-0
emilykl Oct 1, 2025
00e0f0f
Merge branch 'main' into fix-default-renderer-when-ipython-installed
emilykl Oct 1, 2025
bf4f6dd
Merge branch 'main' into rm/use-native-legend
emilykl Oct 1, 2025
acaceef
Merge branch 'main' into plt-import
emilykl Oct 1, 2025
f893449
Merge pull request #5312 from robertoffmoura/rm/use-native-legend
emilykl Oct 1, 2025
5ec29a8
Merge branch 'main' into update-hexbin-map-no-mapbox
emilykl Oct 1, 2025
1606781
Merge branch 'main' into plt-import
emilykl Oct 1, 2025
f435c1f
Merge pull request #5258 from plotly/fix-default-renderer-when-ipytho…
emilykl Oct 1, 2025
6f4f047
Merge pull request #5322 from mgorny/plt-import
emilykl Oct 1, 2025
9f0fc94
Merge branch 'main' into secondary-y-shared
emilykl Oct 1, 2025
0d2bfc9
fix matplotlib import
emilykl Oct 1, 2025
2d06228
Merge pull request #5180 from gmjw/secondary-y-shared
emilykl Oct 1, 2025
4206f60
Merge branch 'main' into matplotlib-import-fix
emilykl Oct 1, 2025
6bed9a0
Merge pull request #5361 from plotly/matplotlib-import-fix
emilykl Oct 1, 2025
9add7ca
version changes for v6.3.1
emilykl Oct 2, 2025
6752c2c
update uv lockfile
emilykl Oct 2, 2025
8225110
Merge pull request #5363 from plotly/release-v6.3.1
emilykl Oct 2, 2025
f1b9c71
Update RELEASE.md
emilykl Oct 2, 2025
93347d2
review comments
emilykl Oct 3, 2025
743c313
Merge pull request #5364 from plotly/release-instructions-cleanup
emilykl Oct 3, 2025
a675d04
add references to cloud
LiamConnors Oct 7, 2025
cca91a1
Merge pull request #5366 from plotly/add-cloud
LiamConnors Oct 8, 2025
4a1cf88
Update renderers.md
LiamConnors Oct 8, 2025
20603b1
add bullets and fix links
LiamConnors Oct 9, 2025
d5e28f9
Update renderers.md
LiamConnors Oct 9, 2025
fde4185
Update renderers.md
LiamConnors Oct 9, 2025
66b6b5c
lowercase plotly.py and plotly.js
emilykl Oct 9, 2025
e287dbe
Update renderers.md
LiamConnors Oct 9, 2025
5c980e5
Update renderers.md
LiamConnors Oct 9, 2025
4bd19c4
Update renderers.md
LiamConnors Oct 9, 2025
1085bd6
Update renderers.md
LiamConnors Oct 9, 2025
72212b7
Merge pull request #5372 from plotly/release-instructions-cleanup
emilykl Oct 9, 2025
f38c6ee
Update renderers.md
LiamConnors Oct 9, 2025
596f0a6
Update renderers.md
LiamConnors Oct 9, 2025
61ece0d
Update renderers.md
LiamConnors Oct 9, 2025
bd4b68e
Update renderers.md
LiamConnors Oct 9, 2025
992707a
Update code example in animations.md
yaoxiao1999 Oct 13, 2025
f95086a
Update doc/python/renderers.md
LiamConnors Oct 17, 2025
b45be6e
Update doc/python/renderers.md
LiamConnors Oct 17, 2025
6866c2f
Merge pull request #5369 from plotly/more-updates
LiamConnors Oct 20, 2025
851cd28
Renamed create_hexbin_mapbox to create_hexbin_map
ajlien Oct 22, 2025
c6edf24
Ruff formatting
ajlien Oct 22, 2025
c7c32af
Merge branch 'main' into update-hexbin-map-no-mapbox
ajlien Oct 22, 2025
437c168
More ruff formatting
ajlien Oct 22, 2025
a369da4
Merge branch 'update-hexbin-map-no-mapbox' of github.com:ajlien/plotl…
ajlien Oct 22, 2025
40df944
Updated figure factory init
ajlien Oct 22, 2025
e7d54ad
Removed Mapbox-related content from hexbin examples
ajlien Oct 22, 2025
cca1cf8
Merge pull request #5358 from ajlien/update-hexbin-map-no-mapbox
emilykl Oct 22, 2025
5e2c796
Merge branch 'main' into doc-prod-to-main-merge
LiamConnors Oct 28, 2025
9d16102
Merge pull request #5383 from plotly/doc-prod-to-main-merge
LiamConnors Oct 28, 2025
fd71245
Optimize validate_gantt
codeflash-ai[bot] Oct 30, 2025
44df0c1
Apply suggestion from @misrasaurabh1
misrasaurabh1 Oct 30, 2025
67aa862
Apply suggestion from @misrasaurabh1
misrasaurabh1 Oct 30, 2025
333a058
adding validate_gantt tests file
mashraf-222 Oct 30, 2025
3f5166d
fix formatting
mashraf-222 Oct 30, 2025
9ae5a23
fixing formatting
mashraf-222 Oct 30, 2025
a04b736
Update plotly.js to v3.2.0 and associated files
camdecoster Oct 31, 2025
5f61016
Update Jupyter support files
camdecoster Oct 31, 2025
38849fd
Use labextension files from CI because they are different
camdecoster Oct 31, 2025
96c6894
Remove old build file
camdecoster Nov 3, 2025
72668b0
Revert indentation changes
camdecoster Nov 3, 2025
913ca35
Merge pull request #5388 from plotly/cam/update-plotly.js-v3.2.0
camdecoster Nov 3, 2025
e58469c
Update Kaleido dependency to v1.1.0
camdecoster Nov 3, 2025
cebcb84
Merge pull request #5389 from plotly/cam/update-kaleido-version-1.1.0
camdecoster Nov 3, 2025
f557106
Version changes for v6.4.0
camdecoster Nov 3, 2025
92de12f
Merge pull request #5390 from plotly/release-6.4.0
camdecoster Nov 4, 2025
93227f2
update plotly.py version for docs
LiamConnors Nov 4, 2025
2bb74a0
Update CHANGELOG.md
LiamConnors Nov 4, 2025
1d96a63
Merge pull request #5391 from plotly/update-docs-nov-4
LiamConnors Nov 5, 2025
8791cd8
Merge pull request #5392 from plotly/make-docs-live-nov-5
LiamConnors Nov 7, 2025
4692768
add handling for special case where np datetime contained in Python l…
emilykl Nov 10, 2025
0863bfd
add test for datetime64[ns]
emilykl Nov 11, 2025
aad21ad
Update _plotly_utils/basevalidators.py
emilykl Nov 12, 2025
3aca925
Merge pull request #5415 from plotly/fix-np-date-handling-issue
emilykl Nov 12, 2025
cf4d1b2
add new maps page
LiamConnors Nov 13, 2025
0105281
Update location-mode.md
LiamConnors Nov 13, 2025
0cf784c
Update location-mode.md
LiamConnors Nov 13, 2025
f571850
Update location-mode.md
LiamConnors Nov 13, 2025
ed79c81
Update location-mode.md
LiamConnors Nov 13, 2025
cdab866
Update location-mode.md
LiamConnors Nov 13, 2025
08d21b4
Update doc/python/location-mode.md
LiamConnors Nov 14, 2025
e7faa8b
update plotly.js to v3.3.0
emilykl Nov 17, 2025
cb41af6
package-lock indentation
emilykl Nov 17, 2025
0538c34
update package-lock with new plotly.js
emilykl Nov 17, 2025
31f5f8b
update plotly/labextension with files from ci
emilykl Nov 17, 2025
c090672
Merge pull request #5421 from plotly/update-plotlyjs-3.3.0
emilykl Nov 17, 2025
149129f
version changes for v6.5.0
emilykl Nov 17, 2025
6351532
Update CHANGELOG.md
emilykl Nov 17, 2025
75fe43f
changelog formatting
emilykl Nov 17, 2025
ba12684
Merge pull request #5422 from plotly/release-6.5.0
emilykl Nov 17, 2025
24e680e
update plotly.py version for docs
LiamConnors Nov 17, 2025
0c6784f
Merge pull request #5423 from plotly/update-plotly-version
LiamConnors Nov 18, 2025
ac65e3c
Merge branch 'doc-prod' into make-docs-changes-live
LiamConnors Nov 18, 2025
355478e
Merge branch 'main' into codeflash/optimize-validate_gantt-mhcxyu68
KRRT7 Nov 18, 2025
6d379c4
Merge pull request #5426 from plotly/make-docs-changes-live
LiamConnors Nov 18, 2025
d1518b0
remove conditional pandas
KRRT7 Nov 18, 2025
9565ed4
Update choropleth-maps.md
LiamConnors Nov 18, 2025
8634025
remove redundant tests
KRRT7 Nov 18, 2025
6cafcd9
apply ruff formatting
KRRT7 Nov 18, 2025
c8efea6
Merge branch 'doc-prod' into add-maps
LiamConnors Nov 19, 2025
7810794
Merge pull request #5418 from plotly/add-maps
LiamConnors Nov 19, 2025
f2f775f
add changelong entry
KRRT7 Nov 19, 2025
c7b49f2
apply suggestion
KRRT7 Nov 19, 2025
091cee0
Merge pull request #5386 from codeflash-ai/codeflash/optimize-validat…
camdecoster Nov 19, 2025
1eea3aa
Add trace-specific color sequence support from template.data
antonymilne Nov 26, 2025
aae3a47
Support trace-specific color sequences in Plotly Express via templates
antonymilne Nov 26, 2025
6af01a1
Add trace-specific color sequences in Plotly Express via templates
antonymilne Nov 26, 2025
c328bf7
Minor
antonymilne Nov 27, 2025
f946c38
Format code with ruff
antonymilne Nov 27, 2025
7c66303
Add CHANGELOG entry for trace-specific color sequences fix
antonymilne Dec 1, 2025
b554943
Update changelog
antonymilne Dec 1, 2025
2d258f0
fix: Update GitHub issue templates
camdecoster Dec 3, 2025
7bf40b6
Merge pull request #5441 from plotly/cam/5440/update-github-issue-tem…
camdecoster Dec 3, 2025
8fb5ac9
Refactor trace-specific color handling in apply_default_cascade
antonymilne Dec 4, 2025
25201f5
Remove redundant color_discrete_sequence check in apply_default_cascade
antonymilne Dec 4, 2025
dbef0a6
Update tests/test_optional/test_px/test_px.py
antonymilne Dec 4, 2025
ecfe767
Ruff
antonymilne Dec 4, 2025
42b98af
Merge branch 'main' into main
antonymilne Dec 4, 2025
5534dc1
Fix imshow
antonymilne Dec 5, 2025
73388d9
Merge pull request #5437 from antonymilne/main
emilykl Dec 5, 2025
ef76c9e
update call to color_discrete_sequence with new call signature
emilykl Dec 5, 2025
5fdce89
Merge pull request #5442 from plotly/fix-docs-build-bug-2
emilykl Dec 8, 2025
5d24de1
fix some typos
LiamConnors Dec 9, 2025
5f02f8c
fix more typos
LiamConnors Dec 9, 2025
7010077
fix some docs issues
LiamConnors Dec 9, 2025
8d05322
Merge pull request #5377 from yaoxiao1999/patch-2
LiamConnors Dec 9, 2025
a4a480e
Update editable installs ref in CONTRIBUTING doc
palmerusaf Dec 10, 2025
35c8655
Merge pull request #5448 from palmerusaf/update-contrib-docs
ndrezn Dec 10, 2025
e6f0943
Remove unneeded `type="text/javascript"` attribute from `<style>` tag
hannob Dec 19, 2025
8217ea9
Fix codingstyle with ruff
hannob Dec 19, 2025
de2b242
Update plotly.js to v3.3.1 and associated files
camdecoster Dec 22, 2025
ef27aa7
Add missing lock file
camdecoster Dec 22, 2025
8fc178a
Update Jupyter support files
camdecoster Dec 22, 2025
a67c16c
Merge pull request #5456 from plotly/cam/update-plotly.js-v3.3.1
camdecoster Dec 22, 2025
ee9d6b8
Version changes for v6.5.1
camdecoster Dec 24, 2025
fe2289f
Update dendrogram.md
LiamConnors Jan 2, 2026
9662db8
Update ml-pca.md
LiamConnors Jan 2, 2026
1a3cc79
Merge pull request #5457 from plotly/release-6.5.1
camdecoster Jan 7, 2026
d1af459
Merge pull request #5460 from plotly/fix-docs-build
LiamConnors Jan 8, 2026
09ad416
fix: Handle arrays in BooleanValidator
camdecoster Jan 9, 2026
bedd340
Add array_ok to SubplotidValidator, used in pie.legend
my-tien Jan 12, 2026
c913587
Fix names of test cases (forgot to rename them after copy-paste)
my-tien Jan 12, 2026
f215b6e
Run ruff format after adding support for arrays in subplotid validator.
my-tien Jan 12, 2026
0ce4e6d
Fix docstring and description of SubplotidValidator
my-tien Jan 13, 2026
6d7b2fb
changed helper function in SubplotidValidator
my-tien Jan 13, 2026
3fbe419
Separate test for coercion of geo1 to geo and legend1 to legend
my-tien Jan 13, 2026
e0cc3be
Simplify test
camdecoster Jan 13, 2026
0ca93a1
Merge pull request #5464 from plotly/cam/5463/handle-arrays-booleanva…
camdecoster Jan 13, 2026
88039f9
Merge branch 'main' into legend-arrayok
camdecoster Jan 13, 2026
23f6a4c
Merge pull request #5465 from my-tien/legend-arrayok
camdecoster Jan 14, 2026
714d056
Merge branch 'main' into merge-doc-prod-to-main
LiamConnors Jan 14, 2026
549a996
Merge pull request #5466 from plotly/merge-doc-prod-to-main
LiamConnors Jan 14, 2026
e0000a3
fix: Update graph_objs per recent bug fixes
camdecoster Jan 14, 2026
a0de28a
Merge pull request #5467 from plotly/cam/update-graph-objs
camdecoster Jan 14, 2026
60cf468
Version changes for v6.5.2
camdecoster Jan 14, 2026
ad0b141
Use the correct dates
camdecoster Jan 14, 2026
292d9a2
Merge pull request #5468 from plotly/release-6.5.2
camdecoster Jan 14, 2026
289f282
Remove not required build dependencies
franred Jan 13, 2026
75ea647
update example to use geodatasets
LiamConnors Jan 26, 2026
247d052
fix: Remove global warning format side effect
emmanuel-ferdman Feb 5, 2026
587b490
Merge pull request #5454 from hannob-forks/unneededtype
emilykl Feb 10, 2026
538ef10
Merge branch 'doc-prod' into fix-docs-issues
LiamConnors Feb 10, 2026
958521e
Update requirements.txt
LiamConnors Feb 10, 2026
26240be
Update requirements.txt
LiamConnors Feb 10, 2026
4ab1e38
Update requirements.txt
LiamConnors Feb 10, 2026
ebcca4a
Update requirements.txt
LiamConnors Feb 10, 2026
cffba66
Merge pull request #5501 from plotly/update-docs-requirements
LiamConnors Feb 12, 2026
16dd664
Merge branch 'doc-prod' into fix-docs-issues
LiamConnors Feb 12, 2026
99a03b8
Merge pull request #5447 from plotly/fix-docs-issues
LiamConnors Feb 12, 2026
d0aef24
Merge branch 'main' into fix-warnings-format
emilykl Feb 13, 2026
1d90975
Merge pull request #5481 from emmanuel-ferdman/fix-warnings-format
emilykl Feb 16, 2026
0a95f2b
Merge branch 'main' into merge-doc-prod-to-main-branch
LiamConnors Feb 16, 2026
6dc4ae8
Merge pull request #5513 from plotly/merge-doc-prod-to-main-branch
LiamConnors Feb 17, 2026
659c963
Update shapes.md
LiamConnors Feb 18, 2026
e1c2a28
Update marker-style.md
LiamConnors Feb 19, 2026
6aa6a82
Update marker-style.md
LiamConnors Feb 19, 2026
d195af2
Merge pull request #5478 from plotly/update-example
camdecoster Feb 20, 2026
a914262
Fix spurious engine deprecation warning in write_image
mosh3eb Feb 20, 2026
bb95c63
Merge branch 'main' into new-charts
LiamConnors Feb 23, 2026
e7188d2
Update legend.md
LiamConnors Feb 23, 2026
c471031
Merge branch 'new-charts' of https://github.com/plotly/plotly.py into…
LiamConnors Feb 23, 2026
eb3672c
Merge pull request #5517 from mosh3eb/fix/write-image-spurious-engine…
emilykl Feb 24, 2026
3b4f85d
Update doc/python/shapes.md
LiamConnors Feb 26, 2026
e76785f
Merge branch 'main' into new-charts
LiamConnors Feb 26, 2026
c6b303f
upgrade plotly.js to v3.4.0
emilykl Feb 27, 2026
5321bbe
update package-lock
emilykl Feb 27, 2026
53a4372
update js artifacts
emilykl Feb 27, 2026
aec88af
update changelog
emilykl Mar 2, 2026
bd74e10
Merge pull request #5527 from plotly/update-plotlyjs-3.4.0
emilykl Mar 2, 2026
c386112
Merge branch 'main' into new-charts
LiamConnors Mar 2, 2026
f3e2526
Merge pull request #5516 from plotly/new-charts
LiamConnors Mar 2, 2026
6a401fc
update changelog
emilykl Mar 2, 2026
2542ce0
changes for v6.6.0
emilykl Mar 2, 2026
22915d2
Merge pull request #5528 from plotly/release-branch-6.6.0
emilykl Mar 2, 2026
03b0f23
Update requirements.txt
LiamConnors Mar 2, 2026
79f22b9
Merge pull request #5529 from plotly/update-docs-version
LiamConnors Mar 3, 2026
e8b906e
Update conf.py
LiamConnors Mar 3, 2026
ecf2fec
Merge pull request #5531 from plotly/update-version
LiamConnors Mar 3, 2026
fe76342
Update and streamline pull request template
emilykl Feb 23, 2026
e8c3e72
Add checklists removed from PR template into CONTRIBUTING.md
emilykl Feb 25, 2026
272c3cb
link to code of conduct
emilykl Mar 2, 2026
c7c49a2
update based on PR comments
emilykl Mar 3, 2026
819de8e
Merge pull request #5523 from plotly/update-pr-template
emilykl Mar 4, 2026
d228695
fix: handle empty histogram() by skipping None label in hover template
tysoncung Mar 10, 2026
22a2f83
Merge pull request #5535 from tysoncung/fix-empty-histogram-crash
emilykl Mar 10, 2026
c3363f1
Apply suggestion from @emilykl
emilykl Mar 12, 2026
d4dec46
Merge branch 'main' into franred/remove-not-required-build-dependencies
emilykl Mar 12, 2026
380e0ad
Merge pull request #5477 from franred/franred/remove-not-required-bui…
emilykl Mar 12, 2026
2d122fd
Fix create_violin() numpy 2.0+ compatibility
wavebyrd Mar 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
479 changes: 479 additions & 0 deletions .circleci/config.yml

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
github: plotly
custom: https://plot.ly/products/consulting-and-oem/
35 changes: 35 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
---
name: Bug report
about: Create a bug report for a plotly.py issue
title: "[BUG]: "
labels: bug

---

### Instructions (remove this section before submitting report)

Thanks for your interest in plotly.py!

- Before submitting a new bug report, please search for existing and closed issues. If your bug is not addressed yet, fill out the sections below and submit a new issue.
- Implementation questions ("How do I do ...?") should be asked on our [Community Forum](https://community.plotly.com/c/plotly-python/5) or on [Stack Overflow](https://stackoverflow.com/questions/tagged/plotly) (tagged 'plotly').
- Comments should add content to the discussions. Approbation comments such as *+1* or *I would like this feature to be implemented as well* will be deleted by the maintainers. Please use [GitHub reactions](https://github.com/blog/2119-add-reactions-to-pull-requests-issues-and-comments) instead.

### Description

_Add a clear description of the issue that you're having._

### Screenshots/Video

_Add screenshots or a video of the issue._

### Steps to reproduce

_Reports **must** include steps to reproduce the issue. Please use the [latest version](https://github.com/plotly/plotly.py/releases) of plotly.py in your report unless not applicable._

- Go to '...'
- Click on X
- Note the issue with Y

### Notes

_Add info here that doesn't fit in the other sections._
31 changes: 31 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
name: Feature request
about: Submit a new feature request for plotly.py
title: "[FEATURE]: "
labels: feature

---

### Instructions (remove this section before submitting an issue)

Thanks for your interest in plotly.py!

- Before submitting a new feature request, please search for existing and closed requests. If your request is novel, fill out the sections below and submit a new request.
- Comments should add content to the discussions. Approbation comments such as *+1* or *I would like this feature to be implemented as well* will be deleted by the maintainers. Please use [GitHub reactions](https://github.com/blog/2119-add-reactions-to-pull-requests-issues-and-comments) instead.

### Description

_Add a clear description of the feature that you're requesting._


### Why should this feature be added?

_Provide an argument for why this feature should be added. We can't add everything, so this will help us determine what gets worked on. Please also consider creating a PR and adding the feature yourself. Help is always appreciated._

### Mocks/Designs

_Please add any mocks or designs you might have for the feature._

### Notes

_Add info here that doesn't fit in the other sections._
30 changes: 30 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<!--
Thank you for your contribution to plotly.py!

Please complete each section below.
-->

### Link to issue
<!-- Link to the issue closed by this PR. If the issue doesn't exist yet, create it. -->

Closes #(issue number)

### Description of change
<!-- Provide a clear 1-2 sentence description of what this PR does. -->

### Demo

<!-- Include screenshots or screen recordings of this PR in action. -->

### Testing strategy

<!-- Provide 1-2 sentences explaining tests added or changed by this PR. If testing changes are not needed, explain why. -->

### Additional information (optional)

<!-- Include any additional context, background, or explanation which doesn't fit in the previous sections. -->

### Guidelines

- [ ] I have reviewed the [pull request guidelines](https://github.com/plotly/plotly.py/blob/main/CONTRIBUTING.md#opening-a-pull-request) and the [Code of Conduct](https://github.com/plotly/plotly.py/blob/main/CODE_OF_CONDUCT.md) and confirm that this PR follows them.
- [ ] I have added an entry to the [changelog](https://github.com/plotly/plotly.py/blob/main/CHANGELOG.md) if needed (not required for documentation PRs).
67 changes: 67 additions & 0 deletions .github/workflows/check-js-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
on: push

jobs:
check-js-build:
name: Check JS build artifacts
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.x"

- name: Install Node
uses: actions/setup-node@v2
with:
node-version: '22'

- name: Copy current files to a temporary directory
run: |
cp -R plotly/labextension/ plotly/labextension-tmp/

- name: Install dependencies and build
run: |
curl -LsSf https://astral.sh/uv/install.sh | sh
uv venv
source .venv/bin/activate
uv pip install jupyter
cd js
npm ci
npm run build
npm ls
- name: Check JupyterLab build artifacts
run: |
# 1. Hash contents of all static files, sort by content hash
find plotly/labextension/static -type f -exec sha256sum {} \; | awk '{print $1}' | sort > new_hashes.txt
find plotly/labextension-tmp/static -type f -exec sha256sum {} \; | awk '{print $1}' | sort > old_hashes.txt

# 2. Compare the sorted content hashes
diff old_hashes.txt new_hashes.txt > content_diff.txt

# Remove the "load" line from both package.json files before comparing
grep -v '"load": "static/' plotly/labextension/package.json > pkg1.json
grep -v '"load": "static/' plotly/labextension-tmp/package.json > pkg2.json

# Compare stripped versions
diff pkg1.json pkg2.json > package_json_diff.txt

# 5. Final check
if [ -s content_diff.txt ] || [ -s package_json_diff.txt ]; then
echo "❌ Build artifacts differ:"
echo "--- Unexpected diffs ---"
cat content_diff.txt
echo "--- Unexpected package.json diffs ---"
cat package_json_diff.txt
echo "Please replace the 'plotly/labextension' directory with the artifacts of this CI run."
exit 1
else
echo "✅ Build artifacts match expected output (ignoring known 'load' hash in package.json)."
fi

- name: Store the build artifacts from plotly/labextension
uses: actions/upload-artifact@v4
if: failure()
with:
name: labextension
path: plotly/labextension
71 changes: 71 additions & 0 deletions .github/workflows/test-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
name: Publish Python 🐍 distribution 📦 to PyPI and TestPyPI

on:
workflow_dispatch

jobs:
build:
name: Build distribution 📦
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.x"

- name: Install Node
uses: actions/setup-node@v2
with:
node-version: '22'

- name: Install npm dependencies
run: |
curl -LsSf https://astral.sh/uv/install.sh | sh
uv venv
source .venv/bin/activate
uv pip install jupyter
cd js
npm ci --verbose
npm run build --verbose

- name: Install pypa/build
run: >-
python3 -m
pip install
build
--user
- name: Build a binary wheel and a source tarball
run: python3 -m build
- name: Store the distribution packages
uses: actions/upload-artifact@v4
with:
name: python-package-distributions
path: dist/

publish-to-testpypi:
name: Publish Python 🐍 distribution 📦 to TestPyPI
needs:
- build
runs-on: ubuntu-latest

environment:
name: testpypi
url: https://test.pypi.org/p/plotly

permissions:
id-token: write # IMPORTANT: mandatory for trusted publishing

steps:
- name: Download all the dists
uses: actions/download-artifact@v4
with:
name: python-package-distributions
path: dist/
- name: Publish distribution 📦 to TestPyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
repository-url: https://test.pypi.org/legacy/
52 changes: 49 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,19 +1,65 @@
0
0.html
iframe_figures/
tests/test_orca/images/linux/failed/

*.egg-info

*.pyc

*.gz

*~

doc/python/raw.githubusercontent.com/

# Don't ignore dataset files
!*.csv.gz
!*.geojson.gz

*.ipynb

*.coverage

*.tox

build
debug_script.py

test_output.txt

plotly/api/v2/spectacle_presentations.py

plotly/presentation_objs/

.idea

node_modules/

.pytest_cache

# virtual envs
vv
venv*

# dist files
build
dist
plotly.egg-info/

debug_script.py
# macOS utility file
**/.DS_Store

test_output.txt
tests/test_orca/images/*/failed
tests/test_orca/images/*/tmp
tests/test_core/test_offline/plotly.min.js
temp-plot.html
.vscode
doc/python/.ipynb_checkpoints
doc/python/.mapbox_token
doc/.ipynb_checkpoints
tags
doc/check-or-enforce-order.py

tests/percy/*.html
tests/percy/pandas2/*.html
test_path.png
6 changes: 0 additions & 6 deletions .gitmodules

This file was deleted.

Loading