zen_of_python | Unsorted

Telegram-канал zen_of_python - Zen of Python

20144

Полный Дзен Пайтона в одном канале Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Сайт: https://tprg.ru/site Регистрация в перечне РКН: https://tprg.ru/xZOL

Subscribe to a channel

Zen of Python

​​Очаровательные комиксы от дата-сайентиста Элисон Хорст
#кек
@prog_tools

Читать полностью…

Zen of Python

​​Создаём микросервис по выгодному обмену крипты

В статье вы узнаете, как создать микросервис, что анализирует предложения и подсказывает, где можно выгоднее обменять криптовалюту. Все это делается на Python, который делает запросы к API exnode.ru и сортирует результат по выгоде. Вы также увидите, как создается веб‑интерфейс + Telegram‑бот.

#api
@zen_of_python

Читать полностью…

Zen of Python

​​bandit | Насколько защищен ваш проект?

Инструмент найдет «секурные прорехи» в вашем проекте, включая запушенные ключи / токены и небезопасные участки кода. Внезапно проект OpenStack — опенсорсной облачной инициативы NASA.

Репозиторий проекта
#инструмент
@zen_of_python

Читать полностью…

Zen of Python

whatsonpypi | Ускоряем обновление зависимостей

Если при обновлении библиотек проекта вам неохота каждый раз посещать pypi.org, с помощью этой утилиты вы сможете вывести данные о крайней версии и совместимости с Python прямо в командную строку.

Репозиторий проекта
#инструмент
@zen_of_python

Читать полностью…

Zen of Python

Хватит искать работу в одиночку!

Ты крутой айтишник, но поиск работы превращается в квест: бесконечные резюме, где важны не навыки, а кейворды, десятки собеседований и постоянный стресс. Знакомо? Всё это выматывает и демотивирует. Мы тебя понимаем — и готовы поддержать!

Команда Tproger открывает первое реалити-шоу в Телеграм о поиске работы — «Код найма».

Вместе с опытными менторами ты пройдешь все этапы найма:

➡️ Прокачаешь резюме так, чтобы его заметили
➡️ Научишься проходить собеседования без волнения
➡️ Получишь честную обратную связь от рекрутеров
➡️ И, главное, дойдёшь до оффера в компании мечты!

Весь путь будет проходить на глазах у подписчиков канала — они тоже смогут давать советы и поддерживать тебя.

Хочешь стать героем нашего реалити и получить шанс найти работу мечты?

✍️ Заполняй анкету

Мы выберем трёх участников, которым поможем пройти весь путь до оффера.

Присоединяйся к «Коду найма» — и пусть твой следующий оффер станет началом новой жизни!

Читать полностью…

Zen of Python

Краткий гайд про хэши для новичков

Хеширование — это фундаментальная концепция в Computer Science. В основе лежит идея односторонней функции, которая принимает на вход данные произвольного размера и возвращает выход фиксированной длины. Эта функция преобразует любые данные — будь то строка, число или файл — в уникальное значение фиксированной длины, называемое хешем. Это значение представляет собой последовательность битов, которая служит своего рода «отпечатком пальца» для исходных данных:


import hashlib

hash = hashlib.sha256()
hash.update(b'hello')
hashed_string = hash.hexdigest()

print(hashed_string) # 2cf24d......8b9824


Зачем это нужно

— Проверка «девственности» передаваемых данных: при передаче данных по сети важно убедиться, что они не были изменены. Хеширование позволяет создать контрольную сумму, которая может быть использована для проверки целостности данных;

— Хранение паролей: вместо хранения паролей в открытом виде их точно стоит обезопасить хешами;

— Хеширование используется для создания цифровых подписей, которые подтверждают подлинность и целостность сообщений или документов.


Многие из вас сталкивались с SSH-ключами для Git-репозиториев, причем с разными алгоритмами: MD5, SHA256. В отдельном посте поговорим об алгоритмах шифрования вроде RSA.

Когда мы создаем пару ключей (приватный + публичный), например с помощью:


ssh-keygen -t rsa -b 4096


