Преглед на файлове

Updated file to implement periodic metrics extraction (stub)

William N. Havard преди 2 години
родител
ревизия
65e1730618
променени са 2 файла, в които са добавени 37 реда и са изтрити 22 реда
  1. 30 21
      CODE/metrics.py
  2. 7 1
      Makefile

+ 30 - 21
CODE/metrics.py

@@ -4,34 +4,17 @@
 
 import argparse
 import datetime
-from functools import partial, reduce
-import pandas as pd
-import numpy as np
-import multiprocessing as mp
-from pathlib import Path
+from functools import reduce
 import os
+import warnings
 
 import datalad.api
-from datalad.distribution.dataset import require_dataset
+import pandas as pd
 
 from ChildProject.projects import ChildProject
 from ChildProject.annotations import AnnotationManager
 from ChildProject.pipelines.metrics import LenaMetrics, AclewMetrics
 
-import warnings
-
-warnings.filterwarnings("ignore")
-
-parser = argparse.ArgumentParser(description="compute metrics")
-parser.add_argument(
-    "pipeline", help="pipeline to run", choices=["aclew", "lena", "children"]
-)
-parser.add_argument("output", help="output file")
-parser.add_argument("--experiments", nargs="+", default=[])
-parser.add_argument("--threads", default=0, type=int)
-args = parser.parse_args()
-
-
 def date_is_valid(date, fmt):
     try:
         datetime.datetime.strptime(date, fmt)
@@ -41,7 +24,7 @@ def date_is_valid(date, fmt):
     return True
 
 
-if __name__ == "__main__":
+def compute_metrics(args):
 
     if len(args.experiments):
         experiments = args.experiments
@@ -173,3 +156,29 @@ if __name__ == "__main__":
         }
         data = data[columns]
         data.set_index("child_id").to_csv(args.output)
+
+def main(args):
+    compute_metrics(args)
+
+
+def _parse_args(argv):
+    warnings.filterwarnings("ignore")
+
+    parser = argparse.ArgumentParser(description="compute metrics")
+    parser.add_argument(
+        "pipeline", help="pipeline to run", choices=["aclew", "lena", "children", "period"]
+    )
+    parser.add_argument("output", help="output file")
+    parser.add_argument("--experiments", nargs="+", default=[])
+    parser.add_argument("--threads", default=0, type=int)
+    parser.add_argument("--period", default=None, type=str)
+    args = parser.parse_args(argv)
+
+    return args
+
+if __name__ == '__main__':
+    import sys
+    pgrm_name, argv = sys.argv[0], sys.argv[1:]
+    args = _parse_args(argv)
+
+    main(**args)

+ 7 - 1
Makefile

@@ -1,6 +1,6 @@
 # Original file: https://gin.g-node.org/EL1000/metrics
 
-all: aclew_metrics.csv lena_metrics.csv children.csv
+all: aclew_metrics.csv lena_metrics.csv aclew_metrics_hours.csv lena_metrics_hours.csv children.csv
 
 aclew_metrics.csv: alice vcm vtc
 	python CODE/metrics.py aclew DATA/aclew_metrics.csv
@@ -8,6 +8,12 @@ aclew_metrics.csv: alice vcm vtc
 lena_metrics.csv: its
 	python CODE/metrics.py lena DATA/lena_metrics.csv
 
+# aclew_metrics_hour.csv: alice vcm vtc
+# 	python CODE/metrics.py aclew DATA/aclew_metrics.csv
+#
+# lena_metrics_hours.csv: its
+# 	python CODE/metrics.py lena DATA/lena_metrics.csv
+
 children.csv: its
 	python CODE/metrics.py children DATA/children.csv