Repository Analysis

pyqtgraph/pyqtgraph

Fast data visualization and GUI tools for scientific / engineering applications

11.8 Low AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of pyqtgraph/pyqtgraph, a Python project with 4,407 GitHub stars. SynthScan v2.0 examined 88,641 lines of code across 463 source files, recording 759 pattern matches distributed across 16 syntactic categories. The overall adjusted score of 11.8 places this repository in the Low AI signal band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

11.8
Adjusted Score
11.8
Raw Score
100%
Time Factor
2026-08-27
Last Push
4.4K
Stars
Python
Language
88.6K
Lines of Code
463
Files
759
Pattern Hits
2026-08-29
Scan Date
0.09
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

Longitudinal tracking requires multiple scan runs. Once this repository is re-scanned after new commits land, this chart will visualise how the synthetic code signal evolves over time — enabling you to detect whether AI authorship is growing, stabilising, or being actively corrected by human engineers.

No multi-scan history yet — run the scanner again to build trend data.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 0HIGH 41MEDIUM 74LOW 644

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 759 distinct pattern matches across 16 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Unused Imports215 hits · 182 pts
SeverityFileLineSnippetContext
LOWtest.py12CODE
LOWtest.py15CODE
LOWtest.py18CODE
LOWtests/image_testing.py27CODE
LOWtests/__init__.py1CODE
LOWtests/__init__.py1CODE
LOWtests/__init__.py2CODE
LOWtests/__init__.py2CODE
LOWtests/__init__.py2CODE
LOWtests/__init__.py2CODE
LOWtests/__init__.py2CODE
LOWtests/__init__.py2CODE
LOWtests/test_makeARGB.py13CODE
LOWtests/test_qt.py3CODE
LOWtests/test_qpainterpathprivate.py2CODE
LOWtests/graphicsItems/test_ROI.py6CODE
LOWtests/graphicsItems/test_ROI.py6CODE
LOWtests/parametertree/test_utils.py4CODE
LOWtests/parametertree/test_parametertypes.py10CODE
LOWpyqtgraph/Vector.py9CODE
LOWpyqtgraph/reload.py23CODE
LOWpyqtgraph/__init__.py10CODE
LOWpyqtgraph/__init__.py14CODE
LOWpyqtgraph/__init__.py19CODE
LOWpyqtgraph/__init__.py20CODE
LOWpyqtgraph/__init__.py131CODE
LOWpyqtgraph/__init__.py132CODE
LOWpyqtgraph/__init__.py133CODE
LOWpyqtgraph/__init__.py134CODE
LOWpyqtgraph/__init__.py135CODE
LOWpyqtgraph/__init__.py136CODE
LOWpyqtgraph/__init__.py137CODE
LOWpyqtgraph/__init__.py138CODE
LOWpyqtgraph/__init__.py139CODE
LOWpyqtgraph/__init__.py140CODE
LOWpyqtgraph/__init__.py141CODE
LOWpyqtgraph/__init__.py142CODE
LOWpyqtgraph/__init__.py143CODE
LOWpyqtgraph/__init__.py144CODE
LOWpyqtgraph/__init__.py145CODE
LOWpyqtgraph/__init__.py146CODE
LOWpyqtgraph/__init__.py147CODE
LOWpyqtgraph/__init__.py148CODE
LOWpyqtgraph/__init__.py149CODE
LOWpyqtgraph/__init__.py150CODE
LOWpyqtgraph/__init__.py151CODE
LOWpyqtgraph/__init__.py152CODE
LOWpyqtgraph/__init__.py153CODE
LOWpyqtgraph/__init__.py154CODE
LOWpyqtgraph/__init__.py155CODE
LOWpyqtgraph/__init__.py156CODE
LOWpyqtgraph/__init__.py157CODE
LOWpyqtgraph/__init__.py158CODE
LOWpyqtgraph/__init__.py159CODE
LOWpyqtgraph/__init__.py160CODE
LOWpyqtgraph/__init__.py161CODE
LOWpyqtgraph/__init__.py162CODE
LOWpyqtgraph/__init__.py163CODE
LOWpyqtgraph/__init__.py164CODE
LOWpyqtgraph/__init__.py165CODE
155 more matches not shown…
Cross-Language Confusion37 hits · 172 pts
SeverityFileLineSnippetContext
HIGHtests/test_Point.py44 assert point.length() == lengthCODE
HIGHpyqtgraph/Vector.py81 n1 = self.length()CODE
HIGHpyqtgraph/Vector.py82 n2 = a.length()CODE
HIGHpyqtgraph/SRTTransform.py71 'scale': Point(dp2.length(), dp3.length() * sy),CODE
HIGHpyqtgraph/Point.py106 return self / self.length()CODE
HIGHpyqtgraph/graphicsItems/ROI.py933 if lp1.length() == 0 or lp0.length() == 0:CODE
HIGHpyqtgraph/graphicsItems/ROI.py970 if lp1.length() == 0 or lp0.length() == 0:CODE
HIGHpyqtgraph/graphicsItems/ROI.py982 newState['size'][0] = self.state['size'][0] * lp1.length() / lp0.length()CODE
HIGHpyqtgraph/graphicsItems/ROI.py987 newState['size'][1] = self.state['size'][1] * lp1.length() / lp0.length()CODE
HIGHpyqtgraph/graphicsItems/ROI.py1095 px *= 0 if vx is None else vx.length()CODE
HIGHpyqtgraph/graphicsItems/ROI.py1096 py *= 0 if vy is None else vy.length()CODE
HIGHpyqtgraph/graphicsItems/ROI.py1698 l = d.length()STRING
HIGHpyqtgraph/graphicsItems/ROI.py2234 if dh.length() == 0:STRING
HIGHpyqtgraph/graphicsItems/ROI.py2265 rgn = fn.affineSlice(data, shape=(int(d.length()),), vectors=[Point(d.norm())], origin=o, axes=axes, order=orderSTRING
HIGHpyqtgraph/graphicsItems/ROI.py2353 length = vec.length()CODE
HIGHpyqtgraph/graphicsItems/ROI.py2358 pos = 0.5 * (p1 + p2) + pvecT * 40 / pvecT.length()CODE
HIGHpyqtgraph/graphicsItems/PlotCurveItem.py428 px = 0 if px is None else px.length()STRING
HIGHpyqtgraph/graphicsItems/PlotCurveItem.py432 py = 0 if py is None else py.length()STRING
HIGHpyqtgraph/graphicsItems/PColorMeshItem.py461 px = 0 if px is None else px.length()CODE
HIGHpyqtgraph/graphicsItems/PColorMeshItem.py462 py = 0 if py is None else py.length()CODE
HIGHpyqtgraph/graphicsItems/ScatterPlotItem.py915 px = 0 if px is None else px.length()CODE
HIGHpyqtgraph/graphicsItems/ScatterPlotItem.py919 py = 0 if py is None else py.length()CODE
HIGHpyqtgraph/graphicsItems/ScatterPlotItem.py1058 px = 0 if px is None else px.length()CODE
HIGHpyqtgraph/graphicsItems/ScatterPlotItem.py1062 py = 0 if py is None else py.length()CODE
HIGHpyqtgraph/graphicsItems/BarGraphItem.py297 px = 0 if px is None else px.length()CODE
HIGHpyqtgraph/graphicsItems/BarGraphItem.py298 py = 0 if py is None else py.length()CODE
HIGHpyqtgraph/graphicsItems/BoxplotItem.py230 px = 0 if px is None else px.length()CODE
HIGHpyqtgraph/graphicsItems/BoxplotItem.py231 py = 0 if py is None else py.length()CODE
HIGHpyqtgraph/graphicsItems/GraphicsItem.py247 if viewDir.length() == 0:CODE
HIGHpyqtgraph/graphicsItems/GraphicsItem.py280 return orthoV.length()CODE
HIGHpyqtgraph/graphicsItems/GraphicsItem.py281 return normV.length()CODE
HIGHpyqtgraph/graphicsItems/ViewBox/ViewBox.py1291 self._viewPixelSizeCache = (px.length(), py.length())CODE
HIGHpyqtgraph/examples/fractal.py52 l1 = v1.length()CODE
HIGHpyqtgraph/examples/fractal.py59 s = v2.length() / l1CODE
HIGHpyqtgraph/examples/jupyter_console_example.py68 kernel.shell.push(dict(np=np, pw=self.plot_widget))CODE
HIGHpyqtgraph/examples/relativity/relativity.py476 if g == 0: ## no acceleration, path is linear (and hyperbola is undefined)CODE
HIGHpyqtgraph/opengl/GLViewWidget.py399 dist = cVec.length() ## distance from camera to centerCODE
Deep Nesting146 hits · 146 pts
SeverityFileLineSnippetContext
LOWtests/makeARGB_test_data.py4235CODE
LOWtests/test_functions.py134CODE
LOWtests/test_stability.py51CODE
LOWtests/graphicsItems/test_DateAxisItem.py190CODE
LOWpyqtgraph/functions.py319CODE
LOWpyqtgraph/functions.py390CODE
LOWpyqtgraph/functions.py697CODE
LOWpyqtgraph/functions.py1368CODE
LOWpyqtgraph/functions.py1583CODE
LOWpyqtgraph/colormap.py13CODE
LOWpyqtgraph/colormap.py92CODE
LOWpyqtgraph/colormap.py142CODE
LOWpyqtgraph/colormap.py257CODE
LOWpyqtgraph/colormap.py546CODE
LOWpyqtgraph/colormap.py741CODE
LOWpyqtgraph/functions_qimage.py222CODE
LOWpyqtgraph/Vector.py15CODE
LOWpyqtgraph/algorithms.py18CODE
LOWpyqtgraph/algorithms.py712CODE
LOWpyqtgraph/WidgetGroup.py128CODE
LOWpyqtgraph/SRTTransform3D.py15CODE
LOWpyqtgraph/reload.py110CODE
LOWpyqtgraph/reload.py202CODE
LOWpyqtgraph/reload.py296CODE
LOWpyqtgraph/configfile.py121CODE
LOWpyqtgraph/__init__.py94CODE
LOWpyqtgraph/SRTTransform.py14CODE
LOWpyqtgraph/Point.py17CODE
LOWpyqtgraph/debug.py189CODE
LOWpyqtgraph/debug.py266CODE
LOWpyqtgraph/debug.py293CODE
LOWpyqtgraph/debug.py347CODE
LOWpyqtgraph/debug.py950CODE
LOWpyqtgraph/debug.py1072CODE
LOWpyqtgraph/debug.py1129CODE
LOWpyqtgraph/debug.py1182CODE
LOWpyqtgraph/imageview/ImageView.py255CODE
LOWpyqtgraph/imageview/ImageView.py507CODE
LOWpyqtgraph/imageview/ImageView.py551CODE
LOWpyqtgraph/flowchart/Terminal.py232CODE
LOWpyqtgraph/flowchart/Terminal.py405CODE
LOWpyqtgraph/flowchart/Flowchart.py247CODE
LOWpyqtgraph/flowchart/Flowchart.py322CODE
LOWpyqtgraph/flowchart/Flowchart.py369CODE
LOWpyqtgraph/flowchart/library/functions.py205CODE
LOWpyqtgraph/flowchart/library/Display.py46CODE
LOWpyqtgraph/flowchart/library/Display.py136CODE
LOWpyqtgraph/flowchart/library/common.py15CODE
LOWpyqtgraph/multiprocess/parallelizer.py121CODE
LOWpyqtgraph/multiprocess/parallelizer.py213CODE
LOWpyqtgraph/multiprocess/remoteproxy.py168CODE
LOWpyqtgraph/multiprocess/remoteproxy.py490CODE
LOWpyqtgraph/multiprocess/processes.py515CODE
LOWpyqtgraph/dockarea/DockArea.py265CODE
LOWpyqtgraph/dockarea/DockDrop.py37CODE
LOWpyqtgraph/dockarea/DockDrop.py103CODE
LOWpyqtgraph/util/cprint.py53CODE
LOWpyqtgraph/util/garbage_collector.py30CODE
LOWpyqtgraph/util/mutex.py41CODE
LOWpyqtgraph/exporters/Matplotlib.py65CODE
86 more matches not shown…
Modern Structural Boilerplate115 hits · 115 pts
SeverityFileLineSnippetContext
LOWpyqtgraph/functions.py24__all__ = [CODE
LOWpyqtgraph/colormap.py9__all__ = ['ColorMap']CODE
LOWpyqtgraph/algorithms.py4__all__ = ['isocurve', 'isosurface', 'pseudoScatter', 'toposort']CODE
LOWpyqtgraph/WidgetGroup.py15__all__ = ['WidgetGroup']CODE
LOWpyqtgraph/SignalProxy.py8__all__ = ['SignalProxy']CODE
LOWpyqtgraph/ThreadsafeTimer.py3__all__ = ['ThreadsafeTimer']CODE
LOWpyqtgraph/imageview/__init__.py8__all__ = ['ImageView']CODE
LOWpyqtgraph/flowchart/Terminal.py1__all__ = ["Terminal", "TerminalGraphicsItem"]CODE
LOWpyqtgraph/flowchart/Node.py1__all__ = ["Node", "NodeGraphicsItem"]CODE
LOWpyqtgraph/flowchart/library/common.py1__all__ = ["CtrlNode", "PlottingCtrlNode"]CODE
LOWpyqtgraph/multiprocess/processes.py21__all__ = ['Process', 'QtProcess', 'ForkedProcess', 'ClosedError', 'NoResultError']CODE
LOWpyqtgraph/dockarea/Container.py1__all__ = ["Container", "HContainer", "VContainer", "TContainer"]CODE
LOWpyqtgraph/dockarea/DockDrop.py1__all__ = ["DockDrop"]CODE
LOWpyqtgraph/exporters/Matplotlib.py6__all__ = ['MatplotlibExporter']CODE
LOWpyqtgraph/exporters/CSVExporter.py13__all__ = ['CSVExporter']CODE
LOWpyqtgraph/exporters/SVGExporter.py1__all__ = ['SVGExporter']CODE
LOWpyqtgraph/exporters/HDF5Exporter.py15__all__ = ["HDF5Exporter"]CODE
LOWpyqtgraph/exporters/PrintExporter.py7__all__ = ['PrintExporter']CODE
LOWpyqtgraph/exporters/ImageExporter.py6__all__ = ['ImageExporter']CODE
LOWpyqtgraph/GraphicsScene/GraphicsScene.py14__all__ = ['GraphicsScene']CODE
LOWpyqtgraph/GraphicsScene/mouseEvents.py1__all__ = ["MouseDragEvent", "MouseClickEvent", "HoverEvent"]CODE
LOWpyqtgraph/graphicsItems/GraphicsLayout.py10__all__ = ['GraphicsLayout']CODE
LOWpyqtgraph/graphicsItems/GraphItem.py9__all__ = ['GraphItem']CODE
LOWpyqtgraph/graphicsItems/InfiniteLine.py13__all__ = ['InfiniteLine', 'InfLineLabel']CODE
LOWpyqtgraph/graphicsItems/HistogramLUTItem.py6__all__ = ['HistogramLUTItem']CODE
LOWpyqtgraph/graphicsItems/TextItem.py8__all__ = ['TextItem']CODE
LOWpyqtgraph/graphicsItems/GradientLegend.py5__all__ = ['GradientLegend']CODE
LOWpyqtgraph/graphicsItems/ROI.py29__all__ = [CODE
LOWpyqtgraph/graphicsItems/GridItem.py9__all__ = ['GridItem']CODE
LOWpyqtgraph/graphicsItems/ArrowItem.py6__all__ = ['ArrowItem']CODE
LOWpyqtgraph/graphicsItems/DateAxisItem.py10__all__ = ['DateAxisItem']CODE
LOWpyqtgraph/graphicsItems/LinearRegionItem.py7__all__ = ['LinearRegionItem']CODE
LOWpyqtgraph/graphicsItems/ScaleBar.py9__all__ = ['ScaleBar']CODE
LOWpyqtgraph/graphicsItems/LabelItem.py7__all__ = ['LabelItem']CODE
LOWpyqtgraph/graphicsItems/LegendItem.py14__all__ = ['LegendItem', 'ItemSample']CODE
LOWpyqtgraph/graphicsItems/PlotCurveItem.py15__all__ = ['PlotCurveItem']CODE
LOWpyqtgraph/graphicsItems/ColorBarItem.py13__all__ = ['ColorBarItem']CODE
LOWpyqtgraph/graphicsItems/ItemGroup.py1__all__ = ['ItemGroup']CODE
LOWpyqtgraph/graphicsItems/GraphicsWidget.py6__all__ = ['GraphicsWidget']CODE
LOWpyqtgraph/graphicsItems/VTickGroup.py5__all__ = ['VTickGroup']CODE
LOWpyqtgraph/graphicsItems/GraphicsObject.py1__all__ = ['GraphicsObject']CODE
LOWpyqtgraph/graphicsItems/IsocurveItem.py6__all__ = ['IsocurveItem']CODE
LOWpyqtgraph/graphicsItems/ImageItem.py21__all__ = ['ImageItem']CODE
LOWpyqtgraph/graphicsItems/NonUniformImage.py9__all__ = ['NonUniformImage']CODE
LOWpyqtgraph/graphicsItems/AxisItem.py14__all__ = ['AxisItem']CODE
LOWpyqtgraph/graphicsItems/PColorMeshItem.py13__all__ = ['PColorMeshItem']CODE
LOWpyqtgraph/graphicsItems/ScatterPlotItem.py15__all__ = ['ScatterPlotItem', 'SpotItem']CODE
LOWpyqtgraph/graphicsItems/GradientPresets.py1__all__ = ['Gradients']CODE
LOWpyqtgraph/graphicsItems/ButtonItem.py4__all__ = ['ButtonItem']CODE
LOWpyqtgraph/graphicsItems/PlotDataItem.py17__all__ = ['PlotDataItem']CODE
LOWpyqtgraph/graphicsItems/GraphicsWidgetAnchor.py3__all__ = ['GraphicsWidgetAnchor']CODE
LOWpyqtgraph/graphicsItems/BarGraphItem.py9__all__ = ['BarGraphItem']CODE
LOWpyqtgraph/graphicsItems/FillBetweenItem.py8__all__ = ['FillBetweenItem']CODE
LOWpyqtgraph/graphicsItems/ErrorBarItem.py6__all__ = ['ErrorBarItem']CODE
LOWpyqtgraph/graphicsItems/BoxplotItem.py10__all__ = ['BoxplotItem']CODE
LOWpyqtgraph/graphicsItems/CurvePoint.py9__all__ = ['CurvePoint', 'CurveArrow']CODE
LOWpyqtgraph/graphicsItems/GradientEditorItem.py17__all__ = ['TickSliderItem', 'GradientEditorItem', 'addGradientListToDocstring']CODE
LOWpyqtgraph/graphicsItems/TargetItem.py13__all__ = ['TargetItem', 'TargetLabel']CODE
LOWpyqtgraph/graphicsItems/UIGraphicsItem.py4__all__ = ['UIGraphicsItem']CODE
LOWpyqtgraph/graphicsItems/GraphicsItem.py1__all__ = ['GraphicsItem']CODE
55 more matches not shown…
Decorative Section Separators32 hits · 110 pts
SeverityFileLineSnippetContext
MEDIUMtests/graphicsItems/test_LegendItem.py25 # ----------------------------------------------------COMMENT
MEDIUMtests/graphicsItems/test_LegendItem.py33 # ----------------------------------------------------COMMENT
MEDIUMtests/graphicsItems/test_LegendItem.py41 # ----------------------------------------------------COMMENT
MEDIUMtests/graphicsItems/test_LegendItem.py49 # ----------------------------------------------------COMMENT
MEDIUMtests/graphicsItems/test_LegendItem.py57 # ----------------------------------------------------COMMENT
MEDIUMtests/graphicsItems/test_LegendItem.py88 # ----------------------------------------------------COMMENT
MEDIUMtests/parametertree/test_parametertypes.py301# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/parametertree/test_parametertypes.py309# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/widgets/test_graphics_view.py21 # --------------------------------------COMMENT
MEDIUMtests/widgets/test_graphics_view.py32 # --------------------------------------COMMENT
MEDIUMtests/widgets/test_graphics_view.py38 # --------------------------------------COMMENT
MEDIUMtests/widgets/test_graphics_view.py48 # --------------------------------------COMMENT
MEDIUMtests/widgets/test_graphics_view.py57 # --------------------------------------COMMENT
MEDIUMtests/widgets/test_graphics_view.py74 # --------------------------------------COMMENT
MEDIUMpyqtgraph/algorithms.py792 # B ──┬─────> C <── DSTRING
MEDIUMpyqtgraph/parametertree/ParameterItem.py288 # ── Ctrl button ───────────────────────────────────────────────────────────COMMENT
MEDIUMpyqtgraph/parametertree/ParameterItem.py340 # ── Value ─────────────────────────────────────────────────────────────COMMENT
MEDIUMpyqtgraph/parametertree/ParameterItem.py361 # ── State ──────────────────────────────────────────────────────────────COMMENT
MEDIUMpyqtgraph/parametertree/ParameterItem.py389 # ── Rename / Remove / Context ───────────────────────────────────────────COMMENT
MEDIUMpyqtgraph/parametertree/ParameterItem.py457 # ── Standard item methods ─────────────────────────────────────────────────COMMENT
MEDIUMpyqtgraph/parametertree/utils.py66# ---------------------------------------------------------------------------COMMENT
MEDIUMpyqtgraph/parametertree/utils.py68# ---------------------------------------------------------------------------COMMENT
MEDIUMpyqtgraph/parametertree/utils.py92# ---------------------------------------------------------------------------COMMENT
MEDIUMpyqtgraph/parametertree/utils.py94# ---------------------------------------------------------------------------COMMENT
MEDIUMpyqtgraph/parametertree/utils.py135# ---------------------------------------------------------------------------COMMENT
MEDIUMpyqtgraph/parametertree/utils.py137# ---------------------------------------------------------------------------COMMENT
MEDIUMpyqtgraph/parametertree/utils.py210# ---------------------------------------------------------------------------COMMENT
MEDIUMpyqtgraph/parametertree/utils.py212# ---------------------------------------------------------------------------COMMENT
MEDIUMpyqtgraph/parametertree/iojson.py72# ---------------------------------------------------------------------------COMMENT
MEDIUMpyqtgraph/parametertree/iojson.py74# ---------------------------------------------------------------------------COMMENT
MEDIUMpyqtgraph/parametertree/iojson.py151# ---------------------------------------------------------------------------COMMENT
MEDIUMpyqtgraph/parametertree/iojson.py153# ---------------------------------------------------------------------------COMMENT
Self-Referential Comments28 hits · 89 pts
SeverityFileLineSnippetContext
MEDIUMpyqtgraph/exporters/SVGExporter.py146 """This function is intended to work around some issues with Qt's SVG generatorSTRING
MEDIUMpyqtgraph/graphicsItems/ImageItem.py974 # This method is also used when automatically computing levels.COMMENT
MEDIUMpyqtgraph/graphicsItems/PlotItem/PlotItem.py547 ### Create a new curve if neededCOMMENT
MEDIUMpyqtgraph/examples/GraphItem.py30## Define the set of connections in the graphCOMMENT
MEDIUMpyqtgraph/examples/GraphItem.py40## Define the symbol to use for each node (this is optional)COMMENT
MEDIUMpyqtgraph/examples/GraphItem.py43## Define the line style for each connection (this is optional)COMMENT
MEDIUMpyqtgraph/examples/InfiniteLine.py17# Create a plot with some random dataCOMMENT
MEDIUMpyqtgraph/examples/GLSurfacePlot.py20## Create a GL View widget to display dataCOMMENT
MEDIUMpyqtgraph/examples/RemoteSpeedTest.py52## Create a PlotItem in the remote process that will be displayed locallyCOMMENT
MEDIUMpyqtgraph/examples/DateAxisItem.py15# Create a plot with a date-time axisCOMMENT
MEDIUMpyqtgraph/examples/ROItypes.py87## Create a variety of different ROI typesCOMMENT
MEDIUMpyqtgraph/examples/RemoteGraphicsView.py13## Create the widgetCOMMENT
MEDIUMpyqtgraph/examples/designerExample.py18## Define main window class from templateCOMMENT
MEDIUMpyqtgraph/examples/designerExample.py28 # Create the main windowCOMMENT
MEDIUMpyqtgraph/examples/Flowchart.py21## Create main window with grid layoutCOMMENT
MEDIUMpyqtgraph/examples/PlotWidget.py29## Create an empty plot curve to be filled later, set its penCOMMENT
MEDIUMpyqtgraph/examples/FlowchartCustomNode.py17## Create main window with a grid layout insideCOMMENT
MEDIUMpyqtgraph/examples/FlowchartCustomNode.py25## Create an empty flowchart with a single input and outputCOMMENT
MEDIUMpyqtgraph/examples/FlowchartCustomNode.py97 ## Define the input / output terminals available on this nodeCOMMENT
MEDIUMpyqtgraph/examples/colorMapsLinearized.py22# Create a gray ramp for demonstrating the idea:COMMENT
MEDIUMpyqtgraph/examples/colorMapsLinearized.py32# Create a rainbow scale in HSL color space:COMMENT
MEDIUMpyqtgraph/examples/CustomGraphItem.py98## Define the set of connections in the graphCOMMENT
MEDIUMpyqtgraph/examples/CustomGraphItem.py108## Define the symbol to use for each node (this is optional)COMMENT
MEDIUMpyqtgraph/examples/CustomGraphItem.py111## Define the line style for each connection (this is optional)COMMENT
MEDIUMpyqtgraph/examples/GLIsosurface.py22## Define a scalar field from which we will generate an isosurfaceCOMMENT
MEDIUMpyqtgraph/examples/customGraphicsItem.py10## Create a subclass of GraphicsObject.COMMENT
MEDIUMpyqtgraph/parametertree/Parameter.py776 """This method is called when the parameter's parent has changed.STRING
MEDIUMdoc/source/conf.py5# This file is execfile()d with the current directory set to its containing dir.COMMENT
Hyper-Verbose Identifiers70 hits · 72 pts
SeverityFileLineSnippetContext
LOWtests/test_signalproxy.py53def test_signal_proxy_disconnect_slot(qapp):CODE
LOWtests/test_signalproxy.py77def test_signal_proxy_no_slot_start(qapp):CODE
LOWtests/test_signalproxy.py106def test_signal_proxy_slot_block(qapp):CODE
LOWtests/test_configparser.py36def test_duplicate_keys_error(tmpdir):CODE
LOWtests/test_configparser.py54def test_line_numbers_account_for_comments_and_blanks(tmpdir):CODE
LOWtests/test_configparser.py74def test_comment_indentation_is_ignored(tmpdir):CODE
LOWtests/makeARGB_test_data.py4235def _do_something_for_every_combo(func):CODE
LOWtests/makeARGB_test_data.py4259 def write_expectation_to_file(data, key, levels, lut, scale, use_rgba):CODE
LOWtests/test_functions.py441def test_ndarray_from_qpolygonf():CODE
LOWtests/test_functions.py515def test_signal_block_unconnected():CODE
LOWtests/test_qpainterpathprivate.py8def test_qpainterpathprivate_empty():CODE
LOWtests/test_qpainterpathprivate.py24def test_qpainterpathprivate_read():CODE
LOWtests/test_qpainterpathprivate.py40def test_qpainterpathprivate_write():CODE
LOWtests/test_qmenu_leak_workaround.py5def test_qmenu_leak_workaround():CODE
LOWtests/imageview/test_imageview.py43def test_init_with_mode_and_imageitem():CODE
LOWtests/flowchart/test_flowchart.py8def test_flowchart_ctrl_widget_chart_widget_method():CODE
LOWtests/dockarea/test_dockarea.py184def test_restoring_fails_silently_if_only_one_dock_in_container():CODE
LOWtests/dockarea/test_dockarea.py224def test_floating_and_closed_before_save_and_restore_state():CODE
LOWtests/dockarea/test_dockarea.py238def test_floating_and_redock_by_dragging_back_before_save_and_restore_state():CODE
LOWtests/dockarea/test_dockarea.py251def test_floating_dock_closed_by_restore_state_does_not_error():CODE
LOWtests/exporters/test_svg.py78def test_large_coordinate_curve_export(tmpdir):CODE
LOWtests/graphicsItems/test_PlotDataItem.py211def test_downsampling_with_connect():CODE
LOWtests/graphicsItems/test_LinearRegionItem.py23def test_clip_to_plot_data_item(orientation):CODE
LOWtests/graphicsItems/test_LinearRegionItem.py71def test_clip_to_item_in_other_vb():CODE
LOWtests/graphicsItems/test_LinearRegionItem.py102def test_clip_item_override_init_bounds():CODE
LOWtests/graphicsItems/test_DateAxisItem.py73def reset_zoom_levels_utc_offsets():CODE
LOWtests/graphicsItems/test_DateAxisItem.py93def test_preferred_utc_offset_respects_chosen_offset():CODE
LOWtests/graphicsItems/test_DateAxisItem.py99def test_preferred_utc_offset_does_not_break_with_big_timestamps():CODE
LOWtests/graphicsItems/test_DateAxisItem.py109def test_utc_offset_works_with_float_timestamp():CODE
LOWtests/graphicsItems/test_DateAxisItem.py190def test_maps_tick_values_to_local_times(CODE
LOWtests/graphicsItems/test_DateAxisItem.py225def test_maps_hour_ticks_to_local_times_when_skip_greater_than_one(timeZone, dateAxis):CODE
LOWtests/graphicsItems/test_DateAxisItem.py249def test_custom_utc_offset_works(zoomLevel, expectedHourTickStrings, dateAxis):CODE
LOWtests/graphicsItems/PlotItem/test_PlotItem.py113def test_plotitem_menu_initialize():CODE
LOWtests/graphicsItems/ViewBox/test_ViewBoxZoom.py170def test_zoom_ratio_with_limits_out_of_range():CODE
LOWtests/parametertree/test_Parameter.py21def test_parameter_hasdefault():CODE
LOWtests/parametertree/test_Parameter.py63def test_parameter_defaults_and_pristineness():CODE
LOWtests/parametertree/test_Parameter.py425def test_rm_without_clear_cache():CODE
LOWtests/parametertree/test_Parameter.py448def test_decorate_already_interactive():CODE
LOWtests/parametertree/test_Parameter.py458def test_update_non_param_kwarg():CODE
LOWtests/parametertree/test_Parameter.py566def test_interact_ignore_none_child():CODE
LOWtests/parametertree/test_Parameter.py583def test_interact_existing_parent():CODE
LOWtests/parametertree/test_parametertypes.py41def test_action_parameter_value_callable_activates(qtbot):CODE
LOWtests/parametertree/test_parametertypes.py51def test_action_parameter_value_callable_replacement(qtbot):CODE
LOWtests/parametertree/test_parametertypes.py76def test_action_parameter_value_callable_button_click(qtbot):CODE
LOWtests/parametertree/test_parametertypes.py207def test_set_to_default_updates_reset_action():CODE
LOWtests/parametertree/test_parametertypes.py257def test_checklist_check_and_clear_all(limits, value):CODE
LOWtests/parametertree/test_parametertypes.py292def test_recreate_from_savestate():CODE
LOWtests/parametertree/test_parametertypes.py342def test_json_file_round_trip(example_params, tmp_path):CODE
LOWtests/parametertree/test_parametertypes.py355def test_json_tuple_preservation():CODE
LOWtests/parametertree/test_parametertypes.py374def test_json_color_parameter():CODE
LOWtests/parametertree/test_parametertypes.py411def test_json_restore_preserves_signals(example_params):CODE
LOWtests/parametertree/test_parametertypes.py428def test_json_restore_from_file(example_params, tmp_path):CODE
LOWtests/parametertree/test_parametertypes.py442def test_json_file_no_overwrite(example_params, tmp_path):CODE
LOWtests/parametertree/test_parametertypes.py452def test_json_accessible_from_package():CODE
LOWtests/widgets/test_busycursor.py5def test_nested_busy_cursors_clear_after_all_exit():CODE
LOWtests/widgets/test_graphics_view.py6def test_basics_graphics_view():CODE
LOWtests/widgets/test_spinbox.py125def expect_failure_on_buggy_qt():CODE
LOWtests/widgets/test_joystickbutton.py5def test_mouse_move_before_press_keeps_neutral_state():CODE
LOWtests/widgets/test_matplotlibwidget.py30def test_init_with_qwidget_arguments():CODE
LOWtests/widgets/test_matplotlibwidget.py42def test_init_with_matplotlib_arguments():CODE
10 more matches not shown…
Excessive Try-Catch Wrapping42 hits · 54 pts
SeverityFileLineSnippetContext
LOWtests/image_testing.py157 except Exception:CODE
LOWtests/makeARGB_test_data.py4262 except Exception as e:CODE
MEDIUMtests/makeARGB_test_data.py4259def write_expectation_to_file(data, key, levels, lut, scale, use_rgba):CODE
LOWtests/parametertree/test_parametertypes.py178 except Exception as exc:CODE
LOWpyqtgraph/functions.py762 except Exception:CODE
LOWpyqtgraph/reload.py99 except Exception as exc:CODE
LOWpyqtgraph/reload.py237 except Exception:CODE
MEDIUMpyqtgraph/reload.py238 print("Error updating reference (%s) for class change (%s -> %s)" % (safeStr(ref), safeStr(old), safeStr(newCODE
LOWpyqtgraph/reload.py288 except Exception:CODE
LOWpyqtgraph/reload.py291 except Exception:CODE
MEDIUMpyqtgraph/reload.py285def safeStr(obj):CODE
MEDIUMpyqtgraph/configfile.py89 print(f"Error while reading config file {fname}:")CODE
LOWpyqtgraph/configfile.py171 except Exception as ex:CODE
LOWpyqtgraph/configfile.py186 except Exception as ex:CODE
LOWpyqtgraph/exceptionHandling.py102 except Exception:CODE
LOWpyqtgraph/exceptionHandling.py114 except Exception:CODE
LOWpyqtgraph/exceptionHandling.py124 except Exception:CODE
LOWpyqtgraph/debug.py1235 except Exception:CODE
LOWpyqtgraph/debug.py1241 except Exception:CODE
MEDIUMpyqtgraph/debug.py115def w(*args, **kwargs):CODE
MEDIUMpyqtgraph/flowchart/Flowchart.py306 print("Error processing node %s. Args are: %s" % (str(node), str(args)))CODE
MEDIUMpyqtgraph/flowchart/library/Data.py234 print(f"Error processing node: {self.name()}")CODE
LOWpyqtgraph/multiprocess/parallelizer.py110 except Exception:CODE
MEDIUMpyqtgraph/multiprocess/remoteproxy.py161 print("Error in process %s" % self.name)CODE
MEDIUMpyqtgraph/multiprocess/processes.py359 print("Error occurred in forked event loop:")CODE
LOWpyqtgraph/graphicsItems/TargetItem.py165 except Exception:STRING
LOWpyqtgraph/examples/MultiDataPlot.py54 except Exception as e:CODE
LOWpyqtgraph/examples/console_exception_inspection.py39 except Exception:CODE
LOWpyqtgraph/examples/console_exception_inspection.py49 except Exception as exc:CODE
LOWpyqtgraph/examples/console_exception_inspection.py59 except Exception:CODE
LOWpyqtgraph/examples/console_exception_inspection.py83 except Exception:CODE
LOWpyqtgraph/parametertree/ParameterItem.py468 except Exception:CODE
LOWpyqtgraph/widgets/DiffTreeWidget.py159 except Exception:CODE
LOWpyqtgraph/widgets/SpinBox.py574 except Exception:CODE
LOWpyqtgraph/widgets/SpinBox.py592 except Exception:CODE
LOWpyqtgraph/widgets/SpinBox.py606 except Exception:CODE
MEDIUMpyqtgraph/widgets/SpinBox.py411def delayedChange(self):CODE
LOWpyqtgraph/console/Console.py67 except Exception as exc:CODE
LOWpyqtgraph/console/exception_widget.py192 except Exception as exc:CODE
LOWpyqtgraph/console/repl_widget.py222 except Exception as e:CODE
LOWpyqtgraph/console/repl_widget.py241 except Exception as exc:CODE
MEDIUMpyqtgraph/opengl/GLViewWidget.py275 print("Error while drawing item %s." % str(item))CODE
Over-Commented Block42 hits · 42 pts
SeverityFileLineSnippetContext
LOWtests/test_makeARGB.py221def test_makeARGB_with_human_readable_code():COMMENT
LOWpyqtgraph/algorithms.py1import numpy as npCOMMENT
LOWpyqtgraph/algorithms.py601 COMMENT
LOWpyqtgraph/units.py1# Very simple unit support:COMMENT
LOWpyqtgraph/debug.py201 prefix = " "*(8-maxLen)COMMENT
LOWpyqtgraph/flowchart/library/Display.py281 COMMENT
LOWpyqtgraph/multiprocess/parallelizer.py281#class Parallelizer:COMMENT
LOWpyqtgraph/multiprocess/parallelizer.py301 #self.replies.append((self.i, data))COMMENT
LOWpyqtgraph/multiprocess/parallelizer.py321 #self.par.i = iCOMMENT
LOWpyqtgraph/multiprocess/remoteproxy.py141 #if not poll:COMMENT
LOWpyqtgraph/multiprocess/processes.py121 self._stdoutForwarder = FileForwarder(self.proc.stdout, "stdout", procDebug)COMMENT
LOWpyqtgraph/exporters/SVGExporter.py441 nc = fn.transformCoordinates(tr, np.array([[float(x),float(y)]]), transpose=True)COMMENT
LOWpyqtgraph/graphicsItems/LabelItem.py141 #p.drawRect(self.rect())COMMENT
LOWpyqtgraph/graphicsItems/PlotCurveItem.py461COMMENT
LOWpyqtgraph/graphicsItems/GraphicsWidget.py41COMMENT
LOWpyqtgraph/graphicsItems/__init__.py1### just import everything from sub-modulesCOMMENT
LOWpyqtgraph/graphicsItems/PColorMeshItem.py521COMMENT
LOWpyqtgraph/graphicsItems/PlotDataItem.py1561 else:COMMENT
LOWpyqtgraph/graphicsItems/GradientEditorItem.py221 def setLength(self, newLen):COMMENT
LOWpyqtgraph/graphicsItems/GradientEditorItem.py261 pos.setX(min(max(pos.x(), 0), self.length))COMMENT
LOWpyqtgraph/graphicsItems/GradientEditorItem.py961COMMENT
LOWpyqtgraph/graphicsItems/GraphicsItem.py221 ## Then we map the origin (0,0) and direction (0,1) and get:COMMENT
LOWpyqtgraph/graphicsItems/ViewBox/ViewBox.py1561 range[1] = tr[1]COMMENT
LOWpyqtgraph/Qt/internals.py81 #COMMENT
LOWpyqtgraph/Qt/OpenGLHelpers.py21COMMENT
LOWpyqtgraph/examples/SpinBox.py81 spin.sigValueChanged.connect(valueChanged)COMMENT
LOWpyqtgraph/examples/SpinBox.py101 #t3 = QtWidgets.QLineEdit()COMMENT
LOWpyqtgraph/examples/SpinBox.py121#def test(n=100):COMMENT
LOWpyqtgraph/examples/GLshaders.py61 #th = np.arctan2(z, (x**2+y**2)**0.5)COMMENT
LOWpyqtgraph/examples/GLshaders.py81#md = gl.MeshData.MeshData(vertexes=verts)COMMENT
LOWpyqtgraph/examples/relativity/relativity.py741 #self.sim = simCOMMENT
LOWpyqtgraph/examples/verlet_chain/relax.py41 COMMENT
LOWpyqtgraph/parametertree/SystemSolver.py361 # 2: s=1/60, a=4.0, iso=100 ..and so on..COMMENT
LOWpyqtgraph/widgets/VerticalLabel.py1import warningsCOMMENT
LOWpyqtgraph/widgets/LayoutWidget.py81 #for i in range(self.layout.count()):COMMENT
LOWpyqtgraph/opengl/MeshData.py361 self._vertexFaces = [[] for i in range(len(self.vertexes()))]COMMENT
LOWdoc/source/conf.py1#COMMENT
LOWdoc/source/conf.py141# |version| and |release|, also used in various other places throughout theCOMMENT
LOWdoc/source/conf.py161exclude_patterns = []COMMENT
LOWdoc/source/conf.py261# Add any paths that contain custom themes here, relative to this directory.COMMENT
LOWdoc/source/conf.py441# If false, no index is generated.COMMENT
LOWdoc/source/conf.py481]COMMENT
AI Structural Patterns16 hits · 16 pts
SeverityFileLineSnippetContext
LOWtests/parametertree/test_Parameter.py176CODE
LOWpyqtgraph/functions.py638CODE
LOWpyqtgraph/imageview/ImageView.py83CODE
LOWpyqtgraph/imageview/ImageView.py255CODE
LOWpyqtgraph/flowchart/library/Filters.py69CODE
LOWpyqtgraph/multiprocess/processes.py50CODE
LOWpyqtgraph/graphicsItems/InfiniteLine.py37CODE
LOWpyqtgraph/graphicsItems/TextItem.py14CODE
LOWpyqtgraph/graphicsItems/ROI.py144CODE
LOWpyqtgraph/graphicsItems/LinearRegionItem.py36CODE
LOWpyqtgraph/graphicsItems/LegendItem.py35CODE
LOWpyqtgraph/graphicsItems/ColorBarItem.py43CODE
LOWpyqtgraph/graphicsItems/TargetItem.py25CODE
LOWpyqtgraph/graphicsItems/ViewBox/ViewBox.py111CODE
LOWpyqtgraph/examples/relativity/relativity.py289CODE
LOWpyqtgraph/widgets/ProgressDialog.py26CODE
Cross-File Repetition3 hits · 15 pts
SeverityFileLineSnippetContext
HIGHpyqtgraph/opengl/items/GLGridItem.py0set the size of the box (in its local coordinate system; this does not affect the transform) arguments can be x,y,z or sSTRING
HIGHpyqtgraph/opengl/items/GLAxisItem.py0set the size of the box (in its local coordinate system; this does not affect the transform) arguments can be x,y,z or sSTRING
HIGHpyqtgraph/opengl/items/GLBoxItem.py0set the size of the box (in its local coordinate system; this does not affect the transform) arguments can be x,y,z or sSTRING
AI Slop Vocabulary7 hits · 14 pts
SeverityFileLineSnippetContext
LOWpyqtgraph/WidgetGroup.py253 # then just call the method directly. Otherwise, pass in the widget as the first argCOMMENT
LOWpyqtgraph/WidgetGroup.py276 # then just call the method directly. Otherwise, pass in the widget as the first argCOMMENT
LOWpyqtgraph/graphicsItems/HistogramLUTItem.py555 # user should just call setColorMap().COMMENT
LOWpyqtgraph/graphicsItems/PlotItem/PlotItem.py430 # prevent people getting confused if they just call showGrid()COMMENT
MEDIUMpyqtgraph/examples/NonUniformImage.py65# elevate the grid linesCOMMENT
MEDIUMpyqtgraph/parametertree/interactive.py554 # *args is also difficult to handle for key-value paradigmCOMMENT
LOWpyqtgraph/widgets/GraphicsView.py224 ## easier to just return self.range ?COMMENT
Synthetic Comment Markers1 hit · 8 pts
SeverityFileLineSnippetContext
HIGHpyqtgraph/graphicsItems/ROI.py838 ## pos is the new position of the handle in scene coords, as requested by the handle.COMMENT
Slop Phrases2 hits · 4 pts
SeverityFileLineSnippetContext
MEDIUMpyqtgraph/examples/VideoSpeedTest.py115#ui.graphicsView.useOpenGL() ## buggy, but you can try it if you need extra speed.COMMENT
LOWpyqtgraph/parametertree/parameterTypes/checklist.py163 # Also, value calculation will be incorrect until children are added, so make sure to recomputeCOMMENT
Redundant / Tautological Comments2 hits · 2 pts
SeverityFileLineSnippetContext
LOWpyqtgraph/graphicsItems/ImageItem.py783 # Check if downsampling reduced the image size to zero due to inf values.COMMENT
LOWpyqtgraph/widgets/SpinBox.py78 'int': False, ## Set True to force value to be integer. If True, 'step' is rounded to the nearest integer orCODE
Verbosity Indicators1 hit · 0 pts
SeverityFileLineSnippetContext
LOWpyqtgraph/debug.py1052 The purpose of this function is to find dead objects and generate a crashSTRING