beem is a python library for accessing the steem blockchain. I build beem from scratch using python-bitshares as template. At the moment, beem is not really used, as the github has around 1 unique visitor each day and thats maybe me. The newest version of beem is 0.19.19.
I created a discord channel for answering question or discussing beem: https://discord.gg/4HM592V
beem is not a copy of python-steem, thus the classes and functions are different. beem is almost feature complete and should be able to do all things that python-steem can do. Differences to python-steem:
| beem | python-steem |
| websocket nodes | yes | no |
| native appbase calls | yes | no |
| python 2.7 supportet | yes | yes |
| python 3.3 supportet | yes | no |
| python 3.4 supportet | yes | no |
| python 3.6 supportet | yes | yes |
| number of unit tests | 340 | 70 |
| coverage | 75 % - 83% | ? |
| can be used on android | yes | no |
I decided to create an own library for steem and not participating to python-steem by pull-requests for the following reasons:
- as python-steem is the official library, all changes have to be reviewed carfully. This takes a lot of time.
- python-steem is used by many, therefore it is not possible to change classes or functions easily.
- I like it to have my own repo, in which I can do what I want :).
beem is open source, so my work may improve python-steem.
Changes
Sync changes from python-graphenelib
Remove register_api and api_id calls
Import Wallet changes from bitshares and bug fixes
Removed not used classes
Improved test coverage
Several changes and improvements
Update test_steemnoderpc.py
Fix depreated function warning
Improve coverage of test_cli
Improve coverage for Price
Move post and comment_options to steem class
Improve coverage for steem
Remove steemitstage and improve coverage for steemnoderpc
Improvements for blockchain parameter reading and nodes benchmark
steem
- Robustify reading of blockchain parameters
utils
- improve formatTimedelta output
Examples
- improve benchmark_nodes by added account history
Speedup wait_for_and_get_block
blockchain
- reduced times in which get_current_block_num is called
- when last_fetched_block_num is given, get_current_block_num is only called when block_number is greater than last_fetched_block_num
storage
- default nodes list enhanced
steemnoderpc
- Service Temporarily Unavailable and Bad Gateway added to exception detection
graphenerpc
- check for Service Temporarily Unavailable and Bad Gateway
- Improved handling of Client returned invalid format. Expected JSON! when output is int
Unit test
num_retries improved
Steemnoderpc
- self.errror_cnt_call used instead of local variable doRetryCount
Graphenerpc
- num_retries_call added for setting a max number of retries on a rpc call
- self.n_urls added for getting the number of given nodes
- sleep on retry removed, when switching over to the next node
self.error_cnt_call used for counting rpc call retries
rpcutils
- sleep_and_check_retries improved
Unit tests
- num_retries added
- test_golos reduced
Add option to set block_numbers as start and stop in history and history revers
Account
- add option use_block_num to history, history_reverse and get_account_history
Reduce duplicate code
Wallet
operations
Posted on Utopian.io - Rewarding Open Source Contributors