Repository navigation
🎉 CurRate v1.0.0 - Первый стабильный релиз
🎉 Первый стабильный релиз CurRate
Это первый официальный релиз приложения для конвертации валют с официальными курсами ЦБ РФ.
✨ Основные возможности
- 💱 GUI приложение для конвертации USD и EUR в рубли
- 📅 Календарь для выбора даты курса
- 🔄 Актуальные курсы с официального сайта ЦБ РФ
- 💾 LRU кэш с TTL для оптимизации производительности
- 📋 Копирование результата в буфер обмена
- 🎨 Современный интуитивный интерфейс на Tkinter
🐛 Исправления в v1.0.0
- Устранено двойное обращение к API ЦБ РФ - результат
convert()теперь возвращает курс вместе с результатом конвертации, что исключает необходимость повторного вызоваget_rate()в GUI - Добавлено переиспользование HTTP сессии - глобальная сессия с ленивой инициализацией позволяет использовать HTTP keep-alive и connection pooling, снижая накладные расходы
- Исправлен парсинг номинала валюты - курсы теперь корректно рассчитываются с учетом номинала, что важно для расширения списка поддерживаемых валют
- Удален неиспользуемый код - метод
_evict_oldest()из модуля кэша был удален
⚡ Оптимизация производительности
- Снижено количество сетевых запросов при отключенном кэше в 2 раза
- Улучшена производительность за счет переиспользования HTTP соединений
- Оптимизирована логика GUI
🧪 Качество кода
- 85 тестов (79 passed, 6 skipped для GUI)
- Покрытие кода: 78% (выше целевых 70%)
- Pylint: 10.00/10 для всех модулей
- Mypy: 0 ошибок типизации
- Black: код полностью отформатирован
📦 Технологии
- Python 3.14+
- Tkinter (GUI)
- requests 2.32.5 (HTTP client)
- beautifulsoup4 4.14.3 (HTML parsing)
- tkcalendar 1.6.1 (calendar widget)
- pyperclip 1.11.0 (clipboard)
- Poetry (dependency management)
📚 Документация
- Полная документация в README.md
- Руководство по внесению вклада в CONTRIBUTING.md
- История изменений в CHANGELOG.md
💻 Установка
git clone https://github.com/bivlked/CurRate.git
cd CurRate
poetry install
poetry run python run.py🚀 Быстрый запуск
poetry run python -m src.currate.mainСпасибо за использование CurRate! 🙏
⭐ Если проект был полезен, поставьте звезду!