Zen of Python
20.1K subscribers
1.21K photos
161 videos
32 files
3.16K links
Полный Дзен Пайтона в одном канале

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels

Сайт: https://tprg.ru/site

Регистрация в перечне РКН: https://tprg.ru/xZOL
Download Telegram
dbt — достойный конкурент Apache Kafka

ПО специализируется на преобразовании данных в ETL-процессах. Работает на базе Jinja, SQL и Python.

Илья Тищенко, ведущий архитектор хранилищ данных в Ростелекоме, сделал подробный обзор продукта. В его статье вы узнаете:

— где именно в extract-transform-load инструмент даёт больше возможностей;
— как установить фреймворк;
— как создать проект и проч.

#dbt #etl
💩5🤡3👍21
Python стал самым популярным языком

В августе 2023 года Python стал лидером индекса TIOBE – рейтинга самых популярных языков мира, опередив C и C++. На графике отображается процент опрошенных, считающих Python своим основным ЯП.

#факты
❤‍🔥9👍6🤡5😁3👏2
Match для проверки типа

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

>>> var = 1
>>>
>>> match var:
>>> case str():
>>> print('Строковый тип')
>>> case float():
>>> print('Число с плавающей запятой')
>>> case int():
>>> print('Целочисленный тип')
>>> case None:
>>> print("None")
>>> case _:
>>> print('Другой тип данных')

... Целочисленный тип

#лучшиепрактики
👍17💩7🤡2
Media is too big
VIEW IN TELEGRAM
Работает – не трогай, или победитель рейтинга важнейших принципов программирования.

На видео – перекресток города Хошимин, Вьетнам.
💩11❤‍🔥3😁3👍2
Что выведет этот код?
Anonymous Quiz
3%
[1, 0]
3%
[0, 1]
41%
[0]
52%
[1]
👎92👏1
👎48👍2
Выгрузка файлов из мессенджера в облако

Пользователь viperadnan-git предлагает всем желающим развернуть свой экземпляр бота, который автоматически выгружает пересланные ему файлы в Google Drive.

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

#googledrive #telegram
2
Роадмап Fullstack Python Developer

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

#карьера
🤮17💩4
sqlite3 для работы с БД

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

import sqlite3

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

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

#SQL
👍6😁1
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
9👍2
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
Основные принципы ООП: полиморфизм

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

#ООП
👍7👾2
Генерируем 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
👎4👍3
math.fsum: получаем сумму float без «осложнений»

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

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

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

import math

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

#math
👍201
InstaAPI — low-code конструктор API

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

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

#API
🤔6👍2
http-status-codes.png
780.4 KB
Шпаргалка состояний HTTP-запросов для тех, кто любит requests, и не только.

#http
🔥10👍1
Асинхронное варение MongoDB в Python

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

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

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

#mongodb
🥰5🔥1
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 и многое другое.

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

#факты
❤‍🔥18👍5🔥2
😁33💩18👍1🔥1
Бессмертие объектов

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

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

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

#факты
👍21