Python-библиотеки, которые пригодятся каждому разработчику на Python | ФОРУМ СОЦИАЛЬНОЙ ИНЖЕНЕРИИ ⭐️MeHack⭐️ - Читы, базы, раздачи аккаунтов, сливы скриптов, способы заработка

Python-библиотеки, которые пригодятся каждому разработчику на Python

Тема в разделе "Python", создана пользователем devill86, 08.02.22.Просмотров: 246

  1. devill86 МультиМагнат

    devill86

    229 сообщения
    19 симпатий
    0
    розыгрышей
    3 года с нами
    10 месяцев с нами
    11 дней с нами

    150$ депозит

    Python-библиотеки, которые пригодятся каждому разработчику на Python

    pydantic
    Python является не типизированным языком программирования и с одной стороны — это его преимущество, которое способствует быстрому изучению и устанавливает низкий порог входа, но в какой-то момент, отсутствие типизации становится проблемой.

    С помощью pydantic и подсказок типов данных из PEP 484 можно превратить python в строго типизированный язык. Особенно полезно, когда в вашем приложении есть API, но нет контрактов.

    loguru
    Удобный логгер на смену стандартного logging. Помимо того, что не требует сложных конфигураций, обладает огромным количеством полезных фич и хорошо работает с асинхронным кодом.

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

    factory_boy
    Если вы покрываете свой код unit-тестами, то вам знакома ситуация, когда вы тратите время на генерацию тестовых данных и различных фикстур. Особенно актуально, когда вы используете ORM и у вас много моделей с большим количеством полей.
    Вместо того, чтобы тратить время на написание различных наборов данных и хелперов-генераторов, чтобы покрыть все возможные кейсы, достаточно создать фабрику, указать тестируемую модель и при вызове указать желаемое количество фикстур.

    pymystem3
    Отличная Python-библиотека для обработки естественного языка. В отличие от pymorphy2 не так хорошо приводит слово к нормальной форме, но прекрасно, и самое главное — очень быстро, определяет часть речи и лексемы слова. Работает только с русским языком.

    black
    Параллельно вместе с Python развивалось и соглашение о написании кода PEP8. Кодстайл — это неотъемлемая часть любого проекта, особенно когда вы работаете в команде. Чтобы следовать всем канонам требуется много времени и практики, но чтобы ваш код всегда выглядел так как надо, можно воспользоваться black.
    Этот автоформатер сэкономит ваше время, уменьшит количество замечаний на ревью и ваш код будет одинаковым всегда, независимо от проекта.

    • Flask — микро веб-фреймворк, который позволяет быстро делать сервисы и интегрировать наши решения. Имеет много полезных расширений. Подходит и для экспериментов, и для промышленного использования.
    • Keras — классный высокоуровневый API к TensorFlow. Позволяет сильно сэкономить время и сохранить код читабельным. Достаточно низкий порог входа по сравнению с чистым TF.
    • Numpy — очень удобный инструмент для работы с многомерными массивами и матрицами, незаменима в глубоком обучении.
    • Pillow — старая добрая Python-библиотека для работы с изображениями. Много форматов, пиксельные манипуляции, фильтры, эффекты.
    Python-библиотека для обнаружения дат — dateparser
    Спасительная библиотека, которая придёт на помощь, если нужно распознать дату из строк самых разных форматов. Будет полезна, если вы парсите веб-странички или какие-то логи из самых разных источников.
    Может распознавать как обычные варианты, например ‘2 марта 2021 в 15:00’, ‘2021-03-04 10:01:02 UTC+3’, так и такой экстрим как ‘через 5 дней’, ‘неделю назад’. Поддерживает множество языков.

    Python-библиотека для создания прогресс баров tqdm
    Иногда нужно запустить скрипт, который обрабатывает много данных (это может быть management команда для Django или просто скрипт для конвертации большого числа файлов). Если в консоли ничего не происходит, то через какое-то время кажется, что скрипт завис, непонятно, с какой скоростью продвигается процесс, сколько ещё ждать.
    С помощью библиотеки tqdm можно быстро создавать индикаторы (прогресс бары) для отображения процесса работы. Из коробки интегрируется с IPython/Jupyter.

    retrying
    Удобная Python-библиотека, которая позволяет повторить вызов функционала в том случае, если он не был успешно завершен. Например, это может быть полезно тогда, когда необходимо повторить запрос к какому-либо внешнему сервису, если с первого раза не получилось до него «достучаться». Само собой вы можете изменять множество переменных, например, количество попыток, время ожидания попыток и так далее.

    faker
    Faker позволяет генерировать фиктивные данные по различным категориям. Например, имена, адреса, данные банковских карт, телефонные номера и так далее. Список категорий действительно обширный. Достаточно часто именно эта библиотека является необходимой при тестировании функционала.

    py-spy
    Рy-spy — это сэмплирующий профилировщик Python приложений. Отличительной особенностью этого профилировщика является то, что он позволяет подключиться к уже работающему приложению, которое необходимо проанализировать, без добавления какого-либо кода. Инструмент предоставляет возможность в реальном времени наблюдать за тем, что в данный момент выполняется и сколько времени это занимает, накапливать информацию о работающем приложении и использовать эту информацию например для генерации flamegraph. Очень полезно, когда нужно найти проблему в приложении «здесь и сейчас», либо, когда нет возможности изменять код для интеграции с другими профилировщиками.

    freezegun
    Бывают ситуации, когда необходимо написать тесты для функциональности, которая имеет разное поведение в зависимости от текущего времени/даты. Этот инструмент как раз для таких случаев. Он позволяет зафиксировать время на том значении, которое необходимо, путем подмены модуля datetime.

    funcy
    Также неплохая библиотека, которая содержит в себе набор функциональных утилит.