[BUG]: Single-color requests raise ZeroDivisionError in palette helpers
メンテナーはふだん 1 日以内に返信
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 82/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- python
調査の方向性
バグは plotly.colors ヘルパーの sample_colorscale と n_colors にあり、どちらも要求された個数から 1 を引いた値で除算しています。まず issue の再現スクリプトを実行し、個数が 1 の場合に ZeroDivisionError が発生することを確認してください。単一の色を要求したときに区間の開始点(low / lowcolor)の色が 1 つ返され、それが複数色の場合の最初のサンプルと一致し、色が 0 個の場合も空のリストを返し続けていれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Description
sample_colorscale and n_colors raise ZeroDivisionError when asked for one color. This breaks palettes sized to a dataset's group count when there is exactly one group. Both helpers divide by the requested count minus one.
Expected: one color from the start of the interval (low / lowcolor), consistent with their existing first sample.
Screenshots/Video
The API calls fail before a figure can be created; the output is shown below.
Steps to reproduce
from plotly.colors import n_colors, sample_colorscale
for label, call in [
("sample_colorscale", lambda: sample_colorscale("Viridis", 1)),
("n_colors", lambda: n_colors((0, 0, 0), (1, 1, 1), 1)),
]:
try:
print(label, call())
except ZeroDivisionError as error:
print(label, type(error).__name__, str(error))
Actual:
sample_colorscale ZeroDivisionError division by zero
n_colors ZeroDivisionError float division by zero
Expected:
sample_colorscale ['rgb(68, 1, 84)']
n_colors [(0.0, 0.0, 0.0)]
Notes
Reproduced with Plotly 7.1.0, current main 3f8a650930feadfdb651cd869ffe3e85fd093885, Python 3.12.10, Windows amd64. Zero-color requests already return empty lists.
- 主要言語
- Python
- スター
- 18.8k
- フォーク
- 2.9k
- 平均マージ
- 3日 7時間
- マージ済み PR(30日)
- 20
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
plotly/plotly.py のほかの issue
-
[BUG]: Unnecessary `UserWarning` when using `fig.write_image()` with `kaleido.start_sync_server()`対応中かも @jayzhou2309 が 13 日前に担当しました。 オープンbug P3 size: 1
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
plotly/plotly.py#5786 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
P3 size: 1 task
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
plotly/plotly.py#5769 · リアクション 1 件 ·
メンテナーはふだん 1 日以内に返信
-
Remove `@types/plotly.js` dependency対応中かも @Belagum が 28 日前に担当しました。 オープンP3 size: 1 task
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
bug P1
難易度 1/5 1時間未満 初心者へのやさしさ 68/100
メンテナーはふだん 1 日以内に返信
-
feature P3
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
メンテナーはふだん 1 日以内に返信
plotly/plotly.py の issue をすべて見る
似ている issue
-
customer-reported question
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
Azure/azure-sdk-for-python#49548 · コメント 1 件 · リアクション 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
btclib-org/btclib-wallet#409 ·
メンテナーはふだん 1 日以内に返信
-
Phase 2 PSA Capability & Career Profile
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
bcgov/digital-journeys#2310 ·
-
bug good first issue
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
fastmachinelearning/hls4ml#1582 ·
メンテナーはふだん 3 日以内に返信
-
Sort modelsオープンenhancement good first issue
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
メンテナーはふだん 1 日以内に返信