-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathsetup.py
108 lines (97 loc) · 3.43 KB
/
setup.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
#
# setup.py
#
# Copyright (c) 2017 Junpei Kawamoto
#
# This file is part of rgmining-amazon-dataset.
#
# rgmining-amazon-dataset is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# rgmining-amazon-dataset is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with rgmining-amazon-dataset. If not, see <http://www.gnu.org/licenses/>.
#
# pylint: disable=invalid-name
"""Package information about an amazon dataset for review graph mining.
"""
import distutils.command.install_data
from os import path
import site
import sys
import urllib
from setuptools import setup
def read(fname):
"""Read a file.
"""
return open(path.join(path.dirname(__file__), fname)).read()
class CustomInstallData(distutils.command.install_data.install_data):
"""Custom install data command to download data files from the web.
"""
def run(self):
"""Before executing run command, download data files.
"""
for f in self.data_files:
if not isinstance(f, tuple):
continue
for i, u in enumerate(f[1]):
base = path.basename(u)
f[1][i] = path.join(sys.prefix, f[0], base)
if not path.exists(f[1][i]):
f[1][i] = path.join(sys.prefix, "local", f[0], base)
if not path.exists(f[1][i]):
f[1][i] = path.join(site.getuserbase(), f[0], base)
if not path.exists(f[1][i]):
f[1][i] = urllib.urlretrieve(u, base)[0]
return distutils.command.install_data.install_data.run(self)
def load_requires_from_file(filepath):
"""Read a package list from a given file path.
Args:
filepath: file path of the package list.
Returns:
a list of package names.
"""
with open(filepath) as fp:
return [pkg_name.strip() for pkg_name in fp.readlines()]
setup(
name="rgmining-amazon-dataset",
use_scm_version=True,
author="Junpei Kawamoto",
author_email="[email protected]",
description="An Amazon dataset for Review Graph Mining Project",
long_description=read("README.rst"),
url="https://github.com/rgmining/amazon",
py_modules=[
"amazon"
],
setup_requires=[
"setuptools_scm"
],
install_requires=load_requires_from_file("requirements.txt"),
data_files=[(
"rgmining/data",
["http://times.cs.uiuc.edu/~wang296/Data/LARA/Amazon/AmazonReviews.zip"]
)],
test_suite="tests.suite",
license="GPLv3",
cmdclass={
"install_data": CustomInstallData
},
classifiers=[
"Development Status :: 4 - Beta",
"Intended Audience :: Science/Research",
"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
"Natural Language :: English",
"Programming Language :: Python",
"Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 3.6",
"Topic :: Software Development :: Libraries",
"Topic :: Scientific/Engineering :: Information Analysis"
]
)