in aidial_app_builder_python/validation/python_pip/validation.py [0:0]
def _validate_packages(target: Path, allowed_packages: set[str]):
requirements = target / "requirements.txt"
requirements.touch(exist_ok=True)
with open(target / "requirements.txt") as lines:
for line in lines:
line = line.strip()
if not line or line.startswith("#"):
continue
requirement = parse_requirement(line)
package_name = requirement.name
if requirement.url:
raise AppValidationException(
f"URLs are not allowed in requirements.txt: {requirement.url}"
)
if package_name not in allowed_packages:
raise AppValidationException(
f"Package '{package_name}' is forbidden."
)