CrashReporter creates reports from the traceback if your python code crashes. The reports can be uploaded directly to the developers via email or web server. If no internet connection is available, crash reporter stores offline reports and later sends them when possible. When the crash occurs, the crash reporter will attempt to send it by email or upload it to the HQ server, if both methods fail, the crash is written to file in report_dir. The next time the script is run, the crash reporter will look for any offline reports and attempt to send them every check_interval seconds. After a sucessful upload, the stored reports are deleted.