То получаем приватный ключ, что хранится на локальной машине и используется для аутентификации. Также мы получаем публичный ключ и загружаем его на GitHub. Он не использует хеши для хранения или проверки самих публичных ключей, они проверяются напрямую, при помощи криптографических протоколов. Но вот где вступает в дело хеш:

GitHub (и SSH-клиенты в целом) используют хеши не для безопасности, а для удобной идентификации.

Когда мы смотрим отпечаток ключа, например:


ssh-keygen -lf ~/.ssh/id_rsa.pub


То получаем:


2048 SHA256:2f3b7A5Nk...xyz username@host (RSA)


Это и есть отпечаток ключа (fingerprint) — хеш публичного ключа. Он используется для подтверждения подлинности ключа.

#основы
@zen_of_python

Читать полностью…

Zen of Python

​​#кек
@zen_of_python

Читать полностью…

Zen of Python

​​Бэкроним — это в шутку неверная расшифровка аббревиатуры.

PEP — Please Explain Python
#кек
@zen_of_python

Читать полностью…

Zen of Python

Вопросы подписчиков

Zen of Python поддерживает новоприбывших (и не только) в особой рубрике. Как это работает:

— Спрашивайте что угодно (в комментариях под этим постом), связанное с Python. Здесь нет плохих вопросов!
— Сообщество вас поддержит. Самые интересные вопросы мы разберём в отдельном посте;

#вопросы_новичков
@zen_of_python

Читать полностью…

Zen of Python

​​Сломал ногу — выучил Python: как ИИ помог экс-консультанту стать программистом за 100 дней

38-летний Эрик Леннрот после травмы решил изменить карьеру и выбрал Python, пройдя бесплатные курсы CS50 от Гарварда. С помощью ChatGPT он писал псевдокод, получал обратную связь и вручную набирал код. Его первый проект стал основой для более сложного веб-приложения из 25К строк кода. И о чудо! через три месяца он получил оффер в консалтинговой компании в Лондоне, где заменил Excel на автоматизированные пайплайны. Обучение обошлось ему в $120 (подписки на Claude Pro и Cursor).

#факт
@zen_of_python

Читать полностью…

Zen of Python

Как работает развёртывание Python-приложений: от запроса до ответа

Зачем нужен gunicorn? А зачем — Nginx? Эти вопросы часто задают разработчики, впервые сталкивающиеся с деплоем Python-приложений. Может показаться, что веб-приложение — это просто код на Flask или Django, который запускается и принимает запросы. Но на практике между пользователем и вашим кодом выстраивается целая цепочка инфраструктурных компонентов, каждый из которых решает важную задачу. На схеме показан путь HTTP-запроса от клиента до конечного обработчика в приложении и обратно.

Accept: принимаем запрос

Когда пользователь открывает ваш сайт, он отправляет HTTP-запрос. Этот запрос в первую очередь встречается с внешним сервером — чаще всего это nginx. Его задача — понять, куда направить запрос: отдать ли статику, переписать URL, направить на конкретное приложение, или вовсе отклонить (например, по причине отсутствия авторизации). Он также может выполнять кэширование, сжатие и защищать от некоторых видов атак. Сюда же можно отнести балансировщики нагрузки и ingress-контроллеры в Kubernetes.

Translate: превращаем байты в Python

Следующий этап — перевод сетевого запроса в то, что понимает ваше Python-приложение. Это задача gunicorn или аналогичных серверов, поддерживающих WSGI (или ASGI, если речь о FastAPI и асинхронных приложениях). gunicorn создаёт рабочие процессы, слушает сокет, принимает соединения от nginx и передаёт их дальше в код Python. Он изолирует логику приложения от низкоуровневой сетевой части и обеспечивает масштабируемость.

Process: бизнес-логика и генерация ответа

Завершающий этап — сам Python-код во фреймворке (Django, Flask, FastAPI и пр.). Здесь выполняются проверки, обращения к БД, формируются HTML-страницы или JSON-ответы. Именно здесь происходит «магия» — добавление ценности, решение задач пользователей и реализация бизнес-логики.

#факт #основы
@zen_of_python

