Metadata-Version: 1.1
Name: csvdiff
Version: 0.3.0
Summary: Generate a diff between two CSV files.
Home-page: https://github.com/larsyencken/csvdiff
Author: Lars Yencken
Author-email: lars@yencken.org
License: BSD
Description: ===============================
        csvdiff
        ===============================
        
        .. image:: https://badge.fury.io/py/csvdiff.png
            :target: http://badge.fury.io/py/csvdiff
        
        .. image:: https://travis-ci.org/larsyencken/csvdiff.png?branch=master
                :target: https://travis-ci.org/larsyencken/csvdiff
        
        .. image:: https://pypip.in/d/csvdiff/badge.png
                :target: https://crate.io/packages/csvdiff
        
        Overview
        --------
        
        Generate a diff between two CSV files on the command-line.
        
        ``csvdiff`` allows you to compare the semantic contents of two CSV files, ignoring things like row and column ordering in order to get to what's actually changed. This is useful if you're comparing the output of an automatic system from one day to the next, so that you can look at just what's changed.
        
        It's also useful for maintaining patches to third-party data. Diffs generated by ``csvdiff`` are a subset of JSON and can be stored and applied using the matching ``csvpatch`` command. If upstream data changes, you can fetch the new version and re-apply your changes to it easily.
        
        Installing
        ----------
        
        You'll firstly need Python and pip. Then run::
        
            pip install csvdiff
        
        Examples
        --------
        
        For example, suppose we have ``a.csv``::
        
            id,name,amount
            1,bob,20
            2,eva,63
            3,sarah,7
            4,jeff,19
            6,fred,10
        
        After some changes and corrections to the data, we now have ``b.csv``::
        
            id,name,amount
            1,bob,23       <--- changed
            3,sarah,7
            4,jeff,19
            5,mira,81      <--- added
            6,fred,13      <--- changed
        
        Now we can ask for a summary of differences::
        
            $ csvdiff --style=summary id a.csv b.csv
            1 rows removed (20.0%)
            1 rows added (20.0%)
            2 rows changed (40.0%)
        
        Or look at the full diff pretty printed, to make it more readable::
        
            $ csvdiff --style=pretty --output=diff.json id a.csv b.csv
            $ cat diff.json
            {
              "_index": [
                "id"
              ],
              "added": [
                {
                  "amount": "81",
                  "id": "5",
                  "name": "mira"
                }
              ],
              "changed": [
                {
                  "fields": {
                    "amount": {
                      "from": "20",
                      "to": "23"
                    }
                  },
                  "key": [
                    "1"
                  ]
                },
                {
                  "fields": {
                    "amount": {
                      "from": "10",
                      "to": "13"
                    }
                  },
                  "key": [
                    "6"
                  ]
                }
              ],
              "removed": [
                {
                  "amount": "63",
                  "id": "2",
                  "name": "eva"
                }
              ]
            }
        
        Diffs generated this way contain all the data that's changed, and can be reapplied later if the original data changes. For example, suppose more data gets added to ``a.csv``, giving us ``a-plus.csv``::
        
            id,name,amount
            1,bob,20
            2,eva,63
            3,sarah,7
            4,jeff,19
            6,fred,10
            8,henry,9
        
        We can reapply our changes with the ``csvpatch`` command::
        
            $ csvpatch --input=diff.json --output=b-plus.csv a-plus.csv
            $ cat b-plus.csv
            id,name,amount
            1,bob,23
            3,sarah,7
            4,jeff,19
            5,mira,81
            6,fred,13
            8,henry,9
        
        This can be useful if you're using csvdiff to transform data that's outside your control. In this case, you maintain the patch file and simply reapply it when the upstream data provider gives you a fresh file.
        
        For more usage options, run ``csvdiff --help`` or ``csvpatch --help``.
        
        License
        -------
        
        BSD license
        
        
        
        
        History
        -------
        
        dev
        ~~~
        
        * Standardise patch format with a JSON schema.
        * Provide a matching csvpatch command applying diffs.
        * Add a man page and docs for csvpatch.
        * Use exit codes to indicate difference.
        * Add a --quiet option to csvdiff.
        
        0.2.0 (2014-12-30)
        ~~~~~~~~~~~~~~~~~~
        
        * Uses click for the command-line interface.
        * Drop YAML support in favour of pretty-printed JSON.
        * Uses --style option to change output style.
        * Provides a full man page.
        
        0.1.0 (2014-03-15)
        ~~~~~~~~~~~~~~~~~~
        
        * First release on PyPI.
        * Generates a JSON or YAML difference between two CSV files
        * Specify multiple key components with ``-k``
        * Can provide a difference summary
        * Assumes files use standard comma-separation, double-quoting and a header row with field names
        
Keywords: csvdiff
Platform: UNKNOWN
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
