Skip to content

fix(strings): FEEDBACK-424 вернуть формы кавычек, которые переписал форматтер - #381

Merged
fey merged 2 commits into
mainfrom
feedback-424-quotes
Sep 2, 2026
Merged

fix(strings): FEEDBACK-424 вернуть формы кавычек, которые переписал форматтер#381
fey merged 2 commits into
mainfrom
feedback-424-quotes

Conversation

@fey

@fey fey commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Тикет: FEEDBACK-424. Дефект нашёл студент: «у вас в этом курсе много раз напутано про двойные и одинарные кавычки».

Причина

Прогон mdsf (ruff:format) переписал кавычки в блоках уроков на двойные, а текст рядом продолжал описывать прежний код. Класс задокументирован в ките (docs/mdsf-code-blocks.md, § «Форматтер переписывает то, что урок объясняет»): урок про кавычки там назван, но разобран не был.

Канон курса — двойные кавычки: конфига ruff в репозитории нет, у решений практик 33 файла из 37 на двойных. Поэтому проза сведена к коду, а не наоборот.

Что было не так

Урок Что врало
25-strings/10-quotes список примеров в прозе на одинарных против блока на двойных; два одинаковых print("Hello") под фразой «можно и так, и так»; экранирование двойной кавычки переписано в экранирование апострофа, и абзац про \" повис; ложное «принято использовать одинарные, PEP8 придерживается этого стиля»
10-basics/10-hello-world два одинаковых блока после «можно одинарные или двойные»; ложное «PEP 8 рекомендует одинарные»
20-arithmetics/20-basic «вариант без пробелов тоже работает» с блоком, в котором пробелы расставлены
25-strings/20-string-concatenation «строки можно объединять в разных кавычках» — обе части стали двойными; ASCII-схема на одинарных
25-strings/15-escape-characters у комментария «в конце первой строки есть пробел» пробел срезан
30-variables/*, 31-advanced-strings/70-slices проза и схемы на одинарных против кода на двойных
31-advanced-strings/90-multiline-strings тройные одинарные кавычки переписаны в двойные, хотя текст называет оба вида
10-basics/50-syntax-errors, 50-loops/90-debug вывод интерпретатора устарел на три версии (EOL while scanning string literal), лишний заголовок Traceback, каретка не на том символе; транскрипт сессии под меткой bash

Как починено

Блоки, где форма записи и есть предмет урока, помечены ```text с комментарием <!-- NOTE: … --> перед блоком. Без пометки правка не держится: следующий прогон форматтера впишет свою версию обратно.

Вывод интерпретатора снят прогоном python3 (в репозитории requires-python >=3.11). Все восстановленные фрагменты прогнаны и дают то, что написано в комментариях # =>.

Проверки

  • mdsf verify (через make lint-code-blocks кита) — зелёный по всем тронутым файлам;
  • rumdlNo issues found in 413 files;
  • восстановленные фрагменты прогнаны python3.

Парная правка на стороне Хекслета: MR в courses/ru/python_fundamentals_course и courses/es/python_fundamentals_course.

🤖 Generated with Claude Code

fey and others added 2 commits September 2, 2026 16:24
…орматтер

Прогон mdsf свёл кавычки в блоках к двойным, а текст рядом продолжал
описывать прежний код: список примеров стоял на одинарных, «можно и так, и
так» показывало одну форму дважды, экранирование двойной кавычки стало
экранированием апострофа, а «вариант без пробелов» шёл с расставленными
пробелами.

Канон курса — двойные кавычки: конфига ruff в репозитории нет, у решений
практик 33 файла из 37 на двойных. Поэтому проза и схемы сведены к коду,
а блоки, где форма записи и есть предмет урока, помечены text с NOTE:
без пометки следующий прогон впишет версию форматтера обратно.

Заодно убрано ложное «PEP 8 рекомендует одинарные кавычки»: PEP 8 не
рекомендует ни те, ни другие и советует выбрать один стиль.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…и блоков

Уроки показывали SyntaxError текстом Python 3.9 (EOL while scanning string
literal), лишний заголовок Traceback и каретку не на том символе, хотя
requires-python в репозитории >=3.11. Вывод снят прогоном python3.

Транскрипт сессии с командой и выводом это console с промптом, а чистый
вывод интерпретатора это text: под bash оба блока валили lint-code-blocks
в «не проверено», потому что shfmt на них не работает.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@fey
fey merged commit 28a3c3b into main Sep 2, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant