From 89341e7a60ce5457ac91d071021f03db6fb1ec6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Ma=C5=9Blanka?= <piotr.maslanka@henrietta.com.pl> Date: Tue, 23 Feb 2021 18:26:55 +0100 Subject: [PATCH] 1.3.1 faster builds --- CHANGELOG.md | 2 +- snakehouse/__init__.py | 2 +- snakehouse/build.py | 7 ++++++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2dda613..7f07370 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # v1.3.1 -* _TBA_ +* Cython build step ("cythonize") will be parallelized by default # v1.3 diff --git a/snakehouse/__init__.py b/snakehouse/__init__.py index 22a747f..32f7909 100644 --- a/snakehouse/__init__.py +++ b/snakehouse/__init__.py @@ -2,4 +2,4 @@ from .build import build from .multibuild import Multibuild from .faster_builds import monkey_patch_parallel_compilation -__version__ = '1.3.1a1' +__version__ = '1.3.1' diff --git a/snakehouse/build.py b/snakehouse/build.py index 6d333fb..d8b4333 100644 --- a/snakehouse/build.py +++ b/snakehouse/build.py @@ -1,4 +1,6 @@ import logging +import multiprocessing +import sys import typing as tp from Cython.Build import cythonize from setuptools import Extension @@ -9,7 +11,10 @@ MultiBuildType = tp.Union[Multibuild, Exception] logger = logging.getLogger(__name__) -def build(extensions: tp.List[MultiBuildType], *args, **kwargs): +def build(extensions: tp.List[MultiBuildType], *args, nthreads=None, **kwargs): + if nthreads is None: + nthreads = multiprocessing.cpu_count() + kwargs['nthreads'] = nthreads returns = [] multi_builds = [] for multi_build in extensions: -- GitLab