kev0h1
kev0h1

Reputation: 25

Can you have a conditional encoding dependent on whether a date time value is None?

Is it possible for the approver_time value to be encoded/ decoded only when the date time value is not set to None?

@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclasses.dataclass
class A:
    approver_time: datetime.datetime = field(default=None,
                                             metadata=config(
                                                 encoder=datetime.date.isoformat,
                                                 decoder=datetime.date.fromisoformat,
                                                 mm_field=fields.DateTime(format='iso')
                                             ))

Upvotes: 0

Views: 373

Answers (1)

kev0h1
kev0h1

Reputation: 25

Answered it by used of lambdas functions.

@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass_json
@dataclasses.dataclass
class A(Transfer):
    approver_time: datetime.datetime = field(metadata=config(
                                                 encoder=lambda x: datetime.datetime.isoformat
                                                 if x is not None else None,
                                                 decoder=lambda x: datetime.datetime.fromisoformat
                                                 if x is not None else None,
                                                 mm_field=fields.DateTime(format='iso')
                                             ), default=None)


Upvotes: 1

Related Questions