54326
№ 4931117861 Публикуем интересные/полезные фичи/библиотеки языка. По вопросам сотрудничества: @adv_and_pr Канал на бирже: https://telega.in/c/seniorpy
➡️ Использование contextlib.contextmanager для создания контекстных менеджеров
Иногда бывает нужно создать собственный контекстный менеджер для управления ресурсами, такими как файлы или сетевые соединения.
✔️ В Python для этого можно использовать декоратор contextlib.contextmanager, что делает код простым и элегантным.
➡️ Извлечение уникальных элементов из списка с сохранением порядка
🗣️ Обычно, когда нужно получить уникальные элементы из списка, используют set. Однако это нарушает порядок элементов.
Чтобы извлечь уникальные элементы, сохраняя их порядок, можно использовать следующую технику:• Используем список для обхода элементов и set, чтобы отслеживать уже встреченные элементы, избегая их дублирования.• Используем однострочный list comprehension с условием, которое добавляет элемент в результирующий список только если он ещё не был добавлен.
➡️ Модификация байт-кода функции в Python с использованием модуля byteplay3
Продвинутые программисты могут использовать модификацию байт-кода для изменения поведения функции на низком уровне.
✔️ Это позволяет создавать динамические изменения в функции без её переписывания на уровне исходного кода. В Python можно использовать модуль byteplay3 для работы с байт-кодом.
🔗 Ссылочка на доку
⚠️Не будьте тем, кто узнаёт об угрозах ИБ слишком поздно!
Бесплатный вебинар от курса «Информационная безопасность. Professional», который будет проводить Сергей Терешин - сертифицированный специалист по решениям информационной безопасности от компании Check Point, McAfee, Group -IB, Microsoft, Positive Technologies, Лаборатория Касперского. С опытом в отрасли телеком/ИТ/ИБ более 18 лет.
«Искусственный интеллект - новый вызов в кибербезопасности»
📅 23 октября, 20:00
Разбираем, что такое ИИ в контексте ИБ, какие атаки возможны на ИИ, и как составить модель угроз: от prompt-injection и data poisoning до безопасной работы с контекстом и ролями. Итог: аргументы «за/против» внедрения ИИ в вашей компании и первые шаги для архитектора/руководителя ИБ.
Если у вас в компании уже тестируют GigaChat/YandexGPT или строите антифрод - приносите свой кейс на урок, разберем вместе.
А также на вебинаре Сергей Терешин подарит всем участникам приятный бонус!🎁
🔥 Этот вебинар - ваш шанс обновить знания и быть на шаг впереди угроз, прежде чем они станут проблемой. Записывайтесь на вебинар: https://otus.pw/E21w/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
➡️ Boltons — удобные утилиты для повседневного программирования
Boltons — это коллекция чистых и надежных утилит, которые помогут вам ускорить разработку. В библиотеке вы найдете множество полезных функций для работы со структурами данных, файловой системой, логированием и многим другим.
🗣 Boltons — отличное дополнение к стандартной библиотеке Python, особенно если вам нужно быстрое решение для типичных задач.
🔗 Ссылочка на доку
⚙️ Использование модуля sys.settrace для отладки и профилирования
В Python есть малоизвестная, но мощная функция — sys.settrace(), которая позволяет установить собственный обработчик трассировки для отладки и профилирования кода.
➡️ С её помощью можно отслеживать выполнение каждого вызова функции, строки или даже изменения локальных переменных в программе.
⚙️ Использование dataclasses для создания неизменяемых объектов
В Python 3.7 и выше можно использовать модуль dataclasses для создания простых классов данных.
🗣️ Одной из интересных возможностей является создание неизменяемых (immutable) объектов, которые не могут быть изменены после создания.
➡️ Декоратор для кэширования результатов функций с учетом аргументов
Иногда необходимо кэшировать результаты функции для повышения производительности, особенно если функция выполняет тяжелые вычисления или обращения к внешним ресурсам.
🗣️ Данный декоратор кэширует результаты функции в зависимости от переданных аргументов, что делает его гибким и эффективным.
Python или не Python? Вот в чём вопрос… на обсуждение в формате круглого стола на Python-митапе от Авито! ☄
Вечером 27 октября вас ждут в офисе на Лесной, чтобы обсудить:
➡ кейс оптимизации GC в Python от Саши Федосеева, backend-инженера из команды Main Page Tech Авито;
➡ как mypy укрощает Python в большой компании вместе с Сергеем Яхницким из Яндекса.
После докладов, как и сказали выше, вместе с участниками спикеры обсудят, подходит ли Python для запуска больших нагруженных решений в формате круглого стола.
Для тех, кто не успевает вырваться из офиса или дома, будет онлайн-трансляция.
Так что не откладывайте, регистрируйтесь и зовите коллег — все подробности по ссылке.
Уже 23 октября узнаем больше о хакрдкорной разработке dev-to-dev решений
Техплатформа Городских сервисов Яндекса проводит митап, на котором эксперты поделятся опытом создания архитектуры нагруженной системы, обрабатывающей сотни тысяч rps в брокере сообщений на MongoDB, и как писать IO-bound сервисы под высокими нагрузками на С++ так же как на Go.
В программе выступления Антона Полухина, Ромы Елизарова, Лёши Иванова и Влада Назарова, а также нетворкинг в неформальной атмосфере.
Если интересуетесь разработкой dev-to-dev решений и вы опытный разработчик, обязательно приходите.
👉 23 октября, сбор гостей с 18:00
👉 Москва, офлайн
Регистрируйтесь и зовите коллег!
Мероприятие бесплатное. Количество мест ограничено — пожалуйста, дождитесь нашего подтверждения.
Реклама. ООО «Яндекс.Такси» ИНН 7704340310
#вопросы_с_собеседований
В каких ситуациях возникает исключение NotImplementedError?
Исключение NotImplementedError возникает, когда метод или функция должны быть реализованы в подклассе, но не были реализованы. Это может произойти, когда родительский класс определяет метод, но не реализует его сам, а оставляет это для подклассов. В этом случае, если подкласс не реализует метод, он будет вызывать исключение NotImplementedError. Это может быть полезно для отладки, чтобы убедиться, что все необходимые методы реализованы в подклассах. Это также может возникнуть в
других ситуациях, например, если вы пытаетесь использовать неопределенную функцию или метод.
whylogs
whylogs — это библиотека для профилирования и анализа данных в Python. Она предоставляет средства для сбора статистики о данных, визуализации этой статистики и создания профилей данных для мониторинга и анализа.
#для_начинающих
Погружение в метаклассы в Python
Если вы не поймете некоторые вещи в этом прологе, то не расстраивайтесь. Я постараюсь объяснить последовательно, от простого к сложному. Однако для полного понимания этого текста надо знать как основы синтаксиса языка Python, так и ООП в Python.
Смотртеть статью
Altair
Библиотека Altair — это декларативная библиотека для создания статистических визуализаций. Она основана на спецификации Vega-Lite и позволяет создавать сложные графики с минимальным количеством кода.
Altair предоставляет простой синтаксис для создания графиков, а также интегрируется с Jupyter Notebook и JupyterLab для интерактивного отображения графиков.
Результат работы кода — столбчатая диаграмма, отображающая цены на разные виды фруктов.
Если вы хотите сохранить график в виде файла, вы можете использовать метод save().
*На втором изображении представлен результат работы программы.
Emot
Библиотека Emot предназначена для распознавания эмодзи в тексте.
Она может очень пригодиться, когда нам нужно предварительно обработать текстовые данные, чтобы удалить эмотиконы и эмодзи или изучить их влияние на семантику. Функции библиотеки принимают на вход строку и возвращают список словарей.
Поговорим про деньги в IT?
Приглашаем опытных IT-специалистов пройти небольшой опрос про зарплаты и бенефиты в технологических компаниях. Это займёт не более 7 минут — а ваше мнение поможет одному крупному российскому работодателю делать актуальные оферы.
Пройти опрос можно здесь
⚙️ Управление временем выполнения функций с помощью тайм-аутов в Python
Иногда требуется ограничить время выполнения функции, чтобы предотвратить зависание или длительное выполнение задачи.
🗣️ В Python можно использовать модуль signal для установки тайм-аутов на выполнение кода.
➡️ Pyfiglet — генерация ASCII-арт текста
Pyfiglet — это библиотека Python, которая позволяет легко создавать красивый ASCII-арт текст прямо в консоли. Идеально подходит для добавления стилизованных заголовков и баннеров в ваши консольные приложения.
🗣 Отличный способ оживить вывод вашего кода и привлечь внимание к важным сообщениям.
🔗 Ссылочка на доку
➡️ PandasGUI — графический интерфейс для работы с DataFrame
PandasGUI — это удобный инструмент, который предоставляет графический интерфейс для работы с Pandas DataFrame. Он позволяет визуализировать, фильтровать и редактировать данные прямо в интерактивном окне, что делает анализ данных более интуитивным и быстрым.
🗣 Отличный способ ускорить анализ данных, особенно если вы привыкли работать с Pandas в Jupyter Notebook.
🔗 Ссылочка на доку
➡️ Использование дескрипторов для управления доступом к атрибутам
Дескрипторы — это мощный, но часто недооцененный механизм в Python, который позволяет управлять доступом к атрибутам объектов. С помощью дескрипторов можно реализовать логику при чтении, записи или удалении атрибутов класса.• Дескриптор — это объект, который управляет доступом к другому объекту. Для этого используются методы __get__, __set__ и __delete__.• В примере выше дескриптор PositiveNumber контролирует запись значения в атрибут. Если значение отрицательное, выбрасывается ошибка. Это позволяет реализовать проверку значений на уровне атрибутов.• Дескрипторы позволяют инкапсулировать логику доступа в отдельный класс, который можно переиспользовать в нескольких местах, улучшая структурированность и читаемость кода.
🚫👩💻 🚫 Как не нужно писать на Python
Приглашаем на открытый урок.
🗓 27 октября в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Python Developer. Professional».
Даже опытные разработчики порой создают код, который работает — но жить с ним потом невозможно. На открытом уроке разберём типичные ошибки и антипаттерны в Python, поговорим о причинах появления «плохого» кода и способах сделать его понятнее, стабильнее и быстрее. Рассмотрим как распространённые, так и неожиданные примеры, которые помогут взглянуть на привычные решения под новым углом.
На вебинаре разберём:
✔️ Основные антипаттерны и неудачные практики в Python-разработке
✔️ Почему появляются «плохие» решения и как их вовремя распознать
✔️ Подходы и инструменты, которые помогают улучшить качество кода
В результате вебинара вы:
✔️Поймёте, чего стоит избегать при написании кода на Python
✔️Научитесь видеть и исправлять проблемные участки в своих проектах
✔️Узнаете, как писать читаемый, поддерживаемый и эффективный код
🔗 Ссылка на регистрацию: https://otus.pw/j5s1/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
❤️ Приходите на Backend Talks от Яндекс 360
Санкт-Петербург, 13 ноября в 19:00
Разберём архитектуру облачной записи встреч, наведём порядок в API и покажем, как простые решения спасают сервисы.
В программе:
📌 Как не упустить важное: архитектура облачной записи и конспектирования видеовстреч в Телемосте — Илья Григорьев, разработчик бэкенда Телемоста.
📌 Укрощение API: процессы и инструменты, которые действительно работают — Никита Ломакин, разработчик в команде Техплатформы.
📌 Как мы закапывали звездолёт: почему важно отстаивать простоту на архревью — Артемий Коцюбенко, разработчик протокольных сервисов Почты.
Команда Яндекс 360 работает с нагрузками >1.000.000+ RPS и создает продукты которыми пользуются 95+ млн человек каждый месяц — Диск, Почта, Телемост, Мессенджер и другие.
🍻А после докладов вас будут ждать афтепати и нетворкинг!
Регистрируйтесь по ссылке
⚙️ Ленивая инициализация свойств с помощью дескрипторов
➡️ Дескрипторы в Python позволяют управлять доступом к атрибутам объекта.
🗣️ С их помощью можно реализовать ленивую инициализацию свойств, что особенно полезно для дорогостоящих операций, которые нужно выполнять только при первом обращении к свойствуЧитать полностью…
➡️ Typer — простой способ создания командных интерфейсов
Typer — это библиотека Python, которая упрощает создание интерфейсов командной строки (CLI). Она строится на основе аннотаций типов и значительно сокращает количество кода, необходимого для создания мощных и удобных командных утилит.
🗣 Если вам нужно быстро создать CLI для своего проекта, Typer — отличный выбор.
🔗 Ссылочка на доку
➡️ Yarl — Удобная работа с URL
Yarl — это библиотека Python, предназначенная для удобной работы с URL-адресами. Она предоставляет API для создания, изменения и анализа URL-адресов, сохраняя при этом их семантическую корректность.
🗣 Если вы работаете с URL-адресами и хотите упростить их обработку в Python, Yarl может быть отличным выбором.
🔗 Ссылочка на доку
Генерируем фейковый профиль человека
С помощью метода profile пакета Faker мы с легкостью может получить информацию о несуществующем человеке.
Документацию можно найти здесь.
Карьерный буст, робот в подарок и призовой фонд 7 500 000 рублей 🤖
Успей зарегистрироваться до 20 октября.
Все это ждет участников трека «Программирование роботов» на всероссийском ИТ-чемпионате МТС True Tech Champ 2025. Присоединяйся, если пишешь на С++, Go, Python, JS, Java, C# или другом языке.
Соревнования пройдут в командах от 2 до 4 человек в несколько этапов:
— Квалификация. Тебе предстоит запрограммировать робота на прохождение виртуального лабиринта.
— Полуфинал. Ты будешь дистанционно управлять роботом на офлайн-полигоне и наблюдать за его перемещениями в трансляции.
— Финал. За две недели до финала организаторы отправят тебе настоящего робота для кастомизации. Ты сможешь модифицировать его, чтобы он оказался быстрее других в многоуровневом офлайн-лабиринте и смог выбить соперников с платформы в шоу-битве.
Команды финалистов получат по одному роботу Waveshare Cobra Flex в подарок и сразятся за крупные денежные призы: 4 000 000 ₽ за первое место, 2 500 000 ₽ за второе и 1 000 000 ₽ за третье.
Еще ты сможешь:
— Получить практический опыт работы с инструментами, с помощью которых создают домашних и промышленных роботов.
— Прокачать компетенции, которые помогут развиваться в ИТ.
— Заявить о себе на всю Россию и ускорить свой профессиональный рост.
📍 Финал состоится 21 ноября в МТС Live Холл в Москве.
👉🏻 Регистрируйся на сайте до 20 октября.
High-speed VDS — решение для Python-разработчиков, которым важны скорость, стабильность и полный контроль:
— Процессоры Intel Xeon Gold 3-го поколения: высокая производительность при любых задачах — от обработки запросов до численных расчетов.
— Сеть до 10 Гбит/с, безлимитный трафик: никаких неожиданных ограничений при работе с API, базами данных или внешними сервисами.
— Быстрый старт: автоматическая установка Ubuntu/Debian — разверните окружение и запустите uvicorn или celery за пару минут.
— Гибкая тарификация: платите посуточно, без комиссий и переплат — идеально для тестов, стендов и MVP.
— Быстрое масштабирование: добавляйте CPU, RAM или SSD к существующему серверу без пересоздания.
— Скидки на длительную аренду: оставайтесь с нами на еще более выгодных условиях.
— Круглосуточная поддержка в чате: быстро реагирует на любые вопросы.
Подходит для веб-приложений на Django/FastAPI/Flask, ботов, парсеров, ML-стендов, CI/CD и любых Python-проектов, где важна скорость и надежность.
🔗 Попробуйте — и почувствуйте разницу!
DABL
Data Analysis Baseline Library (DABL) — это библиотека, разработанная для упрощения анализа данных и построения моделей машинного обучения.
Она предоставляет инструменты для автоматической предобработки данных, визуализации и выбора моделей. DABL основана на библиотеках, таких как pandas, scikit-learn и matplotlib.
В этом примере мы использовали DABL для анализа данных, визуализации и построения модели машинного обучения. Результат работы кода представлен на втором изображении.
Дан целочисленный массив nums, вернуть [nums[i], nums[j], nums[k]] такие, что nums[i] + nums[j] + nums[k] == 0.
В нашем решении сначала список nums сортируется. Затем перебираются все возможные комбинации индексов i, j и k. Их сумма проверяется на равенство target и добавляется в результирующий сет, если равна.
#разбор_кода