Introduction
General
macOS setup
- uv - Pyenv and Pip alternative from the creators of Ruff
- Try this as an alternative to the steps below?
- Install Python using
uv
- do not
brew install python
or brew install python3
- confirm if it’s installed
- Set up VS Code
- Add Python extension to VS Code
- hopefully this doesn’t happen to you, but it did to me: if trouble with the Python extension (Python not added to the file language options list, python commands not working in integrated terminal):
- completely uninstall VS code (via AppCleaner + Homebrew uninstall +
rm -rf ~/.vscode
)
- start a new VS install (via Homebrew) from scratch
- carefully add one extension and setting at a time + settings sync as you go after each change
Functions
Positional vs Keyword Arguments
Closures
Decorators
Classes
Loops
Types
Other Syntax
Testing
NumPy
Flask
Web Scraping
CSV Parsing
SQLAlchemy
Logging
Error Handling
Inbox
- Complete Python Mastery • Programming with Mosh 👨🎓
- python: python - Most pythonic way of assigning keyword arguments using a variable as keyword? - Stack Overflow - store kwargs to a function that takes keyword arguments as a dict, then unpack with function(**kwargs)
- python: ruff: Goodbye to Flake8 and PyLint: faster linting with Ruff
- python: ruff: Ruff: one Python linter to rule them all
- python: pytest: API Reference — pytest documentation - command line flag reference
- python: ruff: Ruff - linter and formatter that replaces Flake8, isort and Black
- pandas: intro: Getting started — pandas 2.1.3 documentation
- pandas: User Guide — pandas 2.1.3 documentation - guides that gradually build your pandas skills
- pandas: Series — pandas 2.1.3 documentation - series api references
- zen of python (add list of principles)
- pandas: how to use v3 + understand how it uses pyarrow as the default backend instead of numpy?
- course: Learn Backend Development the Fun Way | Boot.dev
- flask: API — Flask Documentation (3.0.x) - Flask v3 API
- flask: python - Get the data received in a Flask request - Stack Overflow - StackOverflow
- uv: Python packaging in Rust -
uv
is a faster alternative to pip
and pip-tools
(from the creators of ruff
)
- How to execute a file within the Python interpreter? - Stack Overflow - StackOverflow
- Common Gotchas — The Hitchhiker’s Guide to Python
- The Hitchhiker’s Guide to Python! — The Hitchhiker’s Guide to Python
- flask: API — Flask Documentation (3.0.x) - use
flask.request
to see the data flask
parsed about the incoming request
- Get Started — pytest documentation
- 1. Command line and environment — Python 3.12.2 documentation - Python docs
- Python’s assert: Debug and Test Your Code Like a Pro – Real Python - Real Python
- Modern Python logging - mCoding
- Flask contexts (And how to use them) | Moving rocks around - Diego Quintana
- threading — Thread-based parallelism — Python 3.12.3 documentation - Python docs
- multiprocessing — Process-based parallelism — Python 3.12.3 documentation - Python docs
- yukinarit/pyserde: Yet another serialization library on top of dataclasses, inspired by serde-rs.
- sparckles/Robyn: Robyn is a Super Fast Async Python Web Framework with a Rust runtime.
- robyn: Using Rust to write scalable Python APIs - Isaac Harris-Holt
- Python speed optimization options:
- wimglenn/advent-of-code-data: Get your Advent of Code data with a single import statement
- Advent of Code: Solving Your Puzzles With Python – Real Python - Real Python
- Typer - CLI framework by the makers of FastAPI
- Robust Python: Write Clean and Maintainable Code: Viafore, Patrick: 9781098100667: Books - Amazon.ca - Patrick Viafore
- “Parsing” in Python | data Blog = Blog { me :: Programmer, posts :: [Opinion] }
- Parse, don’t validate - Python edition · Stian Lågstad - Stian Lågstad
- marshmallow: simplified object serialization — marshmallow 3.21.3 documentation
- Validators approach in Python - Pydantic vs. Dataclasses | Codetain - end-to-end software development - Hubert Kuszyński
- Android and iOS App to Learn Python | Programiz
- Learn NumPy: NumPy Tutorial for Beginners - Programiz
- google apis python sdk: Python YouTube API Tutorial: Using OAuth to Access User Accounts • How to fetch the access token needed to make OAuth-authenticated requests to the YouTube API and automatically refresh the short-lived access token using the long-lived refresh token without requiring additional user interaction if it has expired • Corey Shafer 📖
- google apis python sdk: Getting Started with Google APIs in Python | Martin Heinz | Personal Website & Blog • Martin Heinz 📺
- Python itertools - The key to mastering iteration - mCoding
- testing: property testing: hypothesis: Your Python code is almost entirely untested • How to unit test the properties of a function using randomly-generated inputs rather than relying only on a small number of specific example inputs • Doug Mercer 📺
- django: unfoldadmin/turbo: Django & Next.js boilerplate
- pydantic: Should I use pydantic for all my classes? : r/Python - Recommends only using Pydantic to parse and validate user/API input and to use dataclasses for all data created by the developer to save the runtime cost of Pydantic’s validations - Reddit
- Automate the Boring Stuff with Python - Al Sweigart (free online book)
- Automate the Boring Stuff with Python Programming Course | Udemy - Al Sweigart (Udemy course)
- Beyond the Basic Stuff with Python - Al Sweigart (free online book)
- Beyond the Basic Stuff with Python - Al Sweigart - Part 1 - Al Sweigart (video playlist)
- The Big Book of Small Python Projects - Al Sweigart (free online book)
- Invent Your Own Computer Games with Python • Al Sweigart (free online book)
- Making Games with Python & Pygame • Free online book • Al Sweigart 📕
- The Python Standard Library — Python 3.12.4 documentation
- Programming with Python - Edinburgh Carpentries
- dictionary - Why do we need a dict.update() method in python instead of just assigning the values to the corresponding keys? - Stack Overflow - Stack Overflow
- FastHTML - Modern web applications in pure Python
- Python Quick Tip: Secure Passwords and Sensitive Info with DotEnv • Corey Schafer 📺
- Effective Python › The Book: Second Edition • Brett Slatkin 📕
- Iterating over Files in a Directory • Using os and glob libraries • Rob Mulla 📺
- Protocols in Python: Why You Need Them - presented by Rogier van der Geer • Protocols offer a way to combine the best aspects of static and dynamic typing • EuroPython Conference 📺
- Running scripts - uv • How to use uv to manage and run single-file Python scripts • Astral 📚
- Pydantic Tutorial • Solving Python’s Biggest Problem • pixegami 📺
- Click Documentation (8.1.x)
- Things I’ve learned about building CLI tools in Python - Simon Willison
- Python Dataclasses: From Basic to Advanced Features • Excellent summary of how dataclasses work • Alex Mux 📺
- uv IS the Future of Python Packaging 🐍📦 • Hynek Schlawack 📺
- jvns/pandas-cookbook - Recipes for using Python’s pandas library - Julia Evans
- HTTPX
- Usage — icontract 2.7.1 documentation
- Dependency Injector — Dependency injection framework for Python — Dependency Injector 4.43.0 documentation
- JulienPalard/Pipe: A Python library to use infix notation in Python
- Toolz - Functional programming helpers (like
pipe
) for Python
- FireDucks : Pandas but 100x faster | ฅ^•ﻌ•^ฅ ✨✨ HWisnu’s blog ✨✨ о ฅ^•ﻌ•^ฅ - HWisnu’s blog
- Type Safety in Python: Pydantic vs. Data Classes vs. Annotations vs. TypedDicts - Tristan Cartledge
- Pydantic: 10 Overlooked Features You Should Be Using | by Kasper Junge | Medium
- dbrattli/Expression: Functional programming for Python
- Welcome to Expression — Expression
- syrupy-project/syrupy: :pancakes: The sweeter pytest snapshot plugin - Snapshot testing library for Python
- Toolz
- itertools — Functions creating iterators for efficient looping — Python 3.13.0 documentation
- functools — Higher-order functions and operations on callable objects — Python 3.13.0 documentation
- operator — Standard operators as functions — Python 3.13.0 documentation
- Functional Programming Modules — Python 3.13.0 documentation
- Cheatsheet — funcy 2.0 documentation
- dry-python/returns: Make your functions return something meaningful, typed, and safe!
- The Difference Between Python Libraries, Modules, and Packages | by C. C. Python Programming | Medium - C. C. Python Programming
- fastapi: Dockerize fastapi app - Python Framework inside docker container - Bitfumes
- pytransitions/transitions: A lightweight, object-oriented finite state machine implementation in Python with many extensions