Skip to content

Use setters in IO options builders instead of directly modifying the data members - #23267

Merged
rapids-bot[bot] merged 4 commits into
NVIDIA:mainfrom
vuule:builder-use-options-setters
Jul 16, 2026
Merged

Use setters in IO options builders instead of directly modifying the data members#23267
rapids-bot[bot] merged 4 commits into
NVIDIA:mainfrom
vuule:builder-use-options-setters

Conversation

@vuule

@vuule vuule commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Description

Route IO builders through option setters because they are responsible for validation.
Also fixed validation in set_quoting.

Checklist

  • I am familiar with the Contributing Guidelines.
  • New or existing tests cover these changes.
  • The documentation is up to date with these changes.

Route builder configuration through option setters so future validation is applied consistently.
@copy-pr-bot

copy-pr-bot Bot commented Jul 14, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@github-actions github-actions Bot added the libcudf Affects libcudf (C++/CUDA) code. label Jul 14, 2026
@vuule vuule added improvement Improvement / enhancement to an existing function non-breaking Non-breaking change labels Jul 14, 2026
@vuule
vuule marked this pull request as ready for review July 15, 2026 05:41
@vuule
vuule requested a review from a team as a code owner July 15, 2026 05:41
@vuule
vuule requested review from misiugodfrey and wence- July 15, 2026 05:41
@coderabbitai

coderabbitai Bot commented Jul 15, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

Changes

IO option builder updates

Layer / File(s) Summary
CSV option setters and builders
cpp/include/cudf/io/csv.hpp
CSV reader and writer builders now use public setter APIs, with move forwarding for transferred values. Prefix assignment is move-based, and quoting validation accepts an expanded set of styles.
Avro and JSON builder forwarding
cpp/include/cudf/io/avro.hpp, cpp/include/cudf/io/json.hpp
Avro and JSON reader and writer builders now forward configuration through corresponding setter and enable methods.
ORC reader setter and builder integration
cpp/include/cudf/io/orc.hpp
ORC adds the timezone-ignore setter and routes reader builder updates through public APIs.
ORC writer builder forwarding
cpp/include/cudf/io/orc.hpp
ORC writer and chunked writer builders now use public setters for writer configuration.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Suggested labels: cuIO

Suggested reviewers: davidwendt

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title clearly summarizes the main change: routing IO option builders through setters instead of direct member access.
Description check ✅ Passed The description matches the changeset and correctly mentions using option setters and fixing quoting validation.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands.

@vuule vuule changed the title Use option setters in IO builders Use setters in IO options builders instead of directly modifying the data members Jul 16, 2026

@davidwendt davidwendt left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Just want to point out that because these functions are coded in header files, all files that include them now need to be recompiled. If the definitions were moved to .cpp files then changing internal implementation details like this would only require those cpp files to be recompiled.

@vuule

vuule commented Jul 16, 2026

Copy link
Copy Markdown
Contributor Author

Just want to point out that because these functions are coded in header files, all files that include them now need to be recompiled. If the definitions were moved to .cpp files then changing internal implementation details like this would only require those cpp files to be recompiled.

Yeah, we can move the definitions into a cpp file (functions.cpp?).

@vuule

vuule commented Jul 16, 2026

Copy link
Copy Markdown
Contributor Author

/merge

@rapids-bot
rapids-bot Bot merged commit 19480cd into NVIDIA:main Jul 16, 2026
271 of 273 checks passed
@vuule
vuule deleted the builder-use-options-setters branch July 16, 2026 19:40
abigalekim pushed a commit to abigalekim/cudf that referenced this pull request Jul 20, 2026
…data members (NVIDIA#23267)

Route IO builders through option setters because they are responsible for validation.
Also fixed validation in `set_quoting`.

Authors:
  - Vukasin Milovanovic (https://github.com/vuule)

Approvers:
  - Muhammad Haseeb (https://github.com/mhaseeb123)
  - David Wendt (https://github.com/davidwendt)
  - Misiu Godfrey (https://github.com/misiugodfrey)

URL: NVIDIA#23267
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

improvement Improvement / enhancement to an existing function libcudf Affects libcudf (C++/CUDA) code. non-breaking Non-breaking change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants