|
|
|
@ -61,12 +61,14 @@ def _dictlist():
|
|
|
|
|
class SummaryRecord:
|
|
|
|
|
"""
|
|
|
|
|
SummaryRecord is used to record the summary data and lineage data.
|
|
|
|
|
The API will create a summary file and a lineage file lazily in a given directory and writes data to them.
|
|
|
|
|
It writes the data to files by executing the record method. In addition to record the data bubbled up from
|
|
|
|
|
the network by defining the summary operators, SummaryRecord also supports to record extra data which
|
|
|
|
|
can be added by calling add_value.
|
|
|
|
|
|
|
|
|
|
Note:
|
|
|
|
|
The API will create a summary file and a lineage file lazily in a given directory and writes data to them.
|
|
|
|
|
It writes the data to files by executing the record method. In addition to record the data bubbled up from
|
|
|
|
|
the network by defining the summary operators, SummaryRecord also supports to record extra data which
|
|
|
|
|
can be added by calling add_value. Finally, make sure to close the SummaryRecord object at the end.
|
|
|
|
|
Make sure to close the SummaryRecord at the end, or the process will NOT exit.
|
|
|
|
|
Please see the Example section below on how to properly close with two ways.
|
|
|
|
|
|
|
|
|
|
Args:
|
|
|
|
|
log_dir (str): The log_dir is a directory location to save the summary.
|
|
|
|
@ -81,8 +83,15 @@ class SummaryRecord:
|
|
|
|
|
RuntimeError: If the log_dir can not be resolved to a canonicalized absolute pathname.
|
|
|
|
|
|
|
|
|
|
Examples:
|
|
|
|
|
>>> # use in with statement to auto close
|
|
|
|
|
>>> with SummaryRecord(log_dir="/opt/log", file_prefix="xxx_", file_suffix="_yyy") as summary_record:
|
|
|
|
|
>>> pass
|
|
|
|
|
>>>
|
|
|
|
|
>>> # use in try .. finally .. to ensure closing
|
|
|
|
|
>>> try:
|
|
|
|
|
>>> summary_record = SummaryRecord(log_dir="/opt/log")
|
|
|
|
|
>>> finally:
|
|
|
|
|
>>> summary_record.close()
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
def __init__(self,
|
|
|
|
@ -310,8 +319,10 @@ class SummaryRecord:
|
|
|
|
|
Flush all events and close summary records. Please use with statement to autoclose.
|
|
|
|
|
|
|
|
|
|
Examples:
|
|
|
|
|
>>> with SummaryRecord(log_dir="/opt/log", file_prefix="xxx_", file_suffix="_yyy") as summary_record:
|
|
|
|
|
>>> pass # summary_record autoclosed
|
|
|
|
|
>>> try:
|
|
|
|
|
>>> summary_record = SummaryRecord(log_dir="/opt/log")
|
|
|
|
|
>>> finally:
|
|
|
|
|
>>> summary_record.close()
|
|
|
|
|
"""
|
|
|
|
|
if not self._closed and self._event_writer:
|
|
|
|
|
# event writer flush and close
|
|
|
|
|