diff --git a/git_time_tracker/source/csv_file.py b/git_time_tracker/source/csv_file.py index ab36b66..5e26973 100644 --- a/git_time_tracker/source/csv_file.py +++ b/git_time_tracker/source/csv_file.py @@ -10,7 +10,8 @@ logger = getLogger(__name__) def iterate_samples_from_dicts(rows: list[dict[str, Any]]) -> Iterator[ActivitySample]: - assert len(rows) > 0 + if len(rows) == 0: + raise ValueError("No rows provided") if True: event_data = rows[len(rows) // 2] # Hopefully select a useful representative. @@ -18,8 +19,8 @@ def iterate_samples_from_dicts(rows: list[dict[str, Any]]) -> Iterator[ActivityS logger.info('Found possible keys: %s', possible_keys) del event_data - assert len(possible_keys.time_start) + len(possible_keys.time_end) >= 1 - assert len(possible_keys.image) >= 0 + if len(possible_keys.time_start) + len(possible_keys.time_end) < 1: + raise ValueError("No time columns found in data") for event_data in rows: """ @@ -46,5 +47,6 @@ def iterate_samples_from_dicts(rows: list[dict[str, Any]]) -> Iterator[ActivityS def iterate_samples_from_csv_file(file_path: Path) -> Iterator[ActivitySample]: dicts = load_csv_file(file_path) samples = list(iterate_samples_from_dicts(dicts)) - assert len(samples) > 0, 'Did not found any samples' + if len(samples) == 0: + raise ValueError('Did not find any samples') yield from samples diff --git a/git_time_tracker/source/git_repo.py b/git_time_tracker/source/git_repo.py index 2e06c71..b11d4de 100644 --- a/git_time_tracker/source/git_repo.py +++ b/git_time_tracker/source/git_repo.py @@ -27,7 +27,8 @@ def determine_project_name(repo: git.Repo) -> str: def get_samples_from_project(repo: git.Repo) -> Iterator[ActivitySample]: project_name = determine_project_name(repo) - assert project_name is not None + if project_name is None: + raise ValueError("Could not determine project name") # TODO: Branch on main or master or default diff --git a/personal_data/util.py b/personal_data/util.py index 9a2f9d8..04072fb 100644 --- a/personal_data/util.py +++ b/personal_data/util.py @@ -101,7 +101,8 @@ def dataclass_to_dict(obj) -> dict[str, Any]: def normalize_dict(d: dict[str, Any] | frozendict[str, Any]) -> frozendict[str, Any]: if not isinstance(d, dict) and not isinstance(d, frozendict): d = dataclass_to_dict(d) - assert isinstance(d, dict) or isinstance(d, frozendict), 'Not a dict' + if not isinstance(d, (dict, frozendict)): + raise TypeError('Expected dict or frozendict') safe_values = [ (k, csv_import.csv_str_to_value(csv_import.csv_safe_value(v))) for k, v in d.items()