xtools-py


Namextools-py JSON
Version 0.1.1 PyPI version JSON
download
home_pagehttps://github.com/SikWeet/xtools
SummaryA set of useful utilities for Python developers
upload_time2025-02-10 15:21:31
maintainerNone
docs_urlNone
authorXpeawey
requires_python>=3.7
licenseNone
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # XTools-py

![PyPI](https://img.shields.io/pypi/v/xtools?color=blue&label=PyPI) ![Python](https://img.shields.io/badge/Python-%3E%3D3.7-blue) ![License](https://img.shields.io/github/license/SikWeet/xtools)

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

## 🚀 Установка

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

```sh
pip install xtools-py
```

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

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

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

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

```python
from xtools import Config

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

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

```python
from xtools import Find

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

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

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

```python
from xtools import Cache

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

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

```python
from xtools.utils import DateTimeUtils

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

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

```python
from xtools.utils import ColorUtils

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

```

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

```python
from xtools import UnitConverter

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

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

```python
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!
```

## 💡 Roadmap

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

## 📜 Лицензия

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

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

Если у вас есть идеи для улучшения библиотеки, создайте **issue** или **pull request** на [GitHub](https://github.com/SikWeet/xtools).

## 🔗 Связь

- 📧 Email: girectx@gmail.com
- 💻 GitHub: [SikWeet](https://github.com/SikWeet)

---

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


            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/SikWeet/xtools",
    "name": "xtools-py",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": null,
    "keywords": null,
    "author": "Xpeawey",
    "author_email": "Xpeawey <girectx@example.com>",
    "download_url": "https://files.pythonhosted.org/packages/6a/04/f5fda861d223a3b1c9031c653856f867e188b0d69ee20b27938df8f7d986/xtools_py-0.1.1.tar.gz",
    "platform": null,
    "description": "# XTools-py\r\n\r\n![PyPI](https://img.shields.io/pypi/v/xtools?color=blue&label=PyPI) ![Python](https://img.shields.io/badge/Python-%3E%3D3.7-blue) ![License](https://img.shields.io/github/license/SikWeet/xtools)\r\n\r\n**XTools-py** \u2014 \u044d\u0442\u043e \u043c\u043e\u0449\u043d\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0441 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u043c\u0438 \u0443\u0442\u0438\u043b\u0438\u0442\u0430\u043c\u0438 \u0434\u043b\u044f Python-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432, \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u0430\u044f \u0434\u043b\u044f \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u0440\u0443\u0442\u0438\u043d\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447. \u0412\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432 \u0441\u0435\u0431\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u043c\u0438 \u0444\u0430\u0439\u043b\u0430\u043c\u0438, \u043c\u0430\u0442\u0440\u0438\u0446\u0430\u043c\u0438, \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u0435\u0439 \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c, \u043f\u043e\u0438\u0441\u043a\u043e\u043c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0438 \u043c\u043d\u043e\u0433\u0438\u043c \u0434\u0440\u0443\u0433\u0438\u043c.\r\n\r\n## \ud83d\ude80 \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430\r\n\r\n\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u043c\u043e\u0436\u043d\u043e \u0447\u0435\u0440\u0435\u0437 `pip`:\r\n\r\n```sh\r\npip install xtools-py\r\n```\r\n\r\n## \ud83d\udccc \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438\r\n\r\n- **\u041f\u043e\u0438\u0441\u043a \u0434\u0430\u043d\u043d\u044b\u0445** (`Find`) \u2014 \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u043f\u043e\u0438\u0441\u043a \u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430\u0445 \u0434\u0430\u043d\u043d\u044b\u0445.\r\n- **\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u043c\u0430\u0442\u0440\u0438\u0446\u0430\u043c\u0438** (`Matrix`) \u2014 \u0443\u0434\u043e\u0431\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0441 \u043c\u0430\u0442\u0440\u0438\u0446\u0430\u043c\u0438.\r\n- **\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b** (`Config`) \u2014 \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 JSON, YAML \u0438 INI \u0444\u0430\u0439\u043b\u0430\u043c\u0438.\r\n- **\u0412\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445** (`Validator`) \u2014 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0441\u0442\u0440\u043e\u043a, \u0447\u0438\u0441\u0435\u043b \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0442\u0438\u043f\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445.\r\n- **\u041a\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435** (`Cache`) \u2014 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u043a\u0435\u0448.\r\n- **\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u0434\u0430\u0442\u0430\u043c\u0438 \u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c** (`DateTimeUtils`) \u2014 \u0443\u0434\u043e\u0431\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0430\u0442\u0430\u043c\u0438.\r\n- **\u041c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438** (`MathUtils`) \u2014 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0435 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438.\r\n- **\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u0446\u0432\u0435\u0442\u0430\u043c\u0438** (`ColorUtils`) \u2014 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0446\u0432\u0435\u0442\u043e\u0432.\r\n- **\u0428\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435** (`Encryption`) \u2014 \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0445\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.\r\n- **\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u0442\u0435\u043a\u0441\u0442\u043e\u043c** (`TextUtils`) \u2014 \u0443\u0434\u043e\u0431\u043d\u044b\u0435 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0435 \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u0438.\r\n- **\u041a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u044f \u0435\u0434\u0438\u043d\u0438\u0446 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f** (`Unit`) \u2014 \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0432\u0435\u043b\u0438\u0447\u0438\u043d \u043c\u0435\u0436\u0434\u0443 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c\u0438.\r\n\r\n## \ud83d\udcd6 \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\r\n\r\n### 1. \u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0435\u0439\r\n\r\n```python\r\nfrom xtools import Config\r\n\r\nconfig = Config(\"config.json\")\r\nconfig.set(\"app.debug\", True)\r\nconfig.save()\r\n```\r\n\r\n### 2. \u041f\u043e\u0438\u0441\u043a \u0434\u0430\u043d\u043d\u044b\u0445\r\n\r\n```python\r\nfrom xtools import Find\r\n\r\ndata = [\"apple\", \"banana\", \"cherry\"]\r\nresult = Find.get_max(data)  # banana\r\n\r\nnumbers = [123, 321, 213]\r\nresult = Find.get_max(numbers) # 321\r\n```\r\n\r\n### 3. \u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u043a\u0435\u0448\u0435\u043c\r\n\r\n```python\r\nfrom xtools import Cache\r\n\r\ncache = Cache()\r\ncache.set(\"key\", \"value\", ttl=60)  # \u0425\u0440\u0430\u043d\u0438\u0442\u0441\u044f 60 \u0441\u0435\u043a\u0443\u043d\u0434\r\nprint(cache.get(\"key\"))  # value\r\n```\r\n\r\n### 4. \u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u0434\u0430\u0442\u0430\u043c\u0438\r\n\r\n```python\r\nfrom xtools.utils import DateTimeUtils\r\n\r\nprint(DateTimeUtils.current_timestamp())\r\nprint(DateTimeUtils.format_date(\"2025-02-08\", \"%d.%m.%Y\"))\r\n```\r\n\r\n### 5. \u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u0446\u0432\u0435\u0442\u0430\u043c\u0438\r\n\r\n```python\r\nfrom xtools.utils import ColorUtils\r\n\r\nprint(ColorUtils.hex_to_rgb(\"#FFFFFF\"))  # (255, 255, 255)\r\nprint(ColorUtils.rgb_to_hex(255, 255, 255))  # #FFFFFF\r\n\r\n```\r\n\r\n### 6. \u041a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u044f \u0435\u0434\u0438\u043d\u0438\u0446 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f\r\n\r\n```python\r\nfrom xtools import UnitConverter\r\n\r\nprint(UnitConverter.celsius_to_fahrenheit(25))  # 77.0\r\nprint(UnitConverter.meters_to_kilometers(1000))  # 1.0\r\n```\r\n\r\n### 7. \u0428\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u0434\u0435\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435\r\n\r\n```python\r\nfrom xtools import EncryptionUtils\r\n\r\nkey = EncryptionUtils.generate_key()\r\nencrypted = EncryptionUtils.encrypt(\"Hello, World!\", key)\r\ndecrypted = EncryptionUtils.decrypt(encrypted, key)\r\n\r\nprint(encrypted)\r\nprint(decrypted)  # Hello, World!\r\n```\r\n\r\n## \ud83d\udca1 Roadmap\r\n\r\n- \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 **Redis** \u0434\u043b\u044f \u043a\u0435\u0448\u0430\r\n- \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 **S3 Storage** \u0434\u043b\u044f \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\r\n- \u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u0438\r\n- \u0423\u043b\u0443\u0447\u0448\u0435\u043d\u043d\u044b\u0435 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438\r\n\r\n## \ud83d\udcdc \u041b\u0438\u0446\u0435\u043d\u0437\u0438\u044f\r\n\r\n\u041f\u0440\u043e\u0435\u043a\u0442 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0434 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0435\u0439 **MIT**.\r\n\r\n## \ud83e\udd1d \u041a\u043e\u043d\u0442\u0440\u0438\u0431\u044c\u044e\u0442\u0438\u043d\u0433\r\n\r\n\u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u0438\u0434\u0435\u0438 \u0434\u043b\u044f \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438, \u0441\u043e\u0437\u0434\u0430\u0439\u0442\u0435 **issue** \u0438\u043b\u0438 **pull request** \u043d\u0430 [GitHub](https://github.com/SikWeet/xtools).\r\n\r\n## \ud83d\udd17 \u0421\u0432\u044f\u0437\u044c\r\n\r\n- \ud83d\udce7 Email: girectx@gmail.com\r\n- \ud83d\udcbb GitHub: [SikWeet](https://github.com/SikWeet)\r\n\r\n---\r\n\r\n\ud83d\udccc **XTools-py** \u2014 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u0435\u043b\u0430\u044e\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u043f\u0440\u043e\u0449\u0435! \ud83d\ude80\r\n\r\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A set of useful utilities for Python developers",
    "version": "0.1.1",
    "project_urls": {
        "Homepage": "https://github.com/SikWeet/xtools"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7f953e144636fae4f965dc6b76a847dc825cde42733cf2cb87e70fa68f7b84e9",
                "md5": "a81229def63c021e272dc9ade4e2fcdd",
                "sha256": "374ba1d68c2b3e8ed5ee6f6694695f6b7dc0b6eb69aac77b8f64b7ebe8ab1201"
            },
            "downloads": -1,
            "filename": "xtools_py-0.1.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "a81229def63c021e272dc9ade4e2fcdd",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 13540,
            "upload_time": "2025-02-10T15:21:29",
            "upload_time_iso_8601": "2025-02-10T15:21:29.579503Z",
            "url": "https://files.pythonhosted.org/packages/7f/95/3e144636fae4f965dc6b76a847dc825cde42733cf2cb87e70fa68f7b84e9/xtools_py-0.1.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6a04f5fda861d223a3b1c9031c653856f867e188b0d69ee20b27938df8f7d986",
                "md5": "0d6faaa53abc70765d193a191dfeb5da",
                "sha256": "ef9a61566a5ef406ea893bc8b7624a776248b3121c798981508cc84fe08471af"
            },
            "downloads": -1,
            "filename": "xtools_py-0.1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "0d6faaa53abc70765d193a191dfeb5da",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 13337,
            "upload_time": "2025-02-10T15:21:31",
            "upload_time_iso_8601": "2025-02-10T15:21:31.356100Z",
            "url": "https://files.pythonhosted.org/packages/6a/04/f5fda861d223a3b1c9031c653856f867e188b0d69ee20b27938df8f7d986/xtools_py-0.1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-02-10 15:21:31",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "SikWeet",
    "github_project": "xtools",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "xtools-py"
}
        
Elapsed time: 0.80810s