Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Python 3 compatibility issues #23659

Closed
cclauss opened this issue Oct 14, 2018 · 10 comments
Closed

Python 3 compatibility issues #23659

cclauss opened this issue Oct 14, 2018 · 10 comments
Labels
python PRs and issues that require attention from people who are familiar with Python.

Comments

@cclauss
Copy link
Contributor

cclauss commented Oct 14, 2018

@refack @eirnym

flake8 testing of https://github.com/nodejs/node on Python 3.7.0

$ flake8 . --count --select=E901,E999,F821,F822,F823 --show-source --statistics

./configure.py:591:11: E999 SyntaxError: invalid syntax
    print x
          ^
./deps/npm/node_modules/node-gyp/gyp/PRESUBMIT.py:79:45: F821 undefined name 'xrange'
  allowed_years = (str(s) for s in reversed(xrange(2009, current_year + 1)))
                                            ^
./deps/npm/node_modules/node-gyp/gyp/pylib/gyp/mac_tool.py:128:12: F821 undefined name 'e'
    except e:
           ^
./deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSNew.py:65:12: F821 undefined name 'cmp'
    return cmp((self.name, self.get_guid()), (other.name, other.get_guid()))
           ^
./deps/npm/node_modules/node-gyp/gyp/pylib/gyp/win_tool.py:129:18: E999 SyntaxError: invalid syntax
        print line
                 ^
./deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSVersion.py:161:17: E999 SyntaxError: invalid syntax
  except OSError, e:
                ^
./deps/npm/node_modules/node-gyp/gyp/pylib/gyp/xcode_ninja.py:31:17: E999 SyntaxError: invalid syntax
  except OSError, e:
                ^
./deps/npm/node_modules/node-gyp/gyp/pylib/gyp/common.py:366:23: E999 SyntaxError: invalid syntax
        except OSError, e:
                      ^
./deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings.py:464:28: E999 SyntaxError: invalid syntax
          except ValueError, e:
                           ^
