beem is a python library for steem. beem has now 425 unit tests and a coverage of 84 %. The current version is 0.19.23. Please visit my discord channel for answering question or discussing beem: https://discord.gg/4HM592V
beem has gained some attention lately and there are now some visitors in my github repository:
What feature(s) did you add?
The following commands are added to the command line tool beempy
:
currentnode
beempy currentnode
shows the current node url and its version.
mute
beempy mute test
mutes account test
.
muter
beempy muter
shows a summarize about all account that mutes the default account.
muting
beempy muting
shows a summarize about accounts which where muted by the default account.
nextnode
beempy nextnode
switches to the next node in line.
pingnode
beempy pingnode
measures how long a get_config rpc call takes. The output is in milli seconds.
power
beempy power
shows vote power, balance and account bandwidth.
votes
beempy votes --direction in --days 3
shows the incoming votes of the last 3 days.
beempy votes --direction out --days 1
shows the outgoing votes of the last day.
Support for read-only systems is added
beem
can now be used in a read-only system. The config variables can not be stored and the wallet can not be used in a read-only system.
Writing operation in a read-only system lead to an NoWriteAccess
exception
The following operation should be avoided in a read-only system:
- storing configs:
from beem import Steem
stm = Steem()
stm.set_default_account("test")
stm.config["default_account"] = "test"
- using the wallet
Using private keys in a read-only system
Private keys must be provided directly to the Steem object:
from beem import Steem
stm = Steem(keys=[wif])
It is also possible to build the transaction by hand:
from beem.transactionbuilder import TransactionBuilder
from beembase.operations import Transfer
tx = TransactionBuilder()
tx.appendOps(Transfer(**{"from": 'user_a',
"to": 'user_b',
"amount": '1.000 SBD',
"memo": 'test 2'}))
tx.appendWif('5.....') # active private key
tx.sign()
tx.broadcast()
Receiving more than one account in one rpc call
from beem.account import Accounts
account_list = ["utopian-io", "busy.org", "minnowsupport"]
a = Accounts(account_list)
a
[<Account utopian-io>, <Account busy.org>, <Account minnowsupport>]
Changes
Several improvements
Account
- refactoring of init
- Doku improved
Asset
- AssetNotFound handling improved
- Operation for equal and unqual added
Price
- usage of the new equal operation from Asset
Steem
- Improve key handling in account creation
Storage
- add sqlite3_copy and recover_with_latest_backup
beemgraphenebase/account
- add get_blind_private, get_public_key, get_secret, derive_private_key, child and derive_from_seed
Unit tests
- Use setUpClass to speed unit tests up (Steem is now created at the begging auf each unit test class
- Add unit tests for asset
- Add unit test for new beemgraphenebase/account functions
Json export improved and Muting and muter added
Account
- Json export improved
- All times are converted to datetime
- Doku about ignore for muting improved
- Accounts and AccountsObject added
- mute for Mute another account added
- get_muters and get_mutings added
CLI
- refactoring of follows and following
- muter and muting for showing muted and muting accounts
- mut added
- doku for unfollow improved
Comment
- json() improved
Unit tests
- test_account adapted to steemit/steem bug for appbase
- test_json_export added
- test for muter and muting for cli added
Add new amount dict format for appbase and other improvements
Account
- Remove set_next_node_on_empty_reply(True) for get_account_history calls
- Retry when native get_account_history raises ApiNotSupported with condenser_api
- Refactoring and use of addTzInfo from utils
- Improved logic and bugfixes for history()
- print_summarize_table moved from cli.py to Accounts
Amount
- New appbase amount dict format supported
cli
- Refactoring of print_account_table
Comment
- New appbase amount dict format supported
utils
- addTzInfo added to reduce code
- testing nodes added to get_node_list (disabled by default)
Vote
- votee added
- printAsTable improved and PrettyTable used
- get_list added to recieve vote properties as list
- print_stats added but not finished yet
- ActiveVotes improved with start and stop to limit stored votes
Witness
- return_str added to printAsTable
unit tests
- more unit tests for history and history_reverse
- unit test for new appbase amount format added
Add votes command to cli
cli
- add votes command to view outgoing/incoming votes of an account
Unit tests
- improve unit tess for account and vote
- Add test_instance to check if set_shared_steem_instance, shared_steem_instance is working
- Add new command to test_cli
Add support for read-only systems
Exception
- NoWriteAccess added, is raised when try to set configs on a read-only system
Storage
- On a read-only system beem.sql is not created. Default values for config are returned and it is not possible to use the wallet. Bug wif can be directly set.
Unit test
- test_storage added to test sqlite read and write
Sell and Buy in cli improved
CLI
- market adapted on asset for buy and sell
market
- quote and base asset can be set
unit test
- more unit tests for buy and sell
Several improvements and refactoring
Account
- get_bandwidth refactored
- get_account_bandwidth added
Cli
- power added for showing vote power and bandwidth
Steem
- Improvements and refactoring for get_config, get_network, get_hardfork_properties, get_current_median_history, get_reward_funds, get_feed_history, get_reserve_ratio and get_dynamic_global_properties
Steemnoderpc
- get_network moved to graphenerpc
Chains
- removed to beemgraphenebase/chains.py
Unit tests
- add unit test for power for cli
- golos test reduced
Improved account info and node info
Account
- Improved print_info, table output is possible
Blockchain
- stream is ready for newest changes and work with api.steemitdev.com
CLI
- nextnode, pingnode, currentnode added
Exception
- BatchedCallsNotSupported added, raised when batched blockchain failed
Steem
- set_default_node improved
- get_default_node added
Unit test
- new unit test for new functions added
Documentation and market improved
Account
- Example for history and history_reverse added
Market
- base and quote added to init to define what buy and what sell means
Documentation
- tutorials improved
Unit tests
- test_market improved
Some small improvements and final changes for 0.19.23
Posted on Utopian.io - Rewarding Open Source Contributors