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

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


Новый материал в ленте
  Как создать платформер на Pygame

В этой статье мы рассмотрим базовые шаги по созданию простой игры на Pygame, познакомимся с её основными возможностями и построим простой проект от начала до конца. Прочитать статью


Python Дайджест. Выпуск 537

(25.03.2024 - 31.03.2024)

поделиться выпуском 
Дайджест python,

Статьи

  Парсинг веб-сайтов: взгляд изнутри

Мое первое знакомство с парсингом веб-сайтов произошло во время выполнения итогового проекта по дисциплине "Языки программирования Java". Для этого проекта мне потребовалось написать шаблон магазина, а затем заполнить базу данных реальными карточками товаров. Вместо того чтобы вручную вводить огромное количество данных, я решил использовать парсинг для автоматизации этого процесса.

  Django: Write-up on optimizing the system check framework

Оптимизация System check framework

  Сводка от pythonz net 17.03.2024 — 24.03.2024

А теперь о том, что происходило в последнее время на других ресурсах.

  Линейный дискриминантный анализ (LDA). Принцип работы и реализация с нуля на Python

Линейный дискриминантный анализ (Linear Discriminant Analysis или LDA) — алгоритм классификации и понижения размерности, позволяющий производить разделение классов наилучшим образом.

  Классификация экзопланет (часть II построение моделей)

Это вторая и заключительная часть статьи, в которой мы рассматриваем задачу классификации экзопланет. Если предыдущая статья была больше про предобработку данных, то здесь мы будем строить модели, отбирать лучшие и экспериментировать.

  ChatGPT для изучения программирования. Не очевидные примеры

Сценарии использования ИИ для учебы на поверхности. Поговорим же здесь про то, как можно использовать ChatGPT для обучения программированию.

  Мега-Учебник Flask Глава 1: Привет, мир! (издание 2024)

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

  Сводка от pyhonz net 24.03.2024 — 31.03.2024

А теперь о том, что происходило в последнее время на других ресурсах.

  Это мы юзаем: библиотека Optuna в Python для оптимизации гиперпараметров

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

  Оптимизация нейронки в Tensorflow?

В отличие от Pytorch, где структура данных выстраивается налету после начала обучения нейронки – в TensorFlow граф статичен. В этой статье мы кратко расскажем про некоторые способы ускорения обучения путем изменения графа вычислений: XLA, GraphTransform Tool, квантизация, заморозка графа и сохранение легкого чекпоинта.  

  Как я разрабатывал веб-сервис по бронированию электронных зарядных станций для электромобилей (часть 1)

Относительно недавно мы получили заказ на разработку веб-сервиса, который позволял бы нашим клиентам, владельцам электрокаров, строить маршруты и на их протяжении бронировать электронные зарядные станции (далее - ЭЗС) под свои нужды. Я представил свою версию системы и хотел бы поделиться с вами ходом мыслей. Возможно, кто-то захочет прокомментировать мою модель или дать совет.

  Как работает multiprocessing в Python под капотом

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

  Управление цветами в Seaborn: как визуализировать данные красиво

В этой статье я расскажу про своё видение работы с цветом при визуализации графиков. Буду показывать все на примерах — уверен, они вам понравятся. Я покажу не только картинки было-стало, но и приведу примеры кода, а также объясню логику принятия решений: как использовать ту или иную палитру в конкретной задаче.

  Django Streaming HTTP Responses

How and when to use Streaming HTTP responses and when not to.

  Логистическая и Softmax-регрессии. Теоретические основы и реализация с нуля на Python

Начнём с более простого. Логистическая регрессия — линейный бинарный классификатор, основанный на применении сигмоидальной функции к линейной комбинации признаков, результатом которого является вероятность принадлежности к определённому классу. Обычно порог устанавливается 0.5: если вероятность меньше порога — класс относится к 0, а если больше — к 1. В принципе, условия определения логистической регрессии такие же как и у линейной за исключением бинаризации таргета.

  Автоматизируем поиск ценной информации в групповых чатах Telegram с помощью LLM

