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.objects
for classes designed to hold dataObjBase
is 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_list
for easy conversions oflist<dict>
into their respective
data classes, and also implements__iter__
so instances can be converted
usingdict(x)
andlist(x)
.Token
represents the data of a SteemEngine token such as name/symbol/supplySEBalance
represents a balance with account/symbol/balanceSETransaction
represents a history tx with txid/timestamp/quantity etc.TokenMetadata
represents themetadata
field 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_tokens
now returnsList[Token]
instead ofList[dict]
get_token
now returnsToken
instead ofdict
get_token_balances
now returnsList[SEBalance]
instead ofList[dict]
list_transactions
now 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 dict
s.