Python/ django
58.8K subscribers
2.08K photos
63 videos
47 files
2.8K links
по всем вопросам @haarrp

@itchannels_telegram - 🔥 все ит-каналы

@ai_machinelearning_big_data -ML

@ArtificialIntelligencedl -AI

@datascienceiot - 📚

@pythonlbooks

РКН: clck.ru/3FmxmM
加入频道
🖥 Шпаргалка по RegEx в Python

📦 Импорт:


import re

🔍 Основные функции модуля re


re.search(pattern, string) # Ищет первое совпадение (где угодно в строке)
re.match(pattern, string) # Ищет совпадение только в начале строки
re.fullmatch(pattern, string) # Проверяет, соответствует ли вся строка шаблону
re.findall(pattern, string) # Возвращает все совпадения в виде списка
re.finditer(pattern, string) # То же, но как итератор Match-объектов
re.sub(pattern, repl, string) # Замена по шаблону
re.split(pattern, string) # Разбиение строки по шаблону


# 🧠 Основы синтаксиса шаблонов

| Шаблон | Что значит |
|---------|-------------------------------------|
| . | Любой символ, кроме \n |
| ^ | Начало строки |
| $ | Конец строки |
| * | 0 или больше повторений |
| + | 1 или больше |
| ? | 0 или 1 повторение |
| {n} | ровно n раз |
| {n,} | n или больше |
| {n,m} | от n до m |
| [] | Символьный класс |
| [^] | Отрицание символьного класса |
| | | Или (`a|b`) |
| () | Группа (захват) |
| \ | Экранирование спецсимвола |

💡 Примеры


re.search(r'\d+', 'ID=12345') # Найдёт '12345' (одно или больше цифр)
re.match(r'^\w+$', 'hello_world') # Вся строка — только буквы/цифры/_
re.findall(r'[A-Z][a-z]+', 'Mr. Smith and Dr. Brown') # ['Smith', 'Brown']
re.sub(r'\s+', '-', 'a b c') # 'a-b-c'
re.split(r'[;,\s]\s*', 'one, two;three four') # ['one', 'two', 'three', 'four']


🎯 Захват групп


text = 'Name: John, Age: 30'
match = re.search(r'Name: (\w+), Age: (\d+)', text)
if match:
print(match.group(1)) # John
print(match.group(2)) # 30


Группы можно называть:


pattern = r'(?P<name>\w+): (?P<value>\d+)'
match = re.search(pattern, 'score: 42')
match.group('name') # 'score'
match.group('value') # '42'


🧱 Комбинированные шаблоны


pattern = r'\b(?:https?://)?(www\.)?\w+\.\w+\b'
text = 'Visit https://example.com or www.test.org'
re.findall(pattern, text) # [['www.'], ['www.']]


⚠️ Полезные советы

• Всегда используйте r'' перед шаблоном, чтобы не экранировать \
re.compile(pattern) ускоряет повторное использование
• Старайтесь избегать re.match — чаще нужен re.search

Быстрая проверка шаблонов

📍 Онлайн-проверка:
- https://regex101.com/
- https://pythex.org/

Хочешь отдельную шпаргалку по re.sub с лямбдами, заменами и функциями внутри, ставь лайк 👍

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 systemd-pilot — это десктопное приложение для управления сервисами systemd на GNU/Linux системах!

🌟 По сути, это графический интерфейс для команд systemctl. Он позволяет просматривать и управлять системными сервисами, быстро развертывать новые сервисы, а также запускать, останавливать и перезапускать их. Приложение легковесное и использует всего один Python-скрипт. Также предусмотрена поддержка поиска сервисов по имени.

🔐 Лицензия: GPL-3.0

🖥 Github

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
Как найти аномалии в данных с помощью машинного обучения?

В мире данных выявление аномалий — ключевая задача, которая помогает находить неисправности, мошенничество и отклонения. Без правильных методов вы рискуете упустить важные факты, которые могут повлиять на результаты.

На открытом вебинаре 13 мая в 18:00 мск мы подробно разберем, как эффективно искать аномалии в данных с использованием популярных методов, от простых статистических до продвинутых, таких как Isolation Forest и OneClassSVM.

📣 Спикер Мария Тихонова – PhD Computer Science, Senior Data Scientist и преподаватель в одном из крупнейших университетов России.

➡️ Запишитесь на вебинар и получите скидку на большое обучение «Специализация Machine Learning»: https://otus.pw/YfwA/?erid=2W5zFH7af1a 

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
📬 BillionMail — автономная платформа для email-маркетинга и почтовых серверов

