MCPcopy Create free account
hub / github.com/apache/fory / _decimal_parts

Function _decimal_parts

python/pyfory/serializer.py:337–349  ·  view source on GitHub ↗
(value: decimal.Decimal)

Source from the content-addressed store, hash-verified

335
336
337def _decimal_parts(value: decimal.Decimal) -> Tuple[int, int]:
338 if not value.is_finite():
339 raise ValueError(f"Decimal value must be finite, got {value!r}")
340 sign, digits, exponent = value.as_tuple()
341 scale = -exponent
342 if scale < _MIN_INT32 or scale > _MAX_INT32:
343 raise ValueError(f"Decimal scale {scale} is outside signed Int32 range")
344 unscaled = 0
345 for digit in digits:
346 unscaled = unscaled * 10 + digit
347 if sign:
348 unscaled = -unscaled
349 return scale, unscaled
350
351
352def _decimal_from_parts(scale: int, unscaled: int) -> decimal.Decimal:

Callers 1

writeMethod · 0.85

Calls 1

is_finiteMethod · 0.45

Tested by

no test coverage detected