mirror of
https://github.com/jazzband/django-categories.git
synced 2026-03-16 22:30:24 +00:00
51 lines
1.4 KiB
Python
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=[],
|
|
)
|