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

Method ast_from_object

crates/vm/src/stdlib/_ast/parameter.rs:49–97  ·  view source on GitHub ↗
(
        vm: &VirtualMachine,
        source_file: &SourceFile,
        object: PyObjectRef,
    )

Source from the content-addressed store, hash-verified

47 }
48
49 fn ast_from_object(
50 vm: &VirtualMachine,
51 source_file: &SourceFile,
52 object: PyObjectRef,
53 ) -> PyResult<Self> {
54 let kwonlyargs = Node::ast_from_object(
55 vm,
56 source_file,
57 get_node_field(vm, &object, "kwonlyargs", "arguments")?,
58 )?;
59 let kw_defaults = Node::ast_from_object(
60 vm,
61 source_file,
62 get_node_field(vm, &object, "kw_defaults", "arguments")?,
63 )?;
64 let kwonlyargs = merge_keyword_parameter_defaults(vm, kwonlyargs, kw_defaults)?;
65
66 let posonlyargs = Node::ast_from_object(
67 vm,
68 source_file,
69 get_node_field(vm, &object, "posonlyargs", "arguments")?,
70 )?;
71 let args = Node::ast_from_object(
72 vm,
73 source_file,
74 get_node_field(vm, &object, "args", "arguments")?,
75 )?;
76 let defaults = Node::ast_from_object(
77 vm,
78 source_file,
79 get_node_field(vm, &object, "defaults", "arguments")?,
80 )?;
81 let (posonlyargs, args) =
82 merge_positional_parameter_defaults(vm, posonlyargs, args, defaults)?;
83
84 Ok(Self {
85 node_index: Default::default(),
86 posonlyargs,
87 args,
88 vararg: get_node_field_opt(vm, &object, "vararg")?
89 .map(|obj| Node::ast_from_object(vm, source_file, obj))
90 .transpose()?,
91 kwonlyargs,
92 kwarg: get_node_field_opt(vm, &object, "kwarg")?
93 .map(|obj| Node::ast_from_object(vm, source_file, obj))
94 .transpose()?,
95 range: Default::default(),
96 })
97 }
98
99 fn is_none(&self) -> bool {
100 self.is_empty()

Callers

nothing calls this directly

Calls 7

ast_from_objectFunction · 0.85
get_node_fieldFunction · 0.85
get_node_field_optFunction · 0.85
range_from_objectFunction · 0.85
mapMethod · 0.45

Tested by

no test coverage detected