Build an Extensible CLI with Python you own this product

prerequisites
intermediate Python • comfortable using modules, package management, and a unit test framework • have developed software using source control, automated testing, and a continuous integration service
skills learned
implementing an extensible CLI tool • translating business requirements into Integration Tests using the Behave framework • real-world software engineering practices for building a high-quality and maintainable software project
David Knepprath
4 weeks · 7-10 hours per week · INTERMEDIATE

pro $24.99 per month

  • access to all Manning books, MEAPs, liveVideos, liveProjects, and audiobooks!
  • choose one free eBook per month to keep
  • exclusive 50% discount on all purchases

lite $19.99 per month

  • access to all Manning books, including MEAPs!

team

5, 10 or 20 seats+ for your team - learn more


Look inside
In this liveProject, you’ll take on the challenge of designing and building a custom CLI using Python. Command line interface tools automate repetitive tasks and help streamline software development. Companies that use bespoke CLIs can easily manage change, smooth friction between teams, and reduce time spent on red tape.

You’ll join up with KlickBrick, a toy company whose digital expansion is grinding to a halt under mismanagement, and create a CLI framework that helps bring development teams together. You’ll need to assemble the infrastructure for your CLI, then develop functionality for onboarding employees, initializing new software project repositories, and reporting CLI usage metrics to a server.
This project is designed for learning purposes and is not a complete, production-ready application or solution.

liveProject mentor Michel Rutka shares what he likes about the Manning liveProject platform.

book and video resources

When you start your liveProject, you get full access to the following books and videos for 90 days.

project author

David Knepprath
David Knepprath is a Senior Software Engineer at Nike, working on Nike's global data privacy vision. He has previously worked with everything from desktop applications to serverless backend development across all sizes of companies. He has seen first-hand the transformative impact of investing in CLI tools to reduce an organization’s unique points of friction.

prerequisites

This liveProject is for the intermediate Python programmer interested in expanding their software engineering skills. To begin this liveProject you will need to be familiar with:

TOOLS
  • Basic Python language syntax, using modules, and package management
  • Unit test frameworks, such as unittest
  • Integration test frameworks, such as Behave
  • Package repository services, such as PyPI
  • Git and repository hosting services, like GitHub
  • Continuous Integration services, such as TravisCI
  • Hands-on experience with multi-command CLIs, such as git, aws-cli, pip, or homebrew
TECHNIQUES
  • Behavior Driven Development, familiar translating general business requirements into user scenarios
  • Best Practices for maintaining an open/inner-source project, such as documentation and using a linter and formatter
  • Automated testing methodologies, familiar with the difference between unit and integration testing
  • CI/CD philosophy, best practices for testing, building, and publishing software

you will learn

In this liveProject, you’ll apply real-world software engineering practices to build a CLI with Python. You’ll get experience with the processes for building and distributing software that’s both high-quality and maintainable.

  • Implement an extensible CLI framework using the Python argparse module
  • Translate business requirements into integration tests using Behavioral Driven Development process and the Behave framework
  • Manage dependencies and packaging using Poetry
  • Establish a pattern for unit testing the CLI framework
  • Apply engineering best practices to make the CLI maintainable, using techniques like linting, formatting, and logging strategy
  • Create a well-documented and organized repository that could facilitate an open/inter-source development model
  • Report on CLI usage by sending metrics to a backend API using the Contract Driven Development process, the OpenAPI specification, and the Connexion framework to quickly generate a backend server to integrate with

features

Self-paced
You choose the schedule and decide how much time to invest as you build your project.
Project roadmap
Each project is divided into several achievable steps.
Get Help
While within the liveProject platform, get help from other participants and our expert mentors.
Compare with others
For each step, compare your deliverable to the solutions by the author and other participants.
book resources
Get full access to select books for 90 days. Permanent access to excerpts from Manning products are also included, as well as references to other resources.

choose your plan

team

monthly
annual
$49.99
$499.99
only $41.67 per month
  • five seats for your team
  • access to all Manning books, MEAPs, liveVideos, liveProjects, and audiobooks!
  • choose another free product every time you renew
  • choose twelve free products per year
  • exclusive 50% discount on all purchases
  • Build an Extensible CLI with Python project for free