Skip to content

🚀 CurRate v2.0.0 - Улучшение качества и повышение производительности

Choose a tag to compare

@bivlked bivlked released this 09 Dec 20:14
· 15 commits to main since this release

🚀 CurRate v2.0.0 - Code Quality Improvements

Описание релиза

Этот релиз включает исправления выявленных проблем, удаление мертвого кода и оптимизацию производительности кэша.

🐛 Исправлено

  • Удален мертвый код - убраны недостижимые проверки if rate is None после вызова get_currency_rate() в currency_converter.py (функция всегда возвращает float или бросает исключение)
  • Исправлена сигнатура функции - изменен возвращаемый тип get_currency_rate() с Optional[float] на float в cbr_parser.py для соответствия фактическому поведению
  • Обновлена документация - исправлен docstring get_currency_rate(): убраны упоминания о возврате None, добавлено явное описание исключений

⚡ Изменено

  • Оптимизирован кэш - реализована ленивая очистка кэша: cleanup_expired() вызывается только при переполнении кэша в методе set(), а не при каждом вызове get() и set()
  • Улучшена производительность - проверка TTL в методе get() теперь выполняется только для конкретной записи, что снижает сложность с O(n) до O(1) в среднем случае
  • Обновлены тесты - исправлены тесты для соответствия новой логике кэша и обработке исключений вместо проверки на None

🧪 Технические детали

  • Покрытие тестами: 77.40% (выше требуемых 70%)
  • Pylint: 10.00/10
  • Все тесты проходят: 91 passed, 6 skipped

📦 Установка

git clone https://github.com/bivlked/CurRate.git
cd CurRate
git checkout v2.0.0
poetry install
poetry run python run.py

📚 Документация


Спасибо за использование CurRate! 🙏

⭐ Если проект был полезен, поставьте звезду!