docstr: Returns a list of time features that will be appropriate for the given frequency string.
  
  Args:
      freq_str (str): Frequency string of the form `[multiple][granularity]` such as "12H", "5min", "1D" etc.
  
  Returns:
      List of added features
docstr_tok: ["Returns","a","list","of","time","features","that","will","be","appropriate","for","the","given","frequency","string",".","Args",":","freq_str","(","str",")",":","Frequency","string","of","the","form","`","[","multiple","]","[","granularity","]","`","such","as","``","12H","''",",","``","5min","''",",","``","1D","''","etc",".","Returns",":","List","of","added","features"]
code: def time_features_from_frequency_str(cls, freq_str: str) -> List[str]:
      """Returns a list of time features that will be appropriate for the given frequency string.
  
      Args:
          freq_str (str): Frequency string of the form `[multiple][granularity]` such as "12H", "5min", "1D" etc.
  
      Returns:
          List of added features
      """
  
      features_by_offsets = {
          offsets.YearBegin: [],
          offsets.YearEnd: [],
          offsets.MonthBegin: [
              "Month",
              "Quarter",
              "Is_quarter_end",
              "Is_quarter_start",
              "Is_year_end",
              "Is_year_start",
          ],
          offsets.MonthEnd: [
              "Month",
              "Quarter",
              "Is_quarter_end",
              "Is_quarter_start",
              "Is_year_end",
              "Is_year_start",
          ],
          offsets.Week: [
              "Month",
              "Quarter",
              "Is_quarter_end",
              "Is_quarter_start",
              "Is_year_end",
              "Is_year_start",
              "Is_month_start",
              "Week",
          ],
          offsets.Day: [
              "Month",
              "Quarter",
              "Is_quarter_end",
              "Is_quarter_start",
              "Is_year_end",
              "Is_year_start",
              "Is_month_start",
              "WeekDay",
              "Dayofweek",
              "Dayofyear",
          ],
          offsets.BusinessDay: [
              "Month",
              "Quarter",
              "Is_quarter_end",
              "Is_quarter_start",
              "Is_year_end",
              "Is_year_start",
              "Is_month_start",
              "WeekDay",
              "Dayofweek",
              "Dayofyear",
          ],
          offsets.Hour: [
              "Month",
              "Quarter",
              "Is_quarter_end",
              "Is_quarter_start",
              "Is_year_end",
              "Is_year_start",
              "Is_month_start",
              "WeekDay",
              "Dayofweek",
              "Dayofyear",
              "Hour",
          ],
          offsets.Minute: [
              "Month",
              "Quarter",
              "Is_quarter_end",
              "Is_quarter_start",
              "Is_year_end",
              "Is_year_start",
              "Is_month_start",
              "WeekDay",
              "Dayofweek",
              "Dayofyear",
              "Hour",
              "Minute",
          ],
      }
  
      offset = to_offset(freq_str)
  
      for offset_type, feature in features_by_offsets.items():
          if isinstance(offset, offset_type):
              return feature
  
      supported_freq_msg = f"""
          Unsupported frequency {freq_str}
  
          The following frequencies are supported:
  
              Y, YS   - yearly
                  alias: A
              M, MS   - monthly
              W   - weekly
              D   - daily
              B   - business days
              H   - hourly
              T   - minutely
                  alias: min
          """
      raise RuntimeError(supported_freq_msg)
  
imports: import re
  import warnings
  from enum import Enum
  from pathlib import Path
  from typing import Dict, Iterable, List, Optional, Tuple, Union
  import joblib
  import numpy
  import pandas
  import pytorch_lightning
  import torch
  from omegaconf import DictConfig
  from pandas import DataFrame, DatetimeTZDtype, to_datetime
  from pandas.tseries import offsets
  from pandas.tseries.frequencies import to_offset
  from sklearn.base import TransformerMixin, copy
  from sklearn.preprocessing import FunctionTransformer, LabelEncoder, PowerTransformer, QuantileTransformer, StandardScaler
  from torch.utils.data import DataLoader, Dataset
  from pytorch_tabular.config import InferredConfig
  from pytorch_tabular.utils import get_logger
  from .categorical_encoders import OrdinalEncoder
label_desc: Use image node_id 27 for calling the TabularDatamodule obj's underlying member method code with example usage: obj.time_features_from_frequency_str(cls, freq_str) and returns: feature