@@ -42,17 +42,19 @@ def __new__(cls, filename, **kwargs):
4242 return super ().__new__ (cls )
4343
4444 @staticmethod
45- def load (filename , force_recalculation = False , ** kwargs ):
45+ def load (filename , force_recalculation = False , tag = None , ** kwargs ):
4646
4747 if force_recalculation is False :
4848 # First try to open file as if it *is* a summary file
4949 try :
50- return Trace ._load_from_summary_file (filename , ** kwargs )
50+ summaryloaded = Trace ._load_from_summary_file (
51+ filename , tag = tag , ** kwargs
52+ )
5153 except WrongLoaderError :
5254 # Otherwise, see if it has a summaryfile present
5355 try :
54- return Trace ._load_from_summary_file (
55- Trace .get_summary_filename (filename ), ** kwargs
56+ summaryloaded = Trace ._load_from_summary_file (
57+ Trace .get_summary_filename (filename ), tag = tag , ** kwargs
5658 )
5759 # Fallback - assume valid trace with no summary
5860 except (WrongLoaderError , FileNotFoundError ):
@@ -62,21 +64,21 @@ def load(filename, force_recalculation=False, **kwargs):
6264 for loader in Trace ._loader_registry .values ():
6365 try :
6466 return loader (
65- filename , force_recalculation = force_recalculation , ** kwargs
67+ filename , force_recalculation = force_recalculation , tag = tag , ** kwargs
6668 )
6769 except WrongLoaderError :
6870 pass
6971
7072 raise ValueError ("Invalid or unsupported trace {}" .format (filename ))
7173
7274 @staticmethod
73- def _load_from_summary_file (filename , ** kwargs ):
75+ def _load_from_summary_file (filename , tag = None , ** kwargs ):
7476
7577 # This will raise a WrongLoader error already so no need to trap and reraise
7678 metadata , _ = Trace ._parse_summary_file (filename )
7779
7880 try :
79- return Trace ._loader_registry [metadata .trace_subclass_name ](
81+ trace = Trace ._loader_registry [metadata .trace_subclass_name ](
8082 filename , ** kwargs
8183 )
8284 except KeyError :
@@ -86,7 +88,12 @@ def _load_from_summary_file(filename, **kwargs):
8688 "" .format (metadata .trace_subclass_name )
8789 )
8890
89- def __init__ (self , filename , force_recalculation = False , ** kwargs ):
91+ if tag is not None :
92+ warn ("Loading from summary, tag argument ignored" )
93+
94+ return trace
95+
96+ def __init__ (self , filename , force_recalculation = False , tag = None , ** kwargs ):
9097 # Save keyword args for later
9198 self ._kwargs = kwargs
9299
@@ -115,6 +122,8 @@ def __init__(self, filename, force_recalculation=False, **kwargs):
115122 pass
116123
117124 self ._metadata = TraceMetadata (self )
125+ if tag :
126+ self ._metadata .tag = tag
118127 self ._statistics = None
119128
120129 # Loading from a tracefile so
0 commit comments