forked from fastai/fastai
-
Notifications
You must be signed in to change notification settings - Fork 0
/
setup.py
141 lines (120 loc) · 3.73 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
134
135
136
137
138
139
140
141
#!/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()
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: to fix later in time:
# - require torch>=1.0.0 once it's released, for now get the user to install it explicitly
# - 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
# - temporarily pinning spacy and its dependencies (regex, thinc, and cymem) to have a stable environment during the course duration.
#
# notes:
# - bottleneck and numexpr - are performance-improvement extras for numpy
#
# dependencies to skip for now:
# - cupy - is only required for QRNNs - sgguger thinks later he will get rid of this dep.
requirements = to_list("""
fastprogress>=0.1.15
matplotlib
numpy>=1.12
pandas
bottleneck
numexpr
Pillow
requests
scipy
spacy==2.0.16
regex
thinc==6.12.0
cymem==2.0.2
torchvision-nightly
typing
pyyaml
""")
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 is an enhancement or a 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, including the normal dependencies, 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("""
coverage
distro
jupyter_contrib_nbextensions
pip>=9.0.1
pipreqs>=0.4.9
pytest
wheel>=0.30.0
ipython
jupyter
notebook>=5.7.0
nbconvert>=5.4
nbformat
traitlets
""") }
### 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,
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,
)