Skip to content

Commit b1cc740

Browse files
awaelchlicarmoccaBorda
authored
Error messages for removed Trainer mixin methods (#15065)
Co-authored-by: Carlos Mocholí <[email protected]> Co-authored-by: Jirka Borovec <[email protected]>
1 parent fe32b39 commit b1cc740

File tree

2 files changed

+102
-1
lines changed

2 files changed

+102
-1
lines changed

src/pytorch_lightning/_graveyard/trainer.py

Lines changed: 51 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,34 @@
1111
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
14-
14+
import sys
1515
from typing import Any, Optional
1616

1717
from pytorch_lightning import Trainer
1818

1919

20+
def _patch_sys_modules() -> None:
21+
self = sys.modules[__name__]
22+
sys.modules["pytorch_lightning.trainer.data_loading"] = self
23+
sys.modules["pytorch_lightning.trainer.optimizers"] = self
24+
25+
26+
class TrainerDataLoadingMixin:
27+
# TODO: Remove in v2.0.0
28+
def __init__(self) -> None:
29+
raise NotImplementedError(
30+
"The `TrainerDataLoadingMixin` class was deprecated in v1.6 and is no longer supported as of v1.8."
31+
)
32+
33+
34+
class TrainerOptimizersMixin:
35+
# TODO: Remove in v2.0.0
36+
def __init__(self) -> None:
37+
raise NotImplementedError(
38+
"The `TrainerOptimizersMixin` class was deprecated in v1.6 and is no longer supported as of v1.8."
39+
)
40+
41+
2042
def _gpus(_: Trainer) -> None:
2143
# Remove in v2.0.0
2244
raise AttributeError(
@@ -169,6 +191,30 @@ def _call_hook(_: Trainer, *__: Any, **___: Any) -> Any:
169191
raise NotImplementedError("`Trainer.call_hook` was deprecated in v1.6 and is no longer supported as of v1.8.")
170192

171193

194+
def _prepare_dataloader(_: Trainer, *__: Any, **___: Any) -> None:
195+
raise NotImplementedError(
196+
"`Trainer.prepare_dataloader` was deprecated in v1.6 and is no longer supported as of v1.8."
197+
)
198+
199+
200+
def _request_dataloader(_: Trainer, *__: Any, **___: Any) -> None:
201+
raise NotImplementedError(
202+
"`Trainer.request_dataloader` was deprecated in v1.6 and is no longer supported as of v1.8."
203+
)
204+
205+
206+
def _init_optimizers(_: Trainer, *__: Any, **___: Any) -> None:
207+
raise NotImplementedError("`Trainer.init_optimizers` was deprecated in v1.6 and is no longer supported as of v1.8.")
208+
209+
210+
def _convert_to_lightning_optimizers(_: Trainer) -> None:
211+
raise NotImplementedError(
212+
"`Trainer.convert_to_lightning_optimizers` was deprecated in v1.6 and is no longer supported as of v1.8."
213+
)
214+
215+
216+
_patch_sys_modules()
217+
172218
# Properties/Attributes
173219
Trainer.gpus = property(_gpus)
174220
Trainer.root_gpu = property(_root_gpu)
@@ -189,3 +235,7 @@ def _call_hook(_: Trainer, *__: Any, **___: Any) -> Any:
189235
# Methods
190236
Trainer.run_stage = _run_stage
191237
Trainer.call_hook = _call_hook
238+
Trainer.prepare_dataloader = _prepare_dataloader
239+
Trainer.request_dataloader = _request_dataloader
240+
Trainer.init_optimizers = _init_optimizers
241+
Trainer.convert_to_lightning_optimizers = _convert_to_lightning_optimizers

tests/tests_pytorch/graveyard/test_trainer.py

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,3 +75,54 @@ def test_v2_0_0_unsupported_call_hook():
7575
NotImplementedError, match="`Trainer.call_hook` was deprecated in v1.6 and is no longer supported as of v1.8."
7676
):
7777
trainer.call_hook("test_hook")
78+
79+
80+
def test_v2_0_0_unsupported_data_loading_mixin():
81+
from pytorch_lightning.trainer.data_loading import TrainerDataLoadingMixin
82+
83+
class CustomTrainerDataLoadingMixin(TrainerDataLoadingMixin):
84+
pass
85+
86+
with pytest.raises(
87+
NotImplementedError,
88+
match="`TrainerDataLoadingMixin` class was deprecated in v1.6 and is no longer supported as of v1.8",
89+
):
90+
CustomTrainerDataLoadingMixin()
91+
92+
trainer = Trainer()
93+
with pytest.raises(
94+
NotImplementedError,
95+
match="`Trainer.prepare_dataloader` was deprecated in v1.6 and is no longer supported as of v1.8.",
96+
):
97+
trainer.prepare_dataloader(None)
98+
with pytest.raises(
99+
NotImplementedError,
100+
match="`Trainer.request_dataloader` was deprecated in v1.6 and is no longer supported as of v1.8.",
101+
):
102+
trainer.request_dataloader(None)
103+
104+
105+
def test_v2_0_0_trainer_optimizers_mixin():
106+
from pytorch_lightning.trainer.optimizers import TrainerOptimizersMixin
107+
108+
class CustomTrainerOptimizersMixin(TrainerOptimizersMixin):
109+
pass
110+
111+
with pytest.raises(
112+
NotImplementedError,
113+
match="`TrainerOptimizersMixin` class was deprecated in v1.6 and is no longer supported as of v1.8",
114+
):
115+
CustomTrainerOptimizersMixin()
116+
117+
trainer = Trainer()
118+
with pytest.raises(
119+
NotImplementedError,
120+
match="`Trainer.init_optimizers` was deprecated in v1.6 and is no longer supported as of v1.8.",
121+
):
122+
trainer.init_optimizers(None)
123+
124+
with pytest.raises(
125+
NotImplementedError,
126+
match="`Trainer.convert_to_lightning_optimizers` was deprecated in v1.6 and is no longer supported as of v1.8.",
127+
):
128+
trainer.convert_to_lightning_optimizers()

0 commit comments

Comments
 (0)