1.3. Python: Intermediate (level 2)

1.3.1. Polish

  1. Wprowadzenie:

    • Zadania określające poziom grupy

    • Zmiany w najnowszych wydaniach Python

  2. Składnia:

    • Assignment Expression

    • Składnia parametrów do definiowania API

    • Rozpakowywanie parametrów i argumentów (args, kwargs)

    • Tworzenie własnych wyjątków

  3. Generatory:

    • Wbudowane generatory

    • Wyrażenia generatorowe

    • Funkcje generatorowe

    • Introspecja generatorów

    • Yield i Yield-From

    • Moduł Itertools

  4. Type Annotations:

    • Typy podstawowe

    • Sekwencje i mapy

    • Funkcje

    • Obiekty i metody

    • Statyczna weryfikacja kodu

  5. Dataclasses:

    • Definicja i składnia

    • Zagnieżdżone dataklasy

    • Postinit, (nie)mutowalne atrybuty, field

    • Parametry, helpery, dziedziczenie, introspekcja

  6. Enum:

    • Definicja i wykorzystanie

    • StrEnum, IntEnum, auto

  7. Paradygmat obiektowy:

    • Wprowadzenie do UML: diagram klas, diagram sekwencji

    • Wprowadzenie do architektury OOP

    • Argumenty mutowalne i niemutowalne

    • Atrybuty klasowe i instancyjne

    • Modyfikatory dostępu

    • Porównywanie wartości i tożsamości obiektów

  8. Lokalizacja i internacjonalizacja:

    • Locale

    • i18n

    • l10n

  9. Logging i Warnings:

    • Wykorzystanie i poziomy logowania

    • Warnings i oznaczanie jako przestarzałe (deprecation)

    • Podstawowa i plikowa konfiguracja

    • Formattery, handlery

    • Rotowanie logów i optymalizacja

  10. System Operacyjny:

    • Praca ze ścieżkami plikami i katalogami - pathlib

    • Parsowanie plików konfiguracyjnych - configparser, tomllib

    • Parsowanie argumentów linii poleceń - argparse

    • Uruchamianie poleceń w systemie - subprocess

    • Pliki tymczasowe - tempfile

    • Praca z systemem operacyjnym - os, sys, platform

  11. Moduły i paczkowanie:

    • Środowiska wirtualne - venv

    • Tworzenie własnych paczek - pyproject.toml

    • Zarządzanie zależnościami - requirements.txt

    • Upload do pypi.org - build, twine, wheel

    • Generowanie pakietów - zipapp

    • Omówienie generowanie plików wykonywalnych - pyinstaller

    • Omówienie alternatywnych kompilatorów Python - pypy, mypyc

  12. Matematyka w bibliotece standardowej:

    • Problem precyzji float - IEEE-754

    • Liczby pseudolosowe - random

  13. Testy jednostkowe i Test Driven Development (TDD):

    • Unittest

    • Doctest

    • Ćwiczenia TDD w praktyce

    • Praca z debuggerem w IDE

  14. Projekt praktyczny:

    • Zastosowanie technologii ze szkolenia

    • Dobre praktyki

    • Wykorzystanie debuggera w IDE

    • Techniki refactoringu