Skip to content

🏠 Guide to Professional Python

This repository provides a clear, concise guide for professional Python projects.

The "happy path" can be fairly concise and clear, but it can also be unusual. This shared guide provides the details, explanation, and troubleshooting so we don't have to include this content with each project.

First is the Worst

The first time through each step is the hardest. New tools, new terms, and new steps all have to line up, so allow extra time when performing a workflow for the first time.

It gets easier with experience. The tools are installed just once and the project setup steps become routine. The professional workflow enables every project that follows.

The Five Workflows

  • 🟢 A. Set Up Machine: get a machine ready for modern development. Typically done when setting up a new machine and to keep tools updated when starting a new course. Correct setup makes everything else easier.
  • 🔵 B. Explore Example Project: explore a professional Python example project (a working textbook).
  • 🟠 C. Start New Project: create and configure a new GitHub repository, using the example as a guide.
  • 🟣 D. Apply Skills: apply your new skills to a unique data problem by progressively implementing a custom project.
  • 🔴 E. Finalize Project: finalize your project for your GitHub portfolio.

For Returning Users

If you have used this guide before, some tools and conventions have evolved.

  • Updated uv Python manager process.
  • Python is managed per project by uv.
  • Updated pyproject.toml conventions.
  • Dropped Node and npx installation.
  • Replaced Pyright/Pylance with new ty for type checking.
  • Replaced pre-commit with prek.
  • Added support for marimo notebooks named app.py.

For best results, do not assume an earlier setup is still current. Follow the steps to confirm the processes are followed.

OPTIONAL: Share Feedback

Feel free to ask questions in the GitHub Discussions or raise a GitHub Issue if you have suggestions or need additional clarification.