Saravanan666/pypi-org huggingface dataset:
Package: ethereum-etl-delphi
Ethereum ETLEthereum ETL lets you convert blockchain data into convenient formats like CSVs and relational databases.Do you just want to query Ethereum data right away? Use thepublic dataset in BigQuery.Full documentation available here.QuickstartInstall Ethereum ETL:pip3installethereum-etlExport blocks and transactions (Schema,Reference):>ethereumetlexport_blocks_and_transactions--start-block0--end-block500000\--blocks-outputblocks.csv--transactions-outputtransactions.csv\--provider-urihttps://mainnet.infura.io/v3/7aef3f0cd1f64408b163814b22cc643cExport ERC20 and ERC721 transfers (Schema,Reference):>ethereumetlexport_token_transfers--start-block0--end-block500000\--provider-urifile://$HOME/Library/Ethereum/geth.ipc--outputtoken_transfers.csvExport traces (Schema,Reference):>ethereumetlexport_traces--start-block0--end-block500000\--provider-urifile://$HOME/Library/Ethereum/parity.ipc--outputtraces.csvStream blocks, transactions, logs, token_transfers continually to console (Reference):>pip3installethereum-etl[streaming]>ethereumetlstream--start-block500000-eblock,transaction,log,token_transfer--log-filelog.txt\--provider-urihttps://mainnet.infura.io/v3/7aef3f0cd1f64408b163814b22cc643cFind other commandshere.For the latest version, check out the repo and call>pip3install-e.>python3ethereumetl.pyUseful LinksSchemaCommand ReferenceDocumentationPublic Datasets in BigQueryExporting the BlockchainQuerying in Amazon AthenaQuerying in Google BigQueryQuerying in KaggleAirflow DAGsPostgres ETLEthereum 2.0 ETLRunning Tests>pip3install-e.[dev,streaming]>exportETHEREUM_ETL_RUN_SLOW_TESTS=True
>exportPROVIDER_URL=<your_porvider_uri>
>pytest-vvRunning Tox Tests>pip3installtox
>toxRunning in DockerInstall Docker:https://docs.docker.com/install/Build a docker image> docker build -t ethereum-etl:latest .
 > docker image lsRun a container out of the image> docker run -v $HOME/output:/ethereum-etl/output ethereum-etl:latest export_all -s 0 -e 5499999 -b 100000 -p https://mainnet.infura.io
 > docker run -v $HOME/output:/ethereum-etl/output ethereum-etl:latest export_all -s 2018-01-01 -e 2018-01-01 -p https://mainnet.infura.ioRun streaming to console or Pub/Sub> docker build -t ethereum-etl:latest -f Dockerfile .
 > echo "Stream to console"
 > docker run ethereum-etl:latest stream --start-block 500000 --log-file log.txt
 > echo "Stream to Pub/Sub"
 > docker run -v /path_to_credentials_file/:/ethereum-etl/ --env GOOGLE_APPLICATION_CREDENTIALS=/ethereum-etl/credentials_file.json ethereum-etl:latest stream --start-block 500000 --output projects/<your-project>/topics/crypto_ethereumProjects using Ethereum ETLGoogle- Public BigQuery Ethereum datasetsNansen- Analytics platform for Ethereum
Package: ethereum-etl-fixbug
Ethereum ETLEthereum ETL lets you convert blockchain data into convenient formats like CSVs and relational databases.Do you just want to query Ethereum data right away? Use thepublic dataset in BigQuery.Full documentation available here.QuickstartInstall Ethereum ETL:pip3installethereum-etlExport blocks and transactions (Schema,Reference):>ethereumetlexport_blocks_and_transactions--start-block0--end-block500000\--blocks-outputblocks.csv--transactions-outputtransactions.csv\--provider-urihttps://mainnet.infura.io/v3/7aef3f0cd1f64408b163814b22cc643cExport ERC20 and ERC721 transfers (Schema,Reference):>ethereumetlexport_token_transfers--start-block0--end-block500000\--provider-urifile://$HOME/Library/Ethereum/geth.ipc--outputtoken_transfers.csvExport traces (Schema,Reference):>ethereumetlexport_traces--start-block0--end-block500000\--provider-urifile://$HOME/Library/Ethereum/parity.ipc--outputtraces.csvStream blocks, transactions, logs, token_transfers continually to console (Reference):>pip3installethereum-etl[streaming]>ethereumetlstream--start-block500000-eblock,transaction,log,token_transfer--log-filelog.txt\--provider-urihttps://mainnet.infura.io/v3/7aef3f0cd1f64408b163814b22cc643cFind other commandshere.For the latest version, check out the repo and call>pip3install-e.>python3ethereumetl.pyUseful LinksSchemaCommand ReferenceDocumentationPublic Datasets in BigQueryExporting the BlockchainQuerying in Amazon AthenaQuerying in Google BigQueryQuerying in KaggleAirflow DAGsPostgres ETLEthereum 2.0 ETLRunning Tests>pip3install-e.[dev,streaming]>exportETHEREUM_ETL_RUN_SLOW_TESTS=True
>exportPROVIDER_URL=<your_porvider_uri>
>pytest-vvRunning Tox Tests>pip3installtox
>toxRunning in DockerInstall Docker:https://docs.docker.com/install/Build a docker image> docker build -t ethereum-etl:latest .
 > docker image lsRun a container out of the image> docker run -v $HOME/output:/ethereum-etl/output ethereum-etl:latest export_all -s 0 -e 5499999 -b 100000 -p https://mainnet.infura.io
 > docker run -v $HOME/output:/ethereum-etl/output ethereum-etl:latest export_all -s 2018-01-01 -e 2018-01-01 -p https://mainnet.infura.ioRun streaming to console or Pub/Sub> docker build -t ethereum-etl:latest -f Dockerfile .
 > echo "Stream to console"
 > docker run ethereum-etl:latest stream --start-block 500000 --log-file log.txt
 > echo "Stream to Pub/Sub"
 > docker run -v /path_to_credentials_file/:/ethereum-etl/ --env GOOGLE_APPLICATION_CREDENTIALS=/ethereum-etl/credentials_file.json ethereum-etl:latest stream --start-block 500000 --output projects/<your-project>/topics/crypto_ethereumProjects using Ethereum ETLGoogle- Public BigQuery Ethereum datasetsNansen- Analytics platform for Ethereum
Package: ethereum-etl-optimized
Ethereum ETLEthereum ETL lets you convert blockchain data into convenient formats like CSVs and relational databases.Do you just want to query Ethereum data right away? Use thepublic dataset in BigQuery.Full documentation available here.QuickstartInstall Ethereum ETL:pip3installethereum-etlExport blocks and transactions (Schema,Reference):>ethereumetlexport_blocks_and_transactions--start-block0--end-block500000\--blocks-outputblocks.csv--transactions-outputtransactions.csv\--provider-urihttps://mainnet.infura.io/v3/7aef3f0cd1f64408b163814b22cc643cExport ERC20 and ERC721 transfers (Schema,Reference):>ethereumetlexport_token_transfers--start-block0--end-block500000\--provider-urifile://$HOME/Library/Ethereum/geth.ipc--outputtoken_transfers.csvExport traces (Schema,Reference):>ethereumetlexport_traces--start-block0--end-block500000\--provider-urifile://$HOME/Library/Ethereum/parity.ipc--outputtraces.csvStream blocks, transactions, logs, token_transfers continually to console (Reference):>pip3installethereum-etl[streaming]>ethereumetlstream--start-block500000-eblock,transaction,log,token_transfer--log-filelog.txt\--provider-urihttps://mainnet.infura.io/v3/7aef3f0cd1f64408b163814b22cc643cFind other commandshere.For the latest version, check out the repo and call>pip3install-e.>python3ethereumetl.pyUseful LinksSchemaCommand ReferenceDocumentationPublic Datasets in BigQueryExporting the BlockchainQuerying in Amazon AthenaQuerying in Google BigQueryQuerying in KaggleAirflow DAGsPostgres ETLEthereum 2.0 ETLRunning Tests>pip3install-e.[dev,streaming]>exportETHEREUM_ETL_RUN_SLOW_TESTS=True
>exportPROVIDER_URL=<your_porvider_uri>
>pytest-vvRunning Tox Tests>pip3installtox
>toxRunning in DockerInstall Docker:https://docs.docker.com/get-docker/Build a docker image> docker build -t ethereum-etl:latest .
 > docker image lsRun a container out of the image> docker run -v $HOME/output:/ethereum-etl/output ethereum-etl:latest export_all -s 0 -e 5499999 -b 100000 -p https://mainnet.infura.io
 > docker run -v $HOME/output:/ethereum-etl/output ethereum-etl:latest export_all -s 2018-01-01 -e 2018-01-01 -p https://mainnet.infura.ioRun streaming to console or Pub/Sub> docker build -t ethereum-etl:latest .
 > echo "Stream to console"
 > docker run ethereum-etl:latest stream --start-block 500000 --log-file log.txt
 > echo "Stream to Pub/Sub"
 > docker run -v /path_to_credentials_file/:/ethereum-etl/ --env GOOGLE_APPLICATION_CREDENTIALS=/ethereum-etl/credentials_file.json ethereum-etl:latest stream --start-block 500000 --output projects/<your-project>/topics/crypto_ethereumIf running on Apple M1 chip add the--platform linux/x86_64option to thebuildandruncommands e.g.:docker build --platform linux/x86_64 -t ethereum-etl:latest .
docker run --platform linux/x86_64 ethereum-etl:latest stream --start-block 500000Projects using Ethereum ETLGoogle- Public BigQuery Ethereum datasetsNansen- Analytics platform for Ethereum
Package: ethereum-etl-table-definition-cli
EVM Chain ETL Table Definition CLIEVM Chain ETL Table Definition CLI allows generating table definitions forEthereum ETL,Polygon ETL,EVM Chain ETL.Read this article for more details:How to get any Ethereum smart contract into BigQuery (in 8 mins).Requirements:Python 3.6+QuickstartInstall the cli:pipinstallethereum-etl-table-definition-cliGenerate table definitions (example_uniswap_abi.jsoncan be downloaded fromhere):tabledefinitiongenerate\--abi-fileexample_uniswap_abi.json\--dataset-nameuniswap\--contract-nameUni\--contract-address0x1f9840a85d5af5bf1d1762f925bdaddc4201f984Output will be in theoutputdirectory.For the latest version, check out the repo and callpipinstall-e.
pythontabledefinition.py--help
Package: ethereum-etl-updated
Ethereum ETLEthereum ETL lets you convert blockchain data into convenient formats like CSVs and relational databases.Do you just want to query Ethereum data right away? Use thepublic dataset in BigQuery.Full documentation available here.QuickstartInstall Ethereum ETL:pip3installethereum-etlExport blocks and transactions (Schema,Reference):>ethereumetlexport_blocks_and_transactions--start-block0--end-block500000\--blocks-outputblocks.csv--transactions-outputtransactions.csv\--provider-urihttps://mainnet.infura.io/v3/7aef3f0cd1f64408b163814b22cc643cExport ERC20 and ERC721 transfers (Schema,Reference):>ethereumetlexport_token_transfers--start-block0--end-block500000\--provider-urifile://$HOME/Library/Ethereum/geth.ipc--outputtoken_transfers.csvExport traces (Schema,Reference):>ethereumetlexport_traces--start-block0--end-block500000\--provider-urifile://$HOME/Library/Ethereum/parity.ipc--outputtraces.csvStream blocks, transactions, logs, token_transfers continually to console (Reference):>pip3installethereum-etl[streaming]>ethereumetlstream--start-block500000-eblock,transaction,log,token_transfer--log-filelog.txt\--provider-urihttps://mainnet.infura.io/v3/7aef3f0cd1f64408b163814b22cc643cFind other commandshere.For the latest version, check out the repo and call>pip3install-e.>python3ethereumetl.pyUseful LinksSchemaCommand ReferenceDocumentationPublic Datasets in BigQueryExporting the BlockchainQuerying in Amazon AthenaQuerying in Google BigQueryQuerying in KaggleAirflow DAGsPostgres ETLEthereum 2.0 ETLRunning Tests>pip3install-e.[dev,streaming]>exportETHEREUM_ETL_RUN_SLOW_TESTS=True
>pytest-vvRunning Tox Tests>pip3installtox
>toxRunning in DockerInstall Docker:https://docs.docker.com/install/Build a docker image> docker build -t ethereum-etl:latest .
 > docker image lsRun a container out of the image> docker run -v $HOME/output:/ethereum-etl/output ethereum-etl:latest export_all -s 0 -e 5499999 -b 100000 -p https://mainnet.infura.io
 > docker run -v $HOME/output:/ethereum-etl/output ethereum-etl:latest export_all -s 2018-01-01 -e 2018-01-01 -p https://mainnet.infura.ioRun streaming to console or Pub/Sub> docker build -t ethereum-etl:latest -f Dockerfile .
 > echo "Stream to console"
 > docker run ethereum-etl:latest stream --start-block 500000 --log-file log.txt
 > echo "Stream to Pub/Sub"
 > docker run -v /path_to_credentials_file/:/ethereum-etl/ --env GOOGLE_APPLICATION_CREDENTIALS=/ethereum-etl/credentials_file.json ethereum-etl:latest stream --start-block 500000 --output projects/<your-project>/topics/crypto_ethereumProjects using Ethereum ETLGoogle- Public BigQuery Ethereum datasetsNansen- Analytics platform for Ethereum
