forked from lthn/blockchain
Introduces a new Python client SDK for the lthn API, generated via OpenAPI Generator. Includes source code, models, API classes, documentation, tests, CI/CD workflows for GitHub and GitLab, and project configuration files.
143 lines
5.5 KiB
Python
Generated
143 lines
5.5 KiB
Python
Generated
# coding: utf-8
|
|
|
|
"""
|
|
Lethean Blockchain API
|
|
|
|
OpenAPI for Lethean Blockchain
|
|
|
|
The version of the OpenAPI document: 6.0.1
|
|
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
|
|
Do not edit the class manually.
|
|
""" # noqa: E501
|
|
|
|
|
|
from __future__ import annotations
|
|
import pprint
|
|
import re # noqa: F401
|
|
import json
|
|
|
|
from pydantic import BaseModel, ConfigDict, StrictInt, StrictStr
|
|
from typing import Any, ClassVar, Dict, List, Optional
|
|
from lthn.models.transaction_attachment_model import TransactionAttachmentModel
|
|
from lthn.models.transaction_extra_model import TransactionExtraModel
|
|
from lthn.models.transaction_input_model import TransactionInputModel
|
|
from lthn.models.transaction_output_model import TransactionOutputModel
|
|
from typing import Optional, Set
|
|
from typing_extensions import Self
|
|
|
|
class TransactionDetailsModel(BaseModel):
|
|
"""
|
|
TransactionDetailsModel
|
|
""" # noqa: E501
|
|
amount: Optional[StrictInt] = None
|
|
attachments: Optional[List[TransactionAttachmentModel]] = None
|
|
blob: Optional[StrictStr] = None
|
|
blob_size: Optional[StrictInt] = None
|
|
extra: Optional[List[TransactionExtraModel]] = None
|
|
fee: Optional[StrictInt] = None
|
|
id: Optional[StrictStr] = None
|
|
ins: Optional[List[TransactionInputModel]] = None
|
|
keeper_block: Optional[StrictInt] = None
|
|
object_in_json: Optional[StrictStr] = None
|
|
outs: Optional[List[TransactionOutputModel]] = None
|
|
pub_key: Optional[StrictStr] = None
|
|
timestamp: Optional[StrictInt] = None
|
|
__properties: ClassVar[List[str]] = ["amount", "attachments", "blob", "blob_size", "extra", "fee", "id", "ins", "keeper_block", "object_in_json", "outs", "pub_key", "timestamp"]
|
|
|
|
model_config = ConfigDict(
|
|
populate_by_name=True,
|
|
validate_assignment=True,
|
|
protected_namespaces=(),
|
|
)
|
|
|
|
|
|
def to_str(self) -> str:
|
|
"""Returns the string representation of the model using alias"""
|
|
return pprint.pformat(self.model_dump(by_alias=True))
|
|
|
|
def to_json(self) -> str:
|
|
"""Returns the JSON representation of the model using alias"""
|
|
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
|
|
return json.dumps(self.to_dict())
|
|
|
|
@classmethod
|
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
"""Create an instance of TransactionDetailsModel from a JSON string"""
|
|
return cls.from_dict(json.loads(json_str))
|
|
|
|
def to_dict(self) -> Dict[str, Any]:
|
|
"""Return the dictionary representation of the model using alias.
|
|
|
|
This has the following differences from calling pydantic's
|
|
`self.model_dump(by_alias=True)`:
|
|
|
|
* `None` is only added to the output dict for nullable fields that
|
|
were set at model initialization. Other fields with value `None`
|
|
are ignored.
|
|
"""
|
|
excluded_fields: Set[str] = set([
|
|
])
|
|
|
|
_dict = self.model_dump(
|
|
by_alias=True,
|
|
exclude=excluded_fields,
|
|
exclude_none=True,
|
|
)
|
|
# override the default output from pydantic by calling `to_dict()` of each item in attachments (list)
|
|
_items = []
|
|
if self.attachments:
|
|
for _item_attachments in self.attachments:
|
|
if _item_attachments:
|
|
_items.append(_item_attachments.to_dict())
|
|
_dict['attachments'] = _items
|
|
# override the default output from pydantic by calling `to_dict()` of each item in extra (list)
|
|
_items = []
|
|
if self.extra:
|
|
for _item_extra in self.extra:
|
|
if _item_extra:
|
|
_items.append(_item_extra.to_dict())
|
|
_dict['extra'] = _items
|
|
# override the default output from pydantic by calling `to_dict()` of each item in ins (list)
|
|
_items = []
|
|
if self.ins:
|
|
for _item_ins in self.ins:
|
|
if _item_ins:
|
|
_items.append(_item_ins.to_dict())
|
|
_dict['ins'] = _items
|
|
# override the default output from pydantic by calling `to_dict()` of each item in outs (list)
|
|
_items = []
|
|
if self.outs:
|
|
for _item_outs in self.outs:
|
|
if _item_outs:
|
|
_items.append(_item_outs.to_dict())
|
|
_dict['outs'] = _items
|
|
return _dict
|
|
|
|
@classmethod
|
|
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
"""Create an instance of TransactionDetailsModel from a dict"""
|
|
if obj is None:
|
|
return None
|
|
|
|
if not isinstance(obj, dict):
|
|
return cls.model_validate(obj)
|
|
|
|
_obj = cls.model_validate({
|
|
"amount": obj.get("amount"),
|
|
"attachments": [TransactionAttachmentModel.from_dict(_item) for _item in obj["attachments"]] if obj.get("attachments") is not None else None,
|
|
"blob": obj.get("blob"),
|
|
"blob_size": obj.get("blob_size"),
|
|
"extra": [TransactionExtraModel.from_dict(_item) for _item in obj["extra"]] if obj.get("extra") is not None else None,
|
|
"fee": obj.get("fee"),
|
|
"id": obj.get("id"),
|
|
"ins": [TransactionInputModel.from_dict(_item) for _item in obj["ins"]] if obj.get("ins") is not None else None,
|
|
"keeper_block": obj.get("keeper_block"),
|
|
"object_in_json": obj.get("object_in_json"),
|
|
"outs": [TransactionOutputModel.from_dict(_item) for _item in obj["outs"]] if obj.get("outs") is not None else None,
|
|
"pub_key": obj.get("pub_key"),
|
|
"timestamp": obj.get("timestamp")
|
|
})
|
|
return _obj
|
|
|
|
|