Bases: Schema
Form hypermedia.
schema - https://www.w3.org/TR/wot-thing-description11/#form
Source code in hololinked/hololinked/td/forms.py
| class Form(Schema):
"""
Form hypermedia.
schema - https://www.w3.org/TR/wot-thing-description11/#form
"""
href: str = None
op: str = None
htv_methodName: str = Field(default=None, alias="htv:methodName")
mqv_topic: str = Field(default=None, alias="mqv:topic")
contentType: Optional[str] = "application/json"
additionalResponses: Optional[list[AdditionalExpectedResponse]] = None
contentEncoding: Optional[str] = None
security: Optional[str] = None
scopes: Optional[str] = None
response: Optional[ExpectedResponse] = None
subprotocol: Optional[str] = None
def __init__(self):
super().__init__()
@classmethod
def from_TD(cls, form_json: dict[str, Any]) -> "Form":
"""
Create a Form instance from a Thing Description JSON object.
Parameters
----------
form_json: dict[str, Any]
The JSON representation of the form.
Returns
-------
Form
An instance of Form.
"""
form = cls()
for field in cls.model_fields:
if field == "htv_methodName" and "htv:methodName" in form_json:
setattr(form, field, form_json["htv:methodName"])
elif field == "mqv_topic" and "mqv:topic" in form_json:
setattr(form, field, form_json["mqv:topic"])
elif field in form_json:
setattr(form, field, form_json[field])
return form
def __str__(self) -> str:
return f"Form(href={self.href}, op={self.op}, htv_methodName={self.htv_methodName}, contentType={self.contentType})"
|
from_TD(form_json: dict[str, Any]) -> Form
Create a Form instance from a Thing Description JSON object.
Parameters:
| Name |
Type |
Description |
Default |
|
|
dict[str, Any]
|
The JSON representation of the form.
|
required
|
Returns:
Source code in hololinked/hololinked/td/forms.py
| @classmethod
def from_TD(cls, form_json: dict[str, Any]) -> "Form":
"""
Create a Form instance from a Thing Description JSON object.
Parameters
----------
form_json: dict[str, Any]
The JSON representation of the form.
Returns
-------
Form
An instance of Form.
"""
form = cls()
for field in cls.model_fields:
if field == "htv_methodName" and "htv:methodName" in form_json:
setattr(form, field, form_json["htv:methodName"])
elif field == "mqv_topic" and "mqv:topic" in form_json:
setattr(form, field, form_json["mqv:topic"])
elif field in form_json:
setattr(form, field, form_json[field])
return form
|