Skip to content

Commit 8e83bfa

Browse files
authored
Finishing touches to the graveyard (#15123)
1 parent 05d91c8 commit 8e83bfa

File tree

11 files changed

+111
-53
lines changed

11 files changed

+111
-53
lines changed

.pre-commit-config.yaml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,10 +66,6 @@ repos:
6666
hooks:
6767
- id: yesqa
6868
name: Unused noqa
69-
exclude: |
70-
(?x)^(
71-
src/pytorch_lightning/_graveyard
72-
)$
7369

7470
- repo: https://github.com/PyCQA/isort
7571
rev: 5.10.1

src/pytorch_lightning/_graveyard/callbacks.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,10 @@
1818

1919

2020
def _save_checkpoint(_: ModelCheckpoint, __: Any) -> None:
21-
# Remove in v2.0.0
21+
# TODO: Remove in v2.0.0
2222
raise NotImplementedError(
2323
f"`{ModelCheckpoint.__name__}.save_checkpoint()` was deprecated in v1.6 and is no longer supported"
24-
f" as of 1.8. Please use `trainer.save_checkpoint()` to manually save a checkpoint. This method will be"
25-
f" removed completely in v2.0."
24+
f" as of 1.8. Please use `trainer.save_checkpoint()` to manually save a checkpoint."
2625
)
2726

2827

src/pytorch_lightning/_graveyard/core.py

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,25 +13,47 @@
1313
# limitations under the License.
1414
from typing import Any
1515

16-
from pytorch_lightning import LightningDataModule
16+
from pytorch_lightning import LightningDataModule, LightningModule
1717

1818

1919
def _on_save_checkpoint(_: LightningDataModule, __: Any) -> None:
2020
# TODO: Remove in v2.0.0
2121
raise NotImplementedError(
22-
"`LightningDataModule.on_save_checkpoint` was deprecated in v1.6 and removed in v1.8."
22+
"`LightningDataModule.on_save_checkpoint` was deprecated in v1.6 and is no longer supported as of v1.8."
2323
" Use `state_dict` instead."
2424
)
2525

2626

2727
def _on_load_checkpoint(_: LightningDataModule, __: Any) -> None:
2828
# TODO: Remove in v2.0.0
2929
raise NotImplementedError(
30-
"`LightningDataModule.on_load_checkpoint` was deprecated in v1.6 and removed in v1.8."
30+
"`LightningDataModule.on_load_checkpoint` was deprecated in v1.6 and is no longer supported as of v1.8."
3131
" Use `load_state_dict` instead."
3232
)
3333

3434

35+
def _use_amp(_: LightningModule) -> None:
36+
# Remove in v2.0.0 and the skip in `__jit_unused_properties__`
37+
if not LightningModule._jit_is_scripting:
38+
# cannot use `AttributeError` as it messes up with `nn.Module.__getattr__`
39+
raise RuntimeError(
40+
"`LightningModule.use_amp` was deprecated in v1.6 and is no longer accessible as of v1.8."
41+
" Please use `Trainer.amp_backend`.",
42+
)
43+
44+
45+
def _use_amp_setter(_: LightningModule, __: bool) -> None:
46+
# Remove in v2.0.0
47+
# cannot use `AttributeError` as it messes up with `nn.Module.__getattr__`
48+
raise RuntimeError(
49+
"`LightningModule.use_amp` was deprecated in v1.6 and is no longer accessible as of v1.8."
50+
" Please use `Trainer.amp_backend`.",
51+
)
52+
53+
54+
# Properties
55+
LightningModule.use_amp = property(fget=_use_amp, fset=_use_amp_setter)
56+
3557
# Methods
3658
LightningDataModule.on_save_checkpoint = _on_save_checkpoint
3759
LightningDataModule.on_load_checkpoint = _on_load_checkpoint

src/pytorch_lightning/_graveyard/loggers.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@
2121
class LoggerCollection:
2222
# TODO: Remove in v2.0.0
2323
def __init__(self, _: Any):
24-
raise RuntimeError(
25-
"`LoggerCollection` was deprecated in v1.6 and removed in v1.8. Directly pass a list of loggers"
24+
raise NotImplementedError(
25+
"`LoggerCollection` was deprecated in v1.6 and removed as of v1.8. Directly pass a list of loggers"
2626
" to the `Trainer` and access the list via the `trainer.loggers` attribute."
2727
)
2828

@@ -37,7 +37,7 @@ def _update_agg_funcs(logger: Logger, *__: Any, **___: Any) -> None:
3737
def _agg_and_log_metrics(logger: Logger, *__: Any, **___: Any) -> None:
3838
# TODO: Remove in v2.0.0
3939
raise NotImplementedError(
40-
f"`{type(logger).__name__}.update_agg_funcs` was deprecated in v1.6 and is no longer supported as of v1.8."
40+
f"`{type(logger).__name__}.agg_and_log_metrics` was deprecated in v1.6 and is no longer supported as of v1.8."
4141
)
4242

4343

src/pytorch_lightning/_graveyard/trainer.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919

2020
def _patch_sys_modules() -> None:
21+
# TODO: Remove in v2.0.0
2122
self = sys.modules[__name__]
2223
sys.modules["pytorch_lightning.trainer.data_loading"] = self
2324
sys.modules["pytorch_lightning.trainer.optimizers"] = self
@@ -192,22 +193,26 @@ def _call_hook(_: Trainer, *__: Any, **___: Any) -> Any:
192193

193194

194195
def _prepare_dataloader(_: Trainer, *__: Any, **___: Any) -> None:
196+
# TODO: Remove in v2.0.0
195197
raise NotImplementedError(
196198
"`Trainer.prepare_dataloader` was deprecated in v1.6 and is no longer supported as of v1.8."
197199
)
198200

199201

200202
def _request_dataloader(_: Trainer, *__: Any, **___: Any) -> None:
203+
# TODO: Remove in v2.0.0
201204
raise NotImplementedError(
202205
"`Trainer.request_dataloader` was deprecated in v1.6 and is no longer supported as of v1.8."
203206
)
204207

205208

206209
def _init_optimizers(_: Trainer, *__: Any, **___: Any) -> None:
210+
# TODO: Remove in v2.0.0
207211
raise NotImplementedError("`Trainer.init_optimizers` was deprecated in v1.6 and is no longer supported as of v1.8.")
208212

209213

210214
def _convert_to_lightning_optimizers(_: Trainer) -> None:
215+
# TODO: Remove in v2.0.0
211216
raise NotImplementedError(
212217
"`Trainer.convert_to_lightning_optimizers` was deprecated in v1.6 and is no longer supported as of v1.8."
213218
)

src/pytorch_lightning/_graveyard/training_type.py

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020

2121
def _patch_sys_modules() -> None:
22+
# TODO: Remove in v2.0.0
2223
self = sys.modules[__name__]
2324
sys.modules["pytorch_lightning.plugins.training_type"] = self
2425
sys.modules["pytorch_lightning.plugins.training_type.ddp"] = self
@@ -40,13 +41,15 @@ def _patch_sys_modules() -> None:
4041

4142

4243
def _ttp_constructor(self: Any, *_: Any, **__: Any) -> None:
43-
raise RuntimeError(
44-
f"The `pl.plugins.{self._name}Plugin` class was removed in v1.8. Use `pl.strategies.{self._name}Strategy`"
45-
" instead."
44+
# TODO: Remove in v2.0.0
45+
raise NotImplementedError(
46+
f"The `pl.plugins.{self._name}Plugin` class was deprecated in v1.6 and is no longer supported as of v1.8."
47+
f" Use `pl.strategies.{self._name}Strategy` instead."
4648
)
4749

4850

4951
def _patch_plugin_classes() -> None:
52+
# TODO: Remove in v2.0.0
5053
self = sys.modules[__name__]
5154
for name in (
5255
"DDP",
@@ -73,16 +76,23 @@ def _patch_plugin_classes() -> None:
7376

7477

7578
def on_colab_kaggle() -> None:
76-
raise RuntimeError(
77-
"`pl.plugins.training_type.utils.on_colab_kaggle` was removed in v1.8."
79+
# TODO: Remove in v2.0.0
80+
raise NotImplementedError(
81+
"`pl.plugins.training_type.utils.on_colab_kaggle` was deprecated in v1.6 and is no longer supported as of v1.8."
7882
" Use `pl.strategies.utils.on_colab_kaggle` instead."
7983
)
8084

8185

8286
def _training_type_plugin(_: pl.Trainer) -> None:
83-
raise RuntimeError("`Trainer.training_type_plugin` was removed in v1.8. Use `Trainer.strategy` instead.")
87+
# TODO: Remove in v2.0.0
88+
raise AttributeError(
89+
"`Trainer.training_type_plugin` was deprecated in v1.6 and is no longer accessible as of v1.8."
90+
" Use `Trainer.strategy` instead."
91+
)
8492

8593

8694
_patch_sys_modules()
8795
_patch_plugin_classes()
96+
97+
# Properties
8898
pl.Trainer.training_type_plugin = property(_training_type_plugin)

src/pytorch_lightning/core/module.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ class LightningModule(
8888
"automatic_optimization",
8989
"truncated_bptt_steps",
9090
"trainer",
91+
"use_amp", # from graveyard
9192
]
9293
+ _DeviceDtypeModuleMixin.__jit_unused_properties__
9394
+ HyperparametersMixin.__jit_unused_properties__

src/pytorch_lightning/trainer/configuration_validator.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -288,11 +288,11 @@ def _check_unsupported_datamodule_hooks(trainer: "pl.Trainer") -> None:
288288

289289
if is_overridden("on_save_checkpoint", datahook_selector.datamodule):
290290
raise NotImplementedError(
291-
"`LightningDataModule.on_save_checkpoint` was deprecated in v1.6 and removed in v1.8."
291+
"`LightningDataModule.on_save_checkpoint` was deprecated in v1.6 and is no longer supported as of v1.8."
292292
" Use `state_dict` instead."
293293
)
294294
if is_overridden("on_load_checkpoint", datahook_selector.datamodule):
295295
raise NotImplementedError(
296-
"`LightningDataModule.on_load_checkpoint` was deprecated in v1.6 and removed in v1.8."
296+
"`LightningDataModule.on_load_checkpoint` was deprecated in v1.6 and is no longer supported as of v1.8."
297297
" Use `load_state_dict` instead."
298298
)

tests/tests_pytorch/graveyard/test_core.py

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,21 +13,21 @@
1313
# limitations under the License.
1414
import pytest
1515

16-
from pytorch_lightning import Trainer
16+
from pytorch_lightning import LightningDataModule, Trainer
1717
from pytorch_lightning.demos.boring_classes import BoringDataModule, BoringModel
1818

1919

2020
def test_v2_0_0_unsupported_datamodule_on_save_load_checkpoint():
21-
datamodule = BoringDataModule()
21+
datamodule = LightningDataModule()
2222
with pytest.raises(
2323
NotImplementedError,
24-
match="`LightningDataModule.on_save_checkpoint` was deprecated in v1.6 and removed in v1.8.",
24+
match="`LightningDataModule.on_save_checkpoint`.*no longer supported as of v1.8",
2525
):
2626
datamodule.on_save_checkpoint({})
2727

2828
with pytest.raises(
2929
NotImplementedError,
30-
match="`LightningDataModule.on_load_checkpoint` was deprecated in v1.6 and removed in v1.8.",
30+
match="`LightningDataModule.on_load_checkpoint.*no longer supported as of v1.8",
3131
):
3232
datamodule.on_load_checkpoint({})
3333

@@ -44,12 +44,27 @@ def on_load_checkpoint(self, checkpoint):
4444

4545
with pytest.raises(
4646
NotImplementedError,
47-
match="`LightningDataModule.on_save_checkpoint` was deprecated in v1.6 and removed in v1.8.",
47+
match="`LightningDataModule.on_save_checkpoint`.*no longer supported as of v1.8.",
4848
):
4949
trainer.fit(model, OnSaveDataModule())
5050

5151
with pytest.raises(
5252
NotImplementedError,
53-
match="`LightningDataModule.on_load_checkpoint` was deprecated in v1.6 and removed in v1.8.",
53+
match="`LightningDataModule.on_load_checkpoint`.*no longer supported as of v1.8.",
5454
):
5555
trainer.fit(model, OnLoadDataModule())
56+
57+
58+
def test_v2_0_0_lightning_module_unsupported_use_amp():
59+
model = BoringModel()
60+
with pytest.raises(
61+
RuntimeError,
62+
match="`LightningModule.use_amp`.*no longer accessible as of v1.8.",
63+
):
64+
model.use_amp
65+
66+
with pytest.raises(
67+
RuntimeError,
68+
match="`LightningModule.use_amp`.*no longer accessible as of v1.8.",
69+
):
70+
model.use_amp = False

tests/tests_pytorch/graveyard/test_loggers.py

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,32 +19,42 @@
1919

2020

2121
def test_v2_0_0_unsupported_agg_and_log_metrics(tmpdir):
22+
logger = CSVLogger(tmpdir)
23+
with pytest.raises(
24+
RuntimeError,
25+
match="CSVLogger.agg_and_log_metrics`.*no longer supported as of v1.8",
26+
):
27+
logger.agg_and_log_metrics()
28+
2229
class AggAndLogMetricsLogger(CSVLogger):
2330
def agg_and_log_metrics(self, metrics, step):
2431
pass
2532

26-
model = BoringModel()
2733
logger = AggAndLogMetricsLogger(tmpdir)
28-
34+
model = BoringModel()
2935
trainer = Trainer(logger=logger)
30-
3136
with pytest.raises(
3237
RuntimeError,
33-
match="`AggAndLogMetricsLogger.agg_and_log_metrics` was deprecated in v1.6 and is no longer supported",
38+
match="`AggAndLogMetricsLogger.agg_and_log_metrics`.*no longer supported as of v1.8",
3439
):
3540
trainer.fit(model)
3641

3742

3843
def test_v2_0_0_unsupported_update_agg_funcs(tmpdir):
44+
logger = CSVLogger(tmpdir)
45+
with pytest.raises(
46+
RuntimeError,
47+
match="CSVLogger.update_agg_funcs`.*no longer supported as of v1.8",
48+
):
49+
logger.update_agg_funcs()
50+
3951
class UpdateAggFuncsLogger(CSVLogger):
4052
def update_agg_funcs(self, metrics, step):
4153
pass
4254

4355
model = BoringModel()
4456
logger = UpdateAggFuncsLogger(tmpdir)
45-
4657
trainer = Trainer(logger=logger)
47-
4858
with pytest.raises(
4959
RuntimeError,
5060
match="`UpdateAggFuncsLogger.update_agg_funcs` was deprecated in v1.6 and is no longer supported",
@@ -55,10 +65,10 @@ def update_agg_funcs(self, metrics, step):
5565
def test_v2_0_0_unsupported_logger_collection_class():
5666
from pytorch_lightning.loggers.base import LoggerCollection
5767

58-
with pytest.raises(RuntimeError, match="`LoggerCollection` was deprecated in v1.6 and removed in v1.8."):
68+
with pytest.raises(NotImplementedError, match="`LoggerCollection` was deprecated in v1.6 and removed as of v1.8."):
5969
LoggerCollection(None)
6070

6171
from pytorch_lightning.loggers.logger import LoggerCollection
6272

63-
with pytest.raises(RuntimeError, match="`LoggerCollection` was deprecated in v1.6 and removed in v1.8."):
73+
with pytest.raises(RuntimeError, match="`LoggerCollection` was deprecated in v1.6 and removed as of v1.8."):
6474
LoggerCollection(None)

0 commit comments

Comments
 (0)