Senior Python Developer
46.7K subscribers
1.97K photos
3 videos
1 file
485 links
№ 4931117861
Публикуем интересные/полезные фичи/библиотеки языка.

По вопросам сотрудничества: @adv_and_pr

Канал на бирже:
https://telega.in/c/seniorpy
Download Telegram
SciencePlots

SciencePlots - это библиотека, которая предоставляет стили для библиотеки Matplotlib, чтобы форматировать ваши графики для научных статей, презентаций и диссертаций.

Это может быть полезно для ученых, инженеров, студентов и любого, кто хочет создавать профессионально выглядящие графики в Python.

В этом примере мы устанавливаем стиль 'science' из библиотеки scienceplots. Затем мы создаем данные для графика и строим график. В конце мы отображаем график с помощью plt.show().
Узнаем длину кода в файле с помощью Python

В данном коде мы открываем файл 'file.py' для чтения и считываем все его строки в переменную lines.

Затем мы используем генератор списка, чтобы посчитать только те строки кода, которые не пустые (line.strip()) и не начинаются с символа комментария (not line.startswith('#')). Количество таких строк сохраняем в переменную code_lines и выводим ее значение с помощью функции print.
Яндекс создаёт продукты и сервисы для миллионов пользователей. Нейросетевой поиск, умные устройства, машинный перевод — задачи, где нет готовых решений.

Поэтому нам нужны сильные бэкенд-разработчики! Если у вас от 5 лет опыта на C++, Python, Java или Go — участвуйте в Мультитреке.

Как это работает
• Подаёте заявку до 18 августа
• Проходите технические секции 23 и 24 августа
• Получаете офер 24 августа

После найма мы предложим поработать в трёх командах несколько недель. Будет время погрузиться в работу, прочувствовать атмосферу и выбрать проект, который вам больше подходит.

Узнайте подробности и оставьте заявку.
Создаем простое веб-приложение с помощью Molten

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

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 — это легковесный фреймворк для построения командных строк и интерактивных интерфейсов оболочки. Он был разработан в 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.
Самый часто встречаемый элемент списка

Данная функция most_frequent возвращает элементы, появляющиеся в списке чаще остальных.
Функция calendar.isleap(year) и calendar.leapdays(y1, y2)

Функция calendar.isleap() возвращает True, если год year является високосным, в противном случае False.

Функция calendar.leapdays() возвращает количество високосных лет в диапазоне от y1 до y2 (исключая), где y1 и y2 - годы.
Модуль transliterate

Модуль transliterate представляет собой двунаправленный транслитератор текста для Python.

Транслитерирует (unicode) строки в соответствии с правилами, указанными в языковых пакетах, то есть заменяет все русские буквы на английские и наоборот по правилам транслитерации.

Выше представлена транслитерация текста с английского на русский, т.е. замена всех английских букв на русские.
Обмен значениями при помощи кортежей

Один из популярных трюков в Python – обмен значениями без создания временной переменной. Способ применим для любого числа переменных.

В правой части инструкции присваивания последовательностей допускается указывать любые итерируемые объекты. Главное, чтобы число элементов слева равнялось числу элементов справа. Такое присваивание применяется и для сложных вложенных конструкций.
Метод setdefault()

Метод словаря setdefault() возвращает значение указанного ключа, если он присутствует. Если ключ отсутствует, метод setdefault() вставляет пару key:value со значением по умолчанию и возвращает значение по умолчанию.
Узнаем информацию о номере телефона

phonenumbers - один из модулей, который предоставляет множество функций, таких как предоставление базовой информации о номере телефона, проверка номера телефона и т.д.

Установка модуля - pip install phonenumbers.

В нашем примере мы узнаем что «+91987654З210» является Индийским номером телефона.

Больше информации вы можете найти здесь.
😭Устали находить в продакшене критические уязвимости слишком поздно?

На открытом уроке «От идеи до воплощения – как обезвредить программный код?» мы покажем, как встроить сканеры SAST, SCA и DAST прямо в пайплайн CI/CD. Вы увидите живую демонстрацию настройки и запуска инструментов, которые автоматически выявляют уязвимости ещё на этапе сборки.

Представьте, что каждая сборка проходит чек-лист безопасности без ручных проверок, а вы уверены в надёжности выпускаемого кода.

🔥Встречаемся 21 августа в 20:00 МСК, зарегистрируйтесь и получите скидку на большое обучение «Внедрение и работа в DevSecOps»: https://otus.pw/2cCm/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Узнаём курс доллара при помощи Python в 2 строчки

Пакет forex-python позволяет получать данные о курсе валют и конвертировать одну валюту в другую. Программа на картинке позволяет нам узнать курс доллара относительно многих других валют мира. Вместо "USD" можно вставить любую другую валюту и получить актуальное соотношение.
Протоколы

Термины "протокол итератора" или "протокол дескрипторов" уже привычны и используются давно. Но теперь можно описывать протоколы в виде кода и проверять их соответствие на этапе статического анализа.

Протокол описывается как обычный класс, наследующийся от Protocol. Он может иметь методы (в том числе с реализацией) и поля. Реальные классы, реализующие протокол могут наследоваться от него, но это не обязательно, как показано в примере.

Хоть это и не совсем интерфейсы, но все же классная штука. Еще важно, что протоколы, как и все остальные фишки аннотаций типов, используются в основном со статически типизированным mypy.

#typing #аннотации
Конкурс репозиториев и грантовая программа SourceCraft уже открыты! Теперь у разработчиков есть возможность показать свои идеи, получить поддержку и вывести проект на новый уровень.

Платформа создаёт среду, где вклад каждого разработчика становится видимым: многоуровневые оценки дают честную обратную связь, а ачивки фиксируют результаты и превращают их в символы достижений.

SourceCraft не просто хранит код — платформа встроенно проверяет качество, безопасность и помогает избежать ошибок ещё до релиза.

Информация об организаторе Акции, о правилах проведения Акции, количестве призов, сроках, месте и порядке их получения размещена по ссылке.