Устали мониторить бесконечные групповые чаты в Telegram в поисках важной информации? Решение есть! Пишем компактное приложение на Python, которое будет делать это за нас с использованием LLM.

  Как я разрабатывал веб-сервис по бронированию зарядных станций для электромобилей (часть 2)

Продолжаем работу над созданием веб-приложения для управления бронью ЭЗС, которое мы начинали ранее. Сейчас мы обратим внимание на практические аспекты: построение математической модели метода, его программная реализация и экономическое обоснование разработанного ИТ-решения.

Вопросы и обсуждения

  Python Bytes: #376 Every dunder method in a Python Lockbox

Очередной выпуск англоязычного подкаста Python Bytes

Видео

  Автоматизация процесса создания набора данных на примере РЖЯ

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

  Serverless для деплоя ml/dl моделей (с gpu зависимостью)

Основной профит, который можно будет вынести с доклада — сакральные знания (нет), темплейт упаковки, док, как это паковать. Ну и еще поговорим про: текущую ситуацию на рынке serverless сервисов с поддержкой gpu — какие еще есть сервисы плюсы и минусы serverless (священный холивар selfhosted vs serverless) как съехать с них на другой serverless или на self-hosted особенности/грабли/боль двух платформ выше

  Да кто такие эти ваши тайп-чекеры?

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

  А побыстрее можно?

Сколько существует python, столько все жалуются, что он медленный. Дошло до того, что даже автор языка признал, что так жить больше нельзя, и запустил проект по ускорению CPython. Но что именно можно (нужно?) ускорить в python? Какие изменения реализуются уже сейчас прямо на наших глазах? Нам предстоит погрузиться в некоторые аспекты работы интерпретатора, чтобы на примере одного из свежих изменений воочию увидеть, как же все-таки разгоняют python.

  Функциональщина в Python — это плохая идея?

Функциональное программирование — не самый популярный подход к написанию кода на Python. Но у ФП в Python есть активные сторонники. Они широко применяют и продвигают модули вроде functools, itertools из стандартной библиотеки и пакеты вроде toolz, funcy, returns и др. Мы рассмотрим, как идеи элегантного ФП кода и красивых математических абстракций сталкиваются с реальностью интерпретатора CPython и культуры pythonic кода. Доклад будет полезен программистам на Python, интересующимся функциональным программированием (уже применяющим его или заинтересованным в применении) и желающим обсудить, насколько ФП нужно и полезно им в Python. Предполагается знание основных концепций ФП (чистые функции, побочные эффекты, функции высшего порядка).

  Эволюция нового сервиса и типичные ошибки при его развитии

В рамках доклада я расскажу про возможные пути развития нового сервиса, а также поделюсь опытом, куда может завести недопроектирование и перепроектирование на разных этапах развития проекта. Затронем: - Общение с бизнесом - Проектирование - Тестирование и многое другое Доклад будет полезен тем, кто хочет запустить сервис, который будет поддерживаться и развиваться в условиях меняющихся требований.

  Mojo — революция или хайп?

В мае разработчики движка Modular опубликовали публичную версию языка Mojo. Код на Mojo выглядит один-в-один, как код на питоне, и это не случайно. Mojo — это одновременно под- и надмножество питона, позволяющее выжимать адскую производительность в требовательных к CPU задачах — например, в задачах ML и AI. Подробностей пока мало: запустить Mojo локально нельзя, можно лишь воспользоваться специальной версией Jupyter Notebook, доступ к которой выдаётся через лист ожидания. Из материалов про Mojo пока доступны в основном только красивые презентации его авторов (показывающие, например, ускорение относительно CPython в тысячи раз на задаче умножения двух матриц). Я получил доступ к превью Mojo и немного в нём поковырялся. Так что теперь давайте вместе во время доклада попробуем разобраться, есть ли у этой разработки шансы на революцию, или это просто попытка выехать на хайпе вокруг AI?

  Легковесный ЧПУ с EtherCAT на python и С

