|
1 | 1 | """Setup script for VWS Python, a wrapper for Vuforia's Web Services APIs.""" |
2 | 2 |
|
| 3 | +from pathlib import Path |
3 | 4 | from setuptools import setup |
| 5 | +from typing import List |
4 | 6 |
|
5 | 7 | import versioneer |
6 | 8 |
|
7 | | -# We use requirements.txt instead of just declaring the requirements here |
8 | | -# because this helps with Docker package caching. |
9 | | -with open('requirements.txt') as requirements: |
10 | | - INSTALL_REQUIRES = requirements.readlines() |
11 | 9 |
|
12 | | -# We use dev-requirements.txt instead of just declaring the requirements here |
13 | | -# because Read The Docs needs a requirements file. |
14 | | -with open('dev-requirements.txt') as dev_requirements: |
15 | | - DEV_REQUIRES = dev_requirements.readlines() |
| 10 | +def _get_dependencies(requirements_file: Path) -> List[str]: |
| 11 | + """ |
| 12 | + Return requirements from a requirements file. |
| 13 | +
|
| 14 | + This expects a requirements file with no ``--find-links`` lines. |
| 15 | + """ |
| 16 | + lines = requirements_file.read_text().strip().split('\n') |
| 17 | + return [line for line in lines if not line.startswith('#')] |
| 18 | + |
| 19 | + |
| 20 | +_DIRECT_REQUIRES = _get_dependencies( |
| 21 | + requirements_file=Path('requirements.txt'), |
| 22 | +) |
| 23 | + |
| 24 | +INSTALL_REQUIRES = _DIRECT_REQUIRES |
| 25 | +DEV_REQUIRES = _get_dependencies( |
| 26 | + requirements_file=Path('dev-requirements.txt'), |
| 27 | +) |
| 28 | +PACKAGING_REQUIRES = _get_dependencies( |
| 29 | + requirements_file=Path('packaging-requirements.txt'), |
| 30 | +) |
16 | 31 |
|
17 | 32 | setup( |
18 | | - version=versioneer.get_version(), # type: ignore |
19 | 33 | cmdclass=versioneer.get_cmdclass(), # type: ignore |
20 | 34 | install_requires=INSTALL_REQUIRES, |
21 | 35 | extras_require={'dev': DEV_REQUIRES}, |
|
0 commit comments