Skip to content

Commit e51508c

Browse files
authored
Update serialization.py
1 parent a0c59f1 commit e51508c

1 file changed

Lines changed: 10 additions & 0 deletions

File tree

deepdiff/serialization.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import decimal # NOQA
1212
import orderly_set # NOQA
1313
import collections # NOQA
14+
import fractions
1415
import ipaddress
1516
import base64
1617
from copy import deepcopy, copy
@@ -79,6 +80,7 @@ class UnsupportedFormatErr(TypeError):
7980
'datetime.time',
8081
'datetime.timedelta',
8182
'decimal.Decimal',
83+
'fractions.Fraction',
8284
'uuid.UUID',
8385
'orderly_set.sets.OrderedSet',
8486
'orderly_set.sets.OrderlySet',
@@ -635,6 +637,13 @@ def _serialize_decimal(value):
635637
return float(value)
636638

637639

640+
def _serialize_fraction(value):
641+
if value.denominator == 1:
642+
return value.numerator
643+
else:
644+
return float(value)
645+
646+
638647
def _serialize_tuple(value):
639648
if hasattr(value, '_asdict'): # namedtuple
640649
return value._asdict()
@@ -655,6 +664,7 @@ def _serialize_bytes(value):
655664

656665
JSON_CONVERTOR = {
657666
decimal.Decimal: _serialize_decimal,
667+
fractions.Fraction: _serialize_fraction,
658668
SetOrdered: list,
659669
orderly_set.StableSetEq: list,
660670
set: list,

0 commit comments

Comments
 (0)