mirror of
https://github.com/deepspeedai/DeepSpeed.git
synced 2025-10-20 15:33:51 +08:00
Introduce pydantic_v1 compatibility module for pydantic>=2.0.0 support (#4407)
* Introduce pydantic_v1 compatibility module for pydantic>=2.0.0 support
This commit is contained in:
@ -3,8 +3,8 @@
|
||||
|
||||
# DeepSpeed Team
|
||||
|
||||
from pydantic import BaseModel
|
||||
from .constants import *
|
||||
from ..pydantic_v1 import BaseModel
|
||||
|
||||
|
||||
class CommsConfig(BaseModel):
|
||||
|
@ -5,10 +5,9 @@
|
||||
|
||||
import torch
|
||||
import deepspeed
|
||||
from deepspeed.pydantic_v1 import Field, validator
|
||||
from deepspeed.runtime.config_utils import DeepSpeedConfigModel
|
||||
from deepspeed.runtime.zero.config import DeepSpeedZeroConfig
|
||||
from pydantic import Field
|
||||
from pydantic import validator
|
||||
from typing import Dict, Union
|
||||
from enum import Enum
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
# DeepSpeed Team
|
||||
|
||||
from pydantic import root_validator
|
||||
from deepspeed.pydantic_v1 import root_validator
|
||||
from deepspeed.runtime.config_utils import DeepSpeedConfigModel
|
||||
|
||||
|
||||
|
16
deepspeed/pydantic_v1.py
Normal file
16
deepspeed/pydantic_v1.py
Normal file
@ -0,0 +1,16 @@
|
||||
# Copyright (c) Microsoft Corporation.
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
# DeepSpeed Team
|
||||
"""Pydantic v1 compatibility module.
|
||||
|
||||
Pydantic v2 introduced breaking changes that hinder its adoption:
|
||||
https://docs.pydantic.dev/latest/migration/. To provide deepspeed users the option to
|
||||
migrate to pydantic v2 on their own timeline, deepspeed uses this compatibility module
|
||||
as a pydantic-version-agnostic alias for pydantic's v1 API.
|
||||
"""
|
||||
|
||||
try:
|
||||
from pydantic.v1 import * # noqa: F401
|
||||
except ImportError:
|
||||
from pydantic import * # noqa: F401
|
@ -9,7 +9,7 @@ import json
|
||||
import collections
|
||||
import collections.abc
|
||||
from functools import reduce
|
||||
from pydantic import BaseModel
|
||||
from deepspeed.pydantic_v1 import BaseModel
|
||||
from deepspeed.utils import logger
|
||||
|
||||
|
||||
|
@ -3,10 +3,10 @@
|
||||
|
||||
# DeepSpeed Team
|
||||
|
||||
from pydantic import Field, validator
|
||||
import sys
|
||||
from typing import Optional
|
||||
from enum import Enum
|
||||
from deepspeed.pydantic_v1 import Field, validator
|
||||
from deepspeed.runtime.config_utils import get_scalar_param, pp_int, DeepSpeedConfigModel
|
||||
from deepspeed.utils import logger
|
||||
from .offload_config import DeepSpeedZeroOffloadParamConfig, DeepSpeedZeroOffloadOptimizerConfig, OffloadDeviceEnum
|
||||
|
@ -3,9 +3,9 @@
|
||||
|
||||
# DeepSpeed Team
|
||||
|
||||
from pydantic import Field, validator
|
||||
from enum import Enum
|
||||
from pathlib import Path
|
||||
from deepspeed.pydantic_v1 import Field, validator
|
||||
from deepspeed.runtime.config_utils import DeepSpeedConfigModel, pp_int
|
||||
|
||||
|
||||
|
@ -18,4 +18,4 @@ dependencies:
|
||||
- certifi
|
||||
- openssl
|
||||
- python=3.10
|
||||
- pydantic<2.0.0
|
||||
- pydantic
|
||||
|
@ -1,9 +1,9 @@
|
||||
autodoc_pydantic<2.0.0
|
||||
autodoc_pydantic
|
||||
docutils<0.18
|
||||
hjson
|
||||
packaging
|
||||
psutil
|
||||
py-cpuinfo
|
||||
pydantic<2.0.0
|
||||
pydantic
|
||||
torch
|
||||
tqdm
|
||||
|
@ -4,6 +4,6 @@ numpy
|
||||
packaging>=20.0
|
||||
psutil
|
||||
py-cpuinfo
|
||||
pydantic<2.0.0
|
||||
pydantic
|
||||
torch
|
||||
tqdm
|
||||
|
@ -6,8 +6,8 @@
|
||||
import pytest
|
||||
import os
|
||||
import json
|
||||
from pydantic import Field, ValidationError
|
||||
from typing import List
|
||||
from deepspeed.pydantic_v1 import Field, ValidationError
|
||||
from deepspeed.runtime import config as ds_config
|
||||
from deepspeed.runtime.config_utils import DeepSpeedConfigModel
|
||||
|
||||
|
Reference in New Issue
Block a user