Major update - return instances instead of dicts
Data classes / objects
As many of us know, it gets tiring having to constantly type x['balance'] when
something returns a dictionary, especially when there's no IDE completion for it.
To solve this problem, new classes have been written to represent SteemEngine objects, such
as balances, transactions, and tokens. This allows you to access keys simply through
x.balance instead.
For backwards compatibility, the ObjBase parent class allows instances of these data classes
to be treated like dictionaries/lists, so x['balance'] will still work, and it will return
the same format as before, while x.balance for example, would return the balance as a
proper Decimal object.
You can also convert the classes into dicts/lists with dict(x) and list(x), but be
aware that this uses the raw_data that was originally passed, so these converted objects
will not have their keys casted to the appropriate Python types, unless they were casted
before being passed into the class.
- New module
privex.steemengine.objectsfor classes designed to hold dataObjBaseis used as the base class for the data classes. For backwards compatibility,
it allows instances of the classes to be accessed like a dictionary/list,
offersfrom_listfor easy conversions oflist<dict>into their respective
data classes, and also implements__iter__so instances can be converted
usingdict(x)andlist(x).Tokenrepresents the data of a SteemEngine token such as name/symbol/supplySEBalancerepresents a balance with account/symbol/balanceSETransactionrepresents a history tx with txid/timestamp/quantity etc.TokenMetadatarepresents themetadatafield of token data
Upgraded SteemEngineToken to use the data classes
The SteemEngineToken class has been updated to use the new data classes. Thanks to
ObjBase, this should hopefully not break any existing applications, but there's always a risk.
The methods that have been updated:
list_tokensnow returnsList[Token]instead ofList[dict]get_tokennow returnsTokeninstead ofdictget_token_balancesnow returnsList[SEBalance]instead ofList[dict]list_transactionsnow returnsList[SETransaction]instead ofList[dict]
Documentation for the new data classes
The documentation has been updated with details on how the data classes work.
The documentation for SteemEngineToken methods have mostly been updated to
show usage of the new data classes instead of dicts.