Kodduu Python
1.08K subscribers
311 photos
28 videos
186 links
Научись программировать на Python на интересных примерах

Самый быстрый курс https://stepik.org/a/187914
Самый нескучный курс https://stepik.org/a/185238

Во вопросам сотрудничества: @AlexErf
Download Telegram
Forwarded from AIGENTTO
Сходил на закрытую конференцию Yandex.

Вынес оттуда самое ценное — вот этот стикер 😇

Подпишись 👉🏻 @aigentto 🤖
2
📊 Генерация отчетов в формате PDF с использованием ReportLab


from reportlab.lib.pagesizes import letter
from reportlab.lib import colors
from reportlab.platypus import SimpleDocTemplate, Table, TableStyle

def create_pdf_report(file_path: str, data: list):
try:
document = SimpleDocTemplate(file_path, pagesize=letter)
elements = []

table = Table(data)
table.setStyle(TableStyle([
('BACKGROUND', (0, 0), (-1, 0), colors.grey),
('TEXTCOLOR', (0, 0), (-1, 0), colors.whitesmoke),
('ALIGN', (0, 0), (-1, -1), 'CENTER'),
('FONTNAME', (0, 0), (-1, 0), 'Helvetica-Bold'),
('BOTTOMPADDING', (0, 0), (-1, 0), 12),
('BACKGROUND', (0, 1), (-1, -1), colors.beige),
('GRID', (0, 0), (-1, -1), 1, colors.black)
]))

elements.append(table)
document.build(elements)
print(f"PDF report created successfully at {file_path}")

except Exception as e:
print(f"An error occurred: {e}")

# Пример использования
data = [
["ID", "Name", "Role"],
[1, "Alice", "Developer"],
[2, "Bob", "Designer"],
[3, "Charlie", "Manager"]
]
create_pdf_report("report.pdf", data)


📌 Этот код создает PDF-отчет с таблицей, используя библиотеку ReportLab. Он подходит для автоматизации отчетов, где данные могут
быть динамически извлечены из базы данных или другого источника. Код обрабатывает ошибки и создает отчет в указанном файле.

Подпишись 👉🏻 @KodduuPython 🤖
🤔2🔥1
🧪 Тестирование веб-приложений с Selenium и Pytest


from selenium import webdriver
from selenium.webdriver.common.by import By
import pytest

@pytest.fixture
def browser():
driver = webdriver.Chrome()
yield driver
driver.quit()

def test_google_search(browser):
browser.get("https://www.google.com")
search_box = browser.find_element(By.NAME, "q")
search_box.send_keys("Python")
search_box.submit()

results = browser.find_elements(By.CSS_SELECTOR, "div.g")
assert len(results) > 0, "Результаты поиска не найдены."

# Запуск теста: pytest имя_файла.py


📌 Этот код демонстрирует, как использовать Selenium и Pytest для автоматического тестирования веб-приложений. Мы создаем тест,
который открывает Google, выполняет поиск по запросу "Python" и проверяет наличие результатов. Такой подход помогает
автоматизировать проверку функциональности веб-приложений, улучшая качество и надежность продукта.

🛠 Установите библиотеки с помощью команды: pip install selenium pytest (Также потребуется установить ChromeDriver для работы с
браузером Chrome)

Подпишись 👉🏻 @KodduuPython 🤖
🔌 Создание RESTful API для управления IoT устройствами с FastAPI


from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
from typing import Dict

app = FastAPI()

# Структура данных для устройства
class Device(BaseModel):
id: int
name: str
status: str

# Хранилище устройств
devices: Dict = {}

@app.post("/devices/", response_model=Device)
def create_device(device: Device):
if device.id in devices:
raise HTTPException(status_code=400, detail="Device with this ID already exists")
devices = device
return device

@app.get("/devices/{device_id}", response_model=Device)
def read_device(device_id: int):
if device_id not in devices:
raise HTTPException(status_code=404, detail="Device not found")
return devices

@app.put("/devices/{device_id}", response_model=Device)
def update_device(device_id: int, device: Device):
if device_id not in devices:
raise HTTPException(status_code=404, detail="Device not found")
devices = device
return device

@app.delete("/devices/{device_id}", response_model=Device)
def delete_device(device_id: int):
if device_id not in devices:
raise HTTPException(status_code=404, detail="Device not found")
deleted_device = devices.pop(device_id)
return deleted_device

# Пример использования
# Запустите сервер: uvicorn script_name:app --reload


📌 Этот код предоставляет базовый RESTful API для управления IoT устройствами с использованием FastAPI. Вы можете добавлять,
читать, обновлять и удалять устройства из хранилища, что позволяет легко управлять состоянием ваших IoT устройств. Такое API может
быть полезно для приложений умного дома, где нужно централизованно контролировать различные устройства.

