CoACT initialize (#292)
This commit is contained in:
80
mm_agents/coact/autogen/fast_depends/_compat.py
Normal file
80
mm_agents/coact/autogen/fast_depends/_compat.py
Normal file
@@ -0,0 +1,80 @@
|
||||
# Copyright (c) 2023 - 2025, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
# Portions derived from https://github.com/https://github.com/Lancetnik/FastDepends are under the MIT License.
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
import sys
|
||||
from importlib.metadata import version as get_version
|
||||
from typing import Any, Dict, Optional, Tuple, Type
|
||||
|
||||
from pydantic import BaseModel, create_model
|
||||
from pydantic.version import VERSION as PYDANTIC_VERSION
|
||||
|
||||
__all__ = (
|
||||
"PYDANTIC_V2",
|
||||
"BaseModel",
|
||||
"ConfigDict",
|
||||
"ExceptionGroup",
|
||||
"create_model",
|
||||
"evaluate_forwardref",
|
||||
"get_config_base",
|
||||
)
|
||||
|
||||
|
||||
PYDANTIC_V2 = PYDANTIC_VERSION.startswith("2.")
|
||||
|
||||
default_pydantic_config = {"arbitrary_types_allowed": True}
|
||||
|
||||
evaluate_forwardref: Any
|
||||
# isort: off
|
||||
if PYDANTIC_V2:
|
||||
from pydantic import ConfigDict
|
||||
from pydantic._internal._typing_extra import ( # type: ignore[no-redef]
|
||||
eval_type_lenient as evaluate_forwardref,
|
||||
)
|
||||
|
||||
def model_schema(model: Type[BaseModel]) -> Dict[str, Any]:
|
||||
return model.model_json_schema()
|
||||
|
||||
def get_config_base(config_data: Optional[ConfigDict] = None) -> ConfigDict:
|
||||
return config_data or ConfigDict(**default_pydantic_config) # type: ignore[typeddict-item]
|
||||
|
||||
def get_aliases(model: Type[BaseModel]) -> Tuple[str, ...]:
|
||||
return tuple(f.alias or name for name, f in model.model_fields.items())
|
||||
|
||||
class CreateBaseModel(BaseModel):
|
||||
"""Just to support FastStream < 0.3.7."""
|
||||
|
||||
model_config = ConfigDict(arbitrary_types_allowed=True)
|
||||
|
||||
else:
|
||||
from pydantic.typing import evaluate_forwardref as evaluate_forwardref # type: ignore[no-redef]
|
||||
from pydantic.config import get_config, ConfigDict, BaseConfig
|
||||
|
||||
def get_config_base(config_data: Optional[ConfigDict] = None) -> Type[BaseConfig]: # type: ignore[misc,no-any-unimported]
|
||||
return get_config(config_data or ConfigDict(**default_pydantic_config)) # type: ignore[typeddict-item,no-any-unimported,no-any-return]
|
||||
|
||||
def model_schema(model: Type[BaseModel]) -> Dict[str, Any]:
|
||||
return model.schema()
|
||||
|
||||
def get_aliases(model: Type[BaseModel]) -> Tuple[str, ...]:
|
||||
return tuple(f.alias or name for name, f in model.__fields__.items()) # type: ignore[attr-defined]
|
||||
|
||||
class CreateBaseModel(BaseModel): # type: ignore[no-redef]
|
||||
"""Just to support FastStream < 0.3.7."""
|
||||
|
||||
class Config:
|
||||
arbitrary_types_allowed = True
|
||||
|
||||
|
||||
ANYIO_V3 = get_version("anyio").startswith("3.")
|
||||
|
||||
if ANYIO_V3:
|
||||
from anyio import ExceptionGroup as ExceptionGroup # type: ignore[attr-defined]
|
||||
else:
|
||||
if sys.version_info < (3, 11):
|
||||
from exceptiongroup import ExceptionGroup as ExceptionGroup
|
||||
else:
|
||||
ExceptionGroup = ExceptionGroup
|
||||
Reference in New Issue
Block a user