Repository Analysis

alicevision/Meshroom

Node-based Visual Programming Toolbox

26.5 Moderate AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of alicevision/Meshroom, a Python project with 12,930 GitHub stars. SynthScan v2.0 examined 39,406 lines of code across 194 source files, recording 477 pattern matches distributed across 18 syntactic categories. The overall adjusted score of 26.5 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.5
Adjusted Score
26.5
Raw Score
100%
Time Factor
2026-08-28
Last Push
12.9K
Stars
Python
Language
39.4K
Lines of Code
194
Files
477
Pattern Hits
2026-08-29
Scan Date
0.30
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 47MEDIUM 78LOW 340

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 477 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 Confusion41 hits · 230 pts
SeverityFileLineSnippetContext
HIGHmeshroom/ui/graph.py1327 self.push(commands.AddEdgeCommand(self._graph, src, dst))CODE
HIGHmeshroom/ui/graph.py1333 self.push(commands.RemoveEdgeCommand(self._graph, edge))CODE
HIGHmeshroom/ui/graph.py1336 self.push(commands.RemoveEdgeCommand(self._graph, edge))CODE
HIGHmeshroom/ui/graph.py1382 self.push(commands.SetAttributeCommand(self._graph, attribute, attribute.getDefaultValue()))CODE
HIGHmeshroom/ui/graph.py1387 self.push(commands.AddAttributeKeyValueCommand(self._graph, attribute, key, value))CODE
HIGHmeshroom/ui/graph.py1392 self.push(commands.AddAttributeKeyValueCommand(self._graph, attribute, key, attribute.getDefaultValue()))CODE
HIGHmeshroom/ui/graph.py1397 self.push(commands.RemoveAttributeKeyCommand(self._graph, attribute, key))CODE
HIGHmeshroom/ui/graph.py1405 self.push(commands.SetObservationCommand(self._graph, shape, key, observation))CODE
HIGHmeshroom/ui/graph.py1410 self.push(commands.SetObservationCommand(self._graph, shape, key, observation))CODE
HIGHmeshroom/ui/graph.py1415 self.push(commands.RemoveObservationCommand(self._graph, shape, key))CODE
HIGHmeshroom/ui/graph.py1420 return self.push(commands.UpgradeNodeCommand(self._graph, node))CODE
HIGHmeshroom/ui/graph.py1445 self.push(commands.ListAttributeAppendCommand(self._graph, attribute, pyValue))CODE
HIGHmeshroom/ui/graph.py1449 self.push(commands.ListAttributeRemoveCommand(self._graph, attribute))CODE
HIGHmeshroom/ui/graph.py1455 self.push(commands.RemoveAnySetAttributeCommand(self._graph, attribute))CODE
HIGHmeshroom/ui/graph.py1461 self.push(commands.RenameAnySetAttributeCommand(self._graph, attribute, name, label))CODE
HIGHmeshroom/ui/graph.py1467 self.push(commands.MoveAnySetAttributeCommand(self._graph, attribute, offset))CODE
HIGHmeshroom/ui/graph.py1500 self.push(commands.RemoveSelectedImagesCommand(self._graph, self.cameraInit, images))CODE
HIGHmeshroom/ui/graph.py1506 self.push(commands.RemoveImagesCommand(self._graph, [self.cameraInit]))CODE
HIGHmeshroom/ui/graph.py1512 self.push(commands.RemoveImagesCommand(self._graph, list(self.cameraInits)))CODE
HIGHmeshroom/ui/graph.py571 localFile = filepath.toString()CODE
HIGHmeshroom/ui/graph.py577 return self.push(commands.ImportProjectCommand(self._graph, localFile, position=position, yOffset=yOffset))CODE
HIGHmeshroom/ui/graph.py1005 return self.push(commands.AddNodeCommand(self._graph, nodeType, position=position, **kwargs))CODE
HIGHmeshroom/ui/graph.py1031 return self.push(commands.RenameNodeCommand(self._graph, node, uniqueName))CODE
HIGHmeshroom/ui/graph.py1041 self.push(commands.MoveNodeCommand(self._graph, node, position))CODE
HIGHmeshroom/ui/graph.py1167 self.push(commands.RemoveNodeCommand(self._graph, node))CODE
HIGHmeshroom/ui/graph.py1205 duplicates = self.push(commands.DuplicateNodesCommand(self._graph, nodes))CODE
HIGHmeshroom/ui/graph.py1311 self.push(commands.ConnectAnySetCommand(self._graph, src=dst, anySetAttribute=src))CODE
HIGHmeshroom/ui/graph.py1313 self.push(commands.ConnectAnySetCommand(self._graph, src=src, anySetAttribute=dst))CODE
HIGHmeshroom/ui/graph.py1370 self.push(commands.SetAttributeCommand(self._graph, attribute, value))CODE
HIGHmeshroom/ui/graph.py1649 result = self.push(commands.PasteNodesCommand(self._graph, graphData, pos))CODE
HIGHmeshroom/ui/scene.py522 return url.toLocalFile() or url.toString()CODE
HIGHmeshroom/ui/scene.py904 p = imagePath.toString()CODE
HIGHmeshroom/ui/app.py637 filepathNorm = filepath.toString()STRING
HIGHmeshroom/ui/app.py662 folderPath = imagesFolder.toString()STRING
HIGHmeshroom/ui/app.py697 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
Decorative Section Separators53 hits · 180 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
MEDIUM.github/workflows/run-tests.yml101 # ── meshroom_compute smoke test (Python 3.7) ─────────────COMMENT
MEDIUMlocalfarm/localFarmBackend.py414 # ======================COMMENT
MEDIUMlocalfarm/localFarmBackend.py416 # ======================COMMENT
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
Excessive Try-Catch Wrapping90 hits · 100 pts
SeverityFileLineSnippetContext
LOWtests/test_submit.py122 except Exception as e:CODE
LOWtests/test_compute.py642 except Exception:CODE
LOWmeshroom/ui/graph.py690 except Exception as e:CODE
LOWmeshroom/ui/graph.py716 except Exception as e:CODE
LOWmeshroom/ui/graph.py739 except Exception as e:CODE
LOWmeshroom/ui/graph.py766 except Exception as e:CODE
LOWmeshroom/ui/graph.py788 except Exception as e:CODE
LOWmeshroom/ui/graph.py806 except Exception as e:CODE
LOWmeshroom/ui/graph.py824 except Exception as e:CODE
LOWmeshroom/ui/graph.py869 except Exception as e:CODE
LOWmeshroom/ui/scene.py111 except Exception as exc:CODE
LOWmeshroom/ui/scene.py147 except Exception:CODE
LOWmeshroom/ui/scene.py548 except Exception:CODE
LOWmeshroom/ui/scene.py914 except Exception as exc:CODE
LOWmeshroom/ui/scene.py960 except Exception as exc:CODE
LOWmeshroom/ui/scene.py1261 except Exception as err:CODE
LOWmeshroom/ui/utils.py8except Exception:CODE
LOWmeshroom/ui/app.py445 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/attribute.py361 except Exception as err:CODE
LOWmeshroom/core/attribute.py385 except Exception as exc:CODE
LOWmeshroom/core/attribute.py582 except Exception as exc:CODE
LOWmeshroom/core/evaluation.py50 except Exception:CODE
LOWmeshroom/core/graph.py60 except Exception:CODE
LOWmeshroom/core/graph.py936 except Exception:CODE
LOWmeshroom/core/graph.py1707 except Exception as e:CODE
LOWmeshroom/core/graph.py1896 except Exception:CODE
LOWmeshroom/core/graph.py1999 except Exception as exc:CODE
LOWmeshroom/core/graph.py2048 except Exception as exc:CODE
MEDIUMmeshroom/core/graph.py1167def dfsVisit(self, u, visitor, colors, nodeChildren, longestPathFirst):CODE
LOWmeshroom/core/__init__.py19except Exception:CODE
LOWmeshroom/core/__init__.py102 except Exception as exc:CODE
LOWmeshroom/core/__init__.py144 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
MEDIUMmeshroom/core/stats.py76def update(self):CODE
MEDIUMmeshroom/core/node.py913def __getattr__(self, k):CODE
30 more matches not shown…
Hyper-Verbose Identifiers74 hits · 86 pts
SeverityFileLineSnippetContext
LOWtests/test_template_files.py28def test_template_file_detection_from_extension_and_legacy_metadata(tmp_path):CODE
LOWtests/test_template_files.py42def test_template_initialization_does_not_bind_filepath(tmp_path):CODE
LOWtests/test_template_files.py53def test_template_extension_is_appended_for_template_saves():CODE
LOWtests/test_template_files.py65def test_pipeline_template_discovery_supports_mgt_and_legacy_mg_metadata(tmp_path):CODE
LOWtests/test_template_files.py88def test_plugin_template_discovery_supports_mgt_and_legacy_mg_metadata(tmp_path):CODE
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.py677 def test_size_lambda_single_arg(self):CODE
LOWtests/test_nodes.py702 def test_size_static_node_size(self):CODE
LOWtests/test_nodes.py716 def test_size_dynamic_node_size(self):CODE
LOWtests/test_nodes.py741 def test_size_custom_function(self):CODE
LOWtests/test_nodes.py769 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
14 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.py911 # Create the input sceneCOMMENT
MEDIUMtests/test_nodes.py919 # 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.py892 # 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.py1106 # Create an empty list if the value is NoneCOMMENT
MEDIUMmeshroom/core/graph.py1868 # Create the folderCOMMENT
MEDIUMmeshroom/core/submitter.py255 # Create a taskCOMMENT
MEDIUMlocalfarm/localFarmClient.py102 # Create the jobCOMMENT
MEDIUMlocalfarm/localFarmClient.py105 # Create the tasksCOMMENT
Unused Imports71 hits · 60 pts
SeverityFileLineSnippetContext
LOWsetup.py5CODE
LOWmeshroom/ui/graph.py39CODE
LOWmeshroom/ui/scene.py7CODE
LOWmeshroom/ui/components/shapes/__init__.py1CODE
LOWmeshroom/ui/components/shapes/__init__.py4CODE
LOWmeshroom/core/attribute.py2CODE
LOWmeshroom/core/attribute.py29CODE
LOWmeshroom/core/graph.py21CODE
LOWmeshroom/core/graph.py22CODE
LOWmeshroom/core/__init__.py29CODE
LOWmeshroom/core/__init__.py16CODE
LOWmeshroom/core/__init__.py17CODE
LOWmeshroom/core/__init__.py18CODE
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
11 more matches not shown…
Deep Nesting63 hits · 57 pts
SeverityFileLineSnippetContext
LOWtests/test_compatibility.py237CODE
LOWmeshroom/multiview.py122CODE
LOWmeshroom/multiview.py103CODE
LOWmeshroom/ui/graph.py220CODE
LOWmeshroom/ui/graph.py818CODE
LOWmeshroom/ui/graph.py853CODE
LOWmeshroom/ui/graph.py901CODE
LOWmeshroom/ui/graph.py1190CODE
LOWmeshroom/ui/graph.py1309CODE
LOWmeshroom/ui/graph.py1373CODE
LOWmeshroom/ui/graph.py1470CODE
LOWmeshroom/ui/scene.py131CODE
LOWmeshroom/ui/scene.py443CODE
LOWmeshroom/ui/scene.py709CODE
LOWmeshroom/ui/scene.py1029CODE
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.py81CODE
LOWmeshroom/submitters/localFarm/localFarmSubmitter.py264CODE
LOWmeshroom/core/attribute.py32CODE
LOWmeshroom/core/attribute.py256CODE
LOWmeshroom/core/attribute.py983CODE
LOWmeshroom/core/attribute.py1529CODE
LOWmeshroom/core/attribute.py1630CODE
LOWmeshroom/core/cgroup.py7CODE
LOWmeshroom/core/cgroup.py64CODE
LOWmeshroom/core/graph.py1951CODE
LOWmeshroom/core/graph.py1173CODE
LOWmeshroom/core/graph.py1890CODE
LOWmeshroom/core/__init__.py50CODE
LOWmeshroom/core/__init__.py78CODE
LOWmeshroom/core/__init__.py359CODE
LOWmeshroom/core/__init__.py209CODE
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.py2520CODE
LOWmeshroom/core/node.py2573CODE
LOWmeshroom/core/node.py2739CODE
LOWmeshroom/core/node.py2871CODE
LOWmeshroom/core/node.py1282CODE
LOWmeshroom/core/submitter.py380CODE
LOWmeshroom/core/desc/node.py434CODE
LOWmeshroom/core/plugins/env.py62CODE
LOWmeshroom/core/plugins/base.py177CODE
LOWmeshroom/nodes/general/InputFile.py23CODE
LOWmeshroom/common/PySignal.py33CODE
LOWlocalfarm/localFarmBackend.py298CODE
3 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.py2145 # 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.py519 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.py664CODE
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.py1918 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.py506 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.py325 # If task is already created simply create the connectionCOMMENT
Fake / Example Data1 hit · 1 pts
SeverityFileLineSnippetContext
LOWmeshroom/core/node.py536 return "placeholder"CODE