#python python... PYTHON 🔛 🚀
11 subscribers
914 photos
7 videos
158 files
1.54K links
Download Telegram
Forwarded from DE
🖥 Python-разработчики подверглись сложной атаке на цепочку поставок

Аналитики компании Checkmarx сообщили, что после загрузки вредоносного клона популярной утилиты Colorama несколько Python-разработчиков, включая сопровождающего Top.gg, оказались заражены малварью, похищающей информацию. По мнению специалистов, основной целью кампании, скорее всего, была кража данных и их последующая монетизация.

Атака началась аж в ноябре 2022 года, когда хакеры впервые загрузили вредоносные пакеты в Python Package Index (PyPI). В последующие годы на PyPI было добавлено еще больше пакетов с малварью. Все они были похожи на популярные опенсорсные инструменты, что повышало вероятность их попадания в результаты поисковых систем.

Утилита Colorama, которую в числе прочих подделали злоумышленники, обеспечивает работу последовательностей символов ANSI в Windows и в настоящее время насчитывает более 150 млн загрузок ежемесячно.

Чтобы организовать атаку на цепочку поставок, хакеры клонировали эту утилиту, внедрили в нее вредоносный код и разместили вредоносную версию на поддельном домене. Благодаря тому, что атакующие использовали тайпсквоттинг, сайт хакеров (files.pypihosted[.]org) походил на легитимное зеркало files.pythonhosted.org.

Для распространения вредоносного пакета злоумышленники не только создали вредоносные репозитории под собственными учетными записями, но также взломали ряд известных аккаунтов. В их числе был GitHub-аккаунт editor-syntax, поддерживающий платформу для поиска и обнаружения серверов, ботов и других социальных инструментов в Discord, Top.gg, сообщество которой насчитывает более 170 000 участников.

Аккаунт, скорее всего, был взломан через украденные cookies, которые злоумышленники использовали для обхода аутентификации и выполнения вредоносных действий, при этом не зная пароля аккаунта. В результате взлома пострадали несколько членов сообщества Top.gg.

📎 Читать подробнее
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Dmitry Kosarevsky
попробуй такое, сам не читал, но говорят норм
Forwarded from DE
Если тебе интересно заглянуть под капот Python и узнать, как устроены списки - есть отличная статья, которая начинается с достаточно простого примера и потом плавно погружает в глубины C-шной реализации списков в Python.

Автор статьи серьёзно подошёл к делу: он не только детально всё расписал, но и приложил кучу наглядных иллюстраций.

Даже если ты никогда не программировал на C, тебе будет понятен и интересен материал.

Ссылка на статью, рекомендую ознакомиться — это на самом деле увлекательно 🙂

#python
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from DE
И ещё немного про Python.

Полезно тем, кто уже освоился с f-строками в Python и использует их для форматирования. Часто ты останавливаешься на чём-то вроде f"string {variable}", но знаешь ли ты, что f-строки скрывают в себе гораздо больше возможностей?

Например, представь, что тебе нужно превратить число в строку, где оно всегда будет занимать три позиции, дополняясь нулями спереди, если это необходимо. С f-строками это сделать проще простого! Если у тебя число 5, ты получишь "005", а если 123, то останется просто "123".

Гайд от PyBites показывает, на что способны f-строки. Если ты ещё не раскрыл для себя все возможности этого удобного инструмента - бегом читать 🙃

Ссылка

А ещё по f-строкам у меня была ссылка на другой хороший материал в посте

#python
Please open Telegram to view this post
VIEW IN TELEGRAM
🔍 Как использовать инструменты статического анализа в коде Python

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

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

Читать

@data_analysis_ml
Please open Telegram to view this post
VIEW IN TELEGRAM
import sqlite3
from functools import wraps

def create_cache_table():
conn = sqlite3.connect("cache.db")
c = conn.cursor()
c.execute("CREATE TABLE IF NOT EXISTS cache (input text, output text)")
conn.commit()
conn.close()

