@option(
        '-l', '--language', action='store', nargs = 1,
        help=("Possible languages to be displayed within the iframe. " +
              "Possible values are: python, python2, python3, java, javascript")
    )
    def cell_tutor(self, language=None):
        if language is None:
            language = self.kernel.language_info["name"]
        if language not in ['python', 'python2', 'python3', 'java', 'javascript']:
            raise ValueError("{} not supported. Only the following options are allowed: "
                             "'python2', 'python3', 'java', 'javascript'".format(language))
        
        url = "https://pythontutor.com/iframe-embed.html#code="
        url += quote(self.code)
        url += "&origin=opt-frontend.js&cumulative=false&heapPrimitives=false"
        url += "&textReferences=false&"
        if language in ["python3", "python"]:
            url += "py=3&rawInputLstJSON=%5B%5D&curInstr=0&codeDivWidth=350&codeDivHeight=400"
        elif language == "python2":
            url += "py=2&rawInputLstJSON=%5B%5D&curInstr=0&codeDivWidth=350&codeDivHeight=400"
        elif language == "java":
            url += "py=java&rawInputLstJSON=%5B%5D&curInstr=0&codeDivWidth=350&codeDivHeight=400"
        elif language == "javascript":
            url += "py=js&rawInputLstJSON=%5B%5D&curInstr=0&codeDivWidth=350&codeDivHeight=400"

        # Display the results in the output area
        self.kernel.Display(IFrame(url, height=500, width="100%"))
        self.evaluate = False
Argument parser factory for hospital.cli.
dataset/ETHPy150Open Calysto/metakernel/metakernel/magics/tutor_magic.py/TutorMagic.cell_tutor--crossover with--dataset/ETHPy150Open python-hospital/hospital/hospital/cli.py/cli_parser