MCPcopy Index your code
hub / github.com/RustPython/RustPython / next_external_frame_with_skip

Function next_external_frame_with_skip

crates/vm/src/warn.rs:528–544  ·  view source on GitHub ↗

Like Frame::next_external_frame but also skips frames matching prefixes.

(
    frame: &crate::frame::FrameRef,
    skip_file_prefixes: Option<&PyTupleRef>,
    vm: &VirtualMachine,
)

Source from the content-addressed store, hash-verified

526
527/// Like Frame::next_external_frame but also skips frames matching prefixes.
528fn next_external_frame_with_skip(
529 frame: &crate::frame::FrameRef,
530 skip_file_prefixes: Option<&PyTupleRef>,
531 vm: &VirtualMachine,
532) -> Option<crate::frame::FrameRef> {
533 let mut f = frame.f_back(vm);
534 loop {
535 let current: crate::frame::FrameRef = f.take()?;
536 if current.is_internal_frame()
537 || skip_file_prefixes.is_some_and(|p| is_filename_to_skip(&current, p))
538 {
539 f = current.f_back(vm);
540 } else {
541 return Some(current);
542 }
543 }
544}
545
546/// filename, module, and registry are new refs, globals is borrowed
547/// Returns `Ok` on success, or `Err` on error (no new refs)

Callers 1

setup_contextFunction · 0.85

Calls 5

is_filename_to_skipFunction · 0.85
f_backMethod · 0.80
is_internal_frameMethod · 0.80
SomeClass · 0.50
takeMethod · 0.45

Tested by

no test coverage detected