diff --git a/api_generator/yang_generator/printer/python/python_bindings_printer.py b/api_generator/yang_generator/printer/python/python_bindings_printer.py index 83e8a51..a306d63 100644 --- a/api_generator/yang_generator/printer/python/python_bindings_printer.py +++ b/api_generator/yang_generator/printer/python/python_bindings_printer.py @@ -5,6 +5,7 @@ import os import shutil from distutils import dir_util +from concurrent.futures import ThreadPoolExecutor from yang_generator.api_model import Bits, Class, Enum, Package, get_property_name from yang_generator.common import get_rst_file_name @@ -48,8 +49,9 @@ def _print_modules(self): only_modules = [package.stmt for package in self.packages] size = len(only_modules) - for index, package in enumerate(self.packages): - self._print_module(index, package, size) + with ThreadPoolExecutor(max_workers=3) as executor: + for index, package in enumerate(self.packages): + job = executor.submit(lambda p : self._print_module(*p), [index, package, size]) def _print_module(self, index, package, size): print('Processing %d of %d %s' % (index + 1, size, package.stmt.pos.ref)) @@ -186,4 +188,4 @@ def emit_module(ctx, package, extra_args): def emit_nmsp_declare_init(ctx, package): - InitPrinter(ctx).print_nmsp_declare_init(package) + InitPrinter(ctx).print_nmsp_declare_init(package) \ No newline at end of file