in cartography/driftdetect/detect_drift.py [0:0]
def perform_drift_detection(session, expect_folder, update):
"""
Perform Drift Detection
:type session: neo4j_session
:param session: session with infrastructure information
:type expect_folder: string
:param expect_folder: detector directory
:type update: Decides whether or not to update the graph
:param update: boolean
:return: list of tuples of drift dictionaries and detectors
"""
drift_info_detector_pairs = []
for root, _, filenames in os.walk(expect_folder):
for filename in filenames:
file_path = os.path.join(root, filename)
try:
detector = load_detector_from_json_file(file_path)
for drift_info in detector.run(session, update):
drift_info_detector_pairs.append((drift_info, detector))
if update:
try:
write_detector_to_json_file(detector, file_path)
except ValidationError as err:
msg = "Unable to save DriftDetector from file {0}.\n{1}".format(file_path, err.messages)
logger.exception(msg)
except ValidationError as err:
msg = "Unable to create DriftDetector from file {0}.\n{1}".format(file_path, err.messages)
logger.exception(msg)
return drift_info_detector_pairs