🛠 Установите необходимые библиотеки: pip install fastapi uvicorn

Подпишись 👉🏻 @KodduuPython 🤖
👍1
🌦️ Асинхронное взаимодействие с API OpenWeather


import aiohttp
import asyncio
from typing import Dict, Any

API_KEY = 'your_openweather_api_key'
BASE_URL = 'http://api.openweathermap.org/data/2.5/weather'

async def fetch_weather_data(city: str) -> Dict:
async with aiohttp.ClientSession() as session:
params = {'q': city, 'appid': API_KEY, 'units': 'metric'}
async with session.get(BASE_URL, params=params) as response:
if response.status == 200:
return await response.json()
else:
raise Exception(f"Ошибка при получении данных: {response.status}")

async def main():
city = "Moscow"
try:
weather_data = await fetch_weather_data(city)
print(f"Погода в {city}: {weather_data['main']['temp']}°C")
except Exception as e:
print(f"Ошибка: {e}")

if __name__ == "__main__":
asyncio.run(main())


📌 Этот код демонстрирует, как использовать асинхронные запросы для взаимодействия с OpenWeather API. Мы создаем асинхронный
клиент, который получает и обрабатывает данные о погоде для указанного города. Такой подход позволяет эффективно работать с API,
минимизируя задержки и улучшая производительность приложения.

Подпишись 👉🏻 @KodduuPython 🤖
📊 Автоматизация обработки данных в Pandas


import pandas as pd

def clean_data(file_path: str) -> pd.DataFrame:
try:
df = pd.read_csv(file_path)
df.dropna(inplace=True)
df.drop_duplicates(inplace=True)
df.columns = df.columns.str.strip().str.lower().str.replace(' ', '_')
return df
except FileNotFoundError:
print(f"Файл не найден: {file_path}")
return pd.DataFrame()
except pd.errors.EmptyDataError:
print("Файл пустой.")
return pd.DataFrame()
except Exception as e:
print(f"Ошибка при обработке файла: {e}")
return pd.DataFrame()

# Пример использования
dataframe = clean_data('data.csv')
print(dataframe.head())


📌 Этот код автоматически очищает данные в CSV-файле: удаляет пропуски и дубликаты, а также форматирует имена столбцов. Это упрощает предварительную
обработку данных для анализа, что полезно аналитикам и разработчикам, работающим с большими наборами данных.

🛠 pip install pandas

Подпишись 👉🏻 @KodduuPython 🤖
Forwarded from AIGENTTO
Агенты общаются как люди (без оркестрации)

Вот пример общения агентов без оркестрации — они как люди сами решают, что делать и когда делать, а когда не делать...

1️⃣ Пришел запрос от пользователя.

2️⃣ Проверка пользователя на анонимность (если залогинен, то разрешаем).

3️⃣ Агент не блокировал НЕ персональный вопрос.

4️⃣ Агент-юрист понял, что вопрос не по его теме.

5️⃣ Агенту HR разрешено всё, он попытался найти инфу в документах компании, но не смог 😀.

6️⃣ Forward-agent понял, что на вопрос никто не ответил, и приказал его отправить людям 👨.

7️⃣ Агент task tracker взял и создал задачу на человека с этим вопросом.

Подпишись 👉🏻 @aigentto 🤖
👍1🤔1
🔧 Автоматизация управления облачными ресурсами с использованием AWS SDK и Python


import boto3
from botocore.exceptions import NoCredentialsError, PartialCredentialsError

def create_ec2_instance(image_id: str, instance_type: str, key_name: str) -> str:
"""Создает EC2-инстанс с указанными параметрами."""
ec2 = boto3.resource('ec2')
try:
instance = ec2.create_instances(
ImageId=image_id,
InstanceType=instance_type,
KeyName=key_name,
MinCount=1,
MaxCount=1
)[0]
return f"EC2 Instance {instance.id} создан."
except (NoCredentialsError, PartialCredentialsError):
return "Ошибка: Учетные данные AWS не найдены."
except Exception as e:
return f"Ошибка при создании инстанса: {e}"

# Пример использования
print(create_ec2_instance('ami-12345678', 't2.micro', 'my-key-pair'))


📌 Этот код демонстрирует автоматизацию управления облачными ресурсами AWS с использованием AWS SDK для Python (boto3). Скрипт позволяет создавать EC2-инстансы, что может значительно ускорить работу с ресурсами AWS для разработчиков и системных администраторов.

Подпишись 👉🏻 @KodduuPython 🤖