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.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-py3-none-any.whl (19.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: xtools_py-0.2.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.tar.gz
Algorithm Hash digest
SHA256 48afd2e680ae10f40025630800abe389bcd9f04b432f2fb1585058fcbc348d39
MD5 761f1cabd36f6056c7d8f42a8096858b
BLAKE2b-256 0034466c1f326c1cf0b79eb4365d3176134ecc0fea4b7b1a7509503f9c71682f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xtools_py-0.2-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-py3-none-any.whl
Algorithm Hash digest
SHA256 22cbe558cc66088c4495381f36482f38f3a8d03a6336dc1866d891184eb64ec4
MD5 e8bccbbf9a61ffb47063fec1fcba0823
BLAKE2b-256 f8068be62a8e1e038a3965f7b0291386e2f9706703264c0db01ad0fe6884fcab

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