diff --git a/poetry.lock b/poetry.lock index 0aeee25..50034b8 100644 --- a/poetry.lock +++ b/poetry.lock @@ -2392,8 +2392,4 @@ testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "p [metadata] lock-version = "2.0" python-versions = ">=3.8,<3.12" -<<<<<<< HEAD content-hash = "64bc9d0b597b6c5a88a7831f22dceb9a01c3ffd7c67c576ca094af786fd7f2a3" -======= -content-hash = "9628835cec18fe8f2f77e9980d1052b2bc93e39ae05f92d7f8810fe5d1357702" ->>>>>>> 8310ed963d58a9e62799238a54c3c318ce61400b diff --git a/target_s3/formats/format_jsonl.py b/target_s3/formats/format_jsonl.py index d324a21..2ed05fb 100644 --- a/target_s3/formats/format_jsonl.py +++ b/target_s3/formats/format_jsonl.py @@ -1,19 +1,12 @@ -from datetime import datetime +from functools import partial -from bson import ObjectId -from simplejson import JSONEncoder, dumps +import simplejson as json from target_s3.formats.format_base import FormatBase +from .format_json import JsonSerialize -class JsonSerialize(JSONEncoder): - def default(self, obj: any) -> any: - if isinstance(obj, ObjectId): - return str(obj) - if isinstance(obj, datetime): - return obj.isoformat() - else: - raise TypeError(f"Type {type(obj)} not serializable") +dumps = partial(json.dumps, cls=JsonSerialize) class FormatJsonl(FormatBase): @@ -26,7 +19,7 @@ def _prepare_records(self): return super()._prepare_records() def _write(self) -> None: - return super()._write('\n'.join(map(dumps, self.records))) + return super()._write("\n".join(map(dumps, self.records))) def run(self) -> None: # use default behavior, no additional run steps needed