diff --git a/dpdata/system.py b/dpdata/system.py index 3be86ef48..43526f33e 100644 --- a/dpdata/system.py +++ b/dpdata/system.py @@ -93,6 +93,7 @@ def __init__( step=1, data=None, convergence_check=True, + post_func_skip_list=None, **kwargs, ): """Constructor. @@ -163,6 +164,8 @@ def __init__( The raw data of System class. convergence_check : boolean Whether to request a convergence check. + post_func_skip_list : list of str + The list of post function names to skip. **kwargs : dict other parameters """ @@ -180,6 +183,9 @@ def __init__( return if file_name is None: return + self.post_func_skip_list = ( + post_func_skip_list if post_func_skip_list is not None else [] + ) self.from_fmt( file_name, fmt, @@ -229,7 +235,12 @@ def from_fmt_obj(self, fmtobj, file_name, **kwargs): self.data = {**self.data, **data} self.check_data() if hasattr(fmtobj.from_system, "post_func"): + assert isinstance( + self.post_func_skip_list, list + ), "post_func_skip_list should be a list of string" for post_f in fmtobj.from_system.post_func: + if post_f in self.post_func_skip_list: + continue self.post_funcs.get_plugin(post_f)(self) return self