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

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

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

textcase
— универсальная библиотека для конвертации текста между разными стилями в Python.

🔹Поддерживает все популярные форматы:

🔘snake_case.
🔘kebab-case.
🔘camelCase.
🔘PascalCase.
🔘CONSTANT_CASE.
🔘и даже Sentence case, Title Case, lower, UPPER.

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

🔘Без зависимостей.
🔘Поддержка акронимов (e.g., HTTPRequest).
🔘Работает с не-ASCII.
🔘Быстрая и без regex.
🔘Полное покрытие тестами.
🔘Легко расширяется.

🔻Пример:
from textcase import case, convert

convert("ronnie-james-dio", case.PASCAL) # RonnieJamesDio
convert("RONNIE-JAMES-DIO", case.CAMEL) # ronnieJamesDio


#Python #textcase #DevTools #PythonTips #SnakeCase #CamelCase #PascalCase #KebabCase #CodeStyle #PyPI #Acronyms #OpenSource #PythonLibrary

📱Ссылка на репозиторий:
https://github.com/zobweyt/textcase
Please open Telegram to view this post
VIEW IN TELEGRAM
1👎3👍2🔥2
📱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
📱Strif.

Strif — это мини-библиотека (~1000 строк кода) с набором ~30 удобных функций для работы со строками, файлами и объектами. Она не имеет зависимостей и отлично дополняет стандартную библиотеку Python.

🔹Основные возможности:

🔘Атомарные файловые операции: надёжная запись без риска повреждения файлов.
→ atomic_output_file(), copyfile_atomic()

🔘Умная аббревиация и форматирование строк.
→ abbrev_str(), single_line(), quote_if_needed()

🔘Уникальные идентификаторы на базе 36 и ISO timestamp.
→ new_uid(), new_timestamped_uid()

🔘Хеширование строк и файлов в разных форматах: hex, base36, base64.
→ hash_string(), file_mtime_hash()

🔘Потокобезопасная переменная с встроенным RLock.
→ AtomicVar

🔘Гибкая работа со строками и шаблонами.
→ replace_multiple(), insert_multiple(), StringTemplate

✅Strif делает рутину проще и надёжнее, особенно при работе с файлами, логами, ID и шаблонами.

#Python #Strif #БиблиотекиPython #Утилиты #Разработка #Файлы #Строки #UID #Hash #DevTools #PythonTips #pip #poetry #uv #OpenSource #AtomicFiles #Python13 #threadsafe

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

Param
— это легковесная библиотека Python для декларативного описания параметров с поддержкой типов, диапазонов, значений по умолчанию и документации прямо в атрибутах класса.

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

🔘Типизация и проверка диапазона.

🔘Поддержка значений по умолчанию и docstring.

🔘Наследование параметров от родительских классов.

🔘Динамически вычисляемые значения.

🔘Без зависимостей, всего 2 файла Python.

🔘BSD-лицензия — можно использовать в любых проектах.

#Python #Param #PythonБиблиотеки #Декларативность #TypeHints #Config #PythonDev #DataViz #Holoviz #OpenSource #Программирование #PyTools #PythonTips

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

ahocorasick_rs
— это Python-обёртка над высокопроизводительной библиотекой на Rust aho-corasick, предназначенная для поиска сразу нескольких паттернов в строке. Работает быстрее и эффективнее, чем pyahocorasick.

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

🔘Поиск подстрок по алгоритму Ахо-Корасика.

🔘Поддержка как строк (str), так и байтов (bytes).

🔘Три типа совпадений: Standard, LeftmostFirst, LeftmostLongest.

🔘Поиск перекрывающихся совпадений.

🔘Тонкая настройка производительности и памяти.

🔻Пример:
import ahocorasick_rs
patterns = ["hello", "world"]
text = "hello world, hello!"
ac = ahocorasick_rs.AhoCorasick(patterns)
print(ac.find_matches_as_strings(text))
# ['hello', 'world', 'hello']


#Python #Rust #AhoCorasick #Regex #StaticAnalysis #DevTools #Search #PyPI #PythonTips #OpenSource #FastCode #TextProcessing #ahocorasick_rs

📱Ссылка на репозиторий:
https://github.com/G-Research/ahocorasick_rs
Please open Telegram to view this post
VIEW IN TELEGRAM
16⚡2🔥21
📱Curlify.

Curlify — это инструмент для преобразования Python-запросов (requests) в cURL-команды.

🔹Он пригодится, если ты хочешь:

🔘Отлаживать HTTP-запросы в терминале.

🔘Делиться примерами запросов без лишнего кода.

🔘Воспроизводить баги или тестировать API напрямую из консоли.

🔻Пример:
import requests, curlify

r = requests.get("http://google.ru")
print(curlify.to_curl(r.request))
# curl -X 'GET' -H 'Accept: */*' ... 'http://www.google.ru/'


