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
- https://github.com/holgern/beem/commit/69948415b7fc403e11a3198066e3cc3d8f4100e2
- All rpc calls are handled with direct api call. Register api was a relict from bitshares.
Import Wallet changes from bitshares and bug fixes
- https://github.com/holgern/beem/commit/af565903fe916f35c15e28165a5efda48d9bc0f2
- Nodes can be given as ,or ; seperated string
- is_connected added in steem
Removed not used classes
Improved test coverage
- https://github.com/holgern/beem/commit/8559d6da01907f8fe2bc348bf5cb7009fc1f64a2
- Fix vote tests
- improved transactionbuilder tests
- Improved detection of MissingRequiredActiveAuthority
Several changes and improvements
- https://github.com/holgern/beem/commit/cdd778096a04cf4b922b67a54b6028fa6f9299a1
- Fix blocks for threaded and batched calls
- add blockchain_version function on steem
- Fix node input on graphenerpc
- Improve benchmark_nodes
- Add unit tests for bateched and threaded blocks calls
- Use https://api.steemit.com as default appbase node
Update test_steemnoderpc.py
Fix depreated function warning
- https://github.com/holgern/beem/commit/e3262e45bfa809381c7cc9422059e1165b3a71ee
- Improve blockchain unittests
Improve coverage of test_cli
Improve coverage for Price
Move post and comment_options to steem class
- https://github.com/holgern/beem/commit/9fb1330590c25736adcbe74040a093a82d446189
- RecentReplies improved
- Comment init improved
- test coverage for comment and steem improved.
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
- test_utils fixed
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
- reduce code duplication
operations
- reduce code duplication
Posted on Utopian.io - Rewarding Open Source Contributors