def drop_cache_table():
conn = sqlite3.connect("cache.db")
c = conn.cursor()
c.execute("DROP TABLE IF EXISTS cache")
conn.commit()
conn.close()

def store_in_cache(input, output):
create_cache_table()
conn = sqlite3.connect("cache.db")
c = conn.cursor()
c.execute("INSERT INTO cache VALUES (?,?)", (input, output))
conn.commit()
conn.close()

def retrieve_from_cache(input):
create_cache_table()
conn = sqlite3.connect("cache.db")
c = conn.cursor()
c.execute("SELECT output FROM cache WHERE input=?", (input,))
result = c.fetchone()
conn.close()
if result:
return result[0]
return None

def cache(func):
@wraps(func)
def wrapper(input):
output = retrieve_from_cache(input)
if output is not None:
print("# from cache: ", end='\t')
return output
else:
print("# new question: ", end='\t')
output = func(input)
store_in_cache(input, output)
return output
return wrapper

@cache
def get_answer(input):
ai_dict = {
"who are you" : "stupid algorithm)",
"2 + 2": '4',
}
return '\t'*3 + ai_dict.get(input, "I don't khow
🤷‍♂️")

def test():
drop_cache_table()
test_ai_qsts = [
"who are you",
"2 + 2",
"who are you",
"ok"
]
for q in test_ai_qsts:
print(
q, get_answer(q),
sep=' -> \n',
)

if __name__ == '__main__':
test()


@getcher полный код кэширования ответов
Forwarded from DataEng
100 самых популярных Python докладов

Нашел в сети подборку из 100 самых просматриваемых докладов про Python: 100 most-watched Python 2023 conference talks ordered by the number of views
Среди этих докладов популярны темы про Rust, data engineering и оптимизацию производительности.

К слову, PyCon US 2024 уже прошел, но в открытом доступе до сих пор нет докладов. Надеюсь на их скорое появление, т.к. там есть на что посмотреть.
Please open Telegram to view this post
VIEW IN TELEGRAM
На днях мне подкинули интересный канал https://t.me/press_any_button , рекомендую присмотреться, особенно начинающим разработчикам 🐍

Авторы публикуют различные гайды по python, разработке на django, использованию docker, написанию ботов с aiogram и по другим темам. Так же разбирают различные задачи на python. Описание контента в одном посте можно посмотреть тут https://t.me/press_any_button/738 👈

Для тех кто только начинает своей погружение в мир разработки, рекомендую начать читать канал с самых первых постов, можно последовательно пройти через уроки разработки сайтов с самого нуля 🎓, если вам подходит django.
# Материалы к докладу на PYCON RUSSIA: "Долгая дорога к JIT"

Уже завтра стартует pycon, а я как обычно в последний день переделываю весь доклад 😂. Выкладываю материалы по докладу для зрителей. Завтра после выступления выложу в канал презентацию, но полноценные видео записи придется какое-то время подождать.

## Про cpython и байткод

- Афонасьев Евгений - А побыстрее можно? - доклад про оптимизации в работе с байтокодом, в рамках него я подробно рассказываю, что такое байткод и как с ним работает cpython (ru)
- Афонасьев Евгений - адаптируйся или умри - в рамках доклада подробно разбирается, как работает Specializing Adaptive Interpreter (ru)

## Про JIT в целом

- разбор базовых приемов для JIT на примере простой С программы (ru)
- пример написания JIT для brainfuck и не только (eng)
- пример написания jit для lua (eng)

## Изменения в python последних лет

- как выглядит DSL для байткода в исходном коде cpython (eng)
- спецификация DSL для байткода (eng)
- ранний дизайн tier2 оптимизатора (uops) (eng)
- PEP 669 – Low Impact Monitoring for CPython (eng)
- PEP 689 – Unstable C API tier (eng)

## PEP 744 – JIT Compilation

- Brandt Bucher – A JIT Compiler for CPython презентация для кор девелоперов (eng)
- JIT в Python | Никита Соболев доклад от core developer (ru)
- PR с добавлением JIT (eng)
- PEP про JIT, написанный и принятый уже после мержа изменений (eng)
- обсуждение PEP (eng)
- научная публикация про copy-and-patch jit (eng)
- хорошая статья с простым разъяснением нового JIT в python (eng)

#pycon
Выложили в паблик полный плейлист докладов с ekbpy 🔥

От себя рекомендую ознакомиться с докладами

🤜 Николай Марков - Управление пакетами - хорошее, плохое, злое? - основательный исторический обзор инструментов управления пакетами в python, какими они были, какие они сейчас?
🤜 Александр Гончаров. Чистый код: антипаттерны в питоне, и как с ними бороться - бодро, весело, задорно про типичные антипаттерны, хорошая подача, юмор
🤜 Аль Амин Ужахов. Как внутри работает Litestar? - про интересные особенности внутреннего устройства фреймворка

#ekbpy
https://peps.python.org/pep-0751/

Вы не ждали и не просили, но он пришел. Очередной pep про стандартный формат lock файлов для фиксации версий транзитивных зависимостей в python. Автор уже давно бьется за право принять подобный pep, и может быть в этот раз ему сопутствует удача. Все же лютый зоопарк решений (poentry, pipenv, pdm, rye) пора уже привести к какому-то общему знаменателю.

Пример нового формата
PEP 665 – A file format to list Python dependencies for reproducibility of an application - последний откланенный pep от этого же автора
Forwarded from Zen of Python
В Python слишком много менеджеров пакетов?

В отличие от JavaScript, C#, Dart или Rust, где есть стандартизированные менеджеры пакетов типа npm, NuGet, pub или Cargo, Python стандарты обошли стороной. У него есть целый ворох менеджеров, например, pip, venv, conda и др.

Хорошо это или плохо? Автор этой статьи попробовал разобраться в этом вопрос, попутно разобрав популярные менеджеры для Python:

https://dublog.net/blog/so-many-python-package-managers/

А вы за обилие вариантов или мечтаете о стандартизации?
Forwarded from Zen of Python
Как писать чистый код на Python. Советы разработчикам

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

В этой статье вы узнаете, что такое PEP8, poetry, как создавать архитектуру python-приложения, какие существуют методологии Driven Development и как писать чистый код на Python.

#советы #чистыйкод
Forwarded from Zen of Python
Асинхронность, многопоточность и многопроцессность в python

Хоть Python пока и не стал по-настоющему многопоточным, как нам обещают в Python 3.13, кое-что он всё же может.

С помощью этого видео вы сможете разобраться в том:

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

https://youtu.be/_4QY1nGFRY8

#видео #многопоточность
Forwarded from Zen of Python
В Python слишком много менеджеров пакетов?

В отличие от JavaScript, C#, Dart или Rust, где есть стандартизированные менеджеры пакетов типа npm, NuGet, pub или Cargo, Python стандарты обошли стороной. У него есть целый ворох менеджеров, например, pip, venv, conda и др.

Хорошо это или плохо? Автор этой статьи попробовал разобраться в этом вопрос, попутно разобрав популярные менеджеры для Python:

https://dublog.net/blog/so-many-python-package-managers/

А вы за обилие вариантов или мечтаете о стандартизации?
Forwarded from Zen of Python
Как писать чистый код на Python. Советы разработчикам

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

В этой статье вы узнаете, что такое PEP8, poetry, как создавать архитектуру python-приложения, какие существуют методологии Driven Development и как писать чистый код на Python.

#советы #чистыйкод
Forwarded from Zen of Python
Асинхронность, многопоточность и многопроцессность в python

Хоть Python пока и не стал по-настоющему многопоточным, как нам обещают в Python 3.13, кое-что он всё же может.

С помощью этого видео вы сможете разобраться в том:

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

https://youtu.be/_4QY1nGFRY8

#видео #многопоточность