🧩 Что это такое

BillionMail — это self-hosted open-source платформа, которая позволяет:

• Настроить полноценный почтовый сервер
• Управлять рассылками email
• Отслеживать открытие писем и клики
• Контролировать доставляемость и отклонения
• Работать через браузерный интерфейс без зависимости от облака

🚀 Ключевые возможности

• Управление почтовыми ящиками и доменами
• Email-маркетинг с шаблонами, сегментами и аналитикой
• Встроенный SMTP-сервер и логика ретраев
• Поддержка DKIM, SPF, DMARC
• Мониторинг отправок, спама, bounce-статистики
• API и интеграции с внешними системами

⚙️ Технологии

• Backend: Python
• Web-интерфейс: Vue.js
• СУБД: MySQL
• Mail engine: Postfix + Dovecot
• OS: Linux-серверы (Ubuntu/Debian)

🛠 Установка


1. Установите `Docker` и `docker-compose`
2. Клонируйте репозиторий:
```bash
git clone https://github.com/aaPanel/BillionMail.git
cd BillionMail


Запустите:


docker-compose up -d


🔗 Репозиторий

@pythonl
⚡️Создаём свою нейросеть в PyTorch

Хотите быстро разобраться в PyTorch и написать свою нейросеть? Мы подготовили для вас вебинар, где на практике разберём все этапы создания ML-модели.

Вебинар проведет Владислав Агафонов — ML-инженер, ранее работал в Yandex и Huawei.

Что будет на вебинаре?
🟠Установим PyTorch в Google Colab и настроим работу на бесплатном GPU;
🟠Поймём, что такое тензоры и почему они — фундамент всех нейросетей;
🟠Скачаем готовый датасет, разберём его структуру и подготовим для обучения;
🟠Научимся использовать DataLoader для эффективной загрузки данных;
🟠Пошагово соберём облегчённую версию классической свёрточной нейронной сети (CNN);
🟠Обучим и протестируем модель.

🕗 Встречаемся 14 мая в 18:30 по МСК, будет много практики, ответы на вопросы и полезные инсайты от эксперта.

😶Зарегистрироваться на бесплатный вебинар
Please open Telegram to view this post
VIEW IN TELEGRAM
🧠 Как подготовиться к техническому собеседованию с помощью

Если ты готовишься к собеседованию в IT и не знаешь, с чего начать — обрати внимание на бесплатный курс от freeCodeCamp, основанный на знаменитом списке задач NeetCode 150.

⚙️ Что такое NeetCode 150?

🟤 Это отобранные 150 задач с LeetCode, покрывающие всё, что нужно знать:
• массивы
• строки
• хеш-таблицы
• деревья и графы
• динамическое программирование
• стек и очередь
• backtracking и двоичный поиск

🎓 Что предлагает курс freeCodeCamp:
• 38 часов подробного видеоконтента
• Каждая задача разбирается пошагово — с объяснением стратегии и кода
• Языки: Python и JavaScript
• Полностью бесплатно

📈 Почему это эффективно:
• Все задачи — реальный опыт с технических собеседований
• Структура курса позволяет идти от простого к сложному
• Удобно учиться в своем темпе

- Стартуй здесь
- Видео с разбором вопросов
- Решения

Не упусти шанс систематизировать знания и уверенно пройти собеседование!

@pythonl
Зачем Data Scientist изучать ML?

Машинное обучение — это не просто модное словосочетание. Это основа Data Science, без которой успешная карьера в этой области невозможна. Вы не сможете работать с большими данными и обучать ИИ, если не освоите методы ML.

На открытом вебинаре 19 мая в 18:00 мск вы узнаете, зачем вам ML, и научитесь решать реальную задачу: классифицировать изображения с помощью машинного обучения.

📣 Спикер Мария Тихонова – PhD Computer Science, Senior Data Scientist и преподаватель в одном из крупнейших университетов России.

➡️ Записывайтесь на открытый вебинар и получите скидку на большое обучение «Специализация Machine Learning»: https://otus.pw/49Fa3/?erid=2W5zFHaP9np 

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
🎭 Pykka — акторная модель для Python без лишних сложности. Этот проект позволяет организовывать конкурентные вычисления без традиционных проблем с состоянием и блокировками.

Вдохновлённый знаменитым Akka для JVM, Pykka предлагает минималистичный подход — никаких супервизоров или распределённых акторов, только чистые принципы обмена сообщениями между изолированными процессами.
Инструмент имеет продуманную архитектуру: разработчику достаточно определить поведение акторов, а Pykka возьмет на себя всю работу с очередями и потоками.

🤖 GitHub

@pythonl
Второй язык программирования для карьерного роста

Навык работы с Go — это хорошее дополнение к скиллсету опытного программиста. Освоить язык можно на курсе Нетологии. Это актуальная программа 2025 года, которую мы разработали с учётом последних трендов отрасли.
На курсе вас ждёт много практики: 4 проекта для портфолио, 32 задания и хакатон. За 6 месяцев вы освоите язык на продвинутом уровне и научитесь:

- писать эффективный код на Go,
- создавать высоконагруженные сервисы,
- работать с базами данных,
- встраивать Go-приложения в инфраструктуру.

Практикующий эксперт проведёт для вас 3 персональные консультации. Центр развития карьеры поможет упаковать весь опыт в сильные резюме и портфолио. Освойте Go как второй язык программирования и растите в карьере

Реклама. ООО "Нетология". ИНН 7726464125 Erid 2VSb5xBerBJ
🐍 Задача уровня Pro: декоратор с внутренним состоянием

📌 Задача:
Напиши декоратор call_limiter, который:

- ограничивает функцию f максимум до n вызовов
- после n вызова функция больше не вызывается, а возвращает строку "LIMIT REACHED"

Пример использования:


@call_limiter(3)
def greet(name):
return f"Hello, {name}!"

print(greet("Alice")) # Hello, Alice!
print(greet("Bob")) # Hello, Bob!
print(greet("Charlie"))# Hello, Charlie!
print(greet("Dave")) # LIMIT REACHED


🎯 Подвохи:
- Нужно создать декоратор-фабрику с аргументом n
- Внутри должна быть функция с nonlocal, чтобы отслеживать число вызовов
- Часто путаются и используют mutable default, что ломает независимость между декорируемыми функциями

Решение:

```python
def call_limiter(n):
def decorator(func):
count = 0
def wrapper(*args, **kwargs):
nonlocal count
if count >= n:
return "LIMIT REACHED"
count += 1
return func(*args, **kwargs)
return wrapper
return decorator
```

🧪 **Проверка:**

```python
@call_limiter(2)
def ping():
return "pong"

