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
filed under

placing your order...

Don't refresh or navigate away from the page.
liveProject liveProjects give you the opportunity to learn new skills by completing real-world challenges in your local development environment. Solve practical problems, write working code, and analyze real data—with liveProject, you learn by doing. These self-paced projects also come with full liveBook access to select books for 90 days plus permanent access to other select Manning products. $27.49 $49.99 you save: $22 (45%)
Build an Extensible CLI with Python (liveProject) added to cart
continue shopping
go to cart

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.

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.
RECENTLY VIEWED