plotly.js v2.28.0 compatibility needs huge rework of core API
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 25/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- csharp, javascript
- Lĩnh vực
- api
Hướng nghiên cứu
Bắt đầu với định dạng typed-array của Plotly.js v2.28.0 và so sánh với cách xử lý data_array hiện tại dựa trên IConvertible trong F# API và CSharp lib. Triển khai Python có thể cung cấp hướng dẫn về việc mã hóa; công việc được xem là hoàn tất khi các typed arrays đã mã hóa được hỗ trợ trong khuôn khổ công việc tương thích với Plotly.NET 6.0.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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
- Ngôn ngữ chính
- F#
- Star
- 860
- Fork
- 99
- Merge trung bình
- 22 phút
- Pull request đã merge (30 ngày)
- 1
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của plotly/Plotly.NET
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 78/100
plotly/Plotly.NET#498 ·
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 42/100
plotly/Plotly.NET#495 · 3 bình luận ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 45/100
plotly/Plotly.NET#494 · 1 bình luận ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 25/100
plotly/Plotly.NET#492 ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 38/100
plotly/Plotly.NET#485 · 1 bình luận ·
Tất cả issue của plotly/Plotly.NET
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
get-convex/migrations#69 ·
-
Observer env strips CLAUDE_CODE_TMPDIR, which is the documented fix for a fatal temp-dir error Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
thedotmack/claude-mem#4161 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
connectrpc/connect-py#342 ·
-
01 type: bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
plone/cookieplone-templates#471 ·
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
notch8/utk_knapsack#148 ·