def __init__(self, flags_repr=None, add_date_to_bottom=None, date_format='<STR_LIT>'):
self.flags_repr = flags_repr or self.ENTRY_FLAGS_REPR<EOL>self.add_date_to_bottom = add_date_to_bottom<EOL>self.date_format = date_format<EOL>self.entry_line_regexp = self.ENTRY_LINE_REGEXP % {'<STR_LIT>': re.escape('<STR_LIT>'.join(self.flags_repr.values()))}<EOL>
If `flags_repr` is set, it must be a :class:`dict` where keys are supported flags from
:class:`~taxi.timesheet.lines.Entry` and the values are a single characters that are unique among all the
flags.

If `add_date_to_bottom` is set, it will define whether new dates should be added to the bottom (`True`) or to
the top (`False`) of the lines. If it's set to `None`, it means the direction detection will be automatic based
on the existing lines.

`date_format` is the output date format when transforming the lines to text. This should be a format supported
by :py:obj:`datetime.date.strftime`: