zen_of_python | Unsorted

Telegram-канал zen_of_python - Zen of Python

20687

Полный Дзен Пайтона в одном канале Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Сайт: https://tprg.ru/site Регистрация в перечне РКН: https://tprg.ru/xZOL

Subscribe to a channel

Zen of Python

Newsi: API для новостей

Инструмент полезен в трейдинге и позволяет автоматизировать подгрузку англоязычных мировых новостей. В дальнейшем на результаты запроса можно навесить показатели эмоциональной окраски и в зависимости от этого упростить принятие инвестиционного решения.

Документация

#API

Читать полностью…

Zen of Python

Нужна ли вам Kafka?

В статье Selectel разобрались, чем Kafka отличается от традиционных СУБД типа MySQL, почему именно этот продукт в резюме так повышает целевой оффер и как настроить простейший проект.

#kafka

Читать полностью…

Zen of Python

Машинное обучение прямо в PostgreSQL

PostgresML — это расширение, позволяющее создавать модели машинного обучения и выводить их результаты с помощью SQL-запросов.

Анализ тональности:

SELECT pgml.transform(
task => 'text-classification',
inputs => ARRAY[
'I love how amazingly simple ML has become!',
'I hate doing mundane and thankless tasks. ☹️'
]
) AS positivity;

Репозиторий на GitHub

#postgresql

Читать полностью…

Zen of Python

Задача о заменах хвостов

Уровень: средний

Список A состоит из четырех элементов, каждый из которых содержит ровно одно двоеточие (не в начале и не в конце). Длина подстрок до и после двоеточия является случайной:

A = ["abc:123", "cde:456", "a:12345", "777:xyz"]

Ваша задача — преобразовать список таким образом, чтобы поменять местами подстроки после каждого двоеточия.

Результат:
B = ["abc:456", "cde:123", "a:xyz", "777:12345"]

Напишите решение задачи в комментариях.

#задача

Читать полностью…

Zen of Python

Упрощённый оператор if

Порой вместо множественных сравнений с использованием 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]")

#лучшиепрактики

Читать полностью…

Zen of Python

Субботний Win Share

Что хорошего получилось у вас в сфере Python и IT в целом за неделю?

Поделитесь в комментариях.

Читать полностью…

Zen of Python

А что выберете вы?

Не знаете, что из этого вам больше подходит? Лучше получите бесплатный набор из 3 курсов для старта в IT от GeekBrains, они помогут определиться и с другим важным жизненным выбором — карьерой. https://tprg.ru/j6PF

Реклама ООО «ГикБреинс» LjN8KVC7E

Читать полностью…

Zen of Python

​В Excel появился Python

Стала доступна публичная предварительная надстройка, позволяющая пользователям Excel манипулировать данными и анализировать их.

«Вы можете исследовать данные в Excel, используя библиотеки Python, а затем подводить формулы, диаграммы и сводные таблицы Excel для дальнейшего развития своих идей», — объясняет Стефан Киннестранд, генеральный менеджер по современным работам в Microsoft. «Теперь вы можете выполнять расширенный анализ данных в знакомой среде Excel, обращаясь к Python непосредственно в MS Excel».

Установка дополнительных модулей не требуется.

#excel

Читать полностью…

Zen of Python

Бессмертие объектов

В Python 3.12 в рамках CPython некоторые объекты, такие как None, True и False действуют как глобальные синглтоны (паттерны, ограничивающие возможность создания объектов данного класса одним экземпляром). Они совместно используются интерпретатором вместо того, чтобы каждый раз создавать их новые копии.

Каждая новая ссылка на такой синглтон побуждала интерпретатор инкрементировать счетчик ссылок, как с обычными объектами. Это приводило к проблемам с производительностью.

Что означает "бессмертие" (immortality) и как оно решает эту проблему, читайте в англоязычной статье на mail.python.org.

#факты

Читать полностью…

Zen of Python

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.

#факты

Читать полностью…

Zen of Python

Шпаргалка состояний HTTP-запросов для тех, кто любит requests, и не только.

#http

Читать полностью…

Zen of Python

math.fsum: получаем сумму float без «осложнений»

Тип float печально известен своей неточностью. Когда вы складываете два числа, результат может содержать небольшую ошибку. И чем больше чисел, тем выше ошибка:

sum([0.8] * 1_000)
# 799.9999999999887 вместо 800

Если вы хотите устранить это недоразумение, используйте math.fsum():

import math

math.fsum([.8] * 1_000)
# 800.0

#math

Читать полностью…

Zen of Python

Основные принципы ООП: полиморфизм

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

#ООП

Читать полностью…

Zen of Python

pyproject.toml вместо pyproject.cfg

В PEP-518 предложили хранить конфиги для всех инструментов в файле pyproject.toml, в разделе tool.TOOL_NAME. Например:

[tool.mypy]
файлы = ["мой_проект"]
версия_python = 3.8

На данный момент почти все популярные инструменты так или иначе поддерживают pyproject.toml в качестве конфигурационного файла: mypy, pytest, cover, isort, bandit, tox и т. д. Единственное исключение — flake8.

До .toml многие инструменты использовали setup.cfg для той же цели, но этот формат имеет несколько недостатков: он плохо стандартизирован, и единственным поддерживаемым типом значений является строка.

#PEP

Читать полностью…

Zen of Python

Роадмап Fullstack Python Developer

В статье вы познакомитесь с актуальными в 2023 навыками для Python Developer и производных этой профессии.

#карьера

Читать полностью…

Zen of Python

Время предпринимать по-крупному

