📰 Интерфейс и визуализация данных  |  
   Для создания GUI Python-приложений, связанных с анализом и визуализацией данных, обычно используют Streamlit, Dash, Altair и Bokeh. Недавно к этому арсеналу добавились еще четыре перспективных инструмента – Rich, Trame, Taipy и PyGWalker.     Библиотека Rich обеспечивает красивое форматирование и подсветку текста в консоли. С помощью Rich можно реализовать текстовую анимацию – сделать, например, индикаторы прогресса. С учетом всех этих возможностей Rich можно рассматривать как инструмент для создания полноценного и привлекательного текстового пользовательского интерфейса (TUI). Такого интерфейса вполне достаточно для визуализации данных в простых приложениях, которым не нужно трехмерное представление результатов анализа. На RealPython на днях опубликовали очень подробный туториал по визуализации данных о криптовалютных торгах с использованием Rich.    |  
 Rich рисует красивые таблицы в консоли  |  
   Фреймворк Trame упрощает и ускоряет разработку интерактивных, визуально привлекательных веб-приложений. Отличительная черта Trame – создание впечатляющих интерактивных 3D-визуализаций. Под капотом используются Vue.js, VTK, ParaView и Vega, но ничего из этого, как и тонкостей создания фронтенда, Python-разработчику знать не потребуется. Базовый туториал по Trame покажет, как установить и запустить встроенные примеры. Более подробный туториал есть на сайте разработчиков, а детальное обсуждение всех задействованных в Trame технологий – в этом видео.    |  
 Trame визуализирует любые трехмерные данные  |  
   Библиотека Taipy предназначена для быстрой разработки фуллстек-приложений, использующих ИИ. При этом никакие знания HTML/CSS/JS от Python-разработчику не нужны: Taipy возьмет на себя и создание интерфейса, и визуализацию данных. В свежем туториале показано, как интегрировать PySpark с Taipy для обработки больших данных и управления рабочими процессами:   - В качестве примера использован набор данных о пингвинах. PySpark применяется для обработки данных, а затем результаты сохраняются и загружаются для дальнейшего использования.
 - Рассматриваются настройки конфигурации Taipy для выполнения задачи PySpark.
 -   Рассказывается о создании интерфейса для отображения результатов и управления процессом обработки данных.
 
  |  
 Интерфейс Taipy/PySpark приложения из туториала  |  
   PyGWalker визуализирует датафреймы Pandas и Polars, используя  удобный интерактивный интерфейс, похожий на Tableau. Интегрируется с Jupyter Notebook (и любыми другими похожими блокнотами), предоставляет большой выбор всевозможных графиков, диаграмм и сводных таблиц. Протестировать PyGWalker онлайн можно на сайте проекта, в Kaggle и в Colab.    |  
 В PyGWalker очень много опций визуализации  |  
     🛠️ Чем новые инструменты лучше старых  |  
   В статье «New open-source vs old open-source» возможности популярных библиотек сравниваются с современными фичами новых инструментов: -   Taipy и Streamlit. Taipy работает быстрее, поддерживает многопользовательский режим, предоставляет возможности по созданию более удобных и стильных интерфейсов, и к тому же решает многие ограничения Streamlit (сложности с асинхронными вызовами и обработкой больших данных, совместимость с Jupyter Notebook).
 -   Polars и Pandas. Polars делает все то же самое, что и Pandas, и при этом работает в 10-100 раз быстрее, потому что написана на Rust с его супер-мощной поддержкой параллелизма. Стоит заметить, что в Pandas для параллельных вычислений можно использовать Numba.  
 - Dask и PySpark. Dask использует параллельные вычисления, что позволяет ему делать на ноутбуке расчеты, которые в буквальном смысле не влезают в память. И хотя наборы данных более 2 Тб ему не по зубам, он лучше подходит для обработки данных на обычных компьютерах, чем PySpark.
 -   LightGBM и XGBoost. Оба инструмента предназначены для градиентного бустинга, но LightGBM лучше оптимизирована для работы с большими данными и параллельными вычислениями.
 -   PyCaret и Scikit-learn. PyCaret упрощает использование машинного обучения по сравнению со Scikit-learn, предоставляя высокоуровневые функции для анализа, обучения и развертывания моделей.
 -   Darts и tsfresh. Обе библиотеки предназначены для анализа временных рядов, однако у Darts более обширная функциональность – ее даже можно назвать аналогом scikit-learn для временных рядов, в то время как tsfresh используется для автоматической экстракции признаков из временных рядов.
 -   PyTorch и TensorFlow. Начиная с 2020 года, библиотека PyTorch сравнилась по популярности с TensorFlow. Между ними сложно сделать выбор, однако у PyTorch все же есть преимущество – ее проще освоить и она лучше подходит для проектов, связанных с обработкой естественного языка.
 -   Arcade и Pygame. Arcade – современная и удобная библиотека для создания 2D-игр, созданная на основе Pyglet и OpenGL. Функциональность у нее обширнее, чем у Pygame, а изучить ее проще, она отлично подходит для детей и начинающих. Здесь собрано множество примеров игр на Arcade.   
 
  |  
 -   spaCy и NLTK. Библиотека spaCy отличается большей производительностью в задачах обработки естественного языка, и ее проще изучить.
 -   Ruff и Pylint. Поскольку Ruff написан на Rust, он работает в 10-100 раз быстрее других линтеров, в том числе Pylint.
 
  |  
 Супербыстрый ASGI-фреймворк  |  
   У DRF, FastAPI и Django Ninja появился новый многообещающий конкурент – Litestar. По результатам всех тестов Litestar значительно опережает FastAPI, а его синтаксис явно проще DRF:  |  
 from litestar import Litestar, get   @get("/") async def hello_world() -> str:     return "Hello, world!" app = Litestar([hello_world])  |  
 Litestar намного превосходит остальные REST API по производительности  |  
 Вот основные возможности Litestar: - Валидация и парсинг данных. Фреймворк использует подсказки типов для определения правил валидации, парсинга и сериализации данных. Интегрируется с dataclasses, Pydantic, msgspec и т. д.
 -   OpenAPI. Автоматически генерирует OpenAPI схемы для документирования API. Позволяет работать с API через Swagger, Redoc, Stoplight.
 - Мiddleware. Предоставляет CORS, защиту от CSRF, сжатие, логирование и т. д.
 - Хранилища данных. Предоставляет интерфейсы для подключения хранилищ типа ключ-значение.
 -   Интеграция с ORM. Полноценная поддержка SQLAlchemy для повторного использования моделей в валидации и сериализации.
 - Внедрение зависимостей. Мощная и в то же время очень простая система внедрения зависимостей для использования компонентов на различных уровнях приложения.
 -   Кэширование. Встроенное кэширование ускоряет получение ответов.
 - Поддержка WebSocket с автоматической валидацией данных и сериализацией.
 - Безопасность. Строгая проверка кода пользователя на этапе выполнения для минимизации ошибок.
 -   Аутентификация. Есть утилиты для сессионной и JWT аутентификации.
 - (А)синхронность. Фреймворк одинаково хорошо работает и с теми, и с другими типами приложений.
 
  |  
   API-генератор на базе Flask  |  
   Flask-Muck – новый фреймворк для генерации REST API на базе Flask и SqlAlchemy. Он существенно упрощает и ускоряет разработку типового бэкенда. Создание CRUD с этим фреймворком укладывается в буквально 9(!) строк кода. Основные возможности: - Автоматически генерирует эндпойнты CRUD – не нужно писать рутинный код для базовых операций создания, чтения, обновления и удаления данных.
 - Предоставляет встроенные возможности поиска, фильтрации, сортировки и постраничной навигации при выводе списков ресурсов.
 -   Поддерживает вложенные ресурсы в API, например /api/classrooms/12345/students. Это позволяет строить иерархические структуры данных.
 - Полностью совместим с любыми представлениями в Flask (на основе методов или классов). Представления можно комбинировать и использовать отдельно.
 -   Позволяет задавать коллбеки до и после манипуляций Create, Update, Delete – для добавления произвольной логики в нужные моменты.
 
  |  
 Генераторы статических сайтов  |  
   Генераторы сайтов идеальны для блогов, портфолио, документации, промо- и посадочных страниц. Преимуществ у них больше, чем недостатков: - Безопасность. Так как сайт генерируется статически, у него нет уязвимого серверного кода, который можно взломать.
 -   Скорость загрузки. Статические файлы загружаются очень быстро, поскольку им не требуется обработка на сервере. Это важно для SEO и пользовательского опыта.
 - Масштабируемость. Статические сайты легче и дешевле масштабировать на большое количество посетителей – нет нагрузки на сервер при любом трафике.
 -   Дешевизна хостинга. Для хостинга статических сайтов подходят GitHub Pages или Amazon S3. При желании такой сайт можно раздавать даже из Dropbox.
 - Простота разработки. Генераторы сайтов позволяют быстро создавать сайты, используя любые готовые HTML/CSS шаблоны и JS-модули.
 -   Переносимость. Статические сайты легко перенести на любой хостинг, или даже конвертировать в электронную книгу.
 
 В этой статье рассматриваются самые популярные Python-генераторы:   - Pelican – мощный и простой в использовании генератор с поддержкой Markdown и reStructuredText. Располагает хорошим выбором плагинов и тем.
 -   MkDocs – популярный генератор для документации проектов. Прост в настройке и использовании.
 -   Nikola – богатый возможностями генератор для разных форматов контента. Отличается гибкой архитектурой и предусматривает использование плагинов.
 -   Sphinx – используется в первую очередь для генерации технической документации, но подходит и для сайтов. Поддерживает PDF.
 -   Lektor – CMS для удобного управления контентом статического сайта.
 
  |  
 В отличие от большинства генераторов, у Lektor есть удобная админка  |       При желании генератор статических сайтов можно запросто сделать на базе Django – с помощью плагина Django Bakery, и на Flask – с модулем Frozen Flask. Мы уже публиковали туториал по созданию портфолио разработчика на базе Flask и Frozen Flask.     На этом все, до встречи через неделю!  |  
  |  
  |  
 Вы получили это письмо, потому что подписались на нашу рассылку. Если вы больше не хотите получать наши письма, нажмите здесь.   
   |  
  |  
  |  
  |