def METHOD_NAME(cls, directory: str | Path, keep_stages: bool = False):  # pylint: disable=E1131
    """
    Construct a LammpsInputSet from a directory of two or more files.
    TODO: accept directories with only the input file, that should include the structure as well.
    Args:
        directory: Directory to read input files from. It should contain at least two files:
                   in.lammps for the LAMMPS input file, and system.data with the system information.
        keep_stages: Whether to keep the stage structure of the LammpsInputFile or not.
    """
    input_file = LammpsInputFile.from_file(f"{directory}/in.lammps", keep_stages=keep_stages)
    atom_style = input_file.get_args("atom_style")
    data_file = LammpsData.from_file(f"{directory}/system.data", atom_style=atom_style)
    return LammpsInputSet(inputfile=input_file, data=data_file, calc_type="read_from_dir")