From 4e728f610607de058d2bcbff78cb8d21afc0f57d Mon Sep 17 00:00:00 2001
From: David Schaefer <david.schaefer@ufz.de>
Date: Wed, 11 Dec 2019 20:58:55 +0100
Subject: [PATCH] changed default nan plotting, as this might lead to really
 messy plots

---
 saqc/__main__.py     | 45 ++++++++++++++++++++++++++++++++++++++++++++
 saqc/lib/plotting.py |  2 +-
 2 files changed, 46 insertions(+), 1 deletion(-)
 create mode 100644 saqc/__main__.py

diff --git a/saqc/__main__.py b/saqc/__main__.py
new file mode 100644
index 000000000..53bc2d8a6
--- /dev/null
+++ b/saqc/__main__.py
@@ -0,0 +1,45 @@
+#! /usr/bin/env python
+# -*- coding: utf-8 -*-
+
+import click
+
+import numpy as np
+import pandas as pd
+
+from saqc.core import runner
+from saqc.flagger import CategoricalFlagger
+
+FLAGGERS = {
+    "number": CategoricalFlagger([-1, 0, 1]),
+    "string": CategoricalFlagger(["NIL", "OK", "BAD"])
+}
+
+@click.command()
+@click.option("-c", "--config", type=click.Path(exists=True), required=True, help="path to the configuration file")
+@click.option("-d", "--data", type=click.Path(exists=True), required=True, help="path to the data file")
+@click.option("--flagger", default="string", type=click.Choice(FLAGGERS.keys()), help="the flagging scheme to use")
+@click.option("--fail/--no-fail", default=True, help="whether to stop the program run on errors")
+@click.option("--nodata", default=np.nan, help="the nodata value")
+@click.option("--plot/--noplot", default=False, help="whether to plot the results")
+def main(config, data, flagger, fail, nodata, plot):
+
+    data = pd.read_csv(
+        data,
+        index_col=0,
+        parse_dates=True,
+    )
+
+    data, flagger = runner(
+        config_file=config,
+        flagger=FLAGGERS[flagger],
+        data=data,
+        nodata=nodata,
+        error_policy="raise" if fail else "warn"
+    )
+
+    # TODO: write file
+    flags = flagger.getFlags()
+
+
+if __name__ == "__main__":
+    main()
diff --git a/saqc/lib/plotting.py b/saqc/lib/plotting.py
index 900efcad2..4d3f85bae 100644
--- a/saqc/lib/plotting.py
+++ b/saqc/lib/plotting.py
@@ -16,7 +16,7 @@ def plotAllHook(data, flagger):
         _plot(data, flagger, True, __plotvars)
 
 
-def plotHook(data, old, new, varname, do_plot, flag_test, plot_nans=True):
+def plotHook(data, old, new, varname, do_plot, flag_test, plot_nans=False):
     # old/new: flagger
     if do_plot:
         __plotvars.append(varname)
-- 
GitLab