

- Главная
- Каталог
- Интернет технологии
- Zen of Python
Статистика канала
Полная статистикаchevron_right
pip install pyrefly
pyrefly init
pyrefly check --summarize-errors{}
pyrefly init создаст или обновит конфиг (pyproject.toml или pyrefly.toml), а pyrefly check прогонит типизацию по проекту и покажет сводку ошибок.
Простейший пример, который Pyrefly сразу подсветит:
def add(a: int, b: int) -> int:
return str(a + b){}
Аннотация говорит, что функция возвращает int, но фактически возвращается str, и Pyrefly отметит это как ошибку типов. Дальше можно подключить его как сервер языка в редакторе (через LSP или готовое расширение) и получать те же проверки прямо во время набора кода.
Статус беты говорит, что в принципе уже можно начинать использовать в своих проектах. Если уже пробовали — поделитесь мнением в комментариях, пожалуйста.
@zen_of_pythonpip install pymupdf4llm-c или cargo: cargo add pymupdf4llm-c.
Для каждой страницы создается JSON с массивом блоков:
[
{
"type": "paragraph|heading|table|list|figure",
"text": "content",
"bbox": [x0, y0, x1, y1],
"font_size": 11.0,
"font_weight": "normal",
"page_number": 0
}
]{}
Для таблиц добавляются row_count, col_count, confidence. Координаты в PDF points, типы блоков для семантической обработки.
Как использовать
from pymupdf4llm_c import to_json
# В память
results = to_json("report.pdf", collect=True)
for page in results:
for block in page:
if block['type'] == 'table':
process_table(block) # свой код для таблиц{}
Можно писать в файлы: to_json(pdf_path, output_dir=Path("json")). Для Rust есть to_json_collect() и extract_page_json().
Полезно, когда:
— требуется предсказуемая структура для векторных баз;
— нужно различать заголовки, списки, таблицы при чанкинге;
— скорость критична: C-реализация быстрее Python-аналогов;
— работаешь с документами, где важна иерархия и расположение элементов.
Перед использованием нужно собрать: ./build.sh. Проект свежий, но рабочий. Код в репо.
@zen_of_python--strict из TypeScript, но на стеке uv + ruff + basedpyright. Идея простая: вместо того, чтобы каждый раз настраивать линтеры, типизацию и менеджер окружений вручную, вы копируете готовый pyproject.toml и сразу получаете очень агрессивные правила по стилю и типам.
В этом шаблоне uv отвечает за управление проектом и зависимостями, ruff — за линтинг и форматирование, а basedpyright — за строгую статическую типизацию с максимальным количеством включённых проверок.
Забрать можно в репозитории, там же инструкции по использованию.
Для новых проектов просто копируете pyproject.toml, меняете секцию [project] под себя, создаёте src/your_package и tests/. Затем установка:
uv venv
.venv\Scripts\activate # Windows
# или source .venv/bin/activate
uv pip install -e ".[dev]"{}
И далее просто пользуетесь по необходимости:
uv run ruff format .
uv run ruff check . --fix
uv run basedpyright
uv run pytest{}
Такой сетап хорошо заходит, если вы любите, когда инструменты сразу ломают билд за любые подозрительные места: неописанные типы, мёртвый код, неиспользуемые импорты, странные конструкции и т.п. Из минусов — порог входа выше: придётся либо писать типы везде, либо постоянно удовлетворять строгим линт‑правилам, но для долгоживущих библиотек и сервисов это может сильно окупиться.
@zen_of_python%, str.format, string.Template и f-строк. Синтаксис очень похож на f-строки (те же {} и выражения), но результатом выражения t"..." будет уже не str, а объект шаблона.
Главное отличие: t-строка сама по себе не делает готовую строку, а возвращает объект Template, внутри которого по отдельности лежат куски текста и интерполяции со всеми их метаданными. Это даёт библиотекам возможность сначала пройтись по этим частям (экранировать, валидировать, форматировать), а уже потом собирать финальный вывод.
Из-за этого t-строки полезны в первую очередь авторам библиотек: логированию, шаблонизаторам, SQL/HTML-обёрткам и любому коду, где хочется контролировать интерполяцию до склейки в строку. Для обычного прикладного кода ничего не меняется — продолжаете использовать f-строки, пока конкретная библиотека явно не попросит передать ей t-строку вместо готового текста.
Нырнуть поглубже можно в статье или на видео к посту.
@zen_of_pythontable.c.column, который нормально дружит с проверкой типов и делает код понятнее. Плюс поверх движка добавлены обёртки и декораторы: они берут на себя создание подключений и управление транзакциями.
Пример:
import sqlalchemy as sa
from sqla_fancy_core import TableBuilder
tb = TableBuilder()
class Author:
id = tb.auto_id()
name = tb.string("name")
created_at = tb.created_at()
updated_at = tb.updated_at()
Table = tb("author"){}
Проект задуман под продакшен: для тех, кто хочет конструктор запросов вместо ORM, но без потери читаемости и безопасности. По словам автора, в отличие от Peewee тут есть аннотации типов и официальная работа с async, Piccolo менее гибкий и сильно навязан по архитектуре, а Pypika не защищает от SQL‑инъекций по умолчанию. В итоге это просто способ сделать SQLAlchemy Core чуть более строгим и удобным, не меняя стек целиком.
Есть отдельное демо по использованию.
@zen_of_pythonuv sync для зависимостей и запускаете uv run rubiksolver — автор использует современный менеджер uv, так что установка занимает минимум времени.
Автор отмечает, что на Android встречаются решалки, но чаще всего там состояние кубика приходится вбивать руками, без автосканирования камерой — здесь как раз закрыта эта боль.
@zen_of_pythonОтзывы канала
Каталог Телеграм-каналов для нативных размещений
Zen of Python — это Telegam канал в категории «Интернет технологии», который предлагает эффективные форматы для размещения рекламных постов в Телеграмме. Количество подписчиков канала в 20.0K и качественный контент помогают брендам привлекать внимание аудитории и увеличивать охват. Рейтинг канала составляет 2.3, количество отзывов – 0, со средней оценкой 0.0.
Вы можете запустить рекламную кампанию через сервис Telega.in, выбрав удобный формат размещения. Платформа обеспечивает прозрачные условия сотрудничества и предоставляет детальную аналитику. Стоимость размещения составляет 25174.8 ₽, а за 11 выполненных заявок канал зарекомендовал себя как надежный партнер для рекламы в TG. Размещайте интеграции уже сегодня и привлекайте новых клиентов вместе с Telega.in!
Вы снова сможете добавить каналы в корзину из каталога
Комментарий