def __init__(self, *, profile=False, logger=None):
<EOL>self._logger = logger or get_logger(name=__name__)<EOL>super().__init__()<EOL>self._cti_files = []<EOL>self._producers = []<EOL>self._systems = []<EOL>self._interfaces = []<EOL>self._device_info_list = []<EOL>self._ias = []<EOL>self._has_revised_device_list = False<EOL>self._timeout_for_update = <NUM_LIT:1000>  <EOL>if profile:<EOL><INDENT>from harvesters._private.core.helper.profiler import Profiler<EOL>self._profiler = Profiler()<EOL><DEDENT>else:<EOL><INDENT>self._profiler = None<EOL><DEDENT>if self._profiler:<EOL><INDENT>self._profiler.print_diff()<EOL><DEDENT>self._finalizer = weakref.finalize(self, self._reset)<EOL>
:param profile:
:param logger: