Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

apply new clippy::ref_option lint to Config::new API #2192

Merged
merged 4 commits into from
Oct 6, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@
## Installation Options

### Option 0: TLDR Quick Install
qsv's big brother - [qsv pro](https://qsvpro.dathere.com) is available for download from its website and on the [Microsoft App Store](https://apps.microsoft.com/detail/xpffdj3f1jsztf?hl=en-us&gl=US). Apart from a Graphical User Inteface, it's superpowered with additional features and capabilities - an API, [CKAN](https://ckan.org) integration, a Natural Language interface and more!
qsv's big brother - [qsv pro](https://qsvpro.dathere.com) is available for download from its website and on the [Microsoft App Store](https://apps.microsoft.com/detail/xpffdj3f1jsztf?hl=en-us&gl=US). Apart from a Graphical User Interface, it's superpowered with additional features and capabilities - an API, [CKAN](https://ckan.org) integration, a Natural Language interface and more!

### Option 1: Download Prebuilt Binaries

Expand Down
4 changes: 2 additions & 2 deletions src/cmd/apply.rs
Original file line number Diff line number Diff line change
Expand Up @@ -444,13 +444,13 @@ enum ApplySubCmd {

pub fn run(argv: &[&str]) -> CliResult<()> {
let args: Args = util::get_args(USAGE, argv)?;
let rconfig = Config::new(&args.arg_input)
let rconfig = Config::new(args.arg_input.as_ref())
.delimiter(args.flag_delimiter)
.no_headers(args.flag_no_headers)
.select(args.arg_column);

let mut rdr = rconfig.reader()?;
let mut wtr = Config::new(&args.flag_output).writer()?;
let mut wtr = Config::new(args.flag_output.as_ref()).writer()?;

let headers = rdr.byte_headers()?.clone();
let sel = rconfig.selection(&headers)?;
Expand Down
6 changes: 3 additions & 3 deletions src/cmd/applydp.rs
Original file line number Diff line number Diff line change
Expand Up @@ -260,13 +260,13 @@ const NULL_VALUE: &str = "<null>";

pub fn run(argv: &[&str]) -> CliResult<()> {
let args: Args = util::get_args(USAGE, argv)?;
let rconfig = Config::new(&args.arg_input)
let rconfig = Config::new(args.arg_input.as_ref())
.delimiter(args.flag_delimiter)
.no_headers(args.flag_no_headers)
.select(args.arg_column);

let mut rdr = rconfig.reader()?;
let mut wtr = Config::new(&args.flag_output).writer()?;
let mut wtr = Config::new(args.flag_output.as_ref()).writer()?;

let headers = rdr.byte_headers()?.clone();
let sel = rconfig.selection(&headers)?;
Expand Down Expand Up @@ -310,7 +310,7 @@ pub fn run(argv: &[&str]) -> CliResult<()> {
dynfmt_fields.sort_unstable();

// now, get the indices of the columns for the lookup vec
let (safe_headers, _) = util::safe_header_names(&headers, false, false, &None, "", true);
let (safe_headers, _) = util::safe_header_names(&headers, false, false, None, "", true);
for (i, field) in safe_headers.iter().enumerate() {
if dynfmt_fields.binary_search(&field.as_str()).is_ok() {
let field_with_curly = format!("{{{field}}}");
Expand Down
6 changes: 4 additions & 2 deletions src/cmd/behead.rs
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,13 @@ struct Args {

pub fn run(argv: &[&str]) -> CliResult<()> {
let args: Args = util::get_args(USAGE, argv)?;
let conf = Config::new(&args.arg_input).no_headers(false);
let conf = Config::new(args.arg_input.as_ref()).no_headers(false);

let mut rdr = conf.flexible(args.flag_flexible).reader()?;
// write is always flexible for performance
let mut wtr = Config::new(&args.flag_output).flexible(true).writer()?;
let mut wtr = Config::new(args.flag_output.as_ref())
.flexible(true)
.writer()?;
let mut record = csv::ByteRecord::new();

while rdr.read_byte_record(&mut record)? {
Expand Down
10 changes: 6 additions & 4 deletions src/cmd/cat.rs
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ impl Args {

fn cat_rows(&self) -> CliResult<()> {
let mut row = csv::ByteRecord::new();
let mut wtr = Config::new(&self.flag_output)
let mut wtr = Config::new(self.flag_output.as_ref())
.flexible(self.flag_flexible)
.writer()?;
let mut rdr;
Expand Down Expand Up @@ -254,7 +254,9 @@ impl Args {
// set flexible to true for faster writes
// as we know that all columns are already in columns_global and we don't need to
// validate that the number of columns are the same every time we write a row
let mut wtr = Config::new(&self.flag_output).flexible(true).writer()?;
let mut wtr = Config::new(self.flag_output.as_ref())
.flexible(true)
.writer()?;
let mut new_row = csv::ByteRecord::with_capacity(500, num_columns_global);

// write the header
Expand All @@ -276,7 +278,7 @@ impl Args {

for conf in self.configs()? {
if conf.is_stdin() {
rdr = Config::new(&Some(stdin_tempfilename.to_string_lossy().to_string()))
rdr = Config::new(Some(stdin_tempfilename.to_string_lossy().to_string()).as_ref())
.reader()?;
conf_path = Some(stdin_tempfilename.clone());
} else {
Expand Down Expand Up @@ -361,7 +363,7 @@ impl Args {
}

fn cat_columns(&self) -> CliResult<()> {
let mut wtr = Config::new(&self.flag_output).writer()?;
let mut wtr = Config::new(self.flag_output.as_ref()).writer()?;
let mut rdrs = self
.configs()?
.into_iter()
Expand Down
2 changes: 1 addition & 1 deletion src/cmd/count.rs
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ struct WidthStats {

pub fn run(argv: &[&str]) -> CliResult<()> {
let args: Args = util::get_args(USAGE, argv)?;
let conf = Config::new(&args.arg_input)
let conf = Config::new(args.arg_input.as_ref())
.no_headers(args.flag_no_headers)
// we also want to count the quotes when computing width
.quoting(!args.flag_width || !args.flag_width_no_delims)
Expand Down
4 changes: 2 additions & 2 deletions src/cmd/datefmt.rs
Original file line number Diff line number Diff line change
Expand Up @@ -195,13 +195,13 @@ fn unix_timestamp(input: &str, resolution: TimestampResolution) -> Option<DateTi

pub fn run(argv: &[&str]) -> CliResult<()> {
let args: Args = util::get_args(USAGE, argv)?;
let rconfig = Config::new(&args.arg_input)
let rconfig = Config::new(args.arg_input.as_ref())
.delimiter(args.flag_delimiter)
.no_headers(args.flag_no_headers)
.select(args.arg_column);

let mut rdr = rconfig.reader()?;
let mut wtr = Config::new(&args.flag_output).writer()?;
let mut wtr = Config::new(args.flag_output.as_ref()).writer()?;

let headers = rdr.byte_headers()?.clone();
let sel = rconfig.selection(&headers)?;
Expand Down
6 changes: 3 additions & 3 deletions src/cmd/dedup.rs
Original file line number Diff line number Diff line change
Expand Up @@ -98,15 +98,15 @@ pub fn run(argv: &[&str]) -> CliResult<()> {
ComparisonMode::Normal
};

let rconfig = Config::new(&args.arg_input)
let rconfig = Config::new(args.arg_input.as_ref())
.delimiter(args.flag_delimiter)
.no_headers(args.flag_no_headers)
.select(args.flag_select);

let mut rdr = rconfig.reader()?;
let mut wtr = Config::new(&args.flag_output).writer()?;
let mut wtr = Config::new(args.flag_output.as_ref()).writer()?;
let dupes_output = args.flag_dupes_output.is_some();
let mut dupewtr = Config::new(&args.flag_dupes_output).writer()?;
let mut dupewtr = Config::new(args.flag_dupes_output.as_ref()).writer()?;

let headers = rdr.byte_headers()?;
if dupes_output {
Expand Down
6 changes: 3 additions & 3 deletions src/cmd/diff.rs
Original file line number Diff line number Diff line change
Expand Up @@ -134,11 +134,11 @@ struct Args {
pub fn run(argv: &[&str]) -> CliResult<()> {
let args: Args = util::get_args(USAGE, argv)?;

let rconfig_left = Config::new(&args.arg_input_left)
let rconfig_left = Config::new(args.arg_input_left.as_ref())
.delimiter(args.flag_delimiter_left)
.no_headers(args.flag_no_headers_left);

let rconfig_right = Config::new(&args.arg_input_right)
let rconfig_right = Config::new(args.arg_input_right.as_ref())
.delimiter(args.flag_delimiter_right)
.no_headers(args.flag_no_headers_right);

Expand Down Expand Up @@ -244,7 +244,7 @@ pub fn run(argv: &[&str]) -> CliResult<()> {
})
.transpose()?;

let wtr = Config::new(&args.flag_output)
let wtr = Config::new(args.flag_output.as_ref())
.delimiter(args.flag_delimiter_output)
.writer()?;

Expand Down
4 changes: 2 additions & 2 deletions src/cmd/edit.rs
Original file line number Diff line number Diff line change
Expand Up @@ -63,9 +63,9 @@ pub fn run(argv: &[&str]) -> CliResult<()> {
let no_headers = args.flag_no_headers;

// Build the CSV reader and iterate over each record.
let conf = Config::new(&input).no_headers(true);
let conf = Config::new(input.as_ref()).no_headers(true);
let mut rdr = conf.reader()?;
let mut wtr = Config::new(&args.flag_output).writer()?;
let mut wtr = Config::new(args.flag_output.as_ref()).writer()?;

let headers = rdr.headers()?;
let mut column_index: Option<usize> = None;
Expand Down
4 changes: 2 additions & 2 deletions src/cmd/enumerate.rs
Original file line number Diff line number Diff line change
Expand Up @@ -131,12 +131,12 @@ enum EnumOperation {

pub fn run(argv: &[&str]) -> CliResult<()> {
let args: Args = util::get_args(USAGE, argv)?;
let mut rconfig = Config::new(&args.arg_input)
let mut rconfig = Config::new(args.arg_input.as_ref())
.delimiter(args.flag_delimiter)
.no_headers(args.flag_no_headers);

let mut rdr = rconfig.reader()?;
let mut wtr = Config::new(&args.flag_output).writer()?;
let mut wtr = Config::new(args.flag_output.as_ref()).writer()?;

let mut headers = rdr.byte_headers()?.clone();
let mut hash_index = None;
Expand Down
2 changes: 1 addition & 1 deletion src/cmd/excel.rs
Original file line number Diff line number Diff line change
Expand Up @@ -333,7 +333,7 @@ pub fn run(argv: &[&str]) -> CliResult<()> {
}
let num_sheets = sheet_names.len();

let mut wtr = Config::new(&args.flag_output)
let mut wtr = Config::new(args.flag_output.as_ref())
.flexible(args.flag_flexible)
.delimiter(args.flag_delimiter)
.writer()?;
Expand Down
6 changes: 3 additions & 3 deletions src/cmd/exclude.rs
Original file line number Diff line number Diff line change
Expand Up @@ -130,11 +130,11 @@ impl<R: io::Read + io::Seek, W: io::Write> IoState<R, W> {

impl Args {
fn new_io_state(&self) -> CliResult<IoState<fs::File, Box<dyn io::Write + 'static>>> {
let rconf1 = Config::new(&Some(self.arg_input1.clone()))
let rconf1 = Config::new(Some(self.arg_input1.clone()).as_ref())
.delimiter(self.flag_delimiter)
.no_headers(self.flag_no_headers)
.select(self.arg_columns1.clone());
let rconf2 = Config::new(&Some(self.arg_input2.clone()))
let rconf2 = Config::new(Some(self.arg_input2.clone()).as_ref())
.delimiter(self.flag_delimiter)
.no_headers(self.flag_no_headers)
.select(self.arg_columns2.clone());
Expand All @@ -143,7 +143,7 @@ impl Args {
let mut rdr2 = rconf2.reader_file()?;
let (sel1, sel2) = self.get_selections(&rconf1, &mut rdr1, &rconf2, &mut rdr2)?;
Ok(IoState {
wtr: Config::new(&self.flag_output).writer()?,
wtr: Config::new(self.flag_output.as_ref()).writer()?,
rdr1,
sel1,
rdr2,
Expand Down
4 changes: 2 additions & 2 deletions src/cmd/explode.rs
Original file line number Diff line number Diff line change
Expand Up @@ -53,13 +53,13 @@ struct Args {

pub fn run(argv: &[&str]) -> CliResult<()> {
let args: Args = util::get_args(USAGE, argv)?;
let rconfig = Config::new(&args.arg_input)
let rconfig = Config::new(args.arg_input.as_ref())
.delimiter(args.flag_delimiter)
.no_headers(args.flag_no_headers)
.select(args.arg_column);

let mut rdr = rconfig.reader()?;
let mut wtr = Config::new(&args.flag_output).writer()?;
let mut wtr = Config::new(args.flag_output.as_ref()).writer()?;

let headers = rdr.byte_headers()?.clone();
let sel = rconfig.selection(&headers)?;
Expand Down
10 changes: 5 additions & 5 deletions src/cmd/fetch.rs
Original file line number Diff line number Diff line change
Expand Up @@ -487,7 +487,7 @@ pub fn run(argv: &[&str]) -> CliResult<()> {
};
log::info!("Cache Type: {cache_type:?}");

let mut rconfig = Config::new(&args.arg_input)
let mut rconfig = Config::new(args.arg_input.as_ref())
.delimiter(args.flag_delimiter)
.trim(csv::Trim::All)
.no_headers(args.flag_no_headers);
Expand All @@ -496,12 +496,12 @@ pub fn run(argv: &[&str]) -> CliResult<()> {
let mut wtr = if args.flag_new_column.is_some() {
// when adding a new column for the response, the output
// is a regular CSV file
Config::new(&args.flag_output).writer()?
Config::new(args.flag_output.as_ref()).writer()?
} else {
// otherwise, the output is a JSONL file. So we need to configure
// the csv writer so it doesn't double double quote the JSON response
// and its flexible (i.e. "column counts are different row to row")
Config::new(&args.flag_output)
Config::new(args.flag_output.as_ref())
.quote_style(csv::QuoteStyle::Never)
.flexible(true)
.writer()?
Expand Down Expand Up @@ -682,15 +682,15 @@ pub fn run(argv: &[&str]) -> CliResult<()> {
let report_path;
if report == ReportKind::None {
// no report, point report_wtr to /dev/null (AKA sink)
report_wtr = Config::new(&Some("sink".to_string())).writer()?;
report_wtr = Config::new(Some("sink".to_string()).as_ref()).writer()?;
report_path = String::new();
} else {
report_path = args
.arg_input
.clone()
.unwrap_or_else(|| "stdin.csv".to_string());

report_wtr = Config::new(&Some(report_path.clone() + FETCH_REPORT_SUFFIX))
report_wtr = Config::new(Some(report_path.clone() + FETCH_REPORT_SUFFIX).as_ref())
.delimiter(Some(Delimiter(b'\t')))
.writer()?;
let mut report_headers = if report == ReportKind::Detailed {
Expand Down
13 changes: 7 additions & 6 deletions src/cmd/fetchpost.rs
Original file line number Diff line number Diff line change
Expand Up @@ -402,7 +402,7 @@ pub fn run(argv: &[&str]) -> CliResult<()> {
};
log::info!("Cache Type: {cache_type:?}");

let mut rconfig = Config::new(&args.arg_input)
let mut rconfig = Config::new(args.arg_input.as_ref())
.delimiter(args.flag_delimiter)
.trim(csv::Trim::All)
.no_headers(args.flag_no_headers);
Expand All @@ -411,12 +411,12 @@ pub fn run(argv: &[&str]) -> CliResult<()> {
let mut wtr = if args.flag_new_column.is_some() {
// when adding a new column for the response, the output
// is a regular CSV file
Config::new(&args.flag_output).writer()?
Config::new(args.flag_output.as_ref()).writer()?
} else {
// otherwise, the output is a JSONL file. So we need to configure
// the csv writer so it doesn't double double quote the JSON response
// and its flexible (i.e. "column counts are different row to row")
Config::new(&args.flag_output)
Config::new(args.flag_output.as_ref())
.quote_style(csv::QuoteStyle::Never)
.flexible(true)
.writer()?
Expand All @@ -439,7 +439,7 @@ pub fn run(argv: &[&str]) -> CliResult<()> {
};

// validate column-list is a list of valid column names
let cl_config = Config::new(&args.arg_input)
let cl_config = Config::new(args.arg_input.as_ref())
.delimiter(args.flag_delimiter)
.trim(csv::Trim::All)
.no_headers(args.flag_no_headers)
Expand Down Expand Up @@ -598,15 +598,16 @@ pub fn run(argv: &[&str]) -> CliResult<()> {
let report_path;
if report == ReportKind::None {
// no report, point report_wtr to /dev/null (AKA sink)
report_wtr = Config::new(&Some("sink".to_string())).writer()?;
report_wtr = Config::new(Some("sink".to_string()).as_ref()).writer()?;
report_path = String::new();
} else {
report_path = args
.arg_input
.clone()
.unwrap_or_else(|| "stdin.csv".to_string());

report_wtr = Config::new(&Some(report_path.clone() + FETCHPOST_REPORT_SUFFIX)).writer()?;
report_wtr =
Config::new(Some(report_path.clone() + FETCHPOST_REPORT_SUFFIX).as_ref()).writer()?;
let mut report_headers = if report == ReportKind::Detailed {
headers.clone()
} else {
Expand Down
4 changes: 2 additions & 2 deletions src/cmd/fill.rs
Original file line number Diff line number Diff line change
Expand Up @@ -83,12 +83,12 @@ struct Args {
pub fn run(argv: &[&str]) -> CliResult<()> {
let args: Args = util::get_args(USAGE, argv)?;

let rconfig = Config::new(&args.arg_input)
let rconfig = Config::new(args.arg_input.as_ref())
.delimiter(args.flag_delimiter)
.no_headers(args.flag_no_headers)
.select(args.arg_selection);

let wconfig = Config::new(&args.flag_output);
let wconfig = Config::new(args.flag_output.as_ref());

let mut rdr = rconfig.reader()?;
let mut wtr = wconfig.writer()?;
Expand Down
4 changes: 2 additions & 2 deletions src/cmd/fixlengths.rs
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ struct Args {

pub fn run(argv: &[&str]) -> CliResult<()> {
let args: Args = util::get_args(USAGE, argv)?;
let mut config = Config::new(&args.arg_input)
let mut config = Config::new(args.arg_input.as_ref())
.delimiter(args.flag_delimiter)
.quote(args.flag_quote.as_byte())
.no_headers(true)
Expand Down Expand Up @@ -96,7 +96,7 @@ pub fn run(argv: &[&str]) -> CliResult<()> {
};

let mut rdr = config.reader()?;
let mut wtr = Config::new(&args.flag_output).writer()?;
let mut wtr = Config::new(args.flag_output.as_ref()).writer()?;
let mut record = csv::ByteRecord::new();
let mut record_work = csv::ByteRecord::new();
#[allow(unused_assignments)]
Expand Down
2 changes: 1 addition & 1 deletion src/cmd/flatten.rs
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ struct Args {

pub fn run(argv: &[&str]) -> CliResult<()> {
let args: Args = util::get_args(USAGE, argv)?;
let rconfig = Config::new(&args.arg_input)
let rconfig = Config::new(args.arg_input.as_ref())
.delimiter(args.flag_delimiter)
.no_headers(args.flag_no_headers);
let mut rdr = rconfig.reader()?;
Expand Down
4 changes: 2 additions & 2 deletions src/cmd/fmt.rs
Original file line number Diff line number Diff line change
Expand Up @@ -65,10 +65,10 @@ pub fn run(argv: &[&str]) -> CliResult<()> {
args.flag_out_delimiter = Some(Delimiter(b'\t'));
}

let rconfig = Config::new(&args.arg_input)
let rconfig = Config::new(args.arg_input.as_ref())
.delimiter(args.flag_delimiter)
.no_headers(true);
let mut wconfig = Config::new(&args.flag_output)
let mut wconfig = Config::new(args.flag_output.as_ref())
.delimiter(args.flag_out_delimiter)
.crlf(args.flag_crlf);

Expand Down
Loading
Loading