Repository Analysis

alicevision/Meshroom

Node-based Visual Programming Toolbox

26.7 Moderate AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of alicevision/Meshroom, a Python project with 12,836 GitHub stars. SynthScan v2.0 examined 38,614 lines of code across 188 source files, recording 465 pattern matches distributed across 18 syntactic categories. The overall adjusted score of 26.7 places this repository in the Moderate 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).

26.7
Adjusted Score
26.7
Raw Score
100%
Time Factor
2026-07-14
Last Push
12.8K
Stars
Python
Language
38.6K
Lines of Code
188
Files
465
Pattern Hits
2026-07-14
Scan Date
0.32
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

This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.

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 12HIGH 48MEDIUM 77LOW 328

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 465 distinct pattern matches across 18 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.

Cross-Language Confusion42 hits · 232 pts
SeverityFileLineSnippetContext
HIGHmeshroom/ui/graph.py1320 self.push(commands.AddEdgeCommand(self._graph, src, dst))CODE
HIGHmeshroom/ui/graph.py1326 self.push(commands.RemoveEdgeCommand(self._graph, edge))CODE
HIGHmeshroom/ui/graph.py1329 self.push(commands.RemoveEdgeCommand(self._graph, edge))CODE
HIGHmeshroom/ui/graph.py1375 self.push(commands.SetAttributeCommand(self._graph, attribute, attribute.getDefaultValue()))CODE
HIGHmeshroom/ui/graph.py1380 self.push(commands.AddAttributeKeyValueCommand(self._graph, attribute, key, value))CODE
HIGHmeshroom/ui/graph.py1385 self.push(commands.AddAttributeKeyValueCommand(self._graph, attribute, key, attribute.getDefaultValue()))CODE
HIGHmeshroom/ui/graph.py1390 self.push(commands.RemoveAttributeKeyCommand(self._graph, attribute, key))CODE
HIGHmeshroom/ui/graph.py1398 self.push(commands.SetObservationCommand(self._graph, shape, key, observation))CODE
HIGHmeshroom/ui/graph.py1403 self.push(commands.SetObservationCommand(self._graph, shape, key, observation))CODE
HIGHmeshroom/ui/graph.py1408 self.push(commands.RemoveObservationCommand(self._graph, shape, key))CODE
HIGHmeshroom/ui/graph.py1413 return self.push(commands.UpgradeNodeCommand(self._graph, node))CODE
HIGHmeshroom/ui/graph.py1438 self.push(commands.ListAttributeAppendCommand(self._graph, attribute, pyValue))CODE
HIGHmeshroom/ui/graph.py1442 self.push(commands.ListAttributeRemoveCommand(self._graph, attribute))CODE
HIGHmeshroom/ui/graph.py1448 self.push(commands.RemoveAnySetAttributeCommand(self._graph, attribute))CODE
HIGHmeshroom/ui/graph.py1454 self.push(commands.RenameAnySetAttributeCommand(self._graph, attribute, name, label))CODE
HIGHmeshroom/ui/graph.py1460 self.push(commands.MoveAnySetAttributeCommand(self._graph, attribute, offset))CODE
HIGHmeshroom/ui/graph.py1493 self.push(commands.RemoveSelectedImagesCommand(self._graph, self.cameraInit, images))CODE
HIGHmeshroom/ui/graph.py1499 self.push(commands.RemoveImagesCommand(self._graph, [self.cameraInit]))CODE
HIGHmeshroom/ui/graph.py1505 self.push(commands.RemoveImagesCommand(self._graph, list(self.cameraInits)))CODE
HIGHmeshroom/ui/graph.py562 localFile = filepath.toString()CODE
HIGHmeshroom/ui/graph.py568 return self.push(commands.ImportProjectCommand(self._graph, localFile, position=position, yOffset=yOffset))CODE
HIGHmeshroom/ui/graph.py998 return self.push(commands.AddNodeCommand(self._graph, nodeType, position=position, **kwargs))CODE
HIGHmeshroom/ui/graph.py1024 return self.push(commands.RenameNodeCommand(self._graph, node, uniqueName))CODE
HIGHmeshroom/ui/graph.py1034 self.push(commands.MoveNodeCommand(self._graph, node, position))CODE
HIGHmeshroom/ui/graph.py1160 self.push(commands.RemoveNodeCommand(self._graph, node))CODE
HIGHmeshroom/ui/graph.py1198 duplicates = self.push(commands.DuplicateNodesCommand(self._graph, nodes))CODE
HIGHmeshroom/ui/graph.py1304 self.push(commands.ConnectAnySetCommand(self._graph, src=dst, anySetAttribute=src))CODE
HIGHmeshroom/ui/graph.py1306 self.push(commands.ConnectAnySetCommand(self._graph, src=src, anySetAttribute=dst))CODE
HIGHmeshroom/ui/graph.py1363 self.push(commands.SetAttributeCommand(self._graph, attribute, value))CODE
HIGHmeshroom/ui/graph.py1642 result = self.push(commands.PasteNodesCommand(self._graph, graphData, pos))CODE
HIGHmeshroom/ui/scene.py499 localFile = url.toLocalFile() or url.toString()CODE
HIGHmeshroom/ui/scene.py864 p = imagePath.toString()CODE
HIGHmeshroom/ui/app.py505 projectFileNorm = projectFile.toString()STRING
HIGHmeshroom/ui/app.py557 projectFileNorm = projectFile.toString()STRING
HIGHmeshroom/ui/app.py607 folderPath = imagesFolder.toString()STRING
HIGHmeshroom/ui/app.py642 folderPath = imagesFolder.toString()STRING
HIGHmeshroom/ui/commands.py72 self.push(command) # takes ownershipCODE
HIGHmeshroom/ui/components/scene3D.py122 z = r2 * 0.5 / p2d.length()CODE
HIGHmeshroom/ui/components/scene3D.py159 A = A/A.length()CODE
HIGHmeshroom/ui/components/scene3D.py160 B = B/B.length()CODE
HIGHmeshroom/ui/components/scene3D.py164 s = v.length()CODE
HIGHmeshroom/ui/components/scene3D.py452 value = screenVector.length()CODE
Hallucination Indicators12 hits · 180 pts
SeverityFileLineSnippetContext
CRITICALtests/test_groupAttributes.py193 nestedPosition.xyz.test.x.inputLink.asLinkExpr() == nestedColor.rgb.test.r.asLinkExpr()CODE
CRITICALtests/test_groupAttributes.py195 nestedPosition.xyz.test.y.inputLink.asLinkExpr() == nestedColor.rgb.test.g.asLinkExpr()CODE
CRITICALtests/test_groupAttributes.py197 nestedPosition.xyz.test.z.inputLink.asLinkExpr() == nestedColor.rgb.test.b.asLinkExpr()CODE
CRITICALtests/test_groupAttributes.py219 nestedPosition.xyz.test.x.inputLink.asLinkExpr() == nestedColor.rgb.test.r.asLinkExpr()CODE
CRITICALtests/test_groupAttributes.py221 nestedPosition.xyz.test.y.inputLink.asLinkExpr() == nestedColor.rgb.test.g.asLinkExpr()CODE
CRITICALtests/test_groupAttributes.py223 nestedPosition.xyz.test.z.inputLink.asLinkExpr() == nestedColor.rgb.test.b.asLinkExpr()CODE
CRITICALtests/test_groupAttributes.py249 nestedPosition.xyz.test.x.inputLink.asLinkExpr() == nestedColor.rgb.test.r.asLinkExpr()CODE
CRITICALtests/test_groupAttributes.py251 nestedPosition.xyz.test.y.inputLink.asLinkExpr() == nestedColor.rgb.test.g.asLinkExpr()CODE
CRITICALtests/test_groupAttributes.py253 nestedPosition.xyz.test.z.inputLink.asLinkExpr() == nestedColor.rgb.test.b.asLinkExpr()CODE
CRITICALtests/test_groupAttributes.py270 nestedPosition.xyz.test.x.inputLink.asLinkExpr() == nestedColor.rgb.test.r.asLinkExpr()CODE
CRITICALtests/test_groupAttributes.py272 nestedPosition.xyz.test.y.inputLink.asLinkExpr() == nestedColor.rgb.test.g.asLinkExpr()CODE
CRITICALtests/test_groupAttributes.py274 nestedPosition.xyz.test.z.inputLink.asLinkExpr() == r.asLinkExpr() == nestedColor.rgb.r.asLinkExpr()CODE
Decorative Section Separators52 hits · 177 pts
SeverityFileLineSnippetContext
MEDIUMCMakeLists.txt29# ==============================================================================COMMENT
MEDIUMCMakeLists.txt33# ==============================================================================COMMENT
MEDIUMsetupInitScriptUnix.py1# ------------------------------------------------------------------------------COMMENT
MEDIUMsetupInitScriptUnix.py9# ------------------------------------------------------------------------------COMMENT
MEDIUMtests/test_anySet_attribute.py23# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_anySet_attribute.py25# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_anySet_attribute.py39# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_anySet_attribute.py41# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_anySet_attribute.py65# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_anySet_attribute.py67# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_anySet_attribute.py192# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_anySet_attribute.py194# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_attributeDescDefaults.py123# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_attributeDescDefaults.py125# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_attributeDescDefaults.py18# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_attributeDescDefaults.py21# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_attributeDescDefaults.py38# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_attributeDescDefaults.py41# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_attributeDescDefaults.py56# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_attributeDescDefaults.py58# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/nodes/test/AllAttributesNodes.py18 # -----------------------------------------------------------------------COMMENT
MEDIUMtests/nodes/test/AllAttributesNodes.py20 # -----------------------------------------------------------------------COMMENT
MEDIUMtests/nodes/test/AllAttributesNodes.py75 # -----------------------------------------------------------------------COMMENT
MEDIUMtests/nodes/test/AllAttributesNodes.py77 # -----------------------------------------------------------------------COMMENT
MEDIUMtests/nodes/test/AllAttributesNodes.py95 # -----------------------------------------------------------------------COMMENT
MEDIUMtests/nodes/test/AllAttributesNodes.py97 # -----------------------------------------------------------------------COMMENT
MEDIUMtests/nodes/test/AllAttributesNodes.py107 # -----------------------------------------------------------------------COMMENT
MEDIUMtests/nodes/test/AllAttributesNodes.py109 # -----------------------------------------------------------------------COMMENT
MEDIUMtests/nodes/test/AllAttributesNodes.py175 # -----------------------------------------------------------------------COMMENT
MEDIUMtests/nodes/test/AllAttributesNodes.py177 # -----------------------------------------------------------------------COMMENT
MEDIUMtests/nodes/test/AllAttributesNodes.py193 # -----------------------------------------------------------------------COMMENT
MEDIUMtests/nodes/test/AllAttributesNodes.py195 # -----------------------------------------------------------------------COMMENT
MEDIUMtests/nodes/test/AllAttributesNodes.py223 # -----------------------------------------------------------------------COMMENT
MEDIUMtests/nodes/test/AllAttributesNodes.py225 # -----------------------------------------------------------------------COMMENT
MEDIUMtests/nodes/test/AllAttributesNodes.py238 # -----------------------------------------------------------------------COMMENT
MEDIUMtests/nodes/test/AllAttributesNodes.py240 # -----------------------------------------------------------------------COMMENT
MEDIUMtests/nodes/test/AllAttributesNodes.py254 # -----------------------------------------------------------------------COMMENT
MEDIUMtests/nodes/test/AllAttributesNodes.py256 # -----------------------------------------------------------------------COMMENT
MEDIUM.github/workflows/nightly.yml14 # ────────────────────────────────────────────────────────────COMMENT
MEDIUM.github/workflows/nightly.yml17 # ────────────────────────────────────────────────────────────COMMENT
MEDIUM.github/workflows/nightly.yml85 # ────────────────────────────────────────────────────────────COMMENT
MEDIUM.github/workflows/nightly.yml91 # ────────────────────────────────────────────────────────────COMMENT
MEDIUM.github/workflows/nightly.yml112 # ── Create the release if it doesn't exist yet ──────────COMMENT
MEDIUM.github/workflows/nightly.yml124 # ── Replace assets ───────────────────────────────────────COMMENT
MEDIUM.github/workflows/nightly.yml147 # ── Update release body ──────────────────────────────────COMMENT
MEDIUM.github/workflows/nightly.yml169 # ── Move the nightly tag to current HEAD ──────COMMENT
MEDIUM.github/workflows/run-tests.yml38 # ── Primary Python environment ───────────────────────────COMMENT
MEDIUM.github/workflows/run-tests.yml51 # ── Lint ─────────────────────────────────────────────────COMMENT
MEDIUM.github/workflows/run-tests.yml59 # ── Tests ────────────────────────────────────────────────COMMENT
MEDIUM.github/workflows/run-tests.yml81 # ── meshroom_compute smoke test (Python 3.9) ─────────────COMMENT
MEDIUMlocalfarm/localFarmBackend.py414 # ======================COMMENT
MEDIUMlocalfarm/localFarmBackend.py416 # ======================COMMENT
Excessive Try-Catch Wrapping90 hits · 100 pts
SeverityFileLineSnippetContext
LOWtests/test_submit.py115 except Exception as e:CODE
LOWtests/test_compute.py642 except Exception:CODE
LOWmeshroom/ui/graph.py683 except Exception as e:CODE
LOWmeshroom/ui/graph.py709 except Exception as e:CODE
LOWmeshroom/ui/graph.py732 except Exception as e:CODE
LOWmeshroom/ui/graph.py759 except Exception as e:CODE
LOWmeshroom/ui/graph.py781 except Exception as e:CODE
LOWmeshroom/ui/graph.py799 except Exception as e:CODE
LOWmeshroom/ui/graph.py817 except Exception as e:CODE
LOWmeshroom/ui/graph.py862 except Exception as e:CODE
LOWmeshroom/ui/scene.py110 except Exception as exc:CODE
LOWmeshroom/ui/scene.py146 except Exception:CODE
LOWmeshroom/ui/scene.py527 except Exception:CODE
LOWmeshroom/ui/scene.py874 except Exception as exc:CODE
LOWmeshroom/ui/scene.py920 except Exception as exc:CODE
LOWmeshroom/ui/scene.py1221 except Exception as err:CODE
LOWmeshroom/ui/utils.py8except Exception:CODE
LOWmeshroom/ui/app.py440 except Exception as err:STRING
LOWmeshroom/ui/commands.py29 except Exception:CODE
LOWmeshroom/ui/commands.py37 except Exception:CODE
LOWmeshroom/ui/commands.py67 except Exception:CODE
LOWmeshroom/ui/commands.py867 except Exception:CODE
LOWmeshroom/ui/commands.py908 except Exception:CODE
LOWmeshroom/ui/components/scriptEditor.py67 except Exception:CODE
LOWmeshroom/ui/components/thumbnail.py262 except Exception as exc:CODE
LOWmeshroom/ui/components/csvData.py78 except Exception as exc:CODE
MEDIUMmeshroom/ui/components/shapes/shapeFile.py197 print(f"Error decoding JSON: {err}")CODE
LOWmeshroom/ui/components/shapes/shapeFile.py198 except Exception as exc:CODE
MEDIUMmeshroom/ui/components/shapes/shapeFile.py199 print(f"Error loading shapes: {exc}")CODE
LOWmeshroom/core/plugins.py538 except Exception as exc:CODE
LOWmeshroom/core/plugins.py781 except Exception as exc:CODE
LOWmeshroom/core/attribute.py358 except Exception as err:CODE
LOWmeshroom/core/attribute.py382 except Exception as exc:CODE
LOWmeshroom/core/attribute.py579 except Exception as exc:CODE
LOWmeshroom/core/evaluation.py50 except Exception:CODE
LOWmeshroom/core/graph.py58 except Exception:CODE
LOWmeshroom/core/graph.py924 except Exception:CODE
LOWmeshroom/core/graph.py1617 except Exception as e:CODE
LOWmeshroom/core/graph.py1806 except Exception:CODE
LOWmeshroom/core/graph.py1907 except Exception as exc:CODE
LOWmeshroom/core/graph.py1956 except Exception as exc:CODE
MEDIUMmeshroom/core/graph.py1090def dfsVisit(self, u, visitor, colors, nodeChildren, longestPathFirst):CODE
LOWmeshroom/core/__init__.py18except Exception:CODE
LOWmeshroom/core/__init__.py98 except Exception as exc:CODE
LOWmeshroom/core/__init__.py140 except Exception as exc:CODE
LOWmeshroom/core/taskManager.py111 except Exception as exc:CODE
LOWmeshroom/core/taskManager.py158 except Exception as exc:CODE
LOWmeshroom/core/taskManager.py174 except Exception as exc:CODE
LOWmeshroom/core/taskManager.py222 except Exception as e:CODE
LOWmeshroom/core/taskManager.py600 except Exception as exc:CODE
LOWmeshroom/core/stats.py86 except Exception as exc:CODE
LOWmeshroom/core/stats.py101 except Exception as exc:CODE
LOWmeshroom/core/stats.py107 except Exception as exc:CODE
LOWmeshroom/core/stats.py112 except Exception as exc:CODE
LOWmeshroom/core/stats.py118 except Exception as exc:CODE
LOWmeshroom/core/stats.py124 except Exception as exc:CODE
LOWmeshroom/core/stats.py132 except Exception as exc:CODE
LOWmeshroom/core/stats.py302 except Exception as exc:CODE
LOWmeshroom/core/stats.py306 except Exception as exc:CODE
LOWmeshroom/core/stats.py310 except Exception as exc:CODE
30 more matches not shown…
Hyper-Verbose Identifiers69 hits · 82 pts
SeverityFileLineSnippetContext
LOWtests/test_compatibility.py237def test_description_conflict():CODE
LOWtests/test_anySet_attribute.py27def test_dynamic_attribute_desc_type():CODE
LOWtests/test_anySet_attribute.py33def test_dynamic_attribute_desc_instance_type():CODE
LOWtests/test_anySet_attribute.py43def test_dynamic_attribute_present_on_node():CODE
LOWtests/test_anySet_attribute.py55def test_dynamic_attribute_validates_any_connection():CODE
LOWtests/test_anySet_attribute.py69def test_add_dynamic_input_creates_sibling_attribute():CODE
LOWtests/test_anySet_attribute.py196def test_dynamic_inputs_serialized_in_todict():CODE
LOWtests/test_anySet_attribute.py95def test_remove_dynamic_input():CODE
LOWtests/test_anySet_attribute.py113def test_anyset_attribute_can_be_restored_with_edges():CODE
LOWtests/test_anySet_attribute.py139def test_rename_anyset_attribute_updates_name_label_and_keeps_edges():CODE
LOWtests/test_anySet_attribute.py157def test_rename_anyset_attribute_rejects_duplicate_name():CODE
LOWtests/test_anySet_attribute.py172def test_move_anyset_attribute_updates_order():CODE
LOWtests/test_anySet_attribute.py234def test_dynamic_inputs_restored_after_load(tmp_path):CODE
LOWtests/test_anySet_attribute.py265def test_moved_anyset_attribute_order_restored_after_load(tmp_path):CODE
LOWtests/test_anySet_attribute.py294def test_anyset_expanded_state_restored_after_load(tmp_path):CODE
LOWtests/test_anySet_attribute.py315def test_legacy_dict_anyset_serialization_still_loads(tmp_path):CODE
LOWtests/test_anySet_attribute.py342def test_legacy_list_anyset_serialization_still_loads(tmp_path):CODE
LOWtests/test_flowAttribute.py42 def test_default_value_is_none(self):CODE
LOWtests/test_flowAttribute.py67 def test_every_node_has_flow_attributes(self):CODE
LOWtests/test_flowAttribute.py97 def test_flow_not_in_regular_attributes(self):CODE
LOWtests/test_flowAttribute.py107 def test_flow_input_not_connected_by_default(self):CODE
LOWtests/test_flowAttribute.py114 def test_flow_attribute_is_default_when_not_connected(self):CODE
LOWtests/test_flowAttribute.py120 def test_connect_flow_attributes(self):CODE
LOWtests/test_flowAttribute.py131 def test_flow_attributes_only_connect_to_flow(self):CODE
LOWtests/test_flowAttribute.py147 def test_flow_serialized_value_is_none_when_not_connected(self):CODE
LOWtests/test_flowAttribute.py154 def test_flow_serialized_value_is_link_when_connected(self):CODE
LOWtests/test_flowAttribute.py166 def test_flow_attribute_is_not_default_when_connected(self):CODE
LOWtests/test_flowAttribute.py180 def test_unconnected_flow_not_in_serialized_internal_inputs(self):CODE
LOWtests/test_flowAttribute.py189 def test_unconnected_flow_not_in_serialized_inputs(self):CODE
LOWtests/test_flowAttribute.py197 def test_connected_flow_in_serialized_internal_inputs(self):CODE
LOWtests/test_flowAttribute.py213 def test_save_and_load_graph_with_flow_connection(self):CODE
LOWtests/test_flowAttribute.py241 def test_save_and_load_graph_no_data_for_unconnected_flow(self):CODE
LOWtests/test_nodes.py487 def test_size_lambda_single_arg(self):CODE
LOWtests/test_nodes.py512 def test_size_static_node_size(self):CODE
LOWtests/test_nodes.py526 def test_size_dynamic_node_size(self):CODE
LOWtests/test_nodes.py551 def test_size_custom_function(self):CODE
LOWtests/test_nodes.py579 def test_size_custom_callable_class(self):CODE
LOWtests/test_attributeLambda.py68 def test_callable_default_value_with_node_param(self):CODE
LOWtests/test_attributeLambda.py77 def test_callable_default_value_with_attr_param(self):CODE
LOWtests/test_attributeLambda.py86 def test_set_value_with_callable(self):CODE
LOWtests/test_attributeLambda.py94 def test_set_value_with_attr_callable(self):CODE
LOWtests/test_attributeLambda.py102 def test_callable_default_reflects_current_state(self):CODE
LOWtests/test_attributeLambda.py114 def test_reset_to_default_with_callable(self):CODE
LOWtests/test_attributeDescDefaults.py93def test_param_no_value_is_dynamic(attrDesc):CODE
LOWtests/test_attributeDescDefaults.py98def test_label_auto_generated_from_camel_case():CODE
LOWtests/test_attributeDescDefaults.py105def test_label_auto_generated_from_snake_case():CODE
LOWtests/test_attributeDescDefaults.py111def test_explicit_label_overrides_auto_generated():CODE
LOWtests/test_attributeDescDefaults.py117def test_explicit_description_preserved():CODE
LOWtests/test_attributeDescDefaults.py182 def test_output_desc_is_dynamic(self, node):CODE
LOWtests/test_attributeDescDefaults.py189 def test_file_output_value_is_none(self, node):CODE
LOWtests/test_attributeDescDefaults.py192 def test_bool_output_value_is_none(self, node):CODE
LOWtests/test_attributeDescDefaults.py195 def test_int_output_value_is_none(self, node):CODE
LOWtests/test_attributeDescDefaults.py198 def test_float_output_value_is_none(self, node):CODE
LOWtests/test_attributeDescDefaults.py201 def test_string_output_value_is_none(self, node):CODE
LOWtests/test_attributeDescDefaults.py76def test_param_minimal_creation(attrDesc):CODE
LOWtests/test_attributeDescDefaults.py155 def test_string_input_default(self, node):CODE
LOWtests/test_attributeDescDefaults.py161 def test_choice_input_default(self, node):CODE
LOWtests/test_compute.py686 def test_setting_explicit_cache_dir(self, tmp_path):CODE
LOWtests/test_graph.py19def test_transitive_reduction():CODE
LOWtests/test_graph.py140 def test_dfs_on_finish_depth_diamond_graph(self):CODE
9 more matches not shown…
Self-Referential Comments19 hits · 63 pts
SeverityFileLineSnippetContext
MEDIUMtests/test_graphIO.py501 # Create the node's internal folder to ensure that Graph.update() will callCOMMENT
MEDIUMtests/test_nodes.py721 # Create the input sceneCOMMENT
MEDIUMtests/test_nodes.py729 # Create the test sceneCOMMENT
MEDIUMtests/test_compute.py676 # Create a temporary directory structureCOMMENT
MEDIUMtests/test_compute.py688 # Create a temporary directory structureCOMMENT
MEDIUMtests/test_compute.py732 # Create a temporary directory structureCOMMENT
MEDIUMmeshroom/ui/scene.py852 # Create a CameraInit node if none existsCOMMENT
MEDIUMmeshroom/ui/app.py91 # Create the main parser with a descriptionCOMMENT
MEDIUMmeshroom/ui/commands.py853 # Create the new attribute on the nodeCOMMENT
MEDIUMmeshroom/ui/commands.py902 # Create a new command macro and push a command that disable graph updatesCOMMENT
MEDIUMmeshroom/ui/components/edge.py119 # Create a diagonal line to the other end of the rectCOMMENT
MEDIUMmeshroom/ui/components/scene3D.py80 # Create a buffer filled with (0, 1, 0) default normalsCOMMENT
MEDIUMmeshroom/ui/components/scene3D.py85 # Create the normal attributeCOMMENT
MEDIUMmeshroom/ui/components/csvData.py71 # Create the objects in dataList with the first line elements as objects' titleCOMMENT
MEDIUMmeshroom/core/attribute.py1098 # Create an empty list if the value is NoneCOMMENT
MEDIUMmeshroom/core/graph.py1778 # Create the folderCOMMENT
MEDIUMmeshroom/core/submitter.py255 # Create a taskCOMMENT
MEDIUMlocalfarm/localFarmClient.py102 # Create the jobCOMMENT
MEDIUMlocalfarm/localFarmClient.py105 # Create the tasksCOMMENT
Deep Nesting63 hits · 57 pts
SeverityFileLineSnippetContext
LOWtests/test_compatibility.py237CODE
LOWmeshroom/multiview.py115CODE
LOWmeshroom/multiview.py98CODE
LOWmeshroom/ui/graph.py218CODE
LOWmeshroom/ui/graph.py811CODE
LOWmeshroom/ui/graph.py846CODE
LOWmeshroom/ui/graph.py894CODE
LOWmeshroom/ui/graph.py1183CODE
LOWmeshroom/ui/graph.py1302CODE
LOWmeshroom/ui/graph.py1366CODE
LOWmeshroom/ui/graph.py1463CODE
LOWmeshroom/ui/scene.py130CODE
LOWmeshroom/ui/scene.py442CODE
LOWmeshroom/ui/scene.py688CODE
LOWmeshroom/ui/scene.py989CODE
LOWmeshroom/ui/utils.py131CODE
LOWmeshroom/ui/app.py225CODE
LOWmeshroom/ui/commands.py130CODE
LOWmeshroom/ui/components/logLinesModel.py142CODE
LOWmeshroom/ui/components/shapes/shapeFile.py150CODE
LOWmeshroom/ui/components/shapes/shapeFile.py154CODE
LOWmeshroom/submitters/localFarm/localFarmSubmitter.py80CODE
LOWmeshroom/submitters/localFarm/localFarmSubmitter.py260CODE
LOWmeshroom/core/plugins.py123CODE
LOWmeshroom/core/plugins.py422CODE
LOWmeshroom/core/attribute.py31CODE
LOWmeshroom/core/attribute.py254CODE
LOWmeshroom/core/attribute.py975CODE
LOWmeshroom/core/attribute.py1521CODE
LOWmeshroom/core/attribute.py1622CODE
LOWmeshroom/core/cgroup.py7CODE
LOWmeshroom/core/cgroup.py64CODE
LOWmeshroom/core/graph.py1859CODE
LOWmeshroom/core/graph.py1096CODE
LOWmeshroom/core/graph.py1800CODE
LOWmeshroom/core/__init__.py46CODE
LOWmeshroom/core/__init__.py74CODE
LOWmeshroom/core/__init__.py355CODE
LOWmeshroom/core/__init__.py205CODE
LOWmeshroom/core/taskManager.py91CODE
LOWmeshroom/core/taskManager.py257CODE
LOWmeshroom/core/taskManager.py273CODE
LOWmeshroom/core/taskManager.py471CODE
LOWmeshroom/core/test.py11CODE
LOWmeshroom/core/stats.py330CODE
LOWmeshroom/core/node.py468CODE
LOWmeshroom/core/node.py1044CODE
LOWmeshroom/core/node.py1204CODE
LOWmeshroom/core/node.py1277CODE
LOWmeshroom/core/node.py1897CODE
LOWmeshroom/core/node.py2516CODE
LOWmeshroom/core/node.py2569CODE
LOWmeshroom/core/node.py2735CODE
LOWmeshroom/core/node.py2867CODE
LOWmeshroom/core/node.py1282CODE
LOWmeshroom/core/submitter.py379CODE
LOWmeshroom/core/desc/node.py425CODE
LOWmeshroom/nodes/general/InputFile.py23CODE
LOWmeshroom/common/PySignal.py33CODE
LOWlocalfarm/localFarmBackend.py298CODE
3 more matches not shown…
Unused Imports64 hits · 54 pts
SeverityFileLineSnippetContext
LOWsetup.py5CODE
LOWmeshroom/ui/graph.py37CODE
LOWmeshroom/ui/scene.py7CODE
LOWmeshroom/ui/components/shapes/__init__.py1CODE
LOWmeshroom/ui/components/shapes/__init__.py4CODE
LOWmeshroom/core/plugins.py1CODE
LOWmeshroom/core/attribute.py2CODE
LOWmeshroom/core/attribute.py28CODE
LOWmeshroom/core/graph.py20CODE
LOWmeshroom/core/__init__.py25CODE
LOWmeshroom/core/__init__.py15CODE
LOWmeshroom/core/__init__.py16CODE
LOWmeshroom/core/__init__.py17CODE
LOWmeshroom/core/taskManager.py4CODE
LOWmeshroom/core/node.py3CODE
LOWmeshroom/core/node.py15CODE
LOWmeshroom/core/submitter.py3CODE
LOWmeshroom/core/desc/attribute.py8CODE
LOWmeshroom/core/desc/validators.py4CODE
LOWmeshroom/core/desc/validators.py5CODE
LOWmeshroom/core/desc/__init__.py1CODE
LOWmeshroom/core/desc/__init__.py1CODE
LOWmeshroom/core/desc/__init__.py1CODE
LOWmeshroom/core/desc/__init__.py1CODE
LOWmeshroom/core/desc/__init__.py1CODE
LOWmeshroom/core/desc/__init__.py1CODE
LOWmeshroom/core/desc/__init__.py1CODE
LOWmeshroom/core/desc/__init__.py1CODE
LOWmeshroom/core/desc/__init__.py1CODE
LOWmeshroom/core/desc/__init__.py1CODE
LOWmeshroom/core/desc/__init__.py1CODE
LOWmeshroom/core/desc/__init__.py1CODE
LOWmeshroom/core/desc/__init__.py1CODE
LOWmeshroom/core/desc/__init__.py16CODE
LOWmeshroom/core/desc/__init__.py16CODE
LOWmeshroom/core/desc/__init__.py16CODE
LOWmeshroom/core/desc/__init__.py21CODE
LOWmeshroom/core/desc/__init__.py21CODE
LOWmeshroom/core/desc/__init__.py21CODE
LOWmeshroom/core/desc/__init__.py21CODE
LOWmeshroom/core/desc/__init__.py21CODE
LOWmeshroom/core/desc/__init__.py21CODE
LOWmeshroom/core/desc/__init__.py29CODE
LOWmeshroom/core/desc/__init__.py32CODE
LOWmeshroom/core/desc/__init__.py32CODE
LOWmeshroom/core/desc/__init__.py32CODE
LOWmeshroom/core/desc/__init__.py32CODE
LOWmeshroom/core/desc/__init__.py32CODE
LOWmeshroom/core/desc/__init__.py32CODE
LOWmeshroom/core/desc/__init__.py40CODE
LOWmeshroom/core/desc/__init__.py40CODE
LOWmeshroom/core/desc/__init__.py40CODE
LOWmeshroom/core/desc/__init__.py40CODE
LOWmeshroom/core/desc/__init__.py40CODE
LOWmeshroom/core/desc/__init__.py40CODE
LOWmeshroom/core/desc/__init__.py40CODE
LOWmeshroom/core/desc/__init__.py40CODE
LOWmeshroom/core/desc/__init__.py40CODE
LOWmeshroom/core/desc/__init__.py40CODE
LOWmeshroom/core/desc/__init__.py40CODE
4 more matches not shown…
Redundant / Tautological Comments15 hits · 24 pts
SeverityFileLineSnippetContext
LOWtests/test_compatibility.py224 # Check if attributes are properly restoredCOMMENT
LOWtests/test_compatibility.py228 # Check if internal folderCOMMENT
LOWmeshroom/ui/components/thumbnail.py110 # Check if thumbnail directory existsCOMMENT
LOWmeshroom/ui/components/thumbnail.py127 # Check if this is a regular fileCOMMENT
LOWmeshroom/ui/components/thumbnail.py152 # Check if number of thumbnails on disk exceeds limitCOMMENT
LOWmeshroom/ui/components/thumbnail.py244 # Check if thumbnail already exists (and update its last modification time)COMMENT
LOWmeshroom/ui/components/thumbnail.py279 # Check if thumbnail already exists (it may have been created by another thread)COMMENT
LOWmeshroom/core/stats.py269 # Check if we exceeded max points and need to adjust intervalCOMMENT
LOWmeshroom/core/nodeFactory.py43 # Check if the given attribute is a AnySet instance or a child of a AnySetCOMMENT
LOWmeshroom/core/node.py2142 # Check if at least one dependentNode is submitted or currently runningCOMMENT
LOWmeshroom/core/submitter.py320 # Check if task has already been createdCOMMENT
LOWmeshroom/core/desc/node.py510 if process.is_running(): # Check if process is still aliveCODE
LOWmeshroom/common/PySignal.py96 # Check if it is an instance method and store it with the instance as the keyCOMMENT
LOWlocalfarm/localFarmBackend.py316 # Check if process finishedCOMMENT
LOWlocalfarm/localFarmBackend.py321 # Check if job is completeCOMMENT
AI Structural Patterns20 hits · 20 pts
SeverityFileLineSnippetContext
LOWsetup.py28CODE
LOWmeshroom/ui/scene.py643CODE
LOWmeshroom/core/desc/attribute.py234CODE
LOWmeshroom/core/desc/attribute.py320CODE
LOWmeshroom/core/desc/attribute.py476CODE
LOWmeshroom/core/desc/attribute.py510CODE
LOWmeshroom/core/desc/attribute.py545CODE
LOWmeshroom/core/desc/attribute.py584CODE
LOWmeshroom/core/desc/attribute.py621CODE
LOWmeshroom/core/desc/attribute.py677CODE
LOWmeshroom/core/desc/attribute.py765CODE
LOWmeshroom/core/desc/attribute.py798CODE
LOWmeshroom/core/desc/anySet.py7CODE
LOWmeshroom/core/desc/shapeAttribute.py68CODE
LOWmeshroom/core/desc/shapeAttribute.py103CODE
LOWmeshroom/core/desc/shapeAttribute.py138CODE
LOWmeshroom/core/desc/shapeAttribute.py175CODE
LOWmeshroom/core/desc/geometryAttribute.py9CODE
LOWmeshroom/core/desc/geometryAttribute.py41CODE
LOWmeshroom/core/desc/geometryAttribute.py80CODE
Docstring Block Structure3 hits · 15 pts
SeverityFileLineSnippetContext
HIGHmeshroom/ui/utils.py201 Shortcut function to create a Qt Property with generic getter and setter. Getter returns the underlying attribSTRING
HIGHmeshroom/core/graph.py1826 Load a Graph from a Meshroom Graph (.mg) file. Args: filepath: The path to the Meshroom Graph file. STRING
HIGHmeshroom/core/nodeFactory.py217 Check that attribute names in 'attributesDict' match the expected description, where 'requiredDescAttriSTRING
Cross-File Repetition3 hits · 15 pts
SeverityFileLineSnippetContext
HIGHmeshroom/core/desc/attribute.py0return the correct attribute instance corresponding to the description.STRING
HIGHmeshroom/core/desc/shapeAttribute.py0return the correct attribute instance corresponding to the description.STRING
HIGHmeshroom/core/desc/geometryAttribute.py0return the correct attribute instance corresponding to the description.STRING
Over-Commented Block5 hits · 5 pts
SeverityFileLineSnippetContext
LOWdocs/source/_ext/fetch_md.py1# Sphinx extension defining the fetch_md directiveCOMMENT
LOWdocs/source/_ext/meshroom_doc.py1# Sphinx extension defining the meshroom_doc directiveCOMMENT
LOW.github/workflows/nightly.yml41 BUILD_LABEL="$(date -u '+%Y.%m.%d')-${SHORT_SHA}"COMMENT
LOWmeshroom/core/stats.py201 data = proc.as_dict(self.dynamicKeys)COMMENT
LOWmeshroom/core/desc/attribute.py201 # The default value of the attribute's descriptor is None, so it is not an input value,COMMENT
Example Usage Blocks3 hits · 4 pts
SeverityFileLineSnippetContext
LOWdocs/source/_ext/fetch_md.py6# Usage:COMMENT
LOWdocs/source/_ext/meshroom_doc.py6# Usage:COMMENT
LOWmeshroom/core/evaluation.py10 # Example usageSTRING
Modern Structural Boilerplate2 hits · 2 pts
SeverityFileLineSnippetContext
LOWmeshroom/env.py5__all__ = [CODE
LOWmeshroom/ui/app.py480 def _updateRecentProjectFilesThumbnails(self) -> None:STRING
Slop Phrases1 hit · 2 pts
SeverityFileLineSnippetContext
LOWmeshroom/ui/commands.py73 self.setLockedRedo(False) # make sure to unlock the redo actionCODE
AI Slop Vocabulary1 hit · 2 pts
SeverityFileLineSnippetContext
LOWmeshroom/core/submitter.py324 # If task is already created simply create the connectionCOMMENT
Fake / Example Data1 hit · 1 pts
SeverityFileLineSnippetContext
LOWmeshroom/core/node.py536 return "placeholder"CODE