lizard 1.17.17__tar.gz → 1.17.19__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. {lizard-1.17.17 → lizard-1.17.19}/PKG-INFO +1 -1
  2. {lizard-1.17.17 → lizard-1.17.19}/lizard.egg-info/PKG-INFO +1 -1
  3. {lizard-1.17.17 → lizard-1.17.19}/lizard.py +1 -0
  4. {lizard-1.17.17 → lizard-1.17.19}/lizard_ext/version.py +1 -1
  5. {lizard-1.17.17 → lizard-1.17.19}/lizard_languages/clike.py +8 -0
  6. lizard-1.17.19/lizard_languages/go.py +45 -0
  7. {lizard-1.17.17 → lizard-1.17.19}/lizard_languages/java.py +2 -1
  8. {lizard-1.17.17 → lizard-1.17.19}/lizard_languages/python.py +2 -1
  9. {lizard-1.17.17 → lizard-1.17.19}/test/testOutput.py +9 -0
  10. lizard-1.17.17/lizard_languages/go.py +0 -22
  11. {lizard-1.17.17 → lizard-1.17.19}/LICENSE.txt +0 -0
  12. {lizard-1.17.17 → lizard-1.17.19}/README.rst +0 -0
  13. {lizard-1.17.17 → lizard-1.17.19}/lizard.egg-info/SOURCES.txt +0 -0
  14. {lizard-1.17.17 → lizard-1.17.19}/lizard.egg-info/dependency_links.txt +0 -0
  15. {lizard-1.17.17 → lizard-1.17.19}/lizard.egg-info/entry_points.txt +0 -0
  16. {lizard-1.17.17 → lizard-1.17.19}/lizard.egg-info/requires.txt +0 -0
  17. {lizard-1.17.17 → lizard-1.17.19}/lizard.egg-info/top_level.txt +0 -0
  18. {lizard-1.17.17 → lizard-1.17.19}/lizard_ext/__init__.py +0 -0
  19. {lizard-1.17.17 → lizard-1.17.19}/lizard_ext/auto_open.py +0 -0
  20. {lizard-1.17.17 → lizard-1.17.19}/lizard_ext/csvoutput.py +0 -0
  21. {lizard-1.17.17 → lizard-1.17.19}/lizard_ext/default_ordered_dict.py +0 -0
  22. {lizard-1.17.17 → lizard-1.17.19}/lizard_ext/extension_base.py +0 -0
  23. {lizard-1.17.17 → lizard-1.17.19}/lizard_ext/htmloutput.py +0 -0
  24. {lizard-1.17.17 → lizard-1.17.19}/lizard_ext/keywords.py +0 -0
  25. {lizard-1.17.17 → lizard-1.17.19}/lizard_ext/lizardboolcount.py +0 -0
  26. {lizard-1.17.17 → lizard-1.17.19}/lizard_ext/lizardcomplextags.py +0 -0
  27. {lizard-1.17.17 → lizard-1.17.19}/lizard_ext/lizardcpre.py +0 -0
  28. {lizard-1.17.17 → lizard-1.17.19}/lizard_ext/lizarddependencycount.py +0 -0
  29. {lizard-1.17.17 → lizard-1.17.19}/lizard_ext/lizarddumpcomments.py +0 -0
  30. {lizard-1.17.17 → lizard-1.17.19}/lizard_ext/lizardduplicate.py +0 -0
  31. {lizard-1.17.17 → lizard-1.17.19}/lizard_ext/lizardduplicated_param_list.py +0 -0
  32. {lizard-1.17.17 → lizard-1.17.19}/lizard_ext/lizardexitcount.py +0 -0
  33. {lizard-1.17.17 → lizard-1.17.19}/lizard_ext/lizardgotocount.py +0 -0
  34. {lizard-1.17.17 → lizard-1.17.19}/lizard_ext/lizardignoreassert.py +0 -0
  35. {lizard-1.17.17 → lizard-1.17.19}/lizard_ext/lizardio.py +0 -0
  36. {lizard-1.17.17 → lizard-1.17.19}/lizard_ext/lizardmccabe.py +0 -0
  37. {lizard-1.17.17 → lizard-1.17.19}/lizard_ext/lizardmodified.py +0 -0
  38. {lizard-1.17.17 → lizard-1.17.19}/lizard_ext/lizardnd.py +0 -0
  39. {lizard-1.17.17 → lizard-1.17.19}/lizard_ext/lizardnonstrict.py +0 -0
  40. {lizard-1.17.17 → lizard-1.17.19}/lizard_ext/lizardns.py +0 -0
  41. {lizard-1.17.17 → lizard-1.17.19}/lizard_ext/lizardoutside.py +0 -0
  42. {lizard-1.17.17 → lizard-1.17.19}/lizard_ext/lizardstatementcount.py +0 -0
  43. {lizard-1.17.17 → lizard-1.17.19}/lizard_ext/lizardwordcount.py +0 -0
  44. {lizard-1.17.17 → lizard-1.17.19}/lizard_ext/xmloutput.py +0 -0
  45. {lizard-1.17.17 → lizard-1.17.19}/lizard_languages/__init__.py +0 -0
  46. {lizard-1.17.17 → lizard-1.17.19}/lizard_languages/code_reader.py +0 -0
  47. {lizard-1.17.17 → lizard-1.17.19}/lizard_languages/csharp.py +0 -0
  48. {lizard-1.17.17 → lizard-1.17.19}/lizard_languages/erlang.py +0 -0
  49. {lizard-1.17.17 → lizard-1.17.19}/lizard_languages/fortran.py +0 -0
  50. {lizard-1.17.17 → lizard-1.17.19}/lizard_languages/gdscript.py +0 -0
  51. {lizard-1.17.17 → lizard-1.17.19}/lizard_languages/golike.py +0 -0
  52. {lizard-1.17.17 → lizard-1.17.19}/lizard_languages/javascript.py +0 -0
  53. {lizard-1.17.17 → lizard-1.17.19}/lizard_languages/js_style_language_states.py +0 -0
  54. {lizard-1.17.17 → lizard-1.17.19}/lizard_languages/js_style_regex_expression.py +0 -0
  55. {lizard-1.17.17 → lizard-1.17.19}/lizard_languages/jsx.py +0 -0
  56. {lizard-1.17.17 → lizard-1.17.19}/lizard_languages/kotlin.py +0 -0
  57. {lizard-1.17.17 → lizard-1.17.19}/lizard_languages/lua.py +0 -0
  58. {lizard-1.17.17 → lizard-1.17.19}/lizard_languages/objc.py +0 -0
  59. {lizard-1.17.17 → lizard-1.17.19}/lizard_languages/php.py +0 -0
  60. {lizard-1.17.17 → lizard-1.17.19}/lizard_languages/ruby.py +0 -0
  61. {lizard-1.17.17 → lizard-1.17.19}/lizard_languages/rubylike.py +0 -0
  62. {lizard-1.17.17 → lizard-1.17.19}/lizard_languages/rust.py +0 -0
  63. {lizard-1.17.17 → lizard-1.17.19}/lizard_languages/scala.py +0 -0
  64. {lizard-1.17.17 → lizard-1.17.19}/lizard_languages/script_language.py +0 -0
  65. {lizard-1.17.17 → lizard-1.17.19}/lizard_languages/solidity.py +0 -0
  66. {lizard-1.17.17 → lizard-1.17.19}/lizard_languages/swift.py +0 -0
  67. {lizard-1.17.17 → lizard-1.17.19}/lizard_languages/tnsdl.py +0 -0
  68. {lizard-1.17.17 → lizard-1.17.19}/lizard_languages/tsx.py +0 -0
  69. {lizard-1.17.17 → lizard-1.17.19}/lizard_languages/ttcn.py +0 -0
  70. {lizard-1.17.17 → lizard-1.17.19}/lizard_languages/typescript.py +0 -0
  71. {lizard-1.17.17 → lizard-1.17.19}/lizard_languages/vue.py +0 -0
  72. {lizard-1.17.17 → lizard-1.17.19}/lizard_languages/zig.py +0 -0
  73. {lizard-1.17.17 → lizard-1.17.19}/setup.cfg +0 -0
  74. {lizard-1.17.17 → lizard-1.17.19}/setup.py +0 -0
  75. {lizard-1.17.17 → lizard-1.17.19}/test/testApplication.py +0 -0
  76. {lizard-1.17.17 → lizard-1.17.19}/test/testAssertionExtension.py +0 -0
  77. {lizard-1.17.17 → lizard-1.17.19}/test/testBasicFunctionInfo.py +0 -0
  78. {lizard-1.17.17 → lizard-1.17.19}/test/testCOutsideComplexity.py +0 -0
  79. {lizard-1.17.17 → lizard-1.17.19}/test/testCPreprocessorExtension.py +0 -0
  80. {lizard-1.17.17 → lizard-1.17.19}/test/testCommentOptions.py +0 -0
  81. {lizard-1.17.17 → lizard-1.17.19}/test/testCyclomaticComplexity.py +0 -0
  82. {lizard-1.17.17 → lizard-1.17.19}/test/testExtension.py +0 -0
  83. {lizard-1.17.17 → lizard-1.17.19}/test/testFilesFilter.py +0 -0
  84. {lizard-1.17.17 → lizard-1.17.19}/test/testFunctionDependencyCount.py +0 -0
  85. {lizard-1.17.17 → lizard-1.17.19}/test/testFunctionExitCount.py +0 -0
  86. {lizard-1.17.17 → lizard-1.17.19}/test/testFunctionGotoCount.py +0 -0
  87. {lizard-1.17.17 → lizard-1.17.19}/test/testFunctionStatementCount.py +0 -0
  88. {lizard-1.17.17 → lizard-1.17.19}/test/testHelpers.py +0 -0
  89. {lizard-1.17.17 → lizard-1.17.19}/test/testLanguages.py +0 -0
  90. {lizard-1.17.17 → lizard-1.17.19}/test/testMcCabe.py +0 -0
  91. {lizard-1.17.17 → lizard-1.17.19}/test/testNestedStructures.py +0 -0
  92. {lizard-1.17.17 → lizard-1.17.19}/test/testNestingDepth.py +0 -0
  93. {lizard-1.17.17 → lizard-1.17.19}/test/testOutputCSV.py +0 -0
  94. {lizard-1.17.17 → lizard-1.17.19}/test/testOutputFile.py +0 -0
  95. {lizard-1.17.17 → lizard-1.17.19}/test/testOutputHTML.py +0 -0
  96. {lizard-1.17.17 → lizard-1.17.19}/test/testTokenizer.py +0 -0
  97. {lizard-1.17.17 → lizard-1.17.19}/test/test_analyzer.py +0 -0
  98. {lizard-1.17.17 → lizard-1.17.19}/test/test_auto_open.py +0 -0
  99. {lizard-1.17.17 → lizard-1.17.19}/test/test_options.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lizard
