Forwarded from Библиотека питониста | Python, Django, Flask
🐍🆕 Змея сбросила старую кожу: что нового в Python 3.13
Версия 3.13 принесла ряд важных нововведений, нацеленных на повышение скорости выполнения кода, улучшение читаемости и новые возможности для интерактивной работы. В новой статье перечислили главные изменения, которые должен знать каждый Python-разработчик.
👉 Читать статью
👉 Зеркало
Версия 3.13 принесла ряд важных нововведений, нацеленных на повышение скорости выполнения кода, улучшение читаемости и новые возможности для интерактивной работы. В новой статье перечислили главные изменения, которые должен знать каждый Python-разработчик.
👉 Читать статью
👉 Зеркало
Что делать если нужно сериализовать данные, которые не поддерживаются стандартным модулем json?
Если нужно сериализовать объекты, которые по умолчанию не поддерживаются модулем json, то есть несколько вариантов:
— Реализовать методы __getattr__ и __setattr__ в классе объекта, чтобы преобразовать его в словарь, который уже можно сериализовать в JSON.
— Использовать декоратор dataclass из модуля dataclasses для автоматической генерации методов сериализации.
— Создать собственный класс-наследник json.JSONEncoder и переопределить метод default(), чтобы указать как сериализовать нестандартные объекты.
— Использовать библиотеку marshmallow для создания схем сериализации/десериализации сложных объектов в JSON.
— Преобразовать объекты в dict или list вручную перед сериализацией с помощью методов объекта или отражения (reflection).
— Использовать другой формат сериализации, например YAML или MessagePack, который может поддерживать произвольные типы.
Если нужно сериализовать объекты, которые по умолчанию не поддерживаются модулем json, то есть несколько вариантов:
— Реализовать методы __getattr__ и __setattr__ в классе объекта, чтобы преобразовать его в словарь, который уже можно сериализовать в JSON.
— Использовать декоратор dataclass из модуля dataclasses для автоматической генерации методов сериализации.
— Создать собственный класс-наследник json.JSONEncoder и переопределить метод default(), чтобы указать как сериализовать нестандартные объекты.
— Использовать библиотеку marshmallow для создания схем сериализации/десериализации сложных объектов в JSON.
— Преобразовать объекты в dict или list вручную перед сериализацией с помощью методов объекта или отражения (reflection).
— Использовать другой формат сериализации, например YAML или MessagePack, который может поддерживать произвольные типы.
Forwarded from Библиотека питониста | Python, Django, Flask
🐍🔀 Под капотом asyncio: принципы работы и ключевые концепции
Библиотека asyncio предоставляет полный набор инструментов для организации параллельного выполнения кода в Python с использованием концепции асинхронности. Но как на самом деле работает asyncio? В новой статье разберёмся в ключевых принципах и понятиях.
🔗 Читать статью
🔗 Зеркало
Библиотека asyncio предоставляет полный набор инструментов для организации параллельного выполнения кода в Python с использованием концепции асинхронности. Но как на самом деле работает asyncio? В новой статье разберёмся в ключевых принципах и понятиях.
🔗 Читать статью
🔗 Зеркало
Forwarded from Библиотека питониста | Python, Django, Flask
🖥️🔤 Транскрибация видео и создание субтитров с помощью Whisper, FFmpeg и Python
Следуя нашему пошаговому руководству, вы сможете автоматически транскрибировать аудио и добавлять субтитры к своим видео всего за несколько минут.
🔗 Читать руководство
🔗 Зеркало
Следуя нашему пошаговому руководству, вы сможете автоматически транскрибировать аудио и добавлять субтитры к своим видео всего за несколько минут.
🔗 Читать руководство
🔗 Зеркало
Forwarded from Библиотека питониста | Python, Django, Flask
У нас есть еженедельная рассылка о последних открытиях и тенденциях в мире Python. Мы опубликовали новый выпуск на
Ниже — небольшая часть выпуска, а целиком читайте здесь 👈
Новый видеоролик рассказывает о паттерне Unit of Work, который используется для обеспечения согласованности данных при выполнении операций с базами данных.
В этом видео подробно показан процесс настройки Django, создания класса Task и написания воркера.
Для отправки писем из Python-приложений можно использовать сторонние API или напрямую подключаться к SMTP-серверу. Второй метод пошагово разобран в этой статье.
Please open Telegram to view this post
VIEW IN TELEGRAM
Каким будет результат следующего выражения: -31 % 10?
Результатом выражения -31 % 10 будет 9. Это происходит потому, что для отрицательных чисел оператор % возвращает остаток от деления первого числа на второе немного другим образом. -31 % 10 = -3 — 1/10 и в ответ мы получим 10 — 1 = 9.
Forwarded from Библиотека питониста | Python, Django, Flask
🐍🌳 Реализация алгоритма Укконена на Python
Алгоритм Укконена предназначен для построения суффиксного дерева из строки.Суффиксное дерево — это компактное, сжатое древовидное представление всех суффиксов данной строки.
И хоть алгоритм выглядит просто и понятно в теории, он представляет определённые сложности для реализации. Разбираемся, как превратить его в рабочий код для построения и визуализации дерева.
🔗 Читать статью
🔗 Зеркало
Алгоритм Укконена предназначен для построения суффиксного дерева из строки.
И хоть алгоритм выглядит просто и понятно в теории, он представляет определённые сложности для реализации. Разбираемся, как превратить его в рабочий код для построения и визуализации дерева.
🔗 Читать статью
🔗 Зеркало
Гайд по магическим методам сравнения
В Python уйма магических методов, созданных для определения интуитивного сравнения между объектами используя операторы, а не неуклюжие методы. Вот список этих методов и что они делают:
1. __cmp__(self, other)
Самый базовый из методов сравнения. Он, в действительности, определяет поведение для всех операторов сравнения (>, ==, !=), но не всегда так, как вам это нужно. __cmp__ должен вернуть отрицательное число, если self < other, ноль, если self == other, и положительное число в случае self > other.
2. __eq__(self, other)
Определяет поведение оператора равенства, ==.
3. __ne__(self, other)
Определяет поведение оператора неравенства, !=.
4. __lt__(self, other)
Определяет поведение оператора меньше, <.
5. __gt__(self, other)
Определяет поведение оператора больше, >.
6. __le__(self, other)
Определяет поведение оператора меньше или равно, <=.
7. __ge__(self, other)
Определяет поведение оператора больше или равно, >=.
В Python уйма магических методов, созданных для определения интуитивного сравнения между объектами используя операторы, а не неуклюжие методы. Вот список этих методов и что они делают:
1. __cmp__(self, other)
Самый базовый из методов сравнения. Он, в действительности, определяет поведение для всех операторов сравнения (>, ==, !=), но не всегда так, как вам это нужно. __cmp__ должен вернуть отрицательное число, если self < other, ноль, если self == other, и положительное число в случае self > other.
2. __eq__(self, other)
Определяет поведение оператора равенства, ==.
3. __ne__(self, other)
Определяет поведение оператора неравенства, !=.
4. __lt__(self, other)
Определяет поведение оператора меньше, <.
5. __gt__(self, other)
Определяет поведение оператора больше, >.
6. __le__(self, other)
Определяет поведение оператора меньше или равно, <=.
7. __ge__(self, other)
Определяет поведение оператора больше или равно, >=.
🐍 У нас есть еженедельная email-рассылка, посвященная последним открытиям и тенденциям в мире Python.
В ней:
● Новые возможности в последних версиях Python
● Работа с базами данных и SQL в Python
● Веб-разработка на Django и Flask
● Машинное обучение и анализ данных с помощью Python
● Автоматизация и работа с API на Python
● Тестирование и отладка кода на Python
● Задачи для новичков с решениями
👉Подписаться👈
В ней:
● Новые возможности в последних версиях Python
● Работа с базами данных и SQL в Python
● Веб-разработка на Django и Flask
● Машинное обучение и анализ данных с помощью Python
● Автоматизация и работа с API на Python
● Тестирование и отладка кода на Python
● Задачи для новичков с решениями
👉Подписаться👈
Хардкорный курс по математике для тех, кто правда любит математику!
Начать с вводных занятий можно здесь, ответив всего на 4 вопроса – https://proglib.io/w/adbf54d6
Что вас ждет:
– Вводный урок от CPO курса
– Лекции с преподавателями ВМК МГУ по темам: теория множеств, непрерывность функции, основные формулы комбинаторики, матрицы и операции над ними, градиентный спуск
– Практические задания для закрепления материала и ссылки на дополнительные материалы.
⚡️ Переходите и начинайте учиться уже сегодня – https://proglib.io/w/adbf54d6
Начать с вводных занятий можно здесь, ответив всего на 4 вопроса – https://proglib.io/w/adbf54d6
Что вас ждет:
– Вводный урок от CPO курса
– Лекции с преподавателями ВМК МГУ по темам: теория множеств, непрерывность функции, основные формулы комбинаторики, матрицы и операции над ними, градиентный спуск
– Практические задания для закрепления материала и ссылки на дополнительные материалы.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека питониста | Python, Django, Flask
🌐 Scrapy VS Crawlee: сравнение фреймворков для веб-скрапинга
Scrapy и Crawlee — фреймворки для скрапинга. Первый — заслуженный ветеран, второй появился относительно недавно. В новой статье разбираемся, какой из инструментов лучше подойдёт для вашего проекта.
🔗 Читать статью
🔗 Зеркало
Этот материал взят из нашей субботней email-рассылки, посвященной Python. Подпишитесь, чтобы быть в числе первых, кто получит дайджест👈
Scrapy и Crawlee — фреймворки для скрапинга. Первый — заслуженный ветеран, второй появился относительно недавно. В новой статье разбираемся, какой из инструментов лучше подойдёт для вашего проекта.
🔗 Читать статью
🔗 Зеркало
Этот материал взят из нашей субботней email-рассылки, посвященной Python. Подпишитесь, чтобы быть в числе первых, кто получит дайджест👈
⚡️Proglib запускает канал про ИИ для генерации звука
Там мы будем рассказывать про все существующие нейросети, которые генерируют музыку и голос — с пошаговыми инструкциями, инструментами и лайфхаками.
⭐️генерация голоса и музыки
⭐️замена и перевод речи
⭐️распознавание звуков
👉Подписывайтесь!
Там мы будем рассказывать про все существующие нейросети, которые генерируют музыку и голос — с пошаговыми инструкциями, инструментами и лайфхаками.
⭐️генерация голоса и музыки
⭐️замена и перевод речи
⭐️распознавание звуков
👉Подписывайтесь!
Что такое подгенератор (subgenerator)?
Подгенератор создается с помощью конструкции yield from внутри генератора.
Использование подгенераторов позволяет разбить генератор на несколько частей для упрощения кода и оптимизации памяти. Это полезный инструмент при работе с последовательностями.
Механизм передает значения между генераторами без сохранения всей последовательности в памяти и блокирует основной генератор до полного завершения подгенератора.
Подгенератор создается с помощью конструкции yield from внутри генератора.
Использование подгенераторов позволяет разбить генератор на несколько частей для упрощения кода и оптимизации памяти. Это полезный инструмент при работе с последовательностями.
Механизм передает значения между генераторами без сохранения всей последовательности в памяти и блокирует основной генератор до полного завершения подгенератора.
Как проверить файл .py на синтаксические ошибки, не запуская его?
Утилита py_compile, позволит проверить файл .py на наличие синтаксических ошибок без его запуска.
Вы можете использовать командную строку или терминал для проверки файла .py на наличие синтаксических ошибок, не запуская его, используя флаг -m с модулем py_compile.
Откройте командную строку или терминал. Перейдите в каталог, содержащий файл .py, который вы хотите проверить, где yourfile .py — это имя файла, который вы хотите проверить.
Утилита py_compile, позволит проверить файл .py на наличие синтаксических ошибок без его запуска.
Вы можете использовать командную строку или терминал для проверки файла .py на наличие синтаксических ошибок, не запуская его, используя флаг -m с модулем py_compile.
Откройте командную строку или терминал. Перейдите в каталог, содержащий файл .py, который вы хотите проверить, где yourfile .py — это имя файла, который вы хотите проверить.
Удаление дубликатов в словаре
Стратегия заключается в преобразовании списка словарей в список кортежей, где кортежи содержат элементы словаря.
Поскольку кортежи могут быть хешированы, вы можете удалить дубликаты с помощью set(используя здесь понимание множества , более старой альтернативой Python будет set(tuple(d.items()) for d in l)) и после этого заново создать словари из кортежей с помощью dict.
Более развернутый ответ можно найти здесь.
Стратегия заключается в преобразовании списка словарей в список кортежей, где кортежи содержат элементы словаря.
Поскольку кортежи могут быть хешированы, вы можете удалить дубликаты с помощью set(используя здесь понимание множества , более старой альтернативой Python будет set(tuple(d.items()) for d in l)) и после этого заново создать словари из кортежей с помощью dict.
Более развернутый ответ можно найти здесь.
Данные о памяти
Благодаря пакету shutil можно получить информацию о памяти на жёстком диске. Метод disk_usage возвращает количество всей, занятой и свободной памяти в байтах. В примере кода для упрощения число поделено на 10 в 9-ой степени, чтобы вывести кол-во памяти в гигабайтах, а также лишняя дробная часть после второго знака отсекается с помощью format.
Благодаря пакету shutil можно получить информацию о памяти на жёстком диске. Метод disk_usage возвращает количество всей, занятой и свободной памяти в байтах. В примере кода для упрощения число поделено на 10 в 9-ой степени, чтобы вывести кол-во памяти в гигабайтах, а также лишняя дробная часть после второго знака отсекается с помощью format.