11from typing import Any , Dict , List
22
33from yardstiq .core import provider , Provider , Backend
4+ from yardstiq .objects import BackendRunResult , ComputationModel
45
56from scaleway_qaas_client .v1alpha1 import QaaSClient , QaaSPlatform
67
78
9+ class ScalewayBackend (Backend ):
10+ def __init__ (self , platform : QaaSPlatform , provider : "ScalewayProvider" ):
11+ super ().__init__ (provider = provider )
12+
13+ self .platform = platform
14+
15+ def run (model : ComputationModel ) -> BackendRunResult :
16+ pass
17+
18+
819@provider ("scaleway" )
920class ScalewayProvider (Provider ):
1021 def __init__ (self , ** kwargs ):
@@ -14,17 +25,19 @@ def __init__(self, **kwargs):
1425 project_id = kwargs .get ("scaleway_project_id" , None )
1526 api_url = kwargs .get ("scaleway_api_url" , None )
1627
17- self .__client = QaaSClient (project_id = project_id , secret_key = secret_key , url = api_url )
28+ self .__client = QaaSClient (
29+ project_id = project_id , secret_key = secret_key , url = api_url
30+ )
1831
19- def get_backend (self , name : str ) -> Backend :
32+ def get_backend (self , name : str ) -> ScalewayBackend :
2033 platforms = self .__client .list_platforms (name = name )
2134
2235 if not platforms or len (platforms ) == 0 :
2336 raise ValueError (f"Backend '{ name } ' not found in Scaleway providers" )
2437
2538 return self ._platform_to_backend (self , platforms [0 ])
2639
27- def list_backends (self ) -> List [Backend ]:
40+ def list_backends (self ) -> List [ScalewayBackend ]:
2841 platforms = self .__client .list_platforms ()
2942
3043 if not platforms :
@@ -35,5 +48,5 @@ def list_backends(self) -> List[Backend]:
3548
3649 return list (map (lambda p : self ._platform_to_backend (p ), platforms ))
3750
38- def _platform_to_backend (self , platform : QaaSPlatform ) -> Backend :
39- return Backend (provider = self )
51+ def _platform_to_backend (self , platform : QaaSPlatform ) -> ScalewayBackend :
52+ return ScalewayBackend (provider = self )
0 commit comments