Memray is a memory profiler for Python
This report summarizes scanner evidence for bloomberg/memray, a Python project with 15,372 GitHub stars. SynthScan examined 81,907 lines of code across 263 source files, recording 632 pattern matches distributed across 13 syntactic categories. The legacy adjusted pattern signal is 7.5 (Moderate pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 574 finding(s).
Are imports declared and package/API names verified? 39 finding(s).
Are wrappers, guards, and repeated structures necessary? 501 finding(s).
Which changes need focused human review? 632 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 632 distinct pattern matches across 13 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. 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 configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| 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 | 16 | def filter_relevant_allocations(records, ranged=False): | CODE |
| LOW | tests/utils.py | 33 | 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 | 174 | def test_get_histogram_databins(): | CODE |
| LOW | tests/unit/test_stats_reporter.py | 209 | def test_get_histogram_databins_rounding(): | CODE |
| LOW | tests/unit/test_stats_reporter.py | 243 | def test_get_histogram_over_bound(): | CODE |
| LOW | tests/unit/test_stats_reporter.py | 271 | def test_get_histogram_all_allocations_same_size(): | CODE |
| LOW | tests/unit/test_stats_reporter.py | 293 | def test_get_histogram_databins_invalid_bins(): | CODE |
| LOW | tests/unit/test_stats_reporter.py | 337 | def test_draw_histogram_smaller_scale_factor(): | CODE |
| LOW | tests/unit/test_stats_reporter.py | 377 | def test_draw_histogram_invalid_input(): | CODE |
| LOW | tests/unit/test_stats_reporter.py | 509 | def test_stats_terminal_skips_empty_modules(empty_module_stats): | CODE |
| LOW | tests/unit/test_stats_reporter.py | 518 | def test_stats_json_includes_empty_module_list(empty_module_stats, tmp_path): | 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 |
| 420 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/commands/attach.py | 501 | 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 | int d_version{CURRENT_HEADER_VERSION}; | COMMENT |
| LOW | src/memray/_memray/record_writer.cpp | 401 | // ALLOCATION ENCODING: 0b1ppppaaa | 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 | 361 | { | COMMENT |
| LOW | src/memray/_memray/tracking_api.h | 1 | #pragma once | COMMENT |
| LOW | src/memray/_memray/tracking_api.h | 21 | #include <unwind.h> | 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/records.h | 1 | #pragma once | COMMENT |
| LOW | src/memray/_memray/records.h | 21 | const int CURRENT_HEADER_VERSION = 13; | 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 | 16 | CODE | |
| LOW | tests/utils.py | 33 | CODE | |
| LOW | tests/integration/test_native_tracking.py | 23 | CODE | |
| LOW | tests/integration/test_socket.py | 362 | CODE | |
| LOW | tests/integration/test_attach.py | 170 | 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 | 141 | CODE | |
| LOW | src/memray/commands/run.py | 39 | CODE | |
| LOW | src/memray/commands/run.py | 112 | CODE | |
| LOW | src/memray/commands/common.py | 144 | CODE | |
| LOW | src/memray/reporters/frame_tools.py | 42 | 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 | 404 | // ┌─┬─────┬─────┐ | COMMENT |
| MEDIUM⚡ | src/memray/_memray/record_writer.cpp | 406 | // └─┴─────┴─────┘ | COMMENT |
| MEDIUM⚡ | src/memray/_memray/record_writer.cpp | 411 | // │ └──────── Pointer cache index (0-15): | COMMENT |
| MEDIUM⚡ | src/memray/_memray/record_writer.cpp | 414 | // └──────────── Record type marker (always 1 for ALLOCATION) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/unit/test_reader.py | 62 | except OSError: | CODE |
| HIGH | benchmarks/benchmarking/cases/docutils_html_base.py | 17 | except ImportError: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/memray/__init__.py | 18 | __all__ = [ | CODE |
| LOW | src/memray/_test.py | 65 | __all__ = [ | CODE |
| LOW | src/memray/_ipython/__init__.py | 10 | __all__ = ["load_ipython_extension"] | CODE |
| LOW | src/memray/commands/__init__.py | 14 | __all__ = ["get_argument_parser", "main"] | 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 | 561 | def update_label(self) -> None: | CODE |
| LOW | src/memray/reporters/tui.py | 619 | def update_sort_key(self, col_number: int) -> None: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/integration/test_tracking.py | 836 | def test_function(): | CODE |
| LOW | tests/integration/test_tracking.py | 877 | def test_function(): | CODE |
| LOW | tests/integration/test_tracking.py | 909 | def test_function(): | CODE |
| LOW | tests/integration/test_tracking.py | 1007 | def test_function(): | CODE |
| LOW | tests/integration/test_tracking.py | 1032 | def test_function(): | CODE |
| LOW | tests/integration/test_tracking.py | 485 | def test_function(): | STRING |
| LOW | tests/integration/test_tracking.py | 522 | def test_function(): | STRING |
| LOW | tests/integration/test_tracking.py | 560 | 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 | 6293 | "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", | CODE |
| MEDIUM | package-lock.json | 11859 | "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", | CODE |
| LOW | src/memray/_ipython/flamegraph.py | 152 | # It already printed a message, just return control to IPython. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/integration/test_attach.py | 195 | except Exception: | STRING |
| LOW | src/memray/commands/attach.py | 284 | except Exception as exc: | CODE |
| LOW | src/memray/commands/attach.py | 299 | except Exception as exc: | STRING |
| MEDIUM | src/memray/commands/attach.py | 281 | 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 |