#csv #schema #python #validate #infer #data-type #csv-input

巴克维尔

在 Rust 中推断和验证数据类型模式

3 个版本 (破坏性)

0.3.0 2024 年 3 月 3 日
0.2.0 2023 年 9 月 11 日
0.1.0 2023 年 9 月 6 日

#1244数据库接口

每月 46 次下载

MIT 许可证

625KB
615


Crates.io docs.rs GitHub

在 Rust 和 Python 中推断和验证数据类型模式。

RustPython

安装

cargo add baskerville

示例

# mascots.csv
Name,LOC,Species
Ferris,42,Crab
Corro,7,Urchin
use baskerville::{infer_csv_with_options, CsvInput, InferOptions};

fn main() {
    let fields = infer_csv_with_options(
        CsvInput::Path("mascots.csv"),
        &mut InferOptions {
            has_headers: true,
            ..InferOptions::default()
        },
    )
    .unwrap();
    println!("{fields}");
}

输出

╭──────┬─────────┬─────────╮
│ Name │ LOC     │ Species │
├──────┼─────────┼─────────┤
│ Text │ Integer │ Text    │
│      │ Float   │         │
│      │ Text    │         │
╰──────┴─────────┴─────────╯

贡献

版本控制

该仓库基于 常规提交 进行版本控制。

依赖项

~2.9–9.5MB
~76K SLoC