Python/ django
по всем вопросам @workakkk @itchannels_telegram - 🔥 все ит каналы @ai_machinelearning_big_data -ML @ArtificialIntelligencedl -AI @datascienceiot - 📚 @pythonlbooks РКН: clck.ru/3FmxmM
Show more📈 Analytical overview of Telegram channel Python/ django
Channel Python/ django (@pythonl) in the Russian language segment is an active participant. Currently, the community unites 58 972 subscribers, ranking 2 162 in the Technologies & Applications category and 10 185 in the Russia region.
📊 Audience metrics and dynamics
Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 58 972 subscribers.
According to the latest data from 29 August, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -292 over the last 30 days and by -1 over the last 24 hours, overall reach remains high.
- Verification status: Not verified
- Engagement rate (ER): The average audience engagement rate is 6.27%. Within the first 24 hours after publication, content typically collects 3.33% reactions from the total number of subscribers.
- Post reach: On average, each post receives 3 696 views. Within the first day, a publication typically gains 1 963 views.
- Reactions and interaction: The audience actively supports content: the average number of reactions per post is 20.
- Thematic interests: Content is focused on key topics such as github, claude, контекст, архитектура, api.
📝 Description and content policy
The author describes the resource as a platform for expressing subjective opinions:
“по всем вопросам @workakkk
@itchannels_telegram - 🔥 все ит каналы
@ai_machinelearning_big_data -ML
@ArtificialIntelligencedl -AI
@datascienceiot - 📚
@pythonlbooks
РКН: clck.ru/3Fm...”
Thanks to the high frequency of updates (latest data received on 30 August, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.
.exe (PE-файлов) и визуализирует их структуру в удобной форме.
🧩 Что умеет ExeRay:
✅ Анализировать PE-файл и извлекать:
- Заголовки, секции, импорты/экспорты
- Таблицы ресурсов
- Используемые API и библиотеки
- Suspicious patterns и аномалии
✅ Генерировать отчёт в HTML
✅ Работает полностью офлайн
✅ Поддержка анализа несколькими методами (pefile + custom парсеры)
📦 Пример использования:
python main.py -f malware.exe
После чего ты получаешь красивый и подробный отчёт по всем ключевым параметрам PE-файла.
💻 Технологии:
- Python 3
- pefile, matplotlib, pyvis для графов зависимостей
- Простая CLI и понятный код — легко расширить под свои задачи
🧠 Кому подойдёт:
- Reverse Engineers
- Malware Analysts
- Red/Blue Teams
- Python-разработчикам, интересующимся PE-структурой и безопасностью
🔥 Если ты работаешь с .exe, и хочешь быстро понять, что внутри — ExeRay сэкономит часы ручного анализа.
📁 Репозиторий:
@pythonl
def log_event(event, metadata={}):
metadata["event"] = event
print(metadata)
На первый взгляд — всё работает. Но при многократных вызовах функции происходит что-то странное:
log_event("start")
log_event("stop")
log_event("error", {"code": 500})
log_event("retry")
👀 Вывод:
{'event': 'start'}
{'event': 'stop'}
{'code': 500, 'event': 'error'}
{'code': 500, 'event': 'retry'}
🔍 Что пошло не так? Почему code: 500 появляется там, где его быть не должно?
🧩 Задача:
1. Найди и объясни источник бага
2. Почему Python не выбрасывает ошибку?
3. Как проверить, что дефолтный аргумент сохраняет состояние между вызовами?
4. Как это исправить безопасно и "по питоновски"?
5. Где ещё может проявиться аналогичный эффект?
🛠 Разбор и решение:
🔸 Причина:
Изменяемое значение (`dict`) используется как значение по умолчанию.
В Python значения по умолчанию вычисляются один раз при определении функции, а не при каждом вызове.
То есть metadata={} создаётся один раз и сохраняется между вызовами, если параметр не передан.
🔸 Проверка:
def f(d={}):
print(id(d))
d["x"] = 1
print(d)
f()
f()
Вы увидишь одинаковые id(d) — значит, используется тот же объект.
🔸 Решение (правильный способ):
def log_event(event, metadata=None):
if metadata is None:
metadata = {}
metadata["event"] = event
print(metadata)
Теперь при каждом вызове создаётся новый словарь, и code: 500 не "протекает" в следующие вызовы.
🔸 Где ещё встречается:
- Списки: items=[]
- Множества: visited=set()
- Объекты пользовательских классов
📌 Вывод:
Изменяемые значения по умолчанию — одна из самых частых ошибок в Python. Она не вызывает исключений, но может незаметно повредить данные. Всегда используй None + инициализацию внутри функции для изменяемых типов.
@pythonlos — работа с файловой системой, путями, переменными окружения
https://docs.python.org/3/library/os.html
🔸 subprocess — запуск внешних команд и управление ими
https://docs.python.org/3/library/subprocess.html
🔸 psutil — мониторинг процессов, ресурсов, дисков, сети
https://pypi.org/project/psutil/
🔸 platform — информация об ОС, архитектуре, версии Python
https://docs.python.org/3/library/platform.html
🔸 socket — сетевые соединения и сокеты
https://docs.python.org/3/library/socket.html
🔸 pwd — доступ к информации о пользователях Unix
https://docs.python.org/3/library/pwd.html
🔸 pathlib — удобная работа с путями в ООП-стиле
https://docs.python.org/3/library/pathlib.html
🔸 shutil — копирование, удаление, архивация файлов и директорий
https://docs.python.org/3/library/shutil.html
🔸 tarfile — создание и извлечение `.tar`-архивов
https://docs.python.org/3/library/tarfile.html
📦 Эти модули — основа для написания удобных и мощных CLI-утилит, скриптов и системных инструментов.
@pythonl
git clone https://github.com/ReisCook/Voice_Extractor.git
cd Voice_Extractor
pip install -r requirements.txt
python extract_voice.py --file_path your_audio_file.mp3
📎 GitHub: https://github.com/ReisCook/Voice_Extractor
@pythonldict — доступ по ключу
• работает как list — доступ по индексу
• сохраняет порядок вставки
• поддерживает .index(key) и .key_at(i)
📌 Задача: Реализуй класс IndexedDict, который делает всё это.
🔍 Пример использования:
d = IndexedDict()
d["a"] = 10
d["b"] = 20
d["c"] = 30
print(d["a"]) # 10
print(d[0]) # 10
print(d[1]) # 20
print(d.key_at(1)) # "b"
print(d.index("c")) # 2
for k in d:
print(k, d[k]) # перебор по ключам
⚠️ Подвох:
• Просто наследовать dict не получится — d[0] будет интерпретироваться как ключ, а не индекс
• Придётся реализовать двойную логику доступа вручную
• Нужно корректно поддержать __iter__, __getitem__, __len__ и др.
✅ Решение:
```python
from collections.abc import MutableMapping
class IndexedDict(MutableMapping):
def __init__(self):
self._data = {}
self._keys = []
def __getitem__(self, key):
if isinstance(key, int):
real_key = self._keys[key]
return self._data[real_key]
return self._data[key]
def __setitem__(self, key, value):
if key not in self._data:
self._keys.append(key)
self._data[key] = value
def __delitem__(self, key):
if key in self._data:
self._keys.remove(key)
del self._data[key]
def __iter__(self):
return iter(self._keys)
def __len__(self):
return len(self._data)
def index(self, key):
return self._keys.index(key)
def key_at(self, idx):
return self._keys[idx]
```
📈 Зачем это нужно:
• Отличная тренировка на переопределение магических методов
• Часто встречается в фреймворках (Pandas, SQLAlchemy)
• Тестирует знание ABC-классов (`collections.abc.MutableMapping`)
• Полезно для построения кастомных структур данных
Хочешь версию с `__contains__`, `__reversed__`, типизацией и сериализацией — пиши 💬
@pythonlconfig.yaml: логин/пароль или токен VK + данные Telegram API
• Поддерживает прокси (SOCKS5) — для обхода блокировок
• Гибко настраиваемый интервал проверки новых постов (по умолчанию — 1 час)
• Фильтрует записи по чёрному списку и стоп-словам
• Добавляет заголовки и футеры с поддержкой Markdown
• Работает в Docker — легко разворачивается на сервере
TG_AutoPoster — готовое решение для автоматического кросспостинга из ВК в Telegram 💬
▪ Github
@pythonleval, скрытые майнеры, необфусцированные ключи
🚀 Как использовать
python -m starguard.cli owner/repo --format markdown --plot stars.png
🔹 Без GitHub-токена работает, но лимит — 60 запросов/час
🔹 С GITHUB_TOKEN — до 5000 запросов
🎯 Кому полезно
• DevOps-командам — для верификации OSS-зависимостей
• Безопасникам — для быстрой проверки на supply chain угрозы
• Инвесторам — чтобы не попасть на проекты с "накрученной" популярностью
• Open Source авторам — для прозрачности и Trust Badge
🔗 GitHub
💡 Инструмент, который показывает, что за красивыми графиками звёзд часто стоит маркетинг, а не код. Умей фильтровать — ставь охрану у репозитория.
@pythonllist и dict
📌 Условие
Что выведет следующий код?
def append_to_list(value, my_list=[]):
my_list.append(value)
return my_list
print(append_to_list(1))
print(append_to_list(2))
print(append_to_list(3))
❓ Вопросы
1. Почему результат выглядит неожиданно?
2. Как исправить это поведение?
3. Когда стоит использовать изменяемые аргументы по умолчанию — если вообще стоит?
🔍 Разбор
✅ Ожидаемый вывод:
[1] [1, 2] [1, 2, 3]🔧 Почему так происходит - Аргументы по умолчанию вычисляются один раз — во время определения функции, а не при каждом вызове. - Значение
my_list=[] создаётся один раз и затем используется повторно при всех вызовах.
- Все вызовы append_to_list изменяют один и тот же список.
⚠️ Подвох
Это один из самых коварных багов в Python, особенно среди начинающих — кажется, что my_list должен быть новым на каждый вызов, но это не так.
🧠 Вывод
- Никогда не используй изменяемые типы (list, dict, set) как значения по умолчанию.
- Вместо этого используй None и создавай новый объект вручную:
def append_to_list(value, my_list=None):
if my_list is None:
my_list = []
my_list.append(value)
return my_list
✅ Тогда вывод будет:
[1] [2] [3]📌 Это правило относится ко всем изменяемым типам:
[], {}, set() и кастомные классы.
git clone https://github.com/chungmin99/pyroki.git
cd pyroki
pip install -e .
Требуется Python 3.12+ (частичная поддержка Python 3.10–3.11).
PyRoki — это:
- 📐 Удобный фреймворк для исследований в области робототехники.
- 🛠️ Подходит как для академических, так и для прикладных задач.
- 🌐 Гибкий и масштабируемый — от одного робота до больших motion-баз.
Если интересен пример интеграции с ROS, Gazebo или симуляцией цифрового двойника — дай знать, покажу!
🔗 Репозиторий
#Python #Robotics #Kinematics #InverseKinematics #MotionPlanning #OpenSource
@pythonl