Skip to content

Commit d48e6b5

Browse files
committed
Add override checks for name, resources, and batch_size
Signed-off-by: Sarah Yurick <[email protected]>
1 parent 13bc974 commit d48e6b5

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

nemo_curator/stages/base.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
from __future__ import annotations
1616

1717
from abc import ABC, ABCMeta, abstractmethod
18-
from typing import TYPE_CHECKING, Any, Generic, TypeVar
18+
from typing import TYPE_CHECKING, Any, Generic, TypeVar, final
1919

2020
from loguru import logger
2121

@@ -85,18 +85,33 @@ class ProcessingStage(ABC, Generic[X, Y], metaclass=StageMeta):
8585
_batch_size = 1
8686

8787
@property
88+
@final
8889
def name(self) -> str:
8990
return self._name
9091

9192
@property
93+
@final
9294
def resources(self) -> Resources:
9395
return self._resources
9496

9597
@property
98+
@final
9699
def batch_size(self) -> int | None:
97100
"""Number of tasks to process in a batch."""
98101
return self._batch_size
99102

103+
def __init_subclass__(cls, **kwargs):
104+
super().__init_subclass__(**kwargs)
105+
if "name" in cls.__dict__:
106+
msg = f"{cls.__name__} must not override 'name'"
107+
raise TypeError(msg)
108+
if "resources" in cls.__dict__:
109+
msg = f"{cls.__name__} must not override 'resources'"
110+
raise TypeError(msg)
111+
if "batch_size" in cls.__dict__:
112+
msg = f"{cls.__name__} must not override 'batch_size'"
113+
raise TypeError(msg)
114+
100115
def num_workers(self) -> int | None:
101116
"""Number of workers required. If None, then executor will determine the number of workers."""
102117
return None

0 commit comments

Comments
 (0)