Compiler plugin: refine `reorderColumnsBy` / `reorderColumnsByName` with `inFrameColumns`
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 25/100
Rechercherichtung
Start with the ReorderColumnsByName interpreter in the Kotlin repository and the reorderColumnsByName / reorderColumnsBy overloads that take inFrameColumns. Step 1 depends on the dataframe-dev bump that includes #2130, so the change cannot be made until that lands. Done means the new interpreter declares inFrameColumns, the overload carries @Refine and @Interpretable, and the compile-time schema matches the runtime column order for nested frame columns.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
reorderColumnsByName(atAnyDepth, desc, inFrameColumns) and reorderColumnsBy(atAnyDepth, desc, inFrameColumns) { }
were added in #2130 without @Refine. With the compiler plugin, the result of such a call keeps the receiver's
compile-time schema, so its column order is not updated.
They are not refined because the ReorderColumnsByName interpreter in the Kotlin repository declares only
receiver, atAnyDepth and desc. An argument the interpreter does not declare makes interpret() return
null, and the plugin then materializes an empty schema, so accessors on the result stop compiling. An
interpreter name the plugin does not know has the same effect.
Steps:
- After
dataframe-devin the Kotlin repository includes #2130, addinFrameColumnssupport to the
interpreter (a new interpreter, orval Arguments.inFrameColumns: Boolean by arg(defaultValue = Present(false))). - Add
@Refine/@Interpretableto the newreorderColumnsByNameoverload. Do this only once the minimal
Kotlin version supported with the compiler plugin contains step 1; with an older plugin the call gets an
empty schema. - Optionally, refine
reorderColumnsBytoo. Likeby/byDesc, its expression is arbitrary code.
Until the dataframe-dev bump, reorderColumnsByName() is interpreted with the old :core, which still
reorders the columns inside frame columns, so the compile-time schema of nested frame columns can differ
from the runtime one. Columns are accessed by name, so code keeps working.
- Vorherrschende Sprache
- Kotlin
- Sterne
- 1.1k
- Forks
- 87
- Ø Merge
- 2 T. 21 Std.
- Gemergte PRs (30 T.)
- 40
Entwicklungsumgebung
Startet den Dev-Container des Projekts im Browser, mit Ihrem eigenen GitHub-Konto.
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus Kotlin/dataframe
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
Maintainer antworten meist innerhalb von 1 Tag
-
API
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 66/100
Kotlin/dataframe#2202 · 3 Kommentare · 1 Reaktion ·
Maintainer antworten meist innerhalb von 1 Tag
-
documentation
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
Kotlin/dataframe#2195 · 2 Kommentare · 1 Reaktion ·
Maintainer antworten meist innerhalb von 1 Tag
-
AX
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 90/100
Maintainer antworten meist innerhalb von 1 Tag
-
Add minimal KDocs for `print` APIsEvtl. vergeben @zaleslaw hat das vor 4 Tagen übernommen. OffenKDocs
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in Kotlin/dataframe
Ähnliche Issues
-
-priority- blocked good first issue help wanted
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
scribe-org/Scribe-Android#761 · 2 Kommentare · 1 Reaktion ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 90/100
OneBusAway/vehicle-positions#288 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
google-ai-edge/gallery#1539 ·
Maintainer antworten meist innerhalb von 3 Tagen
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 90/100