DataPusher is a standalone web service that automatically downloads any CSV or XLS (Excel) data files from a CKAN site's resources when they are added to the CKAN site, parses them to pull out the actual data, then uses the DataStore API to push the data into the CKAN site's DataStore.
This makes the data from the resource files available via CKAN's DataStore API. In particular, many of CKAN's data preview and visualization plugins will only work (or will work much better) with files whose contents are in the DataStore.
To get it working you have to:
- Deploy a DataPusher instance to a server (or use an existing DataPusher instance)
- Enable and configure the
datastore
plugin on your CKAN site. - Enable and configure the
datapusher
plugin on your CKAN site.
For details see the DataPusher documentation.
Note that if you installed CKAN using the package install option then a DataPusher instance should be automatically installed and configured to work with your CKAN site.
DataPusher is a replacement for DataStorer. It's built using CKAN Service Provider and Messytables.
The original author of DataPusher was Dominik Moritz dominik.moritz@okfn.org. For the current list of contributors see github.com/ckan/datapusher/contributors
To install DataPusher for development:
git clone https://github.com/ckan/datapusher.git
cd datapusher
pip install -r requirements-dev.txt
To run the tests:
nosetests
To build the documentation:
pip install -r doc-requirements.txt
python setup.py build_sphinx
To release a new version of DataPusher:
-
Increment the version number in setup.py
-
Build a source distribution of the new version and publish it to PyPI:
python setup.py sdist python setup.py sdist upload
You may want to test installing and running the new version from PyPI in a clean virtualenv before continuing to the next step.
-
Commit your setup.py changes to git, tag the release, and push the changes and the tag to GitHub:
git commit setup.py -m "Bump version number" git tag 0.0.1 git push git push origin 0.0.1
(Replace both instances of 0.0.1 with the number of the version you're releasing.)