Skip to main content

https://github.com/ownermorax/xpowl

Project description

xpowl 🦉

PyPI version License: MIT

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


Установка

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

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 байта).

Примеры использования

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

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

xpowl-1.2.1.tar.gz (11.0 kB view details)

Uploaded Source

Built Distribution

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

xpowl-1.2.1-py3-none-any.whl (9.9 kB view details)

Uploaded Python 3

File details

Details for the file xpowl-1.2.1.tar.gz.

File metadata

  • Download URL: xpowl-1.2.1.tar.gz
  • Upload date:
  • Size: 11.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for xpowl-1.2.1.tar.gz
Algorithm Hash digest
SHA256 66f597e0ee94a44ec51f20f409ee91ce856f861331a42b96e9532b03f5011449
MD5 f3da244c0d9b15e7543e95c33dc5f22d
BLAKE2b-256 3891f3ecaeaf15f572c155c0a76dc48bc152e81a5ffffbbf92d3c53a848a1bd1

See more details on using hashes here.

File details

Details for the file xpowl-1.2.1-py3-none-any.whl.

File metadata

  • Download URL: xpowl-1.2.1-py3-none-any.whl
  • Upload date:
  • Size: 9.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for xpowl-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 bf1cc91fc998f1c2314178c1eba8831137a4fda8ba05a1fe34e33363e77adc6d
MD5 22937df8931e440711dc2ac15622f429
BLAKE2b-256 6fe5946311a26f96a733913833e5be205cf17e774afadb82248066f28b99c054

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