# Python 101

A practical Python 3.12 series rooted in real project experience — specifically from building [ansible-inspec](https://github.com/Htunn/ansible-inspec), an open-source compliance automation tool combining Ansible and InSpec.

Each part covers a core Python concept with working code grounded in patterns I actually use.

## Articles

| Part                                                                                            | Topic                                                      |
| ----------------------------------------------------------------------------------------------- | ---------------------------------------------------------- |
| [Part 1](https://blog.htunnthuthu.com/getting-started/programming/python-101/python-101-part-1) | Getting Started — Environment, pyproject.toml, Python 3.12 |
| [Part 2](https://blog.htunnthuthu.com/getting-started/programming/python-101/python-101-part-2) | Data Structures, Type Hints & Pydantic                     |
| [Part 3](https://blog.htunnthuthu.com/getting-started/programming/python-101/python-101-part-3) | OOP, Dataclasses & Protocols                               |
| [Part 4](https://blog.htunnthuthu.com/getting-started/programming/python-101/python-101-part-4) | Async Programming & FastAPI                                |
| [Part 5](https://blog.htunnthuthu.com/getting-started/programming/python-101/python-101-part-5) | Testing with pytest & Modern Packaging                     |

## Prerequisites

* Basic programming knowledge
* Python 3.12 installed
* Familiarity with a terminal
