Pythoner
6.96K subscribers
922 photos
27 videos
4 files
715 links
Полезные материалы по Python, которые будут интересны опытному и начинающему разработчику.

Сотрудничество - @flattys
Цены - @serpent_media

Канал на бирже: https://telega.in/c/pythonercode
Download Telegram
✈️В 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. Таким образом, в консоль будет выведено сообщение о создании объекта, а затем сообщение о его уничтожении.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥63👍2
✈️EasyOCR – это библиотека на Python, которая позволяет легко извлекать текст из изображений и PDF. Она поддерживает более 80 языков и идеально подходит для автоматизации обработки документов.

➡️Основная задача:
Распознавание текста на изображениях с высокой точностью, даже в сложных условиях (разные шрифты, низкое качество).

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

reader = easyocr.Reader(['ru', 'en']) # Выбираем языки (русский и английский)
result = reader.readtext('image.jpg') # Распознаём текст
print(result) # Выводим результат


🖥GitHub

💡Главный плюс:
Поддержка множества языков из коробки и простота интеграции в Python-проекты. Отлично подходит для задач автоматизации, анализа документов и обработки изображений.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥84👍4
✈️Сегодня поговорим о том, как создавать крутые 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('Поехали! 🚀')


📂Документация

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥43
✈️Практическое руководство по реализации современных языковых моделей (включая 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-ноутбуках.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍2🔥2
✈️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) без привязки к конкретной ОС.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍4🔥2
✈️pdoc – автоматически создаёт чистую и современную документацию из docstring и аннотаций типов Python. Альтернатива Sphinx с фокусом на простоту и читаемость. pdoc превращает docstring и type hints в интерактивную документацию без сложных конфигов.

➡️Пример использования:
# Генерация документации для модуля
pdoc ./my_module --output-dir ./docs


🖥GitHub

💡Плюсы:
Поддержка type hints и математических формул в Markdown из коробки.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍63🔥3
✈️Популярный 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 к команде, чтобы увидеть доступные варианты перед загрузкой.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥42
✈️Модуль filecmp — это стандартная библиотека Python для быстрого сравнения файлов и папок “из коробки”,
без ручных циклов и чтения содержимого.

➡️Когда полезно?
- Проверка совпадения файлов при резервном копировании
- Сравнение директорий при деплое, тестировании, синхронизации
- Быстрый аудит изменений между двумя версиями данных

➡️Пример сравнения файлов:
import filecmp

print(filecmp.cmp('file1.txt', 'file2.txt')) # True, если содержимое идентично


➡️Пример сравнения директорий:
import filecmp

d = filecmp.dircmp('dirA', 'dirB')
d.report() # Сводный отчёт: что совпадает, что отличается


💡Плюсы:
- Сравнение по содержимому и метаданным
- Умеет работать рекурсивно с подпапками
- Не надо писать собственные “обходы” и проверки

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥43
✈️RealtimeSTT – это Python-библиотека для потокового распознавания речи с микрофона или аудиопотока. Идеально подходит для голосовых ассистентов, транскрипции и интерактивных приложений.

➡️Ключевая функция:
Мгновенная обработка аудиопотока с минимальной задержкой, поддержка нескольких движков распознавания, включая Whisper и Vosk.

➡️Пример использования:
from realtimestt import SpeechToText

stt = SpeechToText(engine="whisper")
for text in stt.stream_from_microphone():
print("Распознано:", text)


🖥GitHub

💡Главный плюс:
Гибкость интеграции с разными движками STT и минимальные задержки – ваш голос превращается в текст практически мгновенно.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍4🔥4
Forwarded from IT memer
Программирование через пару лет

😈 IT memer
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🤣93😁2
✈️Maigret – это OSINT-инструмент, который автоматически собирает данные о профилях пользователя в интернете по заданному username, и помогает находить аккаунты пользователей по нику на сотнях сайтов, соцсетей и форумов.

➡️Пример использования:
maigret john_doe --site twitter github --timeout 10


🖥GitHub

💡Главный плюс:
Поддержка 700+ сайтов, гибкая настройка запросов и возможность сохранения результатов в удобном формате (JSON, HTML, CSV).

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥3👍2
✈️Библиотека psutil (process and system utilities) — это кроссплатформенный инструмент для мониторинга системных ресурсов и управления процессами в Python.

➡️Она предоставляет простой интерфейс для получения информации о CPU, памяти, дисках, сети и запущенных процессах.

➡️Некоторые полезные функции:
- Мониторинг использования CPU
psutil.cpu_percent()

- Информация о дисковом пространстве
psutil.disk_usage('/')

- Информация об ОЗУ
psutil.virtual_memory()

- Данные о сетевой активности
psutil.net_io_counters()

- Управление процессами
psutil.process_iter()

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍3🔥2
✈️Оператор pass в Python, возможно, является одним из наиболее непонятных для новичков. Этот оператор не делает абсолютно ничего. Но почему же он тогда нужен?

➡️Плейсхолдер для будущего кода

Во время разработки программы, вы можете встретить ситуации, когда вам нужно оставить пустое место для будущего кода. Вместо того чтобы оставлять комментарии, вы можете использовать оператор pass, чтобы указать на то, что здесь будет код. Это позволяет сохранить структуру программы и избежать ошибок синтаксиса.

