52 @rtype (tuple of dict) |
52 @rtype (tuple of dict) |
53 """ |
53 """ |
54 return __rawCodeMetrics(file, text) |
54 return __rawCodeMetrics(file, text) |
55 |
55 |
56 |
56 |
57 def batchRawCodeMetrics(argumentsList, send, fx, cancelled): |
57 def batchRawCodeMetrics(argumentsList, send, fx, cancelled, maxProcesses=0): |
58 """ |
58 """ |
59 Module function to calculate the raw code metrics for a batch of files. |
59 Module function to calculate the raw code metrics for a batch of files. |
60 |
60 |
61 @param argumentsList list of arguments tuples as given for rawCodeMetrics |
61 @param argumentsList list of arguments tuples as given for rawCodeMetrics |
62 @type list |
62 @type list |
64 @type function |
64 @type function |
65 @param fx registered service name |
65 @param fx registered service name |
66 @type str |
66 @type str |
67 @param cancelled reference to function checking for a cancellation |
67 @param cancelled reference to function checking for a cancellation |
68 @type function |
68 @type function |
|
69 @param maxProcesses number of processes to be used |
|
70 @type int |
69 """ |
71 """ |
70 try: |
72 if maxProcesses == 0: |
71 NumberOfProcesses = multiprocessing.cpu_count() |
73 # determine based on CPU count |
72 if NumberOfProcesses >= 1: |
74 try: |
73 NumberOfProcesses -= 1 |
75 NumberOfProcesses = multiprocessing.cpu_count() |
74 except NotImplementedError: |
76 if NumberOfProcesses >= 1: |
75 NumberOfProcesses = 1 |
77 NumberOfProcesses -= 1 |
|
78 except NotImplementedError: |
|
79 NumberOfProcesses = 1 |
|
80 else: |
|
81 NumberOfProcesses = maxProcesses |
76 |
82 |
77 # Create queues |
83 # Create queues |
78 taskQueue = multiprocessing.Queue() |
84 taskQueue = multiprocessing.Queue() |
79 doneQueue = multiprocessing.Queue() |
85 doneQueue = multiprocessing.Queue() |
80 |
86 |