RadonMetrics/CodeMetricsCalculator.py

changeset 49
ab84f5a5edd8
parent 47
fa1024e1dfc9
child 53
4a179abb79e6
equal deleted inserted replaced
48:a56e9483659a 49:ab84f5a5edd8
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

eric ide

mercurial