refactor to allow module execution

This commit is contained in:
Felix Lohmeier 2019-08-01 16:15:43 +02:00
parent 04db513453
commit a0123e9511
16 changed files with 32 additions and 68 deletions

View File

@ -1,32 +0,0 @@
# XXX have a Makefile written by someone that knows Makefiles...
all: test build install
readme:
# requires docutils, e.g. pip install docutils
rst2html.py README.rst > README.html
w3m -dump README.html | unix2dos > README.txt
test:
python setup.py test
# tests that don't require a Refine server running
smalltest:
python setup.py test --test-suite tests.test_refine_small
python setup.py test --test-suite tests.test_facet
python setup.py test --test-suite tests.test_history
build:
python setup.py build
install:
sudo python setup.py install
clean:
find . -name '*.pyc' | xargs rm -f
# XXX is there some way of having setup.py clean up its junk?
rm -rf README.{html,txt} build dist refine_client.egg-info distribute-*
upload: clean
python setup.py sdist upload

View File

@ -1,6 +1,7 @@
# OpenRefine Python Client with extended command line interface
The [OpenRefine Python Client Library from PaulMakepeace](https://github.com/PaulMakepeace/refine-client-py) provides an interface to communicating with an [OpenRefine](http://openrefine.org) server. This fork extends the command line interface (CLI) and supports communication between docker containers.
The [OpenRefine Python Client Library from PaulMakepeace](https://github.com/PaulMakepeace/refine-client-py) provides an interface to communicating with an [OpenRefine](http://openrefine.org) server.
This fork extends the command line interface (CLI) and supports communication between docker containers.
## Download
@ -31,7 +32,7 @@ Command line interface:
- 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:
If you are familiar with python you may try all functions interactively (`python -i refine/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']`
@ -45,25 +46,16 @@ The environment variables `OPENREFINE_HOST` and `OPENREFINE_PORT` enable overrid
## Installation
Install dependencies, which currently is `urllib2_file`:
```pip install openrefine-client```
```
sudo pip install -r requirements.txt
```
(requires Python 2.x, depends on urllib2_file>=0.2.1)
Ensure you have a Refine server running somewhere and, if necessary, set the environment vars as above.
## Tests
Run tests, build, and install:
Ensure you have an OpenRefine server running somewhere and, if necessary, set the environment vars as above.
```
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.
* all tests: ```python setup.py test```
* a subset: ```python setup.py test --test-suite tests.test_facet```
## Credits

View File

@ -3,26 +3,26 @@ LABEL maintainer="felixlohmeier@opencultureconsulting.com"
# 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.
# Source: https://github.com/opencultureconsulting/openrefine-client
# Install python and pip
# ... and curl for https://github.com/opencultureconsulting/openrefine-batch
# Install python, pip, unzip, curl and grep
RUN apk add --no-cache \
python \
py-pip \
curl
unzip \
curl \
grep
# Install dependency urllib2_file
RUN pip install urllib2_file==0.2.1
# Download and build openrefine-client-master
# Copy python scripts
WORKDIR /app
COPY google google
COPY refine.py .
COPY refine/* ./
# Change docker WORKDIR (shall be mounted by user)
WORKDIR /data
# Execute refine.py
ENTRYPOINT ["/app/refine.py"]
# Execute main python script
ENTRYPOINT ["/app/__main__.py"]
# Default command: print help
CMD ["-h"]

View File

@ -25,7 +25,7 @@ import sys
import time
import json
from google.refine import refine
import refine
reload(sys)
sys.setdefaultencoding('utf-8')
@ -37,7 +37,7 @@ class myParser(optparse.OptionParser):
PARSER = \
myParser(description='Script to provide a command line interface to an OpenRefine server.',
usage='usage: %prog [--help | OPTIONS]',
usage='usage: openrefine-client [--help | OPTIONS]',
epilog="""
Examples:
--list # show list of projects (id: name)

View File

@ -30,8 +30,8 @@ import urllib2_file
import urllib2
import urlparse
from google.refine import facet
from google.refine import history
import facet
import history
REFINE_HOST = os.environ.get('OPENREFINE_HOST', os.environ.get('GOOGLE_REFINE_HOST', '127.0.0.1'))
REFINE_PORT = os.environ.get('OPENREFINE_PORT', os.environ.get('GOOGLE_REFINE_PORT', '3333'))

View File

@ -25,7 +25,7 @@ def read(filename):
return open(os.path.join(os.path.dirname(__file__), filename)).read()
setup(name='openrefine-client',
version='0.3.4',
version='0.3.5',
description=('The OpenRefine Python Client Library provides an '
'interface to communicating with an OpenRefine server. '
'This fork extends the command line interface (CLI).'),
@ -34,7 +34,11 @@ setup(name='openrefine-client',
author_email='felix.lohmeier@opencultureconsulting.com',
url='https://github.com/opencultureconsulting/openrefine-client',
packages=find_packages(exclude=['tests']),
python_requires='>2.6, !=3.*',
install_requires=['urllib2_file'],
entry_points={
'console_scripts': [ 'openrefine-client = refine.__main__:main' ]
},
platforms=['Any'],
classifiers = [
'Development Status :: 3 - Alpha',

View File

@ -15,7 +15,7 @@ and REFINE_PORT.
import os
import unittest
from google.refine import refine
from refine import refine
PATH_TO_TEST_DATA = os.path.join(os.path.dirname(__file__), 'data')

View File

@ -8,7 +8,7 @@ test_facet.py
import json
import unittest
from google.refine.facet import *
from refine.facet import *
class CamelTest(unittest.TestCase):

View File

@ -7,7 +7,7 @@ test_history.py
import unittest
from google.refine.history import *
from refine.history import *
class HistoryTest(unittest.TestCase):

View File

@ -12,7 +12,7 @@ OPENREFINE_HOST and OPENREFINE_PORT.
import csv
import unittest
from google.refine import refine
from refine import refine
from tests import refinetest

View File

@ -7,7 +7,7 @@ test_refine_small.py
import unittest
from google.refine import refine
from refine import refine
class RefineRowsTest(unittest.TestCase):

View File

@ -16,7 +16,7 @@ OPENREFINE_HOST and OPENREFINE_PORT.
import unittest
from google.refine import facet
from refine import facet
from tests import refinetest