seniorpy | Unsorted

Telegram-канал seniorpy - Senior Python Developer

54326

№ 4931117861 Публикуем интересные/полезные фичи/библиотеки языка. По вопросам сотрудничества: @adv_and_pr Канал на бирже: https://telega.in/c/seniorpy

Subscribe to a channel

Senior Python Developer

Fugue

Fugue — это библиотека, которая используется для создания и оркестровки workflow машинного обучения.
Она позволяет быстро создавать, тестировать и масштабировать ML приложения, автоматизируя рутинные этапы.

Основные возможности:
— Описание этапов workflow как отдельных функций.
— Автоматическое определение зависимостей между функциями.
— Планирование выполнения функций с учетом зависимостей.
— Кэширование промежуточных результатов для оптимизации.
— Распределенное выполнение на разных ядрах или машинах.

В этом примере с помощью декоратора @FugueWorkflow() отмечены функции, которые будут этапами workflow.
Fugue автоматически определит, что fit_model зависит от preprocess, а predict - от fit_model.

При вызове функций Fugue учтёт эти зависимости и выполнит их в правильном порядке, кэшируя промежуточные результаты.

Читать полностью…

Senior Python Developer

Каждый разработчик ежедневно сталкивается с новыми челенджами, один из них — отказоустойчивость системы.

Поработаем над темой вместе?

Команда Яндекс Такси и ведущие специалисты IT отрасли делятся своим опытом. Регистрируйтесь сейчас и используйте в работе лучшие практики.

2 сентября. «Москва-Сити», башня «Око», с онлайн-трансляцией. Бесплатно
Подробнее 

Читать полностью…

Senior Python Developer

Статические методы в Python

Статические методы - это методы, которые не требуют создания экземпляра класса для вызова.
Они не имеют доступа к атрибутам и другим методам экземпляра класса и объявляются с помощью декоратора @staticmethod.

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

Как видно из примера, статические методы позволяют удобно организовывать функционал, связанный с обработкой строк, в класс StringUtils, не создавая отдельных объектов.

#это_база

Читать полностью…

Senior Python Developer

manim

Manim
это библиотека, которая используется для создания анимированных визуализаций и математических демонстраций.

Manim позволяет программистам и математикам создавать наглядные анимации для визуализации различных процессов, объяснения алгоритмов, демонстрации физических явлений и других задач.

Результат выполнения кода из примера — видеофайл с анимацией данных преобразований.

Читать полностью…

Senior Python Developer

Breakpoint

Breakpoint - это точка останова в коде, которая используется для отладки при помощи интерактивного отладчика.

breakpoint ставится в строке кода, где нужен останов для проверки значений. При достижении breakpoint программа приостанавливается, после чего  можно изучить ее состояние.

При выполнении код остановится на строке с breakpoint(), позволяя изучить текущие x и y.

#это_база

Читать полностью…

Senior Python Developer

#вопросы_с_собеседований
В чем смысл параметров _value, __value?

_value - одиночное подчеркивание в начале имени означает, что этот параметр не предназначен для использования outside функции. Это соглашение, а не ограничение языка.

__value - двойное подчеркивание означает, что это имя зарезервировано Python и используется для специальных целей, например init для конструктора класса. Такие параметры могут выполнять какие-то дополнительные действия.

Читать полностью…

Senior Python Developer

Protocol

Класс Protocol - это способ формального определения протоколов, введенный в версии 3.8.

Этот класс дает строгий и типизированный способ определения протоколов и позволяет формально описать интерфейс.

Сейчас используется в основном в стандартной библиотеке.

На изображении предоставлен пример использования Protocol для определения простого протокола логгирования.

Читать полностью…

Senior Python Developer

#вопросы_с_собеседований
Что такое сцепление исключений?

Сцепление исключений - это механизм, который позволяет сохранить исходную причину исключения при дополнительной обработке ошибки.

При возникновении исключения мы можем перехватить его блоком try/except и вызвать другое исключение из блока обработки.
При этом мы сохраняем исходное исключение как причину (cause) для нового.

Это дает следующие преимущества:

- При отлове нового исключения мы по-прежнему имеем доступ к стеку вызовов и данным исходного исключения.

- Можно добавлять дополнительную информацию в новое исключение, не теряя оригинальное.

- Иерархия исключений сохраняется - мы видим полную цепочку возникновения ошибки.

Читать полностью…

Senior Python Developer

Аннотация типов

Аннотации типов (type hints) позволяют указать ожидаемые типы аргументов функций и возвращаемых значений. Они были введены в Python 3.5.

Аннотации типов не проверяются во время выполнения кода. Это просто подсказки для разработчиков и инструментов статического анализа кода.

Поддерживаются встроенные типы (int, float, str, bool и т.д.), а также классы, списки, словари и кортежи с указанием типов внутри.

Для необязательных аргументов используется Optional[] (например, Optional[int]).
Для возвращения нескольких типов можно использовать Union (например, Union[int, str]).

#это_база

Читать полностью…

Senior Python Developer

Ruff

Ruff - это линтер для проверки качества кода.
Он помогает обнаруживать ошибки, следовать стилистическим рекомендациям и в целом писать более чистый и читаемый код.

Ruff можно использовать для проверки как отдельных файлов, так и целых проектов.

Читать полностью…

Senior Python Developer

"70-е года прошлого века подарили обществу множество потрясающих вещей: "американскую новую волну", панк- и прогрессивный рок, появление мыши, шоу "Летающий цирк Монти Пайтона""...
Которое вдохновило Гвидо ван Россума, голландского программиста, на создание нового ЯП, который он назвал в честь шоу.
Академия Кодебай открывает набор на осенний поток продвинутого курса Python для тех, кто хочет прокачать свои навыки в кибербезопасности.

Python EH - курс про особенности применения ЯП Python в сфере кибербезопасности. Будет полезен не только пентестерам, но и программистам разных специализаций. Узконаправленный и углубленный - курс не для новичков, но для тех, кто хочет быть конкурентноспособным на рынке.

Запись через нашего бота или форму на сайте.

Реклама. ООО "АКАДЕМИЯ КОДЕБАЙ". ИНН 9706020333. erid: 2Ranymz6uV2

Читать полностью…

Senior Python Developer

#вопросы_с_собеседований
Какие различия есть между методами для списков append() и extend()?

Методы append() и extend() для списков имеют разное назначение:

- append() добавляет один элемент в конец списка, принимая в качестве аргумента этот элемент.

my_list.append(10) - добавит число 10 в конец списка my_list.

- extend() расширяет список добавляя в него несколько элементов сразу. В качестве аргумента принимается итерируемый объект (список, кортеж и т.п.).

my_list.extend([10, 20, 30]) - добавит числа 10, 20, 30 в конец списка my_list.

Читать полностью…

Senior Python Developer

Генераторы коллекций

Генераторы коллекций позволяют эффективно создавать большие коллекции данных без необходимости хранить всю коллекцию в памяти.
Вместо этого генератор возвращает элементы коллекции по одному при каждом вызове next().

Генераторы коллекций создаются с помощью функций-генераторов, использующих ключевое слово yield.

В примере каждый вызов next() на генераторе squares_gen возвращает следующий квадрат и сохраняет текущее состояние генератора.

#это_база

Читать полностью…

Senior Python Developer

#вопросы_с_собеседований
Почему не стоит использовать изменяемые объекты как параметры по-умолчанию?

В Python не рекомендуется использовать изменяемые объекты в качестве значений параметров по умолчанию по следующим причинам:

- Значения по умолчанию вычисляются один раз при определении функции, а не при каждом вызове.

- Если использовать изменяемый объект (список, словарь), то изменения в нем будут сохраняться между вызовами функции. Это может привести к неочевидному поведению и трудноуловимым ошибкам при многократном вызове функции.

В качестве альтернативы можно задавать значение по умолчанию как None, а в теле функции создавать новый изменяемый объект, если значение не передано.
Такой подход позволяет избежать "эффекта переноса" состояния между вызовами и делает код более понятным и предсказуемым.

Читать полностью…

Senior Python Developer

#вопросы_с_собеседований
Что такое отображение (mapping)?

Отображение (mapping)это контейнер, который хранит пары ключ-значение. Отображения позволяют связывать ключи с значениями, чтобы можно было получить значение по ключу.

Среди основных отображений: dict, set, namedtuple.

Читать полностью…

Senior Python Developer

LangChain

LangChain
это библиотека, которая позволяет создавать цепочки обработки естественного языка (NLP).

Основные возможности:
— Создание конвейеров обработки текста.
— Подключение различных модулей NLP (токенизация, лемматизация и т. д.).
— Объединение моделей в единую цепочку.
— Удобная настройка и отладка.

Используется для:
— Построения приложений для анализа текста на Python.
— Быстрого прототипирования решений для обработки естественного языка.
— Объединения разных библиотек NLP в одном workflow.
— Упрощения процесса экспериментов с моделями обработки текста.

В этом примере создается цепочка из двух моделей OpenAI — Curie и Babbage, а текст передается поочередно в каждую модель.

Читать полностью…

Senior Python Developer

#вопросы_с_собеседований
Как работает хэш-таблица?

Принцип работы:

— Элементы хэш-таблицы хранятся в виде пар ключ-значение.
— Каждому ключу сопоставляется уникальный целочисленный индекс с помощью хэш-функции.
— Этот индекс используется для прямого доступа к ячейке таблицы, в которой и хранится значение.
— Если по одному индексу хэш-функции попадает несколько ключей, используется механизм разрешения коллизий (цепочки, открытая адресация).
— Хэш-таблица динамически изменяет свой размер, чтобы оптимизировать память и время доступа.

Читать полностью…

Senior Python Developer

Приглашаем на митап по Pytup в Новосибирске

19 августа проведем уютный митап по Python! Регистрация уже открыта! Мы решили познакомиться с сообществом разработчиков Новосибирска, поэтому проведем мероприятие для максимально широкой аудитории: от джунов до сеньоров и техлидов. Обсудим последние новости языка, поделимся кейсами и практическими решениями, поговорим про ML и науку.

В программе:

🔸Сергей Яхницкий, разработчик, Яндекс Такси
Новости из мира Python: PEP, которые изменят ваш мир

🔸Кузьма Лешаков, архитектор платформы данных, Yandex Cloud
Решаем задачу триггера в событийно-ориентированной архитектуре

🔸Кристина Климовских, разработчик, 2GIS
Про тестирование зоопарка парсеров

🔸Михаил Иванов, Python-разработчик, Контур
Python на производстве: опыт, проблемы и решения

🔼 Для вашего удобства подготовили карточки с классными спикерами, которые выступят с докладами на нашем митапе.

19 августа встречаемся в Новосибирске и на онлайн-трансляции.
Узнать подробности и зарегистрироваться можно тут.

ℹ️ Подписывайтесь на чат митапа: @Pytup

Читать полностью…

Senior Python Developer

EEL

EEL (Easy Electron)
это библиотека, которая упрощает создание desktop-приложений с использованием технологий веб-разработки (HTML, CSS и Javascript).

Основные возможности EEL:

— Позволяет создавать графический интерфейс приложения при помощи веб-технологий.
— Обеспечивает взаимодействие между Python кодом и Javascript кодом. Python может вызывать JS функции, а JS может вызывать Python.
— Автоматически обрабатывает асинхронные вызовы между JS и Python.
— Встроенный локальный веб-сервер для отображения HTML/JS интерфейса.

В этом примере импортируется модуль eel и инициализируется папка с HTML и JS файлами — 'web'.
Декоратор @eel.expose делает функцию say_hello() доступной для вызова из Javascript.
Вызов eel.say_hello() вызывает эту функцию из Python кода.

Читать полностью…

Senior Python Developer

Метод count()

count() - простой и удобный способ получить число вхождений элемента в последовательности за линейное время. Полезен при подсчете статистики, анализе данных и других задачах.

Метод принимает в качестве аргумента элемент, количество которого нужно посчитать и возвращает число - количество найденных вхождений элемента.

Работает для списков, кортежей, строк.

#это_база

Читать полностью…

Senior Python Developer

ИТ + научпоп + музыка = большой ИТ-пикник в Москве 💛

2 сентября Тинькофф, CodeFest и Мельница собирают большой благотворительный ИТ-фестиваль. Встречаемся в Коломенском на максимально летнем вайбе.

В программе: ИТ- и научпоп-лектории, выступления топовых спикеров, воркшопы, интерактивные зоны и вишенка на торте — музыкальные перформансы от Антохи MC, Zoloto, Therr Maitz, The Hatters, «Сироткина», а также секретного хедлайнера. Как думаете, кто им может быть?

Для участия нужно выбрать благотворительный фонд из списка и сделать донат от 1000 рублей. Подробности и регистрация — тут.

Реклама. АО "Тинькофф Банк"

Читать полностью…

Senior Python Developer

object

object - это встроенный класс, от него наследуются сразу все новые классы, если явно не указан другой базовый класс.

У объектов класса object есть методы init, str, repr и другие. Их можно переопределять в дочерних классах.

Атрибуты класса объявляются внутри класса, но вне всех методов. Атрибуты экземпляра объявляются в init.

Чтобы использовать класс object в своем коде, достаточно создать класс, унаследованный от object.

Читать полностью…

Senior Python Developer

Memray

Memray - это библиотека для профилирования памяти и она является важным инструментом оптимизации производительности Python программ.

Библиотека отслеживает выделение и освобождение памяти при работе программы, поддерживает отслеживание ссылок на объект, применятся для профилирования на серверах и в виртуальных окружениях.

В примере мы используем декоратор memray.profile, который будет отслеживать все выделение и освобождение памяти внутри функции my_func().

При запуске этого кода memray выведет отчёт.

Читать полностью…

Senior Python Developer

❗️Как развиваться Python-разработчику?

Наращивать объем знаний и навыков. За этим приходите на вебинар, приуроченный к старту онлайн-курса «Python Developer. Professional» в OTUS.

✅ 15 августа — «Code review»
Обсудим основы разработки API с помощью фреймворка FastAPI, рассмотрим пример небольшого приложения и осветим особенности развертывания эксплуатации.

🧑‍💻 Спикером выступит Станислав Ступников, руководитель разработки в VK. Эксперт с 10+ лет опыта промышленной разработки.

💪 Погрузим вас в современную «промышленную» разработку на Python. Главный фокус курса на основных Software Engineering компетенциях Python-разработчика и формировании прагматичного подхода к решению задач.

👉 ПРОЙТИ ТЕСТ для регистрации на открытый урок
https://otus.pw/PXkh/

Нативная интеграция. Информация о продукте www.otus.ru

Читать полностью…

Senior Python Developer

#вопросы_с_собеседований
Как происходит проверка множеств на равенство?

- Для равенства множества должны содержать одинаковые элементы.

- Порядок элементов значения не имеет.

- Количество вхождений элемента также не важно.

- Если элементы в множествах разные - множества не равны.

- Другие атрибуты или свойства множеств, кроме состава элементов, не проверяются.

Таким образом, множества равны, когда они имеют одинаковые элементы, вне зависимости от порядка или количества вхождений.

Читать полностью…

Senior Python Developer

Удаление префиксов и суффиксов

Методы .removeprefix() и .removesuffix() служат для удаления префикса или суффикса из строки соответственно. Эти методы были добавлены в Python 3.9.

Методы возвращают новую строку без указанного префикса или суффикса. Исходная строка не изменяется.

Если строка не начинается/заканчивается на указанный префикс/суффикс, возвращается копия исходной строки.

Методы вызывают исключение ValueError, если префикс/суффикс пустой.

#это_база

Читать полностью…

Senior Python Developer

Pygal

Pygal - это библиотека для визуализации данных с помощью SVG.
Она позволяет строить разнообразные интерактивные графики, такие как линейные, столбчатые, круговые диаграммы.

Этот код создает объект диаграммы line_chart, добавляет в нее несколько рядов данных, задает заголовок, подписи по оси X и сохраняет результат в файл SVG.

В итоге получается интерактивный график изменения доли браузеров за определенный период.

Читать полностью…

Senior Python Developer

Frozenset

frozensets используются для создания неизменяемых множеств.

Основные особенности frozensets:

- Они неизменяемы, то есть элементы нельзя добавить или удалить после создания.
- Они могут использоваться как ключи в словарях, так как неизменяемы.
- Они быстрее обычных множеств в операциях, так как являются неизменяемыми.

Здесь мы создали frozenset с элементами. Попытка добавить элемент вызывает ошибку, так как frozensets неизменяемы. Затем frozenset используется как ключ в словаре.

Читать полностью…

Senior Python Developer

dict.get()

Метод dict.get() принимает два аргумента - ключ и значение по умолчанию, и позволяет получить значение по ключу из словаря.

Если ключ присутствует в словаре, возвращается соответствующее значение.
Если ключа нет, возвращается значение по умолчанию, вместо ошибки KeyError.

#это_база

Читать полностью…

Senior Python Developer

JPype

JPype - это модуль, который позволяет взаимодействовать с кодом на Java из Python.

Основные области применения JPype:
- Доступ к библиотекам Java из Python.
- Интеграция с существующим Java кодом.
- Использование JVM из Python.

В этом примере мы импортируем класс String из Java и создаем экземпляр этого класса.
Затем вызываем метод toUpperCase() у объекта javaString. Таким образом из Python мы можем работать с объектами и вызывать методы Java.
Результат работы программы:
HELLO FROM JAVA!

Читать полностью…
Subscribe to a channel