Skip to content

[Feature vermeer-python-client] TaskInfo does not parse error_message field from task response #371

Description

@raled573343

Search before asking

  • I had searched in the feature and found no similar feature requirement.

Feature Description (功能描述)

The Vermeer REST API already returns an error_message field in the task response when a task fails (e.g., for load or compute tasks). However, the Python client (vermeer-python-client) does not parse this field. The TaskInfo class ignores error_message, making it difficult for users to understand why a task failed without manually inspecting the raw HTTP response.
vermeer-python-client/src/pyvermeer/structure/task_data.py

class TaskInfo:
    """task info"""

    def __init__(self, dic):
        """init"""
        self.__id = dic.get("id", 0)
        self.__status = dic.get("status", "")
        self.__state = dic.get("state", "")
        self.__create_user = dic.get("create_user", "")
        self.__create_type = dic.get("create_type", "")
        self.__create_time = parse_vermeer_time(dic.get("create_time", ""))
        self.__start_time = parse_vermeer_time(dic.get("start_time", ""))
        self.__update_time = parse_vermeer_time(dic.get("update_time", ""))
        self.__graph_name = dic.get("graph_name", "")
        self.__space_name = dic.get("space_name", "")
        self.__type = dic.get("type", "")
        self.__params = dic.get("params", {})
        self.__workers = [TaskWorker(w) for w in dic.get("workers", [])]
        self.__error_message = dic.get("error_message", ""),

    def to_dict(self) -> dict:
        """to dict"""
        return {
            "id": self.__id,
            "status": self.__status,
            "state": self.__state,
            "create_user": self.__create_user,
            "create_type": self.__create_type,
            "create_time": self.__create_time.strftime("%Y-%m-%d %H:%M:%S") if self.__start_time else "",
            "start_time": self.__start_time.strftime("%Y-%m-%d %H:%M:%S") if self.__start_time else "",
            "update_time": self.__update_time.strftime("%Y-%m-%d %H:%M:%S") if self.__update_time else "",
            "graph_name": self.__graph_name,
            "space_name": self.__space_name,
            "type": self.__type,
            "params": self.__params,
            "workers": [w.to_dict() for w in self.__workers],
            "error_message": self.__error_message,
        }

Are you willing to submit a PR?

  • Yes I am willing to submit a PR!

Code of Conduct

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions