PYTHONOMANIA
273 subscribers
195 photos
3 videos
1 file
616 links
Откройте для себя мир Python в PYTHONOMANIA!

Идеально подходит как для начинающих, так и для опытных разработчиков. Присоединяйтесь к нам, чтобы достичь совершенства в Python!

Сайт: https://pythonomania.github.io/
Download Telegram
📱Tabled.

Tabled
— это небольшая библиотека для обнаружения и извлечения таблиц.

✅Она использует библиотеку surya, чтобы найти все таблицы в PDF-файле, определить строки/столбцы и преобразовать их содержимое в форматы markdown, csv или html.

🔹Использование.

tabled DATA_PATH


🔘DATA_PATH может быть изображением, PDF или папкой с файлами.

🔘--format указывает формат вывода (markdown, html, csv)

🔘--save_json сохранит доп. информацию о строках/столбцах в формате JSON

🔘--detect_cell_boxes извлекает данные ячеек с помощью модели.

#️⃣Hosted API.

Существует хостинговый API для использования Tabled, который доступен для работы с:

🔘PDF.
🔘Изображениями.
🔘Документами Word.
🔘Презентациями PowerPoint.

💡Преимущества:

✅Постоянная скорость работы без задержек.
✅Высокая надёжность и доступность.

#Python #Tabled #AI #DataProcessing #TableRecognition #OpenSource #PyTorch #API

📱Ссылка на репозиторий:
https://github.com/VikParuchuri/tabled
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥5👍3
📱Pyper.

Pyper — это гибкий инструмент для конкурентной и параллельной обработки данных, основанный на принципах функционального программирования.

🔹Применяется для:

🔘ETL-систем,
🔘Микросервисов для работы с данными,
🔘Сбора данных.

🔻Основные преимущества:

🔘Интуитивно понятный API: Простое и логичное использование. Единая абстракция для потоков, процессов и асинхронных задач.

🔘Функциональный подход: Построение конвейеров данных из функций Python. Код становится чистым и переиспользуемым.

🔘Безопасность: Автоматическая обработка задач, очистка ресурсов и устранение ошибок потоков. Забудьте о гонках данных и утечках памяти.

🔘Эффективность: Ленивое выполнение с использованием очередей, воркеров и генераторов.

🔘Чистый Python: Лёгкий фреймворк без сторонних зависимостей.

⚙️Пример использования:

import asyncio
import time
from pyper import task

def get_data(limit: int):
for i in range(limit):
yield i

async def step1(data: int):
await asyncio.sleep(1)
print("Async завершён:", data)
return data

def step2(data: int):
time.sleep(1)
print("Sync завершён:", data)
return data

def step3(data: int):
for i in range(10_000_000):
_ = i * i
print("Тяжёлая операция завершена:", data)
return data

async def main():
pipeline = task(get_data, branch=True) \
| task(step1, workers=20) \
| task(step2, workers=20) \
| task(step3, workers=20, multiprocess=True)

total = 0
async for output in pipeline(limit=20):
total += output
print("Итог:", total)

if __name__ == "__main__":
asyncio.run(main())


❓Как это работает?

Конвейер: задачи связываются с помощью оператора | (аналог Unix pipe).

Виды задач:

✔️Асинхронные задачи для IO (step1).
✔️Потоки для синхронных IO-задач (step2).
✔️Процессы для CPU-нагруженных операций (step3).

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

✅Попробуйте Pyper, чтобы ускорить обработку данных!

#Python #Pyper #DataProcessing #Concurrency #Parallelism #ETL #OpenSource #FunctionalProgramming

📱Ссылка на репозиторий:
https://github.com/pyper-dev/pyper
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥3👍1
📱JMESPath.

JMESPath — это язык запросов, позволяющий декларативно извлекать данные из JSON-документов.

❓Как это работает?
Допустим, у нас есть JSON:

{"foo": {"bar": "baz"}}


Запрос foo.bar вернёт "baz".

🔘Работа со списками:

{"foo": {"bar": ["one", "two"]}}


Запрос foo.bar[0] вернёт "one", а foo.bar[-1] — "two".

🔘Выбор всех элементов (*):

{"foo": {"bar": [{"name": "one"}, {"name": "two"}]}}


Запрос foo.bar[*].name вернёт ["one", "two"].

🔘Работа с объектами:

{"foo": {"bar": {"name": "one"}, "baz": {"name": "two"}}}


Запрос foo.*.name вернёт ["one", "two"].

✅JMESPath упрощает обработку JSON в Python, JavaScript и других языках!

#JMESPath #JSON #DataProcessing #Automation #Python #Programming

📱Ссылка на репозиторий:
https://github.com/jmespath/jmespath.py
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥4👍1
📱Smallpond.

smallpond — это легковесный фреймворк для обработки данных на основе DuckDB и 3FS.

🔹Особенности:

🔘Высокопроизводительная обработка данных с использованием DuckDB.

🔘Масштабируемость для работы с петабайтными наборами данных.

🔘Простые операции без необходимости долгоживущих сервисов.

#smallpond #DataProcessing #DuckDB #BigData #Python #MachineLearning #Analytics #PyPI #OpenSource #TechTools

📱Ссылка на репозиторий:
https://github.com/deepseek-ai/smallpond
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥3👍1
📱PyFunctional.

PyFunctional
— мощная Python-библиотека для работы с потоками данных в функциональном стиле!

🔹Возможности:

🔘Цепочки операций: seq(1, 2, 3).map(...).filter(...).reduce(...).

🔘Поддержка чтения/записи файлов: text, csv, json, jsonl, sqlite, сжатые форматы.

🔘Параллельное выполнение через pseq.

🔘Полное покрытие тестами и стабильный CI.

🔘Вдохновлена Scala, Apache Spark и LINQ.

#Python #PyFunctional #DataPipeline #FunctionalProgramming #BigData #DataProcessing #SQLite #Pandas #DataEngineering #PythonTips #OpenSource #DevTools

📱Ссылка на репозиторий:
https://github.com/EntilZha/PyFunctional
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍2🔥2
📱Toolz.

Toolz — это библиотека функциональных утилит для Python.

✅Позволяет удобно и эффективно работать с итераторами, функциями и словарями в функциональном стиле.

🔹Toolz состоит из трёх модулей:

🔘itertoolz — утилиты для итераторов (groupby, unique, interpose).

🔘functoolz — функции высшего порядка (compose, curry, memoize).

🔘dicttoolz — работа со словарями (assoc, merge, update-in).

🔻 Пример — функциональный подсчёт слов в строке:
from toolz import compose, frequencies
from toolz.curried import map

def stem(word):
return word.lower().strip(",.!:;'-\"")

wordcount = compose(frequencies, map(stem), str.split)
wordcount("This cat jumped over this other cat!")
# {'this': 2, 'cat': 2, 'jumped': 1, 'over': 1, 'other': 1}


#Python #Toolz #FunctionalProgramming #PyToolz #PythonDev #PythonTools #DataProcessing #CyToolz #pip #OpenSource #PythonБиблиотеки

📱Ссылка на репозиторий:
https://github.com/pytoolz/toolz
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍3332
📱FastLanes.

FastLanes — это сверхбыстрый, независимый от внешних библиотек формат хранения табличных данных с открытым исходным кодом и поддержкой Python, C++ и Rust.

🔹Особенности:

🔘Без зависимостей, полностью автономен.

🔘SIMD-дружественный (но без ручных SIMD-инструкций).

🔘40% лучшее сжатие по сравнению с Parquet.

🔘Чётко описанная структура формата + типизированное API.

🔘Официальная документация и публикации в PVLDB, SIGMOD, DaMoN.

🔻Пример:
import pyfastlanes

conn = pyfastlanes.connect()
conn.inline_footer().read_csv("data/csv_dir").to_fls("data.fls")

reader = conn.read_fls("data.fls")
reader.to_csv("decoded.csv")


#FastLanes #BigData #Compression #ParquetAlternative #Python #Rust #Cplusplus #DataEngineering #OpenSource #GPU #SIMD #DataProcessing #SIGMOD #VLDB #CSV #FLS #Разработка #Производительность #НаучныеИсследования

📱Ссылка на репозиторий:
https://github.com/cwida/FastLanes
Please open Telegram to view this post
VIEW IN TELEGRAM
1⚡3👍2🔥1