PNL Learn

Python Projects and Tooling

Set up, structure and ship real Python projects.

Writing Python is only half of a developer's job; the other half is everything around the code. You will install packages into virtual environments, pin dependencies with requirements.txt, pyproject.toml and uv, lay a project out with a src folder and tests, build command-line interfaces with argparse, and replace print with logging and environment-based configuration that keeps secrets out of git. The course ends with a todo CLI and a CSV sales report CLI built as small, testable functions.

IntermediatePython5 lessons36 exercisesAbout 3 h
Create a free account

What you will learn

  • Virtual environments
  • pip and uv
  • pyproject.toml
  • Project layout
  • argparse
  • logging
  • Environment configuration

Lessons

  1. 1

    Environments and Packages

    Install packages into a virtual environment, pin them, and describe a project in pyproject.toml.

    8 exercises

  2. 2

    Project Layout

    Arrange a project with a src folder, packages, tests, a README and a .gitignore, and run it with python -m.

    8 exercises

  3. 3

    Command-Line Interfaces with argparse

    Turn scripts into real commands with positional and optional arguments, types, choices, flags and subcommands.

    8 exercises

  4. 4

    Logging and Configuration

    Replace print with leveled logging, read settings from environment variables, and keep secrets out of your code and your repository.

    8 exercises

  5. 5

    Putting It Together

    Build a todo CLI and a CSV sales report CLI from small, tested functions with argparse, logging and config.

    4 exercises

How you practice

You practice in the browser and every exercise gives you feedback right away. This course uses these formats:

  • Code exercise: 15
  • Multiple choice: 6
  • Match the pairs: 3
  • Select all that apply: 3
  • Fix the bug: 3
  • Type the answer: 2
  • Spot the bug: 1
  • Predict the output: 1
  • Reorder lines: 1
  • Fill in the blank: 1

Aligned to

CS2023ACM / IEEE-CS / AAAISource
  • Software Development Fundamentals
    • SDF-PracticesSoftware Development Practices
  • Software Engineering
    • SE-ToolsTools and Environments

Proto Node Labs is not affiliated with or endorsed by ACM / IEEE-CS / AAAI. Exam names are trademarks of their owners.