Python/ django
59K subscribers
2.53K photos
193 videos
48 files
3.26K links
по всем вопросам @haarrp

@itchannels_telegram - 🔥 все ит каналы

@ai_machinelearning_big_data -ML

@ArtificialIntelligencedl -AI

@datascienceiot - 📚

@pythonlbooks

РКН: clck.ru/3FmxmM
Download Telegram
🚀 GPU-библиотека для классического машинного обучения

FlashLib предлагает высокопроизводительные реализации операторов машинного обучения, таких как kmeans, PCA и DBSCAN, с использованием Triton и CuteDSL. Библиотека позволяет эффективно обрабатывать данные на GPU, обеспечивая простоту использования и высокую скорость выполнения.

🚀Основные моменты:
- Поддержка 15 высокоуровневых примитивов для машинного обучения.
- Информативный API для оценки производительности операций.
- Оптимизированные реализации для кластеризации, регрессии и декомпозиции.
- Легкая интеграция с PyTorch и sklearn.

📌 GitHub: https://github.com/FlashML-org/flashlib

#python
5👍4
🔍 Обнаружение уязвимостей с помощью Audit

Audit — это агент для поиска уязвимостей, использующий 8-ступенчатую методологию, основанную на взаимодействии узких агентов и принципе "умышленного несогласия". Он интегрируется с Claude Pro и предлагает структурированные отчеты о безопасности.

🚀 Основные моменты:
- Многопоточность: узкие агенты работают параллельно для поиска уязвимостей.
- Умышленное несогласие: второй агент проверяет выводы первого.
- Отслеживание доступности: подтверждает, что уязвимости могут быть достигнуты злоумышленником.
- Обратная связь: находит новые задачи на основе обнаруженных уязвимостей.

📌 GitHub: https://github.com/evilsocket/audit

#python
👍135🔥4
Как создать аннотированный график с помощью #Python и matplotlib 🐍📊
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍197🔥1🎉1
⚡️ SearchPhone - open-source утилита на Python, которая автоматизирует сбор данных по телефонным номерам и формирует готовые отчёты.

Возможности

- проверка корректности телефонного номера
- определение страны и оператора связи
- поиск упоминаний через Google, Bing и DuckDuckGo
- поиск номера в открытом коде на GitHub
- поиск публикаций и обсуждений на Reddit
- создание отчётов в форматах JSON и PDF
- параллельная обработка запросов
- управление через простой CLI

Инструмент пригодится для OSINT-исследований, threat intelligence и проверки открытых источников.

Используйте его только законно и с соблюдением права на конфиденциальность.

🔗 GitHub: https://github.com/HackUnderway/SearchPhone

#OSINT #CyberSecurity #Python #OpenSource #GitHub #ThreatIntelligence #InfoSec
Please open Telegram to view this post
VIEW IN TELEGRAM
13👍6🔥5
🖥 Mellea: Python-библиотека для предсказуемых LLM-приложений

Обычный вызов LLM часто напоминает лотерею: модель может нарушить формат, пропустить требование или вернуть ответ, который сложно проверить.

Mellea предлагает писать такие системы как типизированные generative-программы.

Достаточно описать Python-функцию:


from pydantic import BaseModel
from mellea import generative, start_session

class UserProfile(BaseModel):
name: str
age: int

@generative
def extract_user(text: str) -> UserProfile:
"""Извлеки имя и возраст пользователя."""

m = start_session()
user = extract_user(
m,
text="Alice is 31 years old."
)


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

Возможности проекта:

- структурированные ответы через Pydantic;
- проверяемые требования и автоматический repair;
- rejection sampling и majority voting;
- поддержка OpenAI, Ollama, Hugging Face, Bedrock, LiteLLM и WatsonX;
- интеграция с существующим кодом;
- публикация generative-программ как MCP-инструментов.

Проект начат в IBM Research, написан на Python и распространяется под лицензией Apache 2.0.

https://github.com/generative-computing/mellea

#python #ai #llm #opensource #agents
Please open Telegram to view this post
VIEW IN TELEGRAM
11🔥8👍5
🐍 collections.Counter: больше, чем подсчёт частот

Большинство используют Counter только ради most_common(), хотя у него есть куда более интересные возможности.


from collections import Counter

a = Counter("abracadabra")
b = Counter("barbecue")


Можно складывать и вычитать частоты:


a + b
a - b


Пересечение и объединение счётчиков:


a & b # минимальные значения
a | b # максимальные значения


Удалить элементы с нулевой и отрицательной частотой:


clean = +a


Получить общее число элементов:


a.total()


Развернуть счётчик обратно в последовательность:


list(a.elements())


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

#Python #Collections #Backend
10👍6🔥4
🐍 Python-совет: как объединить списки разной длины и не потерять данные

Обычный zip() останавливается на самом коротком списке:


numbers = [1, 2, 3, 4, 5]
letters = ["a", "b", "c"]

print(list(zip(numbers, letters)))
# [(1, 'a'), (2, 'b'), (3, 'c')]


Элементы 4 и 5 просто исчезнут. Чтобы сохранить их, используйте zip_longest():


from itertools import zip_longest

result = zip_longest(
numbers,
letters,
fillvalue="нет значения",
)

