Name | xtools-py JSON |
Version |
0.1.1
JSON |
| download |
home_page | https://github.com/SikWeet/xtools |
Summary | A set of useful utilities for Python developers |
upload_time | 2025-02-10 15:21:31 |
maintainer | None |
docs_url | None |
author | Xpeawey |
requires_python | >=3.7 |
license | None |
keywords |
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# XTools-py
  
**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  \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"
}