File hierarchy added
authorPlamen Dimitrov <plamen.dimitrov@intra2net.com>
Thu, 28 Jun 2012 14:23:00 +0000 (16:23 +0200)
committerPlamen Dimitrov <plamen.dimitrov@intra2net.com>
Thu, 28 Jun 2012 14:23:00 +0000 (16:23 +0200)
.gitignore
sample_performance_report.txt [deleted file]
src/caching_data.py [moved from caching_data.py with 100% similarity]
src/confscript.cfg [moved from confscript.cfg with 100% similarity]
src/fix_imap_internaldate.py [moved from fix_imap_internaldate.py with 100% similarity]
src/mail_date_parser.py [moved from mail_date_parser.py with 100% similarity]
src/mail_iterator.py [moved from mail_iterator.py with 71% similarity]
src/mailbox_state.py [moved from mailbox_state.py with 100% similarity]
src/unit_tester.py [moved from unit_tester.py with 100% similarity]
src/userdata.csv [moved from userdata.csv with 100% similarity]

index 978f1b0..fd368ef 100644 (file)
 build/
 bin/
 
-.metadata/
-.project
-.pydevproject
-__pycache__/
+src/.metadata/
+src/.project
+src/.pydevproject
+src/__pycache__/
 
 # kdevelop
 .kdev4
