Skip to content

Instantly share code, notes, and snippets.

@serjflint
Last active August 19, 2024 20:34
Show Gist options
  • Save serjflint/d31e64a70438ab9e13630ad05c987a11 to your computer and use it in GitHub Desktop.
Save serjflint/d31e64a70438ab9e13630ad05c987a11 to your computer and use it in GitHub Desktop.
Get missing pylint rules for ruff
import subprocess
pipeline = [
'curl https://api.github.com/repos/astral-sh/ruff/issues/970',
'jq -r .body',
"grep -F '[ ]'",
"grep -v '\~'",
]
cmd = " | ".join(pipeline)
missing = {}
output = subprocess.check_output(cmd, shell=True, text=True)
for line in output.splitlines():
line = line[6:].strip('`')
rule, code = line.split('` / `')
missing[rule] = code
overlap = """
abstract-method
abstract-class-instantiated
arguments-differ
assigning-non-slot
assignment-from-no-return
assignment-from-none
bad-exception-cause
bad-format-character
bad-reversed-sequence
bad-super-call
bad-thread-instantiation
catching-non-exception
comparison-with-callable
deprecated-class
dict-iter-missing-items
format-combined-specification
global-variable-undefined
import-error
inconsistent-mro
inherit-non-class
init-is-generator
invalid-class-object
invalid-enum-extension
invalid-envvar-value
invalid-format-returned
invalid-hash-returned
invalid-metaclass
invalid-overridden-method
invalid-repr-returned
invalid-sequence-index
invalid-slice-index
invalid-slots-object
invalid-slots
invalid-star-assignment-target
invalid-str-returned
invalid-unary-operand-type
invalid-unicode-codec
isinstance-second-argument-not-valid-type
method-hidden
misplaced-format-function
missing-format-argument-key
missing-format-attribute
missing-kwoa
missing-type-doc
missing-yield-type-doc
no-member
no-value-for-parameter
non-iterator-returned
non-str-assignment-to-dunder-name
nonlocal-and-global
not-a-mapping
not-an-iterable
not-async-context-manager
not-callable
not-context-manager
overridden-final-method
raising-bad-type
raising-non-exception
redefined-variable-type
redundant-keyword-arg
relative-beyond-top-level
self-cls-assignment
signature-differs
star-needs-assignment-target
subclassed-final-class
super-without-brackets
too-many-function-args
typevar-double-variance
typevar-name-mismatch
unbalanced-dict-unpacking
unbalanced-tuple-unpacking
unexpected-keyword-arg
unhashable-member
unpacking-non-sequence
unsubscriptable-object
unsupported-assignment-operation
unsupported-binary-operation
unsupported-delete-operation
unsupported-membership-test
used-before-assignment
using-final-decorator-in-unsupported-version
wrong-exception-operation
deprecated-argument
invalid-character-carriage-return
invalid-characters-in-docstring
boolean-datetime
return-arg-in-generator
unknown-option-value
using-f-string-in-unsupported-version
""".strip().splitlines()
res = set(missing) - set(overlap)
for idx, rule in enumerate(sorted(res)):
code = missing[rule]
# print(f"{idx+1}. {rule} (code: {code})")
print(f"- [ ] `{rule}` / `{code}`")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment