TGINSIGHT CHAT
Python Academy
@python_academy
EducaciónPython Academy — один канал вместо тысячи учебников Чат канала: @python_academy_chat Сотрудничество: @zubar89 Канал включён в перечень РКН: https://rkn.link/TVu
Posts recientes
Etiqueta: #python · 330 posts
PyJWT: Работаем с JSON Web Tokens в Python PyJWT — это библиотека Python, предназначенная для кодирования, декодирования и проверки подлинности JSON Web Tokens (JWT). JWT — это открытый стандарт (RFC 7519), который определяет компактный и независимый способ безопасной передачи информации между сторонами в виде JSON-объекта. Эта информация может быть проверена и доверена, так как она подписана цифровой подписью. В этом примере мы создаём JWT, который содержит идентификаторпользователя и срок его действия. Затем мы декодируем и проверяем токен, чтобы убедиться, что он ещё действителен и подлинен. #python#pyjwt
Отладка утечек памяти в Python приложении Для отладки утечек памяти в Python можно использовать инструменты, такие как Memory Profiler и objgraph. Эти инструменты помогут вам выявить, какие объекты удерживают ссылки и могут вызывать утечки памяти. Memory Profiler позволяет получить детальный отчет о потреблении памяти в каждой строке кода вашего скрипта. Чтобы воспользоваться этим инструментом, запустите вашу программу с помощью следующей команды: python -m memory_profiler my_script.py objgraphпомогает визуализировать ссылки между объектами, что позволяет легкопонять, какие объекты удерживают ссылки на другие объекты. Например, следующий код создаст изображение my_list.png, на котором будут показаны все объекты, на которые ссылается my_list, и все объекты, которые ссылаются на них. Оба инструмента просты в использовании и предоставляют мощныесредства для выявления и устранения утечек памяти в вашем приложении. #python#memoryprofiler#objgraph
Hashtags
Режим разработки Оказывается, еще в Python 3.7 появилась возможность запускать скрипты со специальным флагом -X для указания различных вариантов реализации. Например, -X dev запускает скрипт в режиме разработки с функциями отладки и runtime-проверки, которые не используются по умолчанию из-за своей медлительности. Также этот режим выводит дополнительные предупреждения в следующих случаях: — Незакрытые файлы; — Unawaited корутины; — Неизвестная кодировка для str.encode; — Проблемы с выделением памяти. В целом, классная штука и имеет смысл периодически запускать скрипты в таком режиме, чтобы не упустить никакие баги. #python
Hashtags
Модуль warnings Модуль warnings предоставляет возможность управления предупреждениями, которые могут быть выведены во время выполнения программы. Модуль warnings полезен, когда необходимо предупредить пользователя о каком-либо условии в программе и это условие не требует создания исключения и завершения программы. Кроме того, вы можете настроить различные параметры для управления предупреждениями, такие как фильтрация предупреждений определенного типа или их преобразование в ошибки. #python
Hashtags
memoryview() memoryview() в Python предоставляет объект для доступа к внутреннему представлению данных в виде буфера без копирования. Этот объект позволяет вам просматривать байты объекта, не копируя их, а также выполнять различные операции на уровне байтов. memoryview() также может использоваться для работы с массивами и другими объектами, поддерживающими буферный интерфейс в Python. Этот инструмент особенно полезен, когда вам нужно работать с большим объемом данных, и вы хотите избежать копирования данных, что может быть затратным с точки зрения времени и ресурсов. #python
Hashtags
Как перезагрузить импортированный модуль? Чтобы перезагрузить импортированный модуль в Python, вы можете использовать функцию reload() из модуля importlib Замените module_name на фактическое имя модуля, который вы хотите перезагрузить. Это может быть полезно при разработке и тестировании модулей, но нерекомендуется использовать в проде без серьезных причин. #python#importlib
Hashtags
Функция math.perm() math.perm() используется для определения количества возможных способов выбора и расположения m элементов из набора n элементов. Этот метод включен в модуль math. Он требует указания двух параметров: n — общеечисло элементов в наборе, и m — число элементов в каждойвозможнойвыборке. Результатом выполнения функции является целочисленное значение, представляющее число таких перестановок. Если n меньше m, функция возвратит 0. Пример использования: расчет количества перестановок трех элементов изпяти. Это демонстрирует, сколько существует вариантов формирования трехэлементных подмножеств изпятерки. #python
Hashtags
Kivy Kivy - это мощныйкроссплатформенный фреймворк для разработки графических интерфейсов пользователя (GUI). Основное его преимущество заключается в универсальности: созданные при помощи Kivy приложения могут запускаться на различных операционных системах, включая Windows, macOS, Linux, а также мобильные платформы Android и iOS. #python#kivy
Автоматизируем браузер с Pyppeteer Pyppeteer — это Python-библиотека, позволяющая управлятьбраузером с помощью инструмента Puppeteer, изначально разработанного для Node.js. Puppeteer предоставляет возможность автоматизироватьвзаимодействие с веб-страницами, выполнятьсценарии на основе браузера, делатьскриншоты, создаватьPDF-файлы и многоедругое. Пример использования Pyppeteer для выполнения поиска в Google и сохранения результатов в виде скриншота доступен на фото. #python#pyppeteer
Hashtags
Зачем использовать pdb pdb — это интерактивныйотладчикPython, который позволяет пользователю управлятьвыполнениемпрограммы: перемещаться по коду, просматривать и изменять значения переменных, пошагово проходить через код, включая вложенные структуры, устанавливать точкиостановок и выполнять другие типичные действия для отладки. Этот модуль обладает интерфейсом командной строки, с помощью которого можноуправлять выполнением кода на Python в реальномвремени. Чтобы активировать режим pdb в вашей программе, достаточно добавить следующую строку кода. #python#pdb
Поверхностное копирование Копирование объектов может быть «поверхностное» (shallow) или «глубокое» (deep). Различия между ними заключаются в том, как обрабатываются вложенные объекты. При поверхностном копировании создается новый объект, но его внутренние элементы (если они тоже являются объектами) остаются ссылками на те же объекты, что и в оригинале. Другими словами, копируются только ссылки на объекты, но не сами объекты. #python
Hashtags
Тестирование на pytest pytest — ближе по духу к языку Python нежели unittest, которая накладывает определенные обязательства при разработке тестов. Например, создание классов-наследников от TestCase или выполнение определенной процедуры запуска тестов. Но при разработке на pytest ничего этого делать не нужно. Вы просто пишете функции, которые должны начинаться с "test_" и используете assert, встроенные в Python. Также он поддерживает запуск тестов на unittest и nose, то есть полная обратная совместимость с ними. #python#pytest#assert