3
- Version: 1.17.17
3
+ Version: 1.17.19
4
4
  Summary: A code analyzer without caring the C/C++ header files. It works with Java, C/C++, JavaScript, Python, Ruby, Swift, Objective C. Metrics includes cyclomatic complexity number etc.
5
5
  Home-page: http://www.lizard.ws
6
6
  Download-URL: https://pypi.python.org/lizard/
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lizard
3
- Version: 1.17.17
3
+ Version: 1.17.19
4
4
  Summary: A code analyzer without caring the C/C++ header files. It works with Java, C/C++, JavaScript, Python, Ruby, Swift, Objective C. Metrics includes cyclomatic complexity number etc.
5
5
  Home-page: http://www.lizard.ws
6
6
  Download-URL: https://pypi.python.org/lizard/
@@ -284,6 +284,7 @@ class FunctionInfo(Nesting): # pylint: disable=R0902
284
284
  self.fan_in = 0
285
285
  self.fan_out = 0
286
286
  self.general_fan_out = 0
287
+ self.max_nesting_depth = 0 # Initialize max_nesting_depth to 0
287
288
 
288
289
  @property
289
290
  def name_in_space(self):
@@ -3,4 +3,4 @@
3
3
  #
4
4
  # pylint: disable=missing-docstring,invalid-name