👀 — Если пришлось перечитать три раза

Читать полностью…

Zen of Python

​​Pandas 3.0 переходит с NumPy на PyArrow

Такой переход обеспечит значительный прирост скорости, особенно при фильтрации, группировке и чтении данных. Также снижается потребление памяти и появляется лучшая поддержка отсутствующих значений. Благодаря формату Arrow, Pandas становится более совместимым с другими современными инструментами аналитики. При этом существующий код на Pandas останется работоспособным без изменений.

Все больше статей в сообществе про альтернативы pandas, выигрывающие в скорости, но не тут-то было!

#факт
@zen_of_python

Читать полностью…

Zen of Python

🥰Виртуальные серверы в США от Aéza со скидкой 20%!

Мощь, скорость и надежность для ваших проектов — по выгодной цене.

Почему выбирают серверы Aéza:

• Канал связи до 25 Гбит/с — никаких лагов и задержек
• Мощные процессоры AMD Ryzen 9 9950X — справятся с любой нагрузкой
• Встроенная DDoS-защита — ваш проект под надежной охраной

💻Время истекает! Успейте активировать скидку 20% до 06.06 и разгоните свой проект на топовых серверах!

P.S. Предложение не суммируется с другими акционными программами.

Выбрать тариф | Зарегистрироваться

Реклама. Рекламодатель: ООО «Аеза Групп», ИНН 7813654490, erid: 2W5zFGbd7PE

Читать полностью…

Zen of Python

​​RedBaron | Прокачивай код Like a Pro

Мощная библиотека для анализа и модификации исходного кода с сохранением форматирования. Предоставляет удобный интерфейс для работы с синтаксическим деревом кода, сохраняя пробелы, отступы и комментарии. Идеально подходит для рефакторинга, автогенерации кода и статического анализа.

p.s. Red Baron («Красный барон») — вид питонов, чешуя кирпично-красного цвета.

Репозиторий проекта
#библиотека
@zen_of_python

Читать полностью…

Zen of Python

​​#кек
@zen_of_python

Читать полностью…

Zen of Python

Вопросы подписчиков

Zen of Python поддерживает новоприбывших (и не только) в особой рубрике. Как это работает:

— Спрашивайте что угодно (в комментариях под этим постом), связанное с Python. Здесь нет плохих вопросов!
— Сообщество вас поддержит. Самые интересные вопросы мы разберём в отдельном посте;

#вопросы_новичков
@zen_of_python

Читать полностью…

Zen of Python

Несколько способов ускорить ваш код.

В реальных задачах — от обработки данных до веб-сервисов — скорость выполнения критична. Незаметные узкие места могут приводить к росту затрат на инфраструктуру и снижению качества обслуживания пользователей. Вашему вниманию эффективные способа ускорить Python — каждый из них помогает бороться с типичными источниками замедлений.

tuple вместо list
Кортежи неизменяемы: они создаются один раз, занимают фиксированную память и оптимизируются самим интерпретатором. Списки же — динамический тип: их память часто переранее выделяется, они имеют более сложную внутреннюю структуру.

Поэтому когда структура фиксирована и не требуется изменять элементы — используйте кортеж. Это существенно сэкономит память, когда речь идёт о больших объёмах данных.


set и dict вместо list при частых проверках и поисках
— Поиск x in my_list — линейная операция (O(n));
— Проверка присутствия через my_set или my_dict — это хеш-таблица (O(1));

Если вам нужна частая проверка вхождений (фильтрация или поиск), выбирайте сет или словарь. Первый предпочтителен для уникальных элементов, второй — когда нужен быстрый доступ по ключу и хранение значений.

Локальные переменные быстрее
Переменные локальной области видимости читаются быстрее, чем глобальные — это из-за особенностей функционирования интерпретатора. В циклах и функциях выносите глобальные объекты как список, словарь в локальные переменные — это ускоряет многократные обращения.

#основы
@zen_of_python

Читать полностью…

Zen of Python

Новый инструмент для отладки асинхронных процессов

С выходом Python 3.14 beta 2 появился новый CLI-инструмент для инспекции асинхронных задач:


