Skip to content

Commit 2983319

Browse files
authored
docs: Add Google-style docstrings to token_relationship.py (#559)
Signed-off-by: Pranay <[email protected]>
1 parent 39ae533 commit 2983319

File tree

2 files changed

+33
-7
lines changed

2 files changed

+33
-7
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ This changelog is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.
2020
- docs: Added Google-style docstrings to `CustomFixedFee` class and its methods in `custom_fixed_fee.py`.
2121
- docs: Add Google-style docstrings to `CustomRoyaltyFee` class and its methods in `custom_royalty_fee.py`.
2222
- docs: Add Google-style docstrings to `AbstractTokenTransferTransaction` class and its methods in `abstract_token_transfer_transaction.py`.
23+
- docs: Add Google-style docstrings to `TokenRelationship` class and its methods in `token_relationship.py`.
2324

2425
### Changed
2526

src/hiero_sdk_python/tokens/token_relationship.py

Lines changed: 32 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
"""
2-
hiero_sdk_python.tokens.token_relationship.py
3-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1+
"""hiero_sdk_python.tokens.token_relationship.py
42
53
Provides TokenRelationship, a dataclass modeling an account’s relationship to a token,
64
including ID, symbol, balance, KYC status, freeze status, decimals, and auto-association flag.
5+
This class is primarily used for parsing and representing data returned by queries like
6+
CryptoGetAccountInfoQuery.
77
"""
88
from dataclasses import dataclass
99
from typing import Optional
1010

1111
from hiero_sdk_python.hapi.services.basic_types_pb2 import (
12-
TokenRelationship as TokenRelationshipProto,
13-
TokenFreezeStatus as TokenFreezeStatusProto,
14-
TokenKycStatus as TokenKycStatusProto,
12+
TokenRelationship as TokenRelationshipProto,
13+
TokenFreezeStatus as TokenFreezeStatusProto,
14+
TokenKycStatus as TokenKycStatusProto,
1515
)
1616
from hiero_sdk_python.tokens.token_freeze_status import TokenFreezeStatus
1717
from hiero_sdk_python.tokens.token_id import TokenId
@@ -43,6 +43,20 @@ class TokenRelationship:
4343

4444
@classmethod
4545
def _from_proto(cls, proto: Optional[TokenRelationshipProto]) -> 'TokenRelationship':
46+
"""Creates a TokenRelationship instance from a protobuf TokenRelationship message.
47+
48+
Parses the protobuf fields, converting enum types (KYC, Freeze status) and
49+
TokenId objects into their corresponding Python representations.
50+
51+
Args:
52+
proto (Optional[TokenRelationshipProto]): The protobuf TokenRelationship message.
53+
54+
Returns:
55+
TokenRelationship: The corresponding Python dataclass instance.
56+
57+
Raises:
58+
ValueError: If the input `proto` object is None.
59+
"""
4660
if proto is None:
4761
raise ValueError("Token relationship proto is None")
4862

@@ -51,6 +65,7 @@ def _from_proto(cls, proto: Optional[TokenRelationshipProto]) -> 'TokenRelations
5165
if proto.tokenId
5266
else None
5367
)
68+
# Convert HAPI protobuf enums to SDK enums
5469
kyc_status: TokenKycStatus = TokenKycStatus._from_proto(proto.kycStatus)
5570
freeze_status: TokenFreezeStatus = TokenFreezeStatus._from_proto(proto.freezeStatus)
5671

@@ -65,12 +80,22 @@ def _from_proto(cls, proto: Optional[TokenRelationshipProto]) -> 'TokenRelations
6580
)
6681

6782
def _to_proto(self) -> TokenRelationshipProto:
83+
"""Converts this TokenRelationship instance into its protobuf representation.
84+
85+
Converts SDK enums (TokenFreezeStatus, TokenKycStatus) back into their
86+
HAPI protobuf integer enum values for transmission.
87+
88+
Returns:
89+
TokenRelationshipProto: The corresponding protobuf message.
90+
"""
91+
# Determine protobuf enum value for freeze status
6892
freeze_status = TokenFreezeStatusProto.FreezeNotApplicable
6993
if self.freeze_status == TokenFreezeStatus.FROZEN:
7094
freeze_status = TokenFreezeStatusProto.Frozen
7195
elif self.freeze_status == TokenFreezeStatus.UNFROZEN:
7296
freeze_status = TokenFreezeStatusProto.Unfrozen
7397

98+
# Determine protobuf enum value for KYC status
7499
kyc_status = TokenKycStatusProto.KycNotApplicable
75100
if self.kyc_status == TokenKycStatus.GRANTED:
76101
kyc_status = TokenKycStatusProto.Granted
@@ -91,4 +116,4 @@ def _to_proto(self) -> TokenRelationshipProto:
91116
if self.automatic_association is not None:
92117
proto.automatic_association = self.automatic_association
93118

94-
return proto
119+
return proto

0 commit comments

Comments
 (0)