Voluptuous
В этом примере мы определяем схему, которая ожидает словарь с двумя ключами:
После определения схемы мы выполняем валидацию. Если данные проходят ее, то возвращаются без изменений. Если данные не проходят валидацию, библиотека
Voluptuous — это библиотека для валидации данных. Она предназначена для валидации входящих данных в Python-приложениях, включая HTTP-запросы. Voluptuous также может быть использована для валидации структур данных, которые уже находятся внутри приложения.В этом примере мы определяем схему, которая ожидает словарь с двумя ключами:
'name' и 'age'. 'name' является обязательным ключом, и его значение должно быть строкой длиной не менее 1 символа. 'age' не является обязательным ключом, но если он присутствует, его значение должно быть целым числом, не меньшим 18.После определения схемы мы выполняем валидацию. Если данные проходят ее, то возвращаются без изменений. Если данные не проходят валидацию, библиотека
Voluptuous генерирует исключение.IceCream
В этом примере кода вывод
IceCream — это библиотека, которая предоставляет простой и эффективный способ отладки кода. Вместо того чтобы использовать функцию print() для отладки, вы можете использовать функцию ic() из библиотеки IceCream, которая позволяет вам инспектировать переменные, выражения и выполнение программы с помощью одного простого вызова функции.В этом примере кода вывод
ic| указывает на то, что это вывод от IceCream, а result: 6 — имя переменной и ее значение.IceCream может быть использован в любом месте, где требуется отладка кода: веб-разработка, научные вычисления, анализ данных и т.д.Bottleneck
В этом примере мы создаём 2D массив
Далее функция
Bottleneck - это библиотека, которая ускоряет работу методов NumPy в 25 раз. Особенно, если массив имеет значения NaN.В этом примере мы создаём 2D массив
NumPy с 1000 строками и 10 столбцами со случайными значениями.Далее функция
move_mean используется для вычисления скользящего среднего для каждой строки в массиве. Параметр window указывает количество значений, которые будут использоваться при вычислении каждого скользящего среднего, а параметр axis указывает ось, вдоль которой будет вычисляться скользящее среднее (в данном случае мы вычисляем его для каждой строки, поэтому устанавливаем axis=1).SciencePlots
Это может быть полезно для ученых, инженеров, студентов и любого, кто хочет создавать профессионально выглядящие графики в Python.
В этом примере мы устанавливаем стиль
SciencePlots - это библиотека, которая предоставляет стили для библиотеки Matplotlib, чтобы форматировать ваши графики для научных статей, презентаций и диссертаций. Это может быть полезно для ученых, инженеров, студентов и любого, кто хочет создавать профессионально выглядящие графики в Python.
В этом примере мы устанавливаем стиль
'science' из библиотеки scienceplots. Затем мы создаем данные для графика и строим график. В конце мы отображаем график с помощью plt.show().Узнаем длину кода в файле с помощью Python
В данном коде мы открываем файл '
Затем мы используем генератор списка, чтобы посчитать только те строки кода, которые не пустые (
В данном коде мы открываем файл '
file.py' для чтения и считываем все его строки в переменную lines. Затем мы используем генератор списка, чтобы посчитать только те строки кода, которые не пустые (
line.strip()) и не начинаются с символа комментария (not line.startswith('#')). Количество таких строк сохраняем в переменную code_lines и выводим ее значение с помощью функции print.Создаем простое веб-приложение с помощью Molten
В этом примере мы создаем простое веб-приложение с одним маршрутом ("/"), который возвращает приветственное сообщение в формате JSON. Мы затем запускаем это приложение на локальном сервере на порту 8000.
Molten — это современный фреймворк для создания API на Python. Он предлагает ряд функций, которые делают разработку API более удобной и эффективной.Molten может быть использован для создания любого веб-приложения или API, которое требует высокой степени модульности и тестируемости. Он особенно полезен для создания RESTful API.В этом примере мы создаем простое веб-приложение с одним маршрутом ("/"), который возвращает приветственное сообщение в формате JSON. Мы затем запускаем это приложение на локальном сервере на порту 8000.
WhatWaf — это инструмент для обнаружения веб-защиты, который помогает определить, использует ли веб-сервер WAF (Web Application Firewall) и какой именно. Основные возможности
WhatWaf:Определение и обход веб-защиты, поддержка 89 систем веб-защиты, возможность использования 36 сценариев искажения, поддержка работы через прокси, включая Tor, возможность использования собственных полезных нагрузок для запросов обнаружения, возможность кодирования полезных нагрузок с использованием предоставленного сценария искажения, возможность сохранения результатов в различных форматах (JSON, YAML, CSV).
В этом примере мы используем
WhatWaf для определения WAF на сайте http://testphp.vulnweb.com. После выполнения этого кода WhatWaf выполнит запросы к указанному сайту и попытается определить, какой WAF используется. Результаты будут выведены в консоль.Pywebview
В этом примере мы создаем окно с заголовком "Hello world" и открываем в нем веб-страницу
После запуска этого кода вы увидите окно приложения с заголовком "Hello world", в котором открывается веб-страница
*Обратите внимание, что
Pywebview — это библиотека, которая позволяет отображать HTML, CSS и JavaScript контент в собственном окне приложения. Она предоставляет простой способ создания настольных приложений с использованием веб-технологий.Pywebview может быть полезна в различных сценариях, включая:- Создание настольных интерфейсов для веб-приложений.- Встраивание веб-контента в настольное приложение.- Создание простых настольных приложений с использованием веб-технологий.В этом примере мы создаем окно с заголовком "Hello world" и открываем в нем веб-страницу
https://www.google.com. Функция webview.start() запускает функцию start в главном потоке, что обеспечивает корректное отображение окна.После запуска этого кода вы увидите окно приложения с заголовком "Hello world", в котором открывается веб-страница
https://www.google.com.*Обратите внимание, что
Pywebview не предоставляет собственного веб-движка, а использует веб-движки, доступные в операционной системе (MSHTML на Windows, WebKit на macOS и Linux).Фреймворк Python-nubia
Основные особенности Python-nubia:
В этом примере мы создаем команду
Python-nubia — это легковесный фреймворк для построения командных строк и интерактивных интерфейсов оболочки. Он был разработан в Facebook и используется во многих их продуктах для автоматизации, отладки и обслуживания.Основные особенности Python-nubia:
- Поддержка как командной строки, так и интерактивного режима.- Автоматическое создание документации для команд.- Поддержка автоматического дополнения в интерактивном режиме.- Возможность создания пользовательских команд и плагинов.Python-nubia может быть полезен в различных областях, включая автоматизацию процессов, мониторинг, отладку и тестирование.В этом примере мы создаем команду
hello, которая принимает один аргумент name. Когда вы запустите это приложение и введете hello YourName в интерактивном режиме, оно вернет Hello, YourName!.Cirq
Результаты кода из примера представляют собой гистограмму измерений, где ключи - это возможные результаты измерения, а значения - это количество раз, когда был получен каждый результат.
Cirq — это библиотека, разработанная Google для квантовых вычислений. Она предназначена для создания, редактирования и вызова Noisy Intermediate Scale Quantum (NISQ) цепей. NISQ — это квантовые компьютеры, которые имеют от 50 до 100 кубитов и могут быть доступны в ближайшие годы.Cirq позволяет пользователям определять квантовые цепи и симулировать их на классических компьютерах, а также предоставляет возможность запускать эти цепи на реальном квантовом оборудовании.Результаты кода из примера представляют собой гистограмму измерений, где ключи - это возможные результаты измерения, а значения - это количество раз, когда был получен каждый результат.
Pampy
Библиотека
Здесь мы используем функцию
Если
Если
Если
Теперь, если мы вызовем функцию
Библиотека
Pampy — это инструмент для сопоставления с образцом (pattern matching), который может упростить написание кода и сделать его более читаемым. Она может использоваться в различных ситуациях, таких как обработка разных типов данных, реализация рекурсивных функций и многое другое.Здесь мы используем функцию
match из библиотеки Pampy для сопоставления аргумента n с различными образцами. Образцы проверяются в том порядке, в котором они указаны:Если
n равно 1, функция возвращает 1.Если
n равно 2, функция возвращает 1.Если
n не соответствует ни одному из предыдущих образцов (обозначается символом _), функция вызывает себя рекурсивно с аргументами x-1 и x-2 и возвращает их сумму.Теперь, если мы вызовем функцию
fibonacci с аргументом 6, получим результат 8, поскольку шестое число Фибоначчи равно 8.Модуль transliterate
Модуль transliterate представляет собой двунаправленный транслитератор текста для Python.
Транслитерирует (unicode) строки в соответствии с правилами, указанными в языковых пакетах, то есть заменяет все русские буквы на английские и наоборот по правилам транслитерации.
Выше представлена транслитерация текста с английского на русский, т.е. замена всех английских букв на русские.
Модуль transliterate представляет собой двунаправленный транслитератор текста для Python.
Транслитерирует (unicode) строки в соответствии с правилами, указанными в языковых пакетах, то есть заменяет все русские буквы на английские и наоборот по правилам транслитерации.
Выше представлена транслитерация текста с английского на русский, т.е. замена всех английских букв на русские.
Обмен значениями при помощи кортежей
Один из популярных трюков в Python – обмен значениями без создания временной переменной. Способ применим для любого числа переменных.
В правой части инструкции присваивания последовательностей допускается указывать любые итерируемые объекты. Главное, чтобы число элементов слева равнялось числу элементов справа. Такое присваивание применяется и для сложных вложенных конструкций.
Один из популярных трюков в Python – обмен значениями без создания временной переменной. Способ применим для любого числа переменных.
В правой части инструкции присваивания последовательностей допускается указывать любые итерируемые объекты. Главное, чтобы число элементов слева равнялось числу элементов справа. Такое присваивание применяется и для сложных вложенных конструкций.
Узнаем информацию о номере телефона
phonenumbers - один из модулей, который предоставляет множество функций, таких как предоставление базовой информации о номере телефона, проверка номера телефона и т.д.
Установка модуля -
В нашем примере мы узнаем что «+91987654З210» является Индийским номером телефона.
Больше информации вы можете найти здесь.
phonenumbers - один из модулей, который предоставляет множество функций, таких как предоставление базовой информации о номере телефона, проверка номера телефона и т.д.
Установка модуля -
pip install phonenumbers.В нашем примере мы узнаем что «+91987654З210» является Индийским номером телефона.
Больше информации вы можете найти здесь.
Узнаём курс доллара при помощи Python в 2 строчки
Пакет
Пакет
forex-python позволяет получать данные о курсе валют и конвертировать одну валюту в другую. Программа на картинке позволяет нам узнать курс доллара относительно многих других валют мира. Вместо "USD" можно вставить любую другую валюту и получить актуальное соотношение.Протоколы
Термины "протокол итератора" или "протокол дескрипторов" уже привычны и используются давно. Но теперь можно описывать протоколы в виде кода и проверять их соответствие на этапе статического анализа.
Протокол описывается как обычный класс, наследующийся от
Хоть это и не совсем интерфейсы, но все же классная штука. Еще важно, что протоколы, как и все остальные фишки аннотаций типов, используются в основном со статически типизированным
#typing #аннотации
Термины "протокол итератора" или "протокол дескрипторов" уже привычны и используются давно. Но теперь можно описывать протоколы в виде кода и проверять их соответствие на этапе статического анализа.
Протокол описывается как обычный класс, наследующийся от
Protocol. Он может иметь методы (в том числе с реализацией) и поля. Реальные классы, реализующие протокол могут наследоваться от него, но это не обязательно, как показано в примере. Хоть это и не совсем интерфейсы, но все же классная штука. Еще важно, что протоколы, как и все остальные фишки аннотаций типов, используются в основном со статически типизированным
mypy. #typing #аннотации
Превращаем PDF в текст
Думаю, все периодические работают с PDF-документами. И зачастую это ручная и скучная работа. Но Python может автоматизировать даже такую рутинную задачу.
Модуль
Кстати, здесь ещё интересно то, что исходный код модуля написан на C++. Поэтому есть небольшая вероятность, что придётся повоевать с зависимостями.
Думаю, все периодические работают с PDF-документами. И зачастую это ручная и скучная работа. Но Python может автоматизировать даже такую рутинную задачу.
Модуль
pdftotext создан именно для работы с документами в PDF формате. Устанавливается он через пакетный менеджер pip, а использовать его проще простого. Все основные операции представлены на картинке выше. Кстати, здесь ещё интересно то, что исходный код модуля написан на C++. Поэтому есть небольшая вероятность, что придётся повоевать с зависимостями.