python -m asyncio ps 12345 # Табличный список задач для процесса с PID 12345
python -m asyncio pstree 12345 # Древовидное отображение взаимозависимых корутин


Команда выводит табличный список активных корутин с их именами, стеком и зависимостями.

Сферы применения
— Telegram-боты;
— aiohttp и другие HTTP-серверах;
— await‑запросы к БД.

Теперь нет нужды вставлять логи или использовать профайлеры — диагностика идет вживую и позволит увидеть:
— какие запросы обрабатываются дольше всего;
— какие «вешают» бота;
— какие запросы ожидают своей очереди.

Документация
#факт
@zen_of_python

Читать полностью…

Zen of Python

​​Опрос про роль ИИ в вашей работе

Редакция Tproger проводит регулярное исследование об отношении айтишников к Искусственному интеллекту. Это небольшая анкета займет не более 5 минут, но очень поможет прояснить отношение разных групп к AI. Результатами обязательно поделимся.

#опрос
@zen_of_python

Читать полностью…

Zen of Python

Лаконичная шпора из 12 базовых команд GIT на русском 🙂

Кратко, по делу, без лишнего — самые нужные команды для повседневной работы с репозиторием.

А если нужна более расширенная подборка — загляните в наш прошлый чит-лист. Возможно даже откроете для себя что-то новое

Читать полностью…

Zen of Python

FlareSolverr | Обходим турникет Cloudflare

Фактически эта библиотека обеспечивает вас прокси-сервером для обхода антибот-защиты. Когда приходит запрос, она использует Selenium с undetected-chromedriver для открытия вкладки Chrome. URL с параметрами пользователя открывается, задача Cloudflare решается (или истекает время ожидания). Посмотрим, сколько времени у CF уйдет на «компенсацию» такого «эксплойта».

Цена: бесплатно
Репозиторий проекта
#инструмент
@zen_of_python

Читать полностью…

Zen of Python

А если ты путешествуешь во времени и прилетел в ДРУГОЙ ЧАСОВОЙ ПОЯС???

😎 — ненавижу их (часовые пояса)
😈 — ничего сложно в них нет
💯 — мне индифферентно

@ithumor

Читать полностью…

Zen of Python

#кек
@zen_of_python

Читать полностью…

Zen of Python

#основы
@zen_of_python

Читать полностью…

Zen of Python

​​Мегагайд: культура работы с Git

Git — это не только (и не столько!) знание самой технологии и конкретных команд, но и определённая культура взаимодействия, практики, подходы, договорённости. Всё это помогает участникам команды лучше понимать друг друга и работать быстрее и чётче.

В статье — как раз об этом. В ней раскрыли, что формирует культуру работы с Git: от конвенций именования коммитов и до практик работы в пуллреквесте. В конце статьи — полезные ссылки на интерактивные обучалки, шпаргалки и гайды: https://habr.com/ru/companies/yandex_praktikum/articles/812139/

#git #шпаргалки

Читать полностью…

Zen of Python

Нобелевки, где помог Python

Python играет ключевую роль в науке. Это инструмент анализа данных, моделирования и визуализации. Вашему вниманию самые нашумевшие проекты с участием этого ЯП, получившие Нобелевские премии.

Обратное распространение ошибки (Backpropagation) и глубокое обучение
Наука: Физика
Когда: 2024

Библиотеки TensorFlow и PyTorch стали основными инструментами для реализации алгоритма обратного распространения ошибки в нейронных сетях.

CRISPR/Cas9 — редактирование генома
Наука: химия
Когда: 2020

Библиотека Biopython используется для анализа геномных данных и моделирования последовательностей ДНК.

Гравитационные волны (LIGO)
Наука: физика
Когда: 2017

Библиотека GWpy используется для анализа данных, полученных от детекторов гравитационных волн — это рябь в пространстве-времени, возникающая при очень мощных космических событиях, например, столкновении черных дыр.

Нейропластичность и функциональная МРТ
Наука: физиология
Когда: 2014

