Питонические атаки
1.19K subscribers
183 photos
4 videos
1 file
459 links
Всяческие заметки про программирование на Python и другие весёлые истории.
Download Telegram
В репо CPython переименовали главную ветку в main. Не знаю, зачем вам это знание 😅

Это переименование затронуло 1,4 тысячи пулл-реквестов и больше 700 форков. В процессе даже немножко сломался GitHub. В итоге инженерам из GitHub пришлось завершить переименование ветки в ручном режиме.

https://github.community/t/renaming-python-master-branch-to-main-1-4k-prs-700-repositories-triggered-server-http-error-500/178090
К какой Силы стороне принадлежишь ты?
Anonymous Poll
86%
master
14%
main
Forwarded from Python etc
Since Python doesn't have a char type, an element of str is always str:

'@pythonetc'[0][0][0][0][0]
# '@'


This is an infinite type and you can't construct in a strictly typed language (and why would you?) because it's unclear how to construct the first instance (thing-in-itself?). For example, in Haskell:

Prelude> str = str str

<interactive>:1:7: error:
• Occurs check: cannot construct the infinite type: t1 ~ t -> t1
Выступление пророка нашего Гвидо ван Россума, где он презентует идею тайп-аннотаций на PyCon 2015. Иногда любопытно погрузиться в историю и посмотреть, как оно всё тогда было. Кстати, выступление кроме исторической ценности имеет еще и образовательную — с тех пор не так уж и много поменялось, так что если вам нужно введение в тему, то тоже можно посмотреть.

https://youtu.be/2wDvzy6Hgxg
Forwarded from Кисель из IT
PyCon 2016, Гвидо еще не знает, как будут объявляться переменные с типами

Спасибо, что выбрали последний вариант, остальное выглядит очень сомнительно
Как сообщают в чате, вышел мажорный релиз Flask 2.0 и других связанных с ним библиотек (Werkzeug, Jinja, Click, ItsDangerous).

https://palletsprojects.com/blog/flask-2-0-released/

* Python 2 больше не поддерживается;
* Добавлены тайп-аннотации;
* Можно делать асинхронные обработчики запросов;
* Добавлены удобные декораторы-шорткаты для объявления обработчиков запросов с разными HTTP-методами.

Пора обновляться! Ну, или хотя бы аккуратно начинать задумываться об обновлении.

#flask
Forwarded from Aleksandr Bukin
🐍 Важные новости!

🏡 Друзья, через 2 недели мы проводим Pytup в онлайне.

В среду 26 мая в 17:00 Мск обсудим, когда нейросети заменят программистов, какие возможности Python используются в реальном мире чаще всего и как понять, что Поиск работает хорошо.

📆 Участие, как обычно, бесплатное, программа и регистрация на сайте.
По крайней мере два из трёх докладов выглядят интересными ☝️
⚡️Ломающие новости! ⚡️

Вчера на Language Summit, проходящем в рамках PyCon US, стало известно, что Гвидо ван Россум, Марк Шеннон и Эрик Сноу работают фулл-тайм над проектом по ускорению CPython. Спонсирует работу Microsoft.

Работа пока что происходит вот в этой организации на GitHub: https://github.com/faster-cpython/. Там у них есть свой форк CPython.

Кстати, вот здесь лежит презентация Гвидо с этого Language Summit: https://github.com/faster-cpython/ideas/blob/main/FasterCPythonDark.pdf
Я пока только пытаюсь вникнуть, что всё это значит, но первые результаты работы по ускорению CPython уже можно увидеть в PEP 659: https://www.python.org/dev/peps/pep-0659/

Похоже, что в CPython хотят вкрутить какое-то подмножество полноценного JIT-компилятора.
Чуваки из RealPython всё-таки добили меня рекламой своей новой книги. Так и быть, беру! Правда, учитывая мою очередь из книг и скорость, с которой я их читаю, доберусь я до неё года через три.

Автор книги — Энтони Шоу — по совместительству ещё и мейнтейнер pyjion (Python с JIT-компилятором из .NET), так что он наверняка знает своё дело.

