class_docstr: Mock dataset schema to generate fake data for testing purpose.
  This schema is configured to mimic the Movielens dataset
  
  https://files.grouplens.org/datasets/movielens/ml-100k/
  
  Dataset schema and generation is configured using pandera.
  Please see https://pandera.readthedocs.io/en/latest/schema_models.html
  for more information.
docstr: Return fake movielens dataset as a Pandas Dataframe with specified rows.
  
  Args:
      size (int): number of rows to generate
      seed (int, optional): seeding the pseudo-number generation. Defaults to 100.
      keep_first_n_cols (int, optional): keep the first n default movielens columns.
      keep_title_col (bool): remove the title column if False. Defaults to True.
      keep_genre_col (bool): remove the genre column if False. Defaults to True.
  
  Returns:
      pandas.DataFrame: a mock dataset
docstr_tok: ["Return","fake","movielens","dataset","as","a","Pandas","Dataframe","with","specified","rows",".","Args",":","size","(","int",")",":","number","of","rows","to","generate","seed","(","int",",","optional",")",":","seeding","the","pseudo-number","generation",".","Defaults","to","100.","keep_first_n_cols","(","int",",","optional",")",":","keep","the","first","n","default","movielens","columns",".","keep_title_col","(","bool",")",":","remove","the","title","column","if","False",".","Defaults","to","True",".","keep_genre_col","(","bool",")",":","remove","the","genre","column","if","False",".","Defaults","to","True",".","Returns",":","pandas.DataFrame",":","a","mock","dataset"]
code: def get_df(
      cls,
      size: int = 3,
      seed: int = 100,
      keep_first_n_cols: Optional[int] = None,
      keep_title_col: bool = False,
      keep_genre_col: bool = False,
  ) -> pd.DataFrame:
      """Return fake movielens dataset as a Pandas Dataframe with specified rows.
  
      Args:
          size (int): number of rows to generate
          seed (int, optional): seeding the pseudo-number generation. Defaults to 100.
          keep_first_n_cols (int, optional): keep the first n default movielens columns.
          keep_title_col (bool): remove the title column if False. Defaults to True.
          keep_genre_col (bool): remove the genre column if False. Defaults to True.
  
      Returns:
          pandas.DataFrame: a mock dataset
      """
      schema = cls.to_schema()
      if keep_first_n_cols is not None:
          if keep_first_n_cols < 1 or keep_first_n_cols > len(
              DEFAULT_HEADER
          ):
              raise ValueError(
                  f"Invalid value for 'keep_first_n_cols': {keep_first_n_cols}. Valid range: [1-{len(DEFAULT_HEADER)}]"
              )
          schema = schema.remove_columns(
              DEFAULT_HEADER[keep_first_n_cols:]
          )
      if not keep_title_col:
          schema = schema.remove_columns([DEFAULT_TITLE_COL])
      if not keep_genre_col:
          schema = schema.remove_columns([DEFAULT_GENRE_COL])
  
      random.seed(seed)
      schema.checks = [
          pa.Check.unique_columns([DEFAULT_USER_COL, DEFAULT_ITEM_COL])
      ]
      return schema.example(size=size)
  
imports: import os
  import re
  import random
  import shutil
  import warnings
  import pandas
  from typing import Optional
  from zipfile import ZipFile
  from recommenders.datasets.download_utils import maybe_download, download_path
  from recommenders.utils.notebook_utils import is_databricks
  from recommenders.utils.constants import DEFAULT_HEADER, DEFAULT_ITEM_COL, DEFAULT_USER_COL, DEFAULT_RATING_COL, DEFAULT_TIMESTAMP_COL, DEFAULT_TITLE_COL, DEFAULT_GENRE_COL
  import pandera
  import pandera.extensions
  from pandera import Field
  from pandera.typing import Series
label_desc: Use image node_id 1 for calling the MockMovielensSchema obj's underlying member method code with example usage: obj.get_df(cls, size, seed, keep_first_n_cols, keep_title_col, keep_genre_col) and returns: schema