CMS 3D CMS Logo

Functions | Variables
cmsCodeRulesChecker Namespace Reference

Functions

def omitLine (lines, line, regEx=None)
 
def printOut (listOfResult, filePath=None)
 
def runRules (ruleNumberList, directory)
 
def splitPaths (listRule, pathHead)
 

Variables

 __author__
 
 __date__
 
 arg
 
 argvLen
 
 checkPath
 
 configuration
 
 createPickle
 
 createTxt
 
 cwd
 
 goodParameters
 
 help
 
 html
 
 i
 
 picklePath
 
 printResult
 
 result
 
 ruleNumbers
 
 RULES
 
 rules
 
 txtPath
 

Function Documentation

def cmsCodeRulesChecker.omitLine (   lines,
  line,
  regEx = None 
)

Definition at line 105 of file cmsCodeRulesChecker.py.

References createfilelist.int, str, and digitizers_cfi.strip.

Referenced by runRules().

105 def omitLine(lines, line, regEx=None):
106  fileLines = lines
107  if re.match('^\d+$',line):
108  xline = int(line)-1
109  try:
110  if (not regEx) or (re.search(regEx,fileLines[xline].strip())):
111  fileLines[xline] = ''
112  except IndexError:
113  pass
114  else:
115  for i,lineData in enumerate(fileLines):
116  if re.match(line,str(i)):
117  lineData = lineData.strip()
118  if (not regEx) or (re.search(regEx,lineData)):
119  fileLines[i] = ''
120  return fileLines
121 
def omitLine(lines, line, regEx=None)
#define str(s)
def cmsCodeRulesChecker.printOut (   listOfResult,
  filePath = None 
)

Definition at line 122 of file cmsCodeRulesChecker.py.

References edm.print(), and str.

122 def printOut(listOfResult, filePath = None):
123  file = None
124  try:
125  for rule, result in listOfResult:
126  if filePath:
127  file = open('%s/cmsCodeRule%s.txt'%(filePath, rule), 'w')
128  for path, lineNumbers in result:
129  file.write('%s\n'%path)
130  file.write('%s\n'%str(lineNumbers))
131  file.close()
132  else:
133  if not result or result == -1:
134  print('No results for rule %s'%rule)
135  else:
136  print('Rule %s:' %rule)
137  for path, lineNumbers in result:
138  print(path)
139  print(lineNumbers)
140  except TypeError:
141  print("Error: wrong type of parameter in function printOut")
142 
S & print(S &os, JobReport::InputFile const &f)
Definition: JobReport.cc:65
def printOut(listOfResult, filePath=None)
#define str(s)
def cmsCodeRulesChecker.runRules (   ruleNumberList,
  directory 
)

Definition at line 33 of file cmsCodeRulesChecker.py.

References keyFinder.finds(), filesFinder.getFilePathsFromWalk(), join(), omitLine(), edm.print(), splitPaths(), and str.

