Removed default JSON files and submoduled JSON encoder class
This commit is contained in:
parent
8c180ca285
commit
4a9d1c5e3c
8 changed files with 65 additions and 88 deletions
31
openflexure_microscope/json.py
Normal file
31
openflexure_microscope/json.py
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
from fractions import Fraction
|
||||
from uuid import UUID
|
||||
|
||||
import numpy as np
|
||||
from labthings.json import LabThingsJSONEncoder
|
||||
|
||||
|
||||
class JSONEncoder(LabThingsJSONEncoder):
|
||||
"""
|
||||
A custom JSON encoder, with type conversions for PiCamera fractions, Numpy integers, and Numpy arrays
|
||||
"""
|
||||
|
||||
def default(self, o):
|
||||
if isinstance(o, UUID):
|
||||
return str(o)
|
||||
# PiCamera fractions
|
||||
elif isinstance(o, Fraction):
|
||||
return float(o)
|
||||
# Numpy integers
|
||||
elif isinstance(o, np.integer):
|
||||
return int(o)
|
||||
# Numpy arrays
|
||||
elif isinstance(o, np.ndarray):
|
||||
return o.tolist()
|
||||
# UUIDs
|
||||
elif isinstance(o, UUID):
|
||||
return str(o)
|
||||
else:
|
||||
# call base class implementation which takes care of
|
||||
# raising exceptions for unsupported types
|
||||
return LabThingsJSONEncoder.default(self, o)
|
||||
Loading…
Add table
Add a link
Reference in a new issue