code: def read_movielens_df(decrement_ids: bool = True) -> pd.DataFrame:
      """
      Read ``u.data`` from the MovieLens 100K dataset.
  
      If there is not a directory at ``$DATA_PATH/ml-100k``, this function creates that directory and
      downloads the entire dataset there.
  
      See the MovieLens 100K README for additional information on the dataset:
      https://files.grouplens.org/datasets/movielens/ml-100k-README.txt
  
      Parameters
      ----------
      decrement_ids: bool
          Decrement user and item IDs by 1 before returning, which is required for Collie's
          ``Interactions`` dataset
  
      Returns
      -------
      df: pd.DataFrame
          MovieLens 100K ``u.data`` comprising of columns:
  
              * user_id
  
              * item_id
  
              * rating
  
              * timestamp
  
      Side Effects
      ------------
      Creates directory at ``$DATA_PATH/ml-100k`` and downloads data files if data does not exist.
  
      """
      _make_data_path_dirs_if_not_exist()
  
      df_path = os.path.join(DATA_PATH, "ml-100k", "u.data")
      if not Path(df_path).exists():
          _download_movielens_100k()
  
      column_names = ["user_id", "item_id", "rating", "timestamp"]
      df = pd.read_csv(df_path, sep="\t", names=column_names)
  
      if decrement_ids:
          df.loc[:, "user_id"] = df["user_id"] - 1
          df.loc[:, "item_id"] = df["item_id"] - 1
  
      return df
  
file_path: collie/collie/movielens/get_data.py
imports: import os
  from pathlib import Path
  import re
  import zipfile
  import pandas
  import requests
  from collie.config import DATA_PATH
label_desc: Use image node_id 1 for calling a global function with example usage: read_movielens_df(decrement_ids) and returns: df