Browse Source

feat: add JSONEncoder class

Handles serialisation of custom classes via to_json() method if present
main
Rob Hallam 2 months ago
parent
commit
8d188cab19
1 changed files with 11 additions and 0 deletions
  1. +11
    -0
      pipeline/video_producers.py

+ 11
- 0
pipeline/video_producers.py View File

@@ -10,6 +10,10 @@ import tempfile
# for visualisations: # for visualisations:
import matplotlib.pyplot as plt import matplotlib.pyplot as plt


# for encoding as JSON
from pipeline.utils import Feature


class Producer(ABC): class Producer(ABC):
"""Generic producer interface.""" """Generic producer interface."""
def __init__(self, features): def __init__(self, features):
@@ -141,6 +145,13 @@ class VisualisationProducer(Producer):
plt.savefig("/tmp/visualisation.png") plt.savefig("/tmp/visualisation.png")
plt.close() plt.close()


class PipelineJSONEncoder(json.JSONEncoder):
def default(self, obj):
if hasattr(obj, 'to_json'):
return obj.to_json()
else:
return json.JSONEncoder.default(self, obj)

class JSONProducer(Producer): class JSONProducer(Producer):
"""Produce JSON output""" """Produce JSON output"""
def __init__(self, features): def __init__(self, features):


Loading…
Cancel
Save