Skip to main content

A set of useful utilities for Python developers

Project description

XTools-py

PyPI Python License

XTools-py — это мощная библиотека с полезными утилитами для Python-разработчиков, предназначенная для упрощения рутинных задач. Включает в себя инструменты для работы с конфигурационными файлами, матрицами, валидацией данных, кешированием, поиском информации и многим другим.

🚀 Установка

Установить библиотеку можно через pip:

pip install xtools-py

📌 Возможности

  • Поиск данных (Find) — быстрый поиск в структурах данных.
  • Работа с матрицами (Matrix) — удобные операции с матрицами.
  • Конфигурационные файлы (Config) — работа с JSON, YAML и INI файлами.
  • Валидация данных (Validator) — проверка строк, чисел и других типов данных.
  • Кеширование (Cache) — простой и эффективный кеш.
  • Работа с датами и временем (DateTimeUtils) — удобные функции для работы с датами.
  • Математические функции (MathUtils) — расширенные математические операции.
  • Работа с цветами (ColorUtils) — преобразование и обработка цветов.
  • Шифрование (Encryption) — базовые функции шифрования и хеширования.
  • Работа с текстом (TextUtils) — удобные текстовые манипуляции.
  • Конвертация единиц измерения (Unit) — перевод величин между разными системами.
  • Облачное хранилище (AWS S3) — удобное взаимодействие с облачным хранилищем (асинхронно/синхронно).

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

1. Работа с конфигурацией

from xtools import Config

config = Config("config.json")
config.set("app.debug", True)
config.save()

2. Поиск данных

from xtools import Find

data = ["apple", "banana", "cherry"]
result = Find.get_max(data)  # banana

numbers = [123, 321, 213]
result = Find.get_max(numbers) # 321

# Работа с словарём:

data = [
    {"name": "Alice", "age": 25},
    {"name": "Bob", "age": 30},
    {"name": "Charlie", "age": 25}
]

results = Find.by_key_value(data, "age", 25) # [{'name': 'Alice', 'age': 25}, {'name': 'Charlie', 'age': 25}]

results = Find.contains(data, "name", "Al") # [{'name': 'Alice', 'age': 25}]

3. Работа с кешем

from xtools import Cache

cache = Cache()
cache.set("key", "value", ttl=60)  # Хранится 60 секунд
print(cache.get("key"))  # value

4. Работа с датами

from xtools.utils import DateTimeUtils

print(DateTimeUtils.current_timestamp())
print(DateTimeUtils.format_date("2025-02-08", "%d.%m.%Y"))

5. Работа с цветами

from xtools.utils import ColorUtils

print(ColorUtils.hex_to_rgb("#FFFFFF"))  # (255, 255, 255)
print(ColorUtils.rgb_to_hex(255, 255, 255))  # #FFFFFF

6. Конвертация единиц измерения

from xtools import UnitConverter

print(UnitConverter.celsius_to_fahrenheit(25))  # 77.0
print(UnitConverter.meters_to_kilometers(1000))  # 1.0

7. Шифрование и дешифрование

from xtools import EncryptionUtils

key = EncryptionUtils.generate_key()
encrypted = EncryptionUtils.encrypt("Hello, World!", key)
decrypted = EncryptionUtils.decrypt(encrypted, key)

print(encrypted)
print(decrypted)  # Hello, World!

8. Работа с AWS S3 (синхронно)

from xtools.storage import S3Storage

s3 = S3Storage("my-bucket", "ACCESS_KEY", "SECRET_KEY")

# Загрузка файла
s3.upload_file("local.txt", "remote.txt")

# Список файлов
print(s3.list_files())

9. Работа с AWS S3 (асинхронно)

import asyncio
from xtools.storage import AsyncS3Storage

async def main():
    s3 = AsyncS3Storage("my-bucket", "ACCESS_KEY", "SECRET_KEY")
    await s3.upload_file("local.txt", "remote.txt")
    print(await s3.list_files())

asyncio.run(main())

💡 Roadmap

  • Добавление поддержки Redis для кеша
  • Расширенные возможности валидации
  • Улучшенные математические функции

📜 Лицензия

Проект распространяется под лицензией MIT.

🤝 Контрибьютинг

Если у вас есть идеи для улучшения библиотеки, создайте issue или pull request на GitHub.

🔗 Связь


📌 XTools-py — инструменты, которые делают разработку проще! 🚀

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xtools_py-0.2.1.tar.gz (19.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

xtools_py-0.2.1-py3-none-any.whl (19.2 kB view details)

Uploaded Python 3

File details

Details for the file xtools_py-0.2.1.tar.gz.

File metadata

  • Download URL: xtools_py-0.2.1.tar.gz
  • Upload date:
  • Size: 19.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.11

File hashes

Hashes for xtools_py-0.2.1.tar.gz
Algorithm Hash digest
SHA256 01c78f1bd0938ada6058543833fc0125ca4e5b2b62fe67a191f7f757a1dd0497
MD5 f648dab3235a19e781764d7955079c52
BLAKE2b-256 75947368d48685b9cf46cd1c201d9c1393738b6d2899db7739e173b396b2f0ee

See more details on using hashes here.

File details

Details for the file xtools_py-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: xtools_py-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 19.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.11

File hashes

Hashes for xtools_py-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e888cc094c0a2878868023b9681bc5729716f782ad1d31e802a277af7f747ce5
MD5 fb33fd4caf09c6a50fdd50ecc4783e68
BLAKE2b-256 07207fe2efa3b13075acda57cfaef0d7856c1db221c9b70ace00b8f45bc6fcbd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page