mirror of
https://github.com/clearml/clearml-agent
synced 2025-02-01 01:26:46 +00:00
33 lines
945 B
Python
33 lines
945 B
Python
from typing import Text
|
|
|
|
from .base import PackageManager
|
|
from .requirements import SimpleSubstitution
|
|
|
|
|
|
class HorovodRequirement(SimpleSubstitution):
|
|
|
|
name = "horovod"
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
super(HorovodRequirement, self).__init__(*args, **kwargs)
|
|
self.post_install_req = None
|
|
|
|
def match(self, req):
|
|
# match both horovod
|
|
return self.name == req.name.lower()
|
|
|
|
def post_install(self):
|
|
if self.post_install_req:
|
|
PackageManager.out_of_scope_install_package(self.post_install_req.tostr(markers=False))
|
|
self.post_install_req = None
|
|
|
|
def replace(self, req):
|
|
"""
|
|
Replace a requirement
|
|
:raises: ValueError if version is pre-release
|
|
"""
|
|
# Store in post req install, and return nothing
|
|
self.post_install_req = req
|
|
# mark skip package, we will install it in post install hook
|
|
return Text('')
|