Обновить
1024K+

Python *

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

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

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

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

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

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

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

Читать далее

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

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

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

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

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

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

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

Читать далее

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

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

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

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

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

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

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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 мин
Охват и читатели10K

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

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

Погружаемся

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

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

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

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

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

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

Читать далее

С бумаги на цифровую карту: генерация файла из таблицы для импорта на карту и геокодирование адресов с помощью Python

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

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

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

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

Все эти действия гораздо быстрее ручного нанесения точек на карту и ручного подсчёта расстояний.

Читать далее

Airflow 3 is Coming

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

Как-то один из самых главных контрибьюторов в Airflow Ярек Потиюк рассказал, что Airflow 3 станет новым золотым стандартом индустрии. Это довольно смелое заявление. Я же считаю, что в Airflow 3  еще многого не хватает, чтобы действительно стать стандартом.

Если вы еще не знаете, что такое Airflow, то, к сожалению, это статья будет сложной. Давайте вместе освежим память.

Airflow - это платформа с открытым исходным кодом для написания и управления рабочих процессов. Airflow была основана в 2014 году в AirBnB. С тех пор платформа прошла путь до версии 1.0 в 2015 году, стала Apache Top Level Project в 2019 и плотно обосновалась как Enterprise Production-Ready в 2020 с версией 2.0.

Читать далее

ЕВРАЗ доверил ревизию кода ИИ

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

Недавно прошёл Хакатон ЕВРАЗа 3.0, на котором участникам поставили задачу упростить и ускорить важный процесс разработки — code review. Эта сложная и трудоемкая часть работы программистов, которая требует предельной концентрации и широкого опыта специалистов. 

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

Читать далее