setup.py 3.5 KB
Newer Older
1
2
3
4
5
"""
Simple check list from AllenNLP repo: https://github.com/allenai/allennlp/blob/master/setup.py

To create the package for pypi.

LysandreJik's avatar
LysandreJik committed
6
1. Change the version in __init__.py, setup.py as well as docs/source/conf.py.
7
8
9
10
11
12
13
14
15

2. Commit these changes with the message: "Release: VERSION"

3. Add a tag in git to mark the release: "git tag VERSION -m'Adds tag VERSION for pypi' "
   Push the tag to git: git push --tags origin master

4. Build both the sources and the wheel. Do not change anything in setup.py between
   creating the wheel and the source distribution (obviously).

thomwolf's avatar
thomwolf committed
16
   For the wheel, run: "python setup.py bdist_wheel" in the top level directory.
17
   (this will build a wheel for the python version you use to build it).
18
19

   For the sources, run: "python setup.py sdist"
thomwolf's avatar
thomwolf committed
20
   You should now have a /dist directory with both .whl and .tar.gz source versions.
21
22
23
24
25
26
27

5. Check that everything looks correct by uploading the package to the pypi test server:

   twine upload dist/* -r pypitest
   (pypi suggest using twine as other methods upload files via plaintext.)

   Check that you can install it in a virtualenv by running:
28
   pip install -i https://testpypi.python.org/pypi transformers
29
30
31
32
33
34
35

6. Upload the final version to actual pypi:
   twine upload dist/* -r pypi

7. Copy the release notes from RELEASE.md to the tag in github once everything is looking hunky-dory.

"""
Aymeric Augustin's avatar
Aymeric Augustin committed
36

thomwolf's avatar
thomwolf committed
37
38
from setuptools import find_packages, setup

39

40
41
42
43
44
45
46
47
48
49
50
51
52
53
extras = {}

extras["mecab"] = ["mecab-python3"]
extras["sklearn"] = ["scikit-learn"]
extras["tf"] = ["tensorflow"]
extras["torch"] = ["torch"]

extras["serving"] = ["pydantic", "uvicorn", "fastapi"]
extras["all"] = extras["serving"] + ["tensorflow", "torch"]

extras["testing"] = ["pytest", "pytest-xdist"]
extras["quality"] = ["black", "isort", "flake8"]
extras["docs"] = ["recommonmark", "sphinx", "sphinx-markdown-tables", "sphinx-rtd-theme"]
extras["dev"] = extras["testing"] + extras["quality"] + ["mecab-python3", "scikit-learn", "tensorflow", "torch"]
54

thomwolf's avatar
thomwolf committed
55
setup(
56
    name="transformers",
Lysandre's avatar
Lysandre committed
57
    version="2.3.0",
thomwolf's avatar
thomwolf committed
58
    author="Thomas Wolf, Lysandre Debut, Victor Sanh, Julien Chaumond, Google AI Language Team Authors, Open AI team Authors, Facebook AI Authors, Carnegie Mellon University Authors",
thomwolf's avatar
thomwolf committed
59
    author_email="thomas@huggingface.co",
thomwolf's avatar
thomwolf committed
60
    description="State-of-the-art Natural Language Processing for TensorFlow 2.0 and PyTorch",
61
    long_description=open("README.md", "r", encoding="utf-8").read(),
thomwolf's avatar
thomwolf committed
62
    long_description_content_type="text/markdown",
63
64
    keywords="NLP deep learning transformer pytorch tensorflow BERT GPT GPT-2 google openai CMU",
    license="Apache",
65
    url="https://github.com/huggingface/transformers",
Aymeric Augustin's avatar
Aymeric Augustin committed
66
    package_dir={"": "src"},
67
    packages=find_packages("src"),
68
69
70
71
72
73
74
75
76
    install_requires=[
        "numpy",
        "boto3",
        "filelock",
        "requests",
        "tqdm",
        "regex != 2019.12.17",
        "sentencepiece",
        "sacremoses",
thomwolf's avatar
thomwolf committed
77
    ],
78
79
    extras_require=extras,
    scripts=["transformers-cli"],
Aymeric Augustin's avatar
Aymeric Augustin committed
80
    python_requires=">=3.5.0",
thomwolf's avatar
thomwolf committed
81
    classifiers=[
Aymeric Augustin's avatar
Aymeric Augustin committed
82
83
84
        "Development Status :: 5 - Production/Stable",
        "Intended Audience :: Developers",
        "Intended Audience :: Education",
85
86
        "Intended Audience :: Science/Research",
        "License :: OSI Approved :: Apache Software License",
Aymeric Augustin's avatar
Aymeric Augustin committed
87
        "Operating System :: OS Independent",
88
        "Programming Language :: Python :: 3",
Aymeric Augustin's avatar
Aymeric Augustin committed
89
90
91
        "Programming Language :: Python :: 3.5",
        "Programming Language :: Python :: 3.6",
        "Programming Language :: Python :: 3.7",
92
        "Topic :: Scientific/Engineering :: Artificial Intelligence",
thomwolf's avatar
thomwolf committed
93
94
    ],
)