AddMissingHeaderRule

Verify if required header comments exist in a module. Configuration is required in .fixit.config.yaml in order to enable this rule:

rule_config:
   AddMissingHeaderRule:
       path: pkg/*.py
       header: |-
           # header line 1
           # header line 2

(Use |- to keep newlines and add no new line at the end of header comments.) path is a glob-style str used in Path.match(). The specified header is a newline-separated str to be enforced in files whose path matches.

Message

A required header comment for this file is missing.

Has Autofix: Yes

VALID Code Examples

# 1:

import libcst

# 2:

config:

repo_root: .
rule_config:
  AddMissingHeaderRule:
    header: '# header line 1

      # header line 2'
    path: '*.py'
# header line 1
# header line 2
import libcst

# 3:

config:

repo_root: .
rule_config:
  AddMissingHeaderRule:
    header: '# header line 1

      # header line 2'
    path: '*.py'
# header line 1
# header line 2
# An extra header line is ok
import libcst

# 4:

config:

repo_root: .
rule_config:
  AddMissingHeaderRule:
    header: '# header line 1

      # header line 2'
    path: a/*.py

path: b/m.py

# other header in an unrelated file
import libcst

INVALID Code Examples

# 1:

config:

repo_root: .
rule_config:
  AddMissingHeaderRule:
    header: '# header line'
    path: '*.py'
# wrong header

Autofix:

---
+++
@@ -1 +1,2 @@
+# header line
 # wrong header

# 2:

config:

repo_root: .
rule_config:
  AddMissingHeaderRule:
    header: '# header line'
    path: '*.py'
#!/usr/bin/env python
# wrong header

Autofix:

---
+++
@@ -1,3 +1,3 @@
-
 #!/usr/bin/env python
+# header line
 # wrong header