Прямое преобразование из float в Decimal было реализовано в python-2.7, как в конструкторе Decimal, так и в методе класса Decimal.from_float().
Python-2.6 вместо этого вызывает TypeError, предлагающий сначала преобразовать в строку:
TypeError: Cannot convert float to Decimal. First convert the float to a string
так что это обычное обходное решение:
if sys.version_info < (2, 7):
Decimal.from_float = classmethod(lambda cls, x: cls(str(x)))
Это просто литературный перевод из сообщения об ошибке - и я просто не беспокоюсь о его реализации в конструкторе тоже.
Если это так просто, почему они не внедряли его в первую очередь, а не говорили пользователю сделать это в TypeError? Это лучший доступный метод (и по расширению - тот, который используется в python-2.7 и новее?)