plotly.js v2.28.0 compatibility needs huge rework of core API
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 25/100
- issue の種類
- 機能追加
- 明瞭さ
- おおむね明確
- 活発さ
- 停滞
- 技術スタック
- csharp, javascript
- 領域
- api
調査の方向性
Plotly.js v2.28.0 の typed-array 形式から始め、F# API と CSharp lib における現在の IConvertible ベースの data_array 処理と比較します。Python 実装はエンコーディングの指針を提供する可能性があります。Plotly.NET 6.0 互換性対応の一環として、エンコードされた typed arrays がサポートされれば完了です。
索引モデルが issue の本文から書いたものです。
説明
https://github.com/plotly/plotly.js/releases/tag/v2.28.0 introduces an option to set objects for encoded typedarrays for basically all fields that provide data to traces (e.g. x and y for a cartesian plot).
an object with keys dtype, bdata, and optionally shape. In this 3rd form, dtype is one of f8, f4. i4, u4, i2, u2, i1, u1 or u1c for Uint8ClampedArray. In addition to shorthand
dtypeabove one could also use the following forms: float64, float32, int32, uint32, int16, uint16, int8, uint8 or uint8c for Uint8ClampedArray.bdatais either a base64-encoded string or the ArrayBuffer of an integer or float typed array. For either multi-dimensional arrays you must also provide its dimensions separated by comma viashape. For example usingdtype: f4 andshape: 5,100 you can declare a 2-D array that has 5 rows and 100 columns containing float32 values i.e. 4 bits per value.shapeis optional for one dimensional arrays.
Plotly.NET's API is statically typed and currently uses sequences of #IConvertible for these fields. This was a clever trick because this allows setting any of the CLR runtime types Boolean, SByte, Byte, Int16, UInt16, Int32, UInt32, Int64, UInt64, Single, Double, Decimal, DateTime, Char, and String while also making it very easy to serialize.
The new way of setting data_arrays seems to have speed advantages, and is therefore worth to be supported well from our side. A straightforward way of implementing this in the API providing a new type, e.g.
type EncodedTypedArray {
bdata: <string or maybe byte []?>
dtype: <some type abstraction>
shape: <some shape abstraction>
}
this type would also need functionality to encode the base64 string in a way that is understood by plotly.js. Maybe the python implementation's codebase can help here, as they seem to implement these functions as well.
Due to these large changes that also must be reflected on the CSharp lib, support for plotly.js >= v2.28.0 will be moved to the major release of Plotly.NET 6.0
- 主要言語
- F#
- スター
- 860
- フォーク
- 99
- 平均マージ
- 22分
- マージ済み PR(30日)
- 1
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
plotly/Plotly.NET のほかの issue
-
難易度 1/5 1時間未満 初心者へのやさしさ 78/100
plotly/Plotly.NET#498 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 42/100
plotly/Plotly.NET#495 · コメント 3 件 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 45/100
plotly/Plotly.NET#494 · コメント 1 件 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 25/100
plotly/Plotly.NET#492 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 38/100
plotly/Plotly.NET#485 · コメント 1 件 ·
plotly/Plotly.NET の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 90/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
PolicyEngine/policyengine-us#9559 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
mattermost/mattermost#38686 · コメント 1 件 ·
-
documentation
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100