code: def get_modules(path, prepend_module_root=True):
      
      module_root = os.path.split(path)[1]
      modules = list()
      for root, directories, filenames in os.walk(path):
          for filename in filenames:
              if _is_python_file(filename):
                  directory = os.path.dirname(
                      os.path.realpath(
                          os.path.join(
                              root,
                              filename
                          )
                      )
                  ).split(module_root)[-1].replace(
                      os.sep,  # e.g. '/'
                      '.'
                  )
                  directory = directory.replace('.', '', 1)
  
                  module_name_parts = []
                  if prepend_module_root:
                      module_name_parts.append(module_root)
                  if directory:
                      module_name_parts.append(directory)
  
                  if filename == '__init__.py':
                      path = root
                  else:
                      module_name_parts.append(os.path.splitext(filename)[0])
                      path = os.path.join(root, filename)
  
                  modules.append(('.'.join(module_name_parts), path))
  
      return modules
docs: Return a list containing tuples of
      e.g. ('test_project.utils', 'example/test_project/utils.py')