Fix protoc calling on Python 2 (#503).
diff --git a/generator/nanopb_generator.py b/generator/nanopb_generator.py
index dea2f29..666f01b 100755
--- a/generator/nanopb_generator.py
+++ b/generator/nanopb_generator.py
@@ -11,6 +11,7 @@
import codecs
import copy
import tempfile
+import shutil
import os
from functools import reduce
@@ -71,6 +72,18 @@
''' + '\n')
raise
+try:
+ from tempfile import TemporaryDirectory
+except ImportError:
+ class TemporaryDirectory:
+ '''TemporaryDirectory fallback for Python 2'''
+ def __enter__(self):
+ self.dir = tempfile.mkdtemp()
+ return self.dir
+
+ def __exit__(self, *args):
+ shutil.rmtree(self.dir)
+
# ---------------------------------------------------------------------------
# Generation of single fields
# ---------------------------------------------------------------------------
@@ -1933,7 +1946,7 @@
include_path = ['-I%s' % p for p in options.options_path]
for filename in filenames:
if filename.endswith(".proto"):
- with tempfile.TemporaryDirectory() as tmpdir:
+ with TemporaryDirectory() as tmpdir:
tmpname = os.path.join(tmpdir, os.path.basename(filename) + ".pb")
invoke_protoc(["protoc"] + include_path + ['-o' + tmpname, filename])
data = open(tmpname, 'rb').read()