IT-новости про Python, которые стоит знать

Собрали в одном месте самые важные ссылки
читайте нас в Telegram

     24.05.2023       Выпуск 492 (22.05.2023 - 28.05.2023)       Релизы

coverage - 7.2.6

Утилита позволяющая измерить процент покрытия тестами. Скачать можно по ссылке: https://pypi.python.org/pypi/coverage/

     23.05.2023       Выпуск 492 (22.05.2023 - 28.05.2023)       Статьи

Пишем на Python как на Rust

Я начал программировать на Rust несколько лет назад, и это постепенно изменило мой подход к разработке программ на других языках программирования, особенно на Python. До того, как я начал использовать Rust, я обычно писал код на Python очень динамично, без подсказок типов, повсюду передавая и возвращая словари и время от времени возвращаясь к интерфейсам со «строковой типизацией». Однако, испытав на себе строгость системы типов Rust и заметив все проблемы, которые она предотвращает, я внезапно стал сильно беспокоиться всякий раз, когда возвращался к Python и не получал тех же гарантий.

     23.05.2023       Выпуск 492 (22.05.2023 - 28.05.2023)       Статьи

Улучшенная эвристика при квантовании цветовой палитры

В 2015 году я написал статью о том, как было улучшено квантование цветовой палитры в FFmpeg для создания красивых анимированных гифок. По какой-то причине эта статья — по сей день самая популярная из всех моих постов.

Время шло, я набирал опыт в работе с цветами и в результате стал весьма стыдиться и переживать по поводу того, в каком состоянии лежат мои фильтры. Многий код в них был наивен (а то и ужасно неправилен), несмотря на всю очевидную результативность этих фильтров.

 

     24.05.2023       Выпуск 492 (22.05.2023 - 28.05.2023)       Релизы

sentry - 23.5.1

Мощная система логгирования и платформа агрегации ошибок. Скачать можно по ссылке: https://pypi.python.org/pypi/sentry/

     22.05.2023       Выпуск 492 (22.05.2023 - 28.05.2023)       Статьи

Поймай меня, если сможешь: руководство по обработке исключений в Python

Люди, которые пишут код, часто воспринимают работу с исключениями как необходимое зло. Но освоение системы обработки исключений в Python способно повысить профессиональный уровень программиста, сделать его эффективнее. В этом материале я разберу несколько тем, изучение которых поможет всем желающим раскрыть потенциал Python через разумный подход к обработке исключений.

     22.05.2023       Выпуск 492 (22.05.2023 - 28.05.2023)       Статьи

Особенности асинхронности в Python

В этом посте я подробно расскажу о важной фиче, которая появилась в Python 3.5 — асинхронности. Затрону основные концепции и инструменты, приведу примеры кода. Пост будет полезен новичкам для понимания основ асинхронности и, может, даже опытным разработчикам в поиске новых идей и подходов.

     22.05.2023       Выпуск 492 (22.05.2023 - 28.05.2023)       Статьи

Безопасная разработка на Python. Часть 3.О фреймворке Flask

В предыдущих статьях мы подробно рассмотрели основные проблемы безопасности, с которыми может столкнуться разработчик при создании своих приложений на Python. В этой статье мы продолжим рассмотрение данной темы и поговорим о работе с фреймворками, написанными на Python и теми проблемами в области безопасности, с которыми может столкнуться использующий их разработчик.

     22.05.2023       Выпуск 492 (22.05.2023 - 28.05.2023)       Статьи

Хорошая замена Celery

Речь пойдет о библиотеки для работы с AMPQ - aio-pika. Она имеет всего в районе 1К звёзд на GitHub (по сравнению с 20К+ у Celery). Я расмотрел абсолютно все популярные (500+ звёзд) решения и остановился именно на этом из-за активной (на текущий момент) разработке и относительной популярности.Стек, который вы увидите в статье: FastAPI, RabbitMQ, aio_pika и docker. Статья будет полезна тем кто использует Celery в своих проектах, а так же тем, кто только слышал о том, что такое очереди и RabbitMQ.

     20.05.2023       Выпуск 491 (15.05.2023 - 21.05.2023)       Статьи

Новый синтаксис для generic-типов в Python 3.12

