|
1
|
|
|
#!/usr/bin/env python |
|
2
|
|
|
# -*- coding: utf-8 -*- |
|
3
|
|
|
from __future__ import unicode_literals |
|
4
|
|
|
from codecs import open |
|
5
|
|
|
try: |
|
6
|
|
|
import urllib.request as urlrequest |
|
7
|
|
|
except ImportError: |
|
8
|
|
|
import urllib as urlrequest |
|
9
|
|
|
from setuptools.command.install import install |
|
10
|
|
|
from setuptools.command.develop import develop |
|
11
|
|
|
from setuptools import setup |
|
12
|
|
|
import re |
|
13
|
|
|
import os |
|
14
|
|
|
import sys |
|
15
|
|
|
|
|
16
|
|
|
# get version |
|
17
|
|
|
with open('processors/__init__.py', 'r', 'utf-8') as fd: |
|
18
|
|
|
version = re.search(r'^__version__\s*=\s*[\'"]([^\'"]*)[\'"]', |
|
19
|
|
|
fd.read(), re.MULTILINE).group(1) |
|
20
|
|
|
|
|
21
|
|
|
class JarManager(object): |
|
22
|
|
|
|
|
23
|
|
|
ppjar = os.path.join("processors", "processors-server.jar") |
|
24
|
|
|
|
|
25
|
|
|
@classmethod |
|
26
|
|
|
def download_jar(cls): |
|
27
|
|
|
# download processors-server.jar |
|
28
|
|
|
ppjar = JarManager.ppjar |
|
29
|
|
|
percent = 0 |
|
30
|
|
|
def dlProgress(count, blockSize, totalSize): |
|
31
|
|
|
percent = int(count*blockSize*100/totalSize) |
|
32
|
|
|
sys.stdout.write("\r{}% complete".format(percent)) |
|
33
|
|
|
sys.stdout.flush() |
|
34
|
|
|
jar_url = "http://py-processors.parsertongue.com/v{}/processors-server.jar".format(version) |
|
35
|
|
|
print("Downloading {} from {} ...".format(ppjar, jar_url)) |
|
36
|
|
|
urlretrieve(jar_url, ppjar, reporthook=dlProgress) |
|
|
|
|
|
|
37
|
|
|
print("\nInstalling py-processors ...") |
|
38
|
|
|
|
|
39
|
|
|
class PyProcessorsDevelop(develop): |
|
40
|
|
|
|
|
41
|
|
|
def run(self): |
|
42
|
|
|
# download processors-server.jar |
|
43
|
|
|
#JarManager.download_jar() |
|
44
|
|
|
develop.run(self) |
|
45
|
|
|
|
|
46
|
|
|
class PyProcessorsInstall(install): |
|
47
|
|
|
"""Downloads processors-server.jar for use in py-processors""" |
|
48
|
|
|
|
|
49
|
|
|
def run(self): |
|
50
|
|
|
# download processors-server.jar |
|
51
|
|
|
#JarManager.download_jar() |
|
52
|
|
|
# install everything else |
|
53
|
|
|
install.run(self) |
|
54
|
|
|
|
|
55
|
|
|
# use requirements.txt as deps list |
|
56
|
|
|
with open('requirements.txt', 'r', 'utf-8') as f: |
|
57
|
|
|
required = f.read().splitlines() |
|
58
|
|
|
|
|
59
|
|
|
# get readme |
|
60
|
|
|
with open('docs/index.md', 'r', 'utf-8') as f: |
|
61
|
|
|
readme = f.read() |
|
62
|
|
|
|
|
63
|
|
|
test_deps = ["green>=2.5.0", "coverage"] |
|
64
|
|
|
viz_deps = ["jupyter>=1.0.0", "ipython>=6.2.1", "traitlets>=4.3.2"] |
|
65
|
|
|
|
|
66
|
|
|
setup(name='py-processors', |
|
67
|
|
|
packages=["processors"], |
|
68
|
|
|
version=version, |
|
69
|
|
|
keywords=['nlp', 'processors', 'jvm'], |
|
70
|
|
|
description="A wrapper++ for interacting with the CLU Lab's processors library.", |
|
71
|
|
|
long_description=readme, |
|
72
|
|
|
url='https://github.com/clu-ling/py-processors', |
|
73
|
|
|
download_url="https://github.com/clu-ling/py-processors/archive/v{}.zip".format(version), |
|
74
|
|
|
author='myedibleenso', |
|
75
|
|
|
author_email='[email protected]', |
|
76
|
|
|
license='Apache 2.0', |
|
77
|
|
|
install_requires=required, |
|
78
|
|
|
cmdclass={ |
|
79
|
|
|
'install': PyProcessorsInstall, |
|
80
|
|
|
'develop': PyProcessorsDevelop, |
|
81
|
|
|
}, |
|
82
|
|
|
classifiers=( |
|
83
|
|
|
"Intended Audience :: Science/Research", |
|
84
|
|
|
"Natural Language :: English", |
|
85
|
|
|
"Topic :: Scientific/Engineering :: Artificial Intelligence", |
|
86
|
|
|
"Programming Language :: Python :: 3" |
|
87
|
|
|
), |
|
88
|
|
|
tests_require=test_deps, |
|
89
|
|
|
extras_require={ |
|
90
|
|
|
'test': test_deps, |
|
91
|
|
|
'jupyter': viz_deps |
|
92
|
|
|
}, |
|
93
|
|
|
include_package_data=True, |
|
94
|
|
|
zip_safe=False) |
|
95
|
|
|
|