Skip to content

Welcome to python lessons

This project is a collection of lessons for learning python. Divided into three levels, beginner, intermediate and advanced, the lessons are designed to be self contained and can be used as a reference for learning python.

Use of mkdocs to generate documentation. With mkdocs, it is possible to generate a static website with the documentation, and also to include python code with the use of docstrings.

Spec-driven development

Since the era of AI code agents is here, I've decided to use a spec-driven development approach for this project. Not all the lesson will be generated by AI, but AI will review the lessons, score them and plan any improvements needed on the project. The spec-driven development approach is a way to ensure that the lessons are of high quality and meet the needs of the learners.

Quality Status

This repository maintains high quality standards with 100% test coverage and regular quality reviews.

Overall Project Score: 9.0/10 ⭐ Excellent (17 lessons)

Level Lessons Average Best Lesson Status
Beginner 4 8.8/10 Check isinstance (9.5) ⭐ ⭐ Excellent
Intermediate 4 8.7/10 Logging (9.0) ⭐ ✅ Excellent
Advanced 9 9.2/10 Builder/Factory (9.5) ⭐ ⭐ Outstanding

See full quality review for detailed scoring.

Project layout

.github                     # github actions
.vscode/                    # vscode settings

cspell/                     # cspell configuration and custom dictionaries

docs/                       # markdown files for the mkdocs documentation
  adr/                      # architecture decision records
  advanced/                 # advance lessons
  assets/                   # stylesheets and other assets
  beginner/                 # beginner lessons
  contributing/             # contributing guidelines
  intermediate/             # intermediate lessons
  plans/                    # Spec-driven plans generated by Github Copilot
  index.md                  # documentation homepage
  quality-scores.md         # quality scores for the lessons
  template.md               # template for the lessons

src/                        # python code for advanced, beginner and intermediate lessons
  advanced/
  beginner/
  intermediate/

tests/                      # tests for advanced, beginner and intermediate lessons
  advanced/
  beginner/
  intermediate/

.gitignore                  # gitignore file
.markdownlint.json          # markdownlint configuration
.markdownlintignore         # markdownlint ignore file
.pre-commit-config.yaml     # pre-commit configuration
AGENTS.md                   # AI agents used to generate the lessons and plans
CODE_OF_CONDUCT.MD          # code of conduct file for github
CODEOWNERS                  # codeowners file for github
CONTRIBUTING.md             # contributing guidelines
LICENSE                     # license file
Makefile                    # commands to easy use the project
mkdocs.yml                  # mkdocs configuration
poetry.lock                 # poetry lock file
pyproject.toml              # python project configuration
README.md                   # README of the project
renovate.json               # renovate configuration file