1. Introduction

This chapter introduces the ether-py Ethereum command line interface (ether-py for short).

This CLI was inspired, in part, by the article Creating a Python Ethereum Interface: Part 1 for similar reasons. I not only wanted to do the same things, but to take advantage of the rich feature set provided by cliff for more output control, built-in command help, modularity and extensibility.

1.1. Features

  • ether-py provides a general Python command line interface (CLI) built on the OpenStack cliff – Command Line Interface Formulation Framework.

  • cliff provides many useful features like modularizing subcommands into groups, built-in help for internally documenting commands, and producing output in clean tabular form or in one of several data formats you can feed into other tools or automation platforms.

  • Sphinx documentation for generation with ReadTheDocs including cliff autoprogram Sphinx integration for documenting commands from the same --help output you can get at the command line.

  • Uses the python_secrets package (psec) to manage endpoint configuration settings and access control tokens to prevent secrets leakage and to make it easy to switch between local development/testing using ganache and accessing a live Ethereum blockchain using Infura endpoints.

  • Uses py-solc-x for installing Solidity compilers and compiling Solidity smart contracts (.sol files) dependabot.

1.2. Contact

Dave Dittrich <dave.dittrich@gmail.com>

Copyright © 2021 Dave Dittrich. All rights reserved.

1.3. Credits

This package was created with Cookiecutter from the <https://github.com/davedittrich/cookiecutter-cliffapp-template> project template. It derives some of its features and inspiration from <https://github.com/veit/cookiecutter-namespace-template> and <https://github.com/audreyfeldroy/cookiecutter-pypackage>.

1.6. Other references