<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def materialize_directories(self, directories_paths_and_digests):
 """Creates the specified directories on the file system. :param directories_paths_and_digests tuple<DirectoryToMaterialize>: Tuple of the path and digest of the directories to materialize. :returns: Nothing or an error. """

    # Ensure there isn't more than one of the same directory paths and paths do not have the same prefix.
    dir_list = [dpad.path for dpad in directories_paths_and_digests]
    check_no_overlapping_paths(dir_list)

    result = self._native.lib.materialize_directories(
      self._scheduler,
      self._to_value(_DirectoriesToMaterialize(directories_paths_and_digests)),
    )
    return self._raise_or_return(result)