This fork extends the command line interface (CLI) and is distributed as a convenient one-file-executable (Windows, Linux, Mac). It is also available via Docker Hub, PyPI and Binder.
Go to file
Felix Lohmeier fce77d8d78 new README with video demo 2019-05-08 23:23:55 +02:00
docker fix docker entrypoint 2017-11-20 05:28:30 +01:00
google release v0.3.3: support for templating export, fixed some bugs 2017-11-23 01:48:29 +01:00
tests update options to CamelCase 2017-11-20 04:55:51 +01:00
.gitignore ignore refine.spec (pyinstaller) 2017-11-19 23:24:52 +01:00
COPYING.txt Apply GPL 2011-05-01 17:24:12 +00:00
MANIFEST.in Add MANIFEST.in for correct setup.py sdist upload behavior 2011-07-22 11:00:35 +00:00
Makefile Remove README.txt too 2013-10-10 16:42:29 +05:00
README.md new README with video demo 2019-05-08 23:23:55 +02:00
openrefine-client-peek.gif new README with video demo 2019-05-08 23:23:55 +02:00
refine.py improved templating option splitToFiles 2017-12-11 17:32:10 +01:00
requirements.txt Revert "included urllib2_file.py in the package to ease installation" 2017-11-17 16:47:31 +01:00
setup.py Google Refine -> OpenRefine 2013-10-10 16:41:10 +05:00

README.md

OpenRefine Python Client with extended command line interface

The OpenRefine Python Client Library from PaulMakepeace provides an interface to communicating with an OpenRefine server. This fork extends the command line interface (CLI) and supports communication between docker containers.

Download

One-file-executables:

For native Python installation on Windows, Mac or Linux see Installation below.

Peek

A short video loop that demonstrates the basic features (list, create, apply, export)

video loop that demonstrates basic features

Usage

Command line interface:

  • list all projects: --list
  • create project from file: --create [FILE]
  • apply rules from json file: --apply [FILE.json] [PROJECTID/PROJECTNAME]
  • export project to file: --export [PROJECTID/PROJECTNAME] --output=FILE.tsv
  • templating export: --export "My Address Book" --template='{ "friend" : {{jsonize(cells["friend"].value)}}, "address" : {{jsonize(cells["address"].value)}} }' --prefix='{ "address" : [' --rowSeparator ',' --suffix '] }' --filterQuery="^mary$"
  • show project metadata: --info [PROJECTID/PROJECTNAME]
  • delete project: --delete [PROJECTID/PROJECTNAME]
  • check --help for further options...

If you are familiar with python you may try all functions interactively (python -i refine.py) or use this library in your own python scripts. Some Examples:

  • show version of OpenRefine server: refine.RefineServer().get_version()
  • show total rows of project 2151545447855: refine.RefineProject(refine.RefineServer(),'2151545447855').do_json('get-rows')['total']
  • compute clusters of project 2151545447855 and column key: refine.RefineProject(refine.RefineServer(),'2151545447855').compute_clusters('key')

Configuration

By default the OpenRefine server URL is http://127.0.0.1:3333

The environment variables OPENREFINE_HOST and OPENREFINE_PORT enable overriding the host & port as well as the command line options -H and -P.

Installation

Install dependencies, which currently is urllib2_file:

sudo pip install -r requirements.txt

Ensure you have a Refine server running somewhere and, if necessary, set the environment vars as above.

Run tests, build, and install:

python setup.py test # to do a subset, e.g., --test-suite tests.test_facet

python setup.py build

python setup.py install

There is a Makefile that will do this too, and more.

Credits

Paul Makepeace, author

David Huynh, [initial cut](<http://markmail.org/message/jsxzlcu3gn6drtb7)

Artfinder, inspiration

Felix Lohmeier, extended the CLI features

Some data used in the test suite has been used from publicly available sources,