Skip to content

Commit 1e2cb22

Browse files
pakshafacebook-github-bot
authored andcommitted
Remove redundant SchedulerBackend in favor of str (#436)
Summary: Pull Request resolved: #436 Removed SchedulerBackend and replaced with str Reviewed By: d4l3k Differential Revision: D35185234 fbshipit-source-id: 8f2e0abbda6eaecc9e8aecd32e3775f2f7ca83be
1 parent afbb6f1 commit 1e2cb22

File tree

14 files changed

+29
-45
lines changed

14 files changed

+29
-45
lines changed

torchx/components/component_test_base.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
AppHandle,
2828
AppState,
2929
CfgVal,
30-
SchedulerBackend,
3130
)
3231
from torchx.specs.api import _create_args_parser
3332
from torchx.specs.finder import get_component
@@ -38,7 +37,7 @@ class ComponentUtils:
3837
def run_appdef_on_scheduler(
3938
cls,
4039
app_def: AppDef,
41-
scheduler: SchedulerBackend,
40+
scheduler: str,
4241
cfg: Mapping[str, CfgVal],
4342
dryrun: bool = False,
4443
) -> Union[AppHandle, AppDryRunInfo]:

torchx/components/integration_tests/component_provider.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,15 @@
1111
import torchx.components.dist as dist_components
1212
import torchx.components.serve as serve_components
1313
import torchx.components.utils as utils_components
14-
from torchx.specs import AppDef, SchedulerBackend
14+
from torchx.specs import AppDef
1515

1616

1717
class ComponentProvider(ABC):
1818
"""
1919
Abstract class that represents generic component provider.
2020
"""
2121

22-
def __init__(self, scheduler: SchedulerBackend, image: str) -> None:
22+
def __init__(self, scheduler: str, image: str) -> None:
2323
self._scheduler = scheduler
2424
self._image = image
2525

@@ -75,7 +75,7 @@ def get_app_def(self) -> AppDef:
7575

7676

7777
class TouchComponentProvider(ComponentProvider):
78-
def __init__(self, image: str, scheduler: SchedulerBackend) -> None:
78+
def __init__(self, image: str, scheduler: str) -> None:
7979
super(TouchComponentProvider, self).__init__(image, scheduler)
8080
self._file_path = "<None>"
8181

@@ -98,7 +98,7 @@ def tearDown(self) -> None:
9898

9999

100100
class CopyComponentProvider(ComponentProvider):
101-
def __init__(self, image: str, scheduler: SchedulerBackend) -> None:
101+
def __init__(self, image: str, scheduler: str) -> None:
102102
super(CopyComponentProvider, self).__init__(image, scheduler)
103103
self._src_path = "<None>"
104104
self._dst_path = "<None>"

torchx/components/integration_tests/integ_tests.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,12 @@
1616
from pyre_extensions import none_throws
1717
from torchx.components.component_test_base import ComponentUtils
1818
from torchx.components.integration_tests.component_provider import ComponentProvider
19-
from torchx.specs import AppDef, CfgVal, SchedulerBackend
19+
from torchx.specs import AppDef, CfgVal
2020

2121

2222
@dataclass
2323
class SchedulerInfo:
24-
name: SchedulerBackend
24+
name: str
2525
image: str
2626
cfg: Mapping[str, CfgVal] = field(default_factory=dict)
2727