Package: ethereum-kms-signer
Ethereum KMS SignerSign ETH transactions with keys stored in AWS KMSFree software: MITDocumentation:https://meetmangukiya.github.io/ethereum-kms-signerFeaturesSign TransactionsVideo DemoWhy?In the crypto world, all the assets, tokens, crypto you might own is
protected by the secrecy of the private key. This leads to a single point
of failure in cases of leaking of private keys or losing keys because of
lack of backup or any number of reasons. It becomes even harder when you want
to share these keys as an organization among many individuals.Using something like AWS KMS can help with that and can provide full benefits
of all the security features it provides. Sigantures can be created without the key
ever leaving the AWS's infrastructure and could be effectively shared among individuals.This library provides a simple and an easy-to-use API for using AWS KMS to sign ethereum
transactions and an easy integration withweb3.pymaking it practical for using KMS to
manage your private keys.QuickstartGet ethereum address from KMS keyfromethereum_kms_signerimportget_eth_addressaddress=get_eth_address('THE-AWS-KMS-ID')print(address)Sign a transaction object with KMS keyfromethereum_kms_signerimportsign_transactiondai_txn=dai.functions.transfer(web3.toChecksumAddress(to_address.lower()),amount).buildTransaction({"nonce":nonce,})# Signing the transaction with KMS keysigned_tx=sign_transaction(dai_txn,key_id)# send transactiontx_hash=web3.eth.sendRawTransaction(signed_tx.rawTransaction)Provisioning AWS KMS key with terraformAnECC_SECG_P256K1key can be provisioned using terraform by using the following
configuration along with the aws provider. More details can be found onprovider docsresource"aws_kms_key""my_very_secret_eth_account"{description="ETH account #1"key_usage="SIGN_VERIFY"customer_master_key_spec="ECC_SECG_P256K1"}resource"aws_kms_alias""my_very_secret_eth_account"{name="eth-account-1"target_key_id=aws_kms_key.my_very_secret_eth_account.id}ExamplesFew examples can be foundhere.CreditsThis package was created withCookiecutterand thezillionare/cookiecutter-pypackageproject template.This articlehas served as a good resource for implementing the functionality
Package: ethereum-merkle-patricia-trie
In order to understand Ethereum's core functionalities, I am implementing parts of it for myself. Here I am implementing
the Merkle Patricia Trie (MPT) purely in Python 3.Installpipinstallethereum-merkle-patricia-trieRequirementsIn order to use the package, you need to install LevelDb on your system.TestsIn order to run the tests, execute the following command:$python-munittestUsageHere an example on how to use the package:from mpt.trie import Trie

t = Trie('./testdb')
t.update(b'abcd', b'hello world')

print(t.get_value(b'abcd'))

print(t.get_root_hash())

