Обновить
512K+

Python *

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

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

Как мы используем разделяемую память в Aqueduct

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

Привет. Меня зовут Денис Лисовик, я Backend-инженер в команде Data Science SWAT Авито. В этой статье рассказываю, как использовать разделяемую память в Aqueduct. Вместе мы шаг за шагом пройдем от сервиса, который едва держит один RPS, до сервиса, который может держать сотни запросов в секунду. В процессе вы узнаете, как использовать разделяемую память и как сделать так, чтобы она не утекала, а приложение не падало с Segmentation fault.

Читать далее

Сортировка книг по тематикам скриптами Python

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

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

Примерно раз в месяц я с телеграм-каналов докачиваю еще 1–2 тысячи книг, из которых реально новых — не более 100–200, остальное у меня уже есть. Кроме того, попадаются сканированные книги с околонулевой пользой, если их не распознавать.

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

Читать далее

Всё про конфиги

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

Материалы лекции про конфигурационные файлы — все основные аспекты написания и использования конфигов для самых маленьких, примеры кода на python.

Узнать страшную правду

Молчаливый Wazuh — тюнинг, минимизация событий, уведомления в Telegram

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

Недавно добрался наконец то до изучения Wazuh - чтобы была польза от процесса познания, поставил для теста на небольшой больнице и определил задачи, которые он должен решать:

Читать далее

Функциональные зависимости в таблице (удобный форк FDTool для python3)

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

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

В статье поговорим про functional dependencies и про python библиотеку работы с ними - FDTool.

Читать далее

FastAPI и Dependency Injection: правда или вымысел?

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

В свое время FastAPI прогремел как гром среди ясного неба - тут тебе и минималистичный API аля-Flask (все устали от Django, диктующего свои правила), и OpenAPI документация из коробки, и удобное тестирование, и хайповая асинхронность. Буквально все, что нужно для свободы творчества, и никаких ограничений! Да еще и Depends завезли! В тот момент это был культрурный шок - Dependency Injection в Python? Разве это не что-то из Java?

Но дьявол кроется в деталях. А вы уверены, что те самые Depends == Dependency Injection? Уверены, что пишете код на FastAPI правильно?

В рамках статьи мы рассмотрим различные подходы к организации зависимостей в рамках FastAPI проекта, оценим их с точки зрения удобства использования и постараемся разобраться, как же все-таки "правильно" готовить DI в FastAPI.

Давайте разбираться

Укрощение строптивого прибора или python в помощь инженеру

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

Здравствуйте товарищи!

В данной статье хочу поделиться с вами своим опытом по применению стандартных команд для программируемых инструментов (SCPI).

Читать далее

Как сократить время выполнения ресурсоемких задач в Python

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

Всем привет! На связи Spectr и рубрика «Что читают наши разработчики». Сегодня разберем практические методы ускорения тяжелых вычислений с помощью оптимизации на GPU в Python.

Узнать о методах ускорения в Python

Получение информации о системе и сети с помощью Python

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

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

Читать далее

PyMyFlySpy: отслеживание полёта по бортовым данным

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

«Где мы, папа», — спросил меня 5-летний сын.

«Мы приземлимся примерно через час», — ответил я.

«Да нет, я имею в виду, где мы? Мы ещё не пролетаем Италию?»

Точно ответить я не мог. Это был недолгий перелёт по низкому тарифу без удобств в виде встроенных в подголовники кресел экранов. Тогда я огляделся по сторонам и заметил наклейку с призывом подключиться к WiFi-сети самолёта. Должно сработать. Думаю, что сайт вроде FlightRadar ответит на вопрос моего сынишки с точностью до нескольких метров.

Но, к его сожалению, я разработчик PySkyWiFi («абсолютно дурацкого WiFI-инструмента для бесплатного доступа в интернет при длительных перелётах»). Не платить за интернет авиакомпании — это моя личная фишка. Здесь же нам потребуется иная, офлайн-стратегия.
Читать дальше →

Практика использования парсер-комбинаторов peco и оператора match для создания простых DSL на языке Python

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

Задачи разработки компиляторов и интерпретаторов конфигурационных языков или даже полноценных Тьюринг-полных языков программирования время от времени встают перед разработчиками программного обеспечения. На практике, как правило, речь идёт о разработке предметно-ориентированных языков (англ. Domain Specific Language, DSL), проектируемых специально для решения узкого класса прикладных задач.

В статье рассматривается один из способов реализации DSL на примере разработки системы символьного дифференцирования, как в SymPy, с использованием парсер-комбинаторов peco и структурного сопоставления с образцом по PEP 636. Материал рассчитан на прикладных разработчиков, уже знакомых с Python, но, надеюсь, может быть полезен и продолжающим компиляторщикам.

Читать далее

Генераторы в Python

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

Генератор - это особый вид итератора - объекта, который отдает значения по одному за раз. Любая функция содержащая yield является генераторной функцией. При вызове генераторная функция возвращает генератор-итератор или просто генератор. Генераторная функция и генератор - это разные объекты, хотя и связанные друг с другом.

Читать далее

Делаем управление конфигами удобным при помощи pydantic_settings

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

В этой статье научимся использовать модуль pydantic_settings, который позволяет разработчикам легко управлять настройками проекта и загружать их из разных источников, таких как переменные окружения и файлы json, yaml, toml, а также дает доступ к легкой валидации вводимых значений

Читать далее

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

FastAPI + Redis + Celery: Создание системы временного хранения файлов с автоудалением и удобным веб-интерфейсом

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

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

Мы пошагово разберем процесс разработки, начиная с настройки FastAPI для обработки HTTP-запросов, интеграции Redis для эффективного хранения метаданных файлов, и заканчивая использованием Celery для асинхронного выполнения задач по удалению устаревших файлов.

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

Читать далее

Как победить рецидив: путеводитель по полю битвы с онкологией

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

Итак, дорогие читатели! Сейчас я обучаюсь на 4 курсе (бакалавр) на программиста (направление: Информатика и вычислительная техника) в семестре столкнулся с очень интересным исследовательским проектом, связанным с биоинформатикой! Вместе с заказчиком мы ему дали научное название: «Снижение рисков развития рецидива злокачественного новообразования» и отправляем в долгое плавание!

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

Что приходит на ум, когда слышите слово «рецидив»? Правильно, возвращение того, от чего вы уже вроде как избавились. Для заболевших пациентов это слово внушает тревогу, а в онкологии и вовсе звучит как зловещий колокол. Но не бойтесь: сегодня мы не только посмеемся над этим монстром, но и узнаем, как ему дать отпор. Спойлер: с помощью науки и чуточки аналитики.

Читать далее

GPT: Революция или Апокалипсис

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

GPT: Революция или Апокалипсис

Человек против машины. Нейросети — конец эпохи человеческого интеллекта?

Читать далее

Инфраструктура для Data-Engineer виртуальные окружения

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

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

Читать далее

Книга: «Разработка приложений на базе GPT-4 и ChatGPT. 2-е изд.»

Время на прочтение10 мин
Охват и читатели17K
image Привет, Хаброжители!

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

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

И в книге «Разработка приложений на базе GPT-4 и ChatGPT. 2-е изд.» содержится подробное руководство для разработчиков на Python, желающих научиться создавать приложения с использованием больших языковых моделей.
Читать дальше →

Рекурсивные запросы в SQLAlchemy

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

Когда возникает необходимость работать с иерархической структурой данных, кажется, что решение давно найдено, ведь подобные задачи уже неоднократно решались. Возможно, даже выбран инструмент, например, Python и SQLAlchemy. Однако, углубляясь в задачу, понимаешь, что вариантов множество, даже в вопросе, как извлечь данные из базы: использовать стратегию selectin для загрузки родительских элементов? Или, возможно, стоит применить joinload? А может, лучше воспользоваться CTE‑запросами, которые рекомендуются в 90% статей? Но насколько CTE действительно эффективно по сравнению с другими методами? Более того, большинство примеров рассматривают ситуации в идеальных условиях, далёких от реальных проектов.

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

Погружаемся

Большой гайд по миграциям в Django: полезные советы и обход типичных подводных камней

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

Привет! Меня зовут Макс, я backend-разработчик в компании ИдаПроджект и автор YouTube-канала PyLounge.

Эта вторая часть большой статьи по Django-миграциям для начинающих. Если вы пропустили или потеряли первую часть — держите ссылку.

Что здесь будет? Разберем фиктивное применение, миграции данных, «сухую проверку» и основные проблемы, которые возникают у начинающих. Также поделюсь полезными советами и подсвечу детали работы. Примеры из практики — обязательно будут.

Дисклеймер (как и в первой части, чтобы не было недопониманий): все примеры специально упрощены, чтобы неокрепший ум выцепил концепции, а не детали реализации. Не бейте, или бейте там, где синяков не видно :)

Читать далее