MCPcopy Create free account
hub / github.com/atomicdotdev/atomic / extract_class

Method extract_class

atomic-semantic/src/parsers/python.rs:187–208  ·  view source on GitHub ↗

Extract a class definition.

(&self, node: &Node, source: &str, file_path: &str)

Source from the content-addressed store, hash-verified

185
186 /// Extract a class definition.
187 fn extract_class(&self, node: &Node, source: &str, file_path: &str) -> Option<Entity> {
188 let name_node = node.child_by_field_name("name")?;
189 let name = self.node_text(&name_node, source);
190
191 let line = node.start_position().row as u32 + 1;
192 let end_line = node.end_position().row as u32 + 1;
193
194 // Build class signature with base classes
195 let signature = self.build_class_signature(node, source);
196
197 let exported = !name.starts_with('_');
198
199 let mut entity = Entity::new(name, EntityKind::Class, file_path, line, end_line);
200 if let Some(sig) = signature {
201 entity = entity.with_signature(sig);
202 }
203 if exported {
204 entity.exported = true;
205 }
206
207 Some(entity)
208 }
209
210 /// Extract a module-level assignment (`X = 42` or `X: int = 42`).
211 fn extract_assignment(&self, node: &Node, source: &str, file_path: &str) -> Option<Entity> {

Callers 1

walk_treeMethod · 0.45

Calls 3

with_signatureMethod · 0.80
node_textMethod · 0.45
build_class_signatureMethod · 0.45

Tested by

no test coverage detected