Exemple #1
0
 def _store_python_version(self, python_version):
     """Configure the python version."""
     self.output_options.python_version = utils.split_version(
         python_version)
     if len(self.output_options.python_version) != 2:
         self.error("--python_version must be <major>.<minor>: %r" %
                    python_version)
     # Check that we have a version supported by pytype.
     utils.validate_version(self.output_options.python_version)
Exemple #2
0
def create_importlab_environment(conf, typeshed):
    """Create an importlab environment from the python version and path."""
    python_version = utils.split_version(conf.python_version)
    path = fs.Path()
    for p in conf.pythonpath:
        path.add_path(p, 'os')
    for p in typeshed.get_pytd_paths(python_version):
        path.add_fs(PytdFileSystem(fs.OSFileSystem(p)))
    for p in typeshed.get_typeshed_paths(python_version):
        path.add_path(p, 'pyi')
    return environment.Environment(path, python_version)
Exemple #3
0
 def __setattr__(self, name, value):
   if name == "python_version":
     if isinstance(value, str):
       value = utils.split_version(value)
     if self._adjust_python_exe:
       super(Options, self).__setattr__("python_exe",
                                        utils.get_python_exe(value))
     else:
       # Python exe adjustment should be unblocked for next time.
       self._adjust_python_exe = True
   super(Options, self).__setattr__(name, value)
Exemple #4
0
 def _store_python_version(self, python_version):
   """Configure the python version."""
   if python_version:
     if isinstance(python_version, str):
       self.output_options.python_version = utils.split_version(python_version)
     else:
       self.output_options.python_version = python_version
   else:
     self.output_options.python_version = sys.version_info[:2]
   if len(self.output_options.python_version) != 2:
     self.error(
         "--python_version must be <major>.<minor>: %r" % python_version)
   # Check that we have a version supported by pytype.
   utils.validate_version(self.output_options.python_version)
Exemple #5
0
def main():
    argument_parser = make_parser()
    opts = argument_parser.parse_args()
    python_version = utils.split_version(opts.python_version)
    try:
        utils.validate_version(python_version)
    except utils.UsageError as e:
        sys.stderr.write("Usage error: %s\n" % utils.message(e))
        sys.exit(1)

    with open(opts.input) as fi:
        sourcecode = fi.read()
        try:
            parsed = parser.parse_string(sourcecode,
                                         filename=opts.input,
                                         python_version=python_version)
        except parser.ParseError as e:
            sys.stderr.write(str(e))
            sys.exit(1)

    if opts.optimize:
        parsed = optimize.Optimize(parsed,
                                   builtins.GetBuiltinsPyTD(python_version),
                                   lossy=opts.lossy,
                                   use_abcs=opts.use_abcs,
                                   max_union=opts.max_union,
                                   remove_mutable=opts.remove_mutable,
                                   can_do_lookup=False)

    if opts.output is not None:
        out_text = pytd_utils.Print(parsed, opts.multiline_args)
        if opts.output == "-":
            sys.stdout.write(out_text)
        else:
            with open(opts.output, "w") as out:
                out.write(out_text)
Exemple #6
0
 def testSplitVersion(self):
     self.assertEqual(utils.split_version("2.7"), (2, 7))