1. Tarek Ziadé
  2. flake8

Commits

Ian Cordasco  committed 22c6948

Fix git hook on python 3

We were expecting strings not bytearrays and so we'll make sure we get
strings. And yes, unicode strings work just fine with this on python 2.

  • Participants
  • Parent commits 132f0cb
  • Branches default

Comments (0)

Files changed (1)

File flake8/hooks.py

View file
 def run(command):
     p = Popen(command.split(), stdout=PIPE, stderr=PIPE)
     (stdout, stderr) = p.communicate()
+    # On python 3, subprocess.Popen returns bytes objects which expect
+    # endswith to be given a bytes object or a tuple of bytes but not native
+    # string objects. This is simply less mysterious than using b'.py' in the
+    # endswith method. That should work but might still fail horribly.
+    if hasattr(stdout, 'decode'):
+        stdout = stdout.decode()
+    if hasattr(stderr, 'decode'):
+        stderr = stderr.decode()
     return (p.returncode, [line.strip() for line in stdout.splitlines()],
             [line.strip() for line in stderr.splitlines()])