pure-utils🟢 Стандартная библиотека только — нет внешних зависимостей, всё “чистый Python”.🟢 Поддержка аннотаций типов, чистый интерфейс, утилиты без побочных эффектов.🟢 Возможность использовать стандартные структуры данных, но с полезными дополнениями (например, расширенные методы работы с контейнерами).🟢 Хорошая документация и примеры использования.
pip install pure-utils
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤3
Pillow (для работы с изображениями), openpyxl или xlsxwriter (для чтения данных из Excel / CSV), os, argparse и др.from PIL import Image, ImageDraw, ImageFont
import csv
import os
def generate_cert(template_path, data_csv, output_folder, font_path, font_size, text_position):
img = Image.open(template_path)
draw = ImageDraw.Draw(img)
font = ImageFont.truetype(font_path, font_size)
with open(data_csv, newline='', encoding='utf-8') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
name = row['name']
cert = img.copy()
d = ImageDraw.Draw(cert)
d.text(text_position, name, font=font, fill=(0, 0, 0))
out_path = os.path.join(output_folder, f"cert_{name}.png")
cert.save(out_path)
print(f"Saved certificate for {name} → {out_path}")
if __name__ == "__main__":
generate_cert(
template_path="templates/cert_template.png",
data_csv="data/people.csv",
output_folder="out",
font_path="fonts/Times.ttf",
font_size=64,
text_position=(300, 400)
)
🟢 Читает CSV / Excel с именами (и другими данными)🟢 Открывает шаблон сертификата как изображение🟢 Накладывает текст (имя / данные) в указанную позицию🟢 Сохраняет индивидуальные сертификаты для каждого в отдельный файл🟢 Можно масштабировать: для 1000 человек — запуск скрипта, отдых
#скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤7👍6🔥3
Olipy🟢 Модули с разными эстетическими эффектами: можно применять стили, трансформации, декорации к тексту.🟢 Использует TextBlob для разбора текста; при установке подгружаются зависимости, но сама Olipy — относительно лёгкий компонент к экосистеме.🟢 Поставляется с примерами скриптов, которые показывают, как генерировать стилизованный текст как отдельные утилиты.
pip install olipy
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥3❤2
riddle.py из репозитория Trivernis/python-utility-scriptsrequests, os, argparse (в репозитории указаны зависимости) riddle.py — скрипт, который скачивает все изображения из одного или нескольких сабреддитов. Удобен, если ты хочешь быстро собрать изображения по теме, не вручную копируя ссылки. import os
import requests
import argparse
def download_subreddit_images(subreddit, limit=50, dest="downloads"):
os.makedirs(dest, exist_ok=True)
url = f"https://www.reddit.com/r/{subreddit}/.json?limit={limit}"
headers = {"User-Agent": "Mozilla/5.0"}
resp = requests.get(url, headers=headers)
data = resp.json()
for post in data.get("data", {}).get("children", []):
img_url = post["data"].get("url")
if img_url and (img_url.endswith(".jpg") or img_url.endswith(".png")):
filename = os.path.basename(img_url)
path = os.path.join(dest, filename)
try:
img_data = requests.get(img_url).content
with open(path, "wb") as f:
f.write(img_data)
print("Downloaded:", filename)
except Exception as e:
print("Ошибка скачивания", img_url, e)
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Download images from subreddit")
parser.add_argument("subreddit", help="Name of subreddit")
parser.add_argument("--limit", type=int, default=20, help="How many posts to parse")
parser.add_argument("--dest", default="downloads", help="Destination folder")
args = parser.parse_args()
download_subreddit_images(args.subreddit, limit=args.limit, dest=args.dest)
🟢 Делает HTTP-запрос к API Reddit (JSON)🟢 Парсит посты, проверяет, есть ли в url изображения (.jpg/.png)🟢 Скачивает найденные изображения в папку🟢 Поддерживает указание количества постов через параметр limit🟢 Печатает статус каждого скачанного файла
#скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍3🔥2
PyXAB📌 PyXAB — библиотека для X-armed бандитов и онлайн blackbox оптимизации. Предназначена для задач, где пространство действий непрерывно или высокоразмерно, и классические дискретные методы бандитов не подходят. Реализует такие алгоритмы, как HOO, StoSOO, HCT, GPO и др., а также даёт инструменты для оценки и синтетические функции для экспериментов.
🟢 Поддерживает несколько алгоритмов X-armed бандитов — HOO, StoSOO, HCT, а также более современные подходы GPO, VHCT и др.🟢 Встроенные синтетические функции (test functions) для отладки и сравнительной оценки алгоритмов.🟢 Гибкость в выборе разбиения пространства, параметров модели и стратегии поиска.🟢 Документированная программная обвязка: интерфейсы для запуска экспериментов, анализа результатов, визуализации.🟢 Открытая лицензия MIT, исходники на GitHub, доступна через PyPI.
pip install pyxab
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥4❤2
• Установка зависимостей:
pip install winshell tqdm pywin32
• Запуск:
python cleanup.py
🟢 Автоматически чистит “мусор” на Windows: рабочий стол, временные директории, логи и др.🟢 Имеет удобное меню, чтобы выбрать, что именно очистить.🟢 Запрашивает права администратора, если нужно.🟢 Показывает прогресс операций и логирует действия.
#скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3😁3❤2🔥1
python_utilities/Parallelizer💾 Модули:
multiprocessing, threading, os, io_tools, scripting — часть общей библиотеки утилит python_utilities на GitHub. from python_utilities.parallel import Parallelizer, make_data_iterator
from python_utilities.scripting import setup_logging
def process_item(item, constant=10):
return item * constant
def main():
setup_logging()
data = list(range(100))
par = Parallelizer(func=process_item, data=data, n_jobs=4)
results = par.run()
print(results)
if __name__ == "__main__":
main()
🟢 Унифицирует способы параллелизации: локально или распределённо🟢 Не требует переписывания кода функций под “parallel” — простая обёртка🟢 Подходит для обработки больших наборов данных или задач, которые можно распараллелить
#скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5🔥1
Generic-Util🟢 Содержит модули примерно таких групп: benchmarking — контекст-менеджеры и функции, чтобы измерять время выполнения разных реализаций, и суммировать результаты.🟢 Утилиты “функционального стиля” (маппинг, фильтрация, композиция), которые облегчают работу, особенно если часто пишешь вспомогательный код.🟢 Не зависит от внешних тяжёлых библиотек, использует стандартную библиотеку + минимум нужного.🟢 Подходит, когда надо быстро сравнить реализации, профилировать, или просто сделать утилиту “на лету”, не заморачиваясь с boilerplate.
pip install Generic-Util
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤5🔥3
os, shutil (стандартные), python_minifier (для удаления пробелов/комментариев и “минификации”), GitPython (для работы с git, если скрипты из репозитория). packer.py из gist пользователя JMcrafter26 автоматически берёт заданный перечень файлов Python (основной + вспомогательные), минифицирует их, объединяет в один файл — удобно для дистрибуции, когда хочется отправить один “собранный” скрипт вместо множества модулей. import os
import shutil
from python_minifier import minify
from git import Repo # GitPython
# Настройки
remove_comments = True
minify_rename_vars = False
program_allowed = [
'main_server.py',
'packets.py',
'protocol.py',
'regex_patterns.py',
'socket_handler.py',
]
def load_files(files):
contents = []
for file in files:
with open(file, 'r', encoding='utf-8') as f:
text = f.read()
if remove_comments:
# python_minifier(minify) сам удаляет комментарии
text = minify(text, rename_locals=minify_rename_vars)
contents.append(f"# Begin {file}\n" + text + f"\n# End {file}\n")
return "\n".join(contents)
def package_script(output_file='packaged.py'):
code = load_files(program_allowed)
with open(output_file, 'w', encoding='utf-8') as f:
f.write(code)
print(f"Packaged into {output_file}")
if name == "__main__":
package_script()
🟢 Берёт список Python файлов, объединяет их содержимое в один файл.🟢 Минифицирует код: убирает комментарии, пробелы, возможно переименование переменных.🟢 Позволяет собрать все модули проекта в один “соло-скрипт”, удобно для простого деплоя или когда структура проекта не критична.🟢 Уменьшает количество файлов, упрощает распространение скрипта без множества зависимостей файловой структуры.
#скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍4🔥2
pypi-latest📌 pypi-latest — утилита-библиотека, которая проверяет, является ли установленная версия пакета на твоём компьютере самой последней, доступной на PyPI. Удобна, если ты работаешь с множеством зависимостей и хочешь быстро убедиться, что всё “в актуале”.
🟢 Простота — минимализм: всего одна задача — проверка версии и сообщение о необходимости обновления.🟢 Работает как библиотека и как инструмент командной строки.🟢 Лёгкая зависимость — не требует множества дополнительных пакетов.🟢 Может быть интегрирована в скрипты или CI-процессы, чтобы автоматически предупреждать разработчика, что пакет устарел.
pip install pypi-latest
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤3🔥1
Установка:
cd autoDownloader
pip install -r requirements.txt
Конфиг
config.json:{
"items": [
{
"name": "Новости Блога",
"dest_dir": "/home/user/auto_downloads",
"provider": {
"type": "RssProvider",
"url": "https://someblog.com/rss.xml",
"xpaths": {
"title": "/item/title",
"items": "//item",
"url": "/item/link"
}
},
"cache": {
"type": "FileCache",
"path": "/home/user/auto_downloads/cache.txt"
},
"downloader": {
"type": "HttpDownloader",
"method": "GET"
},
"post_downloads_script": "/home/user/scripts/notify_new.sh"
}
]
}🟢 Проверяет источники на новые записи / ссылки🟢 Если появляются новые URL — скачивает🟢 Использует кэш, чтобы не перезагружать то, что уже скачано🟢 Можно подцепить свои скрипты перед/после скачивания, чтобы делать автоматические действия🟢 Отлично подходит для автоматизации сбора данных, распространения материалов или мониторинга новых публикаций
#скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤3👍3
python-magic🟠 Определение формата по содержимому: magic.from_file("file") или magic.from_buffer(data) — когда файл ещё не записан на диск.🟠 Можно вернуть MIME-тип: mime=True.🟠 Может быть небезопасным для параллельного использования (не потокобезопасен) при некоторых конфигурациях.🟠 Требует установить libmagic (C-библиотека) на систему: на Linux/Unix её обычно устанавливают через менеджер пакетов, на Windows — использовать python-magic-bin с DLL.
pip install python-magic
На Windows:
pip install python-magic-bin
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8❤4👍2
📱
Python 3.xurllib.request, json, os, subprocess, getopt — используется встроенный HTTP-API GitHub и системные вызовы git clone. import getopt
import json
import os
import subprocess
import sys
from urllib.request import urlopen
def Usage():
print("Usage: %s -u <github user> -d <directory>" % sys.argv[0])
def main():
githubUser = ''
destDirectory = ''
try:
opts, args = getopt.getopt(sys.argv[1:], "u:d:h")
for o, a in opts:
if o == '-u':
githubUser = a
elif o == '-d':
destDirectory = a
elif o == '-h':
Usage()
sys.exit(0)
except getopt.GetoptError as e:
print(str(e))
Usage()
sys.exit(2)
if not githubUser or not destDirectory:
print("Use -u for GitHub user, -d for destination dir")
Usage()
sys.exit(0)
reposLink = f"https://api.github.com/users/{githubUser}/repos?type=all&per_page=100&page=1"
f = urlopen(reposLink)
repos = json.loads(f.readline())
print("Total repos:", len(repos))
os.makedirs(destDirectory, exist_ok=True)
os.chdir(destDirectory)
os.makedirs("repos", exist_ok=True)
os.makedirs("gists", exist_ok=True)
# Скачиваем репозитории
os.chdir("repos")
for repo in repos:
print("Cloning:", repo['html_url'])
subprocess.call(['git', 'clone', repo['html_url']])
# Скачиваем гисты
os.chdir("../gists")
gistsLink = f"https://api.github.com/users/{githubUser}/gists"
f = urlopen(gistsLink)
gists = json.loads(f.readline())
print("Total gists:", len(gists))
for gist in gists:
print("Cloning gist:", gist.get('git_pull_url'))
subprocess.call(['git', 'clone', gist.get('git_pull_url')])
if __name__ == "__main__":
main()
🟢 Получает список репозиториев пользователя через GitHub API🟢 Клонирует каждый репозиторий командой git clone🟢 Получает список гистов и клонирует их как отдельные git-репо🟢 Кладёт всё это в структуру папок: repos/ и gists/ в указанном каталоге
#скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍3🔥1
yt-dlp, os, sys, ffmpeg — используется для скачивания и обработки медиафайлов.yt-downloader-multi https://www.youtube.com/watch?v=VIDEO_ID --format mp3 --quality 192k
🟢 Скачивает одиночные видео по ссылке🟢 Скачивает все видео из плейлистов🟢 Сохраняет контент в указанную папку, создавая её при необходимости🟢 Поддерживает оффлайн-архивирование медиаконтента
#скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤4🔥2
pytube🟢 Простота использования — интуитивно понятный интерфейс для скачивания видео и аудио.🟢 Поддержка субтитров — возможность загрузки субтитров в формате .srt.🟢 Получение миниатюр — легкий доступ к URL-адресам миниатюр видео.🟢 Отсутствие сторонних зависимостей — не требует установки дополнительных пакетов.🟢 Поддержка прогрессивных и DASH-потоков — скачивайте видео и аудио в различных качествах.🟢 Загрузка целых плейлистов — скачивайте все видео из плейлиста с помощью одной команды.🟢 Обработка событий — настройка обратных вызовов для отслеживания прогресса загрузки и завершения процесса.
pip install pytube
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍3
✅
FastText-aligned🟢 Поддержка подгонки (alignment) методом Procrustes, Orthogonal Procrustes и др.🟢 Совместимость с эмбедингами fastText (бинарные и текстовые форматы).🟢 API, похожий на оригинальный fastText: load_model, align_to, get_vector.🟢 Работает как вспомогательный инструмент, легко интегрируется в NLP-пайплайны, например для кроссъязыковых задач.
pip install fasttext-aligned
🔢 Документация
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍2🔥1
requests, os, re, urllib.parse, bs4 (BeautifulSoup) — используется HTTP-запросы к Google Images, HTML-парсинг ссылок и загрузка файлов. import os
import requests
from bs4 import BeautifulSoup
from urllib.parse import urljoin, urlparse
def download_images(query, num_images=10, dest_folder="images"):
os.makedirs(dest_folder, exist_ok=True)
search_url = f"https://www.google.com/search?tbm=isch&q={query}"
headers = {"User-Agent": "Mozilla/5.0"}
resp = requests.get(search_url, headers=headers)
soup = BeautifulSoup(resp.text, "html.parser")
img_tags = soup.find_all("img")
count = 0
for img in img_tags:
img_url = img.get("src")
if not img_url:
continue
parsed = urlparse(img_url)
ext = os.path.splitext(parsed.path)[1]
if ext.lower() not in [".jpg", ".png", ".jpeg"]:
continue
filename = f"{query}_{count}{ext}"
filepath = os.path.join(dest_folder, filename)
try:
img_data = requests.get(img_url, timeout=5).content
with open(filepath, "wb") as f:
f.write(img_data)
print("Downloaded:", filename)
count += 1
if count >= num_images:
break
except Exception as e:
print("Error:", e)
continue
if __name__ == "__main__":
download_images("sunset", num_images=5)
🟢 Делает запрос Google Images с ключевым словом🟢 Парсит HTML и находит теги <img>🟢 Отбирает ссылки с допустимыми расширениями🟢 Скачивает изображения и сохраняет в папку, пока не наберёт нужное число
#скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤5
TabPFN🟢 Работает без необходимости обучать модель с нуля — готова к применению на новых табличных данных.🟢 Использует трансформерный подход, обученный на синтетических данных, чтобы понимать паттерны в табличных данных.🟢 Поддерживает как классификацию, так и регрессию.🟢 Подходит для “малых данных”, когда классические deep learning методы часто переобучаются.🟢 Открытая лицензия Apache-2.0, исходники на GitHub, пакет доступен на PyPI.
pip install tabpfn
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🔥3
os, csv, json, argparse и др.import os
import csv
import argparse
def merge_columns(input_files, output_file, column_index):
with open(output_file, 'w', newline='', encoding='utf-8') as out:
writer = csv.writer(out)
for infile in input_files:
with open(infile, newline='', encoding='utf-8') as f:
reader = csv.reader(f)
for row in reader:
if len(row) > column_index:
writer.writerow([row[column_index]])
else:
writer.writerow([''])
print("Merged into", output_file)
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument('inputs', nargs='+', help='Input CSV files')
parser.add_argument('-o', '--output', required=True, help='Output file')
parser.add_argument('-c', '--col', type=int, default=0, help='Column index to merge')
args = parser.parse_args()
merge_columns(args.inputs, args.output, args.col)
🟢 Читает несколько CSV файлов🟢 Выбирает одну колонку (индекс) из каждой строки🟢 Объединяет эти колонки в один выходной файл🟢 Полезно при аналитике, когда нужно “собрать” один показатель из разных источников
#скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍4🔥2
Plotnine🟢 Поддерживает широкий спектр статистических графиков, включая гистограммы, диаграммы рассеяния, линейные графики и др.🟢 Позволяет легко комбинировать различные элементы графиков, такие как оси, легенды, заголовки и т.д.🟢 Обеспечивает высококачественные визуализации, которые легко интегрируются с другими библиотеками Python.🟢 Идеально подходит для анализа и визуализации данных в научных и исследовательских проектах.
pip install plotnine
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4❤3👍3