Metadata-Version: 2.4
Name: xpowl
Version: 1.2.1
Summary: https://github.com/ownermorax/xpowl
Home-page: https://xpowl.xyz
Author: Morax
Author-email: bloodlustedx@gmail.com
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license-file
Dynamic: requires-python
Dynamic: summary

# xpowl 🦉

[![PyPI version](https://img.shields.io/pypi/v/xpowl.svg)](https://pypi.org/project/xpowl/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

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

---

## Установка

Установите пакет напрямую из PyPI с помощью pip:

```bash
pip install xpowl
```

## Доступные функции
help() — Выводит интерактивный список всех доступных функций с их кратким описанием.

### Математика и алгоритмы 
abs(x) — Модуль числа. В отличие от стандартного abs(), корректно высчитывает модуль комплексных чисел по формуле $\sqrt{a^2 + b^2}$.

is_prime(n) — Быстрая проверка целого числа на то, является ли оно простым (использует оптимизированный перебор до $\sqrt{n}$).

divisors(n) — Находит и возвращает отсортированный список всех делителей числа $n$.to_base(n, b) — Переводит целое число $n$ в систему счисления с основанием $b$ (поддерживаются основания от 2 до 36).

binary_search(sorted_array, value) — Каноничный рекурсивный бинарный поиск индекса элемента в отсортированном массиве за время $O(\log n)$ без выделения дополнительной памяти.

### Криптография 
(SHA256)sha256(data) — Хэширует строку или байты и возвращает шестнадцатеричную строку (hexdigest) длиной 64 символа.

sha256_bytes(data) — Хэширует строку или байты и возвращает результат в виде сырых байт (длина 32 байта).


## Примеры использования
```python
from xpowl import binary_search, sha256, to_base, divisors, abs

# 1. Быстрый бинарный поиск индекса
arr = [10, 20, 30, 40, 50]
print(binary_search(arr, 40))  # Выведет: 3
print(binary_search(arr, 99))  # Выведет: None (элемент не найден)

# 2. Хэширование строк без сторонних библиотек
print(sha256("Hello"))  
# Выведет: '2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824'

# 3. Перевод в другие системы счисления
print(to_base(255, 16))   # Выведет: 'FF'
print(to_base(-10, 2))    # Выведет: '-1010'

# 4. Поиск всех делителей числа
print(divisors(28))       # Выведет: [1, 2, 4, 7, 14, 28]

# 5. Расширенный модуль числа
print(abs(3 + 4j))        # Выведет: 5.0 (расчет вектора для комплексного числа)
```

## Лицензия
Проект распространяется под свободной лицензией MIT. Подробности см. в файле LICENSE.

Ссылка на проект: https://github.com/ownermorax/xpowl
