azure/durable_functions/models/entities/RequestMessage.py (27 lines of code) (raw):

from typing import List, Optional, Any from ..utils.entity_utils import EntityId import json class RequestMessage: """RequestMessage. Specifies a request to an entity. """ def __init__(self, id_: str, name: Optional[str] = None, signal: Optional[bool] = None, input_: Optional[str] = None, arg: Optional[Any] = None, parent: Optional[str] = None, lockset: Optional[List[EntityId]] = None, pos: Optional[int] = None, **kwargs): # TODO: this class has too many optionals, may speak to # over-caution, but it mimics the JS class. Investigate if # these many Optionals are necessary. self.id = id_ self.name = name self.signal = signal self.input = input_ self.arg = arg self.parent = parent self.lockset = lockset self.pos = pos @classmethod def from_json(cls, json_str: str) -> 'RequestMessage': """Instantiate a RequestMessage object from the durable-extension provided JSON data. Parameters ---------- json_str: str A durable-extension provided json-formatted string representation of a RequestMessage Returns ------- RequestMessage: A RequestMessage object from the json_str parameter """ # We replace the `id` key for `id_` to avoid clashes with reserved # identifiers in Python json_dict = json.loads(json_str) json_dict["id_"] = json_dict.pop("id") return cls(**json_dict)