➡️Минимальные классы и функции

Оператор pass может быть полезен при создании минимальных классов или функций. В Python, класс или функция не может быть пустой. Если вы попытаетесь создать пустой класс или функцию, интерпретатор вернет ошибку. Оператор pass позволяет обойти это ограничение.

➡️Управление потоком программы

Оператор pass также может быть использован для управления потоком программы. Иногда в условной конструкции if/elif/else или в цикле for/while может не быть необходимости выполнять какое-либо действие. В этих случаях можно использовать оператор pass для обозначения пустого блока.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍4🔥2🥰1
✈️httpdbg – это инструмент для отладки HTTP-запросов в Python. Он перехватывает и логирует все исходящие запросы, помогая быстро находить ошибки в работе с API.

➡️Ключевая функция:
Позволяет в реальном времени видеть все HTTP-запросы, включая URL, заголовки и тело, без модификации кода.

➡️Пример использования:
import httpdbg  
import requests

with httpdbg.init() as records:
requests.get("https://api.example.com/data")

for record in records:
print(record) # вывод деталей запроса


🖥GitHub

💡Заключение:
httpdbg автоматизирует отладку HTTP-взаимодействий, экономя время на ручном анализе запросов. Отлично подходит для тестирования API и веб-скрапинга!

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍2🔥2
✈️Radon – это инструмент для статического анализа Python-кода, который вычисляет метрики сложности, такие как цикломатическая сложность и индекс поддерживаемости.

➡️Основная задача:
Автоматически оценивать сложность кода и выявлять потенциально проблемные участки.

➡️Пример использования:
# Анализ цикломатической функции
from radon.complexity import cc_visit

code = """
def example(x):
if x > 0:
return x + 1
else:
return x - 1
"""

result = cc_visit(code)
print(result) # Выводит метрики сложности


🖥GitHub

💡Главный плюс:
Radon помогает поддерживать чистый и читаемый код, автоматизируя анализ сложности и интеграцию в CI/CD.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍1🔥1
✈️Python-Statemachine - библиотека которая помогает удобно управлять переходами между разными состояниями в программе. Например, как светофор меняет цвета: «зелёный → жёлтый → красный».

➡️Она поможет избежать хаоса в коде, когда у вас много условий типа «если состояние X, то сделать Y». Вместо этого вы описываете логику переходов один раз — и библиотека сама следит за правильностью.

➡️Пример (как сделать светофор):
from statemachine import StateMachine, State

class TrafficLight(StateMachine):
green = State('Зелёный', initial=True) # Начинаем с зелёного
yellow = State('Жёлтый')
red = State('Красный')

switch = (
green.to(yellow) # Зелёный → Жёлтый
| yellow.to(red) # Жёлтый → Красный
| red.to(green) # Красный → Зелёный
)

light = TrafficLight()
light.switch() # Меняем состояние
print(light.current_state) # Теперь "Жёлтый"


💡Заключеие:
Всё наглядно: состояния и переходы видны сразу, а не спрятаны в куче if-else. Подходит для любых процессов, где есть чёткие этапы — от игр до бизнес-логики.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍2🔥2
🔥3👍21🤓1
Что выдаст код выше
Anonymous Quiz
48%
True
25%
False
5%
None
23%
Error
🤯7👍2🤨1
🤔Разбор

В Python кортежи сравниваются лексикографически (поэлементно, слева направо).
Сначала сравниваются первые элементы: 100 > 1 → True.
Если первые элементы равны, сравниваются вторые элементы. Но в данном случае первое сравнение уже даёт результат

Ответ: A


🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
8🔥4👍1
✈️PySimpleGUI — это популярный фреймворк для создания простых графических интерфейсов пользователя.
Он позволяет быстро создавать интерфейсы при помощи Python, без необходимости изучать сложные GUI библиотеки, такие как Tkinter, Qt или wxPython.

➡️PySimpleGUI широко используется для создания небольших утилит и инструментов с GUI, например:
— Простые GUI для скриптов автоматизации.
— Инструменты для обработки и визуализации данных.
— Маленькие вспомогательные приложения для повседневных задач.

💡Основные преимущества PySimpleGUI:
- Простой и интуитивно понятный синтаксис.
- Кроссплатформенность: работает на Windows, MacOS, Linux.
- Встроенная поддержка многих виджетов и тем оформления.
- Автоматическое размещение элементов GUI.

🖥GitHub

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍51🔥1👻1
✈️Pandera — это удобный инструмент для проверки структуры и содержимого данных в Python. Он работает как дополнительный слой валидации поверх pandas DataFrame и других структур данных, помогая выявлять ошибки на ранних этапах обработки.

➡️Основные применения:
- Определение схемы. Например, схема, которая проверяет, что столбец 1 должен быть целым числом, большим 0, а столбец 2 — строкой с более чем 5 символами.

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

- Проверка нескольких фреймов данных. Pandera позволяет определять схемы с проверками по нескольким столбцам. Например, схема, которая проверяет, что сумма столбцов 1 и 2 больше 0.

🖥 GitHub

💡Основная задача Pandera — гарантировать соответствие данных ожидаемой схеме: типам, диапазонам значений и бизнес-правилам.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍1🔥1