Python Portal
Всё самое интересное из мира Python Сотрудничество, реклама: @devmangx Менеджер: @Spiral_Yuri РКН: https://clck.ru/3GMMF6
إظهار المزيد📈 نظرة تحليلية على قناة تيليجرام Python Portal
تُعد قناة Python Portal (@pythonportal) في القطاع اللغوي الروسية لاعباً نشطاً. يضم المجتمع حالياً 52 335 مشتركاً، محتلاً المرتبة 2 560 في فئة التكنولوجيات والتطبيقات والمرتبة 11 934 في منطقة روسيا.
📊 مؤشرات الجمهور والحراك
منذ تأسيسه في невідомо، حقق المشروع نمواً سريعاً وجمع 52 335 مشتركاً.
بحسب آخر البيانات بتاريخ 13 يونيو, 2026، تحافظ القناة على نشاط مستقر. خلال آخر 30 يوماً تغيّر عدد الأعضاء بمقدار -821، وفي آخر 24 ساعة بمقدار -28، مع بقاء الوصول العام مرتفعاً.
- حالة التحقق: غير موثّقة
- معدل التفاعل (ER): يبلغ متوسط تفاعل الجمهور 9.36%. وخلال أول 24 ساعة من النشر يحصد المحتوى عادةً 5.67% من ردود الفعل نسبةً إلى إجمالي المشتركين.
- وصول المنشورات: يحصل كل منشور على متوسط 4 902 مشاهدة. وخلال اليوم الأول يجمع عادةً 2 970 مشاهدة.
- التفاعلات والاستجابة: يتفاعل الجمهور بانتظام؛ متوسط التفاعلات لكل منشور يبلغ 26.
- الاهتمامات الموضوعية: يركز المحتوى على مواضيع رئيسية مثل строка, none, true, модуль, peter.
📝 الوصف وسياسة المحتوى
يصف المؤلف القناة بأنها مساحة للتعبير عن الآراء الذاتية:
“Всё самое интересное из мира Python
Сотрудничество, реклама: @devmangx
Менеджер: @Spiral_Yuri
РКН: https://clck.ru/3GMMF6”
بفضل وتيرة التحديث المرتفعة (أحدث البيانات بتاريخ 14 يونيو, 2026) تحافظ القناة على حداثتها ومستوى وصول مرتفع. وتُظهر التحليلات تفاعلاً نشطاً من الجمهور، ما يجعلها نقطة تأثير مهمة ضمن فئة التكنولوجيات والتطبيقات.
pytest, чтобы добавлять метаданные к тестам.
Это упрощает организацию и запуск определённых групп тестов
В примере на изображении используются два пользовательских маркера:
🔹@pytest.mark.performance
– Применён к тесту для замера производительности test_page_load_time
🔹@pytest.mark.database
– Применён к тестам для работы с базой данных test_database_connection и test_data_integrity
Мы можем запускать выборочно, например тесты, помеченные маркером @pytest.mark.database
pytest -m database
👉 @PythonPortal__or__
Это позволяет связывать операции так, что вывод одной функции становится входом для следующей → чисто, читаемо и удобно для композиции
Именно так LangChain реализует элегантные пайплайны вроде: chat_prompt | groq_model | output_parser
Пример:
class Pipe:
def __init__(self, func):
self.func = func
def __call__(self, x):
return self.func(x)
def __or__(self, other):
return self.__class__(lambda x: other(self(x)))
🔸Pipe — обёртка над функцией
🔸__or__ (|) позволяет комбинировать пайпами, как в Unix
🔸__call__ делает объект вызываемым, как обычную функцию
Теперь можно обернуть любые функции в Pipe и комбинировать их в цепочку:
double = Pipe(lambda x: x * 2)
square = Pipe(lambda x: x ** 2)
pipeline = double | square
print(pipeline(3)) # (3 * 2) ** 2 = 36
👉 @PythonPortalpip install art
Пример использования:
from art import text2art
Art = text2art("art") # шрифт по умолчанию
print(Art)
# Пример вывода:
# _
# __ _ _ __ | |_
# / _` || '__|| __|
# | (_| || | | |_
# \__,_||_| \__|
Art_block = text2art("art", font='block', chr_ignore=True)
print(Art_block)
# Выведет крупный блок‑текст
Идеально для приветственных страничек или добавить декоративный вывод в CLI или логах 😊
👉 @PythonPortalelse:
🔸Условный оператор if-else
🔸Цикл for-else
🔸Цикл while-else
🔸Блок try-except-else
На фото мы видим 4 примера:
1. проверяет условие. Если x < 5 — выполняется if, иначе — else
2. Цикл ищет i == 10. Не находит, break не срабатывает → выполняется else
> Блок else выполняется только если цикл не прерван через break
3. Цикл отрабатывает до конца, else выполняется после завершения while
> else не выполнится, если внутри цикла будет break
4. Пытается выполнить 10 / 2. Исключения нет — срабатывает else
> else выполняется только если не было исключений в try
👉 @PythonPortalexisting = {t for tag in old_tags if (t := tag.strip())}
incoming = {t for tag in new_tags if (t := tag.strip())}
🔸tag.strip() удаляет пробелы с начала и конца строки.
🔸t := tag.strip() сохраняет очищенное значение в переменную t.
🔸if (t := tag.strip()) фильтрует пустые строки ("").
Удаление существующих тегов:
updated = existing - incoming
print("Removed tags:", updated)
Добавление новых тегов (без дубликатов):
updated = existing | incoming
print("Added tags:", updated)
👉 @PythonPortalpoetry show --tree --why [package], чтобы отследить, откуда берётся пакет.
Она быстро показывает:
> какие пакеты от него зависят
> почему пакет был установлен
На примере показано, как команда
poetry show --tree --why pydantic
помогает понять, почему библиотека pydantic присутствует в проекте и кто её тянет в зависимости.
Это очень полезно перед очисткой pyproject.toml или при разрешении конфликтов транзитивных зависимостей. 📝
👉 @PythonPortalsetdefault
Метод setdefault() позволяет заменить 4 строки традиционного кода, избавляя от необходимости использовать условие if и ручную инициализацию.
setdefault() чётко передаёт намерение: «Если ключ отсутствует, установить для него пустой список. Затем добавить элемент в список». Это одновременно делает код короче и понятнее
Есть ли причины использовать это вместо collections.defaultdict? 🤔Хороший вопрос. Думаю, основное различие в том, что с
setdefault можно указывать разное значение по умолчанию при каждом вызове, тогда как у defaultdict одно общее значение для всех отсутствующих ключей. Метод setdefault также удобен тем, что не требует импорта =)
👉 @PythonPortaluv add --script /path/to/script.py, чтобы добавить встроенные зависимости в Python-скрипт. Если заголовок скрипта ещё не существует, uv сгенерирует его автоматически
Команда uv run http://script.py выполнит скрипт со всеми необходимыми зависимостями.
Не нужно создавать виртуальное окружение, устанавливать пакеты и т.д. ☺️
👉 @PythonPortalpackage.json и не только
⑥ Highlight on Copy
Мерцающая подсветка скопированного текста - видно, что именно ты скопировал
⑦ Symbols
Лучшая подборка иконок для типов файлов - делает интерфейс визуально чище
👉 @PythonPortal
متاح الآن! بحث تيليغرام 2025 — أهم رؤى العام 
