TGViewer
Channel Public Channel
Zen of Python

Zen of Python

@zen_of_python

Полный Дзен Пайтона в одном канале

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels

Сайт: https://tprg.ru/site

Регистрация в перечне РКН: https://tprg.ru/xZOL
Subscribers
18.8K
Photos
1.4K
Videos
202
Links
3.6K

Showing posts older than #4452 · Back to latest

Older Posts 20 shown
Post #4451 2.34K
Omnara | Центр управления полетами для ваших ИИ-копайлотов

Платформа для мониторинга и управления ИИ-агентами (такими как Claude Code, Cursor и другими), которая позволяет отслеживать их работу в реальном времени и получать уведомления, когда агенты нуждаются в помощи. Инструмент работает как в веб-версии, так и в мобильном приложении. Также реализованы REST API, Python SDK и MCP (Model Context Protocol). Такой тул позволяет вам настроить своих AI-заместителей и больше времени проводить за нерутинными задачами.

Цена: бесплатно (но за токены придется платить)
Доступен в РФ: да
@zen_of_python
  • ❤ 1
  • 🗿 1
Post #4450 2.47K

Forwarded from Нейроканал

Получается нас уже заменили?

#постИИрония
  • 😁 12
Post #4449 2.61K
Линейка в доме питониста никогда не покрывается пылью 🙂
#кек
@zen_of_python
  • 🤷‍♂ 17
  • 👍 8
  • 🗿 4
  • 💊 1
Post #4446 2.62K
Мотивация зрелого разработчика
#кек
@zen_of_python
  • 😁 3
  • 🌚 1
Post #4445 2.6K
Вопросы подписчиков

Zen of Python поддерживает новоприбывших (и не только) в особой рубрике. Как это работает:

— Спрашивайте что угодно (в комментариях под этим постом), связанное с Python. Здесь нет плохих вопросов!
— Сообщество вас поддержит. Самые интересные вопросы мы разберём в отдельном посте;

#вопросы_новичков
@zen_of_python
Post #4443 2.6K
Многофакторное сравнение пяти популярных вычислительных движков Big Data

На Tproger сравнили Spark, Presto/Trino, ClickHouse и StarRocks — с оценкой по таким критериям, как скорость, масштабируемость, кэширование, отказоустойчивость и поддержка SQL / Python.

Выделено три типа движков:
— универсальные (например, Spark, Flink, MapReduce), предназначенные для пакетных сложных вычислений; — интерактивные, для запросов (Presto, Trino) для моментального анализа ad hoc;
— аналитические, ориентированные на OLAP-аналитику с векторизацией.

Используется система скоринга Metascore, которая облегчит сравнение и принятие обоснованного решения.

#инструмент
@zen_of_python
  • ✍ 1
  • 🌭 1
Post #4442 2.5K

Forwarded from Типичный программист

Инструкция к Kubernetes, которую поймёт даже водитель Uber

Если ваша резиновая уточка уже освоила все популярные технологии, то пора искать новую жертву. Сможете рассказать о сложном так, чтобы вас понял даже далёкий от IT водитель такси?

Автор этого материала смог и поделился своим результатом. Если вы всё ещё не до конца понимаете кубер, то скорее читайте статью:

https://dev.to/therubberduckiee/explaining-kubernetes-to-my-uber-driver-4f60
  • 👍 4
  • 😭 2
  • 👨‍💻 2
  • ❤ 1
Post #4434 2.23K
@pytest.mark.parametrize: Как параметризировать тесты

Тестирование кода может быть утомительным процессом. Когда у вас есть множество похожих тестовых случаев, написание отдельных функций для каждого часто приводит к дублированию кода. Именно здесь на помощь приходит функция @pytest.mark.parametrize.

Начнем с простого примера. У нас есть функция add_nums(), которая складывает числа из списка:


def add_nums(numbers):
return sum(numbers)


Без parametrize тесты могли бы выглядеть так:


def test_123():
assert add_nums([1, 2, 3]) == 6

def test_negatives():
assert add_nums([1, 2, -3]) == 0

