Criticisms of Beem

in #utopian-io6 years ago

The Beem library is an interface written in Python. For more information on Beem see https://steemit.com/utopian-io/@holger80/update-for-beem-autoclean-new-cli-commands-virtual-op-estimation-new-comment-functions-and-stand-alone-beempy . The latest changes are in https://github.com/holgern/beem/commit/8fef5541ef22cbd53f5629f6fddf7faee70f1d31.

Improvement Suggestions

There are times when a project needs some modification in order for special applications to use it properly. These are suggestions for changes to the Beem library. I have no intention of maintaining a fork of Beem over this but I would be happy to make these trivial changes and put out a Pull Request should the maintainer of Beem agree they are good changes.

Proposed Changes

Renames

This exception name is awkward beem.exceptions.AccountDoesNotExistsException. Could @holger80 change to or alow it to change to beem.exceptions.AccountDoesNotExistException (drop the "s" from "Exists")? It's just bad English.

  • AccountDoesNotExistsException
  • AssetDoesNotExistsException
  • BlockDoesNotExistsException
  • ContentDoesNotExistsException
  • VestingBalanceDoesNotExistsException
  • VoteDoesNotExistsException
  • WitnessDoesNotExistsException

By renaming the exceptions it will help people remember them better.

New routines for the Wallet

Although there is often one key per account and role combination, it is possible to have many per role. In particular one could have multiple posting keys and multiple owner keys. Methods like getPostingKeyForAccount() should have a companion method getPostingKeysForAccount()(note the s) that returns a Python list or array of keys. A routine like getMemoKeysForAccount() could exist but would only return singleton arrays.

Conclusion

Beem makes interacting with public RPC (remote procedure call) nodes with software straightforward. A little improvement here and there will make using low level calls unnecessary.

Coin Marketplace

STEEM 0.19
TRX 0.15
JST 0.029
BTC 64349.20
ETH 2673.53
USDT 1.00
SBD 2.83