Обновить
1024K+

Python *

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

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

Эволюция BP-сервиса компании Магнит

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

Как на сервисе весом в 10 ТБайт ежедневно обрабатывать 1 Тбайт пользовательских данных и спать спокойно.

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

Читать далее

Python. Тестирование API. Структура тестов

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

Всем привет, меня зовут Александр, в последние 2 года занимаюсь автоматизированным тестирование. Хочу поделиться своим наработанным опытом по созданию API тестов. Для написания автотестов в компании используем selenium webdriver, behave.

Behave — это фрейморк для программирования через поведение системы в python-стиле. Behave использует тесты, написанные на “естественном”, то есть, английском языке.

Selenium webdriver широко используется и думаю в представлении не нуждается, но всегда можно загуглить.

Структура тестов behave очень проста, если feature файлы в которых описываются сценарии и папка steps в которой находятся шаги для выполнения этих сценариев.

Первое на что можно обратить внимание это на структуру feature файлов (в этих файлах находятся сами тесты, которые состоят из различных шагов):

Читать далее

Covenantus detectus или ещё одна DS-задача

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

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

Сегодня с вами участник профессионального сообщества NTA Серебренников Дмитрий.

И по дружбе, и по IT‑службе регулярно сталкиваюсь с задачами Data Science. Решением одной из них планирую сегодня поделиться. Поработаю с кредитной документацией, выжму из неё необходимое для аудиторской проверки. Из инструментов применю ловкость рук, python, pathlib, regex, pandas и Abbyy Finereader.

Итак, задача состояла в получении необходимых сущностей (ковенантов) из разных по формату и содержанию документов.

Пост предназначен прежде всего для столкнувшихся с такой задачкой и тех, кто недавно взял курс в науку о данных. Кстати, о данных — все совпадения случайны, исследуемые материалы вымышлены.

Covenantus detectus

Большой тест GPT4, GPT3.5, YandexGPT, GigaChat, Saiga в RAG-задаче. Часть 1

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

Меня зовут Дмитрий Гуреев. Я занимаю должность CDTO в одной из медицинских компаний и параллельно веду работу по популяризации ИИ в среднем бизнесе. Генеративные модели привлекли мое внимание ещё в феврале 2022 года. Тогда я внедрил цифрового ассистента для полевых продавцов.

Летом 2022 года хороший знакомый из крупной компании предложил совместный эксперимент. Создать цифрового юриста, способного отвечать на вопросы первой линии, используя в качестве базы знаний 200-страничный регламент из более чем 1200 пунктов. Все это должно было функционировать в закрытом контуре. Без интернета.

Задача представлялась крайне интересной...

Вторая часть здесь.

Читать далее

Algopack Мосбиржи — получаем справочную информация о доступных акциях

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

Совсем недавно, буквально 2 месяца назад, Мосбиржа запустила Algopack и выложила на Гитхаб долгожданную многими библиотеку на python – moexAlgo, которая должна упростить работу с AlgoPack API.

Читать далее

TMS на замену TestRail: писали для себя, а выложили в open source

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

В прошлом году TestRail прекратил предоставлять и продлевать лицензии компаниям из России, поэтому мы в YADRO решили разработать собственную тест-менеджмент систему TestY. Опирались на опыт работы с другими сервисами, чтобы добавить тот функционал, которого не хватало нашим командам тестирования. За несколько месяцев написали core-часть системы и выложили ее в open source, чтобы другие компании и разработчики, для которых актуален вопрос лицензионной чистоты используемого софтай, пользовались решением и развивали его.

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

Читать далее

Так сколько на самом деле строк на C нужно, чтобы выполнить a + b в Python?

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

Это ответ на статью «Сколько строк на C нужно, чтобы выполнить a + b в Python?» где количество строк так и не указано. Сразу оговорюсь покрывать все сценарии для python по количеству строк я не собираюсь — слишком много вариантов, слишком лень. Но вот вопрос, сколько питону нужно строк, что бы сложить 2 числа, например "4+5"? Будет ли разница, если сохранять эти числа в переменные или нет? Сегодня мы получим ответы на эти вопросы.

Добро пожаловать под кат.

Одно нажатие, весь контроль: WireGuard VPN через Телеграм

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

🌐 Управление VPN через Telegram: Создай свою защищенную сеть в несколько кликов!

Привет, Хабр! Когда мир WireGuard открыл для меня свои двери, родилась идея: почему бы не создать инструмент для максимально простого управления им через Telegram? Да, есть уже проекты, такие как wg-easy, но мне хотелось чего-то своего. В итоге руки дошли, и я представляю вам wg_telegram – бот для WireGuard в вашем мессенджере.

Читать далее

Выявление проблем в log-файлах с помощью аналитики

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

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

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

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

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

Читать далее

Победа над ORM путем кодогенерации

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

Сразу хочу отметить перед читателем, что это не просто вольные рассуждения на тему, а в том числе и презентация моей библиотеки для Python, которую можно найти на github и установить через pip, и которая трудится в моей многопользовательской игре как SQL движок проекта.

Проблемы ORM известны всем, кто хоть раз ими пользовался. Об этом существует множество статей как у нас, так и в зарубежных источниках. Эти проблемы в общем можно объединить довольно сложным термином Object‑relational impedance mismatch, что позволю себе вольно перевести как «Объектно‑реляционная разница потенциалов».

Альтернативой использованию ORM всегда было использование чистых драйверов баз данных и написание сырых SQL запросов, которые в свою очередь очень тяжело поддерживать и рефакторить в реальных проектах.

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

Читать далее

Замыкания и декораторы в Python: часть 1 — замыкания

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

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

Читать далее

Разработка мобильных приложений на kivy, kivymd с использованием buildozer'а. Установка, запуск и решение проблем

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

Разработка мобильных приложений на kivy, kivymd с использованием buildozer'а. Установка, запуск и решение проблем.

Читать далее

fsspec и вообще зачем оно нам нужно

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

Привет! Сегодня я расскажу вам про fsspec, его киллер фичи и почему он является незаменимым инструментом любого python разработчика.

Читать далее

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

Auto-Scaling в телеграм-ботах

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

Салют, Хабр!

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

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

Auto-scaling позволит не только поддерживать стабильную работу бота при всплесках активности, но и существенно снизит затраты на поддержание избыточной инфраструктуры в периоды низкой активности.

Читать далее

Метод подбора параметров функции за ограниченное время. Торговый симулятор + улучшение стратегии

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

Уважаемые участники сообщества Хабр, добрый день!

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

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

Итак, начнем.

Читать далее

Фильтр Блума для эффективной синхронизации хеш-графов

Время на прочтение8 мин
Охват и читатели3.8K
В одном из совместных исследований нам с Хайди требовалось решить такую задачу. Допустим, нам требуется синхронизировать между двумя узлами хеш-граф, например, как в репозитории Git. В Git каждый коммит идентифицируется через соответствующий ему хеш, причём, в коммит могут включаться хеши коммитов-предшественников (то есть, конкретный коммит может содержать более одного хеша, если он получен слиянием). Мы хотели получить минимальное множество таких коммитов, которыми должны обменяться два узла, чтобы их графы получились одинаковыми.

Вы могли бы спросить: «а разве эта задача ещё не решена»? Git приходится выполнять такую операцию всякий раз, когда вы направляете ему команду git pull или git push! Да, так и есть, и некоторые случаи довольно просты, но другие гораздо сложнее. Более того, тот алгоритм, что используется в Git, не слишком хорошо документирован – в общем, мы полагали, что у нас может получиться лучше.
Читать дальше →

Мониторинг на Python: как сохранить метрики в мультипроцессном режиме

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

Привет, Хабр! Меня зовут Никита, я backend-разработчик команды клиентских сервисов. В Selectel мы строим и поддерживаем IT-инфраструктуру для компаний, которые развивают свои цифровые продукты. В нашем департаменте около 20 приложений, большая часть из которых работает на Flask и Gunicorn. Чтобы отслеживать их производительность, мы мониторим параметры системы с помощью Prometheus.

С развитием бизнеса нагрузка на приложения возрастает, один из способов масштабировать его под большее количество запросов — запустить Gunicorn-сервер с несколькими worker-процессами в мультипроцессном режиме. Однако при таком подходе клиент Prometheus не выводит нужные нам метрики CPU и RAM. В статье расскажу, как мы решили эту проблему, сохранив метрики и организовав мониторинг в мультипроцессном режиме.
Читать дальше →

Коротко про платежи через ботов в Telegram

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

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

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

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

Платежи обрабатываются через проверенных и надежных платежных провайдеров, что обеспечивает безопасность транзакций. Пользователям не нужно беспокоиться о сохранности своих финансовых данных, так как Telegram не хранит информацию о кредитных картах. Всё, что им нужно – это выбрать товар, нажать на кнопку покупки, и они будут направлены на безопасную страницу платежной системы для завершения транзакции.

Читать далее

Как оценить эффект от внедрения проекта?

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

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

В статье показано применение таких методов оценки эффекта от внедрения проекта, как AБ-тестирование (классический подход, стратификация, CUPED), альтернативное прогнозирование, синтетический контроль и мэтчинг.

Читать далее

Деплой python-проекта на linux-сервере в изолированном сегменте сети

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

Необходимо выполнить деплой python-проекта со всеми его зависимостями из локального Git на linux-сервере в изолированном сегменте сети.

Основная проблема заключается в том, что на сервере для python-проекта невозможно подтянуть зависимости простой командой «pip install», так как доступа к каталогам пакетов типа PyPI просто нет, также в сети нет никакого прокси - решение этой проблемы и описано в данной статье.

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

Читать далее