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
Thanks for the contribution. It has been approved.
Very nice work once again, @holger80! Keep it up!
Need help? Write a ticket on https://support.utopian.io.
Chat with us on Discord.
[utopian-moderator]
Hey @amosbastian, I just gave you a tip for your hard work on moderation. Upvote this comment to support the utopian moderators and increase your future rewards!
This post has been just added as new item to timeline of beem on Steem Projects.
If you want to be notified about new updates from this project, register on Steem Projects and add beem to your favorite projects.
Excellent work holger!
Congratulations! This post has been upvoted from the communal account, @minnowsupport, by holger80 from the Minnow Support Project. It's a witness project run by aggroed, ausbitbank, teamsteem, theprophet0, someguy123, neoxian, followbtcnews, and netuoso. The goal is to help Steemit grow by supporting Minnows. Please find us at the Peace, Abundance, and Liberty Network (PALnet) Discord Channel. It's a completely public and open space to all members of the Steemit community who voluntarily choose to be there.
If you would like to delegate to the Minnow Support Project you can do so by clicking on the following links: 50SP, 100SP, 250SP, 500SP, 1000SP, 5000SP.
Be sure to leave at least 50SP undelegated on your account.
Hey @holger80! Thank you for the great work you've done!
We're already looking forward to your next contribution!
Fully Decentralized Rewards
We hope you will take the time to share your expertise and knowledge by rating contributions made by others on Utopian.io to help us reward the best contributions together.
Utopian Witness!
Vote for Utopian Witness! We are made of developers, system administrators, entrepreneurs, artists, content creators, thinkers. We embrace every nationality, mindset and belief.
Want to chat? Join us on Discord https://discord.me/utopian-io