dbt — достойный конкурент Apache Kafka
ПО специализируется на преобразовании данных в ETL-процессах. Работает на базе Jinja, SQL и Python.
Илья Тищенко, ведущий архитектор хранилищ данных в Ростелекоме, сделал подробный обзор продукта. В его статье вы узнаете:
— где именно в extract-transform-load инструмент даёт больше возможностей;
— как установить фреймворк;
— как создать проект и проч.
#dbt #etl
  
  
  
  
  
ПО специализируется на преобразовании данных в ETL-процессах. Работает на базе Jinja, SQL и Python.
Илья Тищенко, ведущий архитектор хранилищ данных в Ростелекоме, сделал подробный обзор продукта. В его статье вы узнаете:
— где именно в extract-transform-load инструмент даёт больше возможностей;
— как установить фреймворк;
— как создать проект и проч.
#dbt #etl
💩5🤡3👍2❤1
  Python стал самым популярным языком
В августе 2023 года Python стал лидером индекса TIOBE – рейтинга самых популярных языков мира, опередив C и C++. На графике отображается процент опрошенных, считающих Python своим основным ЯП.
#факты
  
  
  
  
  
В августе 2023 года Python стал лидером индекса TIOBE – рейтинга самых популярных языков мира, опередив C и C++. На графике отображается процент опрошенных, считающих Python своим основным ЯП.
#факты
❤🔥9👍6🤡5😁3👏2
  Match для проверки типа
Порой трудно понять, что именно возвращает функция или метод. Не только содержимое, но и тип данных. Здесь помогут 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
  👎92👏1
  Выгрузка файлов из мессенджера в облако
Пользователь viperadnan-git предлагает всем желающим развернуть свой экземпляр бота, который автоматически выгружает пересланные ему файлы в Google Drive.
Репозиторий на GitHub
#googledrive #telegram
  
  
  
  
  
Пользователь viperadnan-git предлагает всем желающим развернуть свой экземпляр бота, который автоматически выгружает пересланные ему файлы в Google Drive.
Репозиторий на GitHub
#googledrive #telegram
❤2
  sqlite3 для работы с БД
В Python существует встроенный модуль для работы с базой на SQLite с поддержкой большинства команд:
#SQL
  
  
  
  
  
В Python существует встроенный модуль для работы с базой на SQLite с поддержкой большинства команд:
import sqlite3# Подключимся к базе ordersconn = sqlite3.connect('orders')cur = conn.cursor()# Отобразим всю таблицу addonscur.execute('SELECT * FROM addons')cur.fetchone()#SQL
👍6😁1
  pyproject.toml вместо pyproject.cfg
В PEP-518 предложили хранить конфиги для всех инструментов в файле pyproject.toml, в разделе tool.TOOL_NAME. Например:
[tool.mypy]
На данный момент почти все популярные инструменты так или иначе поддерживают pyproject.toml в качестве конфигурационного файла: mypy, pytest, cover, isort, bandit, tox и т. д. Единственное исключение — flake8.
До .toml многие инструменты использовали setup.cfg для той же цели, но этот формат имеет несколько недостатков: он плохо стандартизирован, и единственным поддерживаемым типом значений является строка.
#PEP
  
  
  
  
  
В 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 добавляет к данным уникальную подпись, которая позволяет убедиться в том, что данные не были подделаны.
  
  
  
  
  
При передаче данных между различными веб-запросами существует риск инъекции вредоносного кода. 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 Docdoc, 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 mathmath.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
  