5
5
 
6
- version = "1.17.17"
6
+ version = "1.17.19"
@@ -30,6 +30,14 @@ class CLikeReader(CodeReader, CCppCommentsMixin):
30
30
  CLikeNestingStackStates(context),
31
31
  CppRValueRefStates(context))
32
32
 
33
+ @staticmethod
34
+ def generate_tokens(source_code, addition='', token_class=None):
35
+ # Add pattern for floating point literals to the token generation
36
+ addition = r"|(?:\d*\.\d+(?:[eE][-+]?\d+)?)" + \
37
+ r"|(?:\d+\.(?:\d+)?(?:[eE][-+]?\d+)?)" + \
38
+ addition
39
+ return CodeReader.generate_tokens(source_code, addition, token_class)
40
+
33
41
  def preprocess(self, tokens):
34
42
  tilde = False
35
43
  for token in tokens:
@@ -0,0 +1,45 @@
1
+ '''
2
+ Language parser for Go lang
3
+ '''
4
+
5
+ from .code_reader import CodeReader
6
+ from .clike import CCppCommentsMixin
7
+ from .golike import GoLikeStates
8
+
9
+
10
+ class GoReader(CodeReader, CCppCommentsMixin):
11
+ # pylint: disable=R0903
12
+
13
+ ext = ['go']
14
+ language_names = ['go']
15
+
16
+ def __init__(self, context):
17
+ super(GoReader, self).__init__(context)
18
+ self.parallel_states = [GoStates(context)]
19
+
20
+ @staticmethod
21
+ def generate_tokens(source_code, addition='', token_class=None):
22
+ addition = addition + r"|`[^`]*`" # Add support for backtick-quoted strings
23
+ return CodeReader.generate_tokens(source_code, addition, token_class)
24
+
25
+ def __call__(self, tokens, reader):
26
+ self.context = reader.context
27
+ for token in tokens:
28
+ # Skip counting ? in backtick-quoted strings
29
+ if token.startswith('`') and token.endswith('`'):
30
+ for state in self.parallel_states:
31
+ state(token)
32
+ yield token
33
+ continue
34
+
35
+ # For non-backtick tokens, process normally
36
+ for state in self.parallel_states:
37
+ state(token)
38
+ yield token
39
+ for state in self.parallel_states:
40
+ state.statemachine_before_return()
41
+ self.eof()
42
+
43
+
44
+ class GoStates(GoLikeStates): # pylint: disable=R0903
45
+ pass
@@ -123,12 +123,13 @@ class JavaFunctionBodyStates(JavaStates):
123
123
  if token == "(":
