Episode 220: Configuring Git Pre-Commit Hooks & Estimating Software Projects
The Real Python Podcast
Sep 13, 2024 54m
How do you take advantage of Git pre-commit hooks? How do you build custom software checks and rules that run every time you commit your code? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder’s Weekly articles and projects.
Episode Sponsor:
We share a trio of articles by previous guest Stefanie Molin about Git pre-commit hooks. Across the series, she provides step-by-step instructions for building your own hooks, managing them, and learning how they operate.
We discuss the process of estimating software development projects. We dig into the art of “guesstimation,” rough calculation, and napkin math. Christopher shares his experience in agile scenarios and measuring projects by story counts.
We share several other articles and projects from the Python community, including a news roundup, 10 Python programming optimization techniques, and building a blog in Django using GraphQL & Vue. We also explore experimenting with Python’s preprocessor, a toolkit for writing UIs in PyScript, and a couple of projects for working with Django Admin.
This episode is sponsored by InfluxData.
Course Spotlight: Python mmap: Doing File I/O With Memory Mapping
In this video course, you’ll learn how to use Python’s mmap module to improve your code’s performance when you’re working with files. You’ll get a quick overview of the different types of memory before diving into how and why memory mapping with mmap can make your file I/O operations faster.
Topics:
- 00:00:00 – Introduction
- 00:02:28 – Python Top Language of 2024
- 00:02:59 – Python Developers Survey 2023 Results
- 00:03:46 – How Pre-Commit Works
- 00:10:00 – Build a Blog Using Django, GraphQL, and Vue
- 00:13:38 – Sponsor: InfluxData
- 00:14:23 – 10 Python Programming Optimization Techniques
- 00:22:45 – Python’s Preprocessor
- 00:26:42 – Video Course Spotlight
- 00:28:16 – You don’t have to guess to estimate
- 00:44:18 – LTK is a little toolkit for writing UIs in PyScript
- 00:49:06 – django-admin-action-forms: Forms for Django Admin
- 00:52:09 – django-public-admin: A Public and Read-Only Django Admin
- 00:53:24 – Thanks and goodbye
News:
- Python Top Language of 2024 – “Python continues to cement its overall dominance, buoyed by things like popular libraries for hot fields such as A.I.” Read the article to see where other languages have placed.
- Python Developers Survey 2023 Results – Official Python Developers Survey 2023 Results by Python Software Foundation and JetBrains: more than 25k responses from almost 200 countries.
Show Links:
- How Pre-Commit Works – As a user of pre-commit hooks, do you know what happens when you run
pre-commit install
or why you have to run it in the first place? How does pre-commit actually work with Git? In this article, Stefanie takes you behind the scenes of how your pre-commit setup works. - How to Set Up Pre-Commit Hooks - Stefanie Molin
- How to Create a Pre-Commit Hook - Stefanie Molin
- Build a Blog Using Django, GraphQL, and Vue – In this step-by-step project, you’ll build a blog from the ground up. You’ll turn your Django blog data models into a GraphQL API and consume it in a Vue application for users to read. You’ll end up with an admin site and a user-facing site you can continue to refine for your own use.
- 10 Python Programming Optimization Techniques – Optimization should be your last step, but once you’re there, just what can you do? This article covers ten different techniques that address memory size and code performance.
- Python’s Preprocessor – Every now and then you hear outrageous claims such as “Python has no preprocessor,” well it is there if you’re willing to dig deep enough. Learn how to hack Python’s compile step.
Discussion
Projects:
- pyscript/ltk: LTK Is a Little Toolkit for Writing UIs in PyScript
- django-admin-action-forms: Forms for Django Admin
- django-public-admin: A Public and Read-Only Django Admin
Additional Links:
- Python mmap: Doing File I/O With Memory Mapping – Real Python
- Caching in Python With lru_cache – Real Python
- Episode #128: Using a Memory Profiler in Python & What It Can Teach You
- Episode #172: Measuring Multiple Facets of Python Performance With Scalene – The Real Python Podcast
- software development - Why are estimates treated like deadlines? - Project Management Stack Exchange
- Software Estimation Without Guessing: Effective Planning in an Imperfect World by George Dinwiddie
- Guesstimation - Princeton University Press
- Anaconda Toolbox for Excel — Anaconda documentation
- Anaconda Code — Anaconda documentation
- PySheets - Spreadsheet UI for Python