print(list(result))


Результат:


[
(1, "a"),
(2, "b"),
(3, "c"),
(4, "нет значения"),
(5, "нет значения"),
]


А когда списки обязаны иметь одинаковую длину, в Python 3.10+ лучше включить проверку:


zip(numbers, letters, strict=True)


Вместо тихой потери данных Python сразу выбросит ValueError.

Полезно при обработке таблиц, CSV, результатов API и параллельных наборов данных.

#Python #Programming #PythonTips
🔥86👍5🎉1
🚀 Neo4j без сервера: GraphForge запускает полноценный Cypher прямо внутри Python-скрипта

GraphForge занимает редкую нишу между NetworkX и серверными графовыми БД. Вы получаете встроенный графовый движок на Rust, полный openCypher и хранение проекта в обычной директории.

Что внутри:

- четыре независимых слоя на Rust: parser → IR → planning → execution;
- результаты сразу возвращаются как Apache Arrow Table;
- данные легко передаются в Pandas и Polars;
- постоянное хранение построено на Parquet;
- встроены PageRank, Louvain и гибридный текстово-векторный поиск;
- Python- и Node.js-биндинги работают поверх одного движка.


from graphforge import GraphForge

graph = GraphForge("research/")

result = graph.execute("""
MATCH (a)-[:CITES]->(b)
RETURN a.title, b.title
""")

print(result.to_pandas())


При этом GraphForge честно позиционируется как инструмент исследовательского и notebook-масштаба. Для миллиардных графов, высокой нагрузки и многопользовательского доступа по-прежнему нужна серверная БД.

Python и Node.js доступны сейчас, Swift и Kotlin находятся в планах. Лицензия — Apache 2.0.

https://github.com/CurateLabs/graphforge

#RustLang #Python #OpenSource #GraphDatabase #DataScience #KnowledgeGraph
7👍6🔥2
XY - новая open-source библиотека визуализации от команды Reflex. Она пытается объединить удобство Matplotlib с интерактивностью браузерных графиков и производительностью Rust.

Для больших датасетов Rust-ядро XY вычисляет только то, что реально можно показать при текущем разрешении экрана. При приближении данные уточняются и появляются исходные точки.


import xy

chart = xy.line_chart(
xy.line(
[1, 2, 3, 4, 5],
[120, 180, 165, 240, 310]
)
)

chart


Есть даже совместимость с привычным стилем Matplotlib:


import xy.pyplot as plt

fig, ax = plt.subplots()
ax.plot(x, y)
plt.show()


По собственному бенчмарку разработчиков на Apple M5 Pro:

- 100 млн точек в density-режиме - ~0,081 с;
- 100 млн реальных маркеров без агрегации - ~1,34 с;
- библиотека уже использовалась для визуализации датасета OpenStreetMap примерно на 10 млрд точек.

Под капотом:


Python API

ColumnStore

Rust compute

binary buffers

WebGL2 / Canvas


Графики интерактивные: pan, zoom, hover, selection и linked charts. Их можно использовать в Jupyter и веб-приложениях, а затем экспортировать в HTML, PNG, SVG или PDF.

Установка:


pip install xy


Если подход оправдает себя, XY может стать интересной альтернативой связке Matplotlib + Plotly для действительно больших датасетов.

Источник:
https://github.com/reflex-dev/xy

#Python #DataScience #Visualization #Rust
7🔥5👍3
🐍 Django-разработчикам: `DEBUG=True` в проде опаснее, чем кажется.

Это не просто красивые страницы ошибок. При включённом DEBUG приложение может раскрывать stack trace, настройки, пути файлов, middleware, URL-паттерны и другие детали окружения.

Главная рекомендация - fail closed:


DEBUG = False


То есть по умолчанию DEBUG всегда выключен, а включается только локально.

Даже staging, QA и preview-среды, доступные из интернета, лучше запускать с DEBUG=False.

Отдельная ловушка - переменные окружения:


DEBUG = os.environ.get("DEBUG", "False") != "False"


Здесь DEBUG=false или DEBUG=0 могут неожиданно превратиться в True.

Лучше явно парсить boolean или использовать django-environ.

Мелкая настройка, которая однажды может спасти production от очень неприятной утечки.

https://lincolnloop.com/blog/setting-djangos-debug-safely/

#Python #Django #Backend #Security #DevOps
👍65🔥1😁1🎉1🤩1
🐍 В Python у while есть else. И многие разработчики узнают об этом спустя годы

Выглядит непривычно:


number = 0

while number < 5:
print(number)
number += 1
else:
print("Цикл завершился")


Блок else выполнится, если цикл закончился естественно, то есть условие while стало ложным.

Но есть важный нюанс. Если внутри сработает break, else уже не выполнится.


number = 0

while number < 5:
if number == 3:
break

number += 1
else:
print("Сюда не попадём")


Из-за этого while...else удобно использовать там, где нужно отличить нормальное завершение поиска от досрочного выхода.

Например, цикл пытается найти нужное значение. Если нашёл, делает break. Если дошёл до конца без успеха, срабатывает else.

Синтаксис существует в Python давно, но до сих пор выглядит как маленькая пасхалка языка.

#Python #Programming #Backend #PythonTips
12👍6🔥4😱2