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

Собрали в одном месте самые важные ссылки
консультируем про IT, Python


Новый материал в ленте
  pytest - 8.1.2

Простой мощный инструмент тестирования в Python. Скачать можно по ссылке: https://pypi.python.org/pypi/pytest/


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

(17.07.2023 - 23.07.2023)

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

Статьи

  Измерение покрытия python сервисов для end-to-end тестов

Как измерить покрытие автотестами? Данный вопрос всегда вызывает жаркие дискуссии в рядах тестировщиков.

  Превращаем любой фреймворк в FastAPI. На прицеле Flask

Я уверен, вы знаете, что такое FastAPI. По результатам опросов Stackoverflow этот фреймворк уверенно входит в топ любимых фреймворков не только питонистов, но и разработчиков в целом. И не зря: за счет свеого подхода к сериализации данных он предоставляет действительно потрясающий опыт разработки.

  DesktopETL — кросс-платформенный прототип ETL-системы, или как регулярно загружать XML/JSON и сохранять в XLS/CSV

Идея моего домашнего проекта началась с простой, на первый взгляд, задачи: с потребности конвертировать файлы формата XML в формат XLS (или CSV) для последующего анализа. И я был наивен, чтобы попробовать решение «в лоб» и с помощью Excel импортировать богатый внутренний мир SAP Business Objects, описанный в иерархической структуре XML, в табличную форму, — и примерно через час мое сознание, в очередной раз выдав исключение о переполнении памяти, подключило опыт, который намекнул, что иерархические структуры заранее неизвестной глубины проще всего обрабатывать посредством рекурсии.

  VoiceChat на несколько человек с блэкджеком и (Web?)UI над UDP socket python

Лучший способ допилить что‑то — это придумать заново. Всё что вы прочитаете далее — есть мой гайд по изготовлению велосипеда и не претендует на звание полноценного презентабельного проекта.

  От маргинального языка к самому популярному в мире: как изменился Python за двадцать лет

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

  Пишем свой Chat GPT

В июне у OpenAI вышла новость, что в модель GPT можно передавать API сторонних приложений, что открывает широкий круг возможностей для создания специализированных агентов. Мы с командой решили написать свой чат для работы с GPT4 от Open AI и другими ML/LLM моделями c возможностью кастомизации под внутренние нужды компании. Проект выложен в открытый доступ, скачать можно по ссылке. Сейчас он находится в активной разработке, так что будем рады видеть ваши замечания / пожелания в комментариях. Также присылайте ваши pull requests с исправлениями. 

  Jira worklog без плагинов

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

  Особенности разработки автотестов различными инструментами, а также статистика по использованию

Попробуем разобраться в автоматизации тестирования ПО, сделаем обзор сервисов для автоматического тестирования, выясним, какой язык программирования лучше подходит для QA Automation. Вся информация основана в том числе на реальных событиях и моём реальном опыте.

  Пишем микро-shellcode в формате ELF вручную

Уже не раз публиковались статьи про устройство формата ELF и написание файлов в таком формате вручную, но я не считаю лишним опубликовать и свой вариант решения задачи написания ELF-файла вручную. В результате получился файл, вызывающий /bin/sh и занимающий всего 76 байт (что на 8 байт меньше, чем сумма длин необходимых для запуска заголовков ELF).

  Под капотом Python. Тонкости популярных конструкций with и contextmanager

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

  Ray Casting 3D игра на Python + PyGame

В этой статье мы посмотрим на моем примере как создать игру в 3D иллюзией с помощью технологии RayCasting на связке Python + PyGame. Только тригонометрия и вычисления, никак движков.

  Использование python-docx-template для динамического создания закладок и ссылок на них в документах Word

Я использую модуль python-docx-template для генерации файлов docx по шаблону.

  Визуализация реальных масштабов проклятия размерности

Представьте себе набор данных, состоящий из некоторого количества наблюдений. У каждого наблюдения имеется N признаков. Если преобразовать все эти признаки в их числовое представление, то можно будет сказать, что каждое из наблюдений — это точка в N‑мерном пространстве.

  Пять декораторов Python, которые могут сократить код в два раза

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

  Simba: Симуляция десятков тысяч частиц в потенциале Леннарда-Джонса на чистом Python с GPU-ускорением

Примерно год назад я начал проект симулятора динамики частиц на Python, используя библиотеку Numba для проведения параллельных расчетов на видеокарте. Сейчас, добравшись до определенной вехи в его развитии, я решил открыть исходный код и выложить его на GitHub для всех, кому интересны подобного рода эксперименты.

  Крестики-Нолики (Tic Tac Toe) с компьютером на Python. Мой первый шаг к Machine Learning. Часть 1

Я любитель Python и совсем недолго осваиваю язык всеми доступными способами. Моя цель - понять принципы машинного обучения и его взаимосвязь с нейросетью. Никакого опыта в IT не имел, тем не менее постараюсь излагать общепринятой терминологией, не судите строго. Моя основная профессия не менее сложная, далека от IT, но для упрощения работы в нее все больше внедряются AI и ML. Мною движет лишь интерес к современным технологиям, программированию.

  Selenium. Автоматизация тестирования календаря (Datepicker)

Задача, у нас есть несколько страниц фильтром данных по дате с помощью поля с календарем (далее datepicker). Необходимо создать инструмент, который позволит задавать дату и локаторы элементов (идентификаторы например см. css-селекторы) управления календарем. Инструмент бы уже реализовал алгоритм выбора даты в календаре. Алгоритм выбора даты включает шаги описанные на схеме 1.

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

  Python Bytes: #344 AMA: Ask Us Anything

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

Видео

  Внутри нового специализирующего адаптивного интерпретатора CPython 3.11

Python 3.11 вышел в свет 24 октября 2022 года, получив новый «специализирующий адаптивный интерпретатор». Я хочу рассказать вам о том, как ваш код начал оптимизировать сам себя по ходу исполнения, используя разные техники, позволяя в среднем достичь 25% ускорения. Расскажу о сложностях, с которыми можно столкнуться в ходе создания оптимизаций для динамических языков. А также о том, что будет в Python 3.12 и дальше.

  Как мы делаем CPython быстрее. Прошлое, настоящее и будущее

Многие из вас слышали, что Python 3.11 значительно быстрее 3.10. Как нам это удалось? И как мы делаем 3.12 и последующие выпуски ещё быстрее? В своём выступлении я обзорно расскажу, какие техники мы используем для ускорения CPython. Постараюсь не использовать сложную терминологию и обойтись диаграммами, простыми примерами и математикой из средней школы. Наконец, я попытаюсь спрогнозировать на сколько станут быстрее последующие выпуски CPython, и как далеко можно вообще зайти в деле ускорения Питона.

Релизы

  pip - 23.2.1

Утилита для управления модулями в Python. Скачать можно по ссылке: https://pypi.python.org/pypi/pip/

  Вышел Savant 0.2.4: компьютерное зрение на базе глубокого обучения для Nvidia Jetson и dGPU

После месяца напряженной работы мы выпустили новую версию Savant (0.2.4), с новыми функциями и примерами использования.Savant — это фреймворк компьютерного зрения с открытым исходным кодом для создания приложений компьютерного зрения на базе нейронных сетей, работающий на стеке Nvidia. Он упрощает разработку динамических, отказоустойчивых конвейеров видео‑аналитики, использующих рекомендованные Nvidia инструменты для центров обработки данных и граничных ускорителей.Savant построен на базе DeepStream и предоставляет высокоуровневый уровень абстракции для быстрой разработки конвейеров компьютерного зрения на базе Nvidia DeepStream.

  aiohttp - 3.8.5

http клиент/сервер для asyncio. Скачать можно по ссылке: https://pypi.python.org/pypi/aiohttp

  virtualenv - 20.24.1

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

  sentry - 23.7.0

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

  jsonschema - 4.18.4

Валидатор JSON данных. Скачать можно по ссылке: https://pypi.python.org/pypi/jsonschema

  gunicorn - 21.1.0

WSGI HTTP-сервер для UNIX. Скачать можно по ссылке: https://pypi.python.org/pypi/gunicorn/

  click - 8.1.6

Фреймворк для простого создания интерфейсов командной строки.. Скачать можно по ссылке: https://pypi.python.org/pypi/click/

  gunicorn - 21.2.0

WSGI HTTP-сервер для UNIX. Скачать можно по ссылке: https://pypi.python.org/pypi/gunicorn/

  gunicorn - 21.0.1

WSGI HTTP-сервер для UNIX. Скачать можно по ссылке: https://pypi.python.org/pypi/gunicorn/