|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import argparse |
|
import os |
|
import re |
|
import sys |
|
from datetime import date |
|
|
|
from setuptools import find_packages, setup |
|
|
|
|
|
def clean_html(raw_html): |
|
cleanr = re.compile("<.*?>") |
|
cleantext = re.sub(cleanr, "", raw_html).strip() |
|
return cleantext |
|
|
|
|
|
def get_version(): |
|
|
|
version_file = os.path.join(os.path.dirname(__file__), "version.py") |
|
version_regex = r"__version__ = ['\"]([^'\"]*)['\"]" |
|
with open(version_file, "r") as f: |
|
version = re.search(version_regex, f.read(), re.M).group(1) |
|
return version |
|
|
|
|
|
def fetch_long_description(): |
|
with open("README.md", encoding="utf8") as f: |
|
readme = f.read() |
|
|
|
readme = clean_html(readme) |
|
return readme |
|
|
|
|
|
def read_requirements(file): |
|
with open(file) as f: |
|
reqs = f.read() |
|
|
|
return reqs.strip().split("\n") |
|
|
|
|
|
def get_nightly_version(): |
|
today = date.today() |
|
return f"{today.year}.{today.month}.{today.day}" |
|
|
|
|
|
def parse_args(argv): |
|
parser = argparse.ArgumentParser(description="torchmultimodal setup") |
|
parser.add_argument( |
|
"--package_name", |
|
type=str, |
|
default="torchmultimodal", |
|
help="The name of this output wheel", |
|
) |
|
return parser.parse_known_args(argv) |
|
|
|
|
|
if __name__ == "__main__": |
|
args, unknown = parse_args(sys.argv[1:]) |
|
|
|
|
|
name = args.package_name |
|
is_nightly = "nightly" in name |
|
|
|
version = get_nightly_version() if is_nightly else get_version() |
|
|
|
print(f"-- {name} building version: {version}") |
|
|
|
sys.argv = [sys.argv[0]] + unknown |
|
|
|
setup( |
|
name=name, |
|
include_package_data=True, |
|
packages=find_packages( |
|
exclude=("examples*", "tests*") |
|
), |
|
python_requires=">=3.7", |
|
install_requires=read_requirements("requirements.txt"), |
|
version=version, |
|
description="PyTorch Multimodal Library", |
|
long_description=fetch_long_description(), |
|
long_description_content_type="text/markdown", |
|
url="https://github.com/facebookresearch/multimodal", |
|
author="PyTorch Multimodal Team", |
|
author_email="[email protected]", |
|
classifiers=[ |
|
"Development Status :: 4 - Beta", |
|
"Intended Audience :: Developers", |
|
"Intended Audience :: Science/Research", |
|
"License :: OSI Approved :: BSD License", |
|
"Topic :: Scientific/Engineering :: Artificial Intelligence", |
|
"Programming Language :: Python :: 3.7", |
|
"Programming Language :: Python :: 3.8", |
|
"Programming Language :: Python :: 3.9", |
|
], |
|
extras_require={"dev": read_requirements("dev-requirements.txt")}, |
|
) |
|
|