{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "55ec6f8f",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Looking in indexes: https://pypi.doubanio.com/simple/\n",
      "Collecting timm==0.4.12\n",
      "  Downloading https://pypi.doubanio.com/packages/90/fc/606bc5cf46acac3aa9bd179b3954433c026aaf88ea98d6b19f5d14c336da/timm-0.4.12-py3-none-any.whl (376 kB)\n",
      "\u001b[K     |████████████████████████████████| 376 kB 3.6 MB/s eta 0:00:01\n",
      "\u001b[?25hRequirement already satisfied: transformers==4.15.0 in /home/jovyan/.virtualenvs/basenv/lib/python3.7/site-packages (from -r requirement.txt (line 2)) (4.15.0)\n",
      "Requirement already satisfied: fairscale==0.4.4 in /home/jovyan/.virtualenvs/basenv/lib/python3.7/site-packages (from -r requirement.txt (line 3)) (0.4.4)\n",
      "Requirement already satisfied: pycocoevalcap in /home/jovyan/.virtualenvs/basenv/lib/python3.7/site-packages (from -r requirement.txt (line 4)) (1.2)\n",
      "Requirement already satisfied: torchvision in /home/jovyan/.virtualenvs/basenv/lib/python3.7/site-packages (from timm==0.4.12->-r requirement.txt (line 1)) (0.12.0)\n",
      "Requirement already satisfied: torch>=1.4 in /home/jovyan/.virtualenvs/basenv/lib/python3.7/site-packages (from timm==0.4.12->-r requirement.txt (line 1)) (1.11.0)\n",
      "Requirement already satisfied: tokenizers<0.11,>=0.10.1 in /home/jovyan/.virtualenvs/basenv/lib/python3.7/site-packages (from transformers==4.15.0->-r requirement.txt (line 2)) (0.10.3)\n",
      "Requirement already satisfied: requests in /usr/local/lib/python3.7/dist-packages (from transformers==4.15.0->-r requirement.txt (line 2)) (2.27.1)\n",
      "Requirement already satisfied: tqdm>=4.27 in /home/jovyan/.virtualenvs/basenv/lib/python3.7/site-packages (from transformers==4.15.0->-r requirement.txt (line 2)) (4.46.1)\n",
      "Requirement already satisfied: regex!=2019.12.17 in /home/jovyan/.virtualenvs/basenv/lib/python3.7/site-packages (from transformers==4.15.0->-r requirement.txt (line 2)) (2022.1.18)\n",
      "Requirement already satisfied: huggingface-hub<1.0,>=0.1.0 in /home/jovyan/.virtualenvs/basenv/lib/python3.7/site-packages (from transformers==4.15.0->-r requirement.txt (line 2)) (0.8.1)\n",
      "Requirement already satisfied: packaging>=20.0 in /home/jovyan/.virtualenvs/basenv/lib/python3.7/site-packages (from transformers==4.15.0->-r requirement.txt (line 2)) (21.3)\n",
      "Requirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.7/dist-packages (from transformers==4.15.0->-r requirement.txt (line 2)) (1.18.5)\n",
      "Requirement already satisfied: importlib-metadata in /usr/local/lib/python3.7/dist-packages (from transformers==4.15.0->-r requirement.txt (line 2)) (4.11.1)\n",
      "Requirement already satisfied: pyyaml>=5.1 in /home/jovyan/.virtualenvs/basenv/lib/python3.7/site-packages (from transformers==4.15.0->-r requirement.txt (line 2)) (6.0)\n",
      "Requirement already satisfied: sacremoses in /home/jovyan/.virtualenvs/basenv/lib/python3.7/site-packages (from transformers==4.15.0->-r requirement.txt (line 2)) (0.0.47)\n",
      "Requirement already satisfied: filelock in /usr/local/lib/python3.7/dist-packages (from transformers==4.15.0->-r requirement.txt (line 2)) (3.6.0)\n",
      "Requirement already satisfied: typing-extensions>=3.7.4.3 in /usr/local/lib/python3.7/dist-packages (from huggingface-hub<1.0,>=0.1.0->transformers==4.15.0->-r requirement.txt (line 2)) (4.1.1)\n",
      "Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /usr/local/lib/python3.7/dist-packages (from packaging>=20.0->transformers==4.15.0->-r requirement.txt (line 2)) (3.0.7)\n",
      "Requirement already satisfied: pycocotools>=2.0.2 in /home/jovyan/.virtualenvs/basenv/lib/python3.7/site-packages (from pycocoevalcap->-r requirement.txt (line 4)) (2.0.4)\n",
      "Requirement already satisfied: matplotlib>=2.1.0 in /usr/local/lib/python3.7/dist-packages (from pycocotools>=2.0.2->pycocoevalcap->-r requirement.txt (line 4)) (3.0.3)\n",
      "Requirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib>=2.1.0->pycocotools>=2.0.2->pycocoevalcap->-r requirement.txt (line 4)) (2.8.2)\n",
      "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib>=2.1.0->pycocotools>=2.0.2->pycocoevalcap->-r requirement.txt (line 4)) (1.3.2)\n",
      "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.7/dist-packages (from matplotlib>=2.1.0->pycocotools>=2.0.2->pycocoevalcap->-r requirement.txt (line 4)) (0.11.0)\n",
      "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.7/dist-packages (from python-dateutil>=2.1->matplotlib>=2.1.0->pycocotools>=2.0.2->pycocoevalcap->-r requirement.txt (line 4)) (1.16.0)\n",
      "Requirement already satisfied: zipp>=0.5 in /usr/local/lib/python3.7/dist-packages (from importlib-metadata->transformers==4.15.0->-r requirement.txt (line 2)) (3.7.0)\n",
      "Requirement already satisfied: charset-normalizer~=2.0.0 in /usr/local/lib/python3.7/dist-packages (from requests->transformers==4.15.0->-r requirement.txt (line 2)) (2.0.12)\n",
      "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.7/dist-packages (from requests->transformers==4.15.0->-r requirement.txt (line 2)) (2021.10.8)\n",
      "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.7/dist-packages (from requests->transformers==4.15.0->-r requirement.txt (line 2)) (3.3)\n",
      "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.7/dist-packages (from requests->transformers==4.15.0->-r requirement.txt (line 2)) (1.26.8)\n",
      "Requirement already satisfied: click in /home/jovyan/.virtualenvs/basenv/lib/python3.7/site-packages (from sacremoses->transformers==4.15.0->-r requirement.txt (line 2)) (8.0.4)\n",
      "Requirement already satisfied: joblib in /home/jovyan/.virtualenvs/basenv/lib/python3.7/site-packages (from sacremoses->transformers==4.15.0->-r requirement.txt (line 2)) (1.1.0)\n",
      "Requirement already satisfied: pillow!=8.3.*,>=5.3.0 in /home/jovyan/.virtualenvs/basenv/lib/python3.7/site-packages (from torchvision->timm==0.4.12->-r requirement.txt (line 1)) (8.1.0)\n",
      "Installing collected packages: timm\n",
      "  Attempting uninstall: timm\n",
      "    Found existing installation: timm 0.5.4\n",
      "    Not uninstalling timm at /home/jovyan/work/.localenv/lib/python3.7/site-packages, outside environment /home/jovyan/.virtualenvs/basenv\n",
      "    Can't uninstall 'timm'. No files were found to uninstall.\n",
      "Successfully installed timm-0.4.12\n",
      "\u001b[33mWARNING: You are using pip version 21.1.3; however, version 22.1.2 is available.\n",
      "You should consider upgrading via the '/home/jovyan/.virtualenvs/basenv/bin/python -m pip install --upgrade pip' command.\u001b[0m\n"
     ]
    }
   ],
   "source": [
    "!/home/jovyan/.virtualenvs/basenv/bin/pip install -r requirement.txt -i https://pypi.doubanio.com/simple/"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "9c47fb1c",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Package                       Version\n",
      "----------------------------- ------------\n",
      "absl-py                       0.9.0\n",
      "alembic                       1.7.6\n",
      "argon2-cffi                   21.3.0\n",
      "argon2-cffi-bindings          21.2.0\n",
      "astor                         0.8.1\n",
      "asttokens                     2.0.5\n",
      "astunparse                    1.6.3\n",
      "async-generator               1.10\n",
      "attrs                         19.3.0\n",
      "Augmentor                     0.2.8\n",
      "backcall                      0.2.0\n",
      "baytune                       0.3.12\n",
      "bleach                        4.1.0\n",
      "blis                          0.4.1\n",
      "boto3                         1.16.25\n",
      "botocore                      1.19.25\n",
      "cachetools                    3.1.1\n",
      "cairocffi                     1.3.0\n",
      "CairoSVG                      2.5.2\n",
      "calysto                       1.0.6\n",
      "catalogue                     1.0.0\n",
      "certifi                       2021.10.8\n",
      "certipy                       0.1.3\n",
      "cffi                          1.15.0\n",
      "charset-normalizer            2.0.12\n",
      "click                         8.0.4\n",
      "cloudpickle                   1.2.2\n",
      "cmake                         3.21.1\n",
      "configparser                  5.2.0\n",
      "copulas                       0.3.3\n",
      "cryptography                  36.0.1\n",
      "cssselect2                    0.4.1\n",
      "cycler                        0.11.0\n",
      "cymem                         2.0.6\n",
      "Cython                        0.29.20\n",
      "debugpy                       1.5.1\n",
      "decorator                     5.1.1\n",
      "defusedxml                    0.7.1\n",
      "distlib                       0.3.4\n",
      "dlib                          19.22.0\n",
      "dm-tree                       0.1.6\n",
      "easydict                      1.9\n",
      "en-core-web-sm                2.3.0\n",
      "entrypoints                   0.4\n",
      "et-xmlfile                    1.1.0\n",
      "fairscale                     0.4.4\n",
      "filelock                      3.6.0\n",
      "func-timeout                  4.3.5\n",
      "future                        0.18.2\n",
      "gast                          0.3.3\n",
      "gensim                        3.8.3\n",
      "google-auth                   2.6.0\n",
      "google-auth-oauthlib          0.4.6\n",
      "google-pasta                  0.2.0\n",
      "graphviz                      0.14\n",
      "greenlet                      1.1.2\n",
      "grpcio                        1.29.0\n",
      "gym                           0.15.7\n",
      "h5py                          2.10.0\n",
      "huggingface-hub               0.8.1\n",
      "idna                          3.3\n",
      "imageio                       2.8.0\n",
      "imbalanced-learn              0.6.2\n",
      "imgaug                        0.4.0\n",
      "importlib-metadata            4.11.1\n",
      "importlib-resources           5.4.0\n",
      "install                       1.3.5\n",
      "ipdb                          0.13.2\n",
      "ipykernel                     6.9.1\n",
      "ipython                       7.31.1\n",
      "ipython-genutils              0.2.0\n",
      "ipywidgets                    7.4.0\n",
      "jdcal                         1.4.1\n",
      "jedi                          0.18.1\n",
      "jieba                         0.42.1\n",
      "Jinja2                        3.0.3\n",
      "jmespath                      0.10.0\n",
      "joblib                        1.1.0\n",
      "jsonschema                    4.4.0\n",
      "jupyter-client                7.1.2\n",
      "jupyter-core                  4.9.2\n",
      "jupyter-telemetry             0.1.0\n",
      "jupyterhub                    1.4.2\n",
      "jupyterlab                    1.0.0a1\n",
      "jupyterlab-server             0.2.0\n",
      "kanren                        0.2.3\n",
      "Keras                         2.4.3\n",
      "Keras-Preprocessing           1.1.2\n",
      "kiwisolver                    1.3.2\n",
      "Mako                          1.1.6\n",
      "Markdown                      3.3.6\n",
      "MarkupSafe                    2.1.0\n",
      "matplotlib                    3.0.3\n",
      "matplotlib-inline             0.1.3\n",
      "metakernel                    0.28.2\n",
      "mindspore                     1.0.0\n",
      "minepy                        1.2.4\n",
      "minio                         5.0.10\n",
      "mistune                       0.8.4\n",
      "mpmath                        1.2.1\n",
      "multipledispatch              0.6.0\n",
      "murmurhash                    1.0.6\n",
      "nbconvert                     5.6.1\n",
      "nbformat                      5.1.3\n",
      "nest-asyncio                  1.5.4\n",
      "networkx                      2.6.3\n",
      "nltk                          3.5\n",
      "notebook                      6.2.0\n",
      "numpy                         1.18.5\n",
      "numpyencoder                  0.3.0\n",
      "oauthlib                      3.2.0\n",
      "opencv-python                 4.5.1.48\n",
      "openpyxl                      2.6.4\n",
      "opt-einsum                    3.3.0\n",
      "packaging                     21.3\n",
      "paddlepaddle                  2.0.1\n",
      "pamela                        1.0.0\n",
      "pandas                        0.24.2\n",
      "pandocfilters                 1.5.0\n",
      "parso                         0.8.3\n",
      "pbr                           5.8.1\n",
      "pexpect                       4.8.0\n",
      "pickleshare                   0.7.5\n",
      "Pillow                        8.1.0\n",
      "pip                           21.1.3\n",
      "plac                          1.1.3\n",
      "platformdirs                  2.5.1\n",
      "plotly                        4.8.1\n",
      "portpicker                    1.3.9\n",
      "preshed                       3.0.6\n",
      "prometheus-client             0.13.1\n",
      "prompt-toolkit                3.0.28\n",
      "protobuf                      3.19.4\n",
      "ptyprocess                    0.7.0\n",
      "pyasn1                        0.4.8\n",
      "pyasn1-modules                0.2.8\n",
      "PyAudio                       0.2.11\n",
      "pycocoevalcap                 1.2\n",
      "pycocotools                   2.0.4\n",
      "pycparser                     2.21\n",
      "pydot                         1.4.1\n",
      "pygame                        2.0.1\n",
      "pyglet                        1.5.0\n",
      "Pygments                      2.11.2\n",
      "pyOpenSSL                     22.0.0\n",
      "pyparsing                     3.0.7\n",
      "pyrsistent                    0.18.1\n",
      "python-dateutil               2.8.2\n",
      "python-json-logger            2.0.2\n",
      "pytorch-pretrained-bert       0.6.2\n",
      "pytorch-transformers          1.2.0\n",
      "pytz                          2021.3\n",
      "PyWavelets                    1.2.0\n",
      "PyYAML                        6.0\n",
      "pyzmq                         22.3.0\n",
      "regex                         2022.1.18\n",
      "requests                      2.27.1\n",
      "requests-oauthlib             1.3.1\n",
      "retrying                      1.3.3\n",
      "rouge                         1.0.0\n",
      "rsa                           4.8\n",
      "ruamel.yaml                   0.17.21\n",
      "ruamel.yaml.clib              0.2.6\n",
      "s3transfer                    0.3.3\n",
      "sacremoses                    0.0.47\n",
      "scikit-image                  0.15.0\n",
      "scikit-learn                  0.22.2.post1\n",
      "scipy                         1.3.3\n",
      "seaborn                       0.10.1\n",
      "semantic-version              2.8.5\n",
      "Send2Trash                    1.8.0\n",
      "sentencepiece                 0.1.91\n",
      "setuptools                    57.1.0\n",
      "Shapely                       1.7.0\n",
      "six                           1.16.0\n",
      "smart-open                    5.2.1\n",
      "spacy                         2.3.2\n",
      "SQLAlchemy                    1.4.31\n",
      "srsly                         1.0.5\n",
      "stevedore                     3.5.0\n",
      "svgwrite                      1.4.1\n",
      "sympy                         1.6.2\n",
      "tensorboard                   2.8.0\n",
      "tensorboard-data-server       0.6.1\n",
      "tensorboard-plugin-wit        1.8.1\n",
      "tensorboardX                  2.0\n",
      "tensorflow                    2.3.1\n",
      "tensorflow-addons             0.11.2\n",
      "tensorflow-estimator          2.3.0\n",
      "tensorflow-federated          0.17.0\n",
      "tensorflow-model-optimization 0.4.1\n",
      "tensorflow-privacy            0.5.2\n",
      "termcolor                     1.1.0\n",
      "terminado                     0.13.1\n",
      "testpath                      0.5.0\n",
      "tf-slim                       1.1.0\n",
      "thinc                         7.4.1\n",
      "timm                          0.4.12\n",
      "tinycss2                      1.1.1\n",
      "tokenizers                    0.10.3\n",
      "toolz                         0.11.2\n",
      "torch                         1.11.0\n",
      "torchtext                     0.6.0\n",
      "torchvision                   0.12.0\n",
      "tornado                       6.1\n",
      "tqdm                          4.46.1\n",
      "traitlets                     5.1.1\n",
      "transformers                  4.15.0\n",
      "typeguard                     2.13.3\n",
      "typing-extensions             4.1.1\n",
      "unification                   0.2.2\n",
      "urllib3                       1.26.8\n",
      "virtualenv                    20.13.1\n",
      "virtualenv-clone              0.5.7\n",
      "virtualenvwrapper             4.7.0\n",
      "wasabi                        0.9.0\n",
      "wcwidth                       0.2.5\n",
      "webencodings                  0.5.1\n",
      "Werkzeug                      2.0.3\n",
      "wheel                         0.36.2\n",
      "widgetsnbextension            3.4.2\n",
      "word2vec                      0.11.1\n",
      "wrapt                         1.13.3\n",
      "xlrd                          1.2.0\n",
      "XlsxWriter                    1.4.3\n",
      "yellowbrick                   1.1\n",
      "zipp                          3.7.0\n",
      "\u001b[33mWARNING: You are using pip version 21.1.3; however, version 22.1.2 is available.\n",
      "You should consider upgrading via the '/home/jovyan/work/.localenv/bin/python -m pip install --upgrade pip' command.\u001b[0m\n"
     ]
    }
   ],
   "source": [
    "! pip list\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "c2181ede",
   "metadata": {},
   "outputs": [
    {
     "ename": "ConnectionError",
     "evalue": "HTTPSConnectionPool(host='mo.zju.edu.cn', port=443): Max retries exceeded with url: /pyapi/file/temp_api_file (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7f7d07fedf50>: Failed to establish a new connection: [Errno 110] Connection timed out'))",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mTimeoutError\u001b[0m                              Traceback (most recent call last)",
      "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/urllib3/connection.py\u001b[0m in \u001b[0;36m_new_conn\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m    174\u001b[0m             conn = connection.create_connection(\n\u001b[0;32m--> 175\u001b[0;31m                 \u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_dns_host\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mport\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtimeout\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mextra_kw\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    176\u001b[0m             )\n",
      "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/urllib3/util/connection.py\u001b[0m in \u001b[0;36mcreate_connection\u001b[0;34m(address, timeout, source_address, socket_options)\u001b[0m\n\u001b[1;32m     94\u001b[0m     \u001b[0;32mif\u001b[0m \u001b[0merr\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 95\u001b[0;31m         \u001b[0;32mraise\u001b[0m \u001b[0merr\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     96\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/urllib3/util/connection.py\u001b[0m in \u001b[0;36mcreate_connection\u001b[0;34m(address, timeout, source_address, socket_options)\u001b[0m\n\u001b[1;32m     84\u001b[0m                 \u001b[0msock\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbind\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msource_address\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 85\u001b[0;31m             \u001b[0msock\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mconnect\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msa\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     86\u001b[0m             \u001b[0;32mreturn\u001b[0m \u001b[0msock\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mTimeoutError\u001b[0m: [Errno 110] Connection timed out",
      "\nDuring handling of the above exception, another exception occurred:\n",
      "\u001b[0;31mNewConnectionError\u001b[0m                        Traceback (most recent call last)",
      "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/urllib3/connectionpool.py\u001b[0m in \u001b[0;36murlopen\u001b[0;34m(self, method, url, body, headers, retries, redirect, assert_same_host, timeout, pool_timeout, release_conn, chunked, body_pos, **response_kw)\u001b[0m\n\u001b[1;32m    709\u001b[0m                 \u001b[0mheaders\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mheaders\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 710\u001b[0;31m                 \u001b[0mchunked\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mchunked\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    711\u001b[0m             )\n",
      "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/urllib3/connectionpool.py\u001b[0m in \u001b[0;36m_make_request\u001b[0;34m(self, conn, method, url, timeout, chunked, **httplib_request_kw)\u001b[0m\n\u001b[1;32m    385\u001b[0m         \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 386\u001b[0;31m             \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_validate_conn\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mconn\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    387\u001b[0m         \u001b[0;32mexcept\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mSocketTimeout\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mBaseSSLError\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/urllib3/connectionpool.py\u001b[0m in \u001b[0;36m_validate_conn\u001b[0;34m(self, conn)\u001b[0m\n\u001b[1;32m   1039\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mgetattr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mconn\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"sock\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m  \u001b[0;31m# AppEngine might not have  `.sock`\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1040\u001b[0;31m             \u001b[0mconn\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mconnect\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1041\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/urllib3/connection.py\u001b[0m in \u001b[0;36mconnect\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m    357\u001b[0m         \u001b[0;31m# Add certificate verification\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 358\u001b[0;31m         \u001b[0mconn\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_new_conn\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    359\u001b[0m         \u001b[0mhostname\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhost\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/urllib3/connection.py\u001b[0m in \u001b[0;36m_new_conn\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m    186\u001b[0m             raise NewConnectionError(\n\u001b[0;32m--> 187\u001b[0;31m                 \u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"Failed to establish a new connection: %s\"\u001b[0m \u001b[0;34m%\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    188\u001b[0m             )\n",
      "\u001b[0;31mNewConnectionError\u001b[0m: <urllib3.connection.HTTPSConnection object at 0x7f7d07fedf50>: Failed to establish a new connection: [Errno 110] Connection timed out",
      "\nDuring handling of the above exception, another exception occurred:\n",
      "\u001b[0;31mMaxRetryError\u001b[0m                             Traceback (most recent call last)",
      "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/requests/adapters.py\u001b[0m in \u001b[0;36msend\u001b[0;34m(self, request, stream, timeout, verify, cert, proxies)\u001b[0m\n\u001b[1;32m    449\u001b[0m                     \u001b[0mretries\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmax_retries\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 450\u001b[0;31m                     \u001b[0mtimeout\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtimeout\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    451\u001b[0m                 )\n",
      "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/urllib3/connectionpool.py\u001b[0m in \u001b[0;36murlopen\u001b[0;34m(self, method, url, body, headers, retries, redirect, assert_same_host, timeout, pool_timeout, release_conn, chunked, body_pos, **response_kw)\u001b[0m\n\u001b[1;32m    785\u001b[0m             retries = retries.increment(\n\u001b[0;32m--> 786\u001b[0;31m                 \u001b[0mmethod\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0murl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0merror\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0me\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0m_pool\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0m_stacktrace\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0msys\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexc_info\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    787\u001b[0m             )\n",
      "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/urllib3/util/retry.py\u001b[0m in \u001b[0;36mincrement\u001b[0;34m(self, method, url, response, error, _pool, _stacktrace)\u001b[0m\n\u001b[1;32m    591\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mnew_retry\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mis_exhausted\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 592\u001b[0;31m             \u001b[0;32mraise\u001b[0m \u001b[0mMaxRetryError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0m_pool\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0murl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0merror\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mResponseError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcause\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    593\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mMaxRetryError\u001b[0m: HTTPSConnectionPool(host='mo.zju.edu.cn', port=443): Max retries exceeded with url: /pyapi/file/temp_api_file (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7f7d07fedf50>: Failed to establish a new connection: [Errno 110] Connection timed out'))",
      "\nDuring handling of the above exception, another exception occurred:\n",
      "\u001b[0;31mConnectionError\u001b[0m                           Traceback (most recent call last)",
      "\u001b[0;32m/tmp/ipykernel_374/4271832855.py\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m      4\u001b[0m \u001b[0mupload_url\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m'https://mo.zju.edu.cn/pyapi/file/temp_api_file'\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      5\u001b[0m \u001b[0mPhoto_file\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m{\u001b[0m\u001b[0;34m'file'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'./img/demo.jpg'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'rb'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 6\u001b[0;31m \u001b[0mPhoto_file_name\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mrequests\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpost\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mupload_url\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfiles\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mPhoto_file\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mjson\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'temp_file_name'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m      7\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/requests/api.py\u001b[0m in \u001b[0;36mpost\u001b[0;34m(url, data, json, **kwargs)\u001b[0m\n\u001b[1;32m    115\u001b[0m     \"\"\"\n\u001b[1;32m    116\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 117\u001b[0;31m     \u001b[0;32mreturn\u001b[0m \u001b[0mrequest\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'post'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0murl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mjson\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mjson\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    118\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    119\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/requests/api.py\u001b[0m in \u001b[0;36mrequest\u001b[0;34m(method, url, **kwargs)\u001b[0m\n\u001b[1;32m     59\u001b[0m     \u001b[0;31m# cases, and look like a memory leak in others.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     60\u001b[0m     \u001b[0;32mwith\u001b[0m \u001b[0msessions\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mSession\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0msession\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 61\u001b[0;31m         \u001b[0;32mreturn\u001b[0m \u001b[0msession\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrequest\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmethod\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mmethod\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0murl\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0murl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     62\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     63\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/requests/sessions.py\u001b[0m in \u001b[0;36mrequest\u001b[0;34m(self, method, url, params, data, headers, cookies, files, auth, timeout, allow_redirects, proxies, hooks, stream, verify, cert, json)\u001b[0m\n\u001b[1;32m    527\u001b[0m         }\n\u001b[1;32m    528\u001b[0m         \u001b[0msend_kwargs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mupdate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msettings\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 529\u001b[0;31m         \u001b[0mresp\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mprep\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0msend_kwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    530\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    531\u001b[0m         \u001b[0;32mreturn\u001b[0m \u001b[0mresp\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/requests/sessions.py\u001b[0m in \u001b[0;36msend\u001b[0;34m(self, request, **kwargs)\u001b[0m\n\u001b[1;32m    643\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    644\u001b[0m         \u001b[0;31m# Send the request\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 645\u001b[0;31m         \u001b[0mr\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0madapter\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrequest\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    646\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    647\u001b[0m         \u001b[0;31m# Total elapsed time of the request (approximately)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/usr/local/lib/python3.7/dist-packages/requests/adapters.py\u001b[0m in \u001b[0;36msend\u001b[0;34m(self, request, stream, timeout, verify, cert, proxies)\u001b[0m\n\u001b[1;32m    517\u001b[0m                 \u001b[0;32mraise\u001b[0m \u001b[0mSSLError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0me\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrequest\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mrequest\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    518\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 519\u001b[0;31m             \u001b[0;32mraise\u001b[0m \u001b[0mConnectionError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0me\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrequest\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mrequest\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    520\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    521\u001b[0m         \u001b[0;32mexcept\u001b[0m \u001b[0mClosedPoolError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mConnectionError\u001b[0m: HTTPSConnectionPool(host='mo.zju.edu.cn', port=443): Max retries exceeded with url: /pyapi/file/temp_api_file (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7f7d07fedf50>: Failed to establish a new connection: [Errno 110] Connection timed out'))"
     ]
    }
   ],
   "source": [
    "import requests\n",
    "\n",
    "# 先将文件上传至文件存储（此存储为临时用，一小时后文件即会被删除）\n",
    "upload_url = 'https://mo.zju.edu.cn/pyapi/file/temp_api_file'\n",
    "Photo_file = {'file': open('./img/demo.jpg', 'rb')}\n",
    "Photo_file_name = requests.post(upload_url, files=Photo_file).json().get('temp_file_name')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "de60afb6",
   "metadata": {},
   "outputs": [],
   "source": [
    "base_url = \"https://mo.zju.edu.cn/pyapi/apps/run/\"\n",
    "app_id = \"62b12fde34514bed5c29038b\"\n",
    "input_dic = {\"Photo\": {\"val\": Photo_file_name, \"type\": \"img\"}, \"Question\": {\"val\": \"<fill_with_str>\", \"type\": \"str\"}}\n",
    "output_dic = {\"Answer\": {\"type\": \"str\"}}\n",
    "app_version = \"0-3-0\"\n",
    "payload = {\"app\": {\"input\": input_dic, \"output\": output_dic}, \"version\": app_version}\n",
    "response = requests.post(base_url + app_id, json=payload)\n",
    "print(response.json())"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
