plotly.js v2.28.0 compatibility needs huge rework of core API
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 25/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- csharp, javascript
- Ambito
- api
Direzione di ricerca
Inizia con il formato typed-array di Plotly.js v2.28.0 e confrontalo con la gestione attuale di data_array basata su IConvertible nella F# API e nella CSharp lib. L’implementazione Python può fornire indicazioni per la codifica; il lavoro è completato quando i typed arrays codificati sono supportati nell’ambito del lavoro di compatibilità con Plotly.NET 6.0.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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
- Lingua principale
- F#
- Stelle
- 860
- Fork
- 99
- Merge medio
- 22m
- PR unite (30g)
- 1
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di plotly/Plotly.NET
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 78/100
plotly/Plotly.NET#498 ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 42/100
plotly/Plotly.NET#495 · 3 commenti ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 45/100
plotly/Plotly.NET#494 · 1 commento ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
plotly/Plotly.NET#492 ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 38/100
plotly/Plotly.NET#485 · 1 commento ·
Tutte le issue di plotly/Plotly.NET
Issue simili
-
documentation
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
get-convex/migrations#69 ·
-
Observer env strips CLAUDE_CODE_TMPDIR, which is the documented fix for a fatal temp-dir error Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
thedotmack/claude-mem#4161 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
connectrpc/connect-py#342 ·
-
01 type: bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
plone/cookieplone-templates#471 ·