GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - realpython/materials: Bonus materials, exercises, and example projects for our Python tutorials

BranchesTags
Open more actions menu

Latest commit

 

History

3,485 Commits
3,485 Commits

Folders and files

NameName
Last commit message
Last commit date
.devcontainer/wordcount
.devcontainer/wordcount
 
 
.github
.github
 
 
absolute-vs-relative-python-imports
absolute-vs-relative-python-imports
 
 
add-to-path
add-to-path
 
 
advent-of-code
advent-of-code
 
 
agentic-loop
agentic-loop
 
 
agents-md
agents-md
 
 
ai-benchmark
ai-benchmark
 
 
ai-debugging
ai-debugging
 
 
ai-python-test-generation
ai-python-test-generation
 
 
ai-refactor-python
ai-refactor-python
 
 
alexa-python-skill
alexa-python-skill
 
 
altair-python
altair-python
 
 
antigravity-cli
antigravity-cli
 
 
api-integration-in-python
api-integration-in-python
 
 
arcade-a-primer
arcade-a-primer
 
 
arcade-platformer
arcade-platformer
 
 
asterioids-pygame-project
asterioids-pygame-project
 
 
asyncio-walkthrough
asyncio-walkthrough
 
 
basic-input-output-in-python
basic-input-output-in-python
 
 
binary-search
binary-search
 
 
bpython
bpython
 
 
brython
brython
 
 
build-a-blog-from-scratch-django
build-a-blog-from-scratch-django
 
 
build-a-django-content-aggregator
build-a-django-content-aggregator
 
 
build-a-gui-with-wxpython
build-a-gui-with-wxpython
 
 
build-a-rest-api-frontend
build-a-rest-api-frontend
 
 
build-a-web-scraper
build-a-web-scraper
 
 
build-python-turtle-game-space-invaders-clone
build-python-turtle-game-space-invaders-clone
 
 
bulk-file-rename-tool-python
bulk-file-rename-tool-python
 
 
celery-async-tasks
celery-async-tasks
 
 
chatgpt-mentor
chatgpt-mentor
 
 
chatgpt-python-api
chatgpt-python-api
 
 
chatgpt-unit-tests-python
chatgpt-unit-tests-python
 
 
chatterbot
chatterbot
 
 
claude-api-python
claude-api-python
 
 
claude-code-hooks
claude-code-hooks
 
 
code-image-generator
code-image-generator
 
 
codex-cli
codex-cli
 
 
complex-numbers
complex-numbers
 
 
consuming-apis-python
consuming-apis-python
 
 
contact-book-python-textual
contact-book-python-textual
 
 
create-django-project
create-django-project
 
 
creating-and-modifying-pdfs
creating-and-modifying-pdfs
 
 
crewai-python
crewai-python
 
 
crud-operations
crud-operations
 
 
cursor-vs-copilot
cursor-vs-copilot
 
 
cursor-vs-windsurf-python
cursor-vs-windsurf-python
 
 
data-analysis
data-analysis
 
 
debug-python-errors
debug-python-errors
 
 
directory-tree-generator-python
directory-tree-generator-python
 
 
django-diary
django-diary
 
 
django-flashcards-app
django-flashcards-app
 
 
django-gunicorn-nginx
django-gunicorn-nginx
 
 
django-hosting-heroku
django-hosting-heroku
 
 
django-markdown
django-markdown
 
 
django-migrations
django-migrations
 
 
django-pagination
django-pagination
 
 
django-tasks
django-tasks
 
 
django-todo-list
django-todo-list
 
 
django-user-management
django-user-management
 
 
django-view-auth
django-view-auth
 
 
django-vue-graphql
django-vue-graphql
 
 
docker-continuous-integration
docker-continuous-integration
 
 
document-python-code-with-chatgpt
document-python-code-with-chatgpt
 
 
document-your-python-project-with-mkdocs
document-your-python-project-with-mkdocs
 
 
documenting-python-code
documenting-python-code
 
 
duck-typing-python
duck-typing-python
 
 
duckdb
duckdb
 
 
dwitter-part-1
dwitter-part-1
 
 
dwitter-part-2
dwitter-part-2
 
 
dwitter-part-3
dwitter-part-3
 
 
dwitter-part-4
dwitter-part-4
 
 
emacs-the-best-python-editor
emacs-the-best-python-editor
 
 
embedded-python
embedded-python
 
 
embeddings-and-vector-databases-with-chromadb
embeddings-and-vector-databases-with-chromadb
 
 
expressions-vs-statements
expressions-vs-statements
 
 
extract-table-from-pdf-python
extract-table-from-pdf-python
 
 
face-recognition
face-recognition
 
 
fastapi-jinja2-template
fastapi-jinja2-template
 
 
fastapi-opentelemetry
fastapi-opentelemetry
 
 
fastapi-python-web-apis
fastapi-python-web-apis
 
 
fastapi-url-shortener
fastapi-url-shortener
 
 
fastapi
fastapi
 
 
flask-connexion-rest-part-1
flask-connexion-rest-part-1
 
 
flask-connexion-rest-part-2
flask-connexion-rest-part-2
 
 
flask-connexion-rest-part-3
flask-connexion-rest-part-3
 
 
flask-connexion-rest-part-4
flask-connexion-rest-part-4
 
 
flask-database
flask-database
 
 
flask-google-login
flask-google-login
 
 
flask-logging
flask-logging
 
 
flask-project
flask-project
 
 
flush-print
flush-print
 
 
folium-web-maps
folium-web-maps
 
 
formatting-floats-f-strings
formatting-floats-f-strings
 
 
functional-programming-python
functional-programming-python
 
 
game-of-life-python
game-of-life-python
 
 
gemini-cli-vs-claude-code
gemini-cli-vs-claude-code
 
 
gemini-cli
gemini-cli
 
 
generate-images-openai
generate-images-openai
 
 

Repository files navigation

Real Python Materials

Bonus materials, exercises, and example projects for Real Python's Python tutorials.

Build Status: GitHub Actions

Got a Question?

The best way to get support for Real Python courses, articles, and code in this repository is to join one of our weekly Office Hours calls or to ask your question in the RP Community Chat.

Due to time constraints, we cannot provide 1:1 support via GitHub. See you on Slack or on the next Office Hours call 🙂

Adding Source Code & Sample Projects to This Repo (RP Contributors)

Running Code Style Checks

We use Ruff to ensure a consistent code style and formatting for all of our sample code in this repository.

Run the following commands to validate your code against the linters:

$ ruff format --check
$ ruff check

Make sure you're using the exact Ruff version specified in requirements.txt.

Running Python Code Formatter

Ruff can automatically ensure a consistent code formatting in this repository. On CI, it runs in "check" mode to ensure any new files added to the repo follow PEP 8. If you see linter warnings that say something like "would reformat some_file.py", then it means that Ruff disagrees with your formatting.

The easiest way to resolve these errors is to run Ruff locally on the code and then commit those changes, as explained below.

To automatically reformat your code to be consistent with our code style guidelines, run Ruff in the repository root folder:

$ ruff format
$ ruff check --fix

About

Bonus materials, exercises, and example projects for our Python tutorials

realpython.com

Resources

Readme
MIT license
Activity
Custom properties

Stars

5.2k stars

Watchers

151 watching

Forks

5.3k forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.