### Description

Refactors benchmark script.

- One can select which benchmark (pystone, numpy, matplotlib, or `all`) to be run through command-line arguments.
  - We can divide each benchmark to separate CI jobs in the future if needed.
- Move pystone benchmark to benchmark directory, preventing it from being included in Pyodide release.

### Checklists

- [x] Add new / update outdated documentation

Close #2150
MAINT Refactor benchmark script. ### Description

Refactors benchmark script.

- One can select which benchmark (pystone, numpy, matplotlib, or `all`) to be run through command-line arguments.
  - We can divide each benchmark to separate CI jobs in the future if needed.
- Move pystone benchmark to benchmark directory, preventing it from being included in Pyodide release.

### Checklists

- [x] Add new / update outdated documentation

Close #2150
exclude: (^.*patches|.*\.cgi$|^packages/micropip/src/micropip/externals|^src/py/lib/pystone.py$)
default_language_version:
  python: "3.9"
repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: "v4.1.0"
    hooks:
      - id: check-yaml
        exclude: .clang-format
      - id: end-of-file-fixer
      - id: trailing-whitespace

  - repo: https://github.com/PyCQA/isort
    rev: "5.10.1"
    hooks:
      - id: isort

  - repo: https://github.com/asottile/pyupgrade
    rev: "v2.31.0"
    hooks:
      - id: pyupgrade
        args: ["--py39-plus"]

  - repo: https://github.com/hadialqattan/pycln
    rev: "v1.2.0"
    hooks:
      - id: pycln
        args: [--config=pyproject.toml]
        stages: [manual]

  - repo: https://github.com/psf/black
    rev: "22.1.0"
    hooks:
      - id: black

  - repo: https://gitlab.com/pycqa/flake8
    rev: "4.0.1"
    hooks:
      - id: flake8
        additional_dependencies: [flake8-bugbear]

  - repo: https://github.com/pre-commit/mirrors-mypy
    rev: v0.931
    hooks:
      - id: mypy
        args:
          - --show-error-codes
          - --ignore-missing-imports
        files: ^(src/|packages/.*/test|conftest.py|docs/)
        additional_dependencies: &mypy-deps
          - packaging
          - types-docutils
          - types-pyyaml
          - types-setuptools
      - id: mypy
        name: mypy-micropip
        files: ^packages/micropip/src/
        args: &mypy-args
          - --show-error-codes
        additional_dependencies: *mypy-deps
      - id: mypy
        name: mypy-pyodide-build
        files: ^pyodide-build/pyodide_build/
        args: *mypy-args
        additional_dependencies: *mypy-deps

  - repo: https://github.com/pre-commit/mirrors-clang-format
    rev: "v13.0.1"
    hooks:
      - id: clang-format
        types_or: [c++, c, cuda]

  - repo: https://github.com/pre-commit/mirrors-prettier
    rev: "v2.5.1"
    hooks:
      - id: prettier

exclude: (^.*patches|.*\.cgi$|^packages/micropip/src/micropip/externals|^benchmark/benchmarks$)
default_language_version:
  python: "3.9"
repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: "v4.1.0"
    hooks:
      - id: check-yaml
        exclude: .clang-format
      - id: end-of-file-fixer
      - id: trailing-whitespace

  - repo: https://github.com/PyCQA/isort
    rev: "5.10.1"
    hooks:
      - id: isort

  - repo: https://github.com/asottile/pyupgrade
    rev: "v2.31.0"
    hooks:
      - id: pyupgrade
        args: ["--py39-plus"]

  - repo: https://github.com/hadialqattan/pycln
    rev: "v1.2.0"
    hooks:
      - id: pycln
        args: [--config=pyproject.toml]
        stages: [manual]

  - repo: https://github.com/psf/black
    rev: "22.1.0"
    hooks:
      - id: black

  - repo: https://gitlab.com/pycqa/flake8
    rev: "4.0.1"
    hooks:
      - id: flake8
        additional_dependencies: [flake8-bugbear]

  - repo: https://github.com/pre-commit/mirrors-mypy
    rev: v0.931
    hooks:
      - id: mypy
        args:
          - --show-error-codes
          - --ignore-missing-imports
        files: ^(src/|packages/.*/test|conftest.py|docs/)
        additional_dependencies: &mypy-deps
          - packaging
          - types-docutils
          - types-pyyaml
          - types-setuptools
      - id: mypy
        name: mypy-micropip
        files: ^packages/micropip/src/
        args: &mypy-args
          - --show-error-codes
        additional_dependencies: *mypy-deps
      - id: mypy
        name: mypy-pyodide-build
        files: ^pyodide-build/pyodide_build/
        args: *mypy-args
        additional_dependencies: *mypy-deps

  - repo: https://github.com/pre-commit/mirrors-clang-format
    rev: "v13.0.1"
    hooks:
      - id: clang-format
        types_or: [c++, c, cuda]

  - repo: https://github.com/pre-commit/mirrors-prettier
    rev: "v2.5.1"
    hooks:
      - id: prettier