def test_empty():
assert add_nums([]) == 0


Что не так с этим подходом? Дублирование кода: каждая тестовая функция повторяет одну и ту же структуру. Вместо написания трех отдельных функций, мы можем создать одну параметризованную функцию:


import pytest

@pytest.mark.parametrize(
"nums, expected_total",
[
([1, 2, 3], 6),
([1, 2, -3], 0),
([], 0),
]
)
def test_add_nums(nums, expected_total):
assert add_nums(nums) == expected_total


1. @pytest.mark.parametrize — это специальный декоратор pytest
2. Параметры "nums, expected_total" — имена параметров функции
3. Тестовые данные — список кортежей, где каждый содержит значения для одного теста

Pytest автоматически вызывает вашу функцию с каждым набором параметров:


# Первый вызов
test_add_nums([1, 2, 3], 6)

# Второй вызов
test_add_nums([1, 2, -3], 0)

# Третий вызов
test_add_nums([], 0)


Результат: 3 отдельных теста, каждый из которых может пройти или упасть.


Кастомные ID для тестов

По умолчанию pytest генерирует автоматические ID для тестов, но они могут быть не очень понятными. Вы можете задать свои:


@pytest.mark.parametrize(
"nums, expected_total",
[
([1, 2, 3], 6),
([1, 2, -3], 0),
([], 0),
],
ids=["positive_numbers", "mixed_numbers", "empty_list"]
)
def test_add_nums(nums, expected_total):
assert add_nums(nums) == expected_total


Теперь при запуске тестов вы увидите:

test_add_nums[positive_numbers] PASSED
test_add_nums[mixed_numbers] PASSED
test_add_nums[empty_list] PASSED



Вложенная параметризация

Можно комбинировать несколько параметризаций:


@pytest.mark.parametrize("x", [1, 2, 3])
@pytest.mark.parametrize("y", [10, 20])
def test_multiply(x, y):
assert x * y == x * y


Это создаст 6 тестов: (1,10), (1,20), (2,10), (2,20), (3,10), (3,20).

#основы
@zen_of_python
  • 👍 13
  • 🔥 2
  • ❤ 1
Post #4433 2.47K
Где арендовать GPU в 2025: подборка GPU‑хостингов с адекватной ценой и SLA

В 2025 году аренда видеокарт в облаке становится всё более актуальной альтернативой покупке собственного оборудования. В обзоре представили подборку провайдеров, которые предлагают топовые видеокарты — от NVIDIA V100 и A40 до мощнейших H100 и A100 для создания кластеров до 8 GPU. Многие из них предоставляют фичу — поминутную / почасовую оплату (pay-as-you-go), что делает такое железо доступным физлицам. Например, на VK Cloud предлагаются GPU L4, Tesla V100 и A100 для задач от видеообработки до глубокого обучения, а Cloud.ru предлагает H100, A100, V100 и A40 с возможностью формирования мощных кластеров.

#факт
@zen_of_python
  • 👍 1
  • 🐳 1
Post #4432 2.43K
Вопрос подписчика: IDE + GPT

Задает @vberia:

«Какие IDE и какие GPT сейчас актуальны? Можно топ 3? Не хочется тестировать лишнего, но хочется протестить нужные)».

NB! Пожалуйста, будьте взаимовежливы. Однажды и вам помогут в этой рубрике.

#вопросы_подписчиков
@zen_of_python
  • 👍 1
  • 💅 1
Post #4431 2.25K

Forwarded from Код найма

⚡ Прямой эфир с ментором по Python Сергеем Филичкиным

Забивайте слот в календаре:
📌 19 августа, 18:00 — Сергей Филичкин проведёт бесплатную открытую консультацию в «Коде найма».

Тему этого эфира помогли выбрать вы! Будем разбирать, «Как собирать офферы «про запас» и торговаться за лучшую цену». А вот более подробный план встречи:

🖇Как грамотно позиционировать себя на рынке, чтобы получить больше предложений.
🖇Психология успеха в переговорах: как уверенно говорить о деньгах.
🖇Тактика сбора офферов и ведения торгов.
🖇Лайфхаки по автоматизации поиска и переписки с рекрутерами.
🖇Блок Q&A с разбором ваших ситуаций.

💬 Оставляйте свои вопросы Сергею под этим постом — чтобы наш ментор дал развернутые и действительно рабочие советы!

✅Python-карьера в 2025 без воды: деньги, офферы, переговоры. Подписывайся.

ИП Филичкин Сергей Андреевич ИНН 183401586208, erid: 2W5zFJydiRE
  • 👍 1
  • 🗿 1
Post #4430 2.47K
tyro | Ваша функция, вызываемая в CLI

tyro.cli() автоматически преобразует Python-функцию или класс с аннотациями типов в полнофункциональный интерфейс командной строки, без необходимости вручную прописывать парсинг аргументов:


@dataclass
class Config:
input_file: str
verbose: bool = False


Здесь tyro.cli(Config) создаёт полноценный CLI, где аргументы --input-file и --verbose будут автоматически сгенерированы, а при вызове в терминале доступна помощь (--help).

Утилита извлекает аннотации и doc-строки. Аргументы становятся типами, которыми оперируют IDE и анализаторы mypy, pyright: автодополнение, переход к определению, рефакторинг — всё работает «из коробки». Это даст возможность автокомплитить с Tab.

#инструмент
@zen_of_python
  • 🔥 3
  • ❤ 2
  • ✍ 1
Post #4428 2.62K
complexipy | Вычисляем когнитивную сложность вашего кода

Нетривиальный инструмент, позволяющий вычислить Cognitive Complexity («когнитивную сложность»). В контексте программирования это метрика, оценивающая насколько трудно человеку понять код — учитываются не только ветвления и циклы, как в Cyclomatic Complexity, но и структура, глубина вложенности, логические конструкции, операторы и прочие аспекты, создающие когнитивную нагрузку при чтении. Это важная метрика при рефакторинге проекта.

Тул интегрируется через CLI, GitHub Actions, pre-commit-hooks и позволяет анализировать функции, файлы и директории, указывая те, чей коэффициент сложности превышает определенный порог.

#инструмент
@zen_of_python
💔 — Если рефакторинг разбивает сердце
  • ❤ 5
  • 🆒 2
Post #4424 2.7K
Полезный мем: переменные или методы, имена которых начинаются с двойного подчёркивания (например, __x), автоматически «искажаются» интерпретатором путём добавления имени класса в начало. Это делается для обеспечения некоторой степени инкапсуляции и предотвращения конфликтов имён в классах-наследниках.

«Приватные» переменные с двойным одчёркиванием на самом деле претерпевают трансформацию имени (Name Mangling).

#кек #факт
@zen_of_python
  • ❤ 7
Post #4422 2.8K
Вопросы подписчиков

Zen of Python поддерживает новоприбывших (и не только) в особой рубрике. Как это работает:

— Спрашивайте что угодно (в комментариях под этим постом), связанное с Python. Здесь нет плохих вопросов!
— Сообщество вас поддержит. Самые интересные вопросы мы разберём в отдельном посте;

#вопросы_новичков
@zen_of_python
Post #4421 3.01K
fastapi_mcp | Ваш самописный API как инструмент LLM

Если вы обладаете самописным API и хотите, чтобы LLM умела им пользоваться, то эта библиотека поможет. За несколько строк кода вы сможете выдать функционал своего проекта нейронкам вроде ChatGPT по эндпоинту https://app.base.url/mcp:


from fastapi import FastAPI
from fastapi_mcp import FastApiMCP

app = FastAPI()

mcp = FastApiMCP(app)

# Mount the MCP server directly to your FastAPI app
mcp.mount()


#инструмент
@zen_of_python
  • ❤ 4
  • ✍ 3
Post #4420 2.73K

Forwarded from Инструменты программиста

system-design-primer | Учим проектирование больших систем

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

Цена: бесплатно
Репозиторий проекта

@prog_tools
  • 🔥 2
  • ❤ 1
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →