Memray is a memory profiler for Python
This report presents the forensic synthetic code analysis of bloomberg/memray, a Python project with 15,181 GitHub stars. SynthScan v2.0 examined 80,097 lines of code across 259 source files, recording 599 pattern matches distributed across 13 syntactic categories. The overall adjusted score of 7.3 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).
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.
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.
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.
The scanner identified 599 distinct pattern matches across 13 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.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_utils.py | 10 | def test_filters_for_valloc_and_free(self): | CODE |
| LOW | tests/test_utils.py | 21 | def test_filters_based_on_addresses(self): | CODE |
| LOW | tests/test_utils.py | 33 | def test_free_records_with_valid_addresses_that_dont_match_do_not_appear(self): | CODE |
| LOW | tests/test_utils.py | 47 | def test_free_records_with_unmatched_addresses_do_not_appear(self): | CODE |
| LOW | tests/test_utils.py | 63 | def test_holds_values_at_correct_names(self): | CODE |
| LOW | tests/conftest.py | 55 | def pytest_collection_modifyitems(config, items): | CODE |
| LOW | tests/utils.py | 15 | def filter_relevant_allocations(records, ranged=False): | CODE |
| LOW | tests/utils.py | 32 | def filter_relevant_pymalloc_allocations(records, size): | CODE |
| LOW | tests/unit/test_stats_reporter.py | 22 | def _generate_mock_allocations( | CODE |
| LOW | tests/unit/test_stats_reporter.py | 129 | def test_get_histogram_databins(): | CODE |
| LOW | tests/unit/test_stats_reporter.py | 164 | def test_get_histogram_databins_rounding(): | CODE |
| LOW | tests/unit/test_stats_reporter.py | 198 | def test_get_histogram_over_bound(): | CODE |
| LOW | tests/unit/test_stats_reporter.py | 226 | def test_get_histogram_all_allocations_same_size(): | CODE |
| LOW | tests/unit/test_stats_reporter.py | 248 | def test_get_histogram_databins_invalid_bins(): | CODE |
| LOW | tests/unit/test_stats_reporter.py | 292 | def test_draw_histogram_smaller_scale_factor(): | CODE |
| LOW | tests/unit/test_stats_reporter.py | 332 | def test_draw_histogram_invalid_input(): | CODE |
| LOW | tests/unit/test_reader.py | 12 | def test_rejects_different_header_magic(tmp_path): | CODE |
| LOW | tests/unit/test_reader.py | 33 | def test_rejects_different_header_version(tmp_path): | CODE |
| LOW | tests/unit/test_reader.py | 54 | def test_filereader_fails_to_open_file(tmp_path): | CODE |
| LOW | tests/unit/test_templates.py | 22 | def test_title_for_regular_report(kind, show_memory_leaks, inverted, expected): | CODE |
| LOW | tests/unit/test_templates.py | 35 | def test_html_report_escaping(kind): | CODE |
| LOW | tests/unit/test_high_water_mark_aggregator.py | 31 | def contribution_by_location_and_allocator(allocations): | CODE |
| LOW | tests/unit/test_high_water_mark_aggregator.py | 44 | def test_no_allocations_at_start(): | CODE |
| LOW | tests/unit/test_high_water_mark_aggregator.py | 56 | def test_one_allocation_is_both_high_water_mark_and_leaked(): | CODE |
| LOW | tests/unit/test_high_water_mark_aggregator.py | 77 | def test_one_freed_allocation_is_high_water_mark_but_not_leaked(): | CODE |
| LOW | tests/unit/test_high_water_mark_aggregator.py | 101 | def test_zero_byte_allocation(): | CODE |
| LOW | tests/unit/test_high_water_mark_aggregator.py | 123 | def test_freeing_one_of_two_high_water_mark_allocations_at_the_same_location(): | CODE |
| LOW | tests/unit/test_high_water_mark_aggregator.py | 148 | def test_freeing_one_of_two_high_water_mark_allocations_at_different_locations(): | CODE |
| LOW | tests/unit/test_high_water_mark_aggregator.py | 180 | def test_allocation_freed_before_high_water_mark(): | CODE |
| LOW | tests/unit/test_high_water_mark_aggregator.py | 205 | def test_allocation_made_and_leaked_after_high_water_mark(): | CODE |
| LOW | tests/unit/test_high_water_mark_aggregator.py | 237 | def test_allocation_made_and_freed_after_high_water_mark(): | CODE |
| LOW | tests/unit/test_high_water_mark_aggregator.py | 271 | def test_allocation_made_and_freed_between_high_water_marks(): | CODE |
| LOW | tests/unit/test_high_water_mark_aggregator.py | 309 | def test_allocation_made_between_high_water_marks_and_freed_after_high_water_mark(): | CODE |
| LOW | tests/unit/test_high_water_mark_aggregator.py | 348 | def test_allocation_made_between_high_water_marks_and_leaked(): | CODE |
| LOW | tests/unit/test_high_water_mark_aggregator.py | 381 | def test_different_allocators_at_one_location(): | CODE |
| LOW | tests/unit/test_high_water_mark_aggregator.py | 407 | def test_same_stack_in_different_threads(): | CODE |
| LOW | tests/unit/test_high_water_mark_aggregator.py | 439 | def test_completely_freed_range(): | CODE |
| LOW | tests/unit/test_high_water_mark_aggregator.py | 487 | def test_shrunk_then_freed_range(): | CODE |
| LOW | tests/unit/test_high_water_mark_aggregator.py | 538 | def test_split_then_freed_range(): | CODE |
| LOW | tests/unit/test_high_water_mark_aggregator.py | 565 | def test_reporting_on_true_high_water_mark_that_was_in_a_past_snapshot(): | CODE |
| LOW | tests/unit/test_high_water_mark_aggregator.py | 609 | def test_one_allocation_before_first_snapshot(): | CODE |
| LOW | tests/unit/test_high_water_mark_aggregator.py | 632 | def test_one_allocation_after_first_snapshot(): | CODE |
| LOW | tests/unit/test_high_water_mark_aggregator.py | 656 | def test_one_allocation_freed_at_high_water_mark_in_second_snapshot(): | CODE |
| LOW | tests/unit/test_high_water_mark_aggregator.py | 682 | def test_two_allocations_in_different_snapshots(): | CODE |
| LOW | tests/unit/test_high_water_mark_aggregator.py | 720 | def test_one_allocation_freed_before_high_water_mark_in_second_snapshot(): | CODE |
| LOW | tests/unit/test_high_water_mark_aggregator.py | 760 | def test_allocations_freed_over_two_snapshots(): | CODE |
| LOW | tests/unit/test_high_water_mark_aggregator.py | 792 | def test_allocations_freed_over_two_non_adjacent_snapshots(): | CODE |
| LOW | tests/unit/test_high_water_mark_aggregator.py | 826 | def test_allocation_after_high_water_mark_in_current_snapshot(): | CODE |
| LOW | tests/unit/test_high_water_mark_aggregator.py | 853 | def test_allocation_after_high_water_mark_in_historical_snapshot(): | CODE |
| LOW | tests/unit/test_high_water_mark_aggregator.py | 881 | def test_allocation_and_deallocation_after_high_water_mark(): | CODE |
| LOW | tests/unit/test_high_water_mark_aggregator.py | 912 | def test_allocation_and_deallocation_across_multiple_snapshots(): | CODE |
| LOW | tests/unit/test_high_water_mark_aggregator.py | 946 | def test_allocation_and_deallocation_across_multiple_snapshots_with_other_allocators(): | CODE |
| LOW | tests/unit/test_transform_reporter.py | 66 | def test_single_native_allocation(self): | CODE |
| LOW | tests/unit/test_transform_reporter.py | 100 | def test_multiple_allocations(self): | CODE |
| LOW | tests/unit/test_transform_reporter.py | 241 | def test_single_native_allocation(self): | CODE |
| LOW | tests/unit/test_transform_reporter.py | 271 | def test_multiple_allocations(self): | CODE |
| LOW | tests/unit/test_transform_reporter.py | 344 | def test_multiple_stack_frames(self): | CODE |
| LOW | tests/unit/test_transform_reporter.py | 418 | def test_stacks_are_written_root_to_leaf(self): | CODE |
| LOW | tests/unit/test_transform_reporter.py | 455 | def test_identical_stacks_are_aggregated(self): | CODE |
| LOW | tests/unit/test_transform_reporter.py | 502 | def test_stacks_preserve_allocation_order(self): | CODE |
| 386 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | CMakeLists.txt | 41 | add_compile_definitions(_FILE_OFFSET_BITS=64) | COMMENT |
| LOW | asv.conf.json | 21 | // Customizable commands for building, installing, and | COMMENT |
| LOW | asv.conf.json | 41 | COMMENT | |
| LOW | asv.conf.json | 61 | // dependency packages in the specified order | COMMENT |
| LOW | asv.conf.json | 81 | // from the set to test. Each entry is a dictionary containing additional | COMMENT |
| LOW | asv.conf.json | 101 | // "exclude": [ | COMMENT |
| LOW | asv.conf.json | 121 | // The directory (relative to the current directory) that raw benchmark | COMMENT |
| LOW | asv.conf.json | 141 | // regressions. The default is to start from the first commit | COMMENT |
| LOW | tests/integration/native_extension/native_ext.c | 1 | #define PY_SSIZE_T_CLEAN | COMMENT |
| LOW | docs/conf.py | 81 | # -- Improving man page generation ---------------------------------------------------- | COMMENT |
| LOW | benchmarks/benchmarking/cases/regex_v8_base.py | 1 | # Copyright 2009 the V8 project authors. All rights reserved. | COMMENT |
| LOW | benchmarks/benchmarking/cases/regex_v8_base.py | 21 | # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | COMMENT |
| LOW | benchmarks/benchmarking/cases/go_base.py | 421 | # text = input('?').strip() | COMMENT |
| LOW | benchmarks/benchmarking/cases/regex_v8_memray.py | 1 | # Copyright 2009 the V8 project authors. All rights reserved. | COMMENT |
| LOW | benchmarks/benchmarking/cases/regex_v8_memray.py | 21 | # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | COMMENT |
| LOW | benchmarks/benchmarking/cases/go_memray.py | 421 | COMMENT | |
| LOW | …arking/cases/docutils_data/docs/dev/enthought-plan.txt | 181 | Python doesn't have multi-line comments; only single-line. A similar | COMMENT |
| LOW | src/memray/_memray/source.cpp | 1 | #define PY_SSIZE_T_CLEAN | COMMENT |
| LOW | src/memray/_memray/record_reader.cpp | 1 | #define __STDC_FORMAT_MACROS | COMMENT |
| LOW | src/memray/_memray/sink.cpp | 1 | #define PY_SSIZE_T_CLEAN | COMMENT |
| LOW | src/memray/_memray/hooks.h | 1 | #pragma once | COMMENT |
| LOW | src/memray/_memray/hooks.h | 21 | #include <dlfcn.h> | COMMENT |
| LOW | src/memray/_memray/macho_shenanigans.cpp | 81 | } | COMMENT |
| LOW | src/memray/_memray/macho_shenanigans.cpp | 101 | // This means that the address of the GOT entry can be calculated as: | COMMENT |
| LOW | src/memray/_memray/macho_shenanigans.cpp | 181 | static_assert(1 << 12 == 4 * 1024); | COMMENT |
| LOW | src/memray/_memray/elf_utils.h | 1 | #pragma once | COMMENT |
| LOW | src/memray/_memray/record_writer.cpp | 1 | #include "record_writer.h" | COMMENT |
| LOW | src/memray/_memray/record_writer.cpp | 101 | // LRU Pointer Cache System | COMMENT |
| LOW | src/memray/_memray/record_writer.cpp | 381 | // | COMMENT |
| LOW | src/memray/_memray/record_reader.h | 1 | #pragma once | COMMENT |
| LOW | src/memray/_memray/tracking_api.cpp | 1 | #define PY_SSIZE_T_CLEAN | COMMENT |
| LOW | src/memray/_memray/tracking_api.cpp | 161 | // constructed. That's normally great, but we need to prevent that from | COMMENT |
| LOW | src/memray/_memray/tracking_api.cpp | 221 | // Threads' initial stacks can have calls to sys.settrace tracing | COMMENT |
| LOW | src/memray/_memray/snapshot.cpp | 341 | UsageHistory::recordContributionsToCompletedSnapshots( | COMMENT |
| LOW | src/memray/_memray/tracking_api.h | 1 | #pragma once | COMMENT |
| LOW | src/memray/_memray/tracking_api.h | 21 | COMMENT | |
| LOW | src/memray/_memray/native_resolver.h | 1 | #pragma once | COMMENT |
| LOW | src/memray/_memray/macho_utils.h | 1 | #pragma once | COMMENT |
| LOW | src/memray/_memray/lz4_stream.h | 1 | // Copyright (c) 2015, Kasper Laudrup <laudrup@stacktrace.dk> | COMMENT |
| LOW | src/memray/_memray/lz4_stream.h | 21 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | COMMENT |
| LOW | src/memray/_memray/snapshot.h | 1 | #pragma once | COMMENT |
| LOW | src/memray/_memray/snapshot.h | 321 | size_t current_peak) const; | COMMENT |
| LOW | src/memray/_memray/records.h | 1 | #pragma once | COMMENT |
| LOW | src/memray/_memray/records.h | 21 | const int CURRENT_HEADER_VERSION = 12; | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | benchmarks/benchmarking/cases/raytrace_memray.py | 15 | CODE | |
| LOW | benchmarks/benchmarking/cases/json_dumps_base.py | 2 | CODE | |
| LOW | benchmarks/benchmarking/cases/docutils_html_base.py | 7 | CODE | |
| LOW | benchmarks/benchmarking/cases/docutils_html_base.py | 12 | CODE | |
| LOW | src/memray/_metadata.py | 1 | CODE | |
| LOW | src/memray/__init__.py | 1 | CODE | |
| LOW | src/memray/__init__.py | 2 | CODE | |
| LOW | src/memray/__init__.py | 3 | CODE | |
| LOW | src/memray/__init__.py | 4 | CODE | |
| LOW | src/memray/__init__.py | 5 | CODE | |
| LOW | src/memray/__init__.py | 6 | CODE | |
| LOW | src/memray/__init__.py | 7 | CODE | |
| LOW | src/memray/__init__.py | 8 | CODE | |
| LOW | src/memray/__init__.py | 9 | CODE | |
| LOW | src/memray/__init__.py | 10 | CODE | |
| LOW | src/memray/__init__.py | 11 | CODE | |
| LOW | src/memray/__init__.py | 12 | CODE | |
| LOW | src/memray/__init__.py | 13 | CODE | |
| LOW | src/memray/__init__.py | 14 | CODE | |
| LOW | src/memray/__init__.py | 15 | CODE | |
| LOW | src/memray/__init__.py | 16 | CODE | |
| LOW | src/memray/_test.py | 4 | CODE | |
| LOW | src/memray/_test.py | 5 | CODE | |
| LOW | src/memray/_test.py | 6 | CODE | |
| LOW | src/memray/_test.py | 7 | CODE | |
| LOW | src/memray/_test.py | 8 | CODE | |
| LOW | src/memray/_test.py | 9 | CODE | |
| LOW | src/memray/_test.py | 10 | CODE | |
| LOW | src/memray/_test.py | 11 | CODE | |
| LOW | src/memray/_test.py | 12 | CODE | |
| LOW | src/memray/_test.py | 13 | CODE | |
| LOW | src/memray/_test.py | 14 | CODE | |
| LOW | src/memray/_test.py | 15 | CODE | |
| LOW | src/memray/commands/attach.py | 1 | CODE | |
| LOW | src/memray/reporters/tree.py | 18 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/utils.py | 15 | CODE | |
| LOW | tests/utils.py | 32 | CODE | |
| LOW | tests/integration/test_native_tracking.py | 23 | CODE | |
| LOW | tests/integration/test_socket.py | 362 | CODE | |
| LOW | tests/integration/test_attach.py | 167 | CODE | |
| LOW | benchmarks/benchmarking/cases/meteor_context_base.py | 113 | CODE | |
| LOW | benchmarks/benchmarking/cases/meteor_context_base.py | 157 | CODE | |
| LOW | benchmarks/benchmarking/cases/meteor_context_memray.py | 117 | CODE | |
| LOW | benchmarks/benchmarking/cases/meteor_context_memray.py | 161 | CODE | |
| LOW | benchmarks/benchmarking/cases/hexion_base.py | 234 | CODE | |
| LOW | benchmarks/benchmarking/cases/hexion_base.py | 374 | CODE | |
| LOW | benchmarks/benchmarking/cases/hexion_base.py | 148 | CODE | |
| LOW | benchmarks/benchmarking/cases/go_base.py | 43 | CODE | |
| LOW | benchmarks/benchmarking/cases/go_base.py | 69 | CODE | |
| LOW | benchmarks/benchmarking/cases/go_base.py | 240 | CODE | |
| LOW | benchmarks/benchmarking/cases/go_base.py | 258 | CODE | |
| LOW | benchmarks/benchmarking/cases/hexion_memray.py | 237 | CODE | |
| LOW | benchmarks/benchmarking/cases/hexion_memray.py | 377 | CODE | |
| LOW | benchmarks/benchmarking/cases/hexion_memray.py | 151 | CODE | |
| LOW | benchmarks/benchmarking/cases/go_memray.py | 47 | CODE | |
| LOW | benchmarks/benchmarking/cases/go_memray.py | 73 | CODE | |
| LOW | benchmarks/benchmarking/cases/go_memray.py | 244 | CODE | |
| LOW | benchmarks/benchmarking/cases/go_memray.py | 262 | CODE | |
| LOW | benchmarks/benchmarking/cases/telco_memray.py | 35 | CODE | |
| LOW | src/memray/_ipython/flamegraph.py | 142 | CODE | |
| LOW | src/memray/commands/run.py | 40 | CODE | |
| LOW | src/memray/commands/run.py | 113 | CODE | |
| LOW | src/memray/commands/common.py | 141 | CODE | |
| LOW | src/memray/reporters/frame_tools.py | 38 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/unit/test_reader.py | 18 | # Create a valid allocation record file | COMMENT |
| MEDIUM | tests/unit/test_reader.py | 39 | # Create a valid allocation record file | COMMENT |
| MEDIUM | tests/integration/test_object_tracking.py | 9 | # Define a decorator for tests that require Python 3.13+ | COMMENT |
| MEDIUM | tests/integration/test_object_tracking.py | 15 | # Define a decorator for tests that verify version-check errors on older Python | COMMENT |
| MEDIUM | tests/integration/test_object_tracking.py | 49 | # Create a tracker without reference tracking (should work on all versions) | COMMENT |
| MEDIUM | tests/integration/test_object_tracking.py | 65 | # Create a tracker without reference tracking | COMMENT |
| MEDIUM | tests/integration/test_object_tracking.py | 298 | # Create an object in this thread | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …rks/benchmarking/cases/docutils_data/docs/dev/todo.txt | 807 | # ================= | COMMENT |
| MEDIUM⚡ | src/memray/_memray/record_writer.cpp | 383 | // ┌─┬─────┬─────┐ | COMMENT |
| MEDIUM⚡ | src/memray/_memray/record_writer.cpp | 385 | // └─┴─────┴─────┘ | COMMENT |
| MEDIUM⚡ | src/memray/_memray/record_writer.cpp | 390 | // │ └──────── Pointer cache index (0-15): | COMMENT |
| MEDIUM⚡ | src/memray/_memray/record_writer.cpp | 393 | // └──────────── Record type marker (always 1 for ALLOCATION) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | src/memray/_ipython/flamegraph.py | 0 | report temporary allocations, as opposed to leaked allocations or high watermark allocations. an allocation is considere | STRING |
| HIGH | src/memray/commands/tree.py | 0 | report temporary allocations, as opposed to leaked allocations or high watermark allocations. an allocation is considere | STRING |
| HIGH | src/memray/commands/summary.py | 0 | report temporary allocations, as opposed to leaked allocations or high watermark allocations. an allocation is considere | STRING |
| HIGH | src/memray/commands/common.py | 0 | report temporary allocations, as opposed to leaked allocations or high watermark allocations. an allocation is considere | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/memray/__init__.py | 18 | __all__ = [ | CODE |
| LOW | src/memray/_test.py | 59 | __all__ = [ | CODE |
| LOW | src/memray/_ipython/__init__.py | 10 | __all__ = ["load_ipython_extension"] | CODE |
| LOW | src/memray/reporters/tree.py | 95 | async def update_text_area(self) -> None: | CODE |
| LOW | src/memray/reporters/_textual_hacks.py | 23 | def update_key_description(bindings: Bindings, key: str, description: str) -> None: | CODE |
| LOW | src/memray/reporters/tui.py | 626 | def update_label(self) -> None: | CODE |
| LOW | src/memray/reporters/tui.py | 684 | def update_sort_key(self, col_number: int) -> None: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/integration/test_tracking.py | 789 | def test_function(): | CODE |
| LOW | tests/integration/test_tracking.py | 830 | def test_function(): | CODE |
| LOW | tests/integration/test_tracking.py | 862 | def test_function(): | CODE |
| LOW | tests/integration/test_tracking.py | 960 | def test_function(): | CODE |
| LOW | tests/integration/test_tracking.py | 985 | def test_function(): | CODE |
| LOW | tests/integration/test_tracking.py | 438 | def test_function(): | STRING |
| LOW | tests/integration/test_tracking.py | 475 | def test_function(): | STRING |
| LOW | tests/integration/test_tracking.py | 513 | def test_function(): | STRING |
| LOW | docs/tutorials/exercise_2/holding_onto_memory.py | 35 | def process_data() -> np.ndarray: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …mray/reporters/templates/assets/temporal_flamegraph.js | 9 | */t=e.nmd(t),function(){var i,o="Expected a function",u="__lodash_hash_undefined__",a="__lodash_placeholder__",c=16,l=3 | COMMENT |
| LOW | src/memray/reporters/templates/assets/table.js | 9 | */n=r.nmd(n),function(){var u,i="Expected a function",o="__lodash_hash_undefined__",a="__lodash_placeholder__",f=16,c=3 | COMMENT |
| LOW | src/memray/reporters/templates/assets/flamegraph.js | 9 | */t=e.nmd(t),function(){var i,o="Expected a function",u="__lodash_hash_undefined__",a="__lodash_placeholder__",c=16,f=3 | COMMENT |
| LOW | …memray/reporters/templates/assets/flamegraph_common.js | 9 | */t=r.nmd(t),function(){var i,u="Expected a function",o="__lodash_hash_undefined__",a="__lodash_placeholder__",f=16,c=3 | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | package-lock.json | 6263 | "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", | CODE |
| MEDIUM | package-lock.json | 11827 | "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", | CODE |
| LOW | src/memray/_ipython/flamegraph.py | 151 | # It already printed a message, just return control to IPython. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/integration/test_attach.py | 192 | except Exception: | STRING |
| LOW | src/memray/commands/attach.py | 268 | except Exception as exc: | CODE |
| LOW | src/memray/commands/attach.py | 283 | except Exception as exc: | STRING |
| MEDIUM | src/memray/commands/attach.py | 265 | def thread_body(): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/unit/test_tui_reporter.py | 161 | CODE | |
| LOW | …/tutorials/solutions/exercise_2/holding_onto_memory.py | 56 | CODE |