1
0
Fork 0
forked from lthn/blockchain
blockchain/utils/sdk/client/python/lthn/models/pos_entry_model.py
Snider 88d4357628
New API Interface (#27)
This pull request introduces a comprehensive new API interface for the blockchain, leveraging OpenAPI v3 to facilitate direct consumption of chain data by GUI and web applications. This change significantly refines the project's build infrastructure, incorporating Conan for dependency management and CMake for configuration, alongside the integration of an OpenAPI Generator to produce SDKs for multiple languages. 

### Highlights

* **New API Interface**: Introduced a new API interface using OpenAPI v3 to enable GUI/WEB development to consume chain data without needing custom server applications.
* **Build System Enhancements**: Significant updates to the build system, including Makefile, CMake, and Conan configurations, to streamline the build process and support new functionalities.
* **Multi-language SDK Generation**: Integrated OpenAPI Generator to automatically create SDKs for various programming languages, including Go, Angular, and PHP, simplifying client-side integration.
2025-10-19 19:12:37 +01:00

101 lines
3.1 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 typing import Optional, Set
from typing_extensions import Self
class PosEntryModel(BaseModel):
"""
PosEntryModel
""" # noqa: E501
amount: Optional[StrictInt] = None
g_index: Optional[StrictInt] = None
keyimage: Optional[StrictStr] = None
block_timestamp: Optional[StrictInt] = None
stake_unlock_time: Optional[StrictInt] = None
tx_id: Optional[StrictStr] = None
tx_out_index: Optional[StrictInt] = None
wallet_index: Optional[StrictInt] = None
__properties: ClassVar[List[str]] = ["amount", "g_index", "keyimage", "block_timestamp", "stake_unlock_time", "tx_id", "tx_out_index", "wallet_index"]
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 PosEntryModel 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,
)
return _dict
@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"""Create an instance of PosEntryModel 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"),
"g_index": obj.get("g_index"),
"keyimage": obj.get("keyimage"),
"block_timestamp": obj.get("block_timestamp"),
"stake_unlock_time": obj.get("stake_unlock_time"),
"tx_id": obj.get("tx_id"),
"tx_out_index": obj.get("tx_out_index"),
"wallet_index": obj.get("wallet_index")
})
return _obj