Создавайте свой стартап или развивайте уже существующий в онлайн-магистратуре МФТИ и Сколково «Технологическое Предпринимательство».

Кроме теоретических знаний и 1 000 часов практического опыта вы получите:
— экспертизу опытных менторов;
— поддержку других предпринимателей;
— выход на потенциальных инвесторов и партнеров.

Профиль может быть любым — от ИТ до биотехнологий и космоса.
А после завершения обучения вы получите готовый к инвестированию бизнес-проект.

Осталось только узнать все подробности на сайте ТехПреда.

Реклама МФТИ, ФИЗТЕХ ИНН 5008006211, erid:LjN8K46hT

Читать полностью…

Zen of Python

Typing Self: интуитивно понятный способ аннотирования методов, возвращающих экземпляр своего класса

Ведёт себя так же, как TypeVar, но более краток и прост:

Допустим, мы создали метод get_scale(), который возвращает экземпляр того же класса Scale с помощью self:

class Shape:
def set_scale(self, scale: float):
self.scale = scale
return self

Shape().set_scale(0.5) # => Экземпляр класса Shape

Один из способов обозначить тип возвращаемого значения — указать его как текущий класс Shape. Использование этого метода заставляет средство проверки типов выводить тип Shape, как и ожидалось:

class Shape:
def set_scale(self, scale: float) -> Shape:
self.scale = scale
return self

Shape().set_scale(0.5) # => Shape
...

PEP-673

#pep

Читать полностью…

Zen of Python

faulthandler: запись логов в файл

К примеру, для записи логов каждые 5 секунд к основной программе потребуется добавить следующий код:

import faulthandler
from time import sleep

faulthandler.dump_traceback_later(
timeout=2,
repeat=True,
)
for i in range(5):
print(f"iteration {i}")
sleep(5)

Документация

#лучшиепрактики

Читать полностью…

Zen of Python

Перенос GPT-проекта на Python

На связи админ канала. Из тех, кто прикручивал к GPT API собственный датасет, как вы решали эту задачу?

Нашел решение на JavaScript (БД Pinecone, коэффициент Отиаи, связка нескольких API на Pipedream), но теперь нужно переписать проект на Python. Fine-Tuning модели, то есть подгрузка по документации OpenAI, обходится значительно дороже, чем своя БД.

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

#GPT

Читать полностью…

Zen of Python

Модуль warnings для кастомных предупреждений

Встроенная утилита позволяет тонко настраивать всевозможные ворнинги под ваш код:

def deprecation(message):
warnings.warn(message, DeprecationWarning, stacklevel=2)

Документация

#факты

Читать полностью…

Zen of Python

PlotAI для вёрстки графиков на Matplotlib

Возможно, вы уже знаете, что LLM-модели вроде GPT неплохо справляются с построением различных диаграмм. Теперь можно упростить создание графиков на Python с помощью PlotAI:

— пользователь предоставляет датафрейм;
— PlotAI создаёт промт для LLM, который содержит первые пять записей и запрашивает код Python;
— возвращенный код Python выполняется, и отображается график.

Ссылка на репозиторий GitHub

#dataviz

Читать полностью…

Zen of Python

Dara для Decision-Making-приложений

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

Ссылка на репозиторий

#dataviz

Читать полностью…

Zen of Python

Всем привет! Сегодня мы запускаем новую версию нашего сайта tproger.ru, поэтому могут наблюдаться сбои и ошибки

Мы постараемся всё сделать аккуратно, но если столкнётесь с багами или проблемами, дайте нам знать.

Спасибо за понимание.

Читать полностью…

Zen of Python

Вышел Python 3.11.5

Новая версия:
— точнее указывает на причину ошибки в трейсбеке;
— позволяет использовать файлы.toml для конфигов;
— позволяет группировать задачи с asyncio и многое другое.

Ссылка на дистрибутив

#факты

Читать полностью…

Zen of Python

Асинхронное варение MongoDB в Python

Уютный доклад старшего разработчика компании Элитриум Даниила Неслуховского c недавней яндексовской конференции Pytup.

За эти 50 минут можно вспомнить типы БД, узнать про Object Mapping, Beanie и прочие компоненты.

Запись трансляции (доклад на 04:32)

#mongodb

Читать полностью…

Zen of Python

InstaAPI — low-code конструктор API

С помощью InstaAPI вы сможете легко создавать собственные API.

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

#API

Читать полностью…

Zen of Python

Генерируем HTML с Python

Библиотека 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

Читать полностью…

Zen of Python

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

Читать полностью…

Zen of Python

sqlite3 для работы с БД

В Python существует встроенный модуль для работы с базой на SQLite с поддержкой большинства команд:

import sqlite3

# Подключимся к базе orders
conn = sqlite3.connect('orders')
cur = conn.cursor()

# Отобразим всю таблицу addons
cur.execute('SELECT * FROM addons')
cur.fetchone()

#SQL

Читать полностью…

Zen of Python

Avito Backend United meetup #7: Долма

Встречаемся в Ереване с коллегами из Тинькофф и Yandex Cloud 31 августа в 18:30 по местному (!) времени.

Вы тоже в Армении? Забронируйте себе место офлайн.
Подискутируем на тему Kubernetes под кофе и мигрируем на афтерпати.

Смотреть из любой точки мира и задавать вопросы можно и в прямом эфире. Чтобы получить напоминание о нём, зарегистрируйтесь здесь.

Реклама ООО «Авито Тех» LjN8JtvcB

Читать полностью…
Subscribe to a channel