https://github.com/ansible/ansible/blob/1706d35fc476e36fcced25435c2f1c2401536376/test/lib/ansible_test/_util/controller/sanity/validate-modules/validate_modules/main.py#L414

When a module is in place to provide documentation for an action, it should be allowed to have a doc string.

Without a docstring users of pydocstring will need to suppress:

```
************* Module plugins.modules.git_away
plugins/modules/git_away.py:1:0: C0114: Missing module docstring (missing-module-docstring)
************* Module plugins.modules.git_here
plugins/modules/git_here.py:1:0: C0114: Missing module docstring (missing-module-docstring)
```

With a doc string the module is treated as a "real" module and fails sanity:

```
ansible-module-not-initialized: Execution of the module did not result in initialization of AnsibleModule
```

PEP257 suggests modules should have a docstring, and is generally considered a good practice to inform future developers of the purpose of the file and can be used for documentation generation as well.
self._ensure_imports_below_docs(doc_info, first_callable)
            if self.plugin_type == 'module':
                self._check_for_subprocess()
                self._check_for_os_call()
        if self._powershell_module():
            if self.basename in self.PS_DOC_REJECTLIST:
                return
            self._validate_ps_replacers()
            docs_path = self._find_ps_docs_py_file()
            
            pattern = r'(?im)^#\s*ansiblerequires\s+\-csharputil\s*Ansible\.Basic'
            if re.search(pattern, self.text) and self.object_name not in self.PS_ARG_VALIDATE_REJECTLIST:
                with ModuleValidator(docs_path, base_branch=self.base_branch, git_cache=self.git_cache) as docs_mv:
                    docs = docs_mv._validate_docs()[1]
                    self._validate_ansible_module_call(docs)
        self._check_gpl3_header()
        if not self._just_docs() and not end_of_deprecation_should_be_removed_only:
            if self.plugin_type == 'module':
                self._check_interpreter(powershell=self._powershell_module())
            self._check_type_instead_of_isinstance(
                powershell=self._powershell_module()
            )
class PythonPackageValidator(Validator):
    REJECTLIST_FILES = frozenset(('__pycache__',))
    def __init__(self, path, reporter=None):
        super(PythonPackageValidator, self).__init__(reporter=reporter or Reporter())
        self.path = path
        self.basename = os.path.basename(path)
    @property
    def object_name(self):