Обновить
512K+

Python *

Высокоуровневый язык программирования

314,75
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Преобразование markdown в pdf на Python

Уровень сложностиПростой
Время на прочтение1 мин
Охват и читатели12K

Каждому, кто ходил извилистой тропкой автоматической генерации pdf из markdown файлов ведомы связанные с этой задачей пеньки решения: Pandoc, LaTex, wkhtmltopdf и т.п.

Хочу поделиться с сообществом новым (по крайней мере для меня) вариантом решения этой задачи в Python.

Этот вариант имеет следующие плюсы.

Читать далее

Как «продать» OSS Framework? Propan -> FastStream

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели3.9K

Привет, Habr! Возможно, кто-то меня даже помнит: совсем недавно я создал Python Framework для асинхронных приложений - Propan.

Два месяц назад я делился с вами прогрессом и говорил, что работа над PropanV2 активно ведется. И вот, она завершена. Вот только вместо PropanV2 свет увидел немного другой фреймворк - FastStream, разработкой которого занимался уже не только я, а целая команда AirtAI.

В рамках статьи я расскажу, чем проекты отличаются, как переехать с одного на другой, ну и конечно, как так вообще получилось. Если вам интересно, как я "продал" opensource проект, и как от этого все остались в выигрыше (особенно пользователи) - добро пожаловать под кат!

Ну что опять?

FIFO очередь asyncio в Python

Уровень сложностиСредний
Время на прочтение19 мин
Охват и читатели14K

Очереди в Asyncio могут быть полезны для создания программ, в которых используются паттерны производитель-потребитель, где одна или несколько корутин производят элементы и помещают их в очередь, а одна или несколько корутин потребляют элементы и обрабатывают их из очереди.

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

Читать далее

Тестируем API в Таверне

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели3.3K

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

В сегодняшней статье мы поговорим об использовании Python для проверки API веб приложений. Но сначала давайте рассмотрим, что представляет из себя тестирование API.

Читать далее

Проектирование высокопроизводительных кэширующих решений с использованием Redis и Memcached

Уровень сложностиСложный
Время на прочтение15 мин
Охват и читатели15K

Привет, Хабр!

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

Redis и Memcached – два из самых популярных и мощных инструментов для реализации кэширования. Redis, изначально разработанный как in-memory хранилище данных, позволяет эффективно хранить и быстро извлекать информацию в памяти, что делает его идеальным выбором для кэширования. Memcached, с другой стороны, специализируется исключительно на кэшировании данных и предоставляет простой, но мощный способ ускорить доступ к данным.

Читать далее

Протоколы семейства TCP/IP. Теория и практика

Уровень сложностиСредний
Время на прочтение23 мин
Охват и читатели359K
image

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

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

В ходе работы над статьёй я написал небольшое приложение, которое послужит отправной точкой для понимания компьютерных сетей и семейства протоколов TCP/IP. С приложением можно экспериментировать, получая дополнительные знания.

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

В статье изложены наиболее важные с моей точки зрения понятия, которые должен знать любой программист, хоть как-то сталкивающийся с компьютерными сетями. Так что без теоретических сведений не обошлось.
Читать дальше →

Год ожиданий — и мы получили Python 3.12. Изменения, новшества и дополнения

Время на прочтение4 мин
Охват и читатели71K
image

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

Кроме того, запущен процесс альфа-тестирования Python 3.13, где заявлен режим сборки CPython без глобальной блокировки интерпретатора (GIL, Global Interpreter Lock). Тестировать ветку будут в течение семи месяцев, исправляя ошибки и добавляя новые возможности. Затем еще три месяца — тестирование бета-версий и еще через два месяца появится пред-финальная версия. Но будет потом, а сейчас поговорим о том, что уже есть в руках — о Python 3.12.
Читать дальше →

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

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели15K

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

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

Читать далее

Создание рекомендательных систем с использованием библиотеки Surprise

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели18K

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

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

Читать далее

Объединение открытых данных Open Street Map и Landsat для уточнения площадей зеленых зон

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели4K

Привет, Хабр! Под катом мы хотели бы поговорить о том какие преимущества привносит в нашу жизнь объединение пространственных данных из различных открытых источников. Рассматривать, для примера, будем следующую задачу: оценить насколько в “зеленом” районе расположен тот или иной объект недвижимости. Без долгих предисловий - переходим к делу!

Ну и что там еще с OSM можно делать?

Создание консольной игры Супер Ним на Python

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели12K

Приветствую всех хабровчан! Я являюсь студенткой Финансового Университета при Правительстве РФ и обучаюсь на направлении Прикладная математика и информатика. Сегодня мне хотелось бы поделиться своим туториалом для изучающих Python с нуля. Идея для создания этой статьи появилась на паре практикума по программированию, где данная задача была проектом для сдачи. Если этот туториал зайдет, то будут следующие выпуски.

