forked from fastai/fastai
-
Notifications
You must be signed in to change notification settings - Fork 0
/
setup.py
133 lines (111 loc) · 3.53 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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""The setup script."""
import sys
from pathlib import Path
from setuptools import setup, find_packages
# note: version is maintained inside fastai/version.py
exec(open('fastai/version.py').read())
with open('README.md') as readme_file: readme = readme_file.read()
# XXX: re-enable once we actually maintain this file.
history = ''
#with open('CHANGES.md') as history_file: history = history_file.read()
def to_list(buffer): return list(filter(None, map(str.strip, buffer.splitlines())))
### normal dependencies ###
#
# these get resolved and installed via either of these two:
#
# pip install fastai
# pip install -e .
#
# XXX: require torch>=1.0.0 once it's released, for now get the user to install it explicitly
# XXX: using a workaround for torchvision, once torch-1.0.0 is out and a new torchvision depending on it is released switch to torchvision>=0.2.2
requirements = to_list("""
fastprogress>=0.1.10
ipython
jupyter
matplotlib
numpy>=1.12
pandas
Pillow
requests
scipy
spacy>=2.0.16
torchvision-nightly
typing
""")
# dependencies to skip for now:
#
# cupy - is only required for QRNNs - sgguger thinks later he will get rid of this dep.
# fire - will be eliminated shortly
if sys.version_info < (3,7): requirements.append('dataclasses')
### developer dependencies ###
#
# anything else that's not required by a user to run the library, but
# either an enhancement or developer-build requirement goes here.
#
# the [dev] feature is documented here:
# https://setuptools.readthedocs.io/en/latest/setuptools.html#declaring-extras-optional-features-with-their-own-dependencies
#
# these get installed with:
#
# pip install -e .[dev]
#
# some of the listed modules appear in test_requirements as well, explained below.
#
dev_requirements = { 'dev' : to_list("""
distro
jupyter_contrib_nbextensions
nbconvert
nbformat
pip>=18.1
pipreqs>=0.4.9
pytest
traitlets
wheel>=0.30.0
""") }
### setup dependencies ###
setup_requirements = to_list("""
pytest-runner
""")
# notes:
#
# * these deps will be installed locally under .eggs/ and will not be
# visible to pytest unless it's invoked via `python setup test`.
# Therefore it's the best to install them explicitly with:
# pip install -e .[dev]
#
### test dependencies ###
test_requirements = to_list("""
pytest
""")
# list of classifiers: https://pypi.org/pypi?%3Aaction=list_classifiers
setup(
name = 'fastai',
version = __version__,
packages = find_packages(),
include_package_data = True,
install_requires = requirements,
setup_requires = setup_requirements,
extras_require = dev_requirements,
tests_require = test_requirements,
python_requires = '>=3.6',
test_suite = 'tests',
description = "fastai makes deep learning with PyTorch faster, more accurate, and easier",
long_description = readme + '\n\n' + history,
long_description_content_type = 'text/markdown',
keywords = 'fastai, deep learning, machine learning',
license = "Apache Software License 2.0",
url = 'https://github.com/fastai/fastai',
author = "Jeremy Howard",
author_email = '[email protected]',
classifiers = [
'Development Status :: 5 - Production/Stable',
'Intended Audience :: Developers',
'License :: OSI Approved :: Apache Software License',
'Natural Language :: English',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7',
],
zip_safe = False,
)