print(ping()) # pong
print(ping()) # pong
print(ping()) # LIMIT REACHED

@call_limiter(1)
def echo(msg):
return msg

print(echo("hi")) # hi
print(echo("bye")) # LIMIT REACHED
```

🧠 **Что проверяет задача:**

• Понимание функций высшего порядка
• Работа с `nonlocal` и областью видимости
• Контроль состояния внутри декоратора
• Умение не "засорить" глобальные или общие области



@pythonl
🤖 ACI.dev — Унифицированный доступ AI-агентов к 600+ инструментам

ACI (Agent Capability Interface) — это открытая платформа, которая позволяет AI-агентам подключаться к более чем 600 внешним инструментам и API, используя единую инфраструктуру доступа. Система включает поддержку многоарендной архитектуры (multi-tenant), гибкие разрешения и несколько режимов вызова — как через MCP-сервер, так и напрямую через SDK.

🎯 Цель проекта — предоставить ИИ-доступ к реальным действиям в цифровой среде: от отправки писем и управления календарём до взаимодействия с CRM, базами данных, DevOps-инструментами и даже пользовательскими функциями.

🧩 Основные возможности:

- 🔌 600+ готовых интеграций
Поддержка популярных платформ: Notion, Slack, Google Calendar, GitHub, Discord, Twilio, PostgreSQL и многих других.

- 🔐 Разграничение доступа и безопасность
Поддержка granular-permissions, токенов доступа, ролей, и подписанных вызовов с проверкой подлинности.

- 🧠 Интеграция с AI-агентами
Разработано для работы с open-source AI-платформами, включая AutoGen, CrewAI, LangGraph, OpenDevin, Devika и т.д.

- 🛠️ Два способа использования
1. MCP Server — единая точка входа, через которую агент может выполнять действия.
2. ACI SDK — локальное подключение и вызов возможностей напрямую из кода.

- 🌐 Webhooks и Plugin support
Поддержка обратных вызовов и подключения как внешнего плагина к другим системам (например, для LLM-агентов).

ACI — это своего рода "операционная система" для ИИ-агентов, позволяющая им действовать в реальном мире с контролем, безопасностью и масштабируемостью.

🔗 Полезные ссылки:
- GitHub
- Документация