diff --git a/sample_performance_report.txt b/sample_performance_report.txt
deleted file mode 100644 (file)
index 8b80c4b..0000000
+++ /dev/null
@@ -1,1066 +0,0 @@
-CACHING PERFORMANCE REPORT:
----------------------------
-
-STATISTICS WITHOUT CACHING:
-
-64349556 function calls (64349003 primitive calls) in 1052.038 seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.000    0.000 __init__.py:1001(_StderrHandler)
-        1    0.000    0.000    0.000    0.000 __init__.py:1007(__init__)
-        1    0.000    0.000    0.000    0.000 __init__.py:1025(PlaceHolder)
-        1    0.000    0.000    0.000    0.000 __init__.py:1069(Manager)
-        1    0.000    0.000    0.000    0.000 __init__.py:1074(__init__)
-        1    0.000    0.000    0.000    0.000 __init__.py:1177(Logger)
-        1    0.000    0.000    0.000    0.000 __init__.py:1192(__init__)
-        1    0.000    0.000    0.000    0.000 __init__.py:1204(setLevel)
-      135    0.001    0.000    0.042    0.000 __init__.py:1234(warning)
-      135    0.002    0.000    0.003    0.000 __init__.py:1298(findCaller)
-      135    0.001    0.000    0.009    0.000 __init__.py:1328(makeRecord)
-      135    0.001    0.000    0.040    0.000 __init__.py:1343(_log)
-      135    0.001    0.000    0.026    0.000 __init__.py:1366(handle)
-        1    0.000    0.000    0.000    0.000 __init__.py:1376(addHandler)
-      135    0.001    0.000    0.026    0.000 __init__.py:1420(callHandlers)
-      135    0.000    0.000    0.000    0.000 __init__.py:1450(getEffectiveLevel)
-      135    0.000    0.000    0.001    0.000 __init__.py:1464(isEnabledFor)
-      135    0.001    0.000    0.001    0.000 __init__.py:148(getLevelName)
-        1    0.000    0.000    0.000    0.000 __init__.py:1491(RootLogger)
-        1    0.000    0.000    0.000    0.000 __init__.py:1497(__init__)
-        1    0.000    0.000    0.000    0.000 __init__.py:1505(LoggerAdapter)
-        1    0.000    0.000    0.001    0.001 __init__.py:1625(basicConfig)
-      135    0.001    0.000    0.043    0.000 __init__.py:1735(warning)
-        4    0.000    0.000    0.000    0.000 __init__.py:177(_checkLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:1819(NullHandler)
-        4    0.000    0.000    0.000    0.000 __init__.py:206(_acquireLock)
-        4    0.000    0.000    0.000    0.000 __init__.py:215(_releaseLock)
-        1    0.000    0.000    0.000    0.000 __init__.py:226(LogRecord)
-      135    0.004    0.000    0.009    0.000 __init__.py:238(__init__)
-        1    0.035    0.035    0.037    0.037 __init__.py:24(<module>)
-      135    0.001    0.000    0.001    0.000 __init__.py:308(getMessage)
-        1    0.000    0.000    0.000    0.000 __init__.py:357(PercentStyle)
-        2    0.000    0.000    0.000    0.000 __init__.py:363(__init__)
-      135    0.000    0.000    0.001    0.000 __init__.py:366(usesTime)
-      135    0.001    0.000    0.001    0.000 __init__.py:369(format)
-        1    0.000    0.000    0.000    0.000 __init__.py:372(StrFormatStyle)
-        1    0.000    0.000    0.000    0.000 __init__.py:381(StringTemplateStyle)
-        1    0.000    0.000    0.000    0.000 __init__.py:403(Formatter)
-        1    0.000    0.000    0.000    0.000 __init__.py:42(normalize_encoding)
-        2    0.000    0.000    0.000    0.000 __init__.py:447(__init__)
-      135    0.001    0.000    0.003    0.000 __init__.py:469(formatTime)
-      135    0.000    0.000    0.001    0.000 __init__.py:514(usesTime)
-      135    0.000    0.000    0.001    0.000 __init__.py:520(formatMessage)
-      135    0.001    0.000    0.007    0.000 __init__.py:536(format)
-        1    0.000    0.000    0.000    0.000 __init__.py:573(BufferingFormatter)
-        1    0.000    0.000    0.000    0.000 __init__.py:615(Filter)
-        1    0.000    0.000    0.000    0.000 __init__.py:652(Filterer)
-        3    0.000    0.000    0.000    0.000 __init__.py:657(__init__)
-      270    0.001    0.000    0.001    0.000 __init__.py:677(filter)
-        1    0.000    0.000    0.032    0.032 __init__.py:69(search_function)
-        2    0.000    0.000    0.000    0.000 __init__.py:722(_addHandlerRef)
-        1    0.000    0.000    0.000    0.000 __init__.py:732(Handler)
-        2    0.000    0.000    0.000    0.000 __init__.py:741(__init__)
-      135    0.000    0.000    0.001    0.000 __init__.py:76(<lambda>)
-        2    0.000    0.000    0.000    0.000 __init__.py:770(createLock)
-      135    0.000    0.000    0.000    0.000 __init__.py:779(acquire)
-      135    0.000    0.000    0.000    0.000 __init__.py:786(release)
-      135    0.000    0.000    0.007    0.000 __init__.py:799(format)
-      135    0.001    0.000    0.025    0.000 __init__.py:822(handle)
-        1    0.000    0.000    0.000    0.000 __init__.py:840(setFormatter)
-        1    0.000    0.000    0.000    0.000 __init__.py:896(StreamHandler)
-        1    0.000    0.000    0.000    0.000 __init__.py:905(__init__)
-      135    0.000    0.000    0.014    0.000 __init__.py:916(flush)
-      135    0.001    0.000    0.022    0.000 __init__.py:923(emit)
-        1    0.000    0.000    0.000    0.000 __init__.py:945(FileHandler)
-        1    0.000    0.000    0.001    0.001 __init__.py:949(__init__)
-        1    0.000    0.000    0.000    0.000 __init__.py:979(_open)
-      135    0.000    0.000    0.023    0.000 __init__.py:990(emit)
-        3    0.000    0.000    0.000    0.000 _abcoll.py:374(items)
-        3    0.000    0.000    0.000    0.000 _abcoll.py:391(__init__)
-        7    0.000    0.000    0.000    0.000 _abcoll.py:432(__iter__)
-        4    0.000    0.000    0.000    0.000 _abcoll.py:493(update)
-        1    0.000    0.000    0.000    0.000 _compat_pickle.py:8(<module>)
-       52    0.000    0.000    0.000    0.000 _compat_pickle.py:80(<genexpr>)
-       11    0.000    0.000    0.000    0.000 _compat_pickle.py:81(<genexpr>)
-        1    0.000    0.000    0.000    0.000 _strptime.py:100(<listcomp>)
-        1    0.000    0.000    0.000    0.000 _strptime.py:101(<listcomp>)
-        1    0.000    0.000    0.000    0.000 _strptime.py:105(__calc_am_pm)
-        1    0.000    0.000    0.000    0.000 _strptime.py:117(__calc_date_time)
-        1    0.013    0.013    0.016    0.016 _strptime.py:12(<module>)
-        1    0.000    0.000    0.000    0.000 _strptime.py:138(<listcomp>)
-        1    0.000    0.000    0.000    0.000 _strptime.py:162(__calc_timezone)
-        1    0.000    0.000    0.000    0.000 _strptime.py:178(TimeRE)
-        1    0.000    0.000    0.003    0.003 _strptime.py:181(__init__)
-        5    0.000    0.000    0.000    0.000 _strptime.py:215(<genexpr>)
-        6    0.000    0.000    0.001    0.000 _strptime.py:224(__seqToRE)
-       50    0.000    0.000    0.000    0.000 _strptime.py:239(<genexpr>)
-        4    0.000    0.000    0.002    0.000 _strptime.py:243(pattern)
-        1    0.000    0.000    0.002    0.002 _strptime.py:266(compile)
-   301750    0.739    0.000    6.261    0.000 _strptime.py:29(_getlang)
-   301748    8.749    0.000   19.785    0.000 _strptime.py:298(_strptime)
-        1    0.000    0.000    0.000    0.000 _strptime.py:33(LocaleTime)
-   301748    1.708    0.000   21.493    0.000 _strptime.py:485(_strptime_datetime)
-        1    0.000    0.000    0.001    0.001 _strptime.py:52(__init__)
-        1    0.000    0.000    0.000    0.000 _strptime.py:90(__calc_weekday)
-        1    0.000    0.000    0.000    0.000 _strptime.py:93(<listcomp>)
-        1    0.000    0.000    0.000    0.000 _strptime.py:94(<listcomp>)
-        1    0.000    0.000    0.000    0.000 _strptime.py:98(__calc_month)
-       16    0.000    0.000    0.000    0.000 _weakrefset.py:36(__init__)
-        8    0.000    0.000    0.000    0.000 _weakrefset.py:68(__contains__)
-        1    0.000    0.000    0.000    0.000 _weakrefset.py:79(add)
-        5    0.000    0.000    0.000    0.000 abc.py:116(__new__)
-        5    0.000    0.000    0.000    0.000 abc.py:119(<setcomp>)
-        4    0.000    0.000    0.000    0.000 abc.py:158(__instancecheck__)
-        1    0.000    0.000    0.000    0.000 base64.py:148(<listcomp>)
-        1    0.000    0.000    0.000    0.000 base64.py:149(<listcomp>)
-        1    0.000    0.000    0.000    0.000 base64.py:3(<module>)
-        1    0.000    0.000    0.000    0.000 calendar.py:126(Calendar)
-        1    0.000    0.000    0.000    0.000 calendar.py:132(__init__)
-        1    0.000    0.000    0.000    0.000 calendar.py:138(setfirstweekday)
-        1    0.000    0.000    0.000    0.000 calendar.py:21(IllegalMonthError)
-        1    0.000    0.000    0.000    0.000 calendar.py:255(TextCalendar)
-        1    0.000    0.000    0.000    0.000 calendar.py:28(IllegalWeekdayError)
-        1    0.000    0.000    0.000    0.000 calendar.py:372(HTMLCalendar)
-        1    0.000    0.000    0.000    0.000 calendar.py:47(_localized_month)
-        1    0.000    0.000    0.000    0.000 calendar.py:484(different_locale)
-        1    0.000    0.000    0.000    0.000 calendar.py:49(<listcomp>)
-        1    0.000    0.000    0.000    0.000 calendar.py:496(LocaleTextCalendar)
-        2    0.000    0.000    0.000    0.000 calendar.py:50(<lambda>)
-        2    0.000    0.000    0.000    0.000 calendar.py:52(__init__)
-        1    0.000    0.000    0.000    0.000 calendar.py:527(LocaleHTMLCalendar)
-       26    0.000    0.000    0.000    0.000 calendar.py:55(__getitem__)
-        1    0.000    0.000    0.000    0.000 calendar.py:6(<module>)
-        1    0.000    0.000    0.000    0.000 calendar.py:66(_localized_day)
-        1    0.000    0.000    0.000    0.000 calendar.py:69(<listcomp>)
-        2    0.000    0.000    0.000    0.000 calendar.py:71(__init__)
-       14    0.000    0.000    0.000    0.000 calendar.py:74(__getitem__)
-        1    0.000    0.000    0.000    0.000 cashing_data.py:16(<module>)
-        1    0.000    0.000    0.000    0.000 cashing_data.py:20(CashingData)
-        1    0.001    0.001    0.004    0.004 cashing_data.py:23(__init__)
-        1    0.316    0.316    0.412    0.412 cashing_data.py:39(__del__)
-       47    0.000    0.000    0.000    0.000 cashing_data.py:56(_cache_new_mailbox)
-       47    0.000    0.000    0.000    0.000 cashing_data.py:68(sync_cached_mailbox)
-       47    0.000    0.000    0.000    0.000 cashing_data.py:91(commit_cached_mailbox)
-        1    0.000    0.000    0.000    0.000 codecs.py:164(__init__)
-        1    0.000    0.000    0.000    0.000 codecs.py:192(setstate)
-        2    0.000    0.000    0.000    0.000 codecs.py:238(__init__)
-        2    0.000    0.000    0.000    0.000 codecs.py:287(__init__)
-        4    0.000    0.000    0.000    0.000 codecs.py:297(decode)
-        1    0.000    0.000    0.000    0.000 codecs.py:77(__new__)
-      101    0.000    0.000    0.000    0.000 collections.py:130(move_to_end)
-        4    0.000    0.000    0.000    0.000 collections.py:40(__init__)
-       37    0.000    0.000    0.000    0.000 collections.py:57(__setitem__)
-        3    0.000    0.000    0.000    0.000 collections.py:695(__init__)
-        3    0.000    0.000    0.000    0.000 collections.py:705(__getitem__)
-        7    0.000    0.000    0.000    0.000 collections.py:82(__iter__)
-        1    0.000    0.000    0.000    0.000 configparser.py:1084(_join_multiline_values)
-        3    0.000    0.000    0.000    0.000 configparser.py:1102(_unify_values)
-        1    0.000    0.000    0.000    0.000 configparser.py:1151(ConfigParser)
-        1    0.000    0.000    0.000    0.000 configparser.py:1170(SafeConfigParser)
-        1    0.000    0.000    0.000    0.000 configparser.py:1183(SectionProxy)
-        2    0.000    0.000    0.000    0.000 configparser.py:1186(__init__)
-        1    0.000    0.000    0.012    0.012 configparser.py:120(<module>)
-        1    0.000    0.000    0.000    0.000 configparser.py:144(Error)
-        1    0.000    0.000    0.000    0.000 configparser.py:174(NoSectionError)
-        1    0.000    0.000    0.000    0.000 configparser.py:183(DuplicateSectionError)
-        1    0.000    0.000    0.000    0.000 configparser.py:209(DuplicateOptionError)
-        1    0.000    0.000    0.000    0.000 configparser.py:236(NoOptionError)
-        1    0.000    0.000    0.000    0.000 configparser.py:247(InterpolationError)
-        1    0.000    0.000    0.000    0.000 configparser.py:257(InterpolationMissingOptionError)
-        1    0.000    0.000    0.000    0.000 configparser.py:272(InterpolationSyntaxError)
-        1    0.000    0.000    0.000    0.000 configparser.py:280(InterpolationDepthError)
-        1    0.000    0.000    0.000    0.000 configparser.py:293(ParsingError)
-        1    0.000    0.000    0.000    0.000 configparser.py:336(MissingSectionHeaderError)
-        1    0.000    0.000    0.000    0.000 configparser.py:356(Interpolation)
-        3    0.000    0.000    0.000    0.000 configparser.py:359(before_get)
-        3    0.000    0.000    0.000    0.000 configparser.py:365(before_read)
-        1    0.000    0.000    0.001    0.001 configparser.py:372(BasicInterpolation)
-        1    0.000    0.000    0.000    0.000 configparser.py:443(ExtendedInterpolation)
-        1    0.000    0.000    0.001    0.001 configparser.py:516(LegacyInterpolation)
-        1    0.000    0.000    0.010    0.010 configparser.py:554(RawConfigParser)
-        1    0.000    0.000    0.000    0.000 configparser.py:595(__init__)
-        1    0.000    0.000    0.001    0.001 configparser.py:671(read)
-        3    0.000    0.000    0.000    0.000 configparser.py:755(get)
-        2    0.000    0.000    0.000    0.000 configparser.py:792(_get)
-        2    0.000    0.000    0.000    0.000 configparser.py:795(getint)
-        6    0.000    0.000    0.000    0.000 configparser.py:855(optionxform)
-        1    0.000    0.000    0.000    0.000 configparser.py:970(_read)
-        2    0.000    0.000    0.001    0.000 csv.py:106(__next__)
-        1    0.000    0.000    0.000    0.000 csv.py:129(DictWriter)
-        1    0.000    0.000    0.000    0.000 csv.py:167(Sniffer)
-        1    0.000    0.000    0.000    0.000 csv.py:22(Dialect)
-        1    0.005    0.005    0.006    0.006 csv.py:4(<module>)
-        1    0.000    0.000    0.000    0.000 csv.py:53(excel)
-        1    0.000    0.000    0.000    0.000 csv.py:63(excel_tab)
-        1    0.000    0.000    0.000    0.000 csv.py:68(unix_dialect)
-        1    0.000    0.000    0.000    0.000 csv.py:79(DictReader)
-        1    0.000    0.000    0.000    0.000 csv.py:80(__init__)
-        1    0.000    0.000    0.000    0.000 csv.py:89(__iter__)
-        3    0.000    0.000    0.000    0.000 csv.py:92(fieldnames)
-        1    0.024    0.024    0.049    0.049 date_interpreter.py:20(<module>)
-        1    0.000    0.000    0.000    0.000 date_interpreter.py:35(DateInterpreter)
-        1    0.000    0.000    0.000    0.000 date_interpreter.py:38(__init__)
-   301881    0.959    0.000    3.873    0.000 date_interpreter.py:41(extract_internal_date)
-   301881   10.289    0.000  123.908    0.000 date_interpreter.py:46(extract_received_date)
-   301748    1.135    0.000    1.791    0.000 date_interpreter.py:94(compare_dates)
-        2    0.000    0.000    0.000    0.000 datetime.py:1017(__new__)
-        1    0.000    0.000    0.000    0.000 datetime.py:1302(datetime)
-        2    0.000    0.000    0.000    0.000 datetime.py:1312(__new__)
-        1    0.013    0.013    0.014    0.014 datetime.py:17(<module>)
-        1    0.000    0.000    0.000    0.000 datetime.py:1786(timezone)
-        3    0.000    0.000    0.000    0.000 datetime.py:1810(_create)
-        4    0.000    0.000    0.000    0.000 datetime.py:267(_check_date_fields)
-        4    0.000    0.000    0.000    0.000 datetime.py:278(_check_time_fields)
-        4    0.000    0.000    0.000    0.000 datetime.py:290(_check_tzinfo_arg)
-        1    0.000    0.000    0.000    0.000 datetime.py:298(timedelta)
-        9    0.000    0.000    0.001    0.000 datetime.py:317(__new__)
-        1    0.000    0.000    0.000    0.000 datetime.py:500(__neg__)
-        3    0.000    0.000    0.000    0.000 datetime.py:51(_days_before_year)
-        4    0.000    0.000    0.000    0.000 datetime.py:56(_days_in_month)
-        1    0.000    0.000    0.000    0.000 datetime.py:631(date)
-        4    0.000    0.000    0.000    0.000 datetime.py:661(__new__)
-        1    0.000    0.000    0.000    0.000 datetime.py:924(tzinfo)
-        1    0.000    0.000    0.000    0.000 datetime.py:993(time)
-        1    0.000    0.000    0.001    0.001 fix_imap_internaldate.py:108(load_configuration)
-        1    0.070    0.070 1052.038 1052.038 fix_imap_internaldate.py:20(<module>)
-        1    4.227    4.227 1050.771 1050.771 fix_imap_internaldate.py:30(main)
-      129    0.001    0.000    0.053    0.000 functools.py:170(wrapper)
-      135    0.001    0.000    0.001    0.000 genericpath.py:85(_splitext)
-        1    0.008    0.008    0.008    0.008 hashlib.py:53(<module>)
-        6    0.000    0.000    0.000    0.000 hashlib.py:94(__get_openssl_constructor)
-        1    0.000    0.000    0.000    0.000 idna.py:146(Codec)
-        2    0.000    0.000    0.000    0.000 idna.py:147(encode)
-        1    0.000    0.000    0.000    0.000 idna.py:196(IncrementalEncoder)
-        1    0.000    0.000    0.000    0.000 idna.py:231(IncrementalDecoder)
-        1    0.000    0.000    0.000    0.000 idna.py:270(StreamWriter)
-        1    0.000    0.000    0.000    0.000 idna.py:273(StreamReader)
-        1    0.000    0.000    0.000    0.000 idna.py:278(getregentry)
-        1    0.010    0.010    0.029    0.029 idna.py:3(<module>)
-        7    0.000    0.000    0.000    0.000 idna.py:62(ToASCII)
-   603908    3.232    0.000  833.897    0.001 imaplib.py:1050(_get_tagged_response)
-        1    0.000    0.000    0.000    0.000 imaplib.py:107(IMAP4)
-  1510072   13.473    0.000  781.901    0.001 imaplib.py:1072(_get_line)
-  3926639    8.919    0.000   17.622    0.000 imaplib.py:1091(_match)
-        1    0.052    0.052    0.157    0.157 imaplib.py:11(<module>)
-   603908    3.824    0.000    3.824    0.000 imaplib.py:1103(_new_tag)
-        1    0.000    0.000    0.000    0.000 imaplib.py:1111(_quote)
-   603908    2.429    0.000  890.173    0.001 imaplib.py:1119(_simple_command)
-   603858    1.824    0.000    2.359    0.000 imaplib.py:1124(_untagged_response)
-  2113980    8.619    0.000   11.107    0.000 imaplib.py:1153(_log)
-        1    0.000    0.000    0.000    0.000 imaplib.py:1176(IMAP4_SSL)
-        1    0.000    0.000    0.114    0.114 imaplib.py:1191(__init__)
-        1    0.000    0.000    0.073    0.073 imaplib.py:1196(_create_socket)
-        1    0.000    0.000    0.073    0.073 imaplib.py:1200(open)
-        1    0.000    0.000    0.000    0.000 imaplib.py:1211(IMAP4_stream)
-        1    0.000    0.000    0.000    0.000 imaplib.py:1267(_Authenticator)
-   301881    8.513    0.000   17.287    0.000 imaplib.py:1314(Internaldate2tuple)
-        1    0.000    0.000    0.000    0.000 imaplib.py:1359(Int2AP)
-        1    0.000    0.000    0.000    0.000 imaplib.py:153(error)
-        1    0.000    0.000    0.000    0.000 imaplib.py:154(abort)
-        1    0.000    0.000    0.000    0.000 imaplib.py:155(readonly)
-        1    0.000    0.000    0.114    0.114 imaplib.py:157(__init__)
-        1    0.000    0.000    0.041    0.041 imaplib.py:182(_connect)
-        1    0.000    0.000    0.034    0.034 imaplib.py:235(_create_socket)
-        1    0.000    0.000    0.073    0.073 imaplib.py:238(open)
-   301881    2.303    0.000    4.942    0.000 imaplib.py:250(read)
-  1510072    2.630    0.000  758.640    0.001 imaplib.py:263(readline)
-   603908    1.442    0.000   26.567    0.000 imaplib.py:268(send)
-        1    0.000    0.000    0.000    0.000 imaplib.py:273(shutdown)
-        1    0.000    0.000    0.001    0.001 imaplib.py:381(capability)
-        1    0.000    0.000    0.503    0.503 imaplib.py:398(close)
-        1    0.000    0.000    0.004    0.004 imaplib.py:511(list)
-        1    0.000    0.000    0.001    0.001 imaplib.py:523(login)
-        1    0.000    0.000    0.001    0.001 imaplib.py:552(logout)
-       47    0.000    0.000    2.953    0.063 imaplib.py:656(select)
-       47    0.000    0.000    0.118    0.003 imaplib.py:751(status)
-   603809    4.002    0.000  893.499    0.001 imaplib.py:792(uid)
-   906449    2.102    0.000    2.383    0.000 imaplib.py:847(_append_untagged)
-  1207814    2.410    0.000    3.381    0.000 imaplib.py:861(_check_bye)
-   603908   11.404    0.000   46.967    0.000 imaplib.py:867(_command)
-   603908    3.500    0.000  840.777    0.001 imaplib.py:944(_command_complete)
-        1    0.000    0.000    0.001    0.001 imaplib.py:961(_get_capabilities)
-  1208191   19.106    0.000  830.703    0.001 imaplib.py:970(_get_response)
-   301750    2.111    0.000    3.297    0.000 locale.py:339(normalize)
-   301750    0.674    0.000    3.971    0.000 locale.py:405(_parse_localename)
-   301750    0.900    0.000    5.522    0.000 locale.py:508(getlocale)
-        9    0.000    0.000    0.000    0.000 locale.py:526(setlocale)
-        3    0.000    0.000    0.000    0.000 locale.py:574(getpreferredencoding)
-        1    0.018    0.018    0.177    0.177 mail_iterator.py:20(<module>)
-        1    0.000    0.000    0.000    0.000 mail_iterator.py:29(MailIterator)
-        1    0.000    0.000    0.120    0.120 mail_iterator.py:32(__init__)
-        1    0.000    0.000    0.504    0.504 mail_iterator.py:42(__del__)
-       48    0.001    0.000    3.072    0.064 mail_iterator.py:47(__iter__)
-       47    0.000    0.000    0.327    0.007 mail_iterator.py:60(fetch_messages)
-   301881    1.842    0.000  369.425    0.001 mail_iterator.py:69(fetch_internal_date)
-   301881    1.076    0.000  543.976    0.002 mail_iterator.py:77(fetch_received_date)
-        1    0.000    0.000    0.000    0.000 os.py:35(_get_exports_list)
-        1    0.000    0.000    0.000    0.000 os.py:39(<listcomp>)
-        1    0.000    0.000    0.002    0.002 pickle.py:173(<listcomp>)
-        1    0.000    0.000    0.000    0.000 pickle.py:177(_Pickler)
-        1    0.012    0.012    0.014    0.014 pickle.py:24(<module>)
-        1    0.000    0.000    0.000    0.000 pickle.py:68(PickleError)
-        1    0.000    0.000    0.000    0.000 pickle.py:72(PicklingError)
-        1    0.000    0.000    0.000    0.000 pickle.py:781(_Unpickler)
-        1    0.000    0.000    0.000    0.000 pickle.py:79(UnpicklingError)
-        1    0.000    0.000    0.000    0.000 pickle.py:92(_Stop)
-      135    0.001    0.000    0.002    0.000 posixpath.py:108(splitext)
-      135    0.001    0.000    0.001    0.000 posixpath.py:129(basename)
-        1    0.000    0.000    0.000    0.000 posixpath.py:330(normpath)
-        1    0.000    0.000    0.000    0.000 posixpath.py:367(abspath)
-      137    0.000    0.000    0.000    0.000 posixpath.py:38(_get_sep)
-      271    0.001    0.000    0.001    0.000 posixpath.py:49(normcase)
-        1    0.000    0.000    0.000    0.000 posixpath.py:61(isabs)
-        1    0.000    0.000    0.000    0.000 posixpath.py:71(join)
-        1    0.000    0.000    0.000    0.000 random.py:165(randrange)
-        1    0.000    0.000    0.000    0.000 random.py:210(randint)
-        1    0.000    0.000    0.000    0.000 random.py:216(_randbelow)
-        1    0.013    0.013    0.021    0.021 random.py:37(<module>)
-        1    0.000    0.000    0.000    0.000 random.py:625(SystemRandom)
-        1    0.000    0.000    0.000    0.000 random.py:68(Random)
-        1    0.000    0.000    0.000    0.000 random.py:84(__init__)
-        1    0.000    0.000    0.000    0.000 random.py:93(seed)
-       90    0.000    0.000    0.002    0.000 re.py:150(match)
-       31    0.000    0.000    0.052    0.002 re.py:204(compile)
-       44    0.000    0.000    0.000    0.000 re.py:222(escape)
-      121    0.000    0.000    0.053    0.000 re.py:254(_compile)
-       26    0.000    0.000    0.052    0.002 re.py:257(_compile_typed)
-        2    0.000    0.000    0.000    0.000 re.py:269(_compile_repl)
-        8    0.000    0.000    0.000    0.000 re.py:279(_subx)
-        1    0.000    0.000    0.000    0.000 socket.py:141(makefile)
-        1    0.000    0.000    0.000    0.000 socket.py:184(_decref_socketios)
-        2    0.000    0.000    0.000    0.000 socket.py:190(_real_close)
-        1    0.000    0.000    0.000    0.000 socket.py:194(close)
-        1    0.000    0.000    0.000    0.000 socket.py:233(SocketIO)
-        1    0.000    0.000    0.000    0.000 socket.py:250(__init__)
-   604301    2.811    0.000  746.842    0.001 socket.py:262(readinto)
-   604302    1.458    0.000    1.458    0.000 socket.py:304(readable)
-        1    0.000    0.000    0.000    0.000 socket.py:331(close)
-        1    0.000    0.000    0.034    0.034 socket.py:370(create_connection)
-        1    0.006    0.006    0.006    0.006 socket.py:44(<module>)
-        1    0.000    0.000    0.000    0.000 socket.py:87(socket)
-        2    0.000    0.000    0.000    0.000 socket.py:93(__init__)
-       92    0.001    0.000    0.017    0.000 sre_compile.py:178(_compile_charset)
-       92    0.004    0.000    0.016    0.000 sre_compile.py:207(_optimize_charset)
-      344    0.000    0.000    0.000    0.000 sre_compile.py:24(_identityfunction)
-       10    0.001    0.000    0.001    0.000 sre_compile.py:258(_mk_bitmap)
-        2    0.009    0.004    0.012    0.006 sre_compile.py:301(_optimize_unicode)
-   168/26    0.003    0.000    0.013    0.000 sre_compile.py:32(_compile)
-       51    0.000    0.000    0.000    0.000 sre_compile.py:355(_simple)
-       26    0.000    0.000    0.011    0.000 sre_compile.py:362(_compile_info)
-       52    0.000    0.000    0.000    0.000 sre_compile.py:468(isstring)
-       26    0.000    0.000    0.024    0.001 sre_compile.py:471(_code)
-       26    0.000    0.000    0.052    0.002 sre_compile.py:486(compile)
-      208    0.000    0.000    0.000    0.000 sre_parse.py:127(__len__)
-      609    0.001    0.000    0.002    0.000 sre_parse.py:131(__getitem__)
-       51    0.000    0.000    0.000    0.000 sre_parse.py:135(__setitem__)
-      326    0.001    0.000    0.001    0.000 sre_parse.py:139(append)
-   219/77    0.001    0.000    0.002    0.000 sre_parse.py:141(getwidth)
-       28    0.000    0.000    0.000    0.000 sre_parse.py:179(__init__)
-     2155    0.009    0.000    0.013    0.000 sre_parse.py:183(__next)
-      648    0.001    0.000    0.003    0.000 sre_parse.py:202(match)
-     1827    0.003    0.000    0.014    0.000 sre_parse.py:208(get)
-        5    0.000    0.000    0.000    0.000 sre_parse.py:212(tell)
-        1    0.000    0.000    0.000    0.000 sre_parse.py:214(seek)
-      184    0.000    0.000    0.000    0.000 sre_parse.py:217(isident)
-        1    0.000    0.000    0.000    0.000 sre_parse.py:220(isdigit)
-       44    0.000    0.000    0.000    0.000 sre_parse.py:223(isname)
-       11    0.000    0.000    0.000    0.000 sre_parse.py:232(_class_escape)
-       37    0.000    0.000    0.000    0.000 sre_parse.py:264(_escape)
-    90/26    0.001    0.000    0.026    0.001 sre_parse.py:308(_parse_sub)
-   112/29    0.005    0.000    0.026    0.001 sre_parse.py:386(_parse)
-       26    0.000    0.000    0.000    0.000 sre_parse.py:670(fix_flags)
-       26    0.000    0.000    0.000    0.000 sre_parse.py:68(__init__)
-       26    0.000    0.000    0.027    0.001 sre_parse.py:682(parse)
-        2    0.000    0.000    0.000    0.000 sre_parse.py:711(parse_template)
-        3    0.000    0.000    0.000    0.000 sre_parse.py:718(literal)
-       61    0.000    0.000    0.000    0.000 sre_parse.py:73(opengroup)
-        2    0.000    0.000    0.000    0.000 sre_parse.py:790(<lambda>)
-       61    0.000    0.000    0.000    0.000 sre_parse.py:84(closegroup)
-      172    0.000    0.000    0.000    0.000 sre_parse.py:91(__init__)
-        1    0.000    0.000    0.000    0.000 ssl.py:107(CertificateError)
-        1    0.000    0.000    0.000    0.000 ssl.py:166(SSLContext)
-        1    0.000    0.000    0.000    0.000 ssl.py:172(__new__)
-        1    0.000    0.000    0.000    0.000 ssl.py:178(__init__)
-        1    0.000    0.000    0.000    0.000 ssl.py:192(SSLSocket)
-        1    0.000    0.000    0.040    0.040 ssl.py:197(__init__)
-  2416419    1.509    0.000    1.509    0.000 ssl.py:282(_checkClosed)
-   604301    2.160    0.000  735.975    0.001 ssl.py:286(read)
-   603908    2.265    0.000   20.399    0.000 ssl.py:329(send)
-   603908    3.933    0.000   25.125    0.000 ssl.py:361(sendall)
-   604301    2.972    0.000  739.833    0.001 ssl.py:388(recv_into)
-        1    0.000    0.000    0.000    0.000 ssl.py:426(shutdown)
-        2    0.000    0.000    0.000    0.000 ssl.py:439(_real_close)
-        1    0.000    0.000    0.039    0.039 ssl.py:444(do_handshake)
-        1    0.000    0.000    0.000    0.000 ssl.py:505(__del__)
-        1    0.000    0.000    0.040    0.040 ssl.py:510(wrap_socket)
-        1    0.016    0.016    0.017    0.017 ssl.py:55(<module>)
-        1    0.006    0.006    0.006    0.006 stringprep.py:6(<module>)
-        1    0.035    0.035    0.049    0.049 subprocess.py:336(<module>)
-        1    0.000    0.000    0.000    0.000 subprocess.py:351(CalledProcessError)
-        1    0.000    0.000    0.000    0.000 subprocess.py:641(Popen)
-        1    0.000    0.000    0.001    0.001 threading.py:1(<module>)
-      135    0.000    0.000    0.000    0.000 threading.py:1016(current_thread)
-        2    0.000    0.000    0.000    0.000 threading.py:172(Condition)
-        1    0.000    0.000    0.000    0.000 threading.py:175(_Condition)
-        2    0.000    0.000    0.000    0.000 threading.py:177(__init__)
-        1    0.000    0.000    0.000    0.000 threading.py:217(_is_owned)
-        1    0.000    0.000    0.000    0.000 threading.py:284(notify)
-        1    0.000    0.000    0.000    0.000 threading.py:302(notify_all)
-        1    0.000    0.000    0.000    0.000 threading.py:311(_Semaphore)
-        1    0.000    0.000    0.000    0.000 threading.py:369(_BoundedSemaphore)
-        1    0.000    0.000    0.000    0.000 threading.py:381(Event)
-        1    0.000    0.000    0.000    0.000 threading.py:384(_Event)
-        1    0.000    0.000    0.000    0.000 threading.py:388(__init__)
-        1    0.000    0.000    0.000    0.000 threading.py:402(set)
-        1    0.000    0.000    0.000    0.000 threading.py:43(_Verbose)
-        1    0.000    0.000    0.000    0.000 threading.py:439(Barrier)
-        4    0.000    0.000    0.000    0.000 threading.py:45(__init__)
-        1    0.000    0.000    0.000    0.000 threading.py:50(_note)
-        1    0.000    0.000    0.000    0.000 threading.py:595(BrokenBarrierError)
-        1    0.000    0.000    0.000    0.000 threading.py:615(Thread)
-        1    0.000    0.000    0.000    0.000 threading.py:627(__init__)
-        1    0.000    0.000    0.000    0.000 threading.py:719(_set_ident)
-      135    0.000    0.000    0.000    0.000 threading.py:872(name)
-        3    0.000    0.000    0.000    0.000 threading.py:88(RLock)
-        1    0.000    0.000    0.000    0.000 threading.py:923(_Timer)
-        1    0.000    0.000    0.000    0.000 threading.py:95(_RLock)
-        1    0.000    0.000    0.000    0.000 threading.py:952(_MainThread)
-        1    0.000    0.000    0.000    0.000 threading.py:954(__init__)
-        1    0.000    0.000    0.000    0.000 threading.py:961(_set_daemon)
-        1    0.000    0.000    0.000    0.000 threading.py:992(_DummyThread)
-        1    0.000    0.000    0.000    0.000 warnings.py:1(<module>)
-        1    0.000    0.000    0.000    0.000 warnings.py:269(WarningMessage)
-        1    0.000    0.000    0.000    0.000 warnings.py:289(catch_warnings)
-        1    0.000    0.000    0.000    0.000 warnings.py:83(_OptionError)
-        1    0.000    0.000    0.000    0.000 warnings.py:88(_processoptions)
-        1    0.000    0.000    0.000    0.000 weakref.py:200(update)
-        1    0.000    0.000    0.000    0.000 weakref.py:45(__init__)
-  107/104    0.003    0.000    0.016    0.000 {built-in method __build_class__}
-        1    0.002    0.002    0.032    0.032 {built-in method __import__}
-       25    0.000    0.000    0.000    0.000 {built-in method __new__ of type object at 0x7feb008d2f20}
-      135    0.000    0.000    0.000    0.000 {built-in method _getframe}
-   301830    0.224    0.000    0.224    0.000 {built-in method abs}
-        4    0.000    0.000    0.000    0.000 {built-in method allocate_lock}
-      463    0.000    0.000    0.000    0.000 {built-in method chr}
-       26    0.000    0.000    0.000    0.000 {built-in method compile}
-        2    0.000    0.000    0.000    0.000 {built-in method dir}
-       49    0.000    0.000    0.000    0.000 {built-in method divmod}
-        2    0.093    0.046    0.093    0.046 {built-in method dump}
-        1    0.000    0.000 1052.038 1052.038 {built-in method exec}
-        1    0.000    0.000    0.000    0.000 {built-in method exp}
-        1    0.000    0.000    0.000    0.000 {built-in method from_bytes}
-   603629    3.208    0.000    3.208    0.000 {built-in method fromtimestamp}
-      271    0.000    0.000    0.000    0.000 {built-in method get_ident}
-        1    0.001    0.001    0.033    0.033 {built-in method getaddrinfo}
-      120    0.000    0.000    0.000    0.000 {built-in method getattr}
-        1    0.000    0.000    0.000    0.000 {built-in method getcwd}
-       36    0.000    0.000    0.000    0.000 {built-in method getlower}
-      135    0.000    0.000    0.000    0.000 {built-in method getpid}
-        6    0.000    0.000    0.000    0.000 {built-in method globals}
-      548    0.001    0.000    0.001    0.000 {built-in method hasattr}
-  2418651    2.307    0.000    2.307    0.000 {built-in method isinstance}
-2421386/2421311    1.722    0.000    1.722    0.000 {built-in method len}
-  1207393    6.127    0.000    6.127    0.000 {built-in method localtime}
-        2    0.000    0.000    0.000    0.000 {built-in method log}
-       27    0.000    0.000    0.000    0.000 {built-in method max}
-   302246    0.442    0.000    0.442    0.000 {built-in method min}
-  1207258    6.263    0.000    6.263    0.000 {built-in method mktime}
-        3    0.001    0.000    0.001    0.000 {built-in method next}
-        3    0.000    0.000    0.000    0.000 {built-in method nl_langinfo}
-        1    0.000    0.000    0.000    0.000 {built-in method openssl_md5}
-        1    0.000    0.000    0.000    0.000 {built-in method openssl_sha1}
-        1    0.000    0.000    0.000    0.000 {built-in method openssl_sha224}
-        1    0.000    0.000    0.000    0.000 {built-in method openssl_sha256}
-        1    0.000    0.000    0.000    0.000 {built-in method openssl_sha384}
-        1    0.000    0.000    0.000    0.000 {built-in method openssl_sha512}
-        6    0.007    0.001    0.007    0.001 {built-in method open}
-      309    0.000    0.000    0.000    0.000 {built-in method ord}
-       47    0.003    0.000    0.003    0.000 {built-in method print}
-       38    0.000    0.000    0.000    0.000 {built-in method proxy}
-        1    0.000    0.000    0.000    0.000 {built-in method reader}
-        3    0.000    0.000    0.000    0.000 {built-in method register_dialect}
-        1    0.000    0.000    0.000    0.000 {built-in method register}
-        9    0.000    0.000    0.000    0.000 {built-in method round}
-   301759    0.651    0.000    0.651    0.000 {built-in method setlocale}
-        7    0.000    0.000    0.000    0.000 {built-in method sorted}
-        1    0.000    0.000    0.000    0.000 {built-in method sqrt}
-      143    0.001    0.000    0.001    0.000 {built-in method strftime}
-   301748    1.559    0.000   23.068    0.000 {built-in method strptime}
-        1    0.000    0.000    0.000    0.000 {built-in method sysconf}
-  2114116    2.488    0.000    2.488    0.000 {built-in method time}
-        1    0.000    0.000    0.000    0.000 {built-in method tzset}
-        1    0.000    0.000    0.000    0.000 {built-in method urandom}
-        4    0.000    0.000    0.000    0.000 {built-in method utf_8_decode}
-        1    0.000    0.000    0.000    0.000 {function seed at 0x108da68}
-        1    0.000    0.000    0.000    0.000 {method '__getitem__' of 'dict' objects}
-   604301    1.360    0.000    1.360    0.000 {method '_checkClosed' of '_io._IOBase' objects}
-   604301    1.379    0.000    2.837    0.000 {method '_checkReadable' of '_io._IOBase' objects}
-        1    0.000    0.000    0.000    0.000 {method '_wrap_socket' of '_ssl._SSLContext' objects}
-      139    0.000    0.000    0.000    0.000 {method 'acquire' of '_thread.RLock' objects}
-        2    0.000    0.000    0.000    0.000 {method 'acquire' of '_thread.lock' objects}
-        5    0.000    0.000    0.000    0.000 {method 'add' of 'set' objects}
-   606573    0.517    0.000    0.517    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'bit_length' of 'int' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of '_io.BufferedReader' objects}
-        1    0.001    0.001    0.001    0.001 {method 'connect' of '_socket.socket' objects}
-   302108    1.285    0.000    1.285    0.000 {method 'decode' of 'bytes' objects}
-        1    0.000    0.000    0.000    0.000 {method 'detach' of '_socket.socket' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        1    0.039    0.039    0.039    0.039 {method 'do_handshake' of '_ssl._SSLSocket' objects}
-        7    0.000    0.000    0.000    0.000 {method 'encode' of 'str' objects}
-   301748    0.294    0.000    0.294    0.000 {method 'end' of '_sre.SRE_Match' objects}
-  1510072    1.974    0.000    1.974    0.000 {method 'endswith' of 'bytes' objects}
-        1    0.000    0.000    0.000    0.000 {method 'endswith' of 'str' objects}
-       12    0.000    0.000    0.000    0.000 {method 'extend' of 'bytearray' objects}
-       23    0.000    0.000    0.000    0.000 {method 'extend' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'fileno' of '_socket.socket' objects}
-      135    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-   301881   62.003    0.000   62.003    0.000 {method 'findall' of '_sre.SRE_Pattern' objects}
-      135    0.013    0.000    0.013    0.000 {method 'flush' of '_io.TextIOWrapper' objects}
-        2    0.000    0.000    0.000    0.000 {method 'format' of 'str' objects}
-  2415262    1.855    0.000    1.855    0.000 {method 'get' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'getpeername' of '_socket.socket' objects}
-        1    0.000    0.000    0.000    0.000 {method 'getrandbits' of '_random.Random' objects}
-        3    0.000    0.000    0.000    0.000 {method 'gettimeout' of '_socket.socket' objects}
-  6643530    7.509    0.000    7.509    0.000 {method 'group' of '_sre.SRE_Match' objects}
-   301748    0.749    0.000    0.749    0.000 {method 'groupdict' of '_sre.SRE_Match' objects}
-       94    0.000    0.000    0.000    0.000 {method 'groups' of '_sre.SRE_Match' objects}
-   301748    0.491    0.000    0.491    0.000 {method 'index' of 'list' objects}
-       14    0.000    0.000    0.000    0.000 {method 'index' of 'str' objects}
-        1    0.000    0.000    0.000    0.000 {method 'insert' of 'list' objects}
-        4    0.000    0.000    0.000    0.000 {method 'isalnum' of 'str' objects}
-       39    0.000    0.000    0.000    0.000 {method 'items' of 'dict' objects}
-   301881    0.224    0.000    0.224    0.000 {method 'join' of 'bytes' objects}
-    55/11    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-   301748    0.216    0.000    0.216    0.000 {method 'keys' of 'dict' objects}
-   603552    0.538    0.000    0.538    0.000 {method 'lower' of 'str' objects}
-  4530459   10.616    0.000   10.616    0.000 {method 'match' of '_sre.SRE_Pattern' objects}
-   603858    0.535    0.000    0.535    0.000 {method 'pop' of 'dict' objects}
-   301883    1.449    0.000    1.529    0.000 {method 'read' of '_io.BufferedReader' objects}
-   604301  733.455    0.001  733.455    0.001 {method 'read' of '_ssl._SSLSocket' objects}
-  1510072    9.248    0.000  756.011    0.001 {method 'readline' of '_io.BufferedReader' objects}
-      139    0.000    0.000    0.000    0.000 {method 'release' of '_thread.RLock' objects}
-        1    0.000    0.000    0.000    0.000 {method 'release' of '_thread.lock' objects}
-       61    0.000    0.000    0.000    0.000 {method 'remove' of 'list' objects}
-   603570    0.490    0.000    0.490    0.000 {method 'replace' of 'str' objects}
-      405    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        6    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-        4    0.000    0.000    0.000    0.000 {method 'search' of '_sre.SRE_Pattern' objects}
-        1    0.000    0.000    0.000    0.000 {method 'set_ciphers' of '_ssl._SSLContext' objects}
-      512    0.002    0.000    0.002    0.000 {method 'setdefault' of 'dict' objects}
-        4    0.000    0.000    0.000    0.000 {method 'setter' of 'property' objects}
-        2    0.000    0.000    0.000    0.000 {method 'settimeout' of '_socket.socket' objects}
-        2    0.000    0.000    0.000    0.000 {method 'split' of '_sre.SRE_Pattern' objects}
-       47    0.022    0.000    0.022    0.000 {method 'split' of 'bytes' objects}
-        2    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        4    0.000    0.000    0.000    0.000 {method 'start' of '_sre.SRE_Match' objects}
-       13    0.000    0.000    0.000    0.000 {method 'startswith' of 'str' objects}
-       38    0.000    0.000    0.000    0.000 {method 'strftime' of 'datetime.date' objects}
-       62    0.000    0.000    0.000    0.000 {method 'strip' of 'str' objects}
-   301889   19.339    0.000   19.339    0.000 {method 'sub' of '_sre.SRE_Pattern' objects}
-        2    0.000    0.000    0.000    0.000 {method 'tobytes' of 'array.array' objects}
-        2    0.000    0.000    0.000    0.000 {method 'tolist' of 'array.array' objects}
-   603497    0.424    0.000    0.424    0.000 {method 'toordinal' of 'datetime.date' objects}
-   301748    0.432    0.000    0.432    0.000 {method 'total_seconds' of 'datetime.timedelta' objects}
-        1    0.000    0.000    0.000    0.000 {method 'union' of 'set' objects}
-   603810    0.546    0.000    0.546    0.000 {method 'upper' of 'str' objects}
-   301748    0.190    0.000    0.190    0.000 {method 'weekday' of 'datetime.date' objects}
-      270    0.001    0.000    0.001    0.000 {method 'write' of '_io.TextIOWrapper' objects}
-   603908   17.757    0.000   17.757    0.000 {method 'write' of '_ssl._SSLSocket' objects}
-
-
-
-
-
-
-STATISTICS WITH CACHING:
-
-344848 function calls (344387 primitive calls) in 136.603 seconds
-
-   Ordered by: standard name
-
-   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        1    0.000    0.000    0.000    0.000 __init__.py:1001(_StderrHandler)
-        1    0.000    0.000    0.000    0.000 __init__.py:1007(__init__)
-        1    0.000    0.000    0.000    0.000 __init__.py:1025(PlaceHolder)
-        1    0.000    0.000    0.000    0.000 __init__.py:1069(Manager)
-        1    0.000    0.000    0.000    0.000 __init__.py:1074(__init__)
-        1    0.000    0.000    0.000    0.000 __init__.py:1177(Logger)
-        1    0.000    0.000    0.000    0.000 __init__.py:1192(__init__)
-        1    0.000    0.000    0.000    0.000 __init__.py:1204(setLevel)
-        2    0.000    0.000    0.001    0.001 __init__.py:1234(warning)
-        2    0.000    0.000    0.000    0.000 __init__.py:1298(findCaller)
-        2    0.000    0.000    0.000    0.000 __init__.py:1328(makeRecord)
-        2    0.000    0.000    0.001    0.001 __init__.py:1343(_log)
-        2    0.000    0.000    0.001    0.000 __init__.py:1366(handle)
-        1    0.000    0.000    0.000    0.000 __init__.py:1376(addHandler)
-        2    0.000    0.000    0.001    0.000 __init__.py:1420(callHandlers)
-        2    0.000    0.000    0.000    0.000 __init__.py:1450(getEffectiveLevel)
-        2    0.000    0.000    0.000    0.000 __init__.py:1464(isEnabledFor)
-        2    0.000    0.000    0.000    0.000 __init__.py:148(getLevelName)
-        1    0.000    0.000    0.000    0.000 __init__.py:1491(RootLogger)
-        1    0.000    0.000    0.000    0.000 __init__.py:1497(__init__)
-        1    0.000    0.000    0.000    0.000 __init__.py:1505(LoggerAdapter)
-        1    0.000    0.000    0.001    0.001 __init__.py:1625(basicConfig)
-        2    0.000    0.000    0.001    0.001 __init__.py:1735(warning)
-        4    0.000    0.000    0.000    0.000 __init__.py:177(_checkLevel)
-        1    0.000    0.000    0.000    0.000 __init__.py:1819(NullHandler)
-        4    0.000    0.000    0.000    0.000 __init__.py:206(_acquireLock)
-        4    0.000    0.000    0.000    0.000 __init__.py:215(_releaseLock)
-        1    0.000    0.000    0.000    0.000 __init__.py:226(LogRecord)
-        2    0.000    0.000    0.000    0.000 __init__.py:238(__init__)
-        1    0.035    0.035    0.037    0.037 __init__.py:24(<module>)
-        2    0.000    0.000    0.000    0.000 __init__.py:308(getMessage)
-        1    0.000    0.000    0.000    0.000 __init__.py:357(PercentStyle)
-        2    0.000    0.000    0.000    0.000 __init__.py:363(__init__)
-        2    0.000    0.000    0.000    0.000 __init__.py:366(usesTime)
-        2    0.000    0.000    0.000    0.000 __init__.py:369(format)
-        1    0.000    0.000    0.000    0.000 __init__.py:372(StrFormatStyle)
-        1    0.000    0.000    0.000    0.000 __init__.py:381(StringTemplateStyle)
-        1    0.000    0.000    0.000    0.000 __init__.py:403(Formatter)
-        1    0.000    0.000    0.000    0.000 __init__.py:42(normalize_encoding)
-        2    0.000    0.000    0.000    0.000 __init__.py:447(__init__)
-        2    0.000    0.000    0.000    0.000 __init__.py:469(formatTime)
-        2    0.000    0.000    0.000    0.000 __init__.py:514(usesTime)
-        2    0.000    0.000    0.000    0.000 __init__.py:520(formatMessage)
-        2    0.000    0.000    0.000    0.000 __init__.py:536(format)
-        1    0.000    0.000    0.000    0.000 __init__.py:573(BufferingFormatter)
-        1    0.000    0.000    0.000    0.000 __init__.py:615(Filter)
-        1    0.000    0.000    0.000    0.000 __init__.py:652(Filterer)
-        3    0.000    0.000    0.000    0.000 __init__.py:657(__init__)
-        4    0.000    0.000    0.000    0.000 __init__.py:677(filter)
-        1    0.000    0.000    0.019    0.019 __init__.py:69(search_function)
-        2    0.000    0.000    0.000    0.000 __init__.py:722(_addHandlerRef)
-        1    0.000    0.000    0.000    0.000 __init__.py:732(Handler)
-        2    0.000    0.000    0.000    0.000 __init__.py:741(__init__)
-        2    0.000    0.000    0.000    0.000 __init__.py:76(<lambda>)
-        2    0.000    0.000    0.000    0.000 __init__.py:770(createLock)
-        2    0.000    0.000    0.000    0.000 __init__.py:779(acquire)
-        2    0.000    0.000    0.000    0.000 __init__.py:786(release)
-        2    0.000    0.000    0.000    0.000 __init__.py:799(format)
-        2    0.000    0.000    0.001    0.000 __init__.py:822(handle)
-        1    0.000    0.000    0.000    0.000 __init__.py:840(setFormatter)
-        1    0.000    0.000    0.000    0.000 __init__.py:896(StreamHandler)
-        1    0.000    0.000    0.000    0.000 __init__.py:905(__init__)
-        2    0.000    0.000    0.001    0.000 __init__.py:916(flush)
-        2    0.000    0.000    0.001    0.000 __init__.py:923(emit)
-        1    0.000    0.000    0.000    0.000 __init__.py:945(FileHandler)
-        1    0.000    0.000    0.001    0.001 __init__.py:949(__init__)
-        1    0.000    0.000    0.001    0.001 __init__.py:979(_open)
-        2    0.000    0.000    0.001    0.000 __init__.py:990(emit)
-        3    0.000    0.000    0.000    0.000 _abcoll.py:374(items)
-        3    0.000    0.000    0.000    0.000 _abcoll.py:391(__init__)
-        7    0.000    0.000    0.000    0.000 _abcoll.py:432(__iter__)
-        4    0.000    0.000    0.000    0.000 _abcoll.py:493(update)
-        1    0.000    0.000    0.000    0.000 _compat_pickle.py:8(<module>)
-       52    0.000    0.000    0.000    0.000 _compat_pickle.py:80(<genexpr>)
-       11    0.000    0.000    0.000    0.000 _compat_pickle.py:81(<genexpr>)
-       16    0.000    0.000    0.000    0.000 _weakrefset.py:36(__init__)
-        8    0.000    0.000    0.000    0.000 _weakrefset.py:68(__contains__)
-        1    0.000    0.000    0.000    0.000 _weakrefset.py:79(add)
-        5    0.000    0.000    0.001    0.000 abc.py:116(__new__)
-        5    0.000    0.000    0.000    0.000 abc.py:119(<setcomp>)
-        4    0.000    0.000    0.000    0.000 abc.py:158(__instancecheck__)
-        1    0.000    0.000    0.000    0.000 base64.py:148(<listcomp>)
-        1    0.000    0.000    0.000    0.000 base64.py:149(<listcomp>)
-        1    0.000    0.000    0.000    0.000 base64.py:3(<module>)
-        1    0.000    0.000    0.000    0.000 cashing_data.py:16(<module>)
-        1    0.000    0.000    0.000    0.000 cashing_data.py:20(CashingData)
-        1    0.000    0.000    0.305    0.305 cashing_data.py:23(__init__)
-        1    0.316    0.316    0.406    0.406 cashing_data.py:39(__del__)
-       47    0.316    0.007  132.650    2.822 cashing_data.py:68(sync_cached_mailbox)
-       47    0.000    0.000    0.000    0.000 cashing_data.py:91(commit_cached_mailbox)
-        1    0.000    0.000    0.000    0.000 codecs.py:164(__init__)
-        1    0.000    0.000    0.000    0.000 codecs.py:192(setstate)
-        2    0.000    0.000    0.000    0.000 codecs.py:238(__init__)
-        2    0.000    0.000    0.000    0.000 codecs.py:287(__init__)
-        4    0.000    0.000    0.000    0.000 codecs.py:297(decode)
-        1    0.000    0.000    0.000    0.000 codecs.py:77(__new__)
-       89    0.000    0.000    0.000    0.000 collections.py:130(move_to_end)
-        4    0.000    0.000    0.000    0.000 collections.py:40(__init__)
-       32    0.000    0.000    0.000    0.000 collections.py:57(__setitem__)
-        3    0.000    0.000    0.000    0.000 collections.py:695(__init__)
-        3    0.000    0.000    0.000    0.000 collections.py:705(__getitem__)
-        7    0.000    0.000    0.000    0.000 collections.py:82(__iter__)
-        1    0.000    0.000    0.000    0.000 configparser.py:1084(_join_multiline_values)
-        3    0.000    0.000    0.000    0.000 configparser.py:1102(_unify_values)
-        1    0.000    0.000    0.000    0.000 configparser.py:1151(ConfigParser)
-        1    0.000    0.000    0.000    0.000 configparser.py:1170(SafeConfigParser)
-        1    0.000    0.000    0.000    0.000 configparser.py:1183(SectionProxy)
-        2    0.000    0.000    0.000    0.000 configparser.py:1186(__init__)
-        1    0.000    0.000    0.013    0.013 configparser.py:120(<module>)
-        1    0.000    0.000    0.000    0.000 configparser.py:144(Error)
-        1    0.000    0.000    0.000    0.000 configparser.py:174(NoSectionError)
-        1    0.000    0.000    0.000    0.000 configparser.py:183(DuplicateSectionError)
-        1    0.000    0.000    0.000    0.000 configparser.py:209(DuplicateOptionError)
-        1    0.000    0.000    0.000    0.000 configparser.py:236(NoOptionError)
-        1    0.000    0.000    0.000    0.000 configparser.py:247(InterpolationError)
-        1    0.000    0.000    0.000    0.000 configparser.py:257(InterpolationMissingOptionError)
-        1    0.000    0.000    0.000    0.000 configparser.py:272(InterpolationSyntaxError)
-        1    0.000    0.000    0.000    0.000 configparser.py:280(InterpolationDepthError)
-        1    0.000    0.000    0.000    0.000 configparser.py:293(ParsingError)
-        1    0.000    0.000    0.000    0.000 configparser.py:336(MissingSectionHeaderError)
-        1    0.000    0.000    0.000    0.000 configparser.py:356(Interpolation)
-        3    0.000    0.000    0.000    0.000 configparser.py:359(before_get)
-        3    0.000    0.000    0.000    0.000 configparser.py:365(before_read)
-        1    0.000    0.000    0.001    0.001 configparser.py:372(BasicInterpolation)
-        1    0.000    0.000    0.000    0.000 configparser.py:443(ExtendedInterpolation)
-        1    0.000    0.000    0.001    0.001 configparser.py:516(LegacyInterpolation)
-        1    0.000    0.000    0.011    0.011 configparser.py:554(RawConfigParser)
-        1    0.000    0.000    0.000    0.000 configparser.py:595(__init__)
-        1    0.001    0.001    0.001    0.001 configparser.py:671(read)
-        3    0.000    0.000    0.000    0.000 configparser.py:755(get)
-        2    0.000    0.000    0.000    0.000 configparser.py:792(_get)
-        2    0.000    0.000    0.000    0.000 configparser.py:795(getint)
-        6    0.000    0.000    0.000    0.000 configparser.py:855(optionxform)
-        1    0.000    0.000    0.000    0.000 configparser.py:970(_read)
-        2    0.000    0.000    0.001    0.000 csv.py:106(__next__)
-        1    0.000    0.000    0.000    0.000 csv.py:129(DictWriter)
-        1    0.000    0.000    0.000    0.000 csv.py:167(Sniffer)
-        1    0.000    0.000    0.000    0.000 csv.py:22(Dialect)
-        1    0.007    0.007    0.007    0.007 csv.py:4(<module>)
-        1    0.000    0.000    0.000    0.000 csv.py:53(excel)
-        1    0.000    0.000    0.000    0.000 csv.py:63(excel_tab)
-        1    0.000    0.000    0.000    0.000 csv.py:68(unix_dialect)
-        1    0.000    0.000    0.000    0.000 csv.py:79(DictReader)
-        1    0.000    0.000    0.000    0.000 csv.py:80(__init__)
-        1    0.000    0.000    0.000    0.000 csv.py:89(__iter__)
-        3    0.000    0.000    0.000    0.000 csv.py:92(fieldnames)
-        1    0.025    0.025    0.049    0.049 date_interpreter.py:20(<module>)
-        1    0.000    0.000    0.000    0.000 date_interpreter.py:35(DateInterpreter)
-        1    0.000    0.000    0.000    0.000 date_interpreter.py:38(__init__)
-        2    0.000    0.000    0.000    0.000 datetime.py:1017(__new__)
-        1    0.000    0.000    0.000    0.000 datetime.py:1302(datetime)
-        2    0.000    0.000    0.000    0.000 datetime.py:1312(__new__)
-        1    0.012    0.012    0.013    0.013 datetime.py:17(<module>)
-        1    0.000    0.000    0.000    0.000 datetime.py:1786(timezone)
-        3    0.000    0.000    0.000    0.000 datetime.py:1810(_create)
-        4    0.000    0.000    0.000    0.000 datetime.py:267(_check_date_fields)
-        4    0.000    0.000    0.000    0.000 datetime.py:278(_check_time_fields)
-        4    0.000    0.000    0.000    0.000 datetime.py:290(_check_tzinfo_arg)
-        1    0.000    0.000    0.000    0.000 datetime.py:298(timedelta)
-        9    0.000    0.000    0.000    0.000 datetime.py:317(__new__)
-        1    0.000    0.000    0.000    0.000 datetime.py:500(__neg__)
-        3    0.000    0.000    0.000    0.000 datetime.py:51(_days_before_year)
-        4    0.000    0.000    0.000    0.000 datetime.py:56(_days_in_month)
-        1    0.000    0.000    0.000    0.000 datetime.py:631(date)
-        4    0.000    0.000    0.000    0.000 datetime.py:661(__new__)
-        1    0.000    0.000    0.000    0.000 datetime.py:924(tzinfo)
-        1    0.000    0.000    0.000    0.000 datetime.py:993(time)
-        1    0.000    0.000    0.002    0.002 fix_imap_internaldate.py:108(load_configuration)
-        1    0.074    0.074  136.603  136.603 fix_imap_internaldate.py:20(<module>)
-        1    0.002    0.002  135.351  135.351 fix_imap_internaldate.py:30(main)
-      112    0.001    0.000    0.044    0.000 functools.py:170(wrapper)
-        2    0.000    0.000    0.000    0.000 genericpath.py:85(_splitext)
-        1    0.008    0.008    0.008    0.008 hashlib.py:53(<module>)
-        6    0.000    0.000    0.000    0.000 hashlib.py:94(__get_openssl_constructor)
-        1    0.000    0.000    0.000    0.000 idna.py:146(Codec)
-        2    0.000    0.000    0.000    0.000 idna.py:147(encode)
-        1    0.000    0.000    0.000    0.000 idna.py:196(IncrementalEncoder)
-        1    0.000    0.000    0.000    0.000 idna.py:231(IncrementalDecoder)
-        1    0.000    0.000    0.000    0.000 idna.py:270(StreamWriter)
-        1    0.000    0.000    0.000    0.000 idna.py:273(StreamReader)
-        1    0.000    0.000    0.000    0.000 idna.py:278(getregentry)
-        1    0.011    0.011    0.017    0.017 idna.py:3(<module>)
-        7    0.000    0.000    0.000    0.000 idna.py:62(ToASCII)
-      146    0.001    0.000    2.683    0.018 imaplib.py:1050(_get_tagged_response)
-        1    0.000    0.000    0.000    0.000 imaplib.py:107(IMAP4)
-      667    0.019    0.000    2.689    0.004 imaplib.py:1072(_get_line)
-     2186    0.005    0.000    0.017    0.000 imaplib.py:1091(_match)
-        1    0.054    0.054    0.161    0.161 imaplib.py:11(<module>)
-      146    0.001    0.000    0.001    0.000 imaplib.py:1103(_new_tag)
-        1    0.000    0.000    0.000    0.000 imaplib.py:1111(_quote)
-      146    0.001    0.000    2.696    0.018 imaplib.py:1119(_simple_command)
-       96    0.000    0.000    0.000    0.000 imaplib.py:1124(_untagged_response)
-      813    0.003    0.000    0.004    0.000 imaplib.py:1153(_log)
-        1    0.000    0.000    0.000    0.000 imaplib.py:1176(IMAP4_SSL)
-        1    0.000    0.000    0.155    0.155 imaplib.py:1191(__init__)
-        1    0.000    0.000    0.114    0.114 imaplib.py:1196(_create_socket)
-        1    0.000    0.000    0.114    0.114 imaplib.py:1200(open)
-        1    0.000    0.000    0.000    0.000 imaplib.py:1211(IMAP4_stream)
-        1    0.000    0.000    0.000    0.000 imaplib.py:1267(_Authenticator)
-        1    0.000    0.000    0.000    0.000 imaplib.py:1359(Int2AP)
-        1    0.000    0.000    0.000    0.000 imaplib.py:153(error)
-        1    0.000    0.000    0.000    0.000 imaplib.py:154(abort)
-        1    0.000    0.000    0.000    0.000 imaplib.py:155(readonly)
-        1    0.000    0.000    0.155    0.155 imaplib.py:157(__init__)
-        1    0.000    0.000    0.041    0.041 imaplib.py:182(_connect)
-        1    0.000    0.000    0.021    0.021 imaplib.py:235(_create_socket)
-        1    0.000    0.000    0.114    0.114 imaplib.py:238(open)
-      667    0.001    0.000    2.666    0.004 imaplib.py:263(readline)
-      146    0.000    0.000    0.006    0.000 imaplib.py:268(send)
-        1    0.000    0.000    0.000    0.000 imaplib.py:273(shutdown)
-        1    0.000    0.000    0.001    0.001 imaplib.py:381(capability)
-        1    0.000    0.000    0.484    0.484 imaplib.py:398(close)
-        1    0.000    0.000    0.004    0.004 imaplib.py:511(list)
-        1    0.000    0.000    0.001    0.001 imaplib.py:523(login)
-        1    0.000    0.000    0.001    0.001 imaplib.py:552(logout)
-       47    0.000    0.000    1.852    0.039 imaplib.py:656(select)
-       47    0.000    0.000    0.070    0.001 imaplib.py:751(status)
-       47    0.000    0.000    0.285    0.006 imaplib.py:792(uid)
-      806    0.002    0.000    0.002    0.000 imaplib.py:847(_append_untagged)
-      290    0.001    0.000    0.001    0.000 imaplib.py:861(_check_bye)
-      146    0.002    0.000    0.011    0.000 imaplib.py:867(_command)
-      146    0.001    0.000    2.685    0.018 imaplib.py:944(_command_complete)
-        1    0.000    0.000    0.001    0.001 imaplib.py:961(_get_capabilities)
-      667    0.009    0.000    2.720    0.004 imaplib.py:970(_get_response)
-        9    0.000    0.000    0.000    0.000 locale.py:526(setlocale)
-        3    0.000    0.000    0.000    0.000 locale.py:574(getpreferredencoding)
-        1    0.019    0.019    0.182    0.182 mail_iterator.py:20(<module>)
-        1    0.000    0.000    0.000    0.000 mail_iterator.py:29(MailIterator)
-        1    0.000    0.000    0.160    0.160 mail_iterator.py:32(__init__)
-        1    0.000    0.000    0.485    0.485 mail_iterator.py:42(__del__)
-       48    0.001    0.000    1.923    0.040 mail_iterator.py:47(__iter__)
-       47    0.000    0.000    0.305    0.006 mail_iterator.py:60(fetch_messages)
-        1    0.000    0.000    0.000    0.000 os.py:35(_get_exports_list)
-        1    0.000    0.000    0.000    0.000 os.py:39(<listcomp>)
-        1    0.000    0.000    0.002    0.002 pickle.py:173(<listcomp>)
-        1    0.000    0.000    0.000    0.000 pickle.py:177(_Pickler)
-        1    0.013    0.013    0.015    0.015 pickle.py:24(<module>)
-        1    0.000    0.000    0.000    0.000 pickle.py:68(PickleError)
-        1    0.000    0.000    0.000    0.000 pickle.py:72(PicklingError)
-        1    0.000    0.000    0.000    0.000 pickle.py:781(_Unpickler)
-        1    0.000    0.000    0.000    0.000 pickle.py:79(UnpicklingError)
-        1    0.000    0.000    0.000    0.000 pickle.py:92(_Stop)
-        2    0.000    0.000    0.000    0.000 posixpath.py:108(splitext)
-        2    0.000    0.000    0.000    0.000 posixpath.py:129(basename)
-        1    0.000    0.000    0.000    0.000 posixpath.py:330(normpath)
-        1    0.000    0.000    0.000    0.000 posixpath.py:367(abspath)
-        4    0.000    0.000    0.000    0.000 posixpath.py:38(_get_sep)
-        5    0.000    0.000    0.000    0.000 posixpath.py:49(normcase)
-        1    0.000    0.000    0.000    0.000 posixpath.py:61(isabs)
-        1    0.000    0.000    0.000    0.000 posixpath.py:71(join)
-        1    0.000    0.000    0.000    0.000 random.py:165(randrange)
-        1    0.000    0.000    0.000    0.000 random.py:210(randint)
-        1    0.000    0.000    0.000    0.000 random.py:216(_randbelow)
-        1    0.012    0.012    0.020    0.020 random.py:37(<module>)
-        1    0.000    0.000    0.000    0.000 random.py:625(SystemRandom)
-        1    0.000    0.000    0.000    0.000 random.py:68(Random)
-        1    0.000    0.000    0.000    0.000 random.py:84(__init__)
-        1    0.000    0.000    0.000    0.000 random.py:93(seed)
-       90    0.000    0.000    0.002    0.000 re.py:150(match)
-       22    0.000    0.000    0.043    0.002 re.py:204(compile)
-      112    0.000    0.000    0.045    0.000 re.py:254(_compile)
-       23    0.000    0.000    0.043    0.002 re.py:257(_compile_typed)
-        1    0.000    0.000    0.000    0.000 socket.py:141(makefile)
-        1    0.000    0.000    0.000    0.000 socket.py:184(_decref_socketios)
-        2    0.000    0.000    0.000    0.000 socket.py:190(_real_close)
-        1    0.000    0.000    0.000    0.000 socket.py:194(close)
-        1    0.000    0.000    0.000    0.000 socket.py:233(SocketIO)
-        1    0.000    0.000    0.000    0.000 socket.py:250(__init__)
-      529    0.003    0.000    2.657    0.005 socket.py:262(readinto)
-      530    0.001    0.000    0.001    0.000 socket.py:304(readable)
-        1    0.000    0.000    0.000    0.000 socket.py:331(close)
-        1    0.000    0.000    0.021    0.021 socket.py:370(create_connection)
-        1    0.006    0.006    0.007    0.007 socket.py:44(<module>)
-        1    0.000    0.000    0.000    0.000 socket.py:87(socket)
-        2    0.000    0.000    0.000    0.000 socket.py:93(__init__)
-       90    0.001    0.000    0.010    0.000 sre_compile.py:178(_compile_charset)
-       90    0.004    0.000    0.009    0.000 sre_compile.py:207(_optimize_charset)
-      330    0.000    0.000    0.000    0.000 sre_compile.py:24(_identityfunction)
-        9    0.000    0.000    0.000    0.000 sre_compile.py:258(_mk_bitmap)
-        2    0.003    0.001    0.005    0.002 sre_compile.py:301(_optimize_unicode)
-   150/23    0.002    0.000    0.011    0.000 sre_compile.py:32(_compile)
-       50    0.000    0.000    0.000    0.000 sre_compile.py:355(_simple)
-       23    0.000    0.000    0.005    0.000 sre_compile.py:362(_compile_info)
-       46    0.000    0.000    0.000    0.000 sre_compile.py:468(isstring)
-       23    0.000    0.000    0.016    0.001 sre_compile.py:471(_code)
-       23    0.000    0.000    0.043    0.002 sre_compile.py:486(compile)
-      200    0.000    0.000    0.000    0.000 sre_parse.py:127(__len__)
-      547    0.001    0.000    0.002    0.000 sre_parse.py:131(__getitem__)
-       50    0.000    0.000    0.000    0.000 sre_parse.py:135(__setitem__)
-      285    0.000    0.000    0.001    0.000 sre_parse.py:139(append)
-   200/73    0.001    0.000    0.001    0.000 sre_parse.py:141(getwidth)
-       23    0.000    0.000    0.000    0.000 sre_parse.py:179(__init__)
-     2064    0.009    0.000    0.013    0.000 sre_parse.py:183(__next)
-      608    0.001    0.000    0.003    0.000 sre_parse.py:202(match)
-     1757    0.003    0.000    0.013    0.000 sre_parse.py:208(get)
-        5    0.000    0.000    0.000    0.000 sre_parse.py:212(tell)
-        1    0.000    0.000    0.000    0.000 sre_parse.py:214(seek)
-      183    0.000    0.000    0.000    0.000 sre_parse.py:217(isident)
-        1    0.000    0.000    0.000    0.000 sre_parse.py:220(isdigit)
-       43    0.000    0.000    0.000    0.000 sre_parse.py:223(isname)
-        6    0.000    0.000    0.000    0.000 sre_parse.py:232(_class_escape)
-       36    0.000    0.000    0.000    0.000 sre_parse.py:264(_escape)
-    85/23    0.001    0.000    0.025    0.001 sre_parse.py:308(_parse_sub)
-    96/26    0.005    0.000    0.025    0.001 sre_parse.py:386(_parse)
-       23    0.000    0.000    0.000    0.000 sre_parse.py:670(fix_flags)
-       23    0.000    0.000    0.000    0.000 sre_parse.py:68(__init__)
-       23    0.000    0.000    0.026    0.001 sre_parse.py:682(parse)
-       59    0.000    0.000    0.000    0.000 sre_parse.py:73(opengroup)
-       59    0.000    0.000    0.000    0.000 sre_parse.py:84(closegroup)
-      154    0.000    0.000    0.000    0.000 sre_parse.py:91(__init__)
-        1    0.000    0.000    0.000    0.000 ssl.py:107(CertificateError)
-        1    0.000    0.000    0.000    0.000 ssl.py:166(SSLContext)
-        1    0.000    0.000    0.000    0.000 ssl.py:172(__new__)
-        1    0.000    0.000    0.000    0.000 ssl.py:178(__init__)
-        1    0.000    0.000    0.000    0.000 ssl.py:192(SSLSocket)
-        1    0.000    0.000    0.093    0.093 ssl.py:197(__init__)
-     1351    0.001    0.000    0.001    0.000 ssl.py:282(_checkClosed)
-      529    0.002    0.000    2.647    0.005 ssl.py:286(read)
-      146    0.001    0.000    0.005    0.000 ssl.py:329(send)
-      146    0.001    0.000    0.006    0.000 ssl.py:361(sendall)
-      529    0.003    0.000    2.651    0.005 ssl.py:388(recv_into)
-        1    0.000    0.000    0.000    0.000 ssl.py:426(shutdown)
-        2    0.000    0.000    0.000    0.000 ssl.py:439(_real_close)
-        1    0.000    0.000    0.093    0.093 ssl.py:444(do_handshake)
-        1    0.000    0.000    0.000    0.000 ssl.py:505(__del__)
-        1    0.000    0.000    0.093    0.093 ssl.py:510(wrap_socket)
-        1    0.017    0.017    0.018    0.018 ssl.py:55(<module>)
-        1    0.000    0.000    0.000    0.000 stringprep.py:6(<module>)
-        1    0.035    0.035    0.051    0.051 subprocess.py:336(<module>)
-        1    0.000    0.000    0.000    0.000 subprocess.py:351(CalledProcessError)
-        1    0.000    0.000    0.000    0.000 subprocess.py:641(Popen)
-        1    0.000    0.000    0.001    0.001 threading.py:1(<module>)
-        2    0.000    0.000    0.000    0.000 threading.py:1016(current_thread)
-        2    0.000    0.000    0.000    0.000 threading.py:172(Condition)
-        1    0.000    0.000    0.000    0.000 threading.py:175(_Condition)
-        2    0.000    0.000    0.000    0.000 threading.py:177(__init__)
-        1    0.000    0.000    0.000    0.000 threading.py:217(_is_owned)
-        1    0.000    0.000    0.000    0.000 threading.py:284(notify)
-        1    0.000    0.000    0.000    0.000 threading.py:302(notify_all)
-        1    0.000    0.000    0.000    0.000 threading.py:311(_Semaphore)
-        1    0.000    0.000    0.000    0.000 threading.py:369(_BoundedSemaphore)
-        1    0.000    0.000    0.000    0.000 threading.py:381(Event)
-        1    0.000    0.000    0.000    0.000 threading.py:384(_Event)
-        1    0.000    0.000    0.000    0.000 threading.py:388(__init__)
-        1    0.000    0.000    0.000    0.000 threading.py:402(set)
-        1    0.000    0.000    0.000    0.000 threading.py:43(_Verbose)
-        1    0.000    0.000    0.000    0.000 threading.py:439(Barrier)
-        4    0.000    0.000    0.000    0.000 threading.py:45(__init__)
-        1    0.000    0.000    0.000    0.000 threading.py:50(_note)
-        1    0.000    0.000    0.000    0.000 threading.py:595(BrokenBarrierError)
-        1    0.000    0.000    0.000    0.000 threading.py:615(Thread)
-        1    0.000    0.000    0.000    0.000 threading.py:627(__init__)
-        1    0.000    0.000    0.000    0.000 threading.py:719(_set_ident)
-        2    0.000    0.000    0.000    0.000 threading.py:872(name)
-        3    0.000    0.000    0.000    0.000 threading.py:88(RLock)
-        1    0.000    0.000    0.000    0.000 threading.py:923(_Timer)
-        1    0.000    0.000    0.000    0.000 threading.py:95(_RLock)
-        1    0.000    0.000    0.000    0.000 threading.py:952(_MainThread)
-        1    0.000    0.000    0.000    0.000 threading.py:954(__init__)
-        1    0.000    0.000    0.000    0.000 threading.py:961(_set_daemon)
-        1    0.000    0.000    0.000    0.000 threading.py:992(_DummyThread)
-        1    0.000    0.000    0.000    0.000 warnings.py:1(<module>)
-        1    0.000    0.000    0.000    0.000 warnings.py:269(WarningMessage)
-        1    0.000    0.000    0.000    0.000 warnings.py:289(catch_warnings)
-        1    0.000    0.000    0.000    0.000 warnings.py:83(_OptionError)
-        1    0.000    0.000    0.000    0.000 warnings.py:88(_processoptions)
-        1    0.000    0.000    0.000    0.000 weakref.py:200(update)
-        1    0.000    0.000    0.000    0.000 weakref.py:45(__init__)
-    95/92    0.003    0.000    0.016    0.000 {built-in method __build_class__}
-        1    0.002    0.002    0.019    0.019 {built-in method __import__}
-       25    0.000    0.000    0.000    0.000 {built-in method __new__ of type object at 0x7f0f161d7f20}
-        2    0.000    0.000    0.000    0.000 {built-in method _getframe}
-       82    0.000    0.000    0.000    0.000 {built-in method abs}
-        3    0.000    0.000    0.000    0.000 {built-in method allocate_lock}
-      462    0.000    0.000    0.000    0.000 {built-in method chr}
-       23    0.000    0.000    0.000    0.000 {built-in method compile}
-        2    0.000    0.000    0.000    0.000 {built-in method dir}
-       49    0.000    0.000    0.000    0.000 {built-in method divmod}
-        1    0.086    0.086    0.086    0.086 {built-in method dump}
-        1    0.000    0.000  136.603  136.603 {built-in method exec}
-        1    0.000    0.000    0.000    0.000 {built-in method exp}
-        1    0.000    0.000    0.000    0.000 {built-in method from_bytes}
-        5    0.000    0.000    0.000    0.000 {built-in method get_ident}
-        1    0.001    0.001    0.020    0.020 {built-in method getaddrinfo}
-      120    0.000    0.000    0.000    0.000 {built-in method getattr}
-        1    0.000    0.000    0.000    0.000 {built-in method getcwd}
-        2    0.000    0.000    0.000    0.000 {built-in method getpid}
-        6    0.000    0.000    0.000    0.000 {built-in method globals}
-       16    0.000    0.000    0.000    0.000 {built-in method hasattr}
-     3088    0.003    0.000    0.003    0.000 {built-in method isinstance}
-6063/5991    0.003    0.000    0.004    0.000 {built-in method len}
-        1    0.304    0.304    0.304    0.304 {built-in method load}
-        2    0.000    0.000    0.000    0.000 {built-in method localtime}
-        2    0.000    0.000    0.000    0.000 {built-in method log}
-       15    0.000    0.000    0.000    0.000 {built-in method max}
-      315    0.000    0.000    0.000    0.000 {built-in method min}
-        3    0.000    0.000    0.000    0.000 {built-in method next}
-        3    0.000    0.000    0.000    0.000 {built-in method nl_langinfo}
-        1    0.000    0.000    0.000    0.000 {built-in method openssl_md5}
-        1    0.000    0.000    0.000    0.000 {built-in method openssl_sha1}
-        1    0.000    0.000    0.000    0.000 {built-in method openssl_sha224}
-        1    0.000    0.000    0.000    0.000 {built-in method openssl_sha256}
-        1    0.000    0.000    0.000    0.000 {built-in method openssl_sha384}
-        1    0.000    0.000    0.000    0.000 {built-in method openssl_sha512}
-        5    0.007    0.001    0.007    0.001 {built-in method open}
-      260    0.000    0.000    0.000    0.000 {built-in method ord}
-       47    0.002    0.000    0.002    0.000 {built-in method print}
-       33    0.000    0.000    0.000    0.000 {built-in method proxy}
-        1    0.000    0.000    0.000    0.000 {built-in method reader}
-        3    0.000    0.000    0.000    0.000 {built-in method register_dialect}
-        1    0.000    0.000    0.000    0.000 {built-in method register}
-        9    0.000    0.000    0.000    0.000 {built-in method round}
-        9    0.000    0.000    0.000    0.000 {built-in method setlocale}
-        1    0.000    0.000    0.000    0.000 {built-in method sorted}
-        1    0.000    0.000    0.000    0.000 {built-in method sqrt}
-        2    0.000    0.000    0.000    0.000 {built-in method strftime}
-        1    0.000    0.000    0.000    0.000 {built-in method sysconf}
-      816    0.001    0.000    0.001    0.000 {built-in method time}
-        1    0.000    0.000    0.000    0.000 {built-in method urandom}
-        4    0.000    0.000    0.000    0.000 {built-in method utf_8_decode}
-        1    0.000    0.000    0.000    0.000 {function seed at 0x1502a68}
-      529    0.002    0.000    0.002    0.000 {method '_checkClosed' of '_io._IOBase' objects}
-      529    0.001    0.000    0.002    0.000 {method '_checkReadable' of '_io._IOBase' objects}
-        1    0.000    0.000    0.000    0.000 {method '_wrap_socket' of '_ssl._SSLContext' objects}
-        6    0.000    0.000    0.000    0.000 {method 'acquire' of '_thread.RLock' objects}
-        2    0.000    0.000    0.000    0.000 {method 'acquire' of '_thread.lock' objects}
-        5    0.000    0.000    0.000    0.000 {method 'add' of 'set' objects}
-     2553    0.002    0.000    0.002    0.000 {method 'append' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'bit_length' of 'int' objects}
-        1    0.000    0.000    0.000    0.000 {method 'close' of '_io.BufferedReader' objects}
-        1    0.001    0.001    0.001    0.001 {method 'connect' of '_socket.socket' objects}
-       94    0.000    0.000    0.000    0.000 {method 'decode' of 'bytes' objects}
-        1    0.000    0.000    0.000    0.000 {method 'detach' of '_socket.socket' objects}
-        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
-        1    0.093    0.093    0.093    0.093 {method 'do_handshake' of '_ssl._SSLSocket' objects}
-        7    0.000    0.000    0.000    0.000 {method 'encode' of 'str' objects}
-      667    0.001    0.000    0.001    0.000 {method 'endswith' of 'bytes' objects}
-        1    0.000    0.000    0.000    0.000 {method 'endswith' of 'str' objects}
-       12    0.000    0.000    0.000    0.000 {method 'extend' of 'bytearray' objects}
-       21    0.000    0.000    0.000    0.000 {method 'extend' of 'list' objects}
-        1    0.000    0.000    0.000    0.000 {method 'fileno' of '_socket.socket' objects}
-        2    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
-        2    0.001    0.000    0.001    0.000 {method 'flush' of '_io.TextIOWrapper' objects}
-        2    0.000    0.000    0.000    0.000 {method 'format' of 'str' objects}
-      465    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
-        1    0.000    0.000    0.000    0.000 {method 'getpeername' of '_socket.socket' objects}
-        1    0.000    0.000    0.000    0.000 {method 'getrandbits' of '_random.Random' objects}
-        3    0.000    0.000    0.000    0.000 {method 'gettimeout' of '_socket.socket' objects}
-     2148    0.003    0.000    0.003    0.000 {method 'group' of '_sre.SRE_Match' objects}
-       94    0.000    0.000    0.000    0.000 {method 'groups' of '_sre.SRE_Match' objects}
-   301881  132.333    0.000  132.333    0.000 {method 'index' of 'list' objects}
-        4    0.000    0.000    0.000    0.000 {method 'isalnum' of 'str' objects}
-       36    0.000    0.000    0.000    0.000 {method 'items' of 'dict' objects}
-        5    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
-        7    0.000    0.000    0.000    0.000 {method 'lower' of 'str' objects}
-     2377    0.013    0.000    0.013    0.000 {method 'match' of '_sre.SRE_Pattern' objects}
-       96    0.000    0.000    0.000    0.000 {method 'pop' of 'dict' objects}
-      529    2.645    0.005    2.645    0.005 {method 'read' of '_ssl._SSLSocket' objects}
-      667    0.008    0.000    2.665    0.004 {method 'readline' of '_io.BufferedReader' objects}
-        6    0.000    0.000    0.000    0.000 {method 'release' of '_thread.RLock' objects}
-        1    0.000    0.000    0.000    0.000 {method 'release' of '_thread.lock' objects}
-       59    0.000    0.000    0.000    0.000 {method 'remove' of 'list' objects}
-        3    0.000    0.000    0.000    0.000 {method 'replace' of 'str' objects}
-        6    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
-        6    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
-        4    0.000    0.000    0.000    0.000 {method 'search' of '_sre.SRE_Pattern' objects}
-        1    0.000    0.000    0.000    0.000 {method 'set_ciphers' of '_ssl._SSLContext' objects}
-      512    0.002    0.000    0.002    0.000 {method 'setdefault' of 'dict' objects}
-        4    0.000    0.000    0.000    0.000 {method 'setter' of 'property' objects}
-        2    0.000    0.000    0.000    0.000 {method 'settimeout' of '_socket.socket' objects}
-        2    0.000    0.000    0.000    0.000 {method 'split' of '_sre.SRE_Pattern' objects}
-       47    0.019    0.000    0.019    0.000 {method 'split' of 'bytes' objects}
-        2    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
-        4    0.000    0.000    0.000    0.000 {method 'start' of '_sre.SRE_Match' objects}
-       13    0.000    0.000    0.000    0.000 {method 'startswith' of 'str' objects}
-       62    0.000    0.000    0.000    0.000 {method 'strip' of 'str' objects}
-        2    0.000    0.000    0.000    0.000 {method 'tobytes' of 'array.array' objects}
-        2    0.000    0.000    0.000    0.000 {method 'tolist' of 'array.array' objects}
-        1    0.000    0.000    0.000    0.000 {method 'union' of 'set' objects}
-       48    0.000    0.000    0.000    0.000 {method 'upper' of 'str' objects}
-        4    0.000    0.000    0.000    0.000 {method 'write' of '_io.TextIOWrapper' objects}
-      146    0.004    0.000    0.004    0.000 {method 'write' of '_ssl._SSLSocket' objects}
-
similarity index 100%
rename from caching_data.py
rename to src/caching_data.py
similarity index 100%
rename from confscript.cfg
rename to src/confscript.cfg
similarity index 100%
rename from mail_date_parser.py
rename to src/mail_date_parser.py
similarity index 71%
rename from mail_iterator.py
rename to src/mail_iterator.py
index a17ab6c..a30af21 100644 (file)
@@ -44,23 +44,29 @@ class MailIterator:
             self.logged_in = False
             raise UserWarning("Could not log in as user " + username + ".")
         self.logged_in = True
-        result, self.mailboxes = self.mail_con.list()
-        if(result!="OK"):
+        
+        try:
+            result, self.mailboxes = self.mail_con.list()
+        except:
             raise UserWarning("Could not retrieve mailboxes for user " + username + ".")
 
     def __del__(self):
         """Closes the connection and the user session."""
         if(self.logged_in):
-            self.mail_con.close()
-            self.mail_con.logout()
+            try:
+                self.mail_con.close()
+                self.mail_con.logout()
+            except:
+                pass
 
     def __iter__(self):
         """Iterates through all mailboxes, returns (uidval,name)."""
         for mailbox in self.mailboxes:
             logging.debug("Checking mailbox %s.", mailbox)
             mailbox = MAILBOX_RESP.match(mailbox.decode('iso-8859-1')).groups()
-            result, data = self.mail_con.status(mailbox[2], '(UIDVALIDITY)')
-            if(result!="OK"):
+            try:
+                result, data = self.mail_con.status(mailbox[2], '(UIDVALIDITY)')
+            except:
                 raise UserWarning("Could not retrieve mailbox uidvalidity.")
             uidval = UIDVAL_RESP.match(data[0].decode('iso-8859-1')).groups()
             logging.debug("Extracted mailbox info is %s %s.", data[0], uidval)
@@ -69,24 +75,27 @@ class MailIterator:
 
     def fetch_messages(self):
         """Fetches the messages from the current mailbox, return list of uids."""
-        result, data = self.mail_con.uid('search', None, "ALL")
-        if(result!="OK"):
+        try:
+            result, data = self.mail_con.uid('search', None, "ALL")
+        except:
             raise UserWarning("Could not fetch messages.")
         mailid_list = data[0].split()
         return mailid_list
 
     def fetch_internal_date(self, mid):
         """Fetches the internal date of a message, returns a time tuple."""
-        result, data = self.mail_con.uid('fetch', mid, '(INTERNALDATE)')
-        if(result!="OK"):
+        try:
+            result, data = self.mail_con.uid('fetch', mid, '(INTERNALDATE)')
+        except:
             raise UserWarning("Could not fetch the internal date of message" + mid + ".")
         internal_date = imaplib.Internaldate2tuple(data[0])
         return internal_date
 
     def fetch_received_date(self, mid):
         """Fetches the received date of a message, returns bytes reponse."""
-        result, data = self.mail_con.uid('fetch', mid, '(BODY.PEEK[HEADER.FIELDS (RECEIVED)])')
-        if(result!="OK"):
+        try:
+            result, data = self.mail_con.uid('fetch', mid, '(BODY.PEEK[HEADER.FIELDS (RECEIVED)])')
+        except:
             raise UserWarning("Could not fetch the received header of message" + mid + ".")
         return data[0][1].decode('iso-8859-1')
 
@@ -94,23 +103,22 @@ class MailIterator:
         """Replaces a message with one with correct internal date."""
         internal_date_seconds = time.mktime(internal_date.timetuple())
         internal_date_str = imaplib.Time2Internaldate(internal_date_seconds)
-        result, data = self.mail_con.uid('fetch', mid, '(RFC822)')
-        if(result!="OK"):
-            raise UserWarning("Could not retrieve the entire e-mail" + mid + ".")
-        #logging.debug("Entire e-mail is: %s", data[0][1])
+        try:
+            result, data = self.mail_con.uid('fetch', mid, '(RFC822)')
+            #logging.debug("Entire e-mail is: %s", data[0][1])
 
-        fetched_flags = self.mail_con.uid('fetch', mid, '(FLAGS)')[1][0]
-        parsed_flags = imaplib.ParseFlags(fetched_flags)
-        flags_str = " ".join(flag.decode('iso-8859-1') for flag in parsed_flags)
-        result, data = self.mail_con.append(mailbox, flags_str,
-                                            internal_date_str, data[0][1])
-        logging.debug("Adding corrected copy of the message reponse: %s %s", result, data)
-        if(result!="OK"):
+            fetched_flags = self.mail_con.uid('fetch', mid, '(FLAGS)')[1][0]
+            parsed_flags = imaplib.ParseFlags(fetched_flags)
+            flags_str = " ".join(flag.decode('iso-8859-1') for flag in parsed_flags)
+            result, data = self.mail_con.append(mailbox, flags_str,
+                                                internal_date_str, data[0][1])
+            logging.debug("Adding corrected copy of the message reponse: %s %s", result, data)
+        except:
             raise UserWarning("Could not replace the e-mail" + mid + ".")
-        else:
+        try:
             result, data = self.mail_con.uid('STORE', mid, '+FLAGS', r'(\Deleted)')
             logging.debug("Removing old copy of the message reponse: %s %s", result, data)
-            if(result!="OK"):
-                raise UserWarning("Could not delete the e-mail" + mid + ".")
-            else: self.mail_con.expunge()
+        except:
+            raise UserWarning("Could not delete the e-mail" + mid + ".")
+        self.mail_con.expunge()
         return
similarity index 100%
rename from mailbox_state.py
rename to src/mailbox_state.py
similarity index 100%
rename from unit_tester.py
rename to src/unit_tester.py
similarity index 100%
rename from userdata.csv
rename to src/userdata.csv