From aa7e0731060a492f410354380ba832e54cb88a2a Mon Sep 17 00:00:00 2001 From: Niklas Schneider Date: Wed, 22 Mar 2023 10:51:27 +0100 Subject: [PATCH 1/3] Remove broken import --- cppstats/cli.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cppstats/cli.py b/cppstats/cli.py index 87ff3dc..599fb76 100644 --- a/cppstats/cli.py +++ b/cppstats/cli.py @@ -30,7 +30,7 @@ # ################################################# # imports from subfolders -import preparation, analysis +import analysis import cppstats as cstats # import cppstats.py and avoid confusion with module From eca9a97212053f2a5b59a3714fe992a447f9c282 Mon Sep 17 00:00:00 2001 From: Niklas Schneider Date: Wed, 22 Mar 2023 12:20:29 +0100 Subject: [PATCH 2/3] Use np in py2.7 --- analyses/derivative.py | 17 +++++++++-------- analyses/general.py | 25 +++++++++++++------------ analyses/interaction.py | 17 +++++++++-------- 3 files changed, 31 insertions(+), 28 deletions(-) diff --git a/analyses/derivative.py b/analyses/derivative.py index 77122f5..d73d91e 100644 --- a/analyses/derivative.py +++ b/analyses/derivative.py @@ -29,6 +29,7 @@ import os import re import sys +import numpy as np import xmlrpclib from argparse import ArgumentParser, RawTextHelpFormatter @@ -309,11 +310,11 @@ def _countNestedIfdefs(root): if (len(cnlist) > 0): nnimax = max(cnlist) nnitmp = filter(lambda n: n > 0, cnlist) - nnimean = pstat.stats.lmean(nnitmp) + nnimean = np.mean(nnitmp) else: nnimax = 0 nnimean = 0 - if (len(cnlist) > 1): nnistd = pstat.stats.lstdev(cnlist) + if (len(cnlist) > 1): nnistd = np.std(cnlist) else: nnistd = 0 return (nnimax, nnimean, nnistd) @@ -770,10 +771,10 @@ def _getFeatureStats(features): lofmin = min(floflist) lofmax = max(floflist) lof = reduce(lambda m,n: m+n, floflist) - lofmean = pstat.stats.lmean(floflist) + lofmean = np.mean(floflist) if (len(floflist) > 1): - lofstd = pstat.stats.lstdev(floflist) + lofstd = np.std(floflist) return (nof, nod, lof, lofmin, lofmax, lofmean, lofstd) @@ -893,14 +894,14 @@ def __add(x, y): scat.append(vec.count(True)) tang = map(__add, tang, vec) - if (len(scat)): sdegmean = pstat.stats.lmean(scat) + if (len(scat)): sdegmean = np.mean(scat) else: sdegmean = 0 - if (len(scat) > 1): sdegstd = pstat.stats.lstdev(scat) + if (len(scat) > 1): sdegstd = np.std(scat) else: sdegstd = 0 - if (len(tang)): tdegmean = pstat.stats.lmean(tang) + if (len(tang)): tdegmean = np.mean(tang) else: tdegmean = 0 - if (len(tang) > 1): tdegstd = pstat.stats.lstdev(tang) + if (len(tang) > 1): tdegstd = np.std(tang) else: tdegstd = 0 return (sdegmean, sdegstd, tdegmean, tdegstd) diff --git a/analyses/general.py b/analyses/general.py index de36c18..2ed927b 100644 --- a/analyses/general.py +++ b/analyses/general.py @@ -29,6 +29,7 @@ import re import sys import xmlrpclib +import numpy as np from argparse import ArgumentParser, RawTextHelpFormatter @@ -467,11 +468,11 @@ def _countNestedIfdefs(root): nnimax = max(cnlist) nnitmp = filter(lambda n: n > 0, cnlist) __nestedIfdefsLevels.append(nnitmp) - nnimean = pstat.stats.lmean(nnitmp) + nnimean = np.mean(nnitmp) else: nnimax = 0 nnimean = 0 - if (len(cnlist) > 1): nnistd = pstat.stats.lstdev(cnlist) + if (len(cnlist) > 1): nnistd = np.std(cnlist) else: nnistd = 0 return (nnimax, nnimean, nnistd) @@ -928,10 +929,10 @@ def _getFeatureStats(features): lofmin = min(floflist) lofmax = max(floflist) lof = reduce(lambda m,n: m+n, floflist) - lofmean = pstat.stats.lmean(floflist) + lofmean = np.mean(floflist) if (len(floflist) > 1): - lofstd = pstat.stats.lstdev(floflist) + lofstd = np.std(floflist) return (nof, nod, lof, lofmin, lofmax, lofmean, lofstd) @@ -1051,14 +1052,14 @@ def __add(x, y): scat.append(vec.count(True)) tang = map(__add, tang, vec) - if (len(scat)): sdegmean = pstat.stats.lmean(scat) + if (len(scat)): sdegmean = np.mean(scat) else: sdegmean = 0 - if (len(scat) > 1): sdegstd = pstat.stats.lstdev(scat) + if (len(scat) > 1): sdegstd = np.std(scat) else: sdegstd = 0 - if (len(tang)): tdegmean = pstat.stats.lmean(tang) + if (len(tang)): tdegmean = np.mean(tang) else: tdegmean = 0 - if (len(tang) > 1): tdegstd = pstat.stats.lstdev(tang) + if (len(tang) > 1): tdegstd = np.std(tang) else: tdegstd = 0 return (sdegmean, sdegstd, tdegmean, tdegstd) @@ -1118,12 +1119,12 @@ def __getNumOfFilesPerFeatureStats(filetofeatureconstants): #mean if (len(numbers) > 0): - numbersmean = pstat.stats.lmean(numbers) + numbersmean = np.mean(numbers) else: numbersmean = 0 # std if (len(numbers) > 1): - numbersstd = pstat.stats.lstdev(numbers) + numbersstd = np.std(numbers) else: numbersstd = 0 @@ -1353,11 +1354,11 @@ def _mergeFeatures(ffeatures): # ANDAVG + ANDSTDEV nestedIfdefsLevels = _flatten(__nestedIfdefsLevels) if (len(nestedIfdefsLevels)): - nnimean = pstat.stats.lmean(nestedIfdefsLevels) + nnimean = np.mean(nestedIfdefsLevels) else: nnimean = 0 if (len(nestedIfdefsLevels) > 1): - nnistd = pstat.stats.lstdev(nestedIfdefsLevels) + nnistd = np.std(nestedIfdefsLevels) else: nnistd = 0 diff --git a/analyses/interaction.py b/analyses/interaction.py index a000c02..7ac6c09 100644 --- a/analyses/interaction.py +++ b/analyses/interaction.py @@ -29,6 +29,7 @@ import os import re import sys +import numpy as np import xmlrpclib from argparse import ArgumentParser, RawTextHelpFormatter @@ -310,11 +311,11 @@ def _countNestedIfdefs(root): if (len(cnlist) > 0): nnimax = max(cnlist) nnitmp = filter(lambda n: n > 0, cnlist) - nnimean = pstat.stats.lmean(nnitmp) + nnimean = np.mean(nnitmp) else: nnimax = 0 nnimean = 0 - if (len(cnlist) > 1): nnistd = pstat.stats.lstdev(cnlist) + if (len(cnlist) > 1): nnistd = np.std(cnlist) else: nnistd = 0 return (nnimax, nnimean, nnistd) @@ -771,10 +772,10 @@ def _getFeatureStats(features): lofmin = min(floflist) lofmax = max(floflist) lof = reduce(lambda m,n: m+n, floflist) - lofmean = pstat.stats.lmean(floflist) + lofmean = np.mean(floflist) if (len(floflist) > 1): - lofstd = pstat.stats.lstdev(floflist) + lofstd = np.std(floflist) return (nof, nod, lof, lofmin, lofmax, lofmean, lofstd) @@ -894,14 +895,14 @@ def __add(x, y): scat.append(vec.count(True)) tang = map(__add, tang, vec) - if (len(scat)): sdegmean = pstat.stats.lmean(scat) + if (len(scat)): sdegmean = np.mean(scat) else: sdegmean = 0 - if (len(scat) > 1): sdegstd = pstat.stats.lstdev(scat) + if (len(scat) > 1): sdegstd = np.std(scat) else: sdegstd = 0 - if (len(tang)): tdegmean = pstat.stats.lmean(tang) + if (len(tang)): tdegmean = np.mean(tang) else: tdegmean = 0 - if (len(tang) > 1): tdegstd = pstat.stats.lstdev(tang) + if (len(tang) > 1): tdegstd = np.std(tang) else: tdegstd = 0 return (sdegmean, sdegstd, tdegmean, tdegstd) From dee5e1877d325100431cf3796d379a8bcee40c21 Mon Sep 17 00:00:00 2001 From: Niklas Schneider Date: Tue, 2 May 2023 20:26:55 +0200 Subject: [PATCH 3/3] Debug Fix sh Debug Debug Debug Debug Debug Debug Debug Debug Debug Debug Debug Debug Debug Debug Debug Debug Debug Debug Debug Debug Debug Debug Debug Debug Debug Debug Debug Debug Debug Debug Debug Debug Debug Debug Debug Debug --- analyses/derivative.py | 2 +- analyses/general.py | 2 +- analyses/generalvalues.py | 2 +- analyses/interaction.py | 4 +++- cppstats.sh | 4 ++-- 5 files changed, 8 insertions(+), 6 deletions(-) diff --git a/analyses/derivative.py b/analyses/derivative.py index d73d91e..de95f43 100644 --- a/analyses/derivative.py +++ b/analyses/derivative.py @@ -48,7 +48,7 @@ # python-lxml module from lxml import etree # statistics module -from statlib import pstat +# from statlib import pstat # pyparsing module import pyparsing as pypa pypa.ParserElement.enablePackrat() # speed up parsing diff --git a/analyses/general.py b/analyses/general.py index 2ed927b..d5c9d85 100644 --- a/analyses/general.py +++ b/analyses/general.py @@ -48,7 +48,7 @@ # python-lxml module from lxml import etree # statistics module -from statlib import pstat +# from statlib import pstat # pyparsing module import pyparsing as pypa pypa.ParserElement.enablePackrat() # speed up parsing diff --git a/analyses/generalvalues.py b/analyses/generalvalues.py index dda1a4a..526e18d 100644 --- a/analyses/generalvalues.py +++ b/analyses/generalvalues.py @@ -45,7 +45,7 @@ # python-lxml module from lxml import etree # statistics module -from statlib import pstat +# from statlib import pstat # pyparsing module import pyparsing as pypa pypa.ParserElement.enablePackrat() # speed up parsing diff --git a/analyses/interaction.py b/analyses/interaction.py index 7ac6c09..9246cc7 100644 --- a/analyses/interaction.py +++ b/analyses/interaction.py @@ -48,7 +48,7 @@ # python-lxml module from lxml import etree # statistics module -from statlib import pstat +# from statlib import pstat # pyparsing module import pyparsing as pypa pypa.ParserElement.enablePackrat() # speed up parsing @@ -1057,7 +1057,9 @@ def _mergeFeatures(ffeatures): c != [''], afeatures.items()) annotations = map(lambda (a, (flag, b, c)): flag, afeatureitems) annotations3andmore = filter(lambda a: len(a) > 2, annotations) + print(annotations3andmore) annotations3andmore = uniqueItems(annotations3andmore) + print("\n".join(sorted(list(map(lambda x: str(sorted(list(x))), annotations3andmore))))) annotations3andmore = map(lambda s: set(s), annotations3andmore) relevantannotations = list() missingannotations = list() diff --git a/cppstats.sh b/cppstats.sh index a76c8de..91b6114 100755 --- a/cppstats.sh +++ b/cppstats.sh @@ -22,10 +22,10 @@ # Andreas Ringlstetter + pushd `dirname $0` > /dev/null CPPSTATS=`pwd` popd > /dev/null - cd ${CPPSTATS} -PYTHONPATH="$PYTHONPATH:$CPPSTATS/lib" +export PYTHONPATH="$PYTHONPATH:$CPPSTATS" ./cppstats/cppstats.py "$@"