pip-run – инструмент для временной установки пакетов
|
Установщик pip-run удобен для разовой установки зависимостей, которые нужны для запуска скриптов, экспериментов, тестирования, отладки и т. д. Он дополняет стандартные pip и virtualenv и обладает следующими преимуществами: - Автоматически скачивает недостающие зависимости пакетов и делает их доступными для импорта.
- Устанавливает пакеты в специальное место, чтобы после завершения процесса они не оставались в системе.
- Способен запускать исполняемых модули и пакеты с помощью runpy (аналогично вызову через python -m).
- Использует кэш pip для повторного использования уже скачанных пакетов.
- Не оставляет следов после запуска (кроме файлов в кэше pip).
- При необходимости перезаписывает уже установленные версии пакетов.
|
uv – экстремально быстрая альтернатива pip и pip-compile
|
Коллекция Python-инструментов, написанных на супербыстром Rust, пополнилась еще одной ценной разработкой – менеджером пакетов uv. Это очень быстрая, удобная и функциональная альтернатива стандартным Python-инструментам для управления пакетами и виртуальными окружениями. Менеджер uv создан командой Astral, которая подарила питонистам суперскоростной линтер Ruff. Основные преимущества: - Как и любой другой инструмент на Rust, uv работает в 10-100 раз быстрее привычных pip и pip-tools.
- Эффективно использует дисковое пространство за счет глобального кеша для дедупликации зависимостей.
- Может быть установлен различными способами, включая curl, pip, pipx. Представляет собой статический бинарник без зависимостей от Rust или Python.
- Протестирован на работоспособность с топ-10 000 пакетов из PyPI.
- Поддерживает macOS, Linux и Windows.
- Имеет продвинутые возможности – переопределение версий зависимостей и альтернативные стратегии разрешения.
- Показывает подробные сообщения об ошибках и конфликтах при разрешении зависимостей.
- Реализует все возможности pip, включая редактируемые установки, зависимости из Git, прямые URL, локальные зависимости и т. д.
|
Контейнеризация Django-приложения |
Этот туториал подробно рассказывает обо всех тонкостях упаковки и запуска фуллстек-приложения на Django, PostgreSQL и Preact с использованием Docker и Docker Compose. Процесс настройки и объединения всех компонентов в единую систему выглядит так: - Подготовка – установка Docker, Docker Compose, Django, Node.js и npm.
- Начало работы – создание и настройка нового проекта Django, установка нужных зависимостей в виртуальное окружение.
- Контейнеризация Django и Preact – создание соответствующих файлов Dockerfile для бэкенда и фронтенда.
- Упаковка приложений с помощью Docker Compose – создание файла docker-compose.yml, который определяет, как работать с контейнерами приложения и базы данных PostgreSQL.
- Сборка и запуск контейнеров – использование команды docker-compose build и docker-compose up для сборки и запуска контейнеров.
- Дополнительные настройки и тестирование – конфигурация базы данных и CORS, проверка работы всех компонентов с помощью простого API.
|
Токенизация – это отдельный этап в конвейере обработки текста в LLM, который преобразует строки в токены (фрагменты текста) и обратно. Токенизаторы имеют собственные обучающие наборы данных и алгоритмы обучения, например, кодирование байтовых пар (Byte Pair Encoding). Андрей Карпатый рассказал о пошаговой реализации токенизатора, используемого в моделях GPT от OpenAI. Оказывается, многие странные эффекты и проблемы в работе LLM на самом деле возникают на этапе токенизации. В видео есть разбор деталей работы библиотек, используемых в LLM, и замечание о том, что в идеале в будущем этап токенизации должен быть убран из конвейера обработки текста. Но пока что это один из самых и одновременно проблемных этапов – хорошо, что есть у кого поучиться. |
MonkeyType – известное приложение для тестирования скорости печати. Автор этого туториала показывает, как сделать собственную версию теста для использования в терминале. Основные моменты: - Для создания CLI интерфейса используется модуль curses.
- Основная логика находится в классе TypingTest – инициализация, получение текста для печати, отображение точности, скорости, вводимых символов, расчет точности и скорости.
- Основной цикл программы запускается при помощи главного файла main.py, который создает экземпляр класса TypingTest.
- Это в меру сложный, и главное – неизбитый проект для начинающих. Готовый код – в репозитории.
|
Это видео демонстрирует по-настоящему интересный проект – создание DSL (предметно-ориентированного языка) поверх SVG для генерации векторного арта на Python. Автор показывает, как определить вспомогательные функции для генерации SVG-разметки, а затем строить различные изображения с использованием этих базовых инструментов. |
5 способов защиты учетных данных |
Автор видео рассказывает об основных способах предотвращения утечки учетных данных в коде на GitHub. Важно: - Использовать переменные окружения вместо хранения учетных записей прямо в коде – креденшиалы следует хранить в отдельном .env файле или задавать при запуске скриптов.
- Делать небольшие коммиты в Git, чтобы проще было отследить изменения и не допустить случайной утечки учетных данных.
- Следовать принципу наименьших привилегий – выдавать минимально необходимый доступ в токенах и ключах для API.
- Не передавать конфиденциальные данные в открытом виде в чатах и других незащищенных местах. Использовать менеджеры паролей в команде.
- Применять инструменты сканирования креденшиалов в CI/CD конвейере, чтобы предотвратить их попадание в репозиторий.
|
🆕 Новые фреймворки для веб-разработки | CRUD API и аутентификация/авторизация на 100 строках кода |
Фреймворк UtilMeta значительно упрощает работу по созданию REST API с использованием FastAPI, Django, Flask и Tornado. В этом туториале разработчик фреймворка демонстрирует, насколько просто и эффективно выглядит процесс создания пользовательской логики и API с помощью UtilMeta. Рассмотрены: - Установка UtilMeta и инициализация проекта на основе Django, настройка подключения к базе данных SQLite.
- Создание модели User и Session для хранения данных пользователей и сессий, настройка аутентификации через сессии с использованием встроенных механизмов UtilMeta.
- Написание API для регистрации, входа, выхода пользователей. Использование декларативного подхода UtilMeta для валидации и работы с данными.
- Реализация CRUD API для получения, обновления данных пользователя с проверкой авторизации.
- Запуск и тестирование работы API с помощью встроенного клиента.
|
Вот так просто выглядит создание API с UtilMeta |
Реактивный UI-фреймворк для быстрой разработки фронтенда |
Hyperdiv позволяет максимально упростить и ускорить процесс разработки интерактивных фуллстек-приложений, и не требует использования дополнительных языков, фреймворков или инструментов сборки. Среди основных возможностей Hyperdiv есть потрясающие фичи. Этот фреймворк: - Использует только Python без необходимости компиляции в JavaScript.
- Автоматически управляет сетевым взаимодействием фронтенда и бекенда.
- Имеет встроенную библиотеку готовых UI-компонентов.
- Реализует реактивный подход – при изменении состояния приложения происходит автоматическая перерисовка фронтенда.
- Отправляет в браузер только разницу виртуального DOM, которая затем патчит реальный DOM.
- Предоставляет декларативный и эргономичный API для построения пользовательского интерфейса в режиме немедленного отображения.
- Использует фиксированный, неизменный JavaScript-код в браузере, благодаря чему логика приложения и данные остаются полностью скрытыми от злоумышленников – в отличие от обычных SPA-приложений.
Примеры интерфейсов и UI-элементов, созданных с помощью Hyperdiv – в этом репозитории. |
На этом все, увидимся через неделю! |
|
|
Вы получили это письмо, потому что подписались на нашу рассылку. Если вы больше не хотите получать наши письма, нажмите здесь.
|
|
|
|