124
124
  self.sub_state(JavaFunctionBodyStates(self.context), None, token)
125
125
  return
126
+ print(token)
126
127
  if token == "{":
127
128
  def callback():
128
129
  self.next(self._state_global)
129
130
  self.sub_state(JavaClassBodyStates("(anonymous)", False, self.context), callback, token)
130
131
  return
131
- self.next(self._state_global)
132
+ self.next(self._state_global, token)
132
133
 
133
134
  class JavaClassBodyStates(JavaStates):
134
135
  def __init__(self, class_name, is_record, context):
@@ -42,7 +42,8 @@ class PythonReader(CodeReader, ScriptLanguageMixIn):
42
42
  def generate_tokens(source_code, addition='', token_class=None):
43
43
  return ScriptLanguageMixIn.generate_common_tokens(
44
44
  source_code,
45
- r"|\'\'\'.*?\'\'\'" + r'|\"\"\".*?\"\"\"',
45
+ r"|(?:\"\"\"(?:\\.|[^\"]|\"(?!\"\")|\"\"(?!\"))*\"\"\")" +
46
+ r"|(?:\'\'\'(?:\\.|[^\']|\'(?!\'\')|\'\'(?!\'))*\'\'\')",
46
47
  token_class)
47
48
 
48
49
  def preprocess(self, tokens):
@@ -86,6 +86,15 @@ class TestWarningOutput(StreamStdoutTestCase):
86
86
  self.option.sorting = ['cyclomatic_complexity']
87
87
  print_warnings(self.option, self.scheme, (x for x in []))
88
88
 
89
+ def test_warning_when_max_nesting_depth_missing(self):
90
+ self.foo.cyclomatic_complexity = 30
91
+ # Intentionally not setting max_nesting_depth
92
+ fileSummary = FileInformation("FILENAME", 123, [self.foo])
93
+ scheme = OutputScheme([Ext()])
94
+ count = print_clang_style_warning([fileSummary], self.option, scheme, None)
95
+ self.assertIn("FILENAME:100: warning: foo has 1 NLOC, 30 CCN, 1 token, 0 PARAM, 1 length", sys.stdout.stream)
96
+ self.assertEqual(1, count)
97
+
89
98
 
90
99
  class TestFileInformationOutput(StreamStdoutTestCase):
91
100
 
@@ -1,22 +0,0 @@
1
- '''
2
- Language parser for Go lang
3
- '''
4
-
5
- from .code_reader import CodeReader
6
- from .clike import CCppCommentsMixin
7
- from .golike import GoLikeStates
8
-
9
-
10
- class GoReader(CodeReader, CCppCommentsMixin):
11
- # pylint: disable=R0903
12
-
13
- ext = ['go']
14
- language_names = ['go']
15
-
16
- def __init__(self, context):
17
- super(GoReader, self).__init__(context)
18
- self.parallel_states = [GoStates(context)]
19
-
20
-
21
- class GoStates(GoLikeStates): # pylint: disable=R0903
22
- pass
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes