code: def numpydoc(src, symbols, allow_rule, disallow_rule):
      """
      Pass list of modules or symbols as arguments to restrict the validation.
  
      By default all modules of pyarrow are tried to be validated.
  
      Examples
      --------
      archery numpydoc pyarrow.dataset
      archery numpydoc pyarrow.csv pyarrow.json pyarrow.parquet
      archery numpydoc pyarrow.array
      """
      disallow_rule = disallow_rule or {"GL01", "SA01", "EX01", "ES01"}
      try:
          results = python_numpydoc(
              symbols,
              allow_rules=_flatten_numpydoc_rules(allow_rule),
              disallow_rules=_flatten_numpydoc_rules(disallow_rule),
          )
          for result in results:
              result.ok()
      except LintValidationException:
          sys.exit(1)
  
imports: from collections import namedtuple
  from io import StringIO
  import click
  import json
  import logging
  import os
  import pathlib
  import sys
  from .benchmark.codec import JsonEncoder
  from .benchmark.compare import RunnerComparator, DEFAULT_THRESHOLD
  from .benchmark.runner import CppBenchmarkRunner, JavaBenchmarkRunner
  from .compat import _import_pandas
  from .lang.cpp import CppCMakeDefinition, CppConfiguration
  from .utils.cli import ArrowBool, validate_arrow_sources, add_optional_command
  from .utils.lint import linter, python_numpydoc, LintValidationException
  from .utils.logger import logger, ctx
  from .utils.source import ArrowSources
  from .utils.tmpdir import tmpdir
label_desc: Use image node_id 9 for calling a global function with example usage: numpydoc(src, symbols, allow_rule, disallow_rule) without return types