- Регистрация
- 14.07.18
- Сообщения
- 548
- Онлайн
- 34д 2ч 1м
- Сделки
- 2
- Нарушения
- 0 / 6
pydantic
Python является не типизированным языком программирования и с одной стороны — это его преимущество, которое способствует быстрому изучению и устанавливает низкий порог входа, но в какой-то момент, отсутствие типизации становится проблемой.
С помощью pydantic и подсказок типов данных из PEP 484 можно превратить python в строго типизированный язык. Особенно полезно, когда в вашем приложении есть API, но нет контрактов.
loguru
Удобный логгер на смену стандартного logging. Помимо того, что не требует сложных конфигураций, обладает огромным количеством полезных фич и хорошо работает с асинхронным кодом.
Разноцветный вывод логов в консоль, информативные трейсбэки с разными уровнями и подсказками, удобный встроенный парсер логов, поддержка многопоточности и потокобезопасность — это малая доля функциональности этой прекрасной Python-библиотеки. По простоте использования она сравнима с обычным принтом, но по функциональности это целая ракета.
factory_boy
Если вы покрываете свой код unit-тестами, то вам знакома ситуация, когда вы тратите время на генерацию тестовых данных и различных фикстур. Особенно актуально, когда вы используете ORM и у вас много моделей с большим количеством полей.
Вместо того, чтобы тратить время на написание различных наборов данных и хелперов-генераторов, чтобы покрыть все возможные кейсы, достаточно создать фабрику, указать тестируемую модель и при вызове указать желаемое количество фикстур.
pymystem3
Отличная Python-библиотека для обработки естественного языка. В отличие от pymorphy2 не так хорошо приводит слово к нормальной форме, но прекрасно, и самое главное — очень быстро, определяет часть речи и лексемы слова. Работает только с русским языком.
black
Параллельно вместе с Python развивалось и соглашение о написании кода PEP8. Кодстайл — это неотъемлемая часть любого проекта, особенно когда вы работаете в команде. Чтобы следовать всем канонам требуется много времени и практики, но чтобы ваш код всегда выглядел так как надо, можно воспользоваться black.
Этот автоформатер сэкономит ваше время, уменьшит количество замечаний на ревью и ваш код будет одинаковым всегда, независимо от проекта.
Спасительная библиотека, которая придёт на помощь, если нужно распознать дату из строк самых разных форматов. Будет полезна, если вы парсите веб-странички или какие-то логи из самых разных источников.
Может распознавать как обычные варианты, например ‘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
Также неплохая библиотека, которая содержит в себе набор функциональных утилит.
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-библиотека для работы с изображениями. Много форматов, пиксельные манипуляции, фильтры, эффекты.
Спасительная библиотека, которая придёт на помощь, если нужно распознать дату из строк самых разных форматов. Будет полезна, если вы парсите веб-странички или какие-то логи из самых разных источников.
Может распознавать как обычные варианты, например ‘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
Также неплохая библиотека, которая содержит в себе набор функциональных утилит.