mirror of
https://github.com/davidhalter/typeshed.git
synced 2026-01-26 12:56:46 +08:00
Cross-platform third-party stubs requirements install script (#13482)
This commit is contained in:
28
lib/ts_utils/requirements.py
Normal file
28
lib/ts_utils/requirements.py
Normal 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
|
||||
Reference in New Issue
Block a user