Forwarded from Коробка с питоном
Да, оно существует.
Под капотом низкоуровневая магия, из самого понятного - оно позволяет создавать поддельные объекты на куче. Можно создать байтовый массив с базовым адресом 0 и длинной
Такая техника, кстати, используется в эксплоитах движков javascript. Парочкой похожих эксплоитов уже давно хакают PS4.
Под капотом низкоуровневая магия, из самого понятного - оно позволяет создавать поддельные объекты на куче. Можно создать байтовый массив с базовым адресом 0 и длинной
SSIZE_MAX
, что даст доступ к сырой памяти, на чтение и запись.Такая техника, кстати, используется в эксплоитах движков javascript. Парочкой похожих эксплоитов уже давно хакают PS4.
#postgres #db #s3
Please open Telegram to view this post
VIEW IN TELEGRAM
Векторные БД - это особый тип баз данных, предназначенный для организации данных на основе сходства. Для этого они преобразуют необработанные данные, такие как изображения, текст, видео или аудио, в математические представления, известные как многомерные векторы. Каждый вектор может иметь от десятков до тысяч измерений, в зависимости от сложности исходных данных. На данный момент существуют следующие векторные базы данных:
Chroma - это векторная база данных с открытым исходным кодом, предназначенная для предоставления разработчикам и организациям любого размера ресурсов, необходимых для создания приложений на основе больших языковых моделей (LLM). Она предоставляет разработчикам масштабируемое и эффективное решение для хранения, поиска и извлечения многомерных векторов.
Одной из причин популярности Chroma является её гибкость.
Pinecone - это облачная управляемая векторная база данных. Широкая поддержка многомерных векторов делает Pinecone подходящим для различных областей применения, включая поиск по сходству, рекомендательные системы, персонализацию и семантический поиск. Он также поддерживает одноступенчатую фильтрацию. А её способность анализировать данные в режиме реального времени делает её отличным выбором для обнаружения угроз и мониторинга атак на систему кибербезопасности.
Weviate - примечательной особенностью этой базы данных является то, что её можно использовать для хранения как векторов, так и объектов. Это делает её подходящей для приложений, сочетающих в себе несколько методов поиска, таких как векторный поиск и поиск по ключевым словам.
Milvus - использует самые современные алгоритмы для ускорения процесса поиска, что позволяет быстро находить похожие векторы даже при работе с большими объемами данных.
#db #vector
Please open Telegram to view this post
VIEW IN TELEGRAM
Chroma
Open-source search and retrieval database for AI applications
❤🔥8
SQLGlot - это SQL-парсер, транспилятор, оптимизатор и движок без зависимостей. Его можно использовать для форматирования SQL или перевода между 21 различным диалектом, таким как DuckDB, Presto / Trino, Spark / Databricks, Snowflake и BigQuery. Он предназначен для чтения различных SQL-вводов и вывода синтаксически и семантически корректного SQL в целевых диалектах.
Это очень универсальный общий SQL-парсер с надёжным набором тестов. Он также достаточно производительный, несмотря на то, что написан исключительно на Python.
Ты можешь легко настраивать парсер, анализировать запросы, обходить деревья выражений и программно строить SQL.
Синтаксические ошибки подсвечиваются, а несовместимости диалектов могут выдавать предупреждения или рэйзить ошибки в зависимости от конфига. Однако SQLGlot не претендует на роль валидатора SQL, поэтому он может пропустить некоторые синтаксические ошибки.
Больше примеров по ссылке
Документация
#sql #parser #python
Это очень универсальный общий SQL-парсер с надёжным набором тестов. Он также достаточно производительный, несмотря на то, что написан исключительно на Python.
Ты можешь легко настраивать парсер, анализировать запросы, обходить деревья выражений и программно строить SQL.
Синтаксические ошибки подсвечиваются, а несовместимости диалектов могут выдавать предупреждения или рэйзить ошибки в зависимости от конфига. Однако SQLGlot не претендует на роль валидатора SQL, поэтому он может пропустить некоторые синтаксические ошибки.
Больше примеров по ссылке
Документация
#sql #parser #python
Forwarded from Афонасьев Евгений - IT, Python и вот это все
https://stamina.hynek.me/en/latest/tutorial.html
Нашел интересный проект от известного спикера и opensource деятеля Hynek Schlawack
Если вам надоело в очередной раз объяснять новичкам как правильно конфигурировать tenacity, то рекомендую присмотреться. Апи выглядит максимально просто и понятно, при этом есть интеграция со structlog и метриками для prometheus.
Можно использовать как декоратор (асинк поддерживается из коробки)
Можно как контекстный менеджер с возможностью получить доступ к счетчику попыток
А вообще интересно, что для ретраев сейчас модно использовать?
Нашел интересный проект от известного спикера и opensource деятеля Hynek Schlawack
Если вам надоело в очередной раз объяснять новичкам как правильно конфигурировать tenacity, то рекомендую присмотреться. Апи выглядит максимально просто и понятно, при этом есть интеграция со structlog и метриками для prometheus.
Можно использовать как декоратор (асинк поддерживается из коробки)
@stamina.retry(
on=httpx.HTTPError, attempts=3, timeout=dt.timedelta(seconds=10)
)
async def do_it_async(code: int) -> httpx.Response: ...
Можно как контекстный менеджер с возможностью получить доступ к счетчику попыток
for attempt in stamina.retry_context(on=httpx.HTTPError):
with attempt:
resp = httpx.get(f"https://httpbin.org/status/404")
resp.raise_for_status()
А вообще интересно, что для ретраев сейчас модно использовать?
DuckDB: Простота работы с CSV файлами
Традиционные базы данных требуют предварительно определённой схемы таблицы и не поддерживают работу с CSV файлами без предварительной обработки. DuckDB решает эту проблему, позволяя напрямую считывать файлы CSV. Это устраняет необходимость в явном создании таблицы и загрузке данных, значительно упрощая процесс работы с данными.
#db #postgres #duckdb
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥6
Небольшая подборка не очень популярных, но полезных библиотек для анализа данных
PySheets - предоставляет пользовательский интерфейс для работы с электронными таблицами на Python.
Используй Pandas, создавай диаграммы, импортируй таблицы Excel, анализируй данные и создавай отчеты.
py2wasm - преобразует программы и данные на Python в WebAssembly и запускает их в ~3 раза быстрее.
databonsai - библиотека на Python, которая использует LLM для задач очистки данных, таких как категоризация, преобразование и извлечение.
#py #python #dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥5
StarRocks, проект Linux Foundation, — высокопроизводительная MPP OLAP БД нового поколения с быстрой обработкой данных для сложных аналитических кейсов, включая многомерную аналитику, аналитику в реальном времени и многое другое.
#starrocks #db #olap
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - StarRocks/starrocks: The world's fastest open query engine for sub-second analytics both on and off the data lakehouse.…
The world's fastest open query engine for sub-second analytics both on and off the data lakehouse. With the flexibility to support nearly any scenario, StarRocks provides best-in-class perf...
Please open Telegram to view this post
VIEW IN TELEGRAM
😁8
Forwarded from DataEng
На прошлой неделе JetBrains анонсировали релиз их новой IDE для разработки на Rust: RustRover
Изначально это был плагин для их IDE, который в итоге перерос в полноценный продукт. Также ребята решили предоставить бесплатную лицензию на продукт для некоммерческой разработки для всех. Я попробовал и получил бесплатную лицензию на 1 год, возможно в будущем её можно будет продлить.
Впервые язык Rust я попробовал ещё в далёком 2015 году, когда вышла первая стабильная версия языка. С тех пор были неоднократные попытки с моей стороны написать что-нибудь существенное, но не было подходящих проектов под рукой. Сейчас же видно, что Rust плотно вошел в экосистему Python и внёс значительный вклад в её развитие. Наверняка вы слышали о таких проектах как Pydantic, Polars, PyO3 и т.д. Некоторые из них стали революционными для Python.
Python + Rust = ❤️
Также буквально на днях вышел вебинар от JetBrains, посвященный языку Rust и методам его изучения: Programming Education: Tailoring Tools and Techniques for Rust. Если вы вдруг задумались об изучении Rust, то рекомендую к просмотру. В описании к видео есть полезные ресурсы, которые помогут лучше усвоить сложные концепции языка такие, например, как Ownership.
Со своей стороны я попробую ещё раз оседлать эту лошадку и найти подходящий проект, чтобы не потерять мотивацию на пути изучения.
А какой у вас был опыт с Rust?
Изначально это был плагин для их IDE, который в итоге перерос в полноценный продукт. Также ребята решили предоставить бесплатную лицензию на продукт для некоммерческой разработки для всех. Я попробовал и получил бесплатную лицензию на 1 год, возможно в будущем её можно будет продлить.
Впервые язык Rust я попробовал ещё в далёком 2015 году, когда вышла первая стабильная версия языка. С тех пор были неоднократные попытки с моей стороны написать что-нибудь существенное, но не было подходящих проектов под рукой. Сейчас же видно, что Rust плотно вошел в экосистему Python и внёс значительный вклад в её развитие. Наверняка вы слышали о таких проектах как Pydantic, Polars, PyO3 и т.д. Некоторые из них стали революционными для Python.
Python + Rust = ❤️
Также буквально на днях вышел вебинар от JetBrains, посвященный языку Rust и методам его изучения: Programming Education: Tailoring Tools and Techniques for Rust. Если вы вдруг задумались об изучении Rust, то рекомендую к просмотру. В описании к видео есть полезные ресурсы, которые помогут лучше усвоить сложные концепции языка такие, например, как Ownership.
Со своей стороны я попробую ещё раз оседлать эту лошадку и найти подходящий проект, чтобы не потерять мотивацию на пути изучения.
А какой у вас был опыт с Rust?
The JetBrains Blog
RustRover Is Released and Includes a Free Non-Commercial Option | The RustRover Blog
We’re excited to announce the general availability of RustRover, the powerhouse IDE for Rust developers!
Anonymous Quiz
5%
89
5%
69
5%
07
3%
17
68%
87
1%
99
2%
100
12%