58174
Всё самое интересное из мира Python Связь: @devmangx РКН: https://clck.ru/3GMMF6
Управление глазами с помощью Python
EyeGestures — это открытая библиотека на Python для отслеживания взгляда. Использует обычные камеры, веб-камеры или камеры смартфонов, чтобы отслеживать движение глаз, фиксации и моргания, и конвертировать это в события, вроде управления курсором движением глаз
Версия на JavaScript позволяет запускать всё прямо в браузере
Установка:
$ git clone https://github.com/NativeSensors/EyeGestures.git
$ cd EyeGestures
$ pip install -r requirements.txt
python3 -m pip install eyeGestures
Шпаргалка по Git-командам
🔸Конфигурация
- git config --global user.name "Your Name"
Задаёт имя для коммитов глобально (для всех репозиториев).
- git config --global user.email "you@example.com"
Задаёт email для коммитов глобально.
- git config --list
Показывает все настройки конфигурации Git.
🔸Репозиторий и удалённые репозитории
- git init
Инициализирует новый Git-репозиторий в текущей директории.
- git clone <repo>
Создаёт локальную копию удалённого репозитория.
- git remote add <name> <url>
Добавляет новый удалённый репозиторий с именем и URL.
- git remote remove <name>
Удаляет удалённый репозиторий по имени.
- git remote rename <old-name> <new-name>
Переименовывает удалённый репозиторий.
🔸Ветки
- git branch
Список всех веток в репозитории.
- git branch <branch-name>
Создаёт новую ветку с указанным именем.
- git checkout -b <branch-name>
Создаёт новую ветку и сразу переключается на неё.
- git checkout <branch-name>
Переключается на указанную ветку.
- git merge <branch>
Сливает изменения из указанной ветки в текущую.
- git rebase <branch>
Переносит коммиты из текущей ветки поверх другой.
- git branch -d <branch-name>
Удаляет ветку, которая уже была слита.
- git branch -D <branch-name>
Принудительно удаляет ветку, независимо от её состояния.
🔸Индексация и коммиты
- git add <file>
Добавляет изменения в указанный файл в staging.
- git add .
Добавляет все изменения в текущей директории и подпапках.
- git commit -m "message"
Фиксирует проиндексированные изменения с сообщением.
- git commit --amend
Изменяет последний коммит (сообщение или содержимое).
🔸Отмена изменений
- git reset <file>
Убирает файл из staging (оставляет изменения).
- git reset HEAD~1
Отменяет последний коммит, но сохраняет изменения в рабочей директории.
🔸Просмотр изменений
- git status
Показывает состояние рабочего каталога и staging.
- git diff
Показывает различия между рабочей директорией и индексом.
- git diff --staged
Показывает различия между staged-изменениями и последним коммитом.
🔸История
- git log
Показывает историю коммитов текущей ветки.
- git log --oneline
Сокращённый лог (одна строка на коммит).
- git show <commit>
Показывает информацию о конкретном коммите.
- git blame <file>
Показывает последнюю модификацию для каждой строки файла.
🔸Stash
- git stash
Сохраняет текущие изменения во временное хранилище.
- git stash list
Список всех stash-записей.
- git stash apply
Применяет изменения из последнего stash.
- git stash drop
Удаляет конкретный stash.
- git stash pop
Применяет последний stash и удаляет его.
🔸Работа с удалённым репозиторием
- git pull
Загружает изменения из удалённого репозитория и сливает их.
- git push
Отправляет локальные коммиты в удалённый репозиторий.
- git push origin <branch>
Отправляет указанную ветку в удалённый репозиторий.
- git fetch
Загружает изменения из удалённого репозитория без слияния.
- git fetch --all
Обновляет все удалённые репозитории.
🔸Теги
- git tag <tag-name>
Создаёт тег для определённого коммита.
- git tag -a <tag-name> -m "message"
Создаёт аннотированный тег с сообщением.
- git push origin <tag-name>
Отправляет тег в удалённый репозиторий.
- git tag -d <tag-name>
Удаляет тег локально.
🔸Продвинутые команды
- git cherry-pick <commit>
Применяет изменения из указанного коммита в текущую ветку.
- git rebase -i HEAD~n
Интерактивный rebase для последних *n* коммитов.
- git reflog
Показывает журнал всех действий в репозитории.
- git bisect
Позволяет найти коммит с багом методом бинарного поиска.
- git describe
Показывает последний тег, доступный для коммита.
👉 @PythonPortal
Нужно потестить HTTPS локально в Python?
Вот простое решение в 3 шага — удобно для проверки SSL/TLS, интеграций с API или любых приложений, которым нужен HTTPS в dev-среде.
Только для локальной разработки, браузер будет ругаться на самоподписанный сертификат. 😋
Для NodeJS есть альтернатива: web.dev
👉 @PythonPortal
PyAutoGUI
Крайне любопытная библиотека языка Python, позволяющая превратить твой ПК в автоматизированную систему
За пару строчек кода можно заставить скрипт сделать скриншот, заставить мышку навести на нужную точку на экране, взаимодействовать с различными параметрами окон, написать слово или целый абзац или даже загуглить за тебя 🚬
Вот так можно создать простейший кликер:
import pyautogui
import time
def click():
time.sleep(0.1)
pyautogui.click()
def main():
for i in range(20):
click()
main()
Шпаргалка по очистке данных в Python Pandas
1. Обзор данных
import pandas as pd
df = pd.read_csv('data.csv') # Загрузить CSV
df.head(5) # Первые 5 строк
df.info() # Типы данных и количество null
df.describe() # Сводная статистика
df.isnull().sum() # Посчитать пропуски
df.dropna() # Удалить строки с null
df.fillna(0) # Заполнить пропуски нулями
df.duplicated().sum() # Посчитать дубликаты
df.drop_duplicates() # Удалить дубликаты
df.rename(columns={'old': 'new'}) # Переименовать колонку
df.astype({'col': 'int'}) # Сменить тип данных
df.columns.str.strip() # Убрать пробелыdf.loc[df['col'] > 100] # Фильтр по условию
df.iloc[0:5] # Выбор по индексу строк
df['col'].isin(['A', 'B']) # Фильтр по значениям
df.sort_values('col') # Сортировка по возрастанию
df.groupby('group')['val'].mean() # Группировка и агрегация
df['col'].value_counts() # Подсчёт уникальных значенийdf['new'] = df['col1'] + df['col2'] # Новая колонка
df['col'] = df['col'].apply(lambda x: x*2) # Применить функцию
df.drop('col', axis=1) # Удалить колонку
df.to_csv('cleaned.csv', index=False) # Экспорт в CSV
FastAPI теперь официально самый популярный веб-фреймворк среди Python-разработчиков 🎉
А вот ещё несколько интересных фактов из свежего опроса State of Python 2025 от JetBrains:
> 51% используют Python для работы с данными
> 46% применяют его для веб-разработки
> Половина сообщества — новички
> 83% всё ещё сидят на старых версиях Python
Подробный разбор: https://jb.gg/python-25
👉 @PythonPortal
Строй полноценные full-stack веб-приложения, используя только Python
Пиши полностью готовые приложения с фронтендом и бэкендом на Python без необходимости учить JavaScript или вести отдельные кодовые базы.
reflex это фреймворк на Python, который позволяет делать фронт и бэк одним языком. ты пишешь UI, логику, состояние, всё в Python, а Reflex сам компилит интерфейс на React/Next.js и запускает backend на FastAPI с WebSocket’ами для реактивности
Полностью опенсорс 😋
👉 @PythonPortal
Часто используемые методы строк в Python
Если работаешь с текстом, эти методы пригодятся в 99% случаев 🥸
👉 @PythonPortal
🥇 Пройди ЛЮБОЕ собеседование!
Большая база вопросов с реальных собеседований:
→ Тинькофф, Авито, Сбер, Озон, Яндекс, VK и еще 100+ компаний
→ 20+ направлений: Frontend, Backend, DevOps, QA, Mobile и другие
→ 60+ технологий: React, Python, Docker, Git, Java, Go, JavaScript и не только
Выбирай направление:
👩💻 C# 🤖 ML Engineer
👩💻 C/C++ 🖥 Data Science
👩💻 Java 👩💻 Python
🖥 PHP 👩💻 Frontend
👣 Rust 👣 Golang
👩💻 Node.js 💻 DevOps
👩💻 QA 👩💻 Android
👩💻 iOS 👩💻 Game Dev
🖥 Общее IT 👨💻 Вакансии
База обновляется еженедельно — всегда актуальные вопросы с последних собеседований.
💸 Хочешь оффер в Big Tech? Готовься с нами!
Делюсь с вами очень полезной шпаргалкой — типы импорта и их отличия
И да, ставь лайк, если пригодится 🥸
👉 @PythonPortal
Нашёл на Хабре годную статью -> Фундаментальные шаблоны проектирования на Python
Разбираются классические паттерны на языке программирования python:
наблюдатель, адаптер, команда, компоновщик, декоратор, фасад, фабрика, итератор, заместитель, одиночка, состояние, шаблонный метод. 🍿
👉 @PythonPortal
Этот репозиторий содержит подборку всего необходимого для работы с библиотеками, связанными с ИИ и LLM.
Более 120 библиотек, отсортированных по этапам разработки LLM:
→ Обучение, дообучение и оценка LLM-моделей
→ Интеграция и деплой приложений с LLM и RAG
→ Быстрый и масштабируемый запуск моделей
→ Работа с данными: извлечение, структурирование и генерация синтетики
→ Создание автономных агентов на базе LLM
→ Оптимизация промптов и обеспечение безопасного использования в проде
👉 @PythonPortal
Когда все-таки согласился на пятничный деплой 😉
👉 @PythonPortal
Microsoft выпустила новый курс по MCP для Python-разработчиков.
Курс полностью бесплатный и с открытым исходным кодом.
GitHub : https://github.com/microsoft/lets-learn-mcp-python
👉 @PythonPortal
Помни, что итераторы в Python (и не только) рассчитаны на одно использование.
Когда ты прошёл по всем элементам, назад «перемотать» их нельзя.
Это поведение называется исчерпание итератора
umbers = [1, 2, 3]
reversed_numbers = reversed(numbers)
print(list(reversed_numbers)) # [3, 2, 1]
print(list(reversed_numbers)) # [] — итератор уже пуст
reversed_numbers = reversed(numbers)
print(list(reversed_numbers)) # [3, 2, 1] снова работает
Ещё играть не начал, а уже пройти не может
👉 @PythonPortal
Совет по Python:
Вы можете заставить аргументы быть только позиционными, используя символ / в сигнатуре функции.
def add(x, y, /):
return x + y
add(1, 2)
add(x=1, y=2) # TypeError: add() got some positional-only arguments passed as keyword arguments: 'x, y'
Шпаргалка по регулярным выражениям
В ней собрано, как работают якори, классы символов, кванторы, диапазоны, утверждения, спецсимволы, модификаторы и подстановки, плюс примеры готовых шаблонов вроде поиска дат, e-mail или HTML-тегов.
Пригодится 👍
👉 @PythonPortal
Хак для VS Code
Устали постоянно печатать print()?
Настройте свой шорткат, например: pp → print() при нажатии Tab 😎
В видео примере, текст "cc" автоматически расширяется в "console.log()" при нажатии Tab
Можно создать кучу таких сокращений для любых конструкций. Пользуйтесь =))
👉 @PythonPortal
Шпаргалка по Python
Она включает всё, что нужно - от основ до продвинутых тем, с примерами кода и практическими советам
Сохраняем и пользуемся 🐒
👉 @PythonPortal
Совет по Python:
Для асинхронного чтения файлов используй aiofiles вместе с асинхронными генераторами — это позволит не блокировать event loop при работе с большими файлами.
👉 @PythonPortal
Хочешь выучить Python быстро и с нуля? Тогда вот что тебе нужно — CodeEasy: Python Essentials
🔹Объясняет сложное простыми словами
🔹Основан на реальной истории с заданиями по ходу сюжета
🔹Бесплатный старт
Готов начать? Жми сюда 🌟
👉 @PythonPortal
На GitHub обнаружился ещё один мощный open-source инструмент для текста в речь на Python — Abogen
Позволяет быстро конвертировать ePub, PDF или обычные текстовые файлы в аудио высокого качества с автогенерацией синхронизированных субтитров.
Основные фичи:
🔸Поддержка входных файлов в форматах ePub, PDF и TXT
🔸Генерация естественной, плавной речи на базе модели Kokoro-82M
🔸Автоматическое создание субтитров с временной разметкой
🔸Встроенный микшер голосов для кастомизации звучания
🔸Поддержка нескольких языков, включая китайский, английский, японский и др.
🔸Обработка нескольких файлов через пакетную очередь
👉 @PythonPortal