Hacker News Digest

Тег: #uv

Постов: 5

Uv overtakes pip in CI (wagtail.org)

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

by ThibWeb • 06 октября 2025 г. в 12:45 • 162 points

ОригиналHN

#uv#pip#ci-cd#containers#python#rust#dependency-management

Комментарии (130)

  • uv стал фактическим стандартом для управления зависимостями и окружениями, потому что он быстрый и простой в использовании, но это вызвало споры о том, действительно ли он лучше, чем pip и другие инструменты, особенно в контейнерах и CI/CD.
  • Некоторые разработчики утверждают, что uv не подходит для контейнеров, потому что он не может использовать системный Python, и это вызывает споры о том, действительно ли это проблема.
  • Пользователи, которые привыкли к pip и другим инструментам, иногда утверждают, что uv не предоставляет никаких преимуществ, и что это просто "Rust фанатство", но другие считают, что скорость и простота использования делают его лучшим выбором.
  • Некоторые разработчики считают, что uv не подходит для использования в контейнерах, потому что он не может использовать системный Python, и это вызывает споры о том, действительно ли это проблема.
  • Некоторые разработчики считают, что uv не подходит для использования в контейнерах, потому что он не может использовать системный Python, и это вызывает споры о том, действительно ли это проблема.

Removing yellow stains from fabric with blue light (phys.org)

Светодиодный синий свет отбеливает ткани без химии

  • Синий LED (450 нм, высокая интенсивность) за 10 мин разрушает желтые пятна пота, сока апельсина/помидора на хлопке, шёлке и полиэстере.
  • Кислород воздуха выступает окислителем: пигменты (β-каротин, ликопин, сквален) превращаются в бесцветные соединения.
  • Метод мягче перекиси и УФ: не повреждает деликатные ткани и не образует новых жёлтых продуктов.

by bookofjoe • 08 сентября 2025 г. в 00:01 • 101 points

ОригиналHN

#led#light#chemistry#textile#uv

Комментарии (68)

  • Синий свет (445 нм, 1,25 Вт/см²) эффективнее перекиси и УФ в удалении жёлтых пятен на ткани.
  • УФ не помогает: он даже образует новые жёлтые соединения.
  • Старинный «солнечный» метод теперь объяснён: в солнечном спектре много синего, а не только УФ.
  • Для ретро-сообщества вывод меняет практику: вместо UV-ретробрайта использовать синие LED-матрицы.
  • Понадобится мощная синяя подсветка (в десятки раз ярче солнца), бытовых LED-лент недостаточно.

Static sites with Python, uv, Caddy, and Docker (nkantar.com)

Стек для Python-статики: uv + Caddy + Docker

Я почти полностью перешёл на uv — он быстрый, удобен и сам ставит нужный Python. Статические сайты собираю Python-скриптами, а раздаю через Caddy в многоступенчевом Docker-контейнере.

Пример на sus

Dockerfile (сжато):

FROM ghcr.io/astral-sh/uv:debian AS build
WORKDIR /src
COPY . .
RUN uv python install 3.13
RUN uv run --no-dev sus

FROM caddy:alpine
COPY Caddyfile /etc/caddy/Caddyfile
COPY --from=build /src/output /srv/
  1. Берём образ с uv, копируем код.
  2. uv ставит Python 3.13 и зависимости, запускает sus, который кладёт сайт в /output.
  3. Вторая стадия — лёгкий Caddy. Копируем конфиг и готовые статические файлы в /srv.

Caddyfile минимален:

:80
root * /srv
file_server

Запуск:

docker build -t sus .
docker run -p 80:80 sus

Итог: быстрая сборка, маленький образ, автоматический HTTPS при нужном домене.

by indigodaddy • 22 августа 2025 г. в 15:15 • 124 points

ОригиналHN

#python#uv#caddy#docker#dockerfile#sus#coolify#nginx#apache#https

Комментарии (75)

  • Почти все комментаторы считают выбранный стек (Docker, uv, Caddy, Coolify) избыточным для статического личного сайта.
  • Критика сводится к тому, что достаточно «HTML → Nginx/Apache» или даже «HTML → FTP».
  • Автор отвечает: хотел остаться в экосистеме Coolify ради единого CI/CD и «zero-SSH» деплоя.
  • Некоторые предлагают минимальные Dockerfile (nginx:alpine + COPY) или вообще отказаться от контейнеров.
  • Обсуждение выродилось в дискуссию о «культуре овер-инжиниринга» и самоучках, использующих сложные инструменты без понимания базовых.

Code formatting comes to uv experimentally (pydevtools.com) 🔥 Горячее 💬 Длинная дискуссия

uv format — экспериментальная команда в uv для форматирования кода. Под капотом вызывает Ruff, но не требует отдельной установки.

Как начать

# форматировать текущий проект
uv format

# проверить, без изменений
uv format --check

# только нужные файлы
uv format src/ tests/

Передача аргументов Ruff

Всё, что идёт после --, уходит напрямую в Ruff:

# исключить файлы
uv format -- --exclude="*_pb2.py"

# задать длину строки
uv format -- --line-length 100

Пока функция флажком --preview, но уже позволяет обойтись без отдельного бинарника ruff.

by tanelpoder • 21 августа 2025 г. в 20:26 • 351 points

ОригиналHN

#uv#ruff#code-formatting#command-line#python

Комментарии (242)

  • Пользователи спорят: стоит ли встраивать форматирование (ruff format) в uv или это «feature-creep».
  • Одни рады единой команде uv format, упрощающей жизнь новичкам и командам; другие требуют оставить инструменты раздельными, как в UNIX-way.
  • Создатели подчеркивают: ruff и uv не сливаются; uv format лишь удобный алиас, аналогичный cargo fmt.

Representing Python notebooks as dataflow graphs (marimo.io)

marimo — новый open-source Python-ноутбук, в котором программа представлена графом потока данных. Это снимает главные боли Jupyter: скрытое состояние, невоспроизводимость, невозможность повторного использования и сложную поддержку.

Почему старый формат не подходит

  • Воспроизводимость. Исследования 2019–2020 гг. показали: только 4–24 % ноутбуков на GitHub можно перезапустить без ошибок и получить те же результаты. Причина — скрытое состояние: удаление или переупорядочивание ячеек ломает выводы.
  • Интерактивность. В Jupyter интерактивен процесс, но не сами данные: выделение точек на графике не возвращает датафрейм.
  • Поддержка и переиспользование. Файл .ipynb — это JSON-блоб, не валидный Python-код; сложно версионировать в Git и переиспользовать как модуль или пайплайн.

Как marimo решает задачу

  • Каждый ноутбук — корректный Python-скрипт и модуль.
  • Граф зависимостей ячеек строится статически; изменение одной ячейки автоматически перезапускает только зависимые.
  • Реактивность: обновление переменной мгновенно отражается во всех графиках и виджетах.
  • Один файл можно экспортировать как приложение или запускать без ядра Jupyter.

by akshayka • 05 августа 2025 г. в 17:39 • 89 points

ОригиналHN

#python#jupyter#dataflow#notebooks#uv#dag#reactivity#reproducibility#open-source

Комментарии (27)

  • Пользователи хвалят marimo за реактивное исполнение, «песочницу» uv и лёгкий обмен с коллегами.
  • Сторонники Jupyter считают, что «restart kernel & run all» решает проблему воспроизводимости, но критики отвечают: это требует дисциплины и не работает при тяжёлых вычислениях.
  • Некоторые видят в ноутбуках лишь инструмент разведки и предлагают после исследования переносить код в обычные .py-файлы.
  • Участники сходятся, что метаданные зависимостей и чистые DAG-подобные модели вычислений могли бы улучшить ситуацию.