-
Notifications
You must be signed in to change notification settings - Fork 15
/
Copy pathsetup.py
executable file
·117 lines (98 loc) · 3.55 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
109
110
111
112
113
114
115
116
117
#!/usr/bin/env python
import os
import sys
import pkg_resources
from setuptools import setup, find_packages
from setuptools.command.install import install
NAME = 'Orange3-Recommendation'
VERSION = '0.1.3'
DESCRIPTION = 'Orange3 add-on for recommender systems'
README_FILE = os.path.join(os.path.dirname(__file__), 'README.pypi')
LONG_DESCRIPTION = open(README_FILE).read()
AUTHOR = 'Bioinformatics Laboratory, FRI UL'
AUTHOR_EMAIL = '[email protected]'
URL = "https://github.com/biolab/orange3-recommendation"
DOWNLOAD_URL = "https://github.com/biolab/orange3-recommendation/tarball/{}".format(VERSION)
ENTRY_POINTS = {
'orange3.addon': (
'recommendation = orangecontrib.recommendation',
),
# Entry point used to specify packages containing tutorials accessible
# from welcome screen. Tutorials are saved Orange Workflows (.ows files).
'orange.widgets.tutorials': (
# Syntax: any_text = path.to.package.containing.tutorials
'recommendationtutorials = orangecontrib.recommendation.tutorials',
),
# Entry point used to specify packages containing widgets.
'orange.widgets': (
# Syntax: category name = path.to.package.containing.widgets
# Widget category specification can be seen in
# orangecontrib/example/widgets/__init__.py
'Recommendation = orangecontrib.recommendation.widgets',
),
# Register widget help
"orange.canvas.help": (
'html-index = orangecontrib.recommendation.widgets:WIDGET_HELP_PATH',),
}
KEYWORDS = [
# [PyPi](https://pypi.python.org) packages with keyword "orange3 add-on"
# can be installed using the Orange Add-on Manager
'orange3-recommendation',
'data mining',
'orange3 add-on',
]
INSTALL_REQUIRES = sorted(set(
line.partition('#')[0].strip()
for line in open(os.path.join(os.path.dirname(__file__), 'requirements.txt'))
) - {''})
if 'test' in sys.argv:
extra_setuptools_args = dict(
test_suite='orangecontrib.recommendation.tests.coverage',
)
else:
extra_setuptools_args = dict()
class StoreDatasets(install):
def run(self):
super().run()
old_cwd = os.getcwd()
os.chdir(os.path.abspath(os.path.sep))
src = pkg_resources.resource_filename('orangecontrib.recommendation',
'datasets')
dst = os.path.join(pkg_resources.resource_filename('Orange', 'datasets'),
'recommendation')
try:
os.remove(dst)
except OSError:
pass
try:
os.symlink(src, dst, target_is_directory=True)
except OSError:
pass
finally:
os.chdir(old_cwd)
if __name__ == '__main__':
setup(
name=NAME,
description=DESCRIPTION,
long_description=LONG_DESCRIPTION,
version=VERSION,
author=AUTHOR,
author_email=AUTHOR_EMAIL,
url=URL,
download_url=DOWNLOAD_URL,
cmdclass={'install': StoreDatasets},
packages=find_packages(),
package_data={
"orangecontrib.recommendation": ["datasets/*.tab",
"datasets/*.csv"],
"orangecontrib.recommendation.widgets": ["icons/*.svg"],
"orangecontrib.recommendation.tutorials": ["*.ows"],
},
include_package_data=True,
install_requires=INSTALL_REQUIRES,
entry_points=ENTRY_POINTS,
keywords=KEYWORDS,
namespace_packages=['orangecontrib'],
zip_safe=False,
**extra_setuptools_args
)