From b3d37e0c6b3e267ea8ee175a1567519d5c590e01 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 26 Jan 2026 20:37:50 +0000 Subject: [PATCH 1/3] [pre-commit.ci] pre-commit autoupdate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/astral-sh/ruff-pre-commit: v0.14.13 → v0.14.14](https://github.com/astral-sh/ruff-pre-commit/compare/v0.14.13...v0.14.14) --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 0c85b02e4e..59a973571f 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -29,7 +29,7 @@ repos: exclude: ^source/3rdparty - repo: https://github.com/astral-sh/ruff-pre-commit # Ruff version. - rev: v0.14.13 + rev: v0.14.14 hooks: - id: ruff args: ["--fix"] From b87b9e4af5ad8906c6eb6a8f6ccdee5e75afbdd0 Mon Sep 17 00:00:00 2001 From: Jinzhe Zeng Date: Tue, 27 Jan 2026 20:28:50 +0800 Subject: [PATCH 2/3] apply ruff check --fix --- deepmd/dpmodel/modifier/base_modifier.py | 3 ++- deepmd/infer/deep_eval.py | 5 +++-- deepmd/pd/model/descriptor/descriptor.py | 3 ++- deepmd/pd/model/task/fitting.py | 3 ++- deepmd/pt/model/descriptor/descriptor.py | 3 ++- deepmd/pt/model/task/fitting.py | 3 ++- deepmd/utils/path.py | 3 ++- pyproject.toml | 2 +- 8 files changed, 16 insertions(+), 9 deletions(-) diff --git a/deepmd/dpmodel/modifier/base_modifier.py b/deepmd/dpmodel/modifier/base_modifier.py index febb9b75e8..92a79495ac 100644 --- a/deepmd/dpmodel/modifier/base_modifier.py +++ b/deepmd/dpmodel/modifier/base_modifier.py @@ -12,13 +12,14 @@ PluginVariant, make_plugin_registry, ) +from typing_extensions import Self def make_base_modifier() -> type[object]: class BaseModifier(ABC, PluginVariant, make_plugin_registry("modifier")): """Base class for data modifier.""" - def __new__(cls, *args: Any, **kwargs: Any) -> "BaseModifier": + def __new__(cls, *args: Any, **kwargs: Any) -> Self: if cls is BaseModifier: cls = cls.get_class_by_type(kwargs["type"]) return super().__new__(cls) diff --git a/deepmd/infer/deep_eval.py b/deepmd/infer/deep_eval.py index 0a8686a98b..af1c5971ba 100644 --- a/deepmd/infer/deep_eval.py +++ b/deepmd/infer/deep_eval.py @@ -22,6 +22,7 @@ from deepmd.utils.batch_size import ( AutoBatchSize, ) +from typing_extensions import Self if TYPE_CHECKING: import ase.neighborlist @@ -91,7 +92,7 @@ def __init__( def __new__( cls, model_file: str, *args: object, **kwargs: object - ) -> "DeepEvalBackend": + ) -> Self: if cls is DeepEvalBackend: backend = Backend.detect_backend_by_model(model_file) return super().__new__(backend().deep_eval) @@ -384,7 +385,7 @@ class DeepEval(ABC): Keyword arguments. """ - def __new__(cls, model_file: str, *args: object, **kwargs: object) -> "DeepEval": + def __new__(cls, model_file: str, *args: object, **kwargs: object) -> Self: if cls is DeepEval: deep_eval = DeepEvalBackend( model_file, diff --git a/deepmd/pd/model/descriptor/descriptor.py b/deepmd/pd/model/descriptor/descriptor.py index 53c7f4dc1a..ed482a661f 100644 --- a/deepmd/pd/model/descriptor/descriptor.py +++ b/deepmd/pd/model/descriptor/descriptor.py @@ -32,6 +32,7 @@ from deepmd.utils.plugin import ( make_plugin_registry, ) +from typing_extensions import Self log = logging.getLogger(__name__) @@ -44,7 +45,7 @@ class DescriptorBlock(paddle.nn.Layer, ABC, make_plugin_registry("DescriptorBloc local_cluster = False - def __new__(cls, *args: Any, **kwargs: Any) -> "DescriptorBlock": + def __new__(cls, *args: Any, **kwargs: Any) -> Self: if cls is DescriptorBlock: try: descrpt_type = kwargs["type"] diff --git a/deepmd/pd/model/task/fitting.py b/deepmd/pd/model/task/fitting.py index ad39e3a0a6..e86c2c555d 100644 --- a/deepmd/pd/model/task/fitting.py +++ b/deepmd/pd/model/task/fitting.py @@ -44,6 +44,7 @@ from deepmd.utils.path import ( DPPath, ) +from typing_extensions import Self dtype = env.GLOBAL_PD_FLOAT_PRECISION device = env.DEVICE @@ -54,7 +55,7 @@ class Fitting(paddle.nn.Layer, BaseFitting): # plugin moved to BaseFitting - def __new__(cls, *args: Any, **kwargs: Any) -> "Fitting": + def __new__(cls, *args: Any, **kwargs: Any) -> Self: if cls is Fitting: return BaseFitting.__new__(BaseFitting, *args, **kwargs) return super().__new__(cls) diff --git a/deepmd/pt/model/descriptor/descriptor.py b/deepmd/pt/model/descriptor/descriptor.py index 2a6e857a6f..bd453f82f6 100644 --- a/deepmd/pt/model/descriptor/descriptor.py +++ b/deepmd/pt/model/descriptor/descriptor.py @@ -32,6 +32,7 @@ from deepmd.utils.plugin import ( make_plugin_registry, ) +from typing_extensions import Self log = logging.getLogger(__name__) @@ -44,7 +45,7 @@ class DescriptorBlock(torch.nn.Module, ABC, make_plugin_registry("DescriptorBloc local_cluster = False - def __new__(cls, *args: Any, **kwargs: Any) -> "DescriptorBlock": + def __new__(cls, *args: Any, **kwargs: Any) -> Self: if cls is DescriptorBlock: try: descrpt_type = kwargs["type"] diff --git a/deepmd/pt/model/task/fitting.py b/deepmd/pt/model/task/fitting.py index f46bc0fb7d..ae60b1060a 100644 --- a/deepmd/pt/model/task/fitting.py +++ b/deepmd/pt/model/task/fitting.py @@ -48,6 +48,7 @@ from deepmd.utils.path import ( DPPath, ) +from typing_extensions import Self dtype = env.GLOBAL_PT_FLOAT_PRECISION device = env.DEVICE @@ -58,7 +59,7 @@ class Fitting(torch.nn.Module, BaseFitting): # plugin moved to BaseFitting - def __new__(cls, *args: Any, **kwargs: Any) -> "Fitting": + def __new__(cls, *args: Any, **kwargs: Any) -> Self: if cls is Fitting: return BaseFitting.__new__(BaseFitting, *args, **kwargs) return super().__new__(cls) diff --git a/deepmd/utils/path.py b/deepmd/utils/path.py index 5f156298e3..a175d626d4 100644 --- a/deepmd/utils/path.py +++ b/deepmd/utils/path.py @@ -21,6 +21,7 @@ from wcmatch.glob import ( globfilter, ) +from typing_extensions import Self class DPPath(ABC): @@ -34,7 +35,7 @@ class DPPath(ABC): mode, by default "r" """ - def __new__(cls, path: str, mode: str = "r") -> "DPPath": + def __new__(cls, path: str, mode: str = "r") -> Self: if cls is DPPath: if os.path.isdir(path): return super().__new__(DPOSPath) diff --git a/pyproject.toml b/pyproject.toml index 9a66783358..bd403dfaf2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -45,7 +45,7 @@ dependencies = [ 'scipy', 'pyyaml', 'dargs >= 0.4.7', - 'typing_extensions; python_version < "3.8"', + 'typing_extensions>=4.0.0', 'importlib_metadata>=1.4; python_version < "3.8"', 'h5py', "h5py>=3.6.0,!=3.11.0; platform_system=='Linux' and platform_machine=='aarch64'", From d0fcd5ef3770a44c4c8e33df4da870fccc0c4d7e Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 27 Jan 2026 12:30:54 +0000 Subject: [PATCH 3/3] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- deepmd/dpmodel/modifier/base_modifier.py | 5 ++++- deepmd/infer/deep_eval.py | 8 ++++---- deepmd/pd/model/descriptor/descriptor.py | 4 +++- deepmd/pd/model/task/fitting.py | 4 +++- deepmd/pt/model/descriptor/descriptor.py | 4 +++- deepmd/pt/model/task/fitting.py | 4 +++- deepmd/utils/path.py | 4 +++- 7 files changed, 23 insertions(+), 10 deletions(-) diff --git a/deepmd/dpmodel/modifier/base_modifier.py b/deepmd/dpmodel/modifier/base_modifier.py index 92a79495ac..b3e3c2ca7b 100644 --- a/deepmd/dpmodel/modifier/base_modifier.py +++ b/deepmd/dpmodel/modifier/base_modifier.py @@ -8,11 +8,14 @@ Any, ) +from typing_extensions import ( + Self, +) + from deepmd.utils.plugin import ( PluginVariant, make_plugin_registry, ) -from typing_extensions import Self def make_base_modifier() -> type[object]: diff --git a/deepmd/infer/deep_eval.py b/deepmd/infer/deep_eval.py index af1c5971ba..d375a2ecd7 100644 --- a/deepmd/infer/deep_eval.py +++ b/deepmd/infer/deep_eval.py @@ -11,6 +11,9 @@ ) import numpy as np +from typing_extensions import ( + Self, +) from deepmd.backend.backend import ( Backend, @@ -22,7 +25,6 @@ from deepmd.utils.batch_size import ( AutoBatchSize, ) -from typing_extensions import Self if TYPE_CHECKING: import ase.neighborlist @@ -90,9 +92,7 @@ def __init__( ) -> None: pass - def __new__( - cls, model_file: str, *args: object, **kwargs: object - ) -> Self: + def __new__(cls, model_file: str, *args: object, **kwargs: object) -> Self: if cls is DeepEvalBackend: backend = Backend.detect_backend_by_model(model_file) return super().__new__(backend().deep_eval) diff --git a/deepmd/pd/model/descriptor/descriptor.py b/deepmd/pd/model/descriptor/descriptor.py index ed482a661f..6071ab7d2b 100644 --- a/deepmd/pd/model/descriptor/descriptor.py +++ b/deepmd/pd/model/descriptor/descriptor.py @@ -13,6 +13,9 @@ ) import paddle +from typing_extensions import ( + Self, +) from deepmd.pd.model.network.network import ( TypeEmbedNet, @@ -32,7 +35,6 @@ from deepmd.utils.plugin import ( make_plugin_registry, ) -from typing_extensions import Self log = logging.getLogger(__name__) diff --git a/deepmd/pd/model/task/fitting.py b/deepmd/pd/model/task/fitting.py index e86c2c555d..01ba370c2b 100644 --- a/deepmd/pd/model/task/fitting.py +++ b/deepmd/pd/model/task/fitting.py @@ -12,6 +12,9 @@ import numpy as np import paddle +from typing_extensions import ( + Self, +) from deepmd.dpmodel.utils.seed import ( child_seed, @@ -44,7 +47,6 @@ from deepmd.utils.path import ( DPPath, ) -from typing_extensions import Self dtype = env.GLOBAL_PD_FLOAT_PRECISION device = env.DEVICE diff --git a/deepmd/pt/model/descriptor/descriptor.py b/deepmd/pt/model/descriptor/descriptor.py index bd453f82f6..7b0ff403c5 100644 --- a/deepmd/pt/model/descriptor/descriptor.py +++ b/deepmd/pt/model/descriptor/descriptor.py @@ -13,6 +13,9 @@ ) import torch +from typing_extensions import ( + Self, +) from deepmd.pt.model.network.network import ( TypeEmbedNet, @@ -32,7 +35,6 @@ from deepmd.utils.plugin import ( make_plugin_registry, ) -from typing_extensions import Self log = logging.getLogger(__name__) diff --git a/deepmd/pt/model/task/fitting.py b/deepmd/pt/model/task/fitting.py index ae60b1060a..7aac7b9a29 100644 --- a/deepmd/pt/model/task/fitting.py +++ b/deepmd/pt/model/task/fitting.py @@ -13,6 +13,9 @@ import numpy as np import torch +from typing_extensions import ( + Self, +) from deepmd.dpmodel.utils.seed import ( child_seed, @@ -48,7 +51,6 @@ from deepmd.utils.path import ( DPPath, ) -from typing_extensions import Self dtype = env.GLOBAL_PT_FLOAT_PRECISION device = env.DEVICE diff --git a/deepmd/utils/path.py b/deepmd/utils/path.py index a175d626d4..b9e48fe531 100644 --- a/deepmd/utils/path.py +++ b/deepmd/utils/path.py @@ -18,10 +18,12 @@ import h5py import numpy as np +from typing_extensions import ( + Self, +) from wcmatch.glob import ( globfilter, ) -from typing_extensions import Self class DPPath(ABC):