This guide explains checkpoint: turn a script into a small package through a focused Python example. You will learn the behavior to expect, why it matters in a real program, and how to recognize the common mistakes before applying it in your own project.
What You Will Learn
This checkpoint turns a single-file calculator into a small maintainable project: one module handles calculations, another is the entry point and a fresh environment stores its dependencies.
When and Why to Use It
The following example focuses on a practical use of Checkpoint: Turn a Script into a Small Package.
Step-by-Step Example
def calculate_subtotal(price, quantity):
if quantity < 0:
raise ValueError("Quantity cannot be negative")
return price * quantity
def run():
print(f"Subtotal: {calculate_subtotal(5, 4):.2f}")
if __name__ == "__main__":
run()
Understanding the Example
The output is Subtotal: 20.00. Moving calculate_subtotal to a separate module would preserve its API while keeping run in the entry file.
Expected Output
Subtotal: 20.00
Important Behavior and Edge Cases
A package is not complete just because it has multiple folders. Verify imports, tests and environment instructions from a clean working directory.
Try It Yourself
Create a two-module project with a README, a simple test and a .gitignore.
Run environment-management commands in your terminal, not in a Python source file. Use the executable associated with the selected project interpreter and verify the environment before installing dependencies.
Common Beginner Mistakes
- A package is not complete just because it has multiple folders. Verify imports, tests and environment instructions from a clean working directory.
- Running installation commands against a different Python interpreter than the one used for the project.
- Skipping the practice step and assuming the example covers every input. Test at least one normal case and one edge case relevant to this topic.
Key Takeaways
- This checkpoint turns a single-file calculator into a small maintainable project: one module handles calculations, another is the entry point and a fresh environment stores its dependencies.
- The output is Subtotal: 20.00.
- Apply the technique deliberately, checking its documented input requirements and failure behavior before integrating it into a larger project.