Data-Liberation-Front / csvlint.rb

The gem behind http://csvlint.io
MIT License
283 stars 86 forks source link

Support skipBlankRows from W3C Tabular Metadata #250

Open felixwatts opened 2 years ago

felixwatts commented 2 years ago

skipBlankRows is a boolean property of a W3C Tabular Metadata Dialect. When true, blank rows within the CSV file are valid.

I can see that internally the CsvOptions has a :skip_blanks property, but it cannot be set and also its value is ignored.

As it's part of W3C Tabular metadata it would be nice to support this when basing the schema on that, like

{
    "@context": "http://www.w3.org/ns/csvw",
    "url": "http://example.com/example1.csv",
    "tableSchema": {
                "dialect": {
                    "skipBlankRows": true
                },
        "columns": [
        ]
    }
}

...

schema = Csvlint::Schema.load_from_json(uri)
validator = Csvlint::Validator.new( "http://example.org/data.csv", nil, schema )

Also, although its not part of CSVDDF, it would be nice to support an equivalent setting when building the dialect directly, like:

dialect = {
    'skip_blank_rows': true
}
validator = Csvlint::Validator.new(@csv, dialect, schema)