RedBaron | Прокачивай код Like a Pro
Мощная библиотека для анализа и модификации исходного кода с сохранением форматирования. Предоставляет удобный интерфейс для работы с синтаксическим деревом кода, сохраняя пробелы, отступы и комментарии. Идеально подходит для рефакторинга, автогенерации кода и статического анализа.
p.s. Red Baron («Красный барон») — вид питонов, чешуя кирпично-красного цвета.
Репозиторий проекта
#библиотека
@zen_of_python
Мощная библиотека для анализа и модификации исходного кода с сохранением форматирования. Предоставляет удобный интерфейс для работы с синтаксическим деревом кода, сохраняя пробелы, отступы и комментарии. Идеально подходит для рефакторинга, автогенерации кода и статического анализа.
p.s. Red Baron («Красный барон») — вид питонов, чешуя кирпично-красного цвета.
Репозиторий проекта
#библиотека
@zen_of_python
🐳1🍌1
Из гайда по безопасности Django
Фреймворк известен своей философией «батарейки в комплекте». Однако даже с его встроенными средствами защиты, безопасность приложения во многом зависит от разработчика.
Современные веб-приложения сталкиваются с множеством угроз. Хотя Django предоставляет встроенные механизмы защиты от многих из них, полезно ознакомиться с основными InfoSec-практиками.
Обновление Django и зависимостей
Регулярно «освежайте» версию фреймворка и сторонних библиотек, они нередко содержат хотфиксы в контексте безопасности.
Передача данных по HTTPS
Обязательно настраивайте свой веб-сервер, будь то nginx или что другое, на HTTPS. SSL-сертификат можно получить бесплатно на letsencrypt.com. Библиотека certbot даже позволяет настроить автопродление серта.
Ограничение доступа к базе данных
Хотя Django ORM защищает от SQL-инъекций, дополнительные меры не повредят:
— Ограничьте права пользователя БД до необходимого минимума;
— Регулярно создавайте резервные копии и шифруйте данные;
— Используйте ORM Django.
Если необходимо использовать сырой SQL, спасет параметризация. В примере ниже драйвер БД экранирует значение username:
Встроенные средства безопасности
Создатели проекта предоставляет множество встроенных механизмов безопасности:
— Добавьте
— Настройте заголовки безопасности, такие как
Аутентификация
— Реализуйте многофакторную аутентификацию с помощью пакетов, таких как django-otp;
— Применяйте ролевую модель доступа для управления правами пользователей.
Полезные библиотеки | Misc
Ниже представлена слегка эклектичная, но полезная подборка тулов, прямо или косвенно повышающих безопасность вашего сайта:
— django-ratelimit ограничит частоту запросов;
— django-guardian управляет объектно-ориентированными разрешениями;
— SonarQube / semgrep.dev: автотестирует ваш проект на предмет эксплойтов (DevSecOps).
#безопасность #основы
@zen_of_python
Фреймворк известен своей философией «батарейки в комплекте». Однако даже с его встроенными средствами защиты, безопасность приложения во многом зависит от разработчика.
Современные веб-приложения сталкиваются с множеством угроз. Хотя 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
👍2🎃1
Forwarded from IT Юмор
Минцифры запускает платформу для подтверждения ИТ-навыков 😱
Пройти тесты уже можно по 5 языкам программирования и 12 теоретическим темам. Это бесплатно и не требует диплома.
Успешные участники получают сертификат, видимый в резюме и на Госуслугах🕺
Будете проходить такую сертификацию?
👍 — да
👎 — нет
@ithumor
Пройти тесты уже можно по 5 языкам программирования и 12 теоретическим темам. Это бесплатно и не требует диплома.
Успешные участники получают сертификат, видимый в резюме и на Госуслугах
Будете проходить такую сертификацию?
👍 — да
👎 — нет
@ithumor
Please open Telegram to view this post
VIEW IN TELEGRAM
👎27😁9👍4❤1
Pandas 3.0 переходит с NumPy на PyArrow
Такой переход обеспечит значительный прирост скорости, особенно при фильтрации, группировке и чтении данных. Также снижается потребление памяти и появляется лучшая поддержка отсутствующих значений. Благодаря формату Arrow, Pandas становится более совместимым с другими современными инструментами аналитики. При этом существующий код на Pandas останется работоспособным без изменений.
Все больше статей в сообществе про альтернативы pandas, выигрывающие в скорости, но не тут-то было!
#факт
@zen_of_python
Такой переход обеспечит значительный прирост скорости, особенно при фильтрации, группировке и чтении данных. Также снижается потребление памяти и появляется лучшая поддержка отсутствующих значений. Благодаря формату Arrow, Pandas становится более совместимым с другими современными инструментами аналитики. При этом существующий код на Pandas останется работоспособным без изменений.
Все больше статей в сообществе про альтернативы pandas, выигрывающие в скорости, но не тут-то было!
#факт
@zen_of_python
✍3❤1
Нобелевки, где помог 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
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
Analytics Vidhya
The 2024 Nobel Prizes: AI is Taking Over Everything
Find out how AI is reshaping the future of science with the Nobel Prizes in Physics and Chemistry. Nobel prize winners and their work in 2024.
🔥8❤6
Как работает развёртывание 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
👀 — Если пришлось перечитать три раза
Зачем нужен 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
👀 — Если пришлось перечитать три раза
👀6
Forwarded from Веб-страница
Мегагайд: культура работы с Git
Git — это не только (и не столько!) знание самой технологии и конкретных команд, но и определённая культура взаимодействия, практики, подходы, договорённости. Всё это помогает участникам команды лучше понимать друг друга и работать быстрее и чётче.
В статье — как раз об этом. В ней раскрыли, что формирует культуру работы с Git: от конвенций именования коммитов и до практик работы в пуллреквесте. В конце статьи — полезные ссылки на интерактивные обучалки, шпаргалки и гайды: https://habr.com/ru/companies/yandex_praktikum/articles/812139/
#git #шпаргалки
Git — это не только (и не столько!) знание самой технологии и конкретных команд, но и определённая культура взаимодействия, практики, подходы, договорённости. Всё это помогает участникам команды лучше понимать друг друга и работать быстрее и чётче.
В статье — как раз об этом. В ней раскрыли, что формирует культуру работы с Git: от конвенций именования коммитов и до практик работы в пуллреквесте. В конце статьи — полезные ссылки на интерактивные обучалки, шпаргалки и гайды: https://habr.com/ru/companies/yandex_praktikum/articles/812139/
#git #шпаргалки
😁4👍1
Сломал ногу — выучил Python: как ИИ помог экс-консультанту стать программистом за 100 дней
38-летний Эрик Леннрот после травмы решил изменить карьеру и выбрал Python, пройдя бесплатные курсы CS50 от Гарварда. С помощью ChatGPT он писал псевдокод, получал обратную связь и вручную набирал код. Его первый проект стал основой для более сложного веб-приложения из 25К строк кода. И о чудо! через три месяца он получил оффер в консалтинговой компании в Лондоне, где заменил Excel на автоматизированные пайплайны. Обучение обошлось ему в $120 (подписки на Claude Pro и Cursor).
#факт
@zen_of_python
38-летний Эрик Леннрот после травмы решил изменить карьеру и выбрал Python, пройдя бесплатные курсы CS50 от Гарварда. С помощью ChatGPT он писал псевдокод, получал обратную связь и вручную набирал код. Его первый проект стал основой для более сложного веб-приложения из 25К строк кода. И о чудо! через три месяца он получил оффер в консалтинговой компании в Лондоне, где заменил Excel на автоматизированные пайплайны. Обучение обошлось ему в $120 (подписки на Claude Pro и Cursor).
#факт
@zen_of_python
✍4❤2
Насколько вы толерантны к галлюцинациям LLM по шкале от 0 до 5?
Anonymous Poll
25%
0
13%
1
14%
2
24%
3
12%
4
12%
5
Вопросы подписчиков
Zen of Python поддерживает новоприбывших (и не только) в особой рубрике. Как это работает:
— Спрашивайте что угодно (в комментариях под этим постом), связанное с Python. Здесь нет плохих вопросов!
— Сообщество вас поддержит. Самые интересные вопросы мы разберём в отдельном посте;
#вопросы_новичков
@zen_of_python
Zen of Python поддерживает новоприбывших (и не только) в особой рубрике. Как это работает:
— Спрашивайте что угодно (в комментариях под этим постом), связанное с Python. Здесь нет плохих вопросов!
— Сообщество вас поддержит. Самые интересные вопросы мы разберём в отдельном посте;
#вопросы_новичков
@zen_of_python
Бэкроним — это в шутку неверная расшифровка аббревиатуры.
PEP — Please Explain Python
#кек
@zen_of_python
PEP — Please Explain Python
#кек
@zen_of_python
❤5
FlareSolverr | Обходим турникет Cloudflare
Фактически эта библиотека обеспечивает вас прокси-сервером для обхода антибот-защиты. Когда приходит запрос, она использует Selenium с undetected-chromedriver для открытия вкладки Chrome. URL с параметрами пользователя открывается, задача Cloudflare решается (или истекает время ожидания). Посмотрим, сколько времени у CF уйдет на «компенсацию» такого «эксплойта».
Цена: бесплатно
Репозиторий проекта
#инструмент
@zen_of_python
Фактически эта библиотека обеспечивает вас прокси-сервером для обхода антибот-защиты. Когда приходит запрос, она использует Selenium с undetected-chromedriver для открытия вкладки Chrome. URL с параметрами пользователя открывается, задача Cloudflare решается (или истекает время ожидания). Посмотрим, сколько времени у CF уйдет на «компенсацию» такого «эксплойта».
Цена: бесплатно
Репозиторий проекта
#инструмент
@zen_of_python
✍1🍌1