#Python #Curlify #HTTP #cURL #API #DevTools #Debugging #Backend #WebDev #Requests #PythonTips #OpenSource

📱Ссылка на репозиторий:
https://github.com/ofw/curlify
Please open Telegram to view this post
VIEW IN TELEGRAM
13👍1🔥11
📱Transfunctions.

Transfunctions
— это Python-библиотека, которая позволяет из одного шаблона создавать синхронные, асинхронные и генераторные функции.

✅Transfunctions решает одну из ключевых проблем Python — дублирование кода из-за разделения функций на синхронные и асинхронные.

С помощью шаблонов вы пишете логику один раз и генерируете сразу несколько версий:

🔘Обычную (sync).

🔘Асинхронную (async).

🔘Генератор (generator).

💡Как это работает:

🔘Используются маркеры (sync_context, async_context, generator_context) для выделения специфичных блоков.

🔘На базе одного шаблона создаются разные типы функций без изменения синтаксиса Python.

🔘Поддерживаются superfunctions — функции, которые автоматически определяют, как их вызвать: синхронно, асинхронно или как генератор.

🔹Пример:
@transfunction
def template():
print('so, ', end='')
with sync_context:
print("it's just usual function!")
with async_context:
print("it's an async function!")
with generator_context:
print("it's a generator function!")
yield


➡️Далее:
template.get_usual_function()
template.get_async_function()
template.get_generator_function()


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

🔘Нет дублирования кода.

🔘Простая поддержка sync/async/generator.

🔘Подходит для высоконагруженных проектов.

🔘Легко интегрировать в существующий код.

#Python #AsyncIO #Generators #CodeQuality #DevTools #Backend #Transfunctions #Refactoring #CodeReuse #PythonTips

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

memory_graph
— это библиотека на Python для визуализации структуры объектов в памяти.

Она строит граф связей между объектами и помогает понять, как данные устроены и связаны между собой.

🔹Что можно делать:

🔘Визуализировать любые структуры (list, dict, set, классы и др.).

🔘Смотреть разницу между mutable и immutable объектами.

🔘Разобраться с shallow и deep copy.

🔘Отслеживать вызовы функций и стек (stack trace) прямо в графах.

🔘Понять, как Python хранит ссылки и объекты

🔻Полезно для:

🔘Обучения Python (от новичков до продвинутых).

🔘Отладки сложных структур данных.

🔘Объяснения поведения ссылок и копий наглядно.

🚀Установка:
pip install --upgrade memory_graph


#Python #Debugging #Visualization #Graphviz #MemoryGraph #PythonTips #DeepCopy #Mutable #Immutable #LearningPython #PyDev

📱Ссылка на репозиторий:
https://github.com/bterwijn/memory_graph
Please open Telegram to view this post
VIEW IN TELEGRAM
13⚡2👍2
📱Subprocesslib.

Subprocesslib — это лёгкая библиотека для Python, которая делает работу с subprocess такой же удобной, как с путями в pathlib.

✅Вместо громоздких вызовов — чистый и читаемый API для запуска системных команд.

🔹 Пример:
from subprocesslib import Command

cmd = Command('tail', '-n', 5, '/var/log/syslog')
print(cmd) # tail -n 5 /var/log/syslog

cmd.run() # subprocess.run(...)
cmd.output() # subprocess.check_output(...)
cmd.spawn() # subprocess.Popen(...)

await cmd.spawn_async() # asyncio.create_subprocess_exec(...)


#Python #Asyncio #Subprocess #CLI #pathlib #DevTools #PythonTips

📱Ссылка на репозиторий:
https://gitlab.com/chwitlabs/subprocesslib
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍4⚡3
📱Pipdeptree.

pipdeptree — это утилита, которая показывает зависимости установленных Python-пакетов в виде наглядного дерева.

Когда вы делаете pip freeze, весь список идёт плоской строкой — и невозможно понять, какой пакет от чего зависит и почему вообще оказался в окружении. Поэтому искать «кто тянет старую версию X» или разбираться с конфликтами — мучение.

🔹pipdeptree решает эту проблему:

🔘Показывает зависимости в виде дерева.

🔘Помогает найти конфликтующие версии.

🔘Умеет работать внутри virtualenv (в том числе автоматически — --python auto).

🔘Может вывести JSON, mermaid-диаграмму или граф GraphViz.

🔘Умеет искать «кто зависит от этого пакета» через --reverse.

🔘Подходит для генерации чистого requirements.txt или даже «lock файла».

🔘Полезно в CI — можно включить строгий режим --warn fail.

🔻Пример:

pipdeptree сразу покажет, что Flask → Jinja2 → MarkupSafe и где возникает конфликт.

✅Если вы хотите видеть всю структуру зависимостей проекта и ловить проблемы до того, как они взорвут прод — pipdeptree действительно выручает.

#Python #pipdeptree #Dependencies #Virtualenv #Pip #DevTools #PythonTips #CI #PackageManagement

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