code: def lint_long_run(self, rule):
      func_code = rule.run_func.__code__.co_code
      max_len = 70 if sys.version_info < (3, 11) else 210
      if rule.is_run and len(func_code) > max_len:
          yield Lint(
              title="Migrate long run directives into scripts or notebooks",
              body="Long run directives hamper workflow readability. Use the script or notebook directive instead. "
              "Note that the script or notebook directive does not involve boilerplate. Similar to run, you "
              "will have direct access to params, input, output, and wildcards."
              "Only use the run directive for a handful of lines.",
              links=[links.external_scripts, links.notebooks],
          )
  
file_path: snakemake/snakemake/linting/rules.py
imports: from itertools import chain
  import re
  import sys
  from snakemake.io import is_flagged
  from snakemake.linting import Linter, Lint, links, NAME_PATTERN
label_desc: Use image node_id 6 for calling the RuleLinter obj's underlying member method code with example usage: obj.lint_long_run(rule) without return types