🚀 myfy - модульный Python-фреймворк с фронтендом «из коробки»
Зачем он нужен: FastAPI - идеален для API, но без нормального фронта.
myfy берёт лучшее из FastAPI и добавляет полноценную модульность, DI и встроенный UI.
🔥 Главное
- Модульная архитектура с жизненным циклом (`start/stop`)
- Type-based DI без скрытой магии
- Фронтенд сразу из коробки:
Jinja2 + DaisyUI + Tailwind + Vite + HMR
Можно делать UI без React/Vue, идеально для внутренних тулов
- Чистая структура проекта, минимум бойлерплейта
🚀 Быстрый старт
https://github.com/psincraian/myfy
@pythonl
Зачем он нужен: FastAPI - идеален для API, но без нормального фронта.
myfy берёт лучшее из FastAPI и добавляет полноценную модульность, DI и встроенный UI.
🔥 Главное
- Модульная архитектура с жизненным циклом (`start/stop`)
- Type-based DI без скрытой магии
- Фронтенд сразу из коробки:
Jinja2 + DaisyUI + Tailwind + Vite + HMR
Можно делать UI без React/Vue, идеально для внутренних тулов
- Чистая структура проекта, минимум бойлерплейта
🚀 Быстрый старт
pip install myfy
myfy init
myfy frontend init
myfy run
https://github.com/psincraian/myfy
@pythonl
❤16👍7🔥4😁2
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 10 однострочных Python-функций, которые экономят время каждый день
Держи небольшой набор из 10 функций-однострочников, которые полезно просто закинуть в свой utils.py.
Они помогают быстро работать со списками, файлами, JSON, статистикой и частотами, без лишнего шума в коде.
Скопируй блок целиком и используй нужные функции по месту.
@pythonl
Держи небольшой набор из 10 функций-однострочников, которые полезно просто закинуть в свой utils.py.
Они помогают быстро работать со списками, файлами, JSON, статистикой и частотами, без лишнего шума в коде.
Скопируй блок целиком и используй нужные функции по месту.
from pathlib import Path
from collections import Counter
import json, statistics as stats
chunks = lambda it, n: [it[i:i + n] for i in range(0, len(it), n)]
flatten = lambda lst: [x for sub in lst for x in sub]
unique = lambda seq: list(dict.fromkeys(seq))
sliding = lambda it, n: [it[i:i + n] for i in range(len(it) - n + 1)]
freqs = lambda seq: Counter(seq)
read_text = lambda p: Path(p).read_text(encoding="utf-8")
write_text = lambda p, text: Path(p).write_text(text, encoding="utf-8")
read_json = lambda p: json.loads(Path(p).read_text(encoding="utf-8"))
write_json = lambda p, obj: Path(p).write_text(json.dumps(obj, ensure_ascii=False, indent=2), encoding="utf-8")
mean_std = lambda xs: (stats.mean(xs), stats.pstdev(xs))
@pythonl
❤19👍12🔥4😁4
🧵 CPython 3.15 делает распаковку данных намного быстрее
В новой версии CPython улучшили производительность декомпрессии:
- Zstandard (zstd) распаковывается на 25–30% быстрее
- zlib — на 10–15% быстрее, если размер данных больше 1 MiB
Такого ускорения добились за счёт более эффективной работы с выходными буферами во время распаковки.
Подробнее: emmatyping.dev/decompression-is-up-to-30-faster-in-cpython-315.html
@pythonl
В новой версии CPython улучшили производительность декомпрессии:
- Zstandard (zstd) распаковывается на 25–30% быстрее
- zlib — на 10–15% быстрее, если размер данных больше 1 MiB
Такого ускорения добились за счёт более эффективной работы с выходными буферами во время распаковки.
Подробнее: emmatyping.dev/decompression-is-up-to-30-faster-in-cpython-315.html
@pythonl
🔥10👍4❤3
🤖 SelfDiscord: Мощный Discord Selfbot за 2 минуты настройки
SelfDiscord — это удобный selfbot для Discord с множеством команд и утилит. Он позволяет отслеживать ключевые слова, добавлять пользовательские команды и реакции, а также автоматизировать множество задач, таких как поиск изображений и управление сообщениями.
🚀Основные моменты:
- Логирование ключевых слов и уведомления о сообщениях.
- Автоматическая смена аватаров и статусов.
- Сохранение изображений и поиск источников.
- Пользовательские команды и реакции с возможностью сохранения.
- Уведомления и таймеры для задач.
📌 GitHub: https://github.com/tagal6727/SelfDiscord
#python
SelfDiscord — это удобный selfbot для Discord с множеством команд и утилит. Он позволяет отслеживать ключевые слова, добавлять пользовательские команды и реакции, а также автоматизировать множество задач, таких как поиск изображений и управление сообщениями.
🚀Основные моменты:
- Логирование ключевых слов и уведомления о сообщениях.
- Автоматическая смена аватаров и статусов.
- Сохранение изображений и поиск источников.
- Пользовательские команды и реакции с возможностью сохранения.
- Уведомления и таймеры для задач.
📌 GitHub: https://github.com/tagal6727/SelfDiscord
#python
❤10👍3🎉2
Cursor мощно прокачался — релизнулась версия 2.1, которая еще быстрее находит баги, делает ревью кода, пишет и оптимизирует программы.
• Разрабы внедрили кнопку «Find issues» — агент автоматически правит баги, делает ревью и подсвечивает проблемы в боковой панели. Да, все СРАЗУ и без нескольких промптов.
• Поиск ускорили в разы — теперь он работает на базе векторов и шерстит даже массивную кодовую базу за секунды.
• Улучшили режим планирования — агент будет задавать еще больше уточняющих вопросов, когда ты утверждаете задачу. Отвечать нужно в интерактивном режиме.
И да, сейчас на Cursor Pro есть скидка — реально приятная. Вместо 22 тысяч — 7000 рублей!
Так что если думали — это тот самый момент «пока недорого».
Купить можно на сайте👉 по ссылке
Или можно купить на авито напрямую у продавца по ссылке
• Разрабы внедрили кнопку «Find issues» — агент автоматически правит баги, делает ревью и подсвечивает проблемы в боковой панели. Да, все СРАЗУ и без нескольких промптов.
• Поиск ускорили в разы — теперь он работает на базе векторов и шерстит даже массивную кодовую базу за секунды.
• Улучшили режим планирования — агент будет задавать еще больше уточняющих вопросов, когда ты утверждаете задачу. Отвечать нужно в интерактивном режиме.
И да, сейчас на Cursor Pro есть скидка — реально приятная. Вместо 22 тысяч — 7000 рублей!
Так что если думали — это тот самый момент «пока недорого».
Купить можно на сайте
Или можно купить на авито напрямую у продавца по ссылке
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10❤7😁6👍3😱2
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Коварная ловушка с замыканиями в Python
Многие хитрые баги в Python появляются из-за того, что разработчики неверно понимают область видимости переменных в замыканиях.
Частая ошибка - внутри цикла создавать функции-лямбды, которые «помнят» одно и то же финальное значение переменной, а не значение на каждой итерации. В итоге весь список функций ведёт себя одинаково. Чтобы избежать ловушки, фиксируйте значение через аргумент по умолчанию или используйте functools.partial.
Многие хитрые баги в Python появляются из-за того, что разработчики неверно понимают область видимости переменных в замыканиях.
Частая ошибка - внутри цикла создавать функции-лямбды, которые «помнят» одно и то же финальное значение переменной, а не значение на каждой итерации. В итоге весь список функций ведёт себя одинаково. Чтобы избежать ловушки, фиксируйте значение через аргумент по умолчанию или используйте functools.partial.
funcs = []
for i in range(5):
funcs.append(lambda x=i: x) # фиксируем i как значение по умолчанию
print([f() for f in funcs]) # [0, 1, 2, 3, 4]
👍14❤10🔥4
🌀 В Python есть встроенная функция
✓ Список можно развернуть
✓ Кортежи тоже разворачиваются
Можно итерироваться по
✓ Множества не разворачиваются
Причина: множества *не имеют порядка*, а значит разворачивать нечего.
Если нужно развернуть множество — сначала сделай его списком:
@pythonl
reversed(), но работает она не со всеми структурами данных. Быстрый разбор:✓ Список можно развернуть
reversed([1, 2, 3]) возвращает итератор. list(reversed([1, 2, 3])) → [3, 2, 1]✓ Кортежи тоже разворачиваются
Можно итерироваться по
reversed((1, 2, 3))✓ Множества не разворачиваются
reversed({1, 2, 3}) → TypeError: 'set' object is not reversible Причина: множества *не имеют порядка*, а значит разворачивать нечего.
Если нужно развернуть множество — сначала сделай его списком:
list(reversed(list({1, 2, 3})))@pythonl
❤9👍7🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Безопасный запуск Linux-команд из Python
Если нужно из Python безопасно выполнять системные команды в Linux, используй изоляцию через
@pythonl
Если нужно из Python безопасно выполнять системные команды в Linux, используй изоляцию через
subprocess с принудительным сбросом привилегий. Такой приём позволяет запускать команды даже в окружениях с потенциально небезопасным вводом, блокируя доступ к опасным системным вызовам и снижая риск эксплуатации.
import subprocess
import os
def safe_run(cmd):
# Запускаем процесс без наследования переменных окружения
env = {"PATH": "/usr/bin:/bin"}
# Сбрасываем привилегии, если процесс запущен от root
def drop_priv():
os.setgid(65534)
os.setuid(65534)
result = subprocess.run(
cmd,
env=env,
preexec_fn=drop_priv,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
text=True,
timeout=3,
)
return result.stdout
print(safe_run(["ls", "/"]))
@pythonl
❤9👍4🔥4😁2
Изучаем Python, Docker, Git и выходим в DevOps с абсолютного нуля — нашли огромную библиотеку с сотнями подробных материалов.
• Сильная теоретическая база: язык программирования, сети, базы данных, система контроля версий.
• Короткие, но насыщенные уроки — учись по дороге на работу, в обед или во время короткого перерыва.
• Много практики — закрепишь навыки, соберёшь проекты и усилишь своё портфолио.
• Всё объясняется пошагово, простым языком — подойдёт даже тем, кто только сегодня услышал слово «программирование».
https://kodekloud.com/studio/labs
• Сильная теоретическая база: язык программирования, сети, базы данных, система контроля версий.
• Короткие, но насыщенные уроки — учись по дороге на работу, в обед или во время короткого перерыва.
• Много практики — закрепишь навыки, соберёшь проекты и усилишь своё портфолио.
• Всё объясняется пошагово, простым языком — подойдёт даже тем, кто только сегодня услышал слово «программирование».
https://kodekloud.com/studio/labs
❤9👍2🔥2
Как это — работать в Т-Банке?
Загляните в канал T-Crew, где увидите:
— жизнь и будни команды;
— ИТ-хабы компании по всей России;
— анонсы мероприятий;
— кейсы, статьи и советы для карьерного роста.
Еще здесь можно раньше других найти вакансии в ИТ и диджитале. За полезным — сюда
erid:2RanymxHnD8
Загляните в канал T-Crew, где увидите:
— жизнь и будни команды;
— ИТ-хабы компании по всей России;
— анонсы мероприятий;
— кейсы, статьи и советы для карьерного роста.
Еще здесь можно раньше других найти вакансии в ИТ и диджитале. За полезным — сюда
erid:2RanymxHnD8
❤4👍1🔥1😱1😢1
🛠️ Tracer для системных вызовов на macOS
strace-macos — это инструмент для отслеживания системных вызовов на macOS с использованием API отладчика LLDB. Он работает с включенной защитой целостности системы и написан на чистом Python, что исключает необходимость в расширениях ядра.
🚀 Основные моменты:
- Поддержка SIP без отключения
- Вывод в формате JSON и текстовом формате
- Фильтрация системных вызовов по имени и категории
- Символическое декодирование аргументов
- Статистика вызовов и ошибок
📌 GitHub: https://github.com/Mic92/strace-macos
strace-macos — это инструмент для отслеживания системных вызовов на macOS с использованием API отладчика LLDB. Он работает с включенной защитой целостности системы и написан на чистом Python, что исключает необходимость в расширениях ядра.
🚀 Основные моменты:
- Поддержка SIP без отключения
- Вывод в формате JSON и текстовом формате
- Фильтрация системных вызовов по имени и категории
- Символическое декодирование аргументов
- Статистика вызовов и ошибок
📌 GitHub: https://github.com/Mic92/strace-macos
❤5👍1🔥1
🔧 Утилиты для C++ и Python
Этот репозиторий предлагает набор полезных утилит для работы с C++ и Python, упрощая взаимодействие между этими языками. Он включает функции для обработки данных, работы с файлами и выполнения различных задач, что делает его идеальным для разработчиков, работающих с обоими языками.
🚀 Основные моменты:
- Инструменты для обработки и анализа данных
- Удобные функции для работы с файлами
- Поддержка взаимодействия между C++ и Python
- Легкая интеграция в проекты
- Документация для быстрого старта
📌 GitHub: https://github.com/xZepyx/cpp-pyutils
@pythonl
Этот репозиторий предлагает набор полезных утилит для работы с C++ и Python, упрощая взаимодействие между этими языками. Он включает функции для обработки данных, работы с файлами и выполнения различных задач, что делает его идеальным для разработчиков, работающих с обоими языками.
🚀 Основные моменты:
- Инструменты для обработки и анализа данных
- Удобные функции для работы с файлами
- Поддержка взаимодействия между C++ и Python
- Легкая интеграция в проекты
- Документация для быстрого старта
📌 GitHub: https://github.com/xZepyx/cpp-pyutils
@pythonl
❤9👍2🔥2