@@ -1253,7 +1253,11 @@ def to_excel(
12531253 df .to_excel (writer , sheet_name = main , freeze_panes = (1 , 1 ))
12541254
12551255 for name , view in views .items ():
1256+ if view is None :
1257+ continue
12561258 df , tview = self .view (view , return_view_def = True , verbose = max (verbose - 1 , 0 ))
1259+ if tview is None :
1260+ continue
12571261 memory = df .memory_usage (deep = True ).sum ()
12581262 if verbose :
12591263 print (
@@ -1668,8 +1672,11 @@ def view(
16681672 :param verbose: verbosity level
16691673 :return: dataframe
16701674 """
1675+ assert view_def is not None , "view_def is None, this is not allowed."
16711676 if isinstance (view_def , str ):
16721677 view_def = self .make_view_def (view_def )
1678+ if view_def is None :
1679+ return (None , None ) if return_view_def else None
16731680 return super ().view (view_def , return_view_def = return_view_def , verbose = verbose )
16741681
16751682 def make_view_def (self , name : str ) -> CubeViewDef :
@@ -1892,14 +1899,6 @@ def mean_geo(gr):
18921899 f_highlight = f_bucket ,
18931900 order = order ,
18941901 ),
1895- "cmd" : lambda : CubeViewDef (
1896- key_index = index_cols ,
1897- values = self ._filter_column (["CMD" ], self .values ),
1898- ignore_unique = True ,
1899- keep_columns_in_index = ["suite" ],
1900- name = "cmd" ,
1901- order = order ,
1902- ),
19031902 "onnx" : lambda : CubeViewDef (
19041903 key_index = index_cols ,
19051904 values = self ._filter_column (
@@ -1927,11 +1926,25 @@ def mean_geo(gr):
19271926 no_index = True ,
19281927 ),
19291928 }
1930- assert name in implemented_views , (
1929+
1930+ cmd_col = self ._filter_column (["CMD" ], self .values , can_be_empty = True )
1931+ if cmd_col :
1932+ implemented_views ["cmd" ] = lambda : CubeViewDef (
1933+ key_index = index_cols ,
1934+ values = cmd_col ,
1935+ ignore_unique = True ,
1936+ keep_columns_in_index = ["suite" ],
1937+ name = "cmd" ,
1938+ order = order ,
1939+ )
1940+
1941+ assert name in implemented_views or name in {"cmd" }, (
19311942 f"Unknown view { name !r} , expected a name in { sorted (implemented_views )} ,"
19321943 f"\n --\n keys={ pprint .pformat (sorted (self .keys_time ))} , "
19331944 f"\n --\n values={ pprint .pformat (sorted (self .values ))} "
19341945 )
1946+ if name not in implemented_views :
1947+ return None
19351948 return implemented_views [name ]()
19361949
19371950 def post_load_process_piece (
0 commit comments