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

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

     19.01.2021       Выпуск 370 (18.01.2021 - 24.01.2021)       Статьи

ML в реальном мире: Складская система распознавания деталей

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

     19.01.2021       Выпуск 370 (18.01.2021 - 24.01.2021)       Статьи

Настройка аутентификации JWT в новом проекте Django

Данная статья является сборкой-компиляцией нескольких (основано на первой) статей, как результат моих изучений по теме jwt аутентификации в джанге со всем вытекающим. Так и не удалось (по крайней мере в рунете) найти нормальную статью, в которой рассказывается от этапа создания проекта, startproject, прикручивание jwt аутентификации.

     19.01.2021       Выпуск 370 (18.01.2021 - 24.01.2021)       Статьи

Миллион домашних фотографий: наводим порядок

После покупки цифрового фотоаппарата и рождения детей стало появляться большое количество фотографий, а учитывая, что жена с фотоаппаратом почти не расставалась и старалась запечатлеть все «важные» детские моменты, фотографий стало появляться ОЧЕНЬ много. Пришло время навести порядок.

     18.01.2021       Выпуск 370 (18.01.2021 - 24.01.2021)       Релизы

api-client 1.2.2 - гибкая библиотека для написания понятных апи клиентов

Клиент для взаимодействия с api должен быть чистой абстракцией по сравнению с api третьей части, с которой вы общаетесь. Он должен быть простым для понимания и нести исключительную ответственность за вызов конечных точек и возврат данных. Для этого APIClient берет на себя другие (часто дублирующиеся) обязанности, такие как аутентификация и обработка ответов, перемещая этот код за пределы чистой абстракции, которую вы создали.

     17.01.2021       Выпуск 369 (11.01.2021 - 17.01.2021)       Статьи

Многопоточное скачивание файлов с ftp python-скриптом

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

     17.01.2021       Выпуск 369 (11.01.2021 - 17.01.2021)       Статьи

Нейросеть для раскрутки собачьего аккаунта в Инстаграм или робопёс в действии

Скрипт для раскрутки назовём для краткости "робопёс". Представим, что этот скрипт от лица собачьего аккаунта периодически собирает посты по хэштегам на собачьи темы и ставит лайки таким постам. Какая-то часть авторов этих постов заинтресуется, кто им поставил лайк, и зайдёт на страницу собачьего аккаунта. Ну а дальше, как пойдёт. Кто-то пролистает пару экранов вниз и пойдёт дальше. Кто-то поставит робопсу пару ответных лайков (что тоже неплохо, лайки увеличивают охват постов). А если аккаунт понравится (что не исключено, ибо пёс весьма харизматичен), может и подписаться.

     17.01.2021       Выпуск 369 (11.01.2021 - 17.01.2021)       Статьи

Как быстро получить много данных от Битрикс24 через REST API

Нередко при работе с Bitrix24 REST API возникает необходимость быстро получить содержимое определенных полей всех элементов какого-то списка (например, лидов). Традиционный способ для этого - обращение к серверу через метод *.list (например, crm.lead.list для лидов) с параметром select, перечисляющим список требуемых полей. При этом чем больше размер списка и чем больше полей вы выгружаете, тем дольше сервер формирует ответ.

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

     16.01.2021       Выпуск 369 (11.01.2021 - 17.01.2021)       Видео

Запуск проекта на uWSGI, Django и PostgreSQL в облаке

О том, как быстро создать скелет веб-проекта на Django, uWSGI и PostgreSQL, доставить его в облако и запустить там.

     16.01.2021       Выпуск 369 (11.01.2021 - 17.01.2021)       Статьи

Как определять собственные классы исключений в Python

Ваш интерес к новой книге "Секреты Python Pro" убедил нас, что рассказ о необычностях Python заслуживает продолжения. Сегодня предлагаем почитать небольшой туториал о создании кастомных (в тексте — собственных) классах исключений. У автора получилось интересно, сложно не согласиться с ним в том, что важнейшим достоинством исключения является полнота и ясность выдаваемого сообщения об ошибке. Часть кода из оригинала — в виде картинок.

     15.01.2021       Выпуск 369 (11.01.2021 - 17.01.2021)       Интересные проекты, инструменты, библиотеки

Использование модуля tempfile в Python

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

     15.01.2021       Выпуск 369 (11.01.2021 - 17.01.2021)       Статьи

Строим надёжную конкурентность с FSP и моделированием процессов

Сегодня посмотрим как смоделировать программу с конкурентностью на FSP. Сначала давайте разберемся, зачем вообще нужна конкурентность. Вот что можно сделать с её помощью:

 

 

  • Повысить производительность многопроцессорного железа, это и называется параллелизм;
  • Увеличить пропускную способность приложения (вызову ввода-вывода нужно блокировать только один поток);
  • Сделать приложение отзывчивее за счёт выполнения основных задач параллельно фоновым (высокоприоритетный поток для запросов пользователей);
  • Структурировать программу, повысив её эффективность (взаимодействующие со средой программы управляют несколькими действиями и обрабатывают несколько событий).

     15.01.2021       Выпуск 369 (11.01.2021 - 17.01.2021)       Статьи

Constraint Programming или как решить задачу коммивояжёра, просто описав её

Пожалуй, наиболее популярной парадигмой программирования является императивное программирование. Но это не единственный вид программирования, широко известны функциональное и логическое программирование. Constraint Programming (Программирование в ограничениях/Ограниченное программирование) не так популярно. Но это очень мощный инструмент для решения комбинаторных задач. Вместо реализации алгоритма, который решает задачу, с последующей тратой кучи времени на его отладку, рефакторинг и оптимизацию, программирование с ограничениями позволяет вам просто описать модель в специальном синтаксисе, а особая программа (решатель - solver) найдет решение за вас (или скажет, если их нет). Впечатляет, не правда ли? Мне кажется, каждый программист должен знать о такой возможности.

     15.01.2021       Выпуск 369 (11.01.2021 - 17.01.2021)       Релизы

django-etc 1.3.0 — пользовательские формы в админке Django

Как быстро и просто создать страницу с пользовательской формой для административного интерфейса Django.