Во время стрима я решил, что сейчас у меня будет приключение на 15 минут, что я быстренько запилю новую синтаксическую ошибку.
В чем суть?
Довольно легко опечататься и написать вместо корректного
lazy from os import path неправильную форму from os lazy import path. На что человек просто получит голый SyntaxError без подсказок и советов. Оно работает, но DX не самый лучший для новой фичи. Особенно, учитывая тот факт, что from os lazy import path выглядит консистентно с lazy import os.И первая часть задачи у меня получилась прямо на стриме. Теперь
from os lazy import path выдает красивую ошибку:
>>> from os lazy import path
File "<python-input-0>", line 1
from os lazy import path
^^^^
SyntaxError: use 'lazy from ... ' instead of 'from ... lazy import'
А вот часть с
from . lazy import name у меня сразу не вышла. На стриме оч сложно программировать. Я, честно сказать, сначала растерялся. А потом понял: в питоне есть значимые пробелы: например для идентации кода. Они превращаются в токен INDENT. А есть незначимые:
a+b и a + b - одинаковый код. Что на самом деле ведет к чудовищам вида:
>>> 1. .real
1.0
>>> 1if True else 0
<python-input-2>:1: SyntaxWarning: invalid decimal literal
1
>>> [1.0for _ in range(1)]
<python-input-3>:1: SyntaxWarning: invalid decimal literal
[1.0]
И как вы уже могли догадаться:
from . lazy import x и from .lazy import x - ОДИН И ТОТ ЖЕ КОД.Более того, он абсолютно корректно работает. И жадно импортирует имя
x из модуля lazy.Что собственно и стало причиной, почему в PEP сделали
lazy from, а не from ... lazy import.Теперь я поправил свой PR, чтобы выкидывать еще один
SyntaxWarning:
>>> from . lazy import x
<python-input-0>:1: SyntaxWarning: 'from . lazy import' is the same as 'from .lazy import'; did you mean 'lazy from . import'?
Кстати, тут можно сравнить мой код со слопусом. К вопросу о "качестве" ИИ-поделок.
Теперь оба случая ошибочного импорта обрабатываются корректно.
Про канал / стримы
После стрима случилось главное: мы почти 3 часа обсуждали, что хотим делать и какую ценность нести людям.
Мы поняли, что главная ценность, которую мы можем и хотим давать: помогать людям бороться со страхами. На каждом углу нас пытаются запсиопить тейками вроде "ИИ заменило всех программистов", "IT В С Е", "всех сократили", "работы нет" и прочее.
Кажется, что с таким нужно бороться рациональностью, взвешенной позицией, фактами и техническими контентом. То, что мы делаем и любим. Не хочется хайпить на страхах людей, хочется помогать людям быть счастливыми и уверенными. По мере сил, конечно.
Обсуждение: а какой контент хотелось бы увидеть вам? :)
| Поддержать | YouTube | GitHub | Чат |