diff --git a/dayliopy/fit_model.py b/dayliopy/fit_model.py index 146cd67..e577b13 100755 --- a/dayliopy/fit_model.py +++ b/dayliopy/fit_model.py @@ -17,6 +17,7 @@ import pandas as pd import statsmodels.api +from .lib import CSV_ENCODING from .lib.config import AppConf @@ -79,7 +80,7 @@ def fit_model_to_csv(csv_in_path: str): :param csv_in_path: Path to cleaned CSV. """ - df = pd.read_csv(csv_in_path) + df = pd.read_csv(csv_in_path, encoding=CSV_ENCODING) encoded_df = prepare_data(df) diff --git a/dayliopy/lib/__init__.py b/dayliopy/lib/__init__.py index 0a73f30..3c0720d 100644 --- a/dayliopy/lib/__init__.py +++ b/dayliopy/lib/__init__.py @@ -5,3 +5,8 @@ APP_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), os.path.pardir)) + +# Encoding added to avoid error on Windows +# https://github.com/MichaelCurrin/daylio-csv-parser/issues/25 + +CSV_ENCODING = "latin-1" diff --git a/dayliopy/mood_report.py b/dayliopy/mood_report.py index 9e8e18c..cc154a2 100755 --- a/dayliopy/mood_report.py +++ b/dayliopy/mood_report.py @@ -4,6 +4,7 @@ """ import pandas as pd +from .lib import CSV_ENCODING from .lib.config import AppConf @@ -51,12 +52,15 @@ def make_report(csv_in_path: str) -> None: """ Make report from input CSV and show. + :param: csv_in_path: Path to cleaned CSV, as generated by clean_csv.py application. :return: None """ - df = pd.read_csv(csv_in_path, usecols=["mood_label", "mood_score"]) + df = pd.read_csv( + csv_in_path, usecols=["mood_label", "mood_score"], encoding=CSV_ENCODING + ) print_aggregate_stats(df, "mood_score") print()