Skip to main content

Библиотека для получения курсов криптовалют и конвертации между валютами без API ключей

Project description

CryptoManager 📈💰

Библиотека для работы с криптовалютами и обычными валютами без API ключей

CryptoManager предоставляет простой и удобный способ получения актуальных курсов криптовалют и фиатных валют, а также конвертации между ними. Библиотека автоматически использует несколько API провайдеров для обеспечения высокой доступности и точности данных без необходимости указания API ключей.

import cryptomanager
from cryptomanager import cm

# Получить цену Bitcoin в USD
BTC_PRICE = cm.price(1, 'BTC')
print(f"Цена биткойна: {BTC_PRICE}")

# Вставка своей переменной
RUBY = 80  # По курсу к доллару
btc_to_ruby = cm.transfer.local(1, 'BTC').to((RUBY, 'RUBY'))
print(f"1 биткойн в рублях: {btc_to_ruby}")

# Перевод в настоящие валюты
btc_to_usdt = cm.transfer(1, 'BTC').to('USDT')
print(f"1 биткойн в долларах: {btc_to_usdt}")

# Создание денежной суммы
usdt = cm.money('USDT')
amount = usdt(1000)
print(f"Сумма: {amount}")

📦 Установка

pip install cryptomanager

🚀 Быстрый старт

Получение цен криптовалют

import cryptomanager
from cryptomanager import cm

# Получить цену в USD (по умолчанию)
BTC_PRICE = cm.price(1, 'BTC')
print(f"Цена биткойна: {BTC_PRICE}")

# Указать другую фиатную валюту
ETH_EUR = cm.price(1, 'ETH', 'EUR')
print(f"Цена Ethereum в евро: {ETH_EUR}")

# Использование объектов валют
SOL_PRICE = cm.price(1, cm.SOL)
print(f"Цена Solana: {SOL_PRICE}")

Конвертация валют

# Конвертировать между валютами
btc_to_usdt = cm.transfer(1, 'BTC').to('USDT')
print(f"1 биткойн в долларах: {btc_to_usdt}")

eth_to_btc = cm.transfer(10, 'ETH').to('BTC')
print(f"10 Ethereum в биткойнах: {eth_to_btc}")

# Использование объектов валют
eth_to_usdt = cm.transfer(5, cm.ETH).to(cm.USDT)
print(f"5 Ethereum в долларах: {eth_to_usdt}")

Локальная конвертация с фиксированным курсом

# Установка локального курса
RUBY = 80  # Курс к доллару
btc_to_ruby = cm.transfer.local(1, 'BTC').to((RUBY, 'RUBY'))
print(f"1 биткойн в рублях: {btc_to_ruby}")

# Другой пример локального перевода
EUR_RATE = 0.92  # Курс EUR к USD
usd_to_eur = cm.transfer.local(100, 'USD').to((EUR_RATE, 'EUR'))
print(f"100 долларов в евро: {usd_to_eur}")

Работа с денежными суммами

# Создание денежной суммы в USDT
usdt = cm.money('USDT')
usdt_amount = usdt(1000)
print(f"Создана сумма: {usdt_amount}")

# Конвертация в другую валюту
btc_amount = usdt_amount.to('BTC')
print(f"1000 USDT в биткойнах: {btc_amount}")

# Использование объектов валют
eth = cm.money(cm.ETH)
eth_amount = eth(5)
print(f"Создана сумма: {eth_amount}")

⚙️ Настройки

Управление кэшированием

# Изменить интервал обновления данных (по умолчанию 60 сек)
cm.set_update_interval(30)  # Обновлять каждые 30 секунд

# Очистить кэш для получения самых свежих данных
cm.clear_cache()

API ключи (опционально)

Библиотека работает без API ключей, но вы можете установить их для расширения возможностей:

# Установить API ключ для CoinMarketCap
cm.set_api_key('coinmarketcap', 'ваш_api_ключ')

# Установить API ключ для Alpha Vantage
cm.set_api_key('alphavantage', 'ваш_api_ключ')

Получение списков поддерживаемых валют

# Получить список поддерживаемых криптовалют
cryptos = cm.get_supported_cryptos()
print(f"Поддерживается {len(cryptos)} криптовалют")

# Получить список поддерживаемых фиатных валют
fiats = cm.get_supported_fiats()
print(f"Поддерживается {len(fiats)} фиатных валют")

🔌 Поддерживаемые API

Библиотека автоматически использует следующие API провайдеры:

Криптовалютные API:

  • Binance
  • CoinGecko
  • CoinCap
  • CryptoCompare
  • Kraken
  • Bitfinex
  • Huobi
  • OKX
  • Bybit
  • CoinMarketCap (опционально с API ключом)
  • KuCoin
  • Gate.io
  • Gemini
  • Bitstamp
  • Bittrex

Фиатные API:

  • Frankfurter
  • Exchangerate.host
  • ExchangeRate-API (опционально с API ключом)
  • Open Exchange Rates (опционально с API ключом)
  • Currency Layer (опционально с API ключом)
  • Fixer.io (опционально с API ключом)
  • Alpha Vantage (опционально с API ключом)

🧩 Расширенное использование

Прямой доступ к классу CryptoManager

Для более гибкого использования вы можете создать собственный экземпляр класса CryptoManager:

from cryptomanager import CryptoManager

# Создать экземпляр с собственными настройками
my_rates = CryptoManager(update_interval=120)

# Установить API ключи при инициализации
api_keys = {
    'coinmarketcap': 'ваш_ключ_coinmarketcap',
    'alphavantage': 'ваш_ключ_alphavantage'
}
my_rates_with_keys = CryptoManager(api_keys=api_keys)

# Использовать методы экземпляра
price = my_rates.price(1, 'BTC')

Обработка ошибок

Рекомендуется использовать try-except для обработки возможных ошибок:

try:
    price = cm.price(1, 'BTC')
    print(f"Цена биткойна: {price}")
except ValueError as e:
    print(f"Ошибка: {e}")

try:
    converted = cm.transfer(1, 'ETH').to('RUB')
    print(f"1 ETH = {converted} RUB")
except Exception as e:
    print(f"Не удалось выполнить конвертацию: {e}")

Логирование

Библиотека использует стандартный модуль logging Python. Вы можете настроить уровень логирования:

import logging

# Настроить логирование для отладки
logging.getLogger('cryptomanager').setLevel(logging.DEBUG)

# Или для минимального вывода
logging.getLogger('cryptomanager').setLevel(logging.ERROR)

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

Мониторинг портфеля криптовалют

portfolio = {
    'BTC': 0.5,
    'ETH': 10,
    'SOL': 50,
    'DOGE': 1000
}

total_usd = 0
for crypto, amount in portfolio.items():
    try:
        value = cm.price(amount, crypto)
        total_usd += value
        print(f"{amount} {crypto} = ${value:,.2f}")
    except Exception as e:
        print(f"Ошибка при получении цены {crypto}: {e}")

print(f"Общая стоимость портфеля: ${total_usd:,.2f}")

Отслеживание изменений цены

import time

crypto = 'BTC'
interval = 60  # секунды
duration = 10  # количество проверок

try:
    initial_price = cm.price(1, crypto)
    print(f"Начальная цена {crypto}: ${initial_price}")

    for i in range(duration):
        time.sleep(interval)
        current_price = cm.price(1, crypto)
        change = ((current_price - initial_price) / initial_price) * 100
        print(f"Текущая цена {crypto}: ${current_price} ({change:+.2f}%)")
except Exception as e:
    print(f"Ошибка: {e}")

Конвертация между несколькими валютами

amount = 1000
base_currency = 'USD'
target_currencies = ['EUR', 'GBP', 'JPY', 'RUB', 'CNY', 'BTC', 'ETH']

for target in target_currencies:
    try:
        converted = cm.transfer(amount, base_currency).to(target)
        print(f"{amount} {base_currency} = {converted} {target}")
    except Exception as e:
        print(f"Ошибка при конвертации в {target}: {e}")

📜 Лицензия

MIT - используйте как хотите, см. файл LICENSE для подробностей.


Разработано для удобной работы с криптовалютами и обычными валютами без необходимости API ключей.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

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

cryptomanager-0.1.0-py3-none-any.whl (5.0 kB view details)

Uploaded Python 3

File details

Details for the file cryptomanager-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: cryptomanager-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 5.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.5

File hashes

Hashes for cryptomanager-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0c3d7f4e64d17e68511045865879a732efe11af0dfe7a9fd93e041689409a667
MD5 715704a8981b090db6e995f3ea500414
BLAKE2b-256 54b1d9cb1da4c4118d26a0cea075bc3e279d103d6e34556bc5a85528197cce69

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