Эта история о том, как python разработчик и инженер-электронщик совместными усилиями сделали прототип промышленного ЧПУ. Мы использовали Python, Cython и язык С, чтобы разработать гибкую систему, способную управлять различными аппаратными конфигурациями для решения производственных задач. В рамках доклада мы рассмотрим следующие темы: Архитектура приложения ЧПУ: выбор дизайна, обеспечивающего гибкость и адаптивность системы Расчет точной траектории движения Интеграция аппаратного и программного обеспечения Достижение короткого цикла синхронизации для нескольких приводов (двигателей) Приглашаем вас принять участие в докладе, где мы поделимся опытом создания легковесного ЧПУ с поддержкой EtherCAT на Python и C.

  Утечки памяти и дедлоки: как выстрелить себе в ногу

Есть устоявшееся выражение про «выстрелить себе в ногу», его интерпретация для языка Python гласит следующее: «Вы пытаетесь выстрелить себе в ногу, но то и дело попадаете промеж пальцев. А всё потому, что Питон настолько гибкий — что из пальцев выскальзывает». Оказывается, попасть в ногу намного проще. Минорным обновлением Python вполне реально дедлокнуть себе интерпретатор, а запуск подпроцесса с пользовательским кодом превращается в дебаг утечки памяти. В таких случаях поиск root cause проблемы чаще всего оказывается сильно сложнее, чем хотфикс. И без понимания что же все-таки произошло, можно наступать на те же грабли снова и снова. Посмотрим на пару таких случаев со стороны стандартной библиотеки: как диагностировали и что полезного из этого вынесли. Заодно разберем, чем плох системный вызов fork, и как им можно сделать себе очень больно. Послушать будет интересно всем сочувствующим, особенно тем, кто использует библиотеки subprocess, multiprocessing и concurrent.futures.

  Отладка на низком уровне

Отладка в IDE — это, конечно, здорово. Но что, если по какой-то причине она нам недоступна? Попробуем разобраться, как отлаживать код в консоли, контролировать расход процессорного времени и памяти, а также поанализируем сетевой траффик нашего приложения.

  Как использовать serverless и не наломать дров

В этом докладе я расскажу о неожиданностях использования serverless по сравнению с server подходом. Зачем и почему serverless нужен Как делать версионирование, canary deployment, релизы в AWS Lambda и другие вещи для production ready бэкенд разработки Об особенностях python разработки под лямбды, о бесполезности асинхронности, сложности дебага ошибок, о поражающей скорости деплоймента кода в продакшен Как потратить сотни долларов на метрики и логи, которые никто не читает О том, как не сломать базу, если в нее ходят сразу 2–3 тысячи экземпляров лямбд

Релизы

  lxml - 5.0.2

Мощный и быстрый модуль для обработки XML/HTML. Скачать можно по ссылке: https://pypi.python.org/pypi/lxml/

  lxml - 5.2.0

Мощный и быстрый модуль для обработки XML/HTML. Скачать можно по ссылке: https://pypi.python.org/pypi/lxml/

  lxml - 5.1.1

Мощный и быстрый модуль для обработки XML/HTML. Скачать можно по ссылке: https://pypi.python.org/pypi/lxml/

  IPython - 8.23.0

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

  django-filter - 24.2

Django-приложение для гибкой фильтрации объектов модели (querysets). Скачать можно по ссылке: https://pypi.python.org/pypi/django-filter/

  kombu - 5.3.6

Фреймворк для работы с AMQP. Скачать можно по ссылке: https://pypi.python.org/pypi/kombu/

  pymongo - 4.6.3

Python интерфейс для MongoDB. Скачать можно по ссылке: https://pypi.python.org/pypi/pymongo/

  django-tinymce - 4.0.0

Интеграция редактора TinyMCE в админ панель Django. Скачать можно по ссылке: https://pypi.python.org/pypi/django-tinymce/

  selenium - 4.19.0

Модуль для автоматизации тестирования web-приложений. Скачать можно по ссылке: https://pypi.python.org/pypi/selenium/