21 lines
729 B
Python
21 lines
729 B
Python
from pythonapp.Decider.Loader import RequirementInfo
|
|
from pythonapp.Env.Env import Env
|
|
from pythonapp.Libs.pip_api import pip_api
|
|
|
|
|
|
class PipConflictGrubber:
|
|
|
|
@classmethod
|
|
def check_for_conflicts(cls,
|
|
env: Env,
|
|
installed_reqs: list[RequirementInfo],
|
|
requested_reqs: list[RequirementInfo],
|
|
repo_url: str
|
|
):
|
|
tmp = [str(req) for req in installed_reqs]
|
|
tmp.extend([str(req) for req in requested_reqs])
|
|
|
|
|
|
result = pip_api.run_pip_install(env.pip_path, tmp, extra_index_urls=[repo_url])
|
|
if not result.success:
|
|
raise RuntimeError(result.stderr) |