def start(self, on_add, on_update, on_delete):
handler = ConfigFileChangeHandler(<EOL>self.target_class, on_add, on_update, on_delete<EOL>)<EOL>for file_name in os.listdir(self.file_path):<EOL><INDENT>if os.path.isdir(os.path.join(self.file_path, file_name)):<EOL><INDENT>continue<EOL><DEDENT>if (<EOL>not self.target_class.config_subdirectory and<EOL>not (<EOL>file_name.endswith("<STR_LIT>") or file_name.endswith("<STR_LIT>")<EOL>)<EOL>):<EOL><INDENT>continue<EOL><DEDENT>handler.on_created(<EOL>events.FileCreatedEvent(<EOL>os.path.join(self.file_path, file_name)<EOL>)<EOL>)<EOL><DEDENT>observer = observers.Observer()<EOL>observer.schedule(handler, self.file_path)<EOL>observer.start()<EOL>return observer<EOL>
Starts monitoring the file path, passing along on_(add|update|delete)
callbacks to a watchdog observer.

Iterates over the files in the target path before starting the observer
and calls the on_created callback before starting the observer, so
that existing files aren't missed.