setup.py 2.26 KB
Newer Older
1
from __future__ import print_function
soumith's avatar
soumith committed
2
import os
Sasank Chilamkurthy's avatar
Sasank Chilamkurthy committed
3
4
import io
import re
soumith's avatar
soumith committed
5
6
import sys
from setuptools import setup, find_packages
7
from pkg_resources import get_distribution, DistributionNotFound
8
import subprocess
soumith's avatar
soumith committed
9
10


Sasank Chilamkurthy's avatar
Sasank Chilamkurthy committed
11
12
13
14
15
16
17
def read(*names, **kwargs):
    with io.open(
        os.path.join(os.path.dirname(__file__), *names),
        encoding=kwargs.get("encoding", "utf8")
    ) as fp:
        return fp.read()

Sasank Chilamkurthy's avatar
Sasank Chilamkurthy committed
18

19
20
21
22
23
24
25
def get_dist(pkgname):
    try:
        return get_distribution(pkgname)
    except DistributionNotFound:
        return None


26
27
28
version = '0.2.3a0'
sha = 'Unknown'
package_name = os.getenv('TORCHVISION_PACKAGE_NAME', 'torchvision')
Sasank Chilamkurthy's avatar
Sasank Chilamkurthy committed
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
cwd = os.path.dirname(os.path.abspath(__file__))

try:
    sha = subprocess.check_output(['git', 'rev-parse', 'HEAD'], cwd=cwd).decode('ascii').strip()
except Exception:
    pass

if os.getenv('TORCHVISION_BUILD_VERSION'):
    assert os.getenv('TORCHVISION_BUILD_NUMBER') is not None
    build_number = int(os.getenv('TORCHVISION_BUILD_NUMBER'))
    version = os.getenv('TORCHVISION_BUILD_VERSION')
    if build_number > 1:
        version += '.post' + str(build_number)
elif sha != 'Unknown':
    version += '+' + sha[:7]
print("Building wheel {}-{}".format(package_name, version))


def write_version_file():
    version_path = os.path.join(cwd, 'torchvision', 'version.py')
    with open(version_path, 'w') as f:
        f.write("__version__ = '{}'\n".format(version))
        f.write("git_version = {}\n".format(repr(sha)))


write_version_file()
Sasank Chilamkurthy's avatar
Sasank Chilamkurthy committed
56

Thomas Grainger's avatar
Thomas Grainger committed
57
58
readme = open('README.rst').read()

59
pytorch_package_name = os.getenv('TORCHVISION_PYTORCH_DEPENDENCY_NAME', 'torch')
soumith's avatar
soumith committed
60

61
62
63
requirements = [
    'numpy',
    'six',
64
    pytorch_package_name,
65
66
]

67
68
69
70
pillow_ver = ' >= 4.1.1'
pillow_req = 'pillow-simd' if get_dist('pillow-simd') is not None else 'pillow'
requirements.append(pillow_req + pillow_ver)

71

Thomas Grainger's avatar
Thomas Grainger committed
72
setup(
soumith's avatar
soumith committed
73
    # Metadata
74
75
    name=package_name,
    version=version,
soumith's avatar
soumith committed
76
77
78
79
    author='PyTorch Core Team',
    author_email='soumith@pytorch.org',
    url='https://github.com/pytorch/vision',
    description='image and video datasets and models for torch deep learning',
Thomas Grainger's avatar
Thomas Grainger committed
80
    long_description=readme,
soumith's avatar
soumith committed
81
82
83
    license='BSD',

    # Package info
soumith's avatar
soumith committed
84
    packages=find_packages(exclude=('test',)),
soumith's avatar
soumith committed
85
86

    zip_safe=True,
87
    install_requires=requirements,
88
89
90
    extras_require={
        "scipy": ["scipy"],
    },
soumith's avatar
soumith committed
91
)