Библиотека для получения курсов криптовалют и конвертации между валютами без 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0c3d7f4e64d17e68511045865879a732efe11af0dfe7a9fd93e041689409a667
|
|
| MD5 |
715704a8981b090db6e995f3ea500414
|
|
| BLAKE2b-256 |
54b1d9cb1da4c4118d26a0cea075bc3e279d103d6e34556bc5a85528197cce69
|