code: def __init__(self, is_target: bool = False, sinusoidal: bool = False):
      super().__init__(is_target)
      self.sinusoidal = sinusoidal
      self.fields = [
          "year",
          "month",
          "day",
          "weekday",
          "hour",
          "minute",
          "second",
      ]
      self.constants = {
          "year": 3000.0,
          "month": 12.0,
          "weekday": 7.0,
          "hour": 24.0,
          "minute": 60.0,
          "second": 60.0,
      }
      if self.sinusoidal:
          self.output_size = 2
      else:
          self.output_size = 7
  
file_path: lightwood/lightwood/encoder/datetime/datetime_sin_normalizer.py
imports: import datetime
  import calendar
  import numpy
  import pandas
  import torch
  from lightwood.encoder.base import BaseEncoder
  from collections.abc import Iterable
  from lightwood.helpers.general import is_none
label_desc: Use image node_id 1 to create a new DatetimeNormalizerEncoder object from inherited base classes: BaseEncoder with example: obj = DatetimeNormalizerEncoder(is_target, sinusoidal)