# Path: hamster_lib/helpers/time.py
# def get_day_end(config):
# def end_day_to_datetime(end_day, config):
# def extract_time_info(text):
#     def get_time(time, seconds=None):
#     def get_date(date):
#     def date_time_from_groupdict(groupdict):
# def complete_timeframe(timeframe, config, partial=False):
#     def complete_start_date(date):
#     def complete_start_time(time, day_start):
#     def complete_start(date, time, config):
#     def complete_end_date(date):
#     def complete_end(date, time, config):
# def parse_time(time):
# def validate_start_end_range(range_tuple):


import pickle
from hamster_lib.helpers import time as time_helpers
    from hamster_lib import Fact
            front, back = front.strip(), back.strip()
        return (front, back)

    def comma_split(string):
        """
        Split string at the most left comma.

        Args:
            string (str): String to be processed. At this stage this should
                look something like ``<Category> and <tags>, <Description>


        Returns
            tuple: (category_and_tags, description). Both substrings have their
                leading/trailing whitespace removed.
                ``category_and_tags`` may include >=0 tags indicated by a leading ``#``.
                As we have used the most left ``,`` to separate both substrings that
                means that categories and tags can not contain any ``,`` but the
                description text may contain as many as wished.
        """

        result = string.split(',', 1)
        length = len(result)
        if length == 1:
            category, description = result[0].strip(), None
        else:
            category, description = tuple(result)
            category, description = category.strip(), description.strip()
        return (category.strip(), description)


# Path: hamster_lib/helpers/time.py
# def get_day_end(config):
# def end_day_to_datetime(end_day, config):
# def extract_time_info(text):
#     def get_time(time, seconds=None):
#     def get_date(date):
#     def date_time_from_groupdict(groupdict):
# def complete_timeframe(timeframe, config, partial=False):
#     def complete_start_date(date):
#     def complete_start_time(time, day_start):
#     def complete_start(date, time, config):
#     def complete_end_date(date):
#     def complete_end(date, time, config):
# def parse_time(time):
# def validate_start_end_range(range_tuple):


# Path: hamster_lib/helpers/helpers.py
import pickle
from hamster_lib.helpers import time as time_helpers
    from hamster_lib import Fact

            front, back = front.strip(), back.strip()
        return (front, back)

    def comma_split(string):
        """
        Split string at the most left comma.

        Args:
            string (str): String to be processed. At this stage this should
                look something like ``<Category> and <tags>, <Description>


        Returns
            tuple: (category_and_tags, description). Both substrings have their
                leading/trailing whitespace removed.
                ``category_and_tags`` may include >=0 tags indicated by a leading ``#``.
                As we have used the most left ``,`` to separate both substrings that
                means that categories and tags can not contain any ``,`` but the
                description text may contain as many as wished.
        """

        result = string.split(',', 1)
        length = len(result)
        if length == 1:
            category, description = result[0].strip(), None
        else:
            category, description = tuple(result)
            category, description = category.strip(), description.strip()
        return (category.strip(), description)


    time_info, rest = time_helpers.extract_time_info(raw_fact)