code: def normalize_features(df: pd.DataFrame) -> pd.DataFrame:
      return (df - df.min()) / (df.max() - df.min())
  
imports: from typing import List, Optional, Literal, Dict, Any
  from pathlib import Path
  from functools import cached_property
  import shutil
  import tempfile
  import pickle
  import pandas
  from tqdm import tqdm
  import catch22
  import pytorch_lightning
  from gluonts.dataset.repository.datasets import materialize_dataset
  from gluonts.dataset.common import MetaData
  from torch.utils.data import DataLoader
  from sklearn.neighbors import NearestNeighbors
  from meta.data.batch import TripletBatch
  from meta.data.sampling import SamplingTripletDataset, SequentialTripletDataset
  from meta.datasets.splits import DatasetSplits
  from meta.data.dataset import TimeSeries
  from meta.datasets.preprocessing import Filter, AbsoluteValueFilter, ConstantTargetFilter, EndOfSeriesCutFilter, MinLengthFilter, read_transform_write, ItemIDTransform
  from meta.datasets.registry import register_data_module
label_desc: Use image node_id 2 for calling a global function with example usage: normalize_features(df) and returns: unknown