Библиотека MNE-Python используется для анализа нейрофизиологических данных, таких как ЭЭГ и МЭГ.

Анализ климата и моделирование глобального потепления
Наука: физика
Когда: 2021

Библиотека Xarray помогает анализировать многомерные климатические данные и моделировать климатические изменения.

Экзопланеты — открытие планет за пределами Солнечной системы
Наука: физика
Когда: 2019

Библиотека Lightkurve используется для анализа световых кривых звезд и обнаружения экзопланет.

Некоторые проекты все же остались лишь номинантами, но их тоже стоит упомянуть, ибо лучшего способа зарядиться изучать программирование, пожалуй, нет.

Телескоп Джеймса Уэбба (JWST) и инфракрасная астрономия

Инструменты Astropy используется для обработки и анализа данных, полученных от JWST. Это помогает определить химический состав объектов, проследить их траектории во времени.

Подробнее
#факт
@zen_of_python

Читать полностью…

Zen of Python

Минцифры запускает платформу для подтверждения ИТ-навыков 😱

Пройти тесты уже можно по 5 языкам программирования и 12 теоретическим темам. Это бесплатно и не требует диплома.

Успешные
участники получают сертификат, видимый в резюме и на Госуслугах 🕺

Будете проходить такую сертификацию?

👍 — да
👎 — нет


@ithumor

Читать полностью…

Zen of Python

Из гайда по безопасности Django

Фреймворк известен своей философией «батарейки в комплекте». Однако даже с его встроенными средствами защиты, безопасность приложения во многом зависит от разработчика.

Современные веб-приложения сталкиваются с множеством угроз. Хотя Django предоставляет встроенные механизмы защиты от многих из этих угроз, полезно ознакомиться с основными InfoSec-практиками.

Обновление Django и зависимостей

Регулярно «освежайте» версию фреймворка и сторонних библиотек, они нередко содержат хотфиксы в контексте безопасности.

Передача данных по HTTPS

Обязательно настраивайте свой веб-сервер, будь то nginx или что другое, на HTTPS. SSL-сертификат можно получить бесплатно на letsencrypt.com. Библиотека certbot даже позволяет настроить автопродление серта.

Ограничение доступа к базе данных

Хотя Django ORM защищает от SQL-инъекций, дополнительные меры не повредят:

— Ограничьте права пользователя БД до необходимого минимума;
— Регулярно создавайте резервные копии и шифруйте данные;
— Используйте ORM Django.

Если необходимо использовать сырой SQL, спасет параметризация. В примере ниже драйвер БД экранирует значение username:


from django.db import connection

with connection.cursor() as cursor:
cursor.execute("SELECT * FROM auth_user WHERE username = %s", [username])


Встроенные средства безопасности

Создатели проекта предоставляет множество встроенных механизмов безопасности:

— Добавьте django.middleware.security.SecurityMiddleware в список MIDDLEWARE;
— Настройте заголовки безопасности, такие как Content-Security-Policy, X-Content-Type-Options, X-Frame-Options.

Аутентификация

— Реализуйте многофакторную аутентификацию с помощью пакетов, таких как django-otp;
— Применяйте ролевую модель доступа для управления правами пользователей.

Полезные библиотеки | Misc

Ниже представлена слегка эклектичная, но полезная подборка тулов, прямо или косвенно повышающих безопасность вашего сайта:
— django-ratelimit ограничит частоту запросов;
— django-guardian управляет объектно-ориентированными разрешениями;
— SonarQube / semgrep.dev: автотестирует ваш проект на предмет эксплойтов (DevSecOps).

#безопасность #основы
@zen_of_python

Читать полностью…

Zen of Python

Если бы расам Elder Scrolls соответствовала специализация в Python

🦄 — Если тоже решил снова поиграть в Oblivion

#кек
@zen_of_python

Читать полностью…

Zen of Python

​​Fun Fact: своей популярностью Python во многом обязан Google. Компания настолько вдохновилась перспективами ЯП, что наняла для развития проекта целого Гвидо ван Россума (создателя).

#факт
@zen_of_python

Читать полностью…
Subscribe to a channel