torchx/runner/api.py

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
AppHandle,
2323
AppStatus,
2424
CfgVal,
25-
SchedulerBackend,
2625
UnknownAppException,
2726
from_function,
2827
make_app_handle,
@@ -50,7 +49,7 @@ class Runner:
5049
def __init__(
5150
self,
5251
name: str,
53-
schedulers: Dict[SchedulerBackend, Scheduler],
52+
schedulers: Dict[str, Scheduler],
5453
component_defaults: Optional[Dict[str, Dict[str, str]]] = None,
5554
) -> None:
5655
"""
@@ -102,7 +101,7 @@ def run_component(
102101
self,
103102
component: str,
104103
component_args: List[str],
105-
scheduler: SchedulerBackend,
104+
scheduler: str,
106105
cfg: Optional[Mapping[str, CfgVal]] = None,
107106
workspace: Optional[str] = None,
108107
) -> AppHandle:
@@ -151,7 +150,7 @@ def dryrun_component(
151150
self,
152151
component: str,
153152
component_args: List[str],
154-
scheduler: SchedulerBackend,
153+
scheduler: str,
155154
cfg: Optional[Mapping[str, CfgVal]] = None,
156155
workspace: Optional[str] = None,
157156
) -> AppDryRunInfo:
@@ -170,7 +169,7 @@ def dryrun_component(
170169
def run(
171170
self,
172171
app: AppDef,
173-
scheduler: SchedulerBackend,
172+
scheduler: str,
174173
cfg: Optional[Mapping[str, CfgVal]] = None,
175174
workspace: Optional[str] = None,
176175
) -> AppHandle:
@@ -237,7 +236,7 @@ def name(self) -> str:
237236
def dryrun(
238237
self,
239238
app: AppDef,
240-
scheduler: SchedulerBackend,
239+
scheduler: str,
241240
cfg: Optional[Mapping[str, CfgVal]] = None,
242241
workspace: Optional[str] = None,
243242
) -> AppDryRunInfo:
@@ -317,7 +316,7 @@ def run_opts(self) -> Dict[str, runopts]:
317316
for scheduler_backend, scheduler in self._schedulers.items()
318317
}
319318

320-
def scheduler_backends(self) -> List[SchedulerBackend]:
319+
def scheduler_backends(self) -> List[str]:
321320
"""
322321
Returns a list of all supported scheduler backends.
323322
"""
@@ -535,7 +534,7 @@ def log_lines(
535534
)
536535
return log_iter
537536

538-
def _scheduler(self, scheduler: SchedulerBackend) -> Scheduler:
537+
def _scheduler(self, scheduler: str) -> Scheduler:
539538
sched = self._schedulers.get(scheduler)
540539
if not sched:
541540
raise KeyError(

torchx/schedulers/__init__.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import torchx.schedulers.local_scheduler as local_scheduler
1414
import torchx.schedulers.slurm_scheduler as slurm_scheduler
1515
from torchx.schedulers.api import Scheduler
16-
from torchx.specs.api import SchedulerBackend
1716
from torchx.util.entrypoints import load_group
1817
from typing_extensions import Protocol
1918

@@ -73,7 +72,7 @@ def get_default_scheduler_name() -> str:
7372

7473
def get_schedulers(
7574
session_name: str, **scheduler_params: object
76-
) -> Dict[SchedulerBackend, Scheduler]:
75+
) -> Dict[str, Scheduler]:
7776
"""
7877
get_schedulers returns all available schedulers.
7978
"""

torchx/schedulers/api.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
CfgVal,
2222
Role,
2323
RoleStatus,
24-
SchedulerBackend,
2524
runopts,
2625
)
2726
from torchx.workspace.api import Workspace
@@ -70,7 +69,7 @@ class Scheduler(abc.ABC):
7069
``@abc.abstractmethod``.
7170
"""
7271

73-
def __init__(self, backend: SchedulerBackend, session_name: str) -> None:
72+
def __init__(self, backend: str, session_name: str) -> None:
7473
self.backend = backend
7574
self.session_name = session_name
7675

@@ -284,7 +283,7 @@ def log_iter(
284283
f"{self.__class__.__qualname__} does not support application log iteration"
285284
)
286285

287-
def _validate(self, app: AppDef, scheduler: SchedulerBackend) -> None:
286+
def _validate(self, app: AppDef, scheduler: str) -> None:
288287
"""
289288
Validates whether application is consistent with the scheduler.
290289

torchx/schedulers/aws_batch_scheduler.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,6 @@
6464
AppDef,
6565
AppState,
6666
Role,
67-
SchedulerBackend,
6867
macros,
6968
runopts,
7069
CfgVal,
@@ -363,7 +362,7 @@ def _submit_dryrun(
363362
info._cfg = cfg
364363
return info
365364

366-
def _validate(self, app: AppDef, scheduler: SchedulerBackend) -> None:
365+
def _validate(self, app: AppDef, scheduler: str) -> None:
367366
# Skip validation step
368367
pass
369368

torchx/schedulers/docker_scheduler.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
ReplicaStatus,
3131
Role,
3232
RoleStatus,
33-
SchedulerBackend,
3433
is_terminal,
3534
macros,
3635
runopts,
@@ -295,7 +294,7 @@ def _submit_dryrun(
295294
info._cfg = cfg
296295
return info
297296

298-
def _validate(self, app: AppDef, scheduler: SchedulerBackend) -> None:
297+
def _validate(self, app: AppDef, scheduler: str) -> None:
299298
# Skip validation step
300299
pass
301300

torchx/schedulers/kubernetes_scheduler.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@
6161
RetryPolicy,
6262
Role,
6363
RoleStatus,
64-
SchedulerBackend,
6564
macros,
6665
runopts,
6766
BindMount,
@@ -572,7 +571,7 @@ def _submit_dryrun(
572571
info._cfg = cfg
573572
return info
574573

575-
def _validate(self, app: AppDef, scheduler: SchedulerBackend) -> None:
574+
def _validate(self, app: AppDef, scheduler: str) -> None:
576575
# Skip validation step
577576
pass
578577

torchx/schedulers/local_scheduler.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@
5151
AppState,
5252
CfgVal,
5353
Role,
54-
SchedulerBackend,
5554
is_terminal,
5655
macros,
5756
runopts,
@@ -602,7 +601,7 @@ def run_opts(self) -> runopts:
602601
)
603602
return opts
604603

605-
def _validate(self, app: AppDef, scheduler: SchedulerBackend) -> None:
604+
def _validate(self, app: AppDef, scheduler: str) -> None:
606605
# Skip validation step for local application
607606
pass
608607

0 commit comments

Comments
 (0)