| | |
| | |
| | |
| | |
| |
|
| | from pathlib import Path |
| | import re |
| | from typing import List, Tuple |
| |
|
| | from setuptools import setup, find_packages |
| |
|
| |
|
| | NAME = "dinov2" |
| | DESCRIPTION = "PyTorch code and models for the DINOv2 self-supervised learning method." |
| |
|
| | URL = "https://github.com/facebookresearch/dinov2" |
| | AUTHOR = "FAIR" |
| | REQUIRES_PYTHON = ">=3.9.0" |
| | HERE = Path(__file__).parent |
| |
|
| |
|
| | try: |
| | with open(HERE / "README.md", encoding="utf-8") as f: |
| | long_description = "\n" + f.read() |
| | except FileNotFoundError: |
| | long_description = DESCRIPTION |
| |
|
| |
|
| | def get_requirements(path: str = HERE / "requirements.txt") -> Tuple[List[str], List[str]]: |
| | requirements = [] |
| | extra_indices = [] |
| | with open(path) as f: |
| | for line in f.readlines(): |
| | line = line.rstrip("\r\n") |
| | if line.startswith("--extra-index-url "): |
| | extra_indices.append(line[18:]) |
| | continue |
| | requirements.append(line) |
| | return requirements, extra_indices |
| |
|
| |
|
| | def get_package_version() -> str: |
| | with open(HERE / "dinov2/__init__.py") as f: |
| | result = re.search(r"^__version__ = ['\"]([^'\"]*)['\"]", f.read(), re.M) |
| | if result: |
| | return result.group(1) |
| | raise RuntimeError("Can't get package version") |
| |
|
| |
|
| | requirements, extra_indices = get_requirements() |
| | version = get_package_version() |
| | dev_requirements, _ = get_requirements(HERE / "requirements-dev.txt") |
| | extras_requirements, _ = get_requirements(HERE / "requirements-extras.txt") |
| |
|
| |
|
| | setup( |
| | name=NAME, |
| | version=version, |
| | description=DESCRIPTION, |
| | long_description=long_description, |
| | long_description_content_type="text/markdown", |
| | author=AUTHOR, |
| | python_requires=REQUIRES_PYTHON, |
| | url=URL, |
| | packages=find_packages(), |
| | package_data={ |
| | "": ["*.yaml"], |
| | }, |
| | install_requires=requirements, |
| | extras_require={ |
| | "dev": dev_requirements, |
| | "extras": extras_requirements, |
| | }, |
| | dependency_links=extra_indices, |
| | install_package_data=True, |
| | license="Apache", |
| | license_files=("LICENSE",), |
| | classifiers=[ |
| | |
| | "Development Status :: 3 - Alpha", |
| | "Intended Audience :: Developers", |
| | "Intended Audience :: Science/Research", |
| | "License :: OSI Approved :: Apache Software License", |
| | "Programming Language :: Python :: 3.9", |
| | "Topic :: Scientific/Engineering :: Artificial Intelligence", |
| | "Topic :: Software Development :: Libraries :: Python Modules", |
| | ], |
| | ) |
| |
|