CoACT initialize (#292)
This commit is contained in:
57
mm_agents/coact/autogen/logger/logger_utils.py
Normal file
57
mm_agents/coact/autogen/logger/logger_utils.py
Normal file
@@ -0,0 +1,57 @@
|
||||
# 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/microsoft/autogen are under the MIT License.
|
||||
# SPDX-License-Identifier: MIT
|
||||
import inspect
|
||||
from datetime import datetime, timezone
|
||||
from pathlib import Path, PurePath
|
||||
from typing import Any, Union
|
||||
|
||||
__all__ = ("get_current_ts", "to_dict")
|
||||
|
||||
|
||||
def get_current_ts() -> str:
|
||||
"""Get current timestamp in UTC timezone.
|
||||
|
||||
Returns:
|
||||
str: Current timestamp in UTC timezone
|
||||
"""
|
||||
return datetime.now(timezone.utc).strftime("%Y-%m-%d %H:%M:%S.%f")
|
||||
|
||||
|
||||
def to_dict(
|
||||
obj: Union[int, float, str, bool, dict[Any, Any], list[Any], tuple[Any, ...], Any],
|
||||
exclude: tuple[str, ...] = (),
|
||||
no_recursive: tuple[Any, ...] = (),
|
||||
) -> Any:
|
||||
"""Convert object to dictionary.
|
||||
|
||||
Args:
|
||||
obj (Union[int, float, str, bool, dict[Any, Any], list[Any], tuple[Any, ...], Any]): Object to convert
|
||||
exclude (tuple[str, ...], optional): Keys to exclude. Defaults to ().
|
||||
no_recursive (tuple[Any, ...], optional): Types to exclude from recursive conversion. Defaults to ().
|
||||
"""
|
||||
if isinstance(obj, (int, float, str, bool)):
|
||||
return obj
|
||||
elif isinstance(obj, (Path, PurePath)):
|
||||
return str(obj)
|
||||
elif callable(obj):
|
||||
return inspect.getsource(obj).strip()
|
||||
elif isinstance(obj, dict):
|
||||
return {
|
||||
str(k): to_dict(str(v)) if isinstance(v, no_recursive) else to_dict(v, exclude, no_recursive)
|
||||
for k, v in obj.items()
|
||||
if k not in exclude
|
||||
}
|
||||
elif isinstance(obj, (list, tuple)):
|
||||
return [to_dict(str(v)) if isinstance(v, no_recursive) else to_dict(v, exclude, no_recursive) for v in obj]
|
||||
elif hasattr(obj, "__dict__"):
|
||||
return {
|
||||
str(k): to_dict(str(v)) if isinstance(v, no_recursive) else to_dict(v, exclude, no_recursive)
|
||||
for k, v in vars(obj).items()
|
||||
if k not in exclude
|
||||
}
|
||||
else:
|
||||
return obj
|
||||
Reference in New Issue
Block a user