Если вдруг вам тоже такое интересно, то вот здесь эта книга продаётся. Говорят, что сейчас там пока не полная цена.
Неделю назад появился черновик PEP 657, который предлагает в трейсбеках показывать не только номер строки, где возникла ошибка, но и смещение (то есть номера символов в строке). Таким образом вместо вот такой расплывчатой ошибки:

Traceback (most recent call last):
File "test.py", line 19, in <module>
foo(a.name, b.name, c.name)
AttributeError: 'NoneType' object has no attribute 'name'

Интерпретатор сможет указать на конкретное выражение в строке, вызвавшее ошибку:

Traceback (most recent call last):
File "test.py", line 17, in <module>
foo(a.name, b.name, c.name)
^^^^^^
AttributeError: 'NoneType' object has no attribute 'name'

В документе есть и другие примеры. Выглядит приятно! 👍
Так как для ветки 3.10 уже наступил фича-фриз, эту функциональность стоит ждать не раньше 3.11.
Всегда казалось, что чуваки, которые сидят на тяжёлом ФП, затем творят какую-то тёмную магию. Вот, например, статья про создание библиотеки для декларативной валидации пользовательского ввода в полтора экрана кода. И ведь, блин, красиво получилось. Как так уметь?

https://blog.drewolson.org/declarative-validation
Forwarded from Кисель из IT
Мне очень не нравится, как в стандартной библиотеке pathlib переопределили оператор деления:

>>> from pathlib import Path
>>> exmpl = Path("/test")
>>> exmpl
PosixPath('/test')
>>> exmpl / "nested"
PosixPath('/test/nested')

С первого взгляда кажется, что это классная и логичная фича, но когда в твоей голове вполне сформировано, что "/" это деление, то такой код плавит голову...
☝️ А мне нравится pathlib и его оператор конкатенации путей. По-моему, очень лаконично смотрится. В Python много операторов имеют разные смыслы в зависимости от контекста, и это одно из проявлений могучего динамизма языка. Например, + складывает числа, конкатенирует строки, а унарный плюс еще и создает копию объекта collections.Counter (а вот это и правда внезапно, я до сих пор не понимаю зачем).

In [7]: from collections import Counter

In [8]: c = Counter("avada kedavra")

In [9]: c
Out[9]: Counter({'a': 5, 'v': 2, 'd': 2, ' ': 1, 'k': 1, 'e': 1, 'r': 1})

In [10]: +c
Out[10]: Counter({'a': 5, 'v': 2, 'd': 2, ' ': 1, 'k': 1, 'e': 1, 'r': 1})

In [11]: c is +c
Out[11]: False
Forwarded from Python Заметки
В PyCharm есть окно со статистикой продуктивности (Help / Productivity Guide), где отображена интересная информация об использовании IDE.

В частности, можно узнать сколько нажатий на кнопки вам сэкономил автокомплит.
У меня 231К за 14 месяцев !
Не плохо конечно, но клавиатура всё равно стёрлась)))
🙌⌨️😵

#offtop
На Хабре в последнее время чего-то не так много интересных статей, но вот эта прям супер годная. Я пока не настолько хорош в иностранных языках, чтобы прям уверенно мочь читать художественную литературу в оригинале, так что обязательно как-нибудь попробую сделать себе параллельную книгу и перечитать что-нибудь типа «Автостопом по галактике». Наверное, в оригинале должно быть ещё круче.

https://habr.com/p/557664/
В очередной раз обновил пост про настройку точечного обхода блокировок на роутере, потому что сменил провайдера VPN. Теперь я пользуюсь Red Shield VPN — это VPN от админа канала @itsorm, так что дух цифрового сопротивления зашкаливает. Они буквально пару недель назад запилили поддержку WireGuard и теперь удовлетворяют всем моим запросам. И они вроде классные — скорость хорошая и по деньгам выходит раза в полтора дешевле, чем мой предыдущий VPN. Так как я уже очень привык не замечать козни Роскомнадзора, в этот раз я подписался на VPN сразу на год.

Если вам тоже такое интересно, то я там в посте приложил рефералку, по ней вам дадут месяц бесплатного VPN. А еще вот тут есть промокод на удешевлённый тариф.