Логирование в Python используя Loguru
Сегодня мы расскажем вам о библиотеке
Что такое
Преимущества
1. Простота использования:
2. Гибкость: Вы можете легко настраивать формат вывода, выбирать уровни логирования и добавлять собственные обработчики.
3. Автоматическая ротация: Библиотека автоматически управляет ротацией лог-файлов, предотвращая переполнение дискового пространства.
4. Поддержка различных форматов вывода:
#python #loguru #логирование
Сегодня мы расскажем вам о библиотеке
loguru
, которая предоставляет простые и эффективные средства для логирования ваших приложений на Python
. loguru
призвана упростить процесс создания и анализа логов, делая его более интуитивно понятным и гибким.Что такое
loguru
?loguru
- это библиотека для логирования в Python
, созданная с упором на простоту использования и выразительность. Она предоставляет удобный синтаксис для настройки логирования и поддерживает различные форматы вывода, а также обеспечивает автоматическую ротацию лог-файлов.Преимущества
loguru
:1. Простота использования:
loguru
предлагает чистый и интуитивно понятный синтаксис для логирования, что упрощает его внедрение в ваши проекты.2. Гибкость: Вы можете легко настраивать формат вывода, выбирать уровни логирования и добавлять собственные обработчики.
3. Автоматическая ротация: Библиотека автоматически управляет ротацией лог-файлов, предотвращая переполнение дискового пространства.
4. Поддержка различных форматов вывода:
loguru
поддерживает вывод в различных форматах, включая JSON, CSV, и прочие.#python #loguru #логирование
Метод join у строк
У строк есть полезный метод
Как результат получаем новую строку, которая является объединением всех элементов. При этом они разделены строкой, к которой изначально применялся метод.
Проще говоря, если применить к строке этот метод, то она станет разделителем для элементов в новой строке.
#строки
У строк есть полезный метод
str.join()
, который принимает на вход итерируемый объект, элементами которого также должны быть строки.Как результат получаем новую строку, которая является объединением всех элементов. При этом они разделены строкой, к которой изначально применялся метод.
Проще говоря, если применить к строке этот метод, то она станет разделителем для элементов в новой строке.
#строки
Введение в машинное обучение с библиотекой Scikit-Learn в Python
Сегодня мы поговорим о машинном обучении и о библиотеке
Что такое
Для чего можно использовать
1. Классификация:
2. Регрессия:
3. Кластеризация: Для задач кластеризации,
Сегодня мы поговорим о машинном обучении и о библиотеке
Scikit-Learn
, которая является мощным инструментом для создания и обучения моделей машинного обучения в Python
. Scikit-Learn
предоставляет широкий спектр алгоритмов и инструментов для задач классификации, регрессии, кластеризации, и многих других. Это отличное введение в мир машинного обучения.Что такое
Scikit-Learn
?Scikit-Learn (sklearn)
- это библиотека машинного обучения для Python
, которая предоставляет простой и единый интерфейс для множества алгоритмов машинного обучения. Она поддерживает задачи как классификации, так и регрессии, а также кластеризации, извлечение признаков, и многое другое. Scikit-Learn
также включает в себя множество инструментов для предобработки данных и оценки производительности моделей.Для чего можно использовать
Scikit-Learn
?1. Классификация:
Scikit-Learn
предоставляет множество алгоритмов классификации, таких как метод опорных векторов (SVM), случайные леса, наивный байесовский классификатор, логистическая регрессия и другие. Эти алгоритмы позволяют решать задачи бинарной и многоклассовой классификации.2. Регрессия:
Scikit-Learn
поддерживает регрессию, что позволяет создавать модели для прогнозирования числовых значений. Линейная регрессия, регрессия на основе деревьев, и множество других методов доступны для решения задач регрессии.3. Кластеризация: Для задач кластеризации,
Scikit-Learn
предоставляет алгоритмы, такие как K-средних, иерархическая кластеризация, агломеративная кластеризация и многое другое. Эти методы позволяют группировать данные на основе их сходства.Scikit-Learn
предоставляет множество инструментов для выбора, настройки и оценки моделей машинного обучения. Она идеально подходит для начинающих и опытных разработчиков, желающих погрузиться в мир машинного обучения.Локализация в Python с помощью модуля gettext
В процессе разработки программ иногда необходимо предоставить поддержку разных языков. Модуль
Что такое
Пример использования
В данном примере мы используем модуль
Создание файлов перевода:
Для создания файлов перевода можно воспользоваться утилитой
#python #gettext #i18n
В процессе разработки программ иногда необходимо предоставить поддержку разных языков. Модуль
gettext
в Python
предоставляет удобный механизм локализации, который позволяет адаптировать ваше приложение для различных языковых сообществ.Что такое
gettext
?gettext
- это модуль Python
, предназначенный для обеспечения поддержки интернационализации и локализации. Он позволяет создавать переводы строк на различные языки, обеспечивая легкость адаптации приложения под разные культурные контексты.Пример использования
gettext
:import gettext
from pathlib import Path
translations = gettext.translation('your_app', localedir=Path('locales'), languages=['ru'])
translations.install()
print(_("Hello, gettext!"))
В данном примере мы используем модуль
gettext
для загрузки файлов перевода из директории 'locales' для русского языка. Функция _()
используется для обозначения строк, подлежащих локализации.Создание файлов перевода:
Для создания файлов перевода можно воспользоваться утилитой
pybabel
:pybabel extract -F babel.cfg -o messages.pot your_app
pybabel init -i messages.pot -d locales -l ru
gettext
также предоставляет множество возможностей для более сложных сценариев локализации, таких как форматирование чисел, дат и поддержка множественных форм.#python #gettext #i18n
Асинхронные запросы с aiohttp
Модуль
Установка
Модуль
#модули
Модуль
aiohttp
представляет из себя асинхронный HTTP клиент/сервер для asyncio
и Python. Он позволяет выполнять асинхронные HTTP запросы, что делает его идеальным инструментом для современных приложений, где требуется высокая производительность и параллелизм.Установка
aiohttp
производится через pip. Чтобы начать делать асинхронные запросы, вам потребуется взаимодействовать с ним с помощью синтаксиса async/await
. Запросы, такие как GET, POST, PUT и DELETE, оформляются чисто и ясно. Объекты ответов содержат все необходимые атрибуты для обработки ответов от сервера.Модуль
aiohttp
подходит не только для работы с асинхронными веб-сервисами, но и для асинхронного скрапинга веб-страниц.#модули
Проверка отношения классов
Для того, чтобы проверить отношения двух классов или экземпляров (является ли класс классом наследником), есть две простые встроенные функции
Данные функции зачастую применяются в ООП.
#isinstance #issubclass
Для того, чтобы проверить отношения двух классов или экземпляров (является ли класс классом наследником), есть две простые встроенные функции
isinstance(object, classinfo)
и issubclass(class, classinfo)
.instance
- возвращает True, если объект является экземпляром класса либо экземпляром подкласса данного класса.issubclass
— проверяет является ли класс наследником другого класса.Данные функции зачастую применяются в ООП.
#isinstance #issubclass
Простой, но мощный веб-фреймворк
Самым популярным фреймворком для разработки серверной части на Python является Flask. К слову, он обгоняет даже Django по звездам на GitHub.
Flask предназначен для быстрого и легкого старта работы с возможностью масштабирования до сложных приложений. А коммьюнити предоставляет множество расширений для фреймворка.
Для создания минимального рабочего приложения достаточно кода выше. После запуска такого скрипта можете перейти в браузере по адресу
#модули
Самым популярным фреймворком для разработки серверной части на Python является Flask. К слову, он обгоняет даже Django по звездам на GitHub.
Flask предназначен для быстрого и легкого старта работы с возможностью масштабирования до сложных приложений. А коммьюнити предоставляет множество расширений для фреймворка.
Для создания минимального рабочего приложения достаточно кода выше. После запуска такого скрипта можете перейти в браузере по адресу
http://localhost:5000/
и посмотреть результат. #модули
Работаем с картинками в Python
Библиотека Pillow — это очень мощный, быстрый и удобный инструмент для обработки графики в Python.
В сегодняшнем примере мы применим ее для конвертации картинки в черно-белую, обратим цвета, вертикально отзеркалим и сохраним в файл.
Метод
Больше официальных примеров и документацию можно посмотреть тут.
Пример можно посмотреть тут.
#pillow
Библиотека Pillow — это очень мощный, быстрый и удобный инструмент для обработки графики в Python.
В сегодняшнем примере мы применим ее для конвертации картинки в черно-белую, обратим цвета, вертикально отзеркалим и сохраним в файл.
Метод
Image.open('resources/img/cat.jpg')
считывает картинку из папки. img.convert('L')
трансформирует картинку в черно-белую. ImageOps.invert(image)
обращает цвета. img.transpose(Image.FLIP_LEFT_RIGHT)
вертикально отзеркаливает картинку. img.save('grayscale_cat.jpg')
сохранит картинку на диске. Больше официальных примеров и документацию можно посмотреть тут.
Пример можно посмотреть тут.
#pillow
Слияние аудио и видео потоков
Проблема с получением видео в высоком качестве со звуком с
Решением является отдельное получение аудио и видео потоков и их последующее объединение с использованием программы
Необходимо выбрать соответствующие аудио и видео потоки, затем использовать полученные
#python #ffmpeg #pytube
Проблема с получением видео в высоком качестве со звуком с
YouTube
связана с использованием технологии DASH (Dynamic Adaptive Streaming over HTTP)
, которая не предусматривает наличие звуковой дорожки в потоке.Решением является отдельное получение аудио и видео потоков и их последующее объединение с использованием программы
ffmpeg
.Необходимо выбрать соответствующие аудио и видео потоки, затем использовать полученные
URL
в команде ffmpeg
для запуска процесса загрузки и слияния потоков.#python #ffmpeg #pytube
Дробные числа
По умолчанию числа с плавающей точкой используют память привычным образом, то есть они хранятся в двоичном виде. Это означает, что вы обычно работаете с приблизительными значениями, а не точными.
Можно использовать тип данных
Поэтому для идеальных вычислений лучше использовать
#числа #fraction
По умолчанию числа с плавающей точкой используют память привычным образом, то есть они хранятся в двоичном виде. Это означает, что вы обычно работаете с приблизительными значениями, а не точными.
Можно использовать тип данных
Decimal
, который предоставит намного большую точность, но и его может не хватить в некоторых случаях. Поэтому для идеальных вычислений лучше использовать
Fraction
, который представляет и хранит число в виде рациональной дроби.#числа #fraction
Функция itertools.chain()
Функция
Например, код сверху объединяет две строки в одну.
#python
Функция
itertools.chain()
в Python объединяет несколько итераторов в один. Она принимает в качестве аргумента один или несколько итераторов, и возвращает итератор, который последовательно возвращает элементы из этих итераторов.Например, код сверху объединяет две строки в одну.
#python
Декоратор override
Это может быть полезно для:
— Повышения читабельности кода, так как сразу видно, какие методы переопределены.
— Выявления ошибок: если имя метода в дочернем классе не совпадает с именем в родительском, будет выдана ошибка.
— Проверки типов аргументов: декоратор гарантирует, что типы аргументов совпадают с базовым методом.
#python #decorators
@override
используется для переопределения методов в классах-наследниках. Он позволяет указать, что метод в подклассе переопределяет метод базового класса.Это может быть полезно для:
— Повышения читабельности кода, так как сразу видно, какие методы переопределены.
— Выявления ошибок: если имя метода в дочернем классе не совпадает с именем в родительском, будет выдана ошибка.
— Проверки типов аргументов: декоратор гарантирует, что типы аргументов совпадают с базовым методом.
#python #decorators
Перебираем все возможные 8 значные пароли состоящие из букв и цифр с помощью Python
В этом примере используется модуль
Обратите внимание, что перебор всех возможных 8-значных паролей может занять большое количество времени, особенно если количество символов в
#python #itertools
В этом примере используется модуль
itertools
, который позволяет генерировать все возможные комбинации символов из списка characters
длиной password_length
. Затем перебираются все комбинации и выводятся на экран.Обратите внимание, что перебор всех возможных 8-значных паролей может занять большое количество времени, особенно если количество символов в
characters
большое. Будьте осторожны и убедитесь, что ваше намерение соответствует законам и этическим правилам.#python #itertools
Управление версионностью Python с помощью pyenv
Инструмент pyenv предоставляет простой способ для переключения между различными версиями Python, придерживаясь принципов UNIX, согласно которым каждый инструмент должен эффективно выполнять свою задачу.
Возможности
- Изменение глобальной версии
- Управление версиями
- Переопределение версии
- Поиск и выполнение команд сразу из нескольких версий
#pyenv
Инструмент pyenv предоставляет простой способ для переключения между различными версиями Python, придерживаясь принципов UNIX, согласно которым каждый инструмент должен эффективно выполнять свою задачу.
Возможности
pyenv
включают:- Изменение глобальной версии
Python
для пользователя;- Управление версиями
Python
для индивидуальных проектов;- Переопределение версии
Python
через переменную среды;- Поиск и выполнение команд сразу из нескольких версий
Python
.#pyenv
This media is not supported in your browser
VIEW IN TELEGRAM
Создаем интерактивные веб-приложения с Streamlit
Создав приложение, вы можете использовать облачную платформу Community Cloud для развертывания, управления и распространения приложения.
Почему стоит выбрать Streamlit?
— Простота и питоничность: Пишите красивый, легко читаемый код.
— Быстрое интерактивное создание прототипов: Позвольте другим людям взаимодействовать с вашими данными и быстро предоставлять отзывы.
— Редактирование в реальном времени: Видите, как ваше приложение мгновенно обновляется по мере редактирования кода.
#python #streamlit
Streamlit
позволяет превращать скрипты Python
в интерактивные веб-приложения за считанные минуты, а не за недели. Создавайте информационные панели, генерируйте отчеты или создавайте приложения для чата. Создав приложение, вы можете использовать облачную платформу Community Cloud для развертывания, управления и распространения приложения.
Почему стоит выбрать Streamlit?
— Простота и питоничность: Пишите красивый, легко читаемый код.
— Быстрое интерактивное создание прототипов: Позвольте другим людям взаимодействовать с вашими данными и быстро предоставлять отзывы.
— Редактирование в реальном времени: Видите, как ваше приложение мгновенно обновляется по мере редактирования кода.
#python #streamlit
Получаем и задаем лимит рекурсии
В Python не оптимизируется хвостовая рекурсия, из-за чего зачастую возникает
Но с помощью модуля
И вообще лучше стараться использовать не рекурсию, а обычные циклы, но это вы и так сами знаете.
#рекурсия #лимиты
В Python не оптимизируется хвостовая рекурсия, из-за чего зачастую возникает
RecursionError
во время создания рекурсивных алгоритмов. Но с помощью модуля
sys
можно посмотреть и даже изменить максимальную глубину рекурсии. Хотя делать это слегка опасно, так как каждый новый вызов занимает много памяти. И вообще лучше стараться использовать не рекурсию, а обычные циклы, но это вы и так сами знаете.
#рекурсия #лимиты
Упрощенная работа с JSON
Казалось бы, куда еще проще, но есть один интересный пакет
Основные примеры использования показаны на картинке, там нет ничего сложного. Метод
Вообще возможностей у пакета достаточно, поэтому он достоен изучения и применения в проектах. Подробнее советую почитать в документации.
#json #jmespath
Казалось бы, куда еще проще, но есть один интересный пакет
JMESpath
, который позволяет декларативно указать, как извлекать элементы из документа JSON. Основные примеры использования показаны на картинке, там нет ничего сложного. Метод
search
принимает паттерн, по которому требуется извлечь данные, а также словарь (который в общем-то похож на JSON). Вообще возможностей у пакета достаточно, поэтому он достоен изучения и применения в проектах. Подробнее советую почитать в документации.
#json #jmespath
Отправка писем с использованием SMTP в Python
Для начала соединения с почтовым сервером мы можем использовать класс
Чтобы авторизоваться на сервере, используем метод
Стоит учитывать, что некоторые почтовые сервисы могут иметь ограничения и дополнительные требования безопасности. Например, для работы с Gmail может понадобиться включить поддержку "доступа к ненадежным приложениям" и настроить двухфакторную аутентификацию.
#python #smtp
SMTP (Simple Mail Transfer Protocol)
- это протокол, который обеспечивает отправку электронных писем. В Python для работы с этим протоколом доступен модуль smtplib
из стандартной библиотеки.Для начала соединения с почтовым сервером мы можем использовать класс
SMTP_SSL
, который обеспечивает защищенное соединение. Этому классу мы передаем адрес сервера и порт.Чтобы авторизоваться на сервере, используем метод
login
, куда передаем логин и пароль пользователя. Для отправки электронной почты мы используем метод sendmail
. Он принимает адрес отправителя, адрес получателя и текст сообщения. Важно помнить, что после отправки сообщения необходимо закрыть соединение с сервером с помощью метода quit()
.Стоит учитывать, что некоторые почтовые сервисы могут иметь ограничения и дополнительные требования безопасности. Например, для работы с Gmail может понадобиться включить поддержку "доступа к ненадежным приложениям" и настроить двухфакторную аутентификацию.
#python #smtp
FFmpeg: Лучшее решение для обработки мультимедийных файлов
Для начала использования
Исходный код и документация доступны тут
FFmpeg
- это бесплатная и открытая библиотека и набор инструментов для обработки мультимедийных файлов. Она предоставляет мощные возможности для работы с видео, аудио и другими мультимедийными данными. FFmpeg
является одним из самых популярных и универсальных инструментов для обработки мультимедиа в мире.Для начала использования
FFmpeg
, вы можете установить библиотеку командой pip install ffmpeg-python
. После этого, вы можете создавать собственные скрипты для обработки видео и аудио файлов, определяя нужные операции и параметры. ffmpeg-python
обладает мощными возможностями для конвертации, обрезки, склеивания и многого другого.Исходный код и документация доступны тут
Selenium: Автоматизация веб-браузера в Python
Одним из ключевых преимуществ
Для начала работы с
С помощью
selenium
- это библиотека, предназначенная для автоматизации веб-браузера в языке программирования Python
. Она предоставляет удобные и эффективные средства для взаимодействия с веб-страницами, заполнения форм, нажатия кнопок и многих других действий, которые облегчают автоматизацию веб-процессов.Одним из ключевых преимуществ
selenium
является его гибкость и многофункциональность. Вы можете использовать эту библиотеку для создания скриптов, которые могут автоматизировать различные задачи в веб-браузере, такие как тестирование веб-приложений, сбор данных с веб-сайтов или даже управление аккаунтом в социальных сетях.Для начала работы с
selenium
, вам нужно установить библиотеку командой pip install selenium
. После установки, вы можете создавать скрипты, которые будут взаимодействовать с веб-сайтами, имитируя действия пользователя. selenium
предоставляет множество методов для работы с веб-элементами, что делает его одним из лучших инструментов для автоматизации веб-процессов.С помощью
selenium
, вы можете автоматизировать рутинные задачи в веб-браузере, что сэкономит вам время и уменьшит вероятность ошибок. Это также открывает возможности для тестирования и сбора данных, что может быть весьма полезно в различных сферах, начиная от веб-разработки и заканчивая маркетингом.FastAPI
FastAPI – фреймворк, про который однозначно стоит рассказать. Честно, синтаксис мне кажется намного приятнее, чем у других фреймворков.
Интересно, что автор фреймворка глубоко изучил несколько других фреймворков, от классических, таких как Django, до более современных, таких как Sanic, а также изучил различные технологии в NestJS (веб-фреймворк Node.js, Typescript).
Фреймворк имеет важную особенность – автоматическая генерация документации: как только ваши конечные точки будут реализованы, вы сможете поиграться с API, используя соответствующий стандартам пользовательский интерфейс. Поддерживаются SwaggerUI, ReDoc и другие.
FastAPI построен на удивительной библиотеке Starlette, в результате чего производительность сравнима с Node.js, а в некоторых случаях даже Go! В целом, складывается стойкое предчувствие, что FastAPI будет мчаться вперёд как лучший асинхронный фреймворк для Python.
#фреймворки #web
FastAPI – фреймворк, про который однозначно стоит рассказать. Честно, синтаксис мне кажется намного приятнее, чем у других фреймворков.
Интересно, что автор фреймворка глубоко изучил несколько других фреймворков, от классических, таких как Django, до более современных, таких как Sanic, а также изучил различные технологии в NestJS (веб-фреймворк Node.js, Typescript).
Фреймворк имеет важную особенность – автоматическая генерация документации: как только ваши конечные точки будут реализованы, вы сможете поиграться с API, используя соответствующий стандартам пользовательский интерфейс. Поддерживаются SwaggerUI, ReDoc и другие.
FastAPI построен на удивительной библиотеке Starlette, в результате чего производительность сравнима с Node.js, а в некоторых случаях даже Go! В целом, складывается стойкое предчувствие, что FastAPI будет мчаться вперёд как лучший асинхронный фреймворк для Python.
#фреймворки #web