code: def _docker_push(image, tag):
      print(f"PUSHING: {image}:{tag}, result:")
      # This docker API is janky. Without "stream=True" it returns a
      # massive string filled with every progress bar update, which can
      # cause CI to back up.
      #
      # With stream=True, it's a line-at-a-time generator of the same
      # info. So we can slow it down by printing every couple hundred
      # lines
      i = 0
      for progress_line in DOCKER_CLIENT.api.push(
          image, tag=tag, stream=True
      ):
          if i % 100 == 0:
              print(progress_line)
  
imports: import datetime
  import io
  import json
  import functools
  import glob
  import itertools
  import os
  import platform
  import shutil
  import subprocess
  import sys
  import tarfile
  from collections import defaultdict
  from pathlib import Path
  from typing import List, Optional, Tuple, Dict
  import click
  import docker
label_desc: Use image node_id 22 for calling a global function with example usage: _docker_push(image, tag) without return types