./deps/npm/node_modules/node-gyp/gyp/pylib/gyp/__init__.py:37:26: E999 SyntaxError: invalid syntax
    print '%s:%s:%d:%s %s' % (mode.upper(), os.path.basename(ctx[0]),
                         ^
./deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py:252:21: E999 SyntaxError: invalid syntax
  except SyntaxError, e:
                    ^
./deps/npm/node_modules/node-gyp/gyp/pylib/gyp/xcodeproj_file.py:694:21: E999 SyntaxError: invalid syntax
    except TypeError, e:
                    ^
./deps/npm/node_modules/node-gyp/gyp/pylib/gyp/simple_copy.py:31:28: F821 undefined name 'long'
for x in (type(None), int, long, float,
                           ^
./deps/npm/node_modules/node-gyp/gyp/pylib/gyp/simple_copy.py:32:22: F821 undefined name 'unicode'
          bool, str, unicode, type):
                     ^
./deps/npm/node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py:76:62: E999 SyntaxError: invalid syntax
          print 'Warning: Ignoring unsupported variable "%s".' % variable
                                                             ^
./deps/npm/node_modules/node-gyp/gyp/pylib/gyp/flock_tool.py:42:67: E999 SyntaxError: invalid token
    fd = os.open(lockfile, os.O_WRONLY|os.O_NOCTTY|os.O_CREAT, 0666)
                                                                  ^
./deps/npm/node_modules/node-gyp/gyp/pylib/gyp/easy_xml.py:88:19: F821 undefined name 'reduce'
    all_strings = reduce(lambda x, y: x and isinstance(y, str), rest, True)
                  ^
./deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja.py:475:78: E999 SyntaxError: invalid syntax
          print "Warning: Actions/rules writing object files don't work with " \
                                                                             ^
./deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/dump_dependency_json.py:99:27: E999 SyntaxError: invalid syntax
  print 'Wrote json to %s.' % filename
                          ^
./deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode.py:131:19: E999 SyntaxError: invalid syntax
    except OSError, e:
                  ^
./deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/cmake.py:1183:31: E999 SyntaxError: invalid syntax
    print 'Generating [%s]: %s' % (config_name, arguments)
                              ^
./deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/make.py:1641:36: E999 SyntaxError: invalid syntax
      print "WARNING: no output for", self.type, target
                                   ^
./deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs.py:1952:29: E999 SyntaxError: invalid syntax
    print 'Building [%s]: %s' % (config, arguments)
                            ^
./deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/analyzer.py:158:23: E999 SyntaxError: invalid syntax
      print 'AddSource', org_source, result[len(result) - 1]
                      ^
./deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/android.py:959:22: E999 SyntaxError: invalid syntax
  print 'Building: %s' % arguments
                     ^
./deps/npm/node_modules/node-gyp/gyp/tools/graphviz.py:53:21: E999 SyntaxError: invalid syntax
  print 'digraph D {'
                    ^
./deps/npm/node_modules/node-gyp/gyp/tools/pretty_sln.py:29:15: E999 SyntaxError: invalid syntax
  print project
              ^
./deps/npm/node_modules/node-gyp/gyp/tools/pretty_gyp.py:122:16: E999 SyntaxError: invalid syntax
      print line
               ^
./deps/npm/node_modules/node-gyp/gyp/tools/pretty_vcproj.py:64:18: E999 SyntaxError: invalid syntax
      print '%s%s' % (' '*indent, node.data.strip())
                 ^
./deps/npm/node_modules/node-gyp/test/fixtures/test-charmap.py:18:17: E999 SyntaxError: invalid syntax
    print textmap[encoding]
                ^
./deps/v8/test/cctest/testcfg.py:50:15: E999 SyntaxError: invalid syntax
      print cmd
              ^
./deps/v8/test/preparser/testcfg.py:61:5: F821 undefined name 'execfile'
    execfile(pathname, {"Test": Test, "Template": Template})
    ^
./deps/v8/test/unittests/testcfg.py:33:72: E999 SyntaxError: invalid syntax
      print "Test executable failed to list the tests (try %d).\n\nCmd:" % i
                                                                       ^
./deps/v8/test/mjsunit/testcfg.py:311:27: F821 undefined name 'basestring'
      if isinstance(item, basestring):
                          ^
./deps/v8/test/mozilla/testcfg.py:93:14: F821 undefined name 'xrange'
    for i in xrange(len(testfilepath)):
             ^
./deps/v8/test/mozilla/testcfg.py:95:29: F821 undefined name 'reduce'
                            reduce(os.path.join, testfilepath[:i], ""),
                            ^
./deps/v8/src/inspector/build/generate_protocol_externs.py:93:36: E999 SyntaxError: invalid syntax
            print "Type not found: " + type_id
                                   ^
./deps/v8/src/inspector/build/compile-scripts.py:50:16: E999 SyntaxError: invalid syntax
  print 'ERROR:'
               ^
./deps/v8/src/inspector/build/check_injected_script_source.py:74:85: E999 SyntaxError: invalid syntax
            print "ERROR: Black listed expression in %s at line %02d column %02d: %s" % (os.path.basename(fileName), i + 1, match.start(), match.group(0))
                                                                                    ^
./deps/v8/src/js/macros.py:31:11: E999 SyntaxError: invalid syntax
define NONE        = 0;
          ^
./deps/v8/infra/testing/PRESUBMIT.py:115:28: F821 undefined name 'basestring'
  if not all(isinstance(x, basestring) for x in test_args):
                           ^
./deps/v8/infra/testing/PRESUBMIT.py:123:45: F821 undefined name 'basestring'
  if not variant or not isinstance(variant, basestring):
                                            ^
./deps/v8/infra/testing/PRESUBMIT.py:147:36: F821 undefined name 'basestring'
    if not isinstance(buildername, basestring) or not buildername:
                                   ^
./deps/v8/gypfiles/gyp_v8.py:41:1: F821 undefined name 'execfile'
execfile(os.path.join(path, 'gyp_v8'))
^
./deps/v8/gypfiles/gyp_environment.py:27:21: E999 SyntaxError: invalid syntax
  except SyntaxError, e:
                    ^
./deps/v8/gypfiles/verify_source_deps.py:177:52: E999 SyntaxError: invalid syntax
  print "----------- Files not in gyp: ------------"
                                                   ^
./deps/v8/third_party/inspector_protocol/check_protocol_compatibility.py:473:46: E999 SyntaxError: invalid syntax
            print "  Public changes since %s:" % version
                                             ^
./deps/v8/third_party/inspector_protocol/code_generator.py:43:18: F821 undefined name 'xrange'
        for i in xrange(len(keys)):
                 ^
./deps/v8/third_party/inspector_protocol/pdl.py:159:51: E999 SyntaxError: invalid syntax
        print 'Error in %s:%s, illegal token: \t%s' % (file_name, i, line)
                                                  ^
./deps/v8/third_party/jinja2/bccache.py:37:26: F821 undefined name 'file'
        if isinstance(f, file):
                         ^
./deps/v8/third_party/jinja2/bccache.py:43:26: F821 undefined name 'file'
        if isinstance(f, file):
                         ^
./deps/v8/third_party/jinja2/_compat.py:51:17: F821 undefined name 'unicode'
    text_type = unicode
                ^
./deps/v8/third_party/jinja2/_compat.py:52:18: F821 undefined name 'xrange'
    range_type = xrange
                 ^
./deps/v8/third_party/jinja2/_compat.py:53:26: F821 undefined name 'unicode'
    string_types = (str, unicode)
                         ^
./deps/v8/third_party/jinja2/_compat.py:54:27: F821 undefined name 'long'
    integer_types = (int, long)
                          ^
./deps/v8/third_party/jinja2/_compat.py:80:33: F821 undefined name 'unicode'
        if isinstance(filename, unicode):
                                ^
./deps/v8/third_party/markupsafe/_compat.py:21:17: F821 undefined name 'unicode'
    text_type = unicode
                ^
./deps/v8/third_party/markupsafe/_compat.py:22:26: F821 undefined name 'unicode'
    string_types = (str, unicode)
                         ^
./deps/v8/third_party/markupsafe/_compat.py:24:23: F821 undefined name 'long'
    int_types = (int, long)
                      ^
./deps/v8/third_party/binutils/download.py:59:66: E999 SyntaxError: invalid syntax
    print "WARNING: No binutils found for your architecture (%s)!" % arch
                                                                 ^
./deps/v8/third_party/binutils/detect_v8_host_arch.py:37:14: E999 SyntaxError: invalid syntax
  print DoMain([])
             ^
./deps/v8/tools/presubmit.py:33:19: E999 SyntaxError: invalid syntax
except ImportError, e:
                  ^
./deps/v8/tools/js2c.py:357:10: F821 undefined name 'reduce'
  return reduce(chain, filter_chain)
         ^
./deps/v8/tools/js2c.py:468:12: F821 undefined name 'xrange'
  for i in xrange(len(sources.modules)):
           ^
./deps/v8/tools/js2c.py:510:12: F821 undefined name 'xrange'
  for i in xrange(size):
           ^
./deps/v8/tools/js2c.py:533:12: F821 undefined name 'xrange'
  for i in xrange(debug_sources):
           ^
./deps/v8/tools/js2c.py:538:12: F821 undefined name 'xrange'
  for i in xrange(debug_sources, len(sources.names)):
           ^
./deps/v8/tools/try_perf.py:87:51: E999 SyntaxError: invalid syntax
    print 'No trybots specified. Using default %s.' % ','.join(DEFAULT_BOTS)
                                                  ^
./deps/v8/tools/predictable_wrapper.py:39:35: E999 SyntaxError: invalid syntax
    print '### Predictable run #%d' % run
                                  ^
./deps/v8/tools/bigint-tester.py:299:14: F821 undefined name 'xrange'
    for r in xrange(args.runs):
             ^
./deps/v8/tools/turbolizer-perf.py:28:12: E999 SyntaxError: invalid syntax
  print json.dumps(json_obj)
           ^
./deps/v8/tools/run_perf.py:1080:19: E999 SyntaxError: invalid syntax
      print results
                  ^
./deps/v8/tools/stats-viewer.py:103:59: E999 SyntaxError: invalid syntax
        print "\"%s\" is neither a counter file nor a PID." % self.data_name
                                                          ^
./deps/v8/tools/perf-compare.py:421:22: E999 SyntaxError: invalid syntax
        print "Error:", error
                     ^
./deps/v8/tools/gen-postmortem-metadata.py:620:15: F821 undefined name 'file'
        out = file(sys.argv[1], 'w');
              ^
./deps/v8/tools/trace-maps-processor.py:172:11: E999 SyntaxError: invalid syntax
    print r
          ^
./deps/v8/tools/gc-nvp-to-csv.py:21:14: E999 SyntaxError: invalid syntax
    print ', '.join(keys)
             ^
./deps/v8/tools/dump-cpp.py:47:59: E999 SyntaxError: invalid syntax
      print 'd8 binary path found in {} is not executable.'.format(log_file)
                                                          ^
./deps/v8/tools/gdb-v8-support.py:65:9: F821 undefined name 'gdb'
t_u32 = gdb.lookup_type('unsigned int')
        ^
./deps/v8/tools/gdb-v8-support.py:66:9: F821 undefined name 'gdb'
t_u64 = gdb.lookup_type('unsigned long long')
        ^
./deps/v8/tools/gdb-v8-support.py:136:1: F821 undefined name 'gdb'
gdb.pretty_printers.append(v8_pretty_printers)
^
./deps/v8/tools/gdb-v8-support.py:149:7: F821 undefined name 'gdb'
  v = gdb.parse_and_eval(vstring)
      ^
./deps/v8/tools/gdb-v8-support.py:153:22: F821 undefined name 'gdb'
class V8PrintObject (gdb.Command):
                     ^
./deps/v8/tools/gdb-v8-support.py:156:54: F821 undefined name 'gdb'
    super (V8PrintObject, self).__init__ ("v8print", gdb.COMMAND_DATA)
                                                     ^
./deps/v8/tools/gdb-v8-support.py:159:5: F821 undefined name 'gdb'
    gdb.execute('call __gdb_print_v8_object(%d)' % v)
    ^
./deps/v8/tools/gdb-v8-support.py:163:21: F821 undefined name 'gdb'
class FindAnywhere (gdb.Command):
                    ^
./deps/v8/tools/gdb-v8-support.py:168:59: F821 undefined name 'gdb'
    super (FindAnywhere, self).__init__ ("find-anywhere", gdb.COMMAND_DATA)
                                                          ^
./deps/v8/tools/gdb-v8-support.py:171:16: F821 undefined name 'gdb'
      result = gdb.execute(
               ^
./deps/v8/tools/gdb-v8-support.py:180:14: F821 undefined name 'gdb'
    for l in gdb.execute("maint info sections", to_string = True).split('\n'):
             ^
./deps/v8/tools/gdb-v8-support.py:185:14: F821 undefined name 'gdb'
    for l in gdb.execute("info proc mappings", to_string = True).split('\n'):
             ^
./deps/v8/tools/gdb-v8-support.py:194:16: F821 undefined name 'gdb'
class Redirect(gdb.Command):
               ^
./deps/v8/tools/gdb-v8-support.py:206:48: F821 undefined name 'gdb'
    super(Redirect, self).__init__("redirect", gdb.COMMAND_USER)
                                               ^
./deps/v8/tools/gdb-v8-support.py:209:18: F821 undefined name 'gdb'
    old_stdout = gdb.execute("p dup(1)", to_string=True).split("=")[-1].strip()
                 ^
./deps/v8/tools/gdb-v8-support.py:216:9: F821 undefined name 'gdb'
        gdb.execute('p dup2(open("%s", 1), 1)' % file, to_string=True)
        ^
./deps/v8/tools/gdb-v8-support.py:218:18: F821 undefined name 'gdb'
        result = gdb.execute(subcommand, from_tty=False, to_string=True)
                 ^
./deps/v8/tools/gdb-v8-support.py:231:9: F821 undefined name 'gdb'
        gdb.execute("p dup2(%s, 1)" % old_stdout, to_string=True)
        ^
./deps/v8/tools/gdb-v8-support.py:236:7: F821 undefined name 'gdb'
      gdb.execute("p close(%s)" % old_stdout, to_string=True)
      ^
./deps/v8/tools/generate-header-include-checks.py:74:14: E999 SyntaxError: invalid syntax
    print line
             ^
./deps/v8/tools/ll_prof.py:186:40: E999 SyntaxError: invalid syntax
        print "%5d | %6.2f%% %x(%d): %s" % (count, percent, offset, offset, lines[i][1])
                                       ^
./deps/v8/tools/get_landmines.py:24:43: E999 SyntaxError: invalid syntax
  print 'Need to clobber after ICU52 roll.'
                                          ^
./deps/v8/tools/android-run.py:61:12: F821 undefined name 'file'
  output = file(outname).read()
           ^
./deps/v8/tools/android-run.py:62:12: F821 undefined name 'file'
  errors = file(errname).read()
           ^
./deps/v8/tools/gc-nvp-trace-processor.py:180:26: E999 SyntaxError: invalid syntax
    print 'Plotting %s...' % outfilename
                         ^
./deps/v8/tools/grokdump.py:72:9: E999 SyntaxError: invalid syntax
  print s
        ^
./deps/v8/tools/callstats.py:49:11: E999 SyntaxError: invalid syntax
  print " ".join(map(fix_for_printing, cmd_args))
          ^
./deps/v8/tools/concatenate-files.py:52:60: E999 SyntaxError: invalid syntax
    print "An error occurred generating %s:\nNothing to do." % filenames[-1]
                                                           ^
./deps/v8/tools/ignition/linux_perf_bytecode_annotate.py:97:22: E999 SyntaxError: invalid syntax
  print current_offset;
                     ^
./deps/v8/tools/ignition/bytecode_dispatches_report.py:57:53: E999 SyntaxError: invalid syntax
        print "WARNING: {} -> {} may have saturated.".format(source,
                                                    ^
./deps/v8/tools/sanitizers/sanitize_pcs.py:11:14: E999 SyntaxError: invalid syntax
  print '0x%x' % (int(line.strip(), 16) + 4)
             ^
./deps/v8/tools/sanitizers/sancov_formatter.py:429:39: E999 SyntaxError: invalid syntax
      print '--json-output is required'
                                      ^
./deps/v8/tools/sanitizers/sancov_merger.py:109:38: F821 undefined name 'xrange'
    buckets = [files[i:i+n] for i in xrange(0, len(files), n)]
                                     ^
./deps/v8/tools/node/node_common.py:26:39: E999 SyntaxError: invalid syntax
      print "Checking out depot_tools."
                                      ^
./deps/v8/tools/node/update_node.py:67:33: E999 SyntaxError: invalid syntax
  print ">> Running gclient sync"
                                ^
./deps/v8/tools/node/backport_node.py:44:39: E999 SyntaxError: invalid syntax
  print ">> Cleaning target directory."
                                      ^
./deps/v8/tools/node/fetch_deps.py:54:45: E999 SyntaxError: invalid syntax
    print "V8 is tracked stand-alone by git."
                                            ^
./deps/v8/tools/torque/make-torque-parser.py:26:44: E999 SyntaxError: invalid syntax
  is_header = re.search(r'\.h', filename) <> None;
                                           ^
./deps/v8/tools/torque/format-torque.py:15:37: E999 SyntaxError: invalid syntax
  print "invalid number of arguments"
                                    ^
./deps/v8/tools/testrunner/standard_runner.py:219:36: E999 SyntaxError: invalid syntax
          print "Unknown %s mode %s" % (name, option)
                                   ^
./deps/v8/tools/testrunner/num_fuzzer.py:176:28: E999 SyntaxError: invalid syntax
    print '>>> %d tests ran' % results.total
                           ^
./deps/v8/tools/testrunner/base_runner.py:237:17: E999 SyntaxError: invalid syntax
        print ' '.join(sys.argv)
                ^
./deps/v8/tools/testrunner/testproc/loader.py:16:44: E999 SyntaxError: invalid syntax
        print 'Warning: %s already obtained' % test.procid
                                           ^
./deps/v8/tools/testrunner/testproc/combiner.py:64:14: F821 undefined name 'xrange'
    for _ in xrange(0, num):
             ^
./deps/v8/tools/testrunner/testproc/combiner.py:124:40: F821 undefined name 'xrange'
    return [rng.choice(tests) for _ in xrange(0, max_size)]
                                       ^
./deps/v8/tools/testrunner/testproc/seed.py:37:14: F821 undefined name 'xrange'
    for _ in xrange(0, self._parallel_subtests):
             ^
./deps/v8/tools/testrunner/testproc/sigproc.py:24:47: E999 SyntaxError: invalid syntax
    print '>>> Ctrl-C detected, early abort...'
                                              ^
./deps/v8/tools/testrunner/testproc/progress.py:19:39: E999 SyntaxError: invalid syntax
  print "=== %(label)s %(negative)s===" % {
                                      ^
./deps/v8/tools/testrunner/objects/testcase.py:281:12: F821 undefined name 'cmp'
    return cmp(
           ^
./deps/v8/tools/testrunner/local/utils.py:150:70: E999 SyntaxError: invalid syntax
      print "Curl is currently not installed. Falling back to python."
                                                                     ^
./deps/v8/tools/testrunner/local/pool.py:70:23: E999 SyntaxError: invalid syntax
      except Exception, e:
                      ^
./deps/v8/tools/testrunner/local/statusfile.py:135:44: E999 SyntaxError: invalid syntax
          print 'Unused rule: %s -> %s (%s)' % (rule, value, variant_desc)
                                           ^
./deps/v8/tools/testrunner/local/command.py:65:18: E999 SyntaxError: invalid syntax
      print '# %s' % self
                 ^
./deps/v8/tools/testrunner/local/android.py:100:23: F821 undefined name 're'
    if output and not re.search('^[0-9]', output.splitlines()[-1]):
                      ^
./deps/v8/tools/testrunner/local/verbose.py:66:23: E999 SyntaxError: invalid syntax
  print REPORT_TEMPLATE % {
                      ^
./deps/v8/tools/release/roll_merge.py:205:27: E999 SyntaxError: invalid syntax
    print "Creating tag %s" % self["version"]
                          ^
./deps/v8/tools/release/create_release.py:30:31: E999 SyntaxError: invalid syntax
    print "Release revision %s" % self["push_hash"]
                              ^
./deps/v8/tools/release/check_clusterfuzz.py:225:17: E999 SyntaxError: invalid syntax
    print results
                ^
./deps/v8/tools/release/script_test.py:49:11: E999 SyntaxError: invalid syntax
  print cov.report()
          ^
./deps/v8/tools/release/test_scripts.py:386:37: E999 SyntaxError: invalid syntax
    print "Calling %s with %s and %s" % (str(fun), str(args), str(kwargs))
                                    ^
./deps/v8/tools/release/auto_roll.py:164:26: E999 SyntaxError: invalid syntax
      print "CL uploaded."
                         ^
./deps/v8/tools/release/push_to_candidates.py:49:50: E999 SyntaxError: invalid syntax
      print "Warning: Script started on branch %s" % self["current_branch"]
                                                 ^
./deps/v8/tools/release/auto_tag.py:18:71: E999 SyntaxError: invalid syntax
      print "This script is disabled until after the v8 git migration."
                                                                      ^
./deps/v8/tools/release/common_includes.py:202:21: E999 SyntaxError: invalid syntax
  print "Command: %s" % cmd_line
                    ^
./deps/v8/tools/release/mergeinfo.py:80:29: E999 SyntaxError: invalid syntax
  print '1.) Searching for "' + hash_to_search + '"'
                            ^
./deps/v8/tools/release/merge_to_branch.py:189:27: E999 SyntaxError: invalid syntax
    print "*** SUMMARY ***"
                          ^
./deps/v8/tools/release/auto_push.py:66:49: E999 SyntaxError: invalid syntax
      print "Already pushed current candidate %s" % self["candidate"]
                                                ^
./deps/v8/tools/release/search_related_commits.py:20:50: E999 SyntaxError: invalid syntax
    print "All commits between <of> and <until>: " + all_commits_raw
                                                 ^
./deps/v8/tools/dev/v8gen.py:147:44: E999 SyntaxError: invalid syntax
      print '%s does not exist in %s for %s' % (
                                           ^
./deps/v8/tools/mb/mb.py:1158:19: E999 SyntaxError: invalid syntax
    except OSError, e:
                  ^
./deps/v8/tools/mb/mb_unittest.py:287:62: F821 undefined name 'xrange'
    too_many_files = ', '.join(['"//foo:foo%d"' % i for i in xrange(4 * 1024)])
                                                             ^
./deps/v8/tools/clusterfuzz/v8_foozzie.py:222:33: E999 SyntaxError: invalid syntax
    print FAILURE_HEADER_TEMPLATE % dict(
                                ^
./deps/v8/tools/clusterfuzz/testdata/test_d8_3.py:5:9: E999 SyntaxError: invalid syntax
print """
        ^
./deps/v8/tools/clusterfuzz/testdata/test_d8_1.py:5:9: E999 SyntaxError: invalid syntax
print """
        ^
./deps/v8/tools/clusterfuzz/testdata/test_d8_2.py:5:9: E999 SyntaxError: invalid syntax
print """
        ^
./deps/v8/tools/gcmole/parallel.py:42:29: E999 SyntaxError: invalid syntax
    print "______________ %s" % filename
                            ^
./deps/v8/tools/gcmole/run-gcmole.py:22:56: E999 SyntaxError: invalid syntax
  print "Expected generated headers in out/Release/gen."
                                                       ^
./deps/v8/tools/unittests/run_perf_test.py:106:12: E999 SyntaxError: invalid syntax
    print ""
           ^
./deps/v8/tools/unittests/run_tests_test.py:130:54: E999 SyntaxError: invalid syntax
        print 'Python coverage version >= 4 required.'
                                                     ^
./deps/v8/tools/unittests/testdata/d8_mocked1.py:6:21: E999 SyntaxError: invalid syntax
print 'Richards: 1.2'
                    ^
./deps/v8/tools/unittests/testdata/results_processor.py:24:20: E999 SyntaxError: invalid syntax
print 'Richards: %f' % richards
                   ^
./deps/v8/tools/unittests/testdata/predictable_mocked.py:12:51: E999 SyntaxError: invalid syntax
  print '### Allocations = 9497, hash = 0xc322c6b0'
                                                  ^
./deps/v8/tools/unittests/testdata/d8_mocked2.py:6:20: E999 SyntaxError: invalid syntax
print 'Richards1: 1'
                   ^
./deps/v8/tools/unittests/testdata/testroot1/d8_mocked.py:12:10: E999 SyntaxError: invalid syntax
print args
         ^
./deps/v8/tools/unittests/testdata/testroot2/d8_mocked.py:14:9: E999 SyntaxError: invalid syntax
print ' '.join(sys.argv[1:])
        ^
./deps/openssl/openssl/fuzz/helper.py:48:13: E999 SyntaxError: invalid syntax
    print " ".join(cmd)
            ^
./test/message/testcfg.py:70:29: E999 SyntaxError: invalid syntax
      print "length differs."
                            ^
./test/pseudo-tty/testcfg.py:68:29: E999 SyntaxError: invalid syntax
      print "length differs."
                            ^
./test/testpy/__init__.py:116:37: F821 undefined name 'reduce'
        file_path = join(self.root, reduce(join, test[1:], ""))
                                    ^
./test/testpy/__init__.py:163:37: F821 undefined name 'reduce'
        file_path = join(self.root, reduce(join, test[1:], "") + ".js")
                                    ^
./src/notrace_macros.py:4:32: E999 SyntaxError: invalid syntax
macro DTRACE_HTTP_CLIENT_REQUEST(x) = ;
                               ^
./tools/dcheck_macros.py:1:12: E999 SyntaxError: invalid syntax
macro DCHECK(x) = do { if (!(x)) (process._rawDebug("DCHECK: x == true"), process.abort()) } while (0);
           ^
./tools/js2c.py:42:41: F821 undefined name 'xrange'
  slices = (elements[i:i+step] for i in xrange(0, len(elements), step))
                                        ^
./tools/js2c.py:268:48: F821 undefined name 'xrange'
    data = [data[i] * 256 + data[i+1] for i in xrange(0, len(data), 2)]
                                               ^
./tools/check_macros.py:1:11: E999 SyntaxError: invalid syntax
macro CHECK(x) = do { if (!(x)) (process._rawDebug("CHECK: x == true"), process.abort()) } while (0);
          ^
./tools/install.py:28:17: E999 SyntaxError: invalid syntax
  except OSError, e:
                ^
./tools/nodcheck_macros.py:1:12: E999 SyntaxError: invalid syntax
macro DCHECK(x) = void(x);
           ^
./tools/gyp_node.py:55:29: E999 SyntaxError: invalid syntax
    print 'Error running GYP'
                            ^
./tools/run-valgrind.py:43:50: E999 SyntaxError: invalid syntax
  print 'Please provide an executable to analyze.'
                                                 ^
./tools/test.py:90:41: E999 SyntaxError: invalid syntax
    print "=== %(label)s %(negative)s===" % {
                                        ^
./tools/compress_json.py:20:37: F821 undefined name 'xrange'
  slices = (data[i:i+step] for i in xrange(0, len(data), step))
                                    ^
./tools/specialize_node_d.py:13:68: E999 SyntaxError: invalid syntax
  print "usage: specialize_node_d.py outfile src/node.d flavor arch"
                                                                   ^
./tools/genv8constants.py:16:47: E999 SyntaxError: invalid syntax
  print "usage: objsym.py outfile libv8_base.a"
                                              ^
./tools/gyp/gyptest.py:61:47: F821 undefined name 'opts'
    extra_path = [os.path.abspath(p) for p in opts.path]
                                              ^
./tools/gyp/PRESUBMIT.py:79:45: F821 undefined name 'xrange'
  allowed_years = (str(s) for s in reversed(xrange(2009, current_year + 1)))
                                            ^
./tools/gyp/pylib/gyp/mac_tool.py:670:59: E999 SyntaxError: invalid syntax
  max_value_length = len(max(filelist.items(), key=lambda (k,v):len(v))[1])
                                                          ^
./tools/gyp/pylib/gyp/MSVSNew.py:65:12: F821 undefined name 'cmp'
    return cmp((self.name, self.get_guid()), (other.name, other.get_guid()))
           ^
./tools/gyp/pylib/gyp/win_tool.py:137:18: E999 SyntaxError: invalid syntax
        print line
                 ^
./tools/gyp/pylib/gyp/MSVSVersion.py:192:17: E999 SyntaxError: invalid syntax
  except OSError, e:
                ^
./tools/gyp/pylib/gyp/xcode_ninja.py:31:17: E999 SyntaxError: invalid syntax
  except OSError, e:
                ^
./tools/gyp/pylib/gyp/common.py:366:23: E999 SyntaxError: invalid syntax
        except OSError, e:
                      ^
./tools/gyp/pylib/gyp/MSVSSettings.py:464:28: E999 SyntaxError: invalid syntax
          except ValueError, e:
                           ^
./tools/gyp/pylib/gyp/__init__.py:37:26: E999 SyntaxError: invalid syntax
    print '%s:%s:%d:%s %s' % (mode.upper(), os.path.basename(ctx[0]),
                         ^
./tools/gyp/pylib/gyp/input.py:245:21: E999 SyntaxError: invalid syntax
  except SyntaxError, e:
                    ^
./tools/gyp/pylib/gyp/xcodeproj_file.py:694:21: E999 SyntaxError: invalid syntax
    except TypeError, e:
                    ^
./tools/gyp/pylib/gyp/simple_copy.py:31:28: F821 undefined name 'long'
for x in (type(None), int, long, float,
                           ^
./tools/gyp/pylib/gyp/simple_copy.py:32:22: F821 undefined name 'unicode'
          bool, str, unicode, type):
                     ^
./tools/gyp/pylib/gyp/xcode_emulation.py:76:62: E999 SyntaxError: invalid syntax
          print 'Warning: Ignoring unsupported variable "%s".' % variable
                                                             ^
./tools/gyp/pylib/gyp/flock_tool.py:42:67: E999 SyntaxError: invalid token
    fd = os.open(lockfile, os.O_WRONLY|os.O_NOCTTY|os.O_CREAT, 0666)
                                                                  ^
./tools/gyp/pylib/gyp/easy_xml.py:88:19: F821 undefined name 'reduce'
    all_strings = reduce(lambda x, y: x and isinstance(y, str), rest, True)
                  ^
./tools/gyp/pylib/gyp/generator/ninja.py:458:29: E999 SyntaxError: invalid syntax
      print 'extra_sources: ', str(extra_sources)
                            ^
./tools/gyp/pylib/gyp/generator/dump_dependency_json.py:99:27: E999 SyntaxError: invalid syntax
  print 'Wrote json to %s.' % filename
                          ^
./tools/gyp/pylib/gyp/generator/xcode.py:132:19: E999 SyntaxError: invalid syntax
    except OSError, e:
                  ^
./tools/gyp/pylib/gyp/generator/cmake.py:1210:31: E999 SyntaxError: invalid syntax
    print 'Generating [%s]: %s' % (config_name, arguments)
                              ^
./tools/gyp/pylib/gyp/generator/make.py:1619:36: E999 SyntaxError: invalid syntax
      print "WARNING: no output for", self.type, target
                                   ^
./tools/gyp/pylib/gyp/generator/msvs.py:1980:29: E999 SyntaxError: invalid syntax
    print 'Building [%s]: %s' % (config, arguments)
                            ^
./tools/gyp/pylib/gyp/generator/analyzer.py:158:23: E999 SyntaxError: invalid syntax
      print 'AddSource', org_source, result[len(result) - 1]
                      ^
./tools/gyp/buildbot/buildbot_run.py:27:32: E999 SyntaxError: invalid syntax
    print '@@@STEP_EXCEPTION@@@'
                               ^
./tools/gyp/tools/graphviz.py:53:21: E999 SyntaxError: invalid syntax
  print 'digraph D {'
                    ^
./tools/gyp/tools/pretty_sln.py:29:15: E999 SyntaxError: invalid syntax
  print project
              ^
./tools/gyp/tools/pretty_gyp.py:128:19: E999 SyntaxError: invalid syntax
          print " " * (basic_offset * indent) + line
                  ^
./tools/gyp/tools/pretty_vcproj.py:64:18: E999 SyntaxError: invalid syntax
      print '%s%s' % (' '*indent, node.data.strip())
                 ^
./tools/inspector_protocol/CodeGenerator.py:40:18: F821 undefined name 'xrange'
        for i in xrange(len(keys)):
                 ^
./tools/inspector_protocol/ConvertProtocolToJSON.py:160:51: E999 SyntaxError: invalid syntax
        print 'Error in %s:%s, illegal token: \t%s' % (file_name, i, line)
                                                  ^
./tools/inspector_protocol/CheckProtocolCompatibility.py:470:46: E999 SyntaxError: invalid syntax
            print "  Public changes since %s:" % version
                                             ^
./tools/icu/icutrim.py:82:43: E999 SyntaxError: invalid syntax
        print "Missing required option: %s" % opt
                                          ^
./tools/icu/shrink-icu-src.py:32:41: E999 SyntaxError: invalid syntax
    print 'Deleting existing icusmall %s' % (options.icusmall)
                                        ^
./tools/jinja2/bccache.py:37:26: F821 undefined name 'file'
        if isinstance(f, file):
                         ^
./tools/jinja2/bccache.py:43:26: F821 undefined name 'file'
        if isinstance(f, file):
                         ^
./tools/jinja2/_compat.py:51:17: F821 undefined name 'unicode'
    text_type = unicode
                ^
./tools/jinja2/_compat.py:52:18: F821 undefined name 'xrange'
    range_type = xrange
                 ^
./tools/jinja2/_compat.py:53:26: F821 undefined name 'unicode'
    string_types = (str, unicode)
                         ^
./tools/jinja2/_compat.py:54:27: F821 undefined name 'long'
    integer_types = (int, long)
                          ^
./tools/jinja2/_compat.py:80:33: F821 undefined name 'unicode'
        if isinstance(filename, unicode):
                                ^
./tools/markupsafe/_compat.py:21:17: F821 undefined name 'unicode'
    text_type = unicode
                ^
./tools/markupsafe/_compat.py:22:26: F821 undefined name 'unicode'
    string_types = (str, unicode)
                         ^
./tools/markupsafe/_compat.py:24:23: F821 undefined name 'long'
    int_types = (int, long)
                      ^
./tools/configure.d/nodedownload.py:39:16: E999 SyntaxError: invalid syntax
        print ''  # clear the line
               ^
144   E999 SyntaxError: invalid syntax
82    F821 undefined name 'xrange'
226
@refack
Copy link
Contributor

refack commented Oct 14, 2018

Well I still need to migrate the code from node-gyp, so it should fix allot.
I would also suggest to ignore the V8 directory, and just test /tools/**/*.* and ./configure.py

@refack refack self-assigned this Oct 14, 2018
@refack refack added the python PRs and issues that require attention from people who are familiar with Python. label Nov 15, 2018
@Trott
Copy link
Member

Trott commented Nov 29, 2018

Closing because:

$ flake8 configure.py --count --select=E901,E999,F821,F822,F823 --show-source --statistics
0
$ flake8 /tools/**/*.* --count --select=E901,E999,F821,F822,F823 --show-source --statistics
0
$

🎉

@Trott Trott closed this as completed Nov 29, 2018
@cclauss
Copy link
Contributor Author

cclauss commented Nov 29, 2018

Oh... Was that python2 -m flake8 ... or python3 -m flake8 ...

Add a . in front of the path so that it reads...

  • python2 -m flake8 ./tools/**/*.* --count --select=E901,E999,F821,F822,F823 --show-source --statistics # 57 syntax errors and 169 undefined names
  • python3 -m flake8 ./tools/**/*.* --count --select=E901,E999,F821,F822,F823 --show-source --statistics # 62 syntax errors and 183 undefined names

@Trott Trott reopened this Nov 29, 2018
@cclauss
Copy link
Contributor Author

cclauss commented Nov 29, 2018

  • python2 -m flake8 ./tools --count --select=E901,E999,F821,F822,F823 --show-source --statistics
    • 5 syntax errors and 2 undefined names
  • python3 -m flake8 ./tools --count --select=E901,E999,F821,F822,F823 --show-source --statistics
    • 31 syntax errors and 24 undefined names

@gsilvapt
Copy link

gsilvapt commented Dec 2, 2018

  • python2 -m flake8 ./tools --count --select=E901,E999,F821,F822,F823 --show-source --statistics

    • 5 syntax errors and 2 undefined names
  • python3 -m flake8 ./tools --count --select=E901,E999,F821,F822,F823 --show-source --statistics

    • 31 syntax errors and 24 undefined names

Despite by unawareness regarding the tool, I can understand what the python3 option output means but what does the python2's mean in the context of this issue?

@cclauss
Copy link
Contributor Author

cclauss commented Dec 2, 2018

It means that not all of these issues are about Python 3 compatibility.

@gsilvapt
Copy link

gsilvapt commented Dec 2, 2018

Thanks for explaining!

Could it be related to bad implementations then?

I have a platonic love for Python since I like the language but I'm not allowed to play around much with it at work. Is it okay to try and submit a couple patches to fix these incompatibilities?

Edit: Are there any specific test suites I should run after making these changes to ensure I didn't brake any code? I know these issues might be spread out throughout the tools directory but maybe there are a couple suites I should target when making these changes.

@cclauss
Copy link
Contributor Author

cclauss commented Dec 3, 2018

Locally you can run make lint-py but first you should manually add the change that is in #24802 to avoid flake8 raising some false errors in your local .git directory.

@cclauss
Copy link
Contributor Author

cclauss commented Dec 11, 2018

I am delighted to say that it is now time to close this issue in favor of ##24954. Thanks massively for all your guidance and patience on this effort. Much work is still required to complete the port.

See: #24956

@Trott
Copy link
Member

Trott commented Dec 11, 2018

Thanks massively for all your guidance and patience on this effort.

Thank you for patience and effort. Seeing you do all this work has been great!

@refack refack removed their assignment Mar 11, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
python PRs and issues that require attention from people who are familiar with Python.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants