summaryrefslogtreecommitdiff
path: root/python-csv-diff.spec
diff options
context:
space:
mode:
Diffstat (limited to 'python-csv-diff.spec')
-rw-r--r--python-csv-diff.spec423
1 files changed, 423 insertions, 0 deletions
diff --git a/python-csv-diff.spec b/python-csv-diff.spec
new file mode 100644
index 0000000..a1ef05a
--- /dev/null
+++ b/python-csv-diff.spec
@@ -0,0 +1,423 @@
+%global _empty_manifest_terminate_build 0
+Name: python-csv-diff
+Version: 1.1
+Release: 1
+Summary: Python CLI tool and library for diffing CSV and JSON files
+License: Apache License, Version 2.0
+URL: https://github.com/simonw/csv-diff
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/df/3e/1873856cd1cdb2b373f592e4985d5de99e485daff425c37d6916c89adb3c/csv-diff-1.1.tar.gz
+BuildArch: noarch
+
+Requires: python3-click
+Requires: python3-dictdiffer
+Requires: python3-pytest
+
+%description
+# csv-diff
+
+[![PyPI](https://img.shields.io/pypi/v/csv-diff.svg)](https://pypi.org/project/csv-diff/)
+[![Changelog](https://img.shields.io/github/v/release/simonw/csv-diff?include_prereleases&label=changelog)](https://github.com/simonw/csv-diff/releases)
+[![Tests](https://github.com/simonw/csv-diff/workflows/Test/badge.svg)](https://github.com/simonw/csv-diff/actions?query=workflow%3ATest)
+[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/simonw/csv-diff/blob/main/LICENSE)
+
+Tool for viewing the difference between two CSV, TSV or JSON files. See [Generating a commit log for San Francisco’s official list of trees](https://simonwillison.net/2019/Mar/13/tree-history/) (and the [sf-tree-history repo commit log](https://github.com/simonw/sf-tree-history/commits)) for background information on this project.
+
+## Installation
+
+ pip install csv-diff
+
+## Usage
+
+Consider two CSV files:
+
+`one.csv`
+
+ id,name,age
+ 1,Cleo,4
+ 2,Pancakes,2
+
+`two.csv`
+
+ id,name,age
+ 1,Cleo,5
+ 3,Bailey,1
+
+`csv-diff` can show a human-readable summary of differences between the files:
+
+ $ csv-diff one.csv two.csv --key=id
+ 1 row changed, 1 row added, 1 row removed
+
+ 1 row changed
+
+ Row 1
+ age: "4" => "5"
+
+ 1 row added
+
+ id: 3
+ name: Bailey
+ age: 1
+
+ 1 row removed
+
+ id: 2
+ name: Pancakes
+ age: 2
+
+The `--key=id` option means that the `id` column should be treated as the unique key, to identify which records have changed.
+
+The tool will automatically detect if your files are comma- or tab-separated. You can over-ride this automatic detection and force the tool to use a specific format using `--format=tsv` or `--format=csv`.
+
+You can also feed it JSON files, provided they are a JSON array of objects where each object has the same keys. Use `--format=json` if your input files are JSON.
+
+Use `--show-unchanged` to include full details of the unchanged values for rows with at least one change in the diff output:
+
+ % csv-diff one.csv two.csv --key=id --show-unchanged
+ 1 row changed
+
+ id: 1
+ age: "4" => "5"
+
+ Unchanged:
+ name: "Cleo"
+
+You can use the `--json` option to get a machine-readable difference:
+
+ $ csv-diff one.csv two.csv --key=id --json
+ {
+ "added": [
+ {
+ "id": "3",
+ "name": "Bailey",
+ "age": "1"
+ }
+ ],
+ "removed": [
+ {
+ "id": "2",
+ "name": "Pancakes",
+ "age": "2"
+ }
+ ],
+ "changed": [
+ {
+ "key": "1",
+ "changes": {
+ "age": [
+ "4",
+ "5"
+ ]
+ }
+ }
+ ],
+ "columns_added": [],
+ "columns_removed": []
+ }
+
+## As a Python library
+
+You can also import the Python library into your own code like so:
+
+ from csv_diff import load_csv, compare
+ diff = compare(
+ load_csv(open("one.csv"), key="id"),
+ load_csv(open("two.csv"), key="id")
+ )
+
+`diff` will now contain the same data structure as the output in the `--json` example above.
+
+If the columns in the CSV have changed, those added or removed columns will be ignored when calculating changes made to specific rows.
+
+
+
+
+%package -n python3-csv-diff
+Summary: Python CLI tool and library for diffing CSV and JSON files
+Provides: python-csv-diff
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-csv-diff
+# csv-diff
+
+[![PyPI](https://img.shields.io/pypi/v/csv-diff.svg)](https://pypi.org/project/csv-diff/)
+[![Changelog](https://img.shields.io/github/v/release/simonw/csv-diff?include_prereleases&label=changelog)](https://github.com/simonw/csv-diff/releases)
+[![Tests](https://github.com/simonw/csv-diff/workflows/Test/badge.svg)](https://github.com/simonw/csv-diff/actions?query=workflow%3ATest)
+[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/simonw/csv-diff/blob/main/LICENSE)
+
+Tool for viewing the difference between two CSV, TSV or JSON files. See [Generating a commit log for San Francisco’s official list of trees](https://simonwillison.net/2019/Mar/13/tree-history/) (and the [sf-tree-history repo commit log](https://github.com/simonw/sf-tree-history/commits)) for background information on this project.
+
+## Installation
+
+ pip install csv-diff
+
+## Usage
+
+Consider two CSV files:
+
+`one.csv`
+
+ id,name,age
+ 1,Cleo,4
+ 2,Pancakes,2
+
+`two.csv`
+
+ id,name,age
+ 1,Cleo,5
+ 3,Bailey,1
+
+`csv-diff` can show a human-readable summary of differences between the files:
+
+ $ csv-diff one.csv two.csv --key=id
+ 1 row changed, 1 row added, 1 row removed
+
+ 1 row changed
+
+ Row 1
+ age: "4" => "5"
+
+ 1 row added
+
+ id: 3
+ name: Bailey
+ age: 1
+
+ 1 row removed
+
+ id: 2
+ name: Pancakes
+ age: 2
+
+The `--key=id` option means that the `id` column should be treated as the unique key, to identify which records have changed.
+
+The tool will automatically detect if your files are comma- or tab-separated. You can over-ride this automatic detection and force the tool to use a specific format using `--format=tsv` or `--format=csv`.
+
+You can also feed it JSON files, provided they are a JSON array of objects where each object has the same keys. Use `--format=json` if your input files are JSON.
+
+Use `--show-unchanged` to include full details of the unchanged values for rows with at least one change in the diff output:
+
+ % csv-diff one.csv two.csv --key=id --show-unchanged
+ 1 row changed
+
+ id: 1
+ age: "4" => "5"
+
+ Unchanged:
+ name: "Cleo"
+
+You can use the `--json` option to get a machine-readable difference:
+
+ $ csv-diff one.csv two.csv --key=id --json
+ {
+ "added": [
+ {
+ "id": "3",
+ "name": "Bailey",
+ "age": "1"
+ }
+ ],
+ "removed": [
+ {
+ "id": "2",
+ "name": "Pancakes",
+ "age": "2"
+ }
+ ],
+ "changed": [
+ {
+ "key": "1",
+ "changes": {
+ "age": [
+ "4",
+ "5"
+ ]
+ }
+ }
+ ],
+ "columns_added": [],
+ "columns_removed": []
+ }
+
+## As a Python library
+
+You can also import the Python library into your own code like so:
+
+ from csv_diff import load_csv, compare
+ diff = compare(
+ load_csv(open("one.csv"), key="id"),
+ load_csv(open("two.csv"), key="id")
+ )
+
+`diff` will now contain the same data structure as the output in the `--json` example above.
+
+If the columns in the CSV have changed, those added or removed columns will be ignored when calculating changes made to specific rows.
+
+
+
+
+%package help
+Summary: Development documents and examples for csv-diff
+Provides: python3-csv-diff-doc
+%description help
+# csv-diff
+
+[![PyPI](https://img.shields.io/pypi/v/csv-diff.svg)](https://pypi.org/project/csv-diff/)
+[![Changelog](https://img.shields.io/github/v/release/simonw/csv-diff?include_prereleases&label=changelog)](https://github.com/simonw/csv-diff/releases)
+[![Tests](https://github.com/simonw/csv-diff/workflows/Test/badge.svg)](https://github.com/simonw/csv-diff/actions?query=workflow%3ATest)
+[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/simonw/csv-diff/blob/main/LICENSE)
+
+Tool for viewing the difference between two CSV, TSV or JSON files. See [Generating a commit log for San Francisco’s official list of trees](https://simonwillison.net/2019/Mar/13/tree-history/) (and the [sf-tree-history repo commit log](https://github.com/simonw/sf-tree-history/commits)) for background information on this project.
+
+## Installation
+
+ pip install csv-diff
+
+## Usage
+
+Consider two CSV files:
+
+`one.csv`
+
+ id,name,age
+ 1,Cleo,4
+ 2,Pancakes,2
+
+`two.csv`
+
+ id,name,age
+ 1,Cleo,5
+ 3,Bailey,1
+
+`csv-diff` can show a human-readable summary of differences between the files:
+
+ $ csv-diff one.csv two.csv --key=id
+ 1 row changed, 1 row added, 1 row removed
+
+ 1 row changed
+
+ Row 1
+ age: "4" => "5"
+
+ 1 row added
+
+ id: 3
+ name: Bailey
+ age: 1
+
+ 1 row removed
+
+ id: 2
+ name: Pancakes
+ age: 2
+
+The `--key=id` option means that the `id` column should be treated as the unique key, to identify which records have changed.
+
+The tool will automatically detect if your files are comma- or tab-separated. You can over-ride this automatic detection and force the tool to use a specific format using `--format=tsv` or `--format=csv`.
+
+You can also feed it JSON files, provided they are a JSON array of objects where each object has the same keys. Use `--format=json` if your input files are JSON.
+
+Use `--show-unchanged` to include full details of the unchanged values for rows with at least one change in the diff output:
+
+ % csv-diff one.csv two.csv --key=id --show-unchanged
+ 1 row changed
+
+ id: 1
+ age: "4" => "5"
+
+ Unchanged:
+ name: "Cleo"
+
+You can use the `--json` option to get a machine-readable difference:
+
+ $ csv-diff one.csv two.csv --key=id --json
+ {
+ "added": [
+ {
+ "id": "3",
+ "name": "Bailey",
+ "age": "1"
+ }
+ ],
+ "removed": [
+ {
+ "id": "2",
+ "name": "Pancakes",
+ "age": "2"
+ }
+ ],
+ "changed": [
+ {
+ "key": "1",
+ "changes": {
+ "age": [
+ "4",
+ "5"
+ ]
+ }
+ }
+ ],
+ "columns_added": [],
+ "columns_removed": []
+ }
+
+## As a Python library
+
+You can also import the Python library into your own code like so:
+
+ from csv_diff import load_csv, compare
+ diff = compare(
+ load_csv(open("one.csv"), key="id"),
+ load_csv(open("two.csv"), key="id")
+ )
+
+`diff` will now contain the same data structure as the output in the `--json` example above.
+
+If the columns in the CSV have changed, those added or removed columns will be ignored when calculating changes made to specific rows.
+
+
+
+
+%prep
+%autosetup -n csv-diff-1.1
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-csv-diff -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Tue Apr 11 2023 Python_Bot <Python_Bot@openeuler.org> - 1.1-1
+- Package Spec generated