Cross-platform third-party stubs requirements install script (#13482)

This commit is contained in:
Avasam
2025-02-09 16:21:22 -05:00
committed by GitHub
parent 46ac2e24a4
commit c99e54da3e
6 changed files with 51 additions and 40 deletions

View File

@@ -0,0 +1,28 @@
from __future__ import annotations
import itertools
import os
import sys
from collections.abc import Iterable
from packaging.requirements import Requirement
from ts_utils.metadata import read_dependencies, read_stubtest_settings
from ts_utils.paths import STUBS_PATH
def get_external_stub_requirements(distributions: Iterable[str] = ()) -> set[Requirement]:
if not distributions:
distributions = os.listdir(STUBS_PATH)
return set(itertools.chain.from_iterable([read_dependencies(distribution).external_pkgs for distribution in distributions]))
def get_stubtest_system_requirements(distributions: Iterable[str] = (), platform: str = sys.platform) -> list[str]:
if not distributions:
distributions = os.listdir(STUBS_PATH)
requirements: list[str] = []
for distribution in distributions:
requirements.extend(read_stubtest_settings(distribution).system_requirements_for_platform(platform))
return requirements