@@ -62,13 +62,11 @@ def build_graph(self) -> list[DependencyProblem]:
6262 def build_inherited_context (self , child_path : Path ) -> InheritedContext :
6363 tree , nodes , problems = self ._parse_and_extract_nodes ()
6464 if problems :
65- # TODO: bubble up problems via InheritedContext
66- logger .warning (f"Failed to parse: { problems } " )
67- return InheritedContext (None , False )
65+ return InheritedContext (None , False , problems )
6866 assert tree is not None , "no problems should yield a tree"
6967 if len (nodes ) == 0 :
70- return InheritedContext (tree , False )
71- context = InheritedContext (Tree .new_module (), False )
68+ return InheritedContext (tree , False , [] )
69+ context = InheritedContext (Tree .new_module (), False , [] )
7270 assert context .tree is not None , "Tree should be initialized"
7371 last_line = - 1
7472 for base_node in nodes :
@@ -123,22 +121,31 @@ def _build_graph_from_node(self, base_node: NodeBase) -> Iterable[DependencyProb
123121 elif isinstance (base_node , MagicLine ):
124122 yield from base_node .build_dependency_graph (self ._context .parent )
125123 else :
126- logger .warning (f"Can't build graph for node { NodeBase .__name__ } of type { type (base_node ).__name__ } " )
124+ problem = DependencyProblem .from_node (
125+ "unsupported-node-type" ,
126+ f"Can't build graph for node { NodeBase .__name__ } of type { type (base_node ).__name__ } " ,
127+ base_node .node ,
128+ )
129+ yield problem
127130
128131 def _build_inherited_context_from_node (self , base_node : NodeBase , child_path : Path ) -> InheritedContext :
129132 if isinstance (base_node , SysPathChange ):
130133 self ._mutate_path_lookup (base_node )
131- return InheritedContext (None , False )
134+ return InheritedContext (None , False , [] )
132135 if isinstance (base_node , ImportSource ):
133136 # nothing to do, Astroid takes care of imports
134- return InheritedContext (None , False )
137+ return InheritedContext (None , False , [] )
135138 if isinstance (base_node , NotebookRunCall ):
136139 # nothing to do, dbutils.notebook.run uses a dedicated context
137- return InheritedContext (None , False )
140+ return InheritedContext (None , False , [] )
138141 if isinstance (base_node , MagicLine ):
139142 return base_node .build_inherited_context (self ._context , child_path )
140- logger .warning (f"Can't build inherited context for node { NodeBase .__name__ } of type { type (base_node ).__name__ } " )
141- return InheritedContext (None , False )
143+ problem = DependencyProblem .from_node (
144+ "unsupported-node-type" ,
145+ f"Can't build inherited context for node { NodeBase .__name__ } of type { type (base_node ).__name__ } " ,
146+ base_node .node ,
147+ )
148+ return InheritedContext (None , False , [problem ])
142149
143150 def _register_import (self , base_node : ImportSource ) -> Iterable [DependencyProblem ]:
144151 prefix = ""
0 commit comments