Repository Analysis

cool-RR/PySnooper

Never use print for debugging again

26.2 Moderate AI signal View on GitHub
26.2
Adjusted Score
26.2
Raw Score
100%
Time Factor
2026-05-02
Last Push
16,591
Stars
Python
Language
6,887
Lines of Code
36
Files
169
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 0HIGH 7MEDIUM 7LOW 155

Pattern Findings

169 matches across 9 categories. Click a row to expand file-level details.

Unused Imports61 hits · 59 pts
SeverityFileLineSnippet
LOWpysnooper/__init__.py20
LOWpysnooper/__init__.py21
LOWpysnooper/__init__.py21
LOWpysnooper/__init__.py21
LOWpysnooper/__init__.py21
LOWpysnooper/utils.py8
LOWpysnooper/pycompat.py68
LOWpysnooper/pycompat.py70
LOWpysnooper/tracer.py14
LOWtests/test_pysnooper.py8
LOWtests/test_pysnooper.py18
LOWtests/test_chinese.py5
LOWtests/test_chinese.py6
LOWtests/test_chinese.py7
LOWtests/test_chinese.py8
LOWtests/test_chinese.py9
LOWtests/test_chinese.py11
LOWtests/test_chinese.py12
LOWtests/test_chinese.py16
LOWtests/test_chinese.py17
LOWtests/test_chinese.py17
LOWtests/test_chinese.py17
LOWtests/test_chinese.py17
LOWtests/test_chinese.py17
LOWtests/test_not_implemented.py4
LOWtests/test_not_implemented.py6
LOWtests/test_not_implemented.py7
LOWtests/test_not_implemented.py8
LOWtests/test_not_implemented.py9
LOWtests/test_not_implemented.py12
LOWtests/test_not_implemented.py16
LOWtests/test_not_implemented.py18
LOWtests/test_not_implemented.py18
LOWtests/test_not_implemented.py18
LOWtests/test_not_implemented.py18
LOWtests/test_not_implemented.py18
LOWtests/test_not_implemented.py18
LOWtests/test_not_implemented.py18
LOWtests/test_not_implemented.py18
LOWtests/test_not_implemented.py18
LOWtests/test_not_implemented.py18
LOWtests/test_not_implemented.py18
LOWtests/test_not_implemented.py18
LOWtests/test_not_implemented.py18
LOWtests/test_not_implemented.py23
LOWtests/test_utils/test_regex.py4
LOWtests/test_multiple_files/test_multiple_files.py4
LOWtests/test_multiple_files/test_multiple_files.py5
LOWtests/test_multiple_files/test_multiple_files.py6
LOWtests/test_multiple_files/test_multiple_files.py7
LOWtests/test_multiple_files/test_multiple_files.py8
LOWtests/test_multiple_files/test_multiple_files.py9
LOWtests/test_multiple_files/test_multiple_files.py11
LOWtests/test_multiple_files/test_multiple_files.py12
LOWtests/test_multiple_files/test_multiple_files.py14
LOWtests/test_multiple_files/test_multiple_files.py15
LOWtests/test_multiple_files/test_multiple_files.py16
LOWtests/test_multiple_files/test_multiple_files.py16
LOWtests/test_multiple_files/test_multiple_files.py16
LOWtests/test_multiple_files/test_multiple_files.py16
1 more matches not shown…
Overly Generic Function Names43 hits · 28 pts
SeverityFileLineSnippet
LOWtests/test_pysnooper.py30 def my_function(foo):
LOWtests/test_pysnooper.py43 CallEntry('def my_function(foo):'),
LOWtests/test_pysnooper.py191 def my_function(foo):
LOWtests/test_pysnooper.py206 CallEntry('def my_function(foo):'),
LOWtests/test_pysnooper.py222 def my_function(foo):
LOWtests/test_pysnooper.py250 CallEntry('def my_function(foo):',
LOWtests/test_pysnooper.py268 CallEntry('def my_function(foo):',
LOWtests/test_pysnooper.py286 CallEntry('def my_function(foo):',
LOWtests/test_pysnooper.py311 def my_function(foo):
LOWtests/test_pysnooper.py324 CallEntry('def my_function(foo):'),
LOWtests/test_pysnooper.py352 def my_function():
LOWtests/test_pysnooper.py368 CallEntry('def my_function():'),
LOWtests/test_pysnooper.py401 def my_function():
LOWtests/test_pysnooper.py417 CallEntry('def my_function():'),
LOWtests/test_pysnooper.py460 def my_function():
LOWtests/test_pysnooper.py475 CallEntry('def my_function():'),
LOWtests/test_pysnooper.py507 def my_function():
LOWtests/test_pysnooper.py522 CallEntry('def my_function():'),
LOWtests/test_pysnooper.py543 def my_function():
LOWtests/test_pysnooper.py557 CallEntry('def my_function():'),
LOWtests/test_pysnooper.py572 def my_function():
LOWtests/test_pysnooper.py586 CallEntry('def my_function():'),
LOWtests/test_pysnooper.py601 def my_function():
LOWtests/test_pysnooper.py615 CallEntry('def my_function():'),
LOWtests/test_pysnooper.py634 def my_function():
LOWtests/test_pysnooper.py647 CallEntry('def my_function():'),
LOWtests/test_pysnooper.py769 def my_function(_foo):
LOWtests/test_pysnooper.py783 CallEntry('def my_function(_foo):'),
LOWtests/test_pysnooper.py809 def my_function(foo):
LOWtests/test_pysnooper.py822 CallEntry('def my_function(foo):'),
LOWtests/test_pysnooper.py905 def my_function(foo):
LOWtests/test_pysnooper.py920 CallEntry('def my_function(foo):'),
LOWtests/test_pysnooper.py939 def my_function(foo):
LOWtests/test_pysnooper.py954 CallEntry('def my_function(foo):'),
LOWtests/test_pysnooper.py965 CallEntry('def my_function(foo):'),
LOWtests/test_pysnooper.py982 def my_function(foo):
LOWtests/test_pysnooper.py1508 def my_function(foo):
LOWtests/test_pysnooper.py1533 def my_method(self, foo):
LOWtests/test_pysnooper.py1553 CallEntry('def my_method(self, foo):'),
LOWtests/test_pysnooper.py1581 def my_method(self, foo):
LOWtests/test_pysnooper.py1631 def my_method(self, foo):
LOWtests/test_pysnooper.py1657 CallEntry('def my_method(self, foo):'),
LOWtests/mini_toolbox/contextlib.py155 def helper(*args, **kwds):
Cross-File Repetition4 hits · 20 pts
SeverityFileLineSnippet
HIGHtests/test_pysnooper.py0import pysnooper @pysnooper.snoop(color=false) def f(x): return x
HIGHtests/test_pysnooper.py0import pysnooper @pysnooper.snoop(color=false) def f(x): return x
HIGHtests/test_pysnooper.py0import pysnooper @pysnooper.snoop(color=false) def f(x): return x
HIGHtests/test_pysnooper.py0import pysnooper @pysnooper.snoop(color=false) def f(x): return x
Excessive Try-Catch Wrapping13 hits · 18 pts
SeverityFileLineSnippet
LOWpysnooper/variables.py33 except Exception:
LOWpysnooper/variables.py61 except Exception:
LOWpysnooper/variables.py73 except Exception:
MEDIUMpysnooper/variables.py30def items(self, frame, normalize=False):
MEDIUMpysnooper/variables.py69def _safe_keys(self, main_value):
LOWpysnooper/utils.py72 except Exception:
LOWpysnooper/tracer.py84 except Exception:
LOWpysnooper/tracer.py94 except Exception:
LOWpysnooper/tracer.py101 except Exception:
LOWpysnooper/tracer.py334 except Exception as e:
LOWtests/mini_toolbox/__init__.py97 except Exception:
LOWtests/samples/exception.py11 except Exception:
MEDIUMtests/samples/exception.py8def bar():
Hyper-Verbose Identifiers24 hits · 16 pts
SeverityFileLineSnippet
LOWmisc/generate_authors.py36def iterate_authors_by_chronological_order(branch):
LOWpysnooper/tracer.py56def get_path_and_source_from_frame(frame):
LOWtests/test_mini_toolbox.py9def test_output_capturer_doesnt_swallow_exceptions():
LOWtests/utils.py43 def is_compatible_with_current_python_version(self):
LOWtests/test_pysnooper.py498def test_single_watch_no_comma(normalize):
LOWtests/test_pysnooper.py570def test_long_variable_with_custom_max_variable_length(normalize):
LOWtests/test_pysnooper.py599def test_long_variable_with_infinite_max_variable_length(normalize):
LOWtests/test_pysnooper.py798def test_confusing_decorator_lines(normalize):
LOWtests/test_pysnooper.py899def test_no_overwrite_by_default():
LOWtests/test_pysnooper.py978def test_error_in_overwrite_argument():
LOWtests/test_pysnooper.py1566def test_class_with_decorated_method(normalize):
LOWtests/test_pysnooper.py1615def test_class_with_decorated_method_and_snoop_applied_to_method(normalize):
LOWtests/test_pysnooper.py1756def test_snooping_on_class_does_not_cause_base_class_to_be_snooped(normalize):
LOWtests/test_pysnooper.py1866def test_normalize_thread_info():
LOWtests/test_pysnooper.py1943def test_nested_exception_group():
LOWtests/test_pysnooper.py2082def test_valid_damaged_zipfile():
LOWtests/test_not_implemented.py26def test_rejecting_coroutine_functions():
LOWtests/test_not_implemented.py44def test_rejecting_async_generator_functions():
LOWtests/mini_toolbox/contextlib.py274 def _reraise_with_existing_context(exc_details):
LOWtests/mini_toolbox/contextlib.py290 def _reraise_with_existing_context(exc_details):
LOWtests/mini_toolbox/pathlib.py68def _try_except_fileexistserror(try_func, except_func, else_func=None):
LOWtests/mini_toolbox/pathlib.py90def _try_except_filenotfounderror(try_func, except_func):
LOWtests/mini_toolbox/pathlib.py106def _try_except_permissionerror_iter(try_iter, except_iter):
LOWtests/test_utils/test_regex.py7def test_ansible_filename_pattern():
Cross-Language Confusion3 hits · 15 pts
SeverityFileLineSnippet
HIGHtests/mini_toolbox/contextlib.py336 self.push(_exit_wrapper)
HIGHtests/mini_toolbox/contextlib.py368 self.push(_exit_wrapper)
HIGHtests/mini_toolbox/contextlib.py430 return self.push(callback)
Deep Nesting13 hits · 13 pts
SeverityFileLineSnippet
LOWpysnooper/utils.py11
LOWpysnooper/tracer.py56
LOWpysnooper/tracer.py403
LOWtests/mini_toolbox/pathlib.py106
LOWtests/mini_toolbox/pathlib.py202
LOWtests/mini_toolbox/pathlib.py286
LOWtests/mini_toolbox/pathlib.py331
LOWtests/mini_toolbox/pathlib.py395
LOWtests/mini_toolbox/pathlib.py688
LOWtests/mini_toolbox/pathlib.py733
LOWtests/mini_toolbox/pathlib.py818
LOWtests/mini_toolbox/pathlib.py689
LOWtests/mini_toolbox/pathlib.py734
Dead Code4 hits · 8 pts
SeverityFileLineSnippet
MEDIUMtests/mini_toolbox/pathlib.py676
MEDIUMtests/mini_toolbox/pathlib.py704
MEDIUMtests/mini_toolbox/pathlib.py728
MEDIUMtests/mini_toolbox/pathlib.py750
Over-Commented Block4 hits · 4 pts
SeverityFileLineSnippet
LOWrequirements.txt1#
LOW.travis.yml41 # script: skip
LOWtests/mini_toolbox/contextlib.py101 # was passed to throw(). This prevents a StopIteration
LOWtests/mini_toolbox/contextlib.py241