33 def runRules(ruleNumberList, directory):
34 
35  result = []
36  osWalk = []
37 
38  for rule in ruleNumberList:
39  if str(rule) not in RULES:
40  print('Error: wrong rule parameter. There is no such rule: "'+rule+'"\n\n' + rulesDescription)
41  print('\nWrite -h for help')
42  return -1
43 
44  for rule in configuration.keys():
45  configuration[rule]['filter'] = re.compile(configuration[rule]['filter'])
46 
47  osWalk.extend(os.walk(directory))
48 
49  exceptPathsForEachRule = []
50  for path in exceptPaths:
51  exceptPathsForEachRule.append(join(checkPath, path))
52 
53  for ruleNr in ruleNumberList:
54  files = []
55  rule = str(ruleNr)
56  rule = configuration[ruleNr]
57 
58  filesToMatch = rule['filesToMatch']
59  exceptRuleLines = []
60  exceptRulePaths = []
61  for path in rule['exceptPaths']:
62  try:
63  file, line = path.split(":",1)
64  xline = line
65  xdata = None
66  try:
67  xline, xdata = line.split(":",1)
68  if not xline: xline = '.*'
69  except ValueError:
70  pass
71  exceptRuleLines.append((pathToRegEx(file), xline,xdata))
72  except ValueError:
73  exceptRulePaths.append(pathToRegEx(path))
74  for fileType in filesToMatch:
75  fileList = getFilePathsFromWalk(osWalk, fileType, exceptPathsForEachRule)
76 # ------------------------------------------------------------------------------
77  for path in exceptRulePaths:
78  xFileList = []
79  for file in fileList:
80  xFile = file.replace(join(checkPath, ""), "")
81  if not re.match(path, xFile):
82  xFileList.append(file)
83  fileList = xFileList
84 # ------------------------------------------------------------------------------
85  filesLinesList = fileList
86  if rule['skip']:
87  for skipper in rule['skip']:
88  filesLinesList = skipper(filesLinesList)
89  else:
90  for i,xFile in enumerate(filesLinesList):
91  filesLinesList[i]=((xFile,open(xFile).readlines()))
92 # ------------------------------------------------------------------------------
93  for Nr, fileLine in enumerate(exceptRuleLines):
94  regEx, line, lineEx = fileLine
95  for index, file in enumerate(fileList):
96  xFile = file.replace(join(checkPath, ""), "")
97  if re.match(regEx, xFile):
98  filesLinesList[index] = (filesLinesList[index][0], omitLine(filesLinesList[index][1], line,lineEx))
99  files.extend(filesLinesList)
100 # ------------------------------------------------------------------------------
101  listRule = finds(files, rule['filter'], rule['exceptFilter'])
102  result.append((ruleNr, splitPaths(listRule, checkPath)))
103  return result
104 
def splitPaths(listRule, pathHead)
S & print(S &os, JobReport::InputFile const &f)
Definition: JobReport.cc:65
def omitLine(lines, line, regEx=None)
def getFilePathsFromWalk(osWalkResult, file, exceptPaths=[])
Definition: filesFinder.py:8
static std::string join(char **cmd)
Definition: RemoteFile.cc:18
def finds(fileList, regularExpression, exceptRegEx=[])
Definition: keyFinder.py:7
def runRules(ruleNumberList, directory)
#define str(s)
def cmsCodeRulesChecker.splitPaths (   listRule,
  pathHead 
)

Definition at line 24 of file cmsCodeRulesChecker.py.

References edm.print().

Referenced by runRules().

24 def splitPaths(listRule, pathHead):
25  try:
26  for i in range(len(listRule)):
27  path, linesNumbers = listRule[i]
28  listRule[i] = (path.replace(pathHead, '', 1), linesNumbers)
29  except TypeError:
30  print("Error: given wrong type of parameter in function splitPaths.")
31  return listRule
32 
def splitPaths(listRule, pathHead)
S & print(S &os, JobReport::InputFile const &f)
Definition: JobReport.cc:65

Variable Documentation

cmsCodeRulesChecker.__author__
private

Definition at line 4 of file cmsCodeRulesChecker.py.

cmsCodeRulesChecker.__date__
private

Definition at line 5 of file cmsCodeRulesChecker.py.

cmsCodeRulesChecker.arg

Definition at line 160 of file cmsCodeRulesChecker.py.

cmsCodeRulesChecker.argvLen

Definition at line 154 of file cmsCodeRulesChecker.py.

cmsCodeRulesChecker.checkPath

Definition at line 20 of file cmsCodeRulesChecker.py.

cmsCodeRulesChecker.configuration

Definition at line 18 of file cmsCodeRulesChecker.py.

cmsCodeRulesChecker.createPickle

Definition at line 147 of file cmsCodeRulesChecker.py.

cmsCodeRulesChecker.createTxt

Definition at line 148 of file cmsCodeRulesChecker.py.

cmsCodeRulesChecker.cwd

Definition at line 145 of file cmsCodeRulesChecker.py.

cmsCodeRulesChecker.goodParameters

Definition at line 153 of file cmsCodeRulesChecker.py.

cmsCodeRulesChecker.help

Definition at line 150 of file cmsCodeRulesChecker.py.

cmsCodeRulesChecker.html

Definition at line 149 of file cmsCodeRulesChecker.py.

cmsCodeRulesChecker.i

Definition at line 158 of file cmsCodeRulesChecker.py.

cmsCodeRulesChecker.picklePath

Definition at line 21 of file cmsCodeRulesChecker.py.

cmsCodeRulesChecker.printResult

Definition at line 155 of file cmsCodeRulesChecker.py.

cmsCodeRulesChecker.result

Definition at line 219 of file cmsCodeRulesChecker.py.

cmsCodeRulesChecker.ruleNumbers

Definition at line 156 of file cmsCodeRulesChecker.py.

cmsCodeRulesChecker.RULES

Definition at line 19 of file cmsCodeRulesChecker.py.

cmsCodeRulesChecker.rules
cmsCodeRulesChecker.txtPath

Definition at line 22 of file cmsCodeRulesChecker.py.