AtfParser
has 140 functions (exceeds 20 allowed). Consider refactoring.
class AtfParser(object):
tokens = AtfLexicon.TOKENS
def __init__(self, debug=0, log=yacc.NullLogger()):
self.parser = yacc.yacc(module=self, tabmodule='pyoracc.atf.parsetab',
File atfyacc.py
has 644 lines of code (exceeds 250 allowed). Consider refactoring.
'''
Copyright 2015, 2016 University College London.
This file is part of PyORACC.
Function CheckSurfaceRules
has a Cognitive Complexity of 45 (exceeds 5 allowed). Consider refactoring.
def CheckSurfaceRules(self):
surfaceRegex = re.compile("@surface")
specificSurfaceRegex = re.compile(
"@(obverse|reverse|top|bottom|left|right)")
faceSurfaceRegex = re.compile("@face")
AtfLexer
has 34 functions (exceeds 20 allowed). Consider refactoring.
class AtfLexer(object):
def _keyword_dict(self, tokens, extra):
keywords = {token.lower(): token for token in tokens}
firstcap = {token.title(): token for token in tokens}
File atflex.py
has 340 lines of code (exceeds 250 allowed). Consider refactoring.
'''
Copyright 2015, 2016 University College London.
This file is part of PyORACC.
Function __init__
has a Cognitive Complexity of 15 (exceeds 5 allowed). Consider refactoring.
def __init__(self, **kwargs):
self.texts = []
self.failures = 0
self.successes = 0
self.atftype = kwargs['atftype']
Function t_INITIAL_parallel_labeled_ATID
has a Cognitive Complexity of 15 (exceeds 5 allowed). Consider refactoring.
def t_INITIAL_parallel_labeled_ATID(self, t):
r'^@[a-zA-Z][a-zA-Z0-9\[\]]*\+?'
t.value = t.value[1:]
t.lexpos += 1
t.type = self.resolve_keyword(t.value,
Function check_and_process
has a Cognitive Complexity of 14 (exceeds 5 allowed). Consider refactoring.
def check_and_process(pathname, atftype, whole, verbose=False):
mode = os.stat(pathname)[ST_MODE]
if S_ISREG(mode) and pathname.lower().endswith('.atf'):
if verbose:
Function main
has a Cognitive Complexity of 12 (exceeds 5 allowed). Consider refactoring.
def main(input_path, atf_type, whole, verbose):
"""My Tool does one work, and one work well."""
tsbegin = time.time()
if os.path.isdir(input_path):
failures = 0
Function t_INITIAL_parallel_labeled_HASHID
has a Cognitive Complexity of 12 (exceeds 5 allowed). Consider refactoring.
def t_INITIAL_parallel_labeled_HASHID(self, t):
r'#[a-zA-Z][a-zA-Z0-9\[\]]+:'
t.value = t.value[1:-1]
t.lexpos += 1
Function SetObjectType
has a Cognitive Complexity of 10 (exceeds 5 allowed). Consider refactoring.
def SetObjectType(self, roughType):
if "@tablet" in roughType:
self.objectType = "TABLET"
elif "bulla" in roughType:
self.objectType = "BULLA"
Function __init__
has 5 arguments (exceeds 4 allowed). Consider refactoring.
def __init__(self, state=None, scope=None, extent=None,
Function CheckPMap
has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
def CheckPMap(self, pnumber):
self.oldPlist, self.newPlist = self.ReadPMap()
foundMap = False
Function __init__
has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
def __init__(self, content, atftype='oracc', debug=False):
skipinvalid = False
if content[-1] != '\n':
content += "\n"
if atftype == 'cdli':