ItsDangerous: защита данных
При передаче данных между различными веб-запросами существует риск инъекции вредоносного кода. ItsDangerous добавляет к данным уникальную подпись, которая позволяет убедиться в том, что данные не были подделаны.
При передаче данных между различными веб-запросами существует риск инъекции вредоносного кода. ItsDangerous добавляет к данным уникальную подпись, которая позволяет убедиться в том, что данные не были подделаны.
pip install -U itsdangerous
>>> from itsdangerous import URLSafeSerializer
>>> auth_s = URLSafeSerializer("secret key", "auth")
>>> token = auth_s.dumps({"id": 5, "name": "itsdangerous"})
>>>
>>> print(token)
...eyJpZCI6NSwibmFtZSI6Iml0c2Rhbmdlcm91cyJ9.6YP6T0B
👍7
Генерируем HTML с Python
Библиотека yattag позволяет создавать HTML-страницы прямо внутри Python-кода:
В результате мы получаем самозакрывающиеся теги:
Профиль на PyPi
#html
Библиотека yattag позволяет создавать HTML-страницы прямо внутри Python-кода:
from yattag import Doc
doc, tag, text = Doc().tagtext()
with tag('div', id='photo-container'):
doc.stag('img', src='/salmon-plays-piano.jpg', klass="photo")
print(doc.getvalue())
В результате мы получаем самозакрывающиеся теги:
<div id="photo-container"><img src="/salmon-plays-piano.jpg" class="photo" /></div>
Профиль на PyPi
#html
👎4👍3
math.fsum: получаем сумму float без «осложнений»
Тип float печально известен своей неточностью. Когда вы складываете два числа, результат может содержать небольшую ошибку. И чем больше чисел, тем выше ошибка:
Если вы хотите устранить это недоразумение, используйте math.fsum():
#math
Тип float печально известен своей неточностью. Когда вы складываете два числа, результат может содержать небольшую ошибку. И чем больше чисел, тем выше ошибка:
sum([0.8] * 1_000)
# 799.9999999999887 вместо 800
Если вы хотите устранить это недоразумение, используйте math.fsum():
import math
math.fsum([.8] * 1_000)
# 800.0
#math
👍20❤1
InstaAPI — low-code конструктор API
С помощью InstaAPI вы сможете легко создавать собственные API.
Вы получите доступ к библиотеке блоков кода, которые помогут создать логические компоненты и воплотить ваши идеи в реальность. Одним из преимуществ InstaAPI является встроенная SQL-база данных.
#API
С помощью InstaAPI вы сможете легко создавать собственные API.
Вы получите доступ к библиотеке блоков кода, которые помогут создать логические компоненты и воплотить ваши идеи в реальность. Одним из преимуществ InstaAPI является встроенная SQL-база данных.
#API
🤔6👍2
Асинхронное варение MongoDB в Python
Уютный доклад старшего разработчика компании Элитриум Даниила Неслуховского c недавней яндексовской конференции Pytup.
За эти 50 минут можно вспомнить типы БД, узнать про Object Mapping, Beanie и прочие компоненты.
Запись трансляции (доклад на 04:32)
#mongodb
Уютный доклад старшего разработчика компании Элитриум Даниила Неслуховского c недавней яндексовской конференции Pytup.
За эти 50 минут можно вспомнить типы БД, узнать про Object Mapping, Beanie и прочие компоненты.
Запись трансляции (доклад на 04:32)
#mongodb
🥰5🔥1
NaN – число с плавающей запятой
И это довольно нелогично:
Будьте осторожны и используйте math.isnan() для проверки на равенство NaN.
#факты
И это довольно нелогично:
import math
>>> sorted([5.0, math.nan, 10.0, 0.0])
... [5.0, nan, 0.0, 10.0]
>>> 3 < math.nan
... False
>>> 3 > math.nan
... False
>>> min(3, math.nan)
... 3
>>> min(math.nan, 3)
... nan
Будьте осторожны и используйте math.isnan() для проверки на равенство NaN.
#факты
👍9
Вышел Python 3.11.5
Новая версия:
— точнее указывает на причину ошибки в трейсбеке;
— позволяет использовать файлы.toml для конфигов;
— позволяет группировать задачи с asyncio и многое другое.
Ссылка на дистрибутив
#факты
Новая версия:
— точнее указывает на причину ошибки в трейсбеке;
— позволяет использовать файлы.toml для конфигов;
— позволяет группировать задачи с asyncio и многое другое.
Ссылка на дистрибутив
#факты
❤🔥18👍5🔥2
Бессмертие объектов
В Python 3.12 в рамках CPython некоторые объекты, такие как
Каждая новая ссылка на такой синглтон побуждала интерпретатор инкрементировать счетчик ссылок, как с обычными объектами. Это приводило к проблемам с производительностью.
Что означает "бессмертие" (immortality) и как оно решает эту проблему, читайте в англоязычной статье на mail.python.org.
#факты
В Python 3.12 в рамках CPython некоторые объекты, такие как
None
, True
и False
действуют как глобальные синглтоны (паттерны, ограничивающие возможность создания объектов данного класса одним экземпляром). Они совместно используются интерпретатором вместо того, чтобы каждый раз создавать их новые копии.Каждая новая ссылка на такой синглтон побуждала интерпретатор инкрементировать счетчик ссылок, как с обычными объектами. Это приводило к проблемам с производительностью.
Что означает "бессмертие" (immortality) и как оно решает эту проблему, читайте в англоязычной статье на mail.python.org.
#факты
👍21
Всем привет! Сегодня мы запускаем новую версию нашего сайта tproger.ru, поэтому могут наблюдаться сбои и ошибки
Мы постараемся всё сделать аккуратно, но если столкнётесь с багами или проблемами, дайте нам знать.
Спасибо за понимание.
Мы постараемся всё сделать аккуратно, но если столкнётесь с багами или проблемами, дайте нам знать.
Спасибо за понимание.
👌11💩5😁4👍3🔥1
В Excel появился Python
Стала доступна публичная предварительная надстройка, позволяющая пользователям Excel манипулировать данными и анализировать их.
«Вы можете исследовать данные в Excel, используя библиотеки Python, а затем подводить формулы, диаграммы и сводные таблицы Excel для дальнейшего развития своих идей», — объясняет Стефан Киннестранд, генеральный менеджер по современным работам в Microsoft. «Теперь вы можете выполнять расширенный анализ данных в знакомой среде Excel, обращаясь к Python непосредственно в MS Excel».
Установка дополнительных модулей не требуется.
#excel
Стала доступна публичная предварительная надстройка, позволяющая пользователям Excel манипулировать данными и анализировать их.
«Вы можете исследовать данные в Excel, используя библиотеки Python, а затем подводить формулы, диаграммы и сводные таблицы Excel для дальнейшего развития своих идей», — объясняет Стефан Киннестранд, генеральный менеджер по современным работам в Microsoft. «Теперь вы можете выполнять расширенный анализ данных в знакомой среде Excel, обращаясь к Python непосредственно в MS Excel».
Установка дополнительных модулей не требуется.
#excel
👀21🔥8🤔4👍2❤1
Dara для Decision-Making-приложений
Адаптированный для нужд дата-сайентистов, фреймворк предлагает создавать приложения на чистом Python с помощью библиотеки готовых компонентов. Инструмент позволяет гибко настраивать и создавать собственные компоненты на CSS и JavaScript.
Ссылка на репозиторий
#dataviz
Адаптированный для нужд дата-сайентистов, фреймворк предлагает создавать приложения на чистом Python с помощью библиотеки готовых компонентов. Инструмент позволяет гибко настраивать и создавать собственные компоненты на CSS и JavaScript.
Ссылка на репозиторий
#dataviz
PlotAI для вёрстки графиков на Matplotlib
Возможно, вы уже знаете, что LLM-модели вроде GPT неплохо справляются с построением различных диаграмм. Теперь можно упростить создание графиков на Python с помощью PlotAI:
— пользователь предоставляет датафрейм;
— PlotAI создаёт промт для LLM, который содержит первые пять записей и запрашивает код Python;
— возвращенный код Python выполняется, и отображается график.
Ссылка на репозиторий GitHub
#dataviz
Возможно, вы уже знаете, что LLM-модели вроде GPT неплохо справляются с построением различных диаграмм. Теперь можно упростить создание графиков на Python с помощью PlotAI:
— пользователь предоставляет датафрейм;
— PlotAI создаёт промт для LLM, который содержит первые пять записей и запрашивает код Python;
— возвращенный код Python выполняется, и отображается график.
Ссылка на репозиторий GitHub
#dataviz
👍4😁2
Субботний Win Share
Что хорошего получилось у вас в сфере Python и IT в целом за неделю?
Поделитесь в комментариях.
Что хорошего получилось у вас в сфере Python и IT в целом за неделю?
Поделитесь в комментариях.
Модуль warnings для кастомных предупреждений
Встроенная утилита позволяет тонко настраивать всевозможные ворнинги под ваш код:
Документация
#факты
Встроенная утилита позволяет тонко настраивать всевозможные ворнинги под ваш код:
def deprecation(message):
warnings.warn(message, DeprecationWarning, stacklevel=2)
Документация
#факты
👍8❤2
Упрощённый оператор if
Порой вместо множественных сравнений с использованием or:
Эффективнее использовать in:
#лучшиепрактики
Порой вместо множественных сравнений с использованием or:
m = 3
if m == 1 or m == 2 or m == 3 or m == 4:
print("m равен 1 / 2 / 3 / 4")
Эффективнее использовать in:
if m in [1, 2, 3, 4]:
print("m входит в диапазон [1, 4]")
#лучшиепрактики
💩13👍12❤🔥6❤2🥰1
Перенос GPT-проекта на Python
На связи админ канала. Из тех, кто прикручивал к GPT API собственный датасет, как вы решали эту задачу?
Нашел решение на JavaScript (БД Pinecone, коэффициент Отиаи, связка нескольких API на Pipedream), но теперь нужно переписать проект на Python. Fine-Tuning модели, то есть подгрузка по документации OpenAI, обходится значительно дороже, чем своя БД.
На каком фреймворке лучше развернуть аналогичный проект? Подскажите в комментариях.
#GPT
На связи админ канала. Из тех, кто прикручивал к GPT API собственный датасет, как вы решали эту задачу?
Нашел решение на JavaScript (БД Pinecone, коэффициент Отиаи, связка нескольких API на Pipedream), но теперь нужно переписать проект на Python. Fine-Tuning модели, то есть подгрузка по документации OpenAI, обходится значительно дороже, чем своя БД.
На каком фреймворке лучше развернуть аналогичный проект? Подскажите в комментариях.
#GPT
💩6🤔4👍2🍌1🙈1
Задача о заменах хвостов
Уровень: средний
Список A состоит из четырех элементов, каждый из которых содержит ровно одно двоеточие (не в начале и не в конце). Длина подстрок до и после двоеточия является случайной:
Ваша задача — преобразовать список таким образом, чтобы поменять местами подстроки после каждого двоеточия.
Результат:
Напишите решение задачи в комментариях.
#задача
Уровень: средний
Список A состоит из четырех элементов, каждый из которых содержит ровно одно двоеточие (не в начале и не в конце). Длина подстрок до и после двоеточия является случайной:
A = ["abc:123", "cde:456", "a:12345", "777:xyz"]
Ваша задача — преобразовать список таким образом, чтобы поменять местами подстроки после каждого двоеточия.
Результат:
B = ["abc:456", "cde:123", "a:xyz", "777:12345"]
Напишите решение задачи в комментариях.
#задача
👍5