code: def main(
      sympy_doc_git, doc_html_zip, version, dev_version, push=None
  ):
      """Run this as ./update_docs.py SYMPY_DOC_GIT DOC_HTML_ZIP VERSION [--push]
  
      !!!!!!!!!!!!!!!!!
      NOTE: This is intended to be run as part of the release script.
      NOTE: This script will automatically push to the sympy_doc repo.
      !!!!!!!!!!!!!!!!!
  
      Args
      ====
  
      SYMPY_DOC_GIT: Path to the sympy_doc repo.
      DOC_HTML_ZIP: Path to the zip of the built html docs.
      VERSION: Version string of the release (e.g. "1.6")
      DEV_VERSION: Version string of the development version (e.g. "1.7.dev")
      --push (optional): Push the results (Warning this pushes direct to github)
  
      This script automates the "release docs" step described in the README of the
      sympy/sympy_doc repo:
  
      https://github.com/sympy/sympy_doc#release-docs
      """
      if push is None:
          push = False
      elif push == "--push":
          push = True
      else:
          raise ValueError("Invalid arguments")
  
      update_docs(
          sympy_doc_git, doc_html_zip, version, dev_version, push
      )
  
file_path: sympy/release/update_docs.py
imports: import json
  import subprocess
  import sys
  from os.path import join, splitext, basename
  from contextlib import contextmanager
  from tempfile import TemporaryDirectory
  from zipfile import ZipFile
  from shutil import copytree
label_desc: Use image node_id 1 for calling a global function with example usage: main(sympy_doc_git, doc_html_zip, version, dev_version, push) without return types