Skip to content

Root selector option for CSV/TSV#23

Open
yesoreyeram wants to merge 8 commits into
mainfrom
rootselector-refactoring
Open

Root selector option for CSV/TSV#23
yesoreyeram wants to merge 8 commits into
mainfrom
rootselector-refactoring

Conversation

@yesoreyeram

Copy link
Copy Markdown
Contributor

No description provided.

@yesoreyeram yesoreyeram requested a review from Copilot July 11, 2025 13:56

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds support for applying root selectors (e.g., JSONata, GJSON, JQ) when converting CSV/TSV data to frames and refactors related rootselector logic in the jsonframer and csvframer packages.

  • Introduce FramerType and RootSelector in csvframer.FramerOptions plus a new ApplyRootSelector function to transform CSV arrays before framing.
  • Update jsonframer/rootselector.go to special-case JSONata argument errors, and expand gframer alias-mapping logic.
  • Add golden test fixtures and a test suite for JSONata-based root selectors.

Reviewed Changes

Copilot reviewed 11 out of 17 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
lib/go/jsonframer/rootselector.go Added strings import and special handling for JSONata “argument” errors
lib/go/gframer/gframer.go Expanded alias/mapping condition to also apply when Selector == k
lib/go/csvframer/go.mod Bumped jsonframer version and added new indirect dependencies
lib/go/csvframer/framer.go Added FramerType & RootSelector options and new root-selector flow
lib/go/csvframer/framer_test.go Added new test cases for CSV framing with JSONata root selector
lib/go/csvframer/testdata/with_root_selector_and_JSONata_framer/* New golden JSONC fixtures covering various root selector scenarios
Comments suppressed due to low confidence (1)

lib/go/csvframer/framer_test.go:93

  • The new suite covers only FramerTypeJsonata. Consider adding test cases for other FramerType options like FramerTypeGJSON and FramerTypeJQ to ensure full coverage of the root-selector feature.
	t.Run("with root selector and JSONata framer", func(t *testing.T) {

Comment thread lib/go/csvframer/framer.go Outdated
Comment thread lib/go/jsonframer/rootselector.go
Comment thread lib/go/gframer/gframer.go
@yesoreyeram yesoreyeram changed the title Rootselector refactoring & Root selector option for CSV/TSV Root selector option for CSV/TSV Jul 11, 2025
yesoreyeram and others added 4 commits July 11, 2025 15:02
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants