Building Python CLI Apps with Click
What you'll learn
- CLI Applications with Python
- Tools for Automation
- Click CLI Framework
- Software development
- Basic understanding of Python
- Familiarity with CLI Applications
This is a practical, example heavy, course on building Python based Command Line Interface (CLI) applications and utility programs. Such CLI programs are powerful tools used to automate a wide range of simple to complex tasks which frees users from repetitive mundane activities ultimately increasing productivity along with quality of work. The Click library featured in this course empowers Python software developers with the ability to build rich CLI tools while requiring significantly less code than what’s possible with the regular Python standard library or other programming languages.
After participating in this course viewers should have a strong grasp of building CLI programs that work with all common argument and parameter options types like string, numbers, flags and I/O sources. Students will also learn to collect user input in the form of plain text and hidden (aka masked) input prompts, compose nested programs with sub commands. To facilitate high quality software development practices emphasis is also placed on how to write automated tests with your CLI applications harnessing some very useful features of the Click library that simplify writing tests.
Below is a list of the topics that are covered in this course.
Setup and Install of Click CLI Applications
Single and Multiple Argument Programs
Using Options to Control CLI Program Behavior
Collecting User Input in the form of Prompts
Composing Nested Programs with Subcommands
Passing Shared Context Between Nested Commands
Implementing Progress Bars to Convey Work Completed
Styling CLI Program Output with Colored Text
Testing CLI Programs to Ensure Quality
Who this course is for:
- Software developers and Dev Ops professions with a desire to build CLI applications
Experienced Software Engineer with a demonstrated history of working in High-Tech Enterprises like Digital Media, Biotech, and Financial Services. Skilled at crafting well engineered solutions (responsive, scalable, fault tolerant with sensible observability) across multiple technology frameworks and languages spanning all layers of the enterprise. Server-side development experience includes Python, NodeJS/Typescript, and Java paired with client technologies like JavaFX, ElectronJS, VueJS and ReactJS. Early career exposure to the challenges of high volume high complexity data in the sciences provided a strong foundation in analytics and data engineering spanning simple automation to distributed computing technologies like Celery, Redis, Spark, Hive, Kafka, Kinesis and, deep understanding of relational databases (PostgreSQL especially).