❤7👍2🔥1
Эквивалентно a is b and b is c. None - единственный объект, а, b, с на него ссылаются
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍4🔥2
Ограничивает 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)
Интеграция с asyncio и anyio + поддержка кастомных лимитеров. Замена самописным «костылям» с семафорами.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍4🔥3
Чтобы автоматизировать работу с Docker через простые Python-скрипты вместо ручных команд в терминале.
from dockerpyze import DockerClient
# Подключаемся к Docker
docker = DockerClient()
# Получаем список всех контейнеров
containers = docker.list_containers()
print(f"Запущено контейнеров: {len(containers)}")
- Работает со всем, что умеет Docker.
- Команды как в Python — понятные и читаемые.
- Не нужно самому разбирать ошибки — библиотека сделает это за вас.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤1
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), что делает его очень эффективным даже для больших списков данных. Во-вторых, он работает только с упорядоченными списками, что позволяет сократить количество операций поиска. И, наконец, бинарный поиск является универсальным и может быть применен для поиска элементов в любом упорядоченном списке данных.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤4⚡1🔥1🤔1
Позволяет работать с глубоко вложенными структурами данных через простой и читаемый синтаксис, заменяя многострочные операции цепочками
.get() или вложенными циклами.from glom import glom
data = {'a': {'b': {'c': 'Hello, glom!'}}}
result = glom(data, 'a.b.c') # Достаём значение по цепочке ключей
print(result) # Вывод: 'Hello, glom!'
Уменьшает сложность кода при работе с глубоко вложенными структурами, делая его чище и удобнее для поддержки.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍3🔥2
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. Таким образом, в консоль будет выведено сообщение о создании объекта, а затем сообщение о его уничтожении. Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6❤3👍2
Распознавание текста на изображениях с высокой точностью, даже в сложных условиях (разные шрифты, низкое качество).
import easyocr
reader = easyocr.Reader(['ru', 'en']) # Выбираем языки (русский и английский)
result = reader.readtext('image.jpg') # Распознаём текст
print(result) # Выводим результат
Поддержка множества языков из коробки и простота интеграции в Python-проекты. Отлично подходит для задач автоматизации, анализа документов и обработки изображений.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8❤4👍4
—Декораторный подход, который выглядит элегантно и интуитивно понятен
—Автоматическая генерация справки и сообщений об ошибках
—Вложенные команды из коробки
—Поддержка автодополнения в 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 – это то, как легко добавлять новые команды. Хотите добавить подкоманду? Просто навешиваете еще один декоратор!
@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('Поехали! 🚀')Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥4❤3
Понять внутреннее устройство трансформеров и механизмов 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)
Полная прозрачность реализации — каждый компонент (positional encoding, multi-head attention) написан вручную с пояснениями в Jupyter-ноутбуках.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍2🔥2
Устраняет необходимость хранения паролей в конфигах или коде, используя защищенные системные хранилища.
import keyring
# Сохранение
keyring.set_password("my_app", "username", "secret123")
# Получение
password = keyring.get_password("my_app", "username")
Кроссплатформенная работа с нативными хранилищами (Windows Credential Locker, macOS Keychain, Linux Secret Service) без привязки к конкретной ОС.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍4🔥2
# Генерация документации для модуля
pdoc ./my_module --output-dir ./docs
Поддержка type hints и математических формул в Markdown из коробки.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤3🔥3
# Скачать видео/аудио по ссылке (автоопределение качества)
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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥4❤2
без ручных циклов и чтения содержимого.
- Проверка совпадения файлов при резервном копировании
- Сравнение директорий при деплое, тестировании, синхронизации
- Быстрый аудит изменений между двумя версиями данных
import filecmp
print(filecmp.cmp('file1.txt', 'file2.txt')) # True, если содержимое идентично
import filecmp
d = filecmp.dircmp('dirA', 'dirB')
d.report() # Сводный отчёт: что совпадает, что отличается
- Сравнение по содержимому и метаданным
- Умеет работать рекурсивно с подпапками
- Не надо писать собственные “обходы” и проверки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥4❤3
Мгновенная обработка аудиопотока с минимальной задержкой, поддержка нескольких движков распознавания, включая Whisper и Vosk.
from realtimestt import SpeechToText
stt = SpeechToText(engine="whisper")
for text in stt.stream_from_microphone():
print("Распознано:", text)
Гибкость интеграции с разными движками STT и минимальные задержки – ваш голос превращается в текст практически мгновенно.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍4🔥4
maigret john_doe --site twitter github --timeout 10
Поддержка 700+ сайтов, гибкая настройка запросов и возможность сохранения результатов в удобном формате (JSON, HTML, CSV).
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6🔥3👍2
- Мониторинг использования CPU
psutil.cpu_percent()
- Информация о дисковом пространстве
psutil.disk_usage('/')
- Информация об ОЗУ
psutil.virtual_memory()
- Данные о сетевой активности
psutil.net_io_counters()
- Управление процессами
psutil.process_iter()
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍3🔥2
Во время разработки программы, вы можете встретить ситуации, когда вам нужно оставить пустое место для будущего кода. Вместо того чтобы оставлять комментарии, вы можете использовать оператор
pass, чтобы указать на то, что здесь будет код. Это позволяет сохранить структуру программы и избежать ошибок синтаксиса.Оператор
pass может быть полезен при создании минимальных классов или функций. В Python, класс или функция не может быть пустой. Если вы попытаетесь создать пустой класс или функцию, интерпретатор вернет ошибку. Оператор pass позволяет обойти это ограничение.Оператор
pass также может быть использован для управления потоком программы. Иногда в условной конструкции if/elif/else или в цикле for/while может не быть необходимости выполнять какое-либо действие. В этих случаях можно использовать оператор pass для обозначения пустого блока.Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍4🔥2🥰1