wolverine icon indicating copy to clipboard operation
wolverine copied to clipboard

Use subprocess.run with encoding="utf-8"

Open hughdbrown opened this issue 2 years ago • 0 comments

https://github.com/biobootloader/wolverine/blob/2f5a026ff96971a4c00491ad628fae6b7e1c503c/wolverine.py#L36-L40

if you pass encoding='utf-8' to subprocess.run, your strings are automatically decoded:

>>> s = subprocess.run("/bin/echo 'hello'".split(" "), stdout=subprocess.PIPE)
>>> s.stdout
b"'hello'\n"
>>> s = subprocess.run("/bin/echo 'hello'".split(" "), stdout=subprocess.PIPE, encoding="utf-8")
>>> s.stdout
"'hello'\n"

So:

    try:
        result = subprocess.check_output(subprocess_args, stderr=subprocess.STDOUT, encoding="utf-8")
    except subprocess.CalledProcessError as e:
        return e.output, e.returncode
    return result, 0

hughdbrown avatar Apr 18 '23 20:04 hughdbrown