TG Telegram Group Link
Channel: Zen of Python
Back to Bottom
PEP 751 принят: Python получит стандартный lock-файл для точной установки зависимостей

Создатели языка утвердили ввод стандартного lock-файл для проекта. Это обеспечит установку фиксированных версий зависимостей и значительно упростит управление и воссоздание проекта на новой машине.

Существующие решения — pip freeze, pip-tools, Poetry, PDM, uv используют разные форматы, не совместимые друг с другом и требуют отдельной логики от инструментов и пользователей. Новый стандарт должен устранить эту фрагментацию.

#факт

@zen_of_python
👍213
Вопросы подписчиков

Zen of Python поддерживает новоприбывших (и не только) в особой рубрике. Как это работает:

— Спрашивайте что угодно (в комментариях под этим постом), связанное с Python. Здесь нет плохих вопросов!
— Сообщество вас поддержит. Самые интересные вопросы мы разберём в отдельном посте;

#вопросы_новичков

@zen_of_python
Вопросы подписчиков

Zen of Python поддерживает новоприбывших (и не только) в особой рубрике. Как это работает:

— Спрашивайте что угодно (в комментариях под этим постом), связанное с Python. Здесь нет плохих вопросов!
— Сообщество вас поддержит. Самые интересные вопросы мы разберём в отдельном посте;

#вопросы_новичков

@zen_of_python
Придумайте подпись к фото, но так, чтобы это относилось к языку программирования.

Было очень непросто определить победителя прошлого такого интерактива, но это @maxim_ag и @levisserena.

#кек 

@zen_of_python
🤨1
* Непереводимая игра слов *

#кек

@zen_of_python
👍2
«Чем ближе к вокзалу, тем хуже кебаб»

Настало время действительно важных проблем человечества. Один француз — дата-сайентист, проверил эту гипотезу, сосредоточив внимание на Париже из-за его плотной сети железнодорожных и метро-станций, а также большого количества заведений, предлагающих кебаб.​ Результат вас удивит.

#кек

@zen_of_python
🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
stumpy | ищем аномалии в Time Series

Редкое, но очень занимательное представление временных рядов — матрица (на GIF). Библиотека упрощает поиск нестандартных значений с помощью такого dataviz. Также сможет найти для вас Shapelet — кусочек выборки, типичный паттерн выборки. Поддерживает сравнение выборок.

Цена: бесплатно
Репозиторий проекта

#инструмент

@zen_of_python
👍2🆒1
stealthkit | requests на стероидах

Инструментарий для скрытого доступа и обхода систем безопасности. Среди фичей:

Ротация User-Agent: Автоматически меняет user-agent из Chrome, Edge и Safari на различных операционных системах (Windows, MacOS, Linux);
Случайный выбор Referer: Симулирует реальное поведение браузинга, отправляя запросы с рандомизированными referer'ами из поисковых систем;
Обработка куки: Извлекает и сохраняет куки с указанных URL для поддержания постоянства сессии;
— Поддержка прокси: Позволяет маршрутизировать запросы через предоставленный прокси;
Логика повторных попыток: Повторяет неудачные запросы до трех раз перед тем, как сдаться;
RESTful запросы: Поддерживает GET, POST, PUT и DELETE с автоматической интеграцией прокси.

Репозиторий проекта

#инструмент

@zen_of_python
👍1
Вопрос подписчика

Задает @Chellbas:

«Меня вот интересует следующая тема, я с ней столкнулся когда придумал тему и распределил логику для моего нового проекта, все этапы прошёл и подошёл к моменту выбора технологий для бекенд части, выбор пал между FastAPI и DRF, FastAPI я на данный момент использую на работе, и подумывал для разнообразия использовать DRF, и вот мы непосредственно подошли к вопросу, как используя экосистему DRF, сделать инную архитектуру, например - луковую, DDD и прочие, но Django нам навязывает же буквально Featute архитектуру, где границы приложения разбиты по модулям через команду startapp, а если писать проект на нем без этой команды, вручную настраивая все, не получается запустить и поднять сервер, как минимум из-за того что конфигурационный файл не может правильно все распределить и получается используя django мы заручники отдой архитектуры, зачастую монолитной, хотел бы услышать советы и указание что делать, возможно я как то не понимаю, очень интересно было бы послушать советы, заранее спасибо!»

#обсуждение

@zen_of_python
🤔2🔥1
Forwarded from Типичный программист
5 игр, чтобы подучить SQL (и не уснуть по дороге)

SQLPD — расследуете преступления как аналитик SQL-полиции. Каждое задание — отдельное дело.

SQL Island — выживаете после крушения на острове, выполняя SQL-задачи, чтобы выбраться.

SQL Murder Mystery — ищете убийцу в базе данных. Свобода действий и минимум подсказок.

Lost at SQL — спасаете подлодку и команду, проходя сюжетные SQL-челленджи.

SQL Squid Game Решаете задачи по мотивам игры в кальмара, чтобы не повторить судьбу коллеги-аналитика.

#игры #sql
4👍4🔥2
Как понять партиционирование: DWH для гуманитариев

На Tproger объяснили различные типы партиционирования — диапазонное, списковое и хешевое с примерами применения. Если вы подступились к действительно объемным базам, или просто столкнулись с постфиксом _* в BigQuery или других подобных продуктах, статья поможет разобраться.

#основы #sql

@zen_of_python
👍1
Квиз про качество кода в Python

Небольшая англоязычная викторина на 13 вопросов, посвященная читаемости, переиспользованию, масштабируемости и другим параметрам качества. Подготовиться можно с помощью статьи.

#квиз
@zen_of_python
1
Как обойтись без 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
👍5🔥42
airflow-ai-sdk | Оркестрация на откуп GPT

Этот репозиторий позволяет создавать DAG в Airflow и управлять таковыми с помощью ИИ-ассистентов на ваш выбор (хоть ChatGPT, хоть Groq).

Админ ликует, ведь Airflow без должной информационной поддержки легко становится той еще занозой.

Репозиторий проекта
#инструмент
@zen_of_python
👏21
Вышел Django 5.2

В этом релизе представлены следующие ключевые нововведения:​
— Автоматический импорт всех моделей в оболочке Django;
— Поддержка составных первичных ключей с использованием django.db.models.CompositePrimaryKey;
— Упрощенное переопределение BoundField на уровне формы, поля или проекта.​

Про CompositePrimaryKey

CompositePrimaryKey позволяет создавать первичные ключи, состоящие из нескольких полей, что особенно полезно при моделировании связей многие-ко-многим.​


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. Это гарантирует уникальность каждой комбинации продукта и заказа. Ранее для достижения подобного поведения приходилось использовать дополнительные настройки или сторонние библиотеки. ​

#django #факт
@zen_of_python
👍43🎃1
Сравниваем Pandas, Polars и PySpark: что выбрать аналитику?

В Tproger сравнили три популярных библиотеки: Pandas, Polars и PySpark. В статье вы узнаете про производительность, удобство использования и возможности работы с большими наборами каждой из них.

#факт

@zen_of_python
👍21🤷1
Forwarded from Нейроканал
This media is not supported in your browser
VIEW IN TELEGRAM
Когда навайбкодил приложение в СhatGPT и уже подсчитываешь миллионы своего стартапа.

То самое приложение:
🔥7😁52
HTML Embed Code:
2025/07/08 15:35:59
Back to Top