A simple but opinionated metadata quality checker and fixer designed to work with CSVs in the DSpace ecosystem.
Go to file
Alan Orth 8e3e7a3573
.travis.yml: Only test Python 3.6 and 3.7
I'm using f-strings, which are only supported in Python 3.6+.
2019-07-29 12:13:55 +03:00
csv_metadata_quality Add "unsafe fixes" runtime option 2019-07-28 22:53:39 +03:00
data Add "unsafe fixes" runtime option 2019-07-28 22:53:39 +03:00
tests Add "unsafe fixes" runtime option 2019-07-28 22:53:39 +03:00
.build.yml .build.yml: Fix setup script 2019-07-27 00:41:57 +03:00
.flake8 Add flake8 to pipenv dev environment 2019-07-28 17:46:30 +03:00
.travis.yml .travis.yml: Only test Python 3.6 and 3.7 2019-07-29 12:13:55 +03:00
LICENSE.txt Add GPLv3 license 2019-07-26 22:16:16 +03:00
Pipfile Add flake8 to pipenv dev environment 2019-07-28 17:46:30 +03:00
Pipfile.lock Add flake8 to pipenv dev environment 2019-07-28 17:46:30 +03:00
README.md README.md: Add usage section 2019-07-29 11:30:06 +03:00
requirements-dev.txt Update python requirements 2019-07-28 17:12:20 +03:00
requirements.txt Update python requirements 2019-07-28 17:12:20 +03:00

README.md

CSV Metadata Quality builds.sr.ht status

A simple but opinionated metadata quality checker and fixer designed to work with CSVs in the DSpace ecosystem. Supports multi-value fields using the standard DSpace value separator ("||"). Despite the name it does support reading Excel files.

Written and tested using Python 3.7. CSV and Excel support comes from the Pandas library.

Functionality

  • Read/write CSV files ✓
  • Read Excel files ✓
  • Validate dates, ISSNs, ISBNs, and multi-value separators ("||") ✓
  • Fix leading, trailing, and excessive whitespace ✓
  • Fix invalid multi-value separators ("|") using --unsafe-fixes

Installation

The easiest way to install CSV Metadata Quality is with pipenv:

$ git clone https://git.sr.ht/~alanorth/csv-metadata-quality
$ cd csv-metadata-quality
$ pipenv install
$ pipenv shell

Otherwise, if you don't have pipenv, you can use a vanilla Python virtual environment:

$ git clone https://git.sr.ht/~alanorth/csv-metadata-quality
$ cd csv-metadata-quality
$ python3 -m venv venv
$ source venv/bin/activate
$ pip install -r requirements.txt

Usage

Run CSV Metadata Quality with the --help flag to see available options:

$ python -m csv_metadata_quality --help

To validate and clean a CSV file you must specify input and output files using the -i and -o options. For example, using the included test file:

$ python -m csv_metadata_quality -i data/test.csv -o /tmp/test.csv

Todo

  • Reporting / summary
  • Real logging

License

This work is licensed under the GPLv3.

The license allows you to use and modify the work for personal and commercial purposes, but if you distribute the work you must provide users with a means to access the source code for the version you are distributing. Read more about the GPLv3 at TL;DR Legal.