text: # This should be a module that gets imported into other scripts as needed.
  # Put general purpose functions in here
  
  import numpy as np
  
  # Credit stackoverflow user unutbu: https://bit.ly/3oGbb0y
  def compose_date(years, months=1, days=1, weeks=None, hours=None, minutes=None,
                   seconds=None, milliseconds=None, microseconds=None, nanoseconds=None):
      years = np.asarray(years) - 1970
      months = np.asarray(months) - 1
      days = np.asarray(days) - 1
      types = ('<M8[Y]', '<m8[M]', '<m8[D]', '<m8[W]', '<m8[h]',
               '<m8[m]', '<m8[s]', '<m8[ms]', '<m8[us]', '<m8[ns]')
      vals = (years, months, days, weeks, hours, minutes, seconds,
              milliseconds, microseconds, nanoseconds)
      return sum(np.asarray(v, dtype=t) for t, v in zip(types, vals)
                 if v is not None)