t.delete(b'abcd')Upload to PypiUploading and testing using test Pypipython -m build
python -m twine upload --repository testpypi dist/*
pip install --index-url https://test.pypi.org/simple/ --no-deps merklePatriciaTrieUploading to Pypipython -m build
python -m twine upload dist/*ContributionsCreate a new virtual environment and install all dependencies:python3-mvirtualenv--python/path/to/python3venvsource./venv/bin/activate
pipinstall-rrequirements.txtInstall the pre-commit hooks using the following command:pre-commitinstall
Package: ethereum-serpent-augur-temp
# Installation:make && sudo make installNote: this is a temporary PyPi package since ethereum-serpent hasn’t pushed a
new version since 2015.# TestingTesting is done usingpytestandtox.`bash $ pip install tox-rrequirements-dev.txt`To run the test suite in your current python version:`bash $ py.test `To run the full test suite across all supported python versions:`bash $ tox `
Package: ethereum-tester-client
# Ethereum Tester Client[![Build Status](https://travis-ci.org/pipermerriam/ethereum-tester-client.png)](https://travis-ci.org/pipermerriam/ethereum-tester-client)Python client for testing applications that use either the
[ethereum-rpc-client](https://github.com/pipermerriam/ethereum-rpc-client) or the [ethereum-ipc-client](https://github.com/pipermerriam/ethereum-ipc-client).
Package: ethereum-tools
eth-toolsSmall library/CLI tool wrapping web3py.Installationpip install ethereum-toolsCLI UsageWeb3 provider needs to be set either through theWEB3_PROVIDER_URIenvironment
variable or through the--web3-uriCLI flag.Fetching blockseth-tools fetch-blocks -s 10000000 -e 10000999 -o blocks.csv.gzFetching eventseth-tools fetch-events 0x6b175474e89094c44da98b954eedeac495271d0f --abi /path/to/abi.json -s 10000000 -e 10000999 -o events.jsonl.gzLibrary usagefromweb3importWeb3fromweb3.providers.autoimportload_provider_from_environmentfrometh_tools.block_iteratorimportBlockIteratorprovider=load_provider_from_environment()web3=Web3(provider)block_iterator=BlockIterator(web3,start_block=10_000_000,end_block=10_000_999)forblockinblock_iterator:print(block.number)
Package: ethereum-trie
# Python Implementation of the Ethereum Trie structure`shell $ pip installethereum-trie`> Warning: This is an early release and is likely to contain bugs as well as
> breaking API changes.# Usage`python >>> from trie import Trie >>> from trie.db.memory import MemoryDB >>> t =Trie(MemoryDB())>>> t.root_hashb'V\xe8\x1f\x17\x1b\xccU\xa6\xff\x83E\xe6\x92\xc0\xf8n[H\xe0\x1b\x99l\xad\xc0\x01b/\xb5\xe3c\xb4!'>>>t.set(b'my-key',b'some-value')>>>t.get(b'my-key')b'some-value'>>>t.exists(b'another-key')False >>>t.set(b'another-key',b'another-value')>>>t.exists(b'another-key')True >>>t.delete(b'another-key')>>>t.exists(b'another-key')False `You can also use it like a dictionary.`python >>> from trie import Trie >>> from trie.db.memory import MemoryDB >>> t =Trie(MemoryDB())>>> t.root_hashb'V\xe8\x1f\x17\x1b\xccU\xa6\xff\x83E\xe6\x92\xc0\xf8n[H\xe0\x1b\x99l\xad\xc0\x01b/\xb5\xe3c\xb4!'>>>t[b'my-key']=b'some-value'>>>t[b'my-key']b'some-value'>>>b'another-key'in t False >>>t[b'another-key']=b'another-value'>>>b'another-key'in t True >>> delt[b'another-key']>>>b'another-key'in t False `
Package: ether-examples
ether-examplesLearning Ethereum by example. To run examples, it’s recommended that you use Python 3.6 and above to stay up to date. Code written here tested for Python 3.6 and above only.How to run locally:$pipinstall-Uether_examples$decrypt_utc_hextests/test_v3_scrypt_aes_128_ctr_utc.jsonINFO:root:PreparingtodecryptwalletfromUTCfile...PasswordinHEXtodecrypttheUTCJSONfile:INFO:root:SuccessfullydecryptedtheUTCfile:tests/test_v3_scrypt_aes_128_ctr_utc.jsonArticles in EnglishComing soon…Articles in VietnameseEthereum Wallet: Giải Mã File UTC JSONContinuous testingTravis:https://travis-ci.org/VISCHub/ether-examplesAlternative librariesThis example usespycryptodomelibrary because it has all necessary functions. You can look at other alternatives which provide features separately:scrypt:https://pypi.org/project/scrypt/cryptography:https://cryptography.io/en/latest/hazmat/primitives/index.html
Package: ethermine
Build StatusAccess Etherium related mining data in theEthermine mining
pool.All publiclyavailable Ethermine API
endpointsare wrapped. All endpoints
return dicts containing the API data orNoneif response status code
was not 200. Check the tests or API documentation to see all available
fields.InstallationInstall via PIP:pipinstallethermineUsagefromethermineimportEthermineethermine=Ethermine()Pool/poolStatsstats=ethermine.pool_stats()/blocks/historyhistory=ethermine.blocks_history()/networkStatsstats=ethermine.network_stats()/server/historyhistory=ethermine.server_history()Miner/miner/:miner/dashboarddashboard=ethermine.miner_dashboard("address")/miner/:miner/historyhistory=ethermine.miner_history("address")/miner/:miner/payoutspayouts=ethermine.miner_payouts("address")/miner/:miner/roundsrounds=ethermine.miner_rounds("address")/miner/:miner/settingssettings=ethermine.miner_settings("address")/miner/:miner/currentStatsstats=ethermine.miner_current_stats("address")Worker/miner/:miner/workersworkers=ethermine.miner_workers("address")/miner/:miner/worker/:worker/historyhistory=ethermine.miner_worker("address","worker")/miner/:miner/worker/:worker/currentStatsstats=ethermine.miner_worker_current_stats("address","worker")/miner/:miner/worker/:worker/monitormonitors=ethermine.miner_worker_monitor("address","worker")DevelopmentPR’s are welcome - especially should the API change. Please also add
tests - the tests should always represent the current state of the API
including all fields.Building Dist PackageTo build a distributable package run:pythonsetup.pysdist
Package: etheroll
pyetherollPython library to Etheroll smart contractUsageSimply set bet size, chances and wallet settings before rolling:frompyetheroll.etherollimportEtherolletheroll=Etheroll()bet_size_ether=0.1bet_size_wei=int(bet_size_ether*1e18)chances=50wallet_path='wallet.json'wallet_password='password'transaction=etheroll.player_roll_dice(bet_size_wei,chances,wallet_path,wallet_password)It's also possible to set different contract address and chain ID:frompyetheroll.constantsimportChainIDfrompyetheroll.etherollimportEtherollchain_id=ChainID.ROPSTENcontract_address='0xe12c6dEb59f37011d2D9FdeC77A6f1A8f3B8B1e8'etheroll=Etheroll(chain_id,contract_address)Find out more indocs/Examples.md.API keysBoth Etherscan and Infura require API keys which are retrieved from the following environment variables:ETHERSCAN_API_KEY(consumed by pyetheroll directly)WEB3_INFURA_PROJECT_ID(consumed byweb3.py)InstallLatest stable release:pipinstallpyetherollDevelopment branch:pipinstall--process-dependency-links\https://github.com/AndreMiras/pyetheroll/archive/develop.zip
Package: etherpad_lite
Etherpad Lite is a web service that allows real-time document collaboration for groups of users.http://etherpad.org/python-etherpad_lite provides an interface for Etherpad-Lite’s HTTP API.Installationpip install etherpad_litepython-etherpad_lite doesn’t have dependencies and is compatible with both python 2 and 3.UsageFrom python:from etherpad_lite import EtherpadLiteClient
c = EtherpadLiteClient(base_params={'apikey':'secret_from_APIKEY.txt'})
c.createPad(padID='test', text="Lorem ipsum dolor sit amet.")From the command line:$ python -m etherpad_lite -p apikey=secret_from_APIKEY.txt
=> Welcome to the Etherpad Lite shell !
=> Command example: createPad padID=test text="Lorem ipsum dolor sit amet."
% createPad padID=test text="Lorem ipsum dolor sit amet."
ok
% getHTML padID=test
{u'html': u'Lorem ipsum dolor sit amet.<br>'}
% deletePad padID=test
okSee the documentation of Etherpad Lite for the list of API functions and their arguments.LicenseCC0 Public Domain Dedication
Package: etherrain
# Python3 API for QuickSmart Etherrain/8The EtherRain/8 from [QuickSmart](http://www.quicksmart.com/qs_etherrain.html) is an Ethernet based irrigation controller with a custom web API.  This is a simple Python3 API for talking to it.## Limitations* The ER8 maintains its authentication state by IP address.  So if another process or client on your system has authenticated with the ER8, then the login() function will succeed even with an invalid password.* Due to the above limitation, a client with an invalid username/password on the same host can issue watering commands and retrieve state, etc.* This API Assumes an Etherrain/8 and doesn't anticipate anything as regards the Etherrain/7P```Pythonclass EtherRain:def __init__(self, addr, user, pw, timeout):```Class instantiation requires an IP address or hostname, username, and password with an optional timeout.## API* login() -  Authenticate.  Returns true or false* stop() -  Full stop to all watering operations* update_status() - Call this before checking the operating status or any other status attributes.* get_status() - Return the current operating status. Call ```update_status()``` first.  Returns:* BZ - Busy* WT - Waiting* RD - Ready* rain() - Is the rain sensor reporting that it is wet?* last_valve() - Returns which valve is currently turned on or has more recently been turned on.  Returns 0-8* irrigate(valve, time) - Turn on an irrigation valve. Time is in Minutes.  Valve is 1-8.