Первоначально python как язык с динамической типизацией не предполагал никакого явного описания типов используемых объектов и список возможных действий с объектом определялся в момент его инициализации (или изменения значения). С одной стороны это удобно для разработчика, поскольку не нужно беспокоиться о корректности определения типов (но в то же время осложняло работу IDE, поскольку механизмы автодополнения требовали анализа типа выражения в ближайшей инициализации). Но это также приводило к появлению странных ошибок (особенно при использовании глобальных переменных, что само по себе уже плохое решение) и стало особенно неприятным при появлении необходимости контроля типа значений в коллекциях и созданию функций с обобщенными типами. В Python 3.12 будет реализована поддержка нового синтаксиса для generic-типов (PEP 695) и в этой статье мы обсудим основные идеи этого подхода.

     23.05.2023       Выпуск 492 (22.05.2023 - 28.05.2023)       Релизы

requests - 2.31.0

Простая библиотека для создания HTTP запросов. Скачать можно по ссылке: https://pypi.python.org/pypi/requests/

     20.05.2023       Выпуск 491 (15.05.2023 - 21.05.2023)       Статьи

Дополнительная клавиатура своими руками

Давно интересовался как можно объединить микроконтроллеры, Python и пк, и мне в голову приходила идея дополнительной клавиатуры для пользователя, которая будет заменять сочетания клавиш, всего лишь одной кнопкой. Сначала я пробовал объединить платы NodeMCU на базе ESP8266 с пк, с помощью Python. Знаний для написания скетча на ардуино у меня не было, и погуглив, нашел язык MicroPython.

     20.05.2023       Выпуск 491 (15.05.2023 - 21.05.2023)       Статьи

Асинхронный ETL-процесс на Python

Продолжаю цикл статей по разработке ETL-процессов на Python. На этот раз мы преобразуем синхронный etl-процесс из статьи Пишем ETL-процесс на Python в асинхронный.

     19.05.2023       Выпуск 491 (15.05.2023 - 21.05.2023)       Вопросы и обсуждения
     19.05.2023       Выпуск 491 (15.05.2023 - 21.05.2023)       Статьи

Использование компьютерного зрения для игры в покер

Не так давно я стал увлекаться покером, а помимо покера я занимаюсь компьютерным зрением и решил, почему бы не совместить приятное с полезным, и сделал распознавание объектов, которые находятся на покерном столе и добавил немного аналитики на основании которой я мог бы принимать решения о своих ходах.

     20.05.2023       Выпуск 491 (15.05.2023 - 21.05.2023)       Релизы

SQLAlchemy - 2.0.15

Библиотека работы с базами данных. Скачать можно по ссылке: https://pypi.python.org/pypi/SQLAlchemy/

     19.05.2023       Выпуск 491 (15.05.2023 - 21.05.2023)       Статьи
     19.05.2023       Выпуск 491 (15.05.2023 - 21.05.2023)       Статьи

Проектирование ML-сервиса для прогнозирования котировок акций (для Advisors’ Axiom от Росбанка)

Задача сервиса — получение, оценка (классификация) финансово-экономических новостей на основе машинного обучения модели нейронной сети для классификации текстов финансово-экономической направленности по трем видам тональностей: 

     18.05.2023       Выпуск 491 (15.05.2023 - 21.05.2023)       Статьи

Восстановить удаленную фотографию с флешки? Искусственный интеллект в помощь

В статье хотел бы поделиться своим опытом восстановления данных (на самом деле, всего одной фотографии), который перерос в любопытный кейс применения методов машинного обучения для решения задачи реконструкции файлов изображений. Думаю, что проблема с восстановлением удаленной информации с носителей весьма актуальна для читателей Хабра (и обычных юзеров, и целых компаний), поэтому поделюсь некоторыми наработками. Все это – под катом.  

     18.05.2023       Выпуск 491 (15.05.2023 - 21.05.2023)       Статьи

TestRail для автоматизации тестирования. Делаем интеграцию: отправляем результаты и собираем репорты

Но сегодня речь не обо мне, как долго я этим занимаюсь, а только лишь об одном инструменте, с которым меня связывают лет пять работы. Речь пойдёт о TestRails. Я понимаю, что инструмент не новый, но всё-таки он ещё является достаточно популярным инструментом для ручного, и, что реже и больнее - автоматизированного тестирования. По-хорошему, поделиться своими наработками можно было раньше, но главное - это осознать такую необходимость, не правда ли?