В этой статье мы разберем практические методы ускорения медленных автотестов — от параллельного запуска через pytest-xdist до замены sleep() на умные ожидания и рефакторинга тестовых данных.
Автор на реальном проекте сократил время прогона с 17 до 2 минут.
🅿🆁🅾 𝐏𝐲𝐭𝐡𝐨𝐧
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Datasketch — это библиотека, которая помогает работать с огромными данными, не загружая их полностью в память.
Она использует вероятностные алгоритмы, чтобы оценивать сходство между наборами данных и точно подсчитывать уникальные элементы в потоке, жертвуя незначительной точностью ради огромной экономии памяти и времени.
Установка библиотеки:
pip install datasketch
Если нужно быстро находить почти одинаковые записи в логах, сравнивать большие тексты или считать уникальных пользователей — этот инструмент сделает это с минимальными затратами ресурсов.
🅿🆁🅾 𝐏𝐲𝐭𝐡𝐨𝐧
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤1
Vulture — это инструмент для статического анализа кода на Python, который помогает находить "мертвый" код, то есть код, который никогда не используется в проекте.
Установка библиотеки:
pip install vulture
vulture my_project/
Vulture анализирует код и выводит список неиспользуемых элементов.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
SQLAlchemy предоставляет мощные инструменты для создания гибких SQL-запросов.
Пример:
from sqlalchemy import case
query = session.query(
User.name,
case(
(User.age >= 18, "Adult"),
(User.age < 18, "Child")
).label("age_group")
)
Пример:
from sqlalchemy import or_
query = session.query(User).filter(or_(User.name == "John", User.age == 25))
Пример:
from sqlalchemy import and_
query = session.query(User).filter(and_(User.name == "John", User.age == 25))
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤3
Python — это мощный и универсальный язык программирования, который подходит как для начинающих, так и для опытных разработчиков.
Он славится своей читабельностью и простотой синтаксиса, что позволяет быстрее осваивать его и создавать сложные приложения.
Please open Telegram to view this post
VIEW IN TELEGRAM
1😁2❤1
Один из методов защиты информации — это стеганография, техника, использующая невидимые элементы для скрытия секретных данных в более привычных для восприятия объектах, таких как изображения.
Как это работает:
🔵 Метод LSB (Least Significant Bit) изменяет наименее значимые биты пикселей изображения для кодирования сообщения. Эти изменения обычно незаметны для человеческого глаза.🔵 Изображение со скрытым сообщением выглядит практически идентично оригиналу, но содержит дополнительную информацию.
Установка библиотеки:
pip install stegano
Пример:
from stegano import lsb
# Скрытие секретного сообщения в изображении
secret = lsb.hide('image.png', 'Your secret message')
# Сохранение изображения со скрытым сообщением
secret.save('secret_img.png')
# Извлечение скрытого сообщения из изображения
print(lsb.reveal('secret_img.png'))
# Вывод → Your secret message
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Эффективные SQL-запросы помогают быстро получать данные и минимизировать нагрузку на базу данных. Вот пять ключевых советов для их создания:
Индексы ускоряют поиск данных. Убедитесь, что столбцы в условиях
WHERE, JOIN и ORDER BY индексированы.Пример:
CREATE INDEX idx_user_name ON users (name);
Выбирайте только те столбцы, которые вам нужны. Это уменьшает объем данных, передаваемых между базой данных и приложением.
Пример:
SELECT id, name FROM users WHERE age > 18;
Предпочитайте
INNER JOIN, если это возможно, и убедитесь, что столбцы для соединения индексированы.Пример:
SELECT u.name, o.order_id
FROM users u
INNER JOIN orders o ON u.id = o.user_id;
Для выборки ограниченного числа строк используйте
LIMIT и OFFSET. Это особенно полезно для пагинации.Пример:
SELECT * FROM users ORDER BY id LIMIT 10 OFFSET 20;
Команда
EXPLAIN помогает понять, как выполняется запрос, и выявить узкие места.Пример:
EXPLAIN SELECT * FROM users WHERE age > 18;
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
В Git есть две команды для удаления веток: -d и -D, каждая из которых имеет свои особенности.
git branch -d <ветка>
Если изменения не были слиты, Git выведет предупреждение и не позволит удалить ветку.
git branch -D <ветка>
⚠️ Будьте осторожны! Это может привести к потере данных, если ветка содержит незаконченные важные изменения.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Please open Telegram to view this post
VIEW IN TELEGRAM
❤29👍10👀6😁1
Автор проводит серию замеров и выясняет, что в операциях создания и изменения объектов обычные датаклассы (особенно со слотами) значительно быстрее Pydantic.
Однако при парсинге и валидации данных извне мощь Pydantine раскрывается полностью — он делает это эффективнее и безопаснее, чем датаклассы со стандартным json.
Используйте Pydantic для разбора и валидации «сырых» данных, но храните и обрабатывайте результат в быстрых датаклассах.
Вывод прост:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥1
Сливая ветки в системе контроля версий, таких как Git, могут возникнуть merge-конфликты.
Чтобы решить конфликт, следуй этим шагам:🔢 Определи конфликтные файлы: Git подскажет, в каких файлах произошел конфликт.🔢 Открой конфликтные файлы: Найдешь секции, отмеченные <<<<<<<, =======, и >>>>>>>. Это указывает на разные версии изменений.🔢 Редактируй файл: Реши, какие изменения оставить, а какие удалить, затем сохрани файл.🔢 Добавь изменения: Выполни команду git add <имя_файла>.🔢 Заверши слияние: Используй команду git commit для завершения процесса.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Feedparser - это удобная библиотека Python, которая предоставляет простой и эффективный способ для чтения данных из различных RSS/Atom-лент.
Она обеспечивает легкий доступ к информации, содержащейся в различных форматах фидов, включая заголовки, описания, ссылки и другие данные.
Установка библиотеки:
pip install feedparser
Этот код загружает данные из RSS-ленты с веб-сайта и выводит заголовки и описания новостей.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Команды для работы с файлами:🟢 ls— вывод содержимого каталога;🟢 ls -la— вывод содержимого каталога в форматированном виде (в т.ч. скрытые файлы);🟢 cd dir— перейти в каталог dir;🟢 cd— перейти в домашний каталог;🟢 pwd— показать текущий каталог;🟢 mkdir dir— создать каталог dir;🟢 rm file— удалить файл;🟢 rm -r dir— удалить каталог dir;🟢 rm -f file— принудительно удалить файл;🟢 rm -rf dir— принудительно удалить каталог dir;🟢 cp file1 file2— скопировать file1 в file2;🟢 cp -r dir1 dir2— скопировать каталог dir1 в каталог dir2 (если каталога dir2 нет, он будет создан);🟢 mv file1 file2— переместить (или переименовать, если file1 и file2 находятся в одном каталоге) file1 в file2;🟢 ln -s file link— создать симлинк link на файл file;🟢 touch file— создать файл;🟢 cat > file— направить стандартный ввод в file;🟢 more file— вывод содержимого file;🟢 head file— вывод содержимого первых 10 строк file;🟢 tail file— вывод содержимого последних 10 строк file;🟢 tail -f file— вывод содержимого file по мере появления, начиная с последних 10 строк файла.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥5👀1
This media is not supported in your browser
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
😁9
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
httpdbg — это легковесная утилита, которая позволяет отслеживать все HTTP-запросы, отправляемые вашим кодом.
Она предоставляет простой и эффективный способ анализа сетевых взаимодействий без необходимости вручную проверять каждый запрос.
Установка библиотеки:
pip install httpdbg
При выполнении этого кода вы увидите все HTTP-запросы и ответы, которые были отправлены и получены.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤4
Это порядок, в котором разработчик пишет SQL-запрос.
Он начинается с SELECT, затем указываются таблицы (FROM), соединения (JOIN), условия (WHERE), группировки (GROUP BY), фильтрации после группировки (HAVING), сортировки (ORDER BY) и ограничения количества строк (LIMIT).
Это порядок, в котором SQL-сервер фактически выполняет запрос.
Он начинается с выбора таблиц (FROM), затем выполняет соединения (JOIN), применяет условия соединения (ON), фильтрует строки (WHERE), группирует данные (GROUP BY), фильтрует группы (HAVING), выбирает столбцы (SELECT), сортирует результаты (ORDER BY) и, наконец, ограничивает количество строк (LIMIT).
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥2
В этой статье разбираем доклад с EuroPython 2025, где инженер и разработчик PyPy Антонио Куни на живых примерах показывает, почему Python тормозит на самом деле, и почему статическая типизация, JIT и даже переписывание на C тут не панацея.
Спойлер:
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3❤2