Выгрузка файлов из мессенджера в облако
Пользователь viperadnan-git предлагает всем желающим развернуть свой экземпляр бота, который автоматически выгружает пересланные ему файлы в Google Drive.
Репозиторий на GitHub
#googledrive #telegram
Match для проверки типа
Порой трудно понять, что именно возвращает функция или метод. Не только содержимое, но и тип данных. Здесь помогут match и встроенные функции приведения к типам данных:>>> var = 1
>>>
>>> match var:
>>>
case str():
>>>
print('Строковый тип')
>>>
case float():
>>>
print('Число с плавающей запятой')
>>>
case int():
>>>
print('Целочисленный тип')
>>>
case None:
>>>
print("None")
>>>
case _:
>>>
print('Другой тип данных')
... Целочисленный тип
#лучшиепрактики
dbt — достойный конкурент Apache Kafka
ПО специализируется на преобразовании данных в ETL-процессах. Работает на базе Jinja, SQL и Python.
Илья Тищенко, ведущий архитектор хранилищ данных в Ростелекоме, сделал подробный обзор продукта. В его статье вы узнаете:
— где именно в extract-transform-load инструмент даёт больше возможностей;
— как установить фреймворк;
— как создать проект и проч.
#dbt #etl
Как создать аналитический сайт на Python с нуля
В статье описывается, как создать блог с небольшим дашбордом по статьям с использованием Flask, Dash, Plotly и Docker.
#flask #plotly
CustomTkinter
CustomTkinter предлагает широкий набор современных
настраиваемых UI-элементов. Они могут использоваться также, как обычные Tkinter-виджеты, а также комбинироваться с существующими.
Ссылка на репозиторий
#tkinter
ИТ + научпоп + музыка = большой ИТ-пикник в Москве
2 сентября Тинькофф, CodeFest и Мельница собирают большой благотворительный ИТ-фестиваль. Встречаемся в Коломенском на максимально летнем вайбе.
В программе: ИТ- и научпоп-лектории, выступления топовых спикеров, воркшопы, интерактивные зоны и вишенка на торте — музыкальные перформансы от Антохи MC, Zoloto, Therr Maitz, The Hatters, «Сироткина», а также секретного хедлайнера. Как думаете, кто им может быть?
Для участия нужно выбрать благотворительный фонд из списка и сделать донат от 1000 рублей. Подробности и регистрация — тут.
Реклама АО «Тинькофф Банк»
LiteralString: Защита от SQL-инъекций
Внутрь текста (например, в поле формы) можно внедрить SQL-запрос и видоизменить базу данных. Начиная с Python 3.11 мы можем использовать LiteralString во избегание таких уязвимостей:def caller(
arbitrary_string: str,
query_string: LiteralString,
table_name: LiteralString,
) -> None:
run_query("SELECT * FROM students") # ok
run_query(query_string) # ok
run_query("SELECT * FROM " + table_name) # ok
run_query(arbitrary_string) # error
run_query(f"SELECT * FROM students WHERE name = {arbitrary_string}" # error
)
Спасибо подписчику @Trizalio за годную тему для поста.
#лучшиепрактики
Как работать с gdb
Интересный видеоурок о том, как пользоваться отладчиком. В нём вы узнаете:
— как запустить gbd по шагам;
— самые популярные команды;
— как читать стек.
#gdb
Библиотека для генерации одноразовых паролей
Двухфакторная аутентификация – это вполне подъёмно в первый же год кодинга на Python. С этим вам поможет библиотека PyOTP:import pyotp
import time
totp = pyotp.TOTP('base32secret3232')
totp.now() # => '492039'
# OTP verified for current time
totp.verify('492039') # => True
time.sleep(30)
totp.verify('492039') # => False
Ссылка на репозиторий
#otp #2fa
Что нового в Python 3.11.4: библиотека zoneinfo
Теперь timestamp без временной зоны со своим плюсом в виде читаемости можно использовать без опаски: с помощью zoneinfo к нему добавляется атрибут — данные о часовом поясе:from zoneinfo import ZoneInfo
from datetime import datetime, timedelta
dt = datetime(2020, 10, 31, 12, tzinfo=ZoneInfo("America/Los_Angeles"))
print(dt)
2020-10-31 12:00:00-07:00
dt.tzname()
'PDT'
Документация
Как насчёт теста на Data Engineer?
Spark является одним из самых важных фреймворков в области Big Data с открытым исходным кодом. Тест состоит из 24 вопросов, на него потребуется около получаса.
Пройти тест можно по ссылке.
#spark
asyncio для сетевых инженеров
Исчерпывающий гайд, с помощью которого вы узнаете, в чём разница между параллельными процессами, потоками и асинхронным программированием.
Руководство под авторством Натальи Самойленко разделено на несколько частей:
— основы работы с сопрограммами;
— асинхронные модули;
— создание классов в asyncio;
— использование модуля asyncio;
— работа с циклом событий.
Документация также дополняется блоком заданий и примеров кода.
#asyncio
Аналоги Vim
Хотя этот редактор кода и является предустановленным для систем вроде Linux, однако зачастую его пользователи хотят познакомиться с более удобными альтернативами. Вашему вниманию перечень редакторов кода, подходящих для операционок без графического интерфейса (aka terminal based editors):
— nano;
— neovim;
— vis;
— slap.
А какими аналогами Vim вы пользовались? Поделитесь в комментариях.
#nano #neovim
PostgreSQL с нуля на Python
Двухчасовой плейлист, обучающий основам работы с популярным хранилищем данных. Помимо базовых тем вроде создания таблицы и JOIN вы встретите там и такие разделы, как UPSERT и идентификаторы UUID. Серия уроков подходит новичкам в Python и может стать комфортным способом познакомиться с SQL-подобными системами,
Ссылка на плейлист
#postgresql
Собрать свой ИИ теперь можно с нуля
Без всякого опыта в программировании! Вас научит основатель Университета Искусственного Интеллекта Дмитрий Романов. За 2 дня под его руководством вы создадите сразу 12 нейросетей.
Если вы хотите поближе познакомиться с тем, как работают технологии вроде ChatGPT, Stable Diffusion, а также разобраться в генерации и распознавании речи — этот интенсив для вас.
Зарегистрироваться на легендарный интенсив можно по ссылке.
Реклама ООО «Терра Эй Ай»
Работает – не трогай, или победитель рейтинга важнейших принципов программирования.
На видео – перекресток города Хошимин, Вьетнам.
Python стал самым популярным языком
В августе 2023 года Python стал лидером индекса TIOBE – рейтинга самых популярных языков мира, опередив C и C++. На графике отображается процент опрошенных, считающих Python своим основным ЯП.
#факты
Что нового в Python 3.12
Собрали в статье основные фишки последнего обновления Python для тех, кому сложно (или не особо хочется) лезть в документацию.
#факты
Что такое байт-код и как он поможет при дебаггинге
Мы нашли для вас качественную получасовую лекцию с PyCon Cleveland, где автор рассказывает, как читать байт-код и что полезного в нём можно найти в процессе отладки программы.
#дебаггинг
TypeVarTuple для кортежей с разными типами данных
Допустим, мы создаём функцию convert_first_int(), которая возвращает кортеж практически неизменным, только первый элемент приводит к целочисленному типу:from typing import TypeVarTuple
Ts = TypeVarTuple("Ts")
def convert_first_int(values: tuple[int|str|float, *Ts]) -> tuple[int, *Ts]:
return (int(values[0]), *values[1:])
print(repr(convert_first_int(("1", "2", "3"))))
TypeVarTuple представляет собой произвольный кортеж потенциально разных типов. Нам это нужно, потому что функция имеет дело только с первым элементом кортежа. Поэтому нам необходим способ выразить, что мы разрешаем любые оставшиеся типы.(1, '2', '3')
Спасибо подписчику @Trizalio за годную тему для поста.
#лучшиепрактики
Обновлённый роадмап Data Science 2023
Если вы только подступились к Науке о данных, роадмап – хорошее средство сэкономить время. Так что представляем карту навыков глазами практикующего специалиста. На диаграмме Исикавы вы найдёте самые распространённые понятия и инструменты.
А подробнее — в статье по ссылке.
#карьера
В новом выпуске avito.code бэкендер Авито знакомит с правилами использования каналов в Golang и паттернами конкурентного программирования
В разборе пять паттернов: Generator, Fan In, Fan Out, Fan In Extended и Pipeline, их принципы работы и возможности, которые открываются при обработке данных.
Выпуск уже на ютубе: https://tprg.ru/1dpg
Реклама ООО «Авито Тех» LjN8KAUEn
Библиотека для работы со съемными устройствами
PyUSB — библиотека, предназначенная для удобного взаимодействия с USB. Позволяет находить устройства, читать и записывать данные.pip install pyusb
import usb.core
import usb.util
dev = usb.core.find(find_all=True) # найдет подключенные USB-устройства
device.write(drive_name, data.txt) # Запишет на носитель
Документация
#лучшиепрактики
Один из 20.000 пользователей StackOverflow ищет, как выйти из Vim
В этом году Stack Overflow достигли интересного показателя: более миллиона пользователей форума ищут решение вышеупомянутой задаче.
А на каком месяце / году программирования вы запомнили, как выйти из этого редактора? Поделитесь в комментариях.
#факты
Что нового в Python 3.11.4: точка прерывания отладки
Теперь вы можете вызвать функцию breakpoint(), чтобы >>> def calculate_sum(a, b):
>>> result = a + b
>>> breakpoint()
>>>
>>> x = 5
>>> у = 10
>>> z = calculate_sum(x, у)
>>> print(z)
... -> breakpoint() # Debugger breake tunn result
... (Pdb)
#лучшиепрактики
Что нового в Python 3.11.4: оператор слияния словарей
Pipe-оператор | теперь может лаконично объединить два и более словарей:dict1 = {"a": 1, "b": 2}
dict2 = {"c": 3, "d": 4}
merged_dict = dict1 | dict2
print (merged _dict) # Output: {'a': 1, 'b': 2, 'c': 3, 'd': 4}
#лучшиепрактики