Pythoner
Відкрити в Telegram
Полезные материалы по Python, которые будут интересны опытному и начинающему разработчику. Сотрудничество - @flattys Цены - @serpent_media Канал на бирже: https://telega.in/c/pythonercode
Показати більше6 622
Підписники
+124 години
-87 днів
-4030 день
Архів дописів
6 621
✈️Maigret – это OSINT-инструмент, который автоматически собирает данные о профилях пользователя в интернете по заданному username, и помогает находить аккаунты пользователей по нику на сотнях сайтов, соцсетей и форумов.
➡️Пример использования:
maigret john_doe --site twitter github --timeout 10
🖥GitHub
💡Главный плюс:
Поддержка 700+ сайтов, гибкая настройка запросов и возможность сохранения результатов в удобном формате (JSON, HTML, CSV).
🐍 Pythoner6 621
📱 Держите 6 хороших каналов по искусственному интеллекту и программированию для любого уровня!
Выбирай направление:
📱 Нейросети — @neuro_prompt
🤖 AI-инструменты — @ai_prompt
📱 Python — @python_prompt
🤔 InfoSec & Хакинг — @infosec_prompt
👩💻 IT Новости — @it_news
😄 IT Мемы — @it_memes
Промпты, обучение, шпаргалки и полезные ресурсы на каждую тему!
6 621
✈️RealtimeSTT – это Python-библиотека для потокового распознавания речи с микрофона или аудиопотока. Идеально подходит для голосовых ассистентов, транскрипции и интерактивных приложений.
➡️Ключевая функция:
Мгновенная обработка аудиопотока с минимальной задержкой, поддержка нескольких движков распознавания, включая Whisper и Vosk.
➡️Пример использования:
from realtimestt import SpeechToText
stt = SpeechToText(engine="whisper")
for text in stt.stream_from_microphone():
print("Распознано:", text)
🖥GitHub
💡Главный плюс:
Гибкость интеграции с разными движками STT и минимальные задержки – ваш голос превращается в текст практически мгновенно.
🐍 Pythoner6 621
✈️Модуль filecmp — это стандартная библиотека Python для быстрого сравнения файлов и папок “из коробки”,
без ручных циклов и чтения содержимого.
➡️Когда полезно?
- Проверка совпадения файлов при резервном копировании
- Сравнение директорий при деплое, тестировании, синхронизации
- Быстрый аудит изменений между двумя версиями данных
➡️Пример сравнения файлов:
import filecmp
print(filecmp.cmp('file1.txt', 'file2.txt')) # True, если содержимое идентично
➡️Пример сравнения директорий:
import filecmp
d = filecmp.dircmp('dirA', 'dirB')
d.report() # Сводный отчёт: что совпадает, что отличается
💡Плюсы:
- Сравнение по содержимому и метаданным
- Умеет работать рекурсивно с подпапками
- Не надо писать собственные “обходы” и проверки
🐍 Pythoner6 621
✈️Популярный Python-инструмент для скачивания видео, аудио и изображений с 1000+ сайтов (YouTube, Twitter, Bilibili и др.). Работает напрямую через командную строку без API-ключей.
➡️Пример использования:
# Скачать видео/аудио по ссылке (автоопределение качества)
you-get https://www.youtube.com/watch?v=dQWgXcQ
# Показать доступные форматы без скачивания
you-get --info https://vimeo.com/1236789
# Скачать конкретный формат (по itag)
you-get --itag=137 https://youtu.be/VIDEO_ID # 4K
you-get --itag=140 https://youtu.be/VIDEO_ID # Аудио 128kbps
💡Хотите выбрать качество? Добавьте --info к команде, чтобы увидеть доступные варианты перед загрузкой.
🐍 Pythoner6 621
Запустите рекламу в телеграм-каналах с Яндекс Директом
Перфоманс-реклама теперь в телеграм-каналах ⚡
Яндекс Директ знает, как привлечь целевую аудиторию 💰👌
Попробовать
#реклама
yandex.ru
О рекламодателе
6 621
✈️pdoc – автоматически создаёт чистую и современную документацию из docstring и аннотаций типов Python. Альтернатива Sphinx с фокусом на простоту и читаемость. pdoc превращает docstring и type hints в интерактивную документацию без сложных конфигов.
➡️Пример использования:
# Генерация документации для модуля
pdoc ./my_module --output-dir ./docs
🖥GitHub
💡Плюсы:
Поддержка type hints и математических формул в Markdown из коробки.
🐍 Pythoner6 621
✈️Keyring – библиотека для работы с системным хранилищем учетных данных (Keychain, KWallet, Secret Service). Позволяет безопасно хранить и получать пароли, используя механизмы защиты ОС.
➡️Главная задача:
Устраняет необходимость хранения паролей в конфигах или коде, используя защищенные системные хранилища.
➡️Пример использования:
import keyring
# Сохранение
keyring.set_password("my_app", "username", "secret123")
# Получение
password = keyring.get_password("my_app", "username")
🖥GitHub
💡Ключевое преимущество:
Кроссплатформенная работа с нативными хранилищами (Windows Credential Locker, macOS Keychain, Linux Secret Service) без привязки к конкретной ОС.6 621
✈️Практическое руководство по реализации современных языковых моделей (включая GPT) на чистом Python и PyTorch. Идеально для изучения архитектуры LLM без использования готовых библиотек.
➡️Главная задача:
Понять внутреннее устройство трансформеров и механизмов self-attention через построение моделей поэтапно — от токенизации до генерации текста.
➡️Установка (клонирование репозитория):
git clone https://github.com/rasbt/LLMs-from-scratch.git
cd LLMs-from-scratch
pip install -r requirements.txt
➡️Упрощенный пример для наглядности:
from src.model import GPT
# Создание экземпляра модели
model = GPT(vocab_size=10000, n_heads=8, n_layers=6)
# Обучение модели
model.train(text_data, epochs=10)
🖥GitHub
💡Основной плюс:
Полная прозрачность реализации — каждый компонент (positional encoding, multi-head attention) написан вручную с пояснениями в Jupyter-ноутбуках.
🐍 Pythoner6 621
✈️Сегодня поговорим о том, как создавать крутые CLI-приложения с помощью Click. Если вам надоело писать бесконечные if'ы для обработки аргументов командной строки, то этот пост определенно для вас!
➡️Начнем с того, почему вообще стоит использовать Click, а не встроенный argparse:
—Декораторный подход, который выглядит элегантно и интуитивно понятен
—Автоматическая генерация справки и сообщений об ошибках
—Вложенные команды из коробки
—Поддержка автодополнения в shell
➡️Давайте посмотрим на простой, но реальный пример. Представим, что мы делаем утилиту для работы с файлами:
import click
@click.group()
def cli():
"""Утилита для работы с файлами"""
pass
@cli.command()
@click.argument('path')
@click.option('--lines', '-l', is_flag=True, help='Показать количество строк')
def analyze(path, lines):
"""Анализирует файл и выводит статистику"""
try:
with open(path) as f:
content = f.readlines()
if lines:
click.echo(f'Количество строк: {len(content)}')
except FileNotFoundError:
click.secho('Файл не найден! 😱', fg='red')
if __name__ == '__main__':
cli()
Крутая штука в Click – это то, как легко добавлять новые команды. Хотите добавить подкоманду? Просто навешиваете еще один декоратор!
➡️А теперь лайфхак, который многие упускают: Click умеет создавать красивые прогресс-бары:
@cli.command()
@click.argument('path')
def process(path):
"""Обрабатывает файлы с прогресс-баром"""
files = os.listdir(path)
with click.progressbar(files, label='Обработка файлов') as bar:
for f in bar:
# что-то делаем с файлом
time.sleep(0.1)
➡️Про что еще стоит знать?
Click отлично работает с цветным выводом. Хотите привлечь внимание пользователя? Используйте click.secho():
click.secho('Внимание! 🚨', fg='yellow', bold=True)
click.secho('Ошибка! ❌', fg='red')
click.secho('Успех! ✅', fg='green')
➡️И напоследок, трюк – создание интерактивных подтверждений:
if click.confirm('Уверены, что хотите удалить все файлы? 🤔'):
click.echo('Поехали! 🚀')
📂Документация
🐍 Pythoner6 621
✈️EasyOCR – это библиотека на Python, которая позволяет легко извлекать текст из изображений и PDF. Она поддерживает более 80 языков и идеально подходит для автоматизации обработки документов.
➡️Основная задача:
Распознавание текста на изображениях с высокой точностью, даже в сложных условиях (разные шрифты, низкое качество).
➡️Пример использования:
import easyocr
reader = easyocr.Reader(['ru', 'en']) # Выбираем языки (русский и английский)
result = reader.readtext('image.jpg') # Распознаём текст
print(result) # Выводим результат
🖥GitHub
💡Главный плюс:
Поддержка множества языков из коробки и простота интеграции в Python-проекты. Отлично подходит для задач автоматизации, анализа документов и обработки изображений.
🐍Pythoner6 621
✈️В Python деструкторы — это специальные методы, которые вызываются, когда объект собирается с мусором (т.е., когда он больше не нужен и память, занимаемая объектом, освобождается). Деструкторы позволяют выполнить некоторые завершающие действия перед уничтожением объекта, например, освободить ресурсы или завершить соединения.
➡️Применение деструкторов ограничено в связи с наличием сборщика мусора. Их стоит использовать только когда нужно правильно освободить внешние ресурсы, например файлы.
➡️Вот пример класса с деструктором:
class MyClass:
def __init__(self, name):
self.name = name
print(f"Объект {self.name} создан.")
def __del__(self):
print(f"Объект {self.name} уничтожен.")
# Создаем объект класса
obj = MyClass("TestObject")
# Удаляем объект
del obj
# Если вы хотите избежать автоматического освобождения памяти,
# можете использовать осмысленное завершение программы, например:
import time
time.sleep(1) # daем немного времени, чтобы увидеть сообщение деструктора
⬆️В этом примере создается объект MyClass, после чего его деструктор будет вызван при удалении объекта с помощью команды del obj. Таким образом, в консоль будет выведено сообщение о создании объекта, а затем сообщение о его уничтожении.
🐍Pythoner6 621
✈️glom – это библиотека для обработки и трансформации данных в Python. Она помогает легко извлекать, преобразовывать и структурировать сложные данные, такие как JSON или вложенные словари.
➡️ Ключевая функция:
Позволяет работать с глубоко вложенными структурами данных через простой и читаемый синтаксис, заменяя многострочные операции цепочками .get() или вложенными циклами.
➡️Пример использования:
from glom import glom
data = {'a': {'b': {'c': 'Hello, glom!'}}}
result = glom(data, 'a.b.c') # Достаём значение по цепочке ключей
print(result) # Вывод: 'Hello, glom!'
🖥GitHub
💡Главный плюс:
Уменьшает сложность кода при работе с глубоко вложенными структурами, делая его чище и удобнее для поддержки.
🐍Pythoner6 621
✈️Бинарный поиск - это эффективный алгоритм поиска элемента в упорядоченном списке данных.
➡️Бинарный поиск основан на принципе "разделяй и властвуй". Он работает следующим образом: сначала мы определяем середину списка и сравниваем искомый элемент с этой серединой. Если элемент равен середине, то поиск завершается успешно. Если элемент меньше середины, то мы продолжаем поиск в левой половине списка. Если элемент больше середины, то мы продолжаем поиск в правой половине списка. Повторяем эти шаги до тех пор, пока не найдем искомый элемент или пока список не будет пустым.
➡️Вот пример реализации бинарного поиска на языке Python:
def binary_search(arr, target):
left = 0
right = len(arr) - 1
while left <= right:
mid = (left + right) // 2
if arr[mid] == target:
return mid
elif arr[mid] < target:
left = mid + 1
else:
right = mid - 1
return -1
# Пример использования
arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
target = 5
result = binary_search(arr, target)
if result != -1:
print("Элемент найден в позиции", result)
else:
print("Элемент не найден")
➡️Преимущества бинарного поиска
Бинарный поиск обладает несколькими преимуществами по сравнению с другими алгоритмами поиска. Во-первых, он имеет временную сложность O(log n), что делает его очень эффективным даже для больших списков данных. Во-вторых, он работает только с упорядоченными списками, что позволяет сократить количество операций поиска. И, наконец, бинарный поиск является универсальным и может быть применен для поиска элементов в любом упорядоченном списке данных.
🐍Pythoner6 621
✈️DockerPyze – удобная библиотека для работы с Docker из Python. DockerPyze позволяет управлять Docker-контейнерами прямо из Python-кода — запускать, останавливать и проверять их статус без сложных команд.
➡️Зачем нужно:
Чтобы автоматизировать работу с Docker через простые Python-скрипты вместо ручных команд в терминале.
➡️Пример использования:
from dockerpyze import DockerClient
# Подключаемся к Docker
docker = DockerClient()
# Получаем список всех контейнеров
containers = docker.list_containers()
print(f"Запущено контейнеров: {len(containers)}")
🖥 GitHub
💡Заключение
- Работает со всем, что умеет Docker.
- Команды как в Python — понятные и читаемые.
- Не нужно самому разбирать ошибки — библиотека сделает это за вас.
🐍 Pythoner6 621
✈️Библиотека для контроля нагрузки при выполнении асинхронных HTTP-запросов или любых других корутин. Позволяет ограничивать количество одновременных операций с гибкими настройками.
➡️Главная функция:
Ограничивает RPS (запросов в секунду) и количество одновременных соединений — защищает сервисы от перегрузки при парсинге или работе с API.
➡️Пример использования:
import aiometer
import httpx
async def fetch(url):
async with httpx.AsyncClient() as client:
return await client.get(url)
urls = [...] # Список URL
results = await aiometer.run_on_each(fetch, urls, max_per_second=5)
🖥GitHub
💡Особенно полезно:
Интеграция с asyncio и anyio + поддержка кастомных лимитеров. Замена самописным «костылям» с семафорами.
🐍 Pythoner