Полный Дзен Пайтона в одном канале Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Сайт: https://tprg.ru/site Регистрация в перечне РКН: https://tprg.ru/xZOL
«Книги изменившие мир писатели объединившие поколения»
@ithumor
Second-Me | Самый солипсисткий пет-проект
Если о биологическом бессмертии пока рассуждают футуристы, то цифровое уже вполне реально, если вы можете позволить себе содержать свою LLM. Проект позволяет натренировать на любых данных о вас (переписки в мессенджерах, личный дневник и любые другие данные в любом формате). Такой цифровой двойник сможет общаться за вас в случае чего.
Репозиторий проекта
#инструмент
@zen_of_python
Сегодня можно и spam, и eggs — и не только в коде!
С Пасхой, питонист!
@zen_of_python
В PyPI нашли библиотеку для MEXC, которая помогала… красть крипту у установивших
Вредоносный пакет ccxt-mexc-futures маскировался под легитимное расширение для автоматизации торговли криптовалютами. Пакет крал API-ключи пользователей и управлял их ордерами, перенаправляя запросы на поддельный сервер.
Воистину, в эпоху «Девятого вала контента» пропустить такой зловред при установке инструментария легче легкого.
#безопасность
@zen_of_python
Внимание: представлен Python-пакет, который делает импорт либ great again
Гений с ником Huan Xu выкатил TARIFF: open-source проект, который вводит «импортные пошлины» на Python-библиотеки. При импорте библиотека задерживается на заданный процент времени, а в консоли появляется гордое сообщение о тарифе.
Спасибо за внимание 🙏
#кек #оффтоп
Тест: Какой язык программирования тебе подходит
Небольшой опросник с целью определить «ваш» язык на основании айтишных интересов. Если вы новичок и без подсказок выйдете на Python — что ж, это судьба. Вопросики-то с подковыркой!
@zen_of_python
Ошибки и исключения в Python: в чём разница?
- Ошибки (errors) — это критические проблемы, такие как синтаксические ошибки, которые обнаруживаются до выполнения программы и не позволяют ей запуститься.
- Исключения (exceptions) — возникают во время выполнения программы при неожиданных ситуациях, например, при делении на ноль. Исключения можно перехватывать и обрабатывать в коде.
Распространённые ошибки
- SyntaxError — возникает при нарушении синтаксиса, например, при отсутствии закрывающей скобки:
print("Hello World" # Отсутствует закрывающая скобка
def greet():
print("Hello") # Отсутствует отступ
print("10" + 5) # Возникает TypeError
num = int("abc") # Возникает ValueError
data = {"name": "Alice"}
print(data["age"]) # Возникает KeyError
numbers = [1, 2, 3]
print(numbers[5]) # Возникает IndexError
result = 10 / 0 # Возникает ZeroDivisionError
with open("missing_file.txt", "r") as file:
content = file.read() # Возникает FileNotFoundError
Exception
:
class CustomError(Exception):
pass
raise CustomError("Это пользовательское исключение!")
dayplot | Симпатичные хитмэпы
Библиотека позволяет строить тепловые карты а-ля GitHub Contributions. В одной статье забавно визуализировали с dayplot, как у Илона Маска е̶д̶е̶т̶ ̶к̶у̶к̶у̶х̶а̶, как растет число постов в X (ex-Twitter).
Проект на PyPi
#инструмент
@zen_of_python
Когда навайбкодил приложение в СhatGPT и уже подсчитываешь миллионы своего стартапа.
То самое приложение:
airflow-ai-sdk | Оркестрация на откуп GPT
Этот репозиторий позволяет создавать DAG в Airflow и управлять таковыми с помощью ИИ-ассистентов на ваш выбор (хоть ChatGPT, хоть Claude).
Админ ликует, ведь Airflow без должной информационной поддержки легк становится той еще занозой.
Репозиторий проекта
#инструмент
@zen_of_python
Квиз про качество кода в Python
Небольшая англоязычная викторина на 13 вопросов, посвященная читаемости, переиспользованию, масштабируемости и другим параметрам качества. Подготовиться можно с помощью статьи.
#квиз
@zen_of_python
5 игр, чтобы подучить SQL (и не уснуть по дороге)
SQLPD — расследуете преступления как аналитик SQL-полиции. Каждое задание — отдельное дело.
SQL Island — выживаете после крушения на острове, выполняя SQL-задачи, чтобы выбраться.
SQL Murder Mystery — ищете убийцу в базе данных. Свобода действий и минимум подсказок.
Lost at SQL — спасаете подлодку и команду, проходя сюжетные SQL-челленджи.
SQL Squid Game — Решаете задачи по мотивам игры в кальмара, чтобы не повторить судьбу коллеги-аналитика.
#игры #sql
stealthkit | requests на стероидах
Инструментарий для скрытого доступа и обхода систем безопасности. Среди фичей:
— Ротация User-Agent: Автоматически меняет user-agent из Chrome, Edge и Safari на различных операционных системах (Windows, MacOS, Linux);
— Случайный выбор Referer: Симулирует реальное поведение браузинга, отправляя запросы с рандомизированными referer'ами из поисковых систем;
— Обработка куки: Извлекает и сохраняет куки с указанных URL для поддержания постоянства сессии;
— Поддержка прокси: Позволяет маршрутизировать запросы через предоставленный прокси;
— Логика повторных попыток: Повторяет неудачные запросы до трех раз перед тем, как сдаться;
— RESTful запросы: Поддерживает GET, POST, PUT и DELETE с автоматической интеграцией прокси.
Репозиторий проекта
#инструмент
@zen_of_python
А какие убойные книги про Python и окололежащее вы знаете? Поделитесь в комментариях.
Читать полностью…Боюсь спросить, как выглядит Pascal Pascal
#кек
@zen_of_python
Вопросы подписчиков
Zen of Python поддерживает новоприбывших (и не только) в особой рубрике. Как это работает:
— Спрашивайте что угодно (в комментариях под этим постом), связанное с Python. Здесь нет плохих вопросов!
— Сообщество вас поддержит. Самые интересные вопросы мы разберём в отдельном посте;
#вопросы_новичков
@zen_of_python
py.checkio.org | Игра для освоения языка
При поддержке JetBrains сделали годную игру про Python. Там вы познакомитесь с основными концепциями языка на примерах и закрепите знания с помощью небольших задачек. Можно даже отнести игру к жанру RPG. Пожалуй, самый нескучный способ учиться.
На сайт игры
#обучение
@zen_of_python
Positron | IDE для «поклонников данных»
Это перспективная среда разработки, которая предлагает:
— удобную среду для обращения с ноутбуками локально;
— поддержку тысяч плагинов, включая ИИ-копайлоты;
— темную тему;
— фокус на Python и R и многое другое.
Несмотря на некоторые ограничения, она активно развивается и может стать отличной альтернативой существующим решениям.
Самое оно побаловаться, когда PyCharm выбесил, в очередной раз «заморозившись».
#инструмент
@zen_of_python
Настраиваем паука для сбора данных: как работает фреймворк Scrapy
В Tproger разобрали основные компоненты этого популярного скрейпера — пауки, пайплайны и middleware на примерах. Если продукт действительно хорош, то для него не жалко и на разных ЯП клиенты писать.
#инструмент
@zen_of_python
Курс по основам API
Интерфейсы, протоколы, какие-то странные URL — всё это звучит сложно, пока не разложить по полочкам. А ведь API — штука, с которой сейчас сталкиваются почти все, кто так или иначе работает с IT.
Быстро понять, что такое API, как он устроен и где пригодится — можно даже без программирования. В этом базовом курсе собраны простые объяснения, реальные примеры и даже чуть-чуть практики в Insomnia. Разобраться в теме проще, чем кажется — особенно после такого разбора.
Ссылка на курс
#курс #api #general #начинающим #ru
Подкаст про Python на YouTube | новости языка за март
Еще один выпуск MoscowPython, на сей раз про:
— PEP 751 и его новый формат лог-файлов;
— улучшения в синхронных функциях;
— подтверждение навыков Python на платформе Минцифры;
— GPT для питонической разработки и многое другое.
Самое оно, чтобы с пользой провести время у экрана, когда обедаешь. Разжевано и будет понятно даже новичкам.
#факт
@zen_of_python
Сравниваем Pandas, Polars и PySpark: что выбрать аналитику?
В Tproger сравнили три популярных библиотеки: Pandas, Polars и PySpark. В статье вы узнаете про производительность, удобство использования и возможности работы с большими наборами каждой из них.
#факт
@zen_of_python
Вышел Django 5.2
В этом релизе представлены следующие ключевые нововведения:
— Автоматический импорт всех моделей в оболочке Django;
— Поддержка составных первичных ключей с использованием django.db.models.CompositePrimaryKey
;
— Упрощенное переопределение BoundField
на уровне формы, поля или проекта.
Про CompositePrimaryKeyCompositePrimaryKey
позволяет создавать первичные ключи, состоящие из нескольких полей, что особенно полезно при моделировании связей многие-ко-многим.
from django.db import models
class Product(models.Model):
name = models.CharField(max_length=100)
class Order(models.Model):
reference = models.CharField(max_length=20, primary_key=True)
class OrderLineItem(models.Model):
pk = models.CompositePrimaryKey("product_id", "order_id")
product = models.ForeignKey(Product, on_delete=models.CASCADE)
order = models.ForeignKey(Order, on_delete=models.CASCADE)
quantity = models.IntegerField()
OrderLineItem
использует составной первичный ключ, состоящий из полей product_id
и order_id
. Это гарантирует уникальность каждой комбинации продукта и заказа. Ранее для достижения подобного поведения приходилось использовать дополнительные настройки или сторонние библиотеки. Как обойтись без requirements.txt для скрипта-одиночки, или чем хорош uv
Стандарт PEP 723 и менеджер зависимостей uv упростили обращение со скриптами-одиночками. Теперь мы можем встраивать метаданные о зависимостях прямо в скрипты, что устраняет необходимость в requirements.txt или менеджерах пакетов.
Рассмотрим на простом примере скрипта wordlookup.py. Он извлекает определения слов из API словаря. Этот скрипт использует библиотеку httpx для выполнения асинхронных запросов. Вот как выглядит основной код:import argparse
import asyncio
import json
import os
import textwrap
import httpx
async def fetch_word_data(word: str) -> list:
"""Получает данные слова из API словаря."""
url = f"https://api.dictionaryapi.dev/api/v2/entries/en/{word}"
async with httpx.AsyncClient() as client:
response = await client.get(url)
response.raise_for_status()
return response.json()
async def main(word: str):
"""Получает и выводит определения для данного слова."""
data = await fetch_word_data(word)
if data:
print(f"Определения для '{word}':")
for entry in data:
for meaning in entry.get("meanings", []):
part_of_speech = meaning.get("partOfSpeech")
definitions = meaning.get("definitions", [])
if part_of_speech and definitions:
print(f"\n{part_of_speech}:")
for definition_data in definitions:
definition = definition_data.get("definition")
if definition:
print(f"- {definition}")
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Получить определения слова.")
parser.add_argument("word", type=str, help="Слово для поиска.")
args = parser.parse_args()
asyncio.run(main(args.word))
Чтобы добавить зависимость httpx в наш скрипт, мы можем использовать команду uv:uv add --script wordlookup.py httpx
После выполнения этой команды в верхней части скрипта будут добавлены метаданные о зависимостях, что позволит uv автоматически управлять установкой необходимых библиотек при запуске скрипта.
Запускаем скрипт:uv run wordlookup.py <слово>
При первом запуске uv создаст изолированную виртуальную среду и установит все необходимые зависимости. В дальнейшем uv будет использовать уже созданную среду.
#факт
@zen_of_python
Как понять партиционирование: DWH для гуманитариев
На Tproger объяснили различные типы партиционирования — диапазонное, списковое и хешевое с примерами применения. Если вы подступились к действительно объемным базам, или просто столкнулись с постфиксом _* в BigQuery или других подобных продуктах, статья поможет разобраться.
#основы #sql
@zen_of_python
Вопрос подписчика
Задает @Chellbas:
«Меня вот интересует следующая тема, я с ней столкнулся когда придумал тему и распределил логику для моего нового проекта, все этапы прошёл и подошёл к моменту выбора технологий для бекенд части, выбор пал между FastAPI и DRF, FastAPI я на данный момент использую на работе, и подумывал для разнообразия использовать DRF, и вот мы непосредственно подошли к вопросу, как используя экосистему DRF, сделать инную архитектуру, например - луковую, DDD и прочие, но Django нам навязывает же буквально Featute архитектуру, где границы приложения разбиты по модулям через команду startapp, а если писать проект на нем без этой команды, вручную настраивая все, не получается запустить и поднять сервер, как минимум из-за того что конфигурационный файл не может правильно все распределить и получается используя django мы заручники отдой архитектуры, зачастую монолитной, хотел бы услышать советы и указание что делать, возможно я как то не понимаю, очень интересно было бы послушать советы, заранее спасибо!»
#обсуждение
@zen_of_python
stumpy | ищем аномалии в Time Series
Редкое, но очень занимательное представление временных рядов — матрица (на GIF). Библиотека упрощает поиск нестандартных значений с помощью такого dataviz. Также сможет найти для вас Shapelet — кусочек выборки, типичный паттерн выборки. Поддерживает сравнение выборок.
Цена: бесплатно
Репозиторий проекта
#инструмент
@zen_of_python