django-categories/setup.py

51 lines
1.4 KiB
Python

"""The setup script."""
from pathlib import Path
from setuptools import setup
def parse_reqs(filepath: str) -> list:
"""
Parse a file path containing requirements and return a list of requirements.
Will properly follow ``-r`` and ``--requirements`` links like ``pip``. This
means nested requirements will be returned as one list.
Other ``pip``-specific lines are excluded.
Args:
filepath: The path to the requirements file
Returns:
All the requirements as a list.
"""
path = Path(filepath)
reqstr = path.read_text()
reqs = []
for line in reqstr.splitlines():
line = line.strip()
if line == "":
continue
elif not line or line.startswith("#"):
# comments are lines that start with # only
continue
elif line.startswith("-r") or line.startswith("--requirement"):
_, new_filename = line.split()
new_file_path = path.parent / new_filename
reqs.extend(parse_reqs(new_file_path))
elif line.startswith("-f") or line.startswith("-i") or line.startswith("--"):
continue
elif line.startswith("-Z") or line.startswith("--always-unzip"):
continue
else:
reqs.append(line)
return reqs
requirements = parse_reqs("requirements.txt")
setup(
install_requires=requirements,
py_modules=[],
)