В этом уроке мы напишем несложную консольную игру Супер Ним по следующим правилам:

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

В нашем случае примем за фишки/пуговицы единицы, а пустые клетки станут нулями. Создадим шахматную доску при помощи списков и random:

Читать далее

Вы кто такие, я вас не знаю, или Как мы делаем JWT-аутентификацию

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели146K

Привет! Меня зовут Данил, я backend-разработчик в Doubletapp. Почти во всех наших проектах есть пользователи, которые могут войти в систему. А значит, нам почти всегда нужна авторизация. Мы используем авторизацию, построенную на JSON Web Token. Она отлично сочетает в себе простоту реализации и безопасность для приложений.

В интернете есть много разных материалов с объяснением, что такое JWT и как им пользоваться. Но большинство примеров ограничиваются выдачей токена для пользователя. В этой статье я хочу рассказать не только о том, что такое JWT, но и как можно реализовать работу с access и refresh токенами и решить сопутствующие проблемы. Будет немного теории и много практики. Присаживайтесь поудобнее, мы начинаем.

Путеводитель:

• Что такое JSON Web Token?
• Использование и реализация
• Простая реализация JWT
• Access и refresh tokens
• Как отозвать токены
• Доступ с нескольких устройств
• Удаление старых данных
• Резюмируем

Читать далее

Hadoop в любой непонятной ситуации. Как выжить кластеру в большой ML команде

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели8.9K

Привет, Habr !

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

Сегодня поговорим о том, какие сложности могут возникать при работе с кластером Hadoop и какие есть методы для их решения.

Видеозапись по мотивам статьи можно посмотреть здесь.

Эта статья будет интересна аналитикам и инженерам, которые работают с BigData и регулярно сталкиваются с необходимостью продуктивизировать модели на Hadoop.

Читать далее

Ближайшие события

Многопоточность в Python: очевидное и невероятное

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели59K

В данной статье я покажу на практическом примере как устроена многопоточность в Python, расскажу про потоки, примитивы синхронизации и о том зачем они нужны.

Изначально я планировал что это будет простая и короткая заметка, но пока готовил и тестировал код нашел интересный неочевидный момент связанных с внутренностями CPython, так что не спешите закрывать вкладку, даже если вы уверены что вы знаете о потоках в Python всё :)

Читать далее

Проектирование веб-приложений с помощью Python и Flask

Время на прочтение8 мин
Охват и читатели23K

Для каких проектов лучше всего подходит Flask, а для каких — Django? Какие особенности Flask можно использовать при разработке веб-приложений наиболее эффективно? Я Алексей Некрасов, лидер направления Python в МТС, автор форка библиотеки flask-combo-jsonapi, программный директор курсов по Python в Skillbox, СЕО Forkway и автор канала Python — учим и работаем. 

Читать далее

Как настроить сбор статистики и автоматическое отключение пользователей WireGuard в ispmanager с помощью Python и API

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели9K

Привет! Меня зовут Вячеслав, и я руководитель отдела маркетинга. Я поднял VPN-туннель по подписке на базе ispmanager. Однако мне этого было мало: нужно было, чтобы по окончании подписки туннель автоматически отключался и статистика по каждому пользователю собиралась ежедневно.

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

Читать далее

Когда стоит заменить A/B-тестирование сэмплированием Томпсона

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели3.9K

Какую рекламу показать пользователю, красную или синюю?

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

Но как узнать, какой из баннеров имеет наибольший уровень кликабельности?

Чаще всего для ответа на этот вопрос используется A/B-тестирование. Группа пользователей разделяется пополам, и первой части показывают один баннер, а второй — другой. После этого можно вычислить уровень кликабельности и выбрать лучший из вариантов.

Предположим, что в конце A/B-тестирования у вас получились следующие результаты:

Читать далее

Построение пайплайна обработки данных в реальном времени с использованием Python

Уровень сложностиСложный
Время на прочтение11 мин
Охват и читатели13K

Привет, Хабр!

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

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

Читать далее

PyTriton inference server c Gradio: быстро и просто делаем демо для ML-проектов

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели8.5K

Рассмотрим то как можно в одиночку быстро создать сервер и UI для ML приложения на Python с перспективой вывода в prod. Исследуем PyTriton и немного Gradio.

Читать далее

Как найти самый богатые кошельки в блокчейне TON — достаем данные из индексатора dton.io и Python

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели7.2K

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

Блокчейн позволяет удовлетворить любопытство на новом уровне, ведь вся информацию доступна публично в полном объеме. В данной статья я расскажу, как достать кошельки китов блокчейна TON с помощью запроса в индексатор dton.io.

Также поговорим, как можно просто обогатить данные. Пример, того, что мы получим в конце, можно посмотреть тут.

В конце статьи будет весь код и google colab.

Читать далее