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.
linenos = []
        for child in self.ast.body:
            if isinstance(child, (ast.FunctionDef, ast.ClassDef)):
                linenos.append(child.lineno)
        return min(linenos) if linenos else None
    def _find_has_import(self):
        for child in self.ast.body:
            found_try_except_import = False
            found_has = False
            if isinstance(child, TRY_EXCEPT):
                bodies = child.body
                for handler in child.handlers:
                    bodies.extend(handler.body)
                for grandchild in bodies:
                    if isinstance(grandchild, ast.Import):
                        found_try_except_import = True
                    if isinstance(grandchild, ast.Assign):
                        for target in grandchild.targets:
                            if not isinstance(target, ast.Name):
                                continue
                            if target.id.lower().startswith('has_'):
                                found_has = True
            if found_try_except_import and not found_has:
                
                self.reporter.warning(
                    path=self.object_path,
                    code='try-except-missing-has',
                    msg='Found Try/Except block without HAS_ assignment'
                )
    def _ensure_imports_below_docs(self, doc_info, first_callable):