MCPcopy Create free account
hub / github.com/MaterializeInc/materialize / explain_file

Function explain_file

misc/python/materialize/mzexplore/common.py:266–302  ·  view source on GitHub ↗
(path: Path)

Source from the content-addressed store, hash-verified

264
265
266def explain_file(path: Path) -> ExplainFile | None:
267 filename = path.name.split(".")
268
269 if len(filename) == 5:
270 ext = filename.pop()
271 suffix = filename.pop()
272 stage = filename.pop()
273 explainee_type = filename.pop()
274 name = filename.pop()
275 elif len(filename) == 4:
276 ext = filename.pop()
277 suffix = None
278 stage = filename.pop()
279 explainee_type = filename.pop()
280 name = filename.pop()
281 else:
282 return None
283
284 parents = list(path.parents)
285 parents.reverse()
286 schema = parents.pop().name
287 database = parents.pop().name
288 item_type = parents.pop().name
289
290 try:
291 return ExplainFile(
292 database=database,
293 schema=schema,
294 name=name,
295 suffix=suffix,
296 item_type=ItemType(item_type.lower()),
297 explainee_type=ExplaineeType[explainee_type.upper()],
298 stage=ExplainStage[stage.upper()],
299 ext=ext,
300 )
301 except (KeyError, ValueError):
302 return None
303
304
305def explain_diff(base: ExplainFile, diff_suffix: str) -> ExplainFile:

Callers 1

changesFunction · 0.90

Calls 7

ExplainFileClass · 0.85
ItemTypeClass · 0.85
listFunction · 0.50
splitMethod · 0.45
popMethod · 0.45
lowerMethod · 0.45
upperMethod · 0.45

Tested by

no test coverage detected