setup.py 1.98 KB
Newer Older
Louis Martin's avatar
Louis Martin committed
1
#!/usr/bin/env python3
2
# Copyright (c) Facebook, Inc. and its affiliates.
Sergey Edunov's avatar
Sergey Edunov committed
3
#
4
5
# This source code is licensed under the MIT license found in the
# LICENSE file in the root directory of this source tree.
Sergey Edunov's avatar
Sergey Edunov committed
6
7
8
9
10
11
12
13
14
15
16

from setuptools import setup, find_packages, Extension
import sys


if sys.version_info < (3,):
    sys.exit('Sorry, Python3 is required for fairseq.')

with open('README.md') as f:
    readme = f.read()

17
18
19
20
if sys.platform == 'darwin':
    extra_compile_args = ['-stdlib=libc++']
else:
    extra_compile_args = ['-std=c++11']
Sergey Edunov's avatar
Sergey Edunov committed
21
22
23
24
25
26
bleu = Extension(
    'fairseq.libbleu',
    sources=[
        'fairseq/clib/libbleu/libbleu.cpp',
        'fairseq/clib/libbleu/module.cpp',
    ],
27
    extra_compile_args=extra_compile_args,
Sergey Edunov's avatar
Sergey Edunov committed
28
29
30
31
32
)


setup(
    name='fairseq',
Myle Ott's avatar
Myle Ott committed
33
    version='0.7.2',
Sergey Edunov's avatar
Sergey Edunov committed
34
    description='Facebook AI Research Sequence-to-Sequence Toolkit',
Myle Ott's avatar
Myle Ott committed
35
36
37
    url='https://github.com/pytorch/fairseq',
    classifiers=[
        'Intended Audience :: Science/Research',
38
        'License :: OSI Approved :: MIT License',
Bairen Yi's avatar
Bairen Yi committed
39
        'Programming Language :: Python :: 3.5',
Myle Ott's avatar
Myle Ott committed
40
41
42
        'Programming Language :: Python :: 3.6',
        'Topic :: Scientific/Engineering :: Artificial Intelligence',
    ],
Sergey Edunov's avatar
Sergey Edunov committed
43
    long_description=readme,
Myle Ott's avatar
Myle Ott committed
44
    long_description_content_type='text/markdown',
Myle Ott's avatar
Myle Ott committed
45
46
    install_requires=[
        'cffi',
Myle Ott's avatar
Myle Ott committed
47
        'fastBPE',
Myle Ott's avatar
Myle Ott committed
48
        'numpy',
Myle Ott's avatar
Myle Ott committed
49
        'regex',
Myle Ott's avatar
Myle Ott committed
50
        'sacrebleu',
Myle Ott's avatar
Myle Ott committed
51
        'torch',
Myle Ott's avatar
Myle Ott committed
52
53
54
        'tqdm',
    ],
    packages=find_packages(exclude=['scripts', 'tests']),
Sergey Edunov's avatar
Sergey Edunov committed
55
    ext_modules=[bleu],
Myle Ott's avatar
Myle Ott committed
56
    test_suite='tests',
Myle Ott's avatar
Myle Ott committed
57
58
    entry_points={
        'console_scripts': [
Myle Ott's avatar
Myle Ott committed
59
60
61
62
63
            'fairseq-eval-lm = fairseq_cli.eval_lm:cli_main',
            'fairseq-generate = fairseq_cli.generate:cli_main',
            'fairseq-interactive = fairseq_cli.interactive:cli_main',
            'fairseq-preprocess = fairseq_cli.preprocess:cli_main',
            'fairseq-score = fairseq_cli.score:main',
Myle Ott's avatar
Myle Ott committed
64
65
            'fairseq-train = fairseq_cli.train:cli_main',
            'fairseq-validate = fairseq_cli.validate:cli_main',
Myle Ott's avatar
Myle Ott committed
66
67
        ],
    },
Sergey Edunov's avatar
Sergey Edunov committed
68
)