Schematics — это библиотека для простой и мощной валидации и преобразования данных в Python. Она позволяет создавать модели данных с различными правилами и типами, что обеспечивает строгий контроль над структурой данных.
Подходит для разработчиков, которые хотят легко описывать схемы данных и автоматически валидировать и преобразовывать их перед использованием.
from schematics.models import Model
from schematics.types import StringType, IntType, EmailType
from schematics.exceptions import DataError
# Определение модели данных
class User(Model):
name = StringType(required=True, max_length=10)
age = IntType(required=True, min_value=18, max_value=99)
email = EmailType(required=True)
# Проверка корректных данных
user_data = {'name': 'Alice', 'age': 24, 'email': 'alice@example.com'}
try:
user = User(user_data)
user.validate()
print("Данные корректны:", user.to_native())
except DataError as e:
print("Ошибки в данных:", e)
# Попытка валидации некорректных данных
invalid_data = {'name': '', 'age': 'twenty', 'email': 'bob@example'}
try:
invalid_user = User(invalid_data)
invalid_user.validate()
except DataError as e:
print("Ошибки в данных:", e)
pip install schematics
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤1
🏭 Применение ML для оптимизации работы питательных электронасосов в ТЭЦ металлургического комбината
Как машинное обучение помогло оптимизировать работу насосов на ТЭЦ и сэкономить заводу 19,6 млн рублей.
Разбираем алгоритмы, параметры оборудования и почему даже одинаковые агрегаты работают по-разному.
🖥 Перейти к статье
🐍 Ghostly Python | #статьи
Как машинное обучение помогло оптимизировать работу насосов на ТЭЦ и сэкономить заводу 19,6 млн рублей.
Разбираем алгоритмы, параметры оборудования и почему даже одинаковые агрегаты работают по-разному.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥2❤1
Разбираем
@overload из модуля typing: как аннотировать функции с разными сигнатурами, улучшить автодополнение в IDE и сделать код понятнее.Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Обычно, когда нужно игнорировать определённые исключения, мы можем встретить такой код:
try:
os.remove("file.txt") # Удаляем файл, если он существует
except FileNotFoundError:
pass # Игнорируем ошибку, если файла нет
Но Python предлагает более лаконичный способ —
contextlib.suppress:from contextlib import suppress
import os
with suppress(FileNotFoundError):
os.remove("file.txt") # Ошибка просто не возникнет
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥4❤🔥1
Разбираем, как ускорить Python с C-расширениями. Пишем свою библиотеку на C, подключаем через Python.h, тестируем на алгоритмах и сравниваем с чистым Python.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Сегодня напишем простой Python-скрипт для мониторинга использования оперативной памяти. Если использование RAM превышает заданный порог, скрипт отправит уведомление. Это поможет предотвратить перегрузку системы.
import psutil
import smtplib
from email.mime.text import MIMEText
# Порог использования памяти (в %)
THRESHOLD = 80
# Email для уведомления
EMAIL = "your_email@example.com"
SMTP_SERVER = "smtp.example.com"
SMTP_PORT = 587
SMTP_LOGIN = "your_email@example.com"
SMTP_PASSWORD = "your_password"
# Получаем текущее использование RAM
memory_usage = psutil.virtual_memory().percent
if memory_usage > THRESHOLD:
msg = MIMEText(f"Внимание! Использование памяти достигло {memory_usage}%")
msg["Subject"] = "Memory Alert"
msg["From"] = EMAIL
msg["To"] = EMAIL
with smtplib.SMTP(SMTP_SERVER, SMTP_PORT) as server:
server.starttls()
server.login(SMTP_LOGIN, SMTP_PASSWORD)
server.sendmail(EMAIL, EMAIL, msg.as_string())
print(f"Текущее использование памяти: {memory_usage}%")
1. Используем
psutil для получения текущего уровня использования оперативной памяти.2. Если значение превышает 80%, отправляем уведомление по email.
3. SMTP-сервер используется для отправки писем, можно заменить на другой почтовый сервис.
Такой скрипт полезен для мониторинга состояния серверов и предупреждения нехватки памяти.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9✍1
Стоит ли учить Python в 2025 году? Разбираем плюсы и минусы языка, его востребованность в IT и карьерные перспективы. А ещё немного юмора от Егора Векслера.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Please open Telegram to view this post
VIEW IN TELEGRAM
😁15
Иногда в коде приходится повторно вычислять одни и те же данные, что снижает производительность. Например, рассмотрим функцию, вычисляющую числа Фибоначчи:
def fib(n):
if n <= 1:
return n
return fib(n - 1) + fib(n - 2)
n выполнение занимает очень много времени из-за многократных вызовов одной и той же функции.functools.lru_cache:from functools import lru_cache
@lru_cache(maxsize=None)
def fib(n):
if n <= 1:
return n
return fib(n - 1) + fib(n - 2)
maxsize, чтобы ограничить размер кэша.Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Разбираем, что такое boxplot (он же «ящик с усами») и почему он так полезен. Узнаем, как быстро оценивать медиану, разброс данных и находить выбросы, не вглядываясь в цифры.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Собрали главные новости Python за январь 2025: новый безопасный интерфейс для отладки CPython, итоги опроса Facebook о типах, изменения в PEP 8 и свежий баттл Django vs FastAPI.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
В этой статье вы вкратце узнаете о 22 полезных примерах кода, позволяющих воспользоваться мощью Python.
Некоторые из примеров вы могли уже видеть ранее, а другие будут новыми и интересными для вас. Все эти примеры легко запоминаются.
Проверка дубликатов, фильтрация, получение размера в байтах и другие полезные фишки языка.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤🔥3👎2
Pypika — это мощный конструктор SQL-запросов для Python, который позволяет создавать сложные запросы программно без написания чистого SQL.
Подходит для разработчиков, которые хотят динамически генерировать SQL-запросы, избегая ручного формирования строк SQL и предотвращая SQL-инъекции.
from pypika import Query, Table
# Определяем таблицу
users = Table("users")
# Создаем SQL-запрос
query = Query.from_(users).select(users.id, users.name).where(users.age > 18)
print(query) # SELECT "id","name" FROM "users" WHERE "age">18
• Pypika делает работу с SQL более удобной и безопасной, особенно для сложных запросов в ORM или API.pip install pypika
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🦄1
В этой статье мы познакомимся с Apache Kafka. Мы напишем демо пример Kafka Consumer'а на Python и запустим его в облачном сервисе Confluent Cloud.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Вместо сложных циклов и временных словарей для группировки элементов можно использовать
itertools.groupby(). Этот инструмент позволяет эффективно группировать отсортированные данные по ключу.from itertools import groupby
data = [("яблоко", "фрукт"), ("морковь", "овощ"), ("банан", "фрукт"), ("капуста", "овощ")]
# Сортируем перед группировкой
data.sort(key=lambda x: x[1])
# Группируем по категории
for category, items in groupby(data, key=lambda x: x[1]):
print(category, list(items))
groupby не сработает правильно).groupby автоматически объединяет элементы, у которых одинаковый ключ."фрукты" и "овощи" собраны в отдельные группы без лишнего кода.Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
Разбираем модуль argparse в Python: как парсить аргументы, обрабатывать значения и делать удобный CLI. Всё просто, понятно и без лишних сложностей.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Typer — это библиотека для создания CLI (Command Line Interface) приложений на Python. Она построена на основе FastAPI и Click, что делает её мощной, но при этом удобной для работы с аргументами и опциями командной строки.
import typer
app = typer.Typer()
@app.command()
def hello(name: str):
"""Приветствие пользователя"""
typer.echo(f"Привет, {name}!")
if __name__ == "__main__":
app()
python script.py hello Алексей
Привет, Алексей!
• Typer позволяет быстро разрабатывать удобные CLI-приложения, с минимальными усилиями. Генерирует документацию, поддерживает автодополнение и аннотации типов Python.pip install typer[all]
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
Разбираем основы работы с RabbitMQ: как развернуть брокер сообщений на сервере, настроить панель управления и правильно обрабатывать сообщения без потерь и дублирования.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Здесь вы найдете статьи, пошаговые руководства, видеоуроки и курсы по различным аспектам Python: от основ до продвинутых тем, таких как асинхронное программирование и веб-разработка.
Примечательно, что материалы постоянно обновляются, а авторы подробно объясняют концепции с примерами кода.
Если хотите улучшить навыки программирования на Python — сохраняйте👍
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤2