Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: ikvk/imap_tools
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v0.16.0
Choose a base ref
...
head repository: ikvk/imap_tools
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
Loading
Showing with 11,926 additions and 1,639 deletions.
  1. +6 −6 .gitignore
  2. +362 −185 README.rst
  3. +38 −0 docs/IMAP_related_RFCs.txt
  4. +5 −0 docs/_repo_mirror.txt
  5. +139 −0 docs/dev_notes.txt
  6. +7 −0 docs/dev_requirements.txt
  7. +4 −0 docs/donate.rst
  8. +6 −0 docs/full_docs.rst
  9. +37 −0 docs/packaging_notes.txt
  10. +497 −0 docs/release_notes.rst
  11. +35 −0 docs/todo.txt
  12. +0 −38 examples/_notes.txt
  13. +52 −0 examples/basic.py
  14. 0 examples/{attachments.py → email_attachments_to_files.py}
  15. +16 −0 examples/email_edit.py
  16. 0 examples/{email_from_file.py → email_from_eml.py}
  17. +30 −0 examples/email_parse_eml_attachments.py
  18. +11 −0 examples/email_size.py
  19. +10 −0 examples/email_to_file.py
  20. +13 −0 examples/fetch_by_pages.py
  21. +61 −0 examples/idle.py
  22. +14 −0 examples/keyword_criteria_and_custom_flags.py
  23. +6 −0 examples/oauth2.py
  24. +0 −11 examples/parse_eml.py
  25. +21 −8 examples/pysocks_proxy.py
  26. +23 −19 examples/search.py
  27. +18 −0 examples/tls.py
  28. +13 −6 imap_tools/__init__.py
  29. +81 −0 imap_tools/consts.py
  30. +101 −0 imap_tools/errors.py
  31. +96 −68 imap_tools/folder.py
  32. +130 −0 imap_tools/idle.py
  33. +20 −16 imap_tools/imap_utf7.py
  34. +324 −95 imap_tools/mailbox.py
  35. +165 −116 imap_tools/message.py
  36. 0 imap_tools/py.typed
  37. +185 −111 imap_tools/query.py
  38. +182 −72 imap_tools/utils.py
  39. +0 −150 release_notes.rst
  40. +7 −6 setup.py
  41. +30 −0 tests/_disabled/raw_email_multiple_from.eml
  42. +22 −0 tests/_disabled/raw_email_multiple_from.py
  43. +0 −385 tests/data.py
  44. 0 tests/messages/.gitattributes
  45. +27 −0 tests/messages/address_quoted_newlines.eml
  46. +20 −0 tests/messages/att_name_in_content_type.eml
  47. +2 −1 tests/messages/attachment_7bit.eml
  48. +29 −0 tests/messages/attachment_emails/attachment_content_disposition.eml
  49. +32 −0 tests/messages/attachment_emails/attachment_content_location.eml
  50. +93 −0 tests/messages/attachment_emails/attachment_message_rfc822.eml
  51. +28 −0 tests/messages/attachment_emails/attachment_nonascii_filename.eml
  52. +17 −0 tests/messages/attachment_emails/attachment_only_email.eml
  53. +70 −0 tests/messages/attachment_emails/attachment_pdf.eml
  54. +70 −0 tests/messages/attachment_emails/attachment_pdf_lf.eml
  55. +47 −0 tests/messages/attachment_emails/attachment_with_base64_encoded_name.eml
  56. +47 −0 tests/messages/attachment_emails/attachment_with_encoded_name.eml
  57. +60 −0 tests/messages/attachment_emails/attachment_with_quoted_filename.eml
  58. +28 −0 tests/messages/attachment_emails/attachment_with_unquoted_name.eml
  59. +128 −0 tests/messages/attachment_inline1.eml
  60. +104 −0 tests/messages/attachment_inline2.eml
  61. +151 −0 tests/messages/base.eml
  62. +27 −0 tests/messages/double_fields.eml
  63. +19 −0 tests/messages/error_emails/InvalidMultipartContentTransferEncodingDefect.eml
  64. +40 −0 tests/messages/error_emails/bad_date_header.eml
  65. +23 −0 tests/messages/error_emails/bad_date_header2.eml
  66. +3 −0 tests/messages/error_emails/bad_encoded_subject.eml
  67. +56 −0 tests/messages/error_emails/bad_subject.eml
  68. +33 −0 tests/messages/error_emails/cant_parse_from.eml
  69. +231 −0 tests/messages/error_emails/content_transfer_encoding_7-bit.eml
  70. +33 −0 tests/messages/error_emails/content_transfer_encoding_empty.eml
  71. +148 −0 tests/messages/error_emails/content_transfer_encoding_plain.eml
  72. +53 −0 tests/messages/error_emails/content_transfer_encoding_qp_with_space.eml
  73. +44 −0 tests/messages/error_emails/content_transfer_encoding_spam.eml
  74. +50 −0 tests/messages/error_emails/content_transfer_encoding_text-html.eml
  75. +770 −0 tests/messages/error_emails/content_transfer_encoding_with_8bits.eml
  76. +269 −0 tests/messages/error_emails/content_transfer_encoding_with_semi_colon.eml
  77. +79 −0 tests/messages/error_emails/content_transfer_encoding_x_uuencode.eml
  78. +162 −0 tests/messages/error_emails/empty_group_lists.eml
  79. +52 −0 tests/messages/error_emails/empty_in_reply_to.eml
  80. +32 −0 tests/messages/error_emails/encoding_madness.eml
  81. +33 −0 tests/messages/error_emails/header_fields_with_empty_values.eml
  82. +5 −0 tests/messages/error_emails/invalid_subject_characters.eml
  83. +16 −0 tests/messages/error_emails/missing_body.eml
  84. +43 −0 tests/messages/error_emails/missing_content_disposition.eml
  85. +25 −0 tests/messages/error_emails/multiple_content_types.eml
  86. +12 −0 tests/messages/error_emails/multiple_invalid_content_dispositions.eml
  87. +27 −0 tests/messages/error_emails/multiple_references_with_one_invalid.eml
  88. +13 −0 tests/messages/error_emails/must_supply_encoding.eml
  89. +33 −0 tests/messages/error_emails/new_line_in_to_header.eml
  90. +35 −0 tests/messages/error_emails/trademark_character_in_subject.eml
  91. +29 −0 tests/messages/error_emails/weird_to_header.eml
  92. +88 −0 tests/messages/forwarded_message.eml
  93. +45 −0 tests/messages/mime_emails/email_with_similar_boundaries.eml
  94. +34 −0 tests/messages/mime_emails/raw_email11.eml
  95. +32 −0 tests/messages/mime_emails/raw_email12.eml
  96. +114 −0 tests/messages/mime_emails/raw_email2.eml
  97. +59 −0 tests/messages/mime_emails/raw_email4.eml
  98. +66 −0 tests/messages/mime_emails/raw_email7.eml
  99. +53 −0 tests/messages/mime_emails/raw_email_encoded_stack_level_too_deep.eml
  100. +24 −0 tests/messages/mime_emails/raw_email_with_binary_encoded.eml
  101. +58 −0 tests/messages/mime_emails/raw_email_with_illegal_boundary.eml
  102. +94 −0 tests/messages/mime_emails/raw_email_with_mimepart_without_content_type.eml
  103. +50 −0 tests/messages/mime_emails/raw_email_with_multipart_mixed_quoted_boundary.eml
  104. +100 −0 tests/messages/mime_emails/raw_email_with_nested_attachment.eml
  105. +58 −0 tests/messages/mime_emails/raw_email_with_quoted_illegal_boundary.eml
  106. +29 −0 tests/messages/mime_emails/sig_only_email.eml
  107. +42 −0 tests/messages/mime_emails/two_from_in_message.eml
  108. +9 −0 tests/messages/multi_charset/japanese.eml
  109. +27 −0 tests/messages/multi_charset/japanese_attachment.eml
  110. +44 −0 tests/messages/multi_charset/japanese_attachment_long_name.eml
  111. +10 −0 tests/messages/multi_charset/japanese_iso_2022.eml
  112. +15 −0 tests/messages/multi_charset/japanese_shift_jis.eml
  113. +11 −0 tests/messages/multi_charset/ks_c_5601-1987.eml
  114. +179 −0 tests/messages/multipart_report_emails/multi_address_bounce1.eml
  115. +179 −0 tests/messages/multipart_report_emails/multi_address_bounce2.eml
  116. +112 −0 tests/messages/multipart_report_emails/multipart_report_multiple_status.eml
  117. +98 −0 tests/messages/multipart_report_emails/report_422.eml
  118. +97 −0 tests/messages/multipart_report_emails/report_530.eml
  119. +31 −0 tests/messages/plain_emails/basic_email.eml
  120. +31 −0 tests/messages/plain_emails/basic_email_lf.eml
  121. +11 −0 tests/messages/plain_emails/mix_caps_content_type.eml
  122. +14 −0 tests/messages/plain_emails/raw_email.eml
  123. +20 −0 tests/messages/plain_emails/raw_email10.eml
  124. +19 −0 tests/messages/plain_emails/raw_email5.eml
  125. +20 −0 tests/messages/plain_emails/raw_email6.eml
  126. +47 −0 tests/messages/plain_emails/raw_email8.eml
  127. +62 −0 tests/messages/plain_emails/raw_email_bad_time.eml
  128. +14 −0 tests/messages/plain_emails/raw_email_double_at_in_header.eml
  129. +28 −0 tests/messages/plain_emails/raw_email_incorrect_header.eml
  130. +14 −0 tests/messages/plain_emails/raw_email_quoted_with_0d0a.eml
  131. +32 −0 tests/messages/plain_emails/raw_email_reply.eml
  132. +11 −0 tests/messages/plain_emails/raw_email_simple.eml
  133. +17 −0 tests/messages/plain_emails/raw_email_string_in_date_field.eml
  134. +21 −0 tests/messages/plain_emails/raw_email_trailing_dot.eml
  135. +31 −0 tests/messages/plain_emails/raw_email_with_at_display_name.eml
  136. +48 −0 tests/messages/plain_emails/raw_email_with_bad_date.eml
  137. +21 −0 tests/messages/plain_emails/raw_email_with_partially_quoted_content_id.eml
  138. +14 −0 tests/messages/plain_emails/raw_email_with_partially_quoted_subject.eml
  139. +8 −0 tests/messages/rfc2822/example01.eml
  140. +9 −0 tests/messages/rfc2822/example02.eml
  141. +7 −0 tests/messages/rfc2822/example03.eml
  142. +7 −0 tests/messages/rfc2822/example04.eml
  143. +8 −0 tests/messages/rfc2822/example05.eml
  144. +10 −0 tests/messages/rfc2822/example06.eml
  145. +9 −0 tests/messages/rfc2822/example07.eml
  146. +12 −0 tests/messages/rfc2822/example08.eml
  147. +15 −0 tests/messages/rfc2822/example09.eml
  148. +15 −0 tests/messages/rfc2822/example10.eml
  149. +6 −0 tests/messages/rfc2822/example11.eml
  150. +8 −0 tests/messages/rfc2822/example12.eml
  151. +10 −0 tests/messages/rfc2822/example13.eml
  152. +16 −0 tests/messages/rfc2822/example14.eml
  153. +5 −0 tests/messages/rfc6532/utf8_headers.eml
  154. +28 −146 tests/messages/simple.eml
  155. +40 −0 tests/messages/text_with_content_id.eml
  156. +30 −0 tests/messages_data/address_quoted_newlines.py
  157. +30 −0 tests/messages_data/att_name_in_content_type.py
  158. +38 −0 tests/messages_data/attachment_2_base64.py
  159. +30 −0 tests/messages_data/attachment_7bit.py
  160. +30 −0 tests/messages_data/attachment_8bit.py
  161. +30 −0 tests/messages_data/attachment_emails/attachment_content_disposition.py
  162. +30 −0 tests/messages_data/attachment_emails/attachment_content_location.py
  163. +38 −0 tests/messages_data/attachment_emails/attachment_message_rfc822.py
  164. +30 −0 tests/messages_data/attachment_emails/attachment_nonascii_filename.py
  165. +30 −0 tests/messages_data/attachment_emails/attachment_only_email.py
  166. +30 −0 tests/messages_data/attachment_emails/attachment_pdf.py
  167. +30 −0 tests/messages_data/attachment_emails/attachment_pdf_lf.py
  168. +30 −0 tests/messages_data/attachment_emails/attachment_with_base64_encoded_name.py
  169. +30 −0 tests/messages_data/attachment_emails/attachment_with_encoded_name.py
  170. +30 −0 tests/messages_data/attachment_emails/attachment_with_quoted_filename.py
  171. +30 −0 tests/messages_data/attachment_emails/attachment_with_unquoted_name.py
  172. +46 −0 tests/messages_data/attachment_inline1.py
  173. +30 −0 tests/messages_data/attachment_inline2.py
  174. +30 −0 tests/messages_data/base.py
  175. +22 −0 tests/messages_data/double_fields.py
  176. +22 −0 tests/messages_data/error_emails/InvalidMultipartContentTransferEncodingDefect.py
  177. +22 −0 tests/messages_data/error_emails/bad_date_header.py
  178. +22 −0 tests/messages_data/error_emails/bad_date_header2.py
  179. +22 −0 tests/messages_data/error_emails/bad_encoded_subject.py
  180. +22 −0 tests/messages_data/error_emails/bad_subject.py
  181. +22 −0 tests/messages_data/error_emails/cant_parse_from.py
  182. +22 −0 tests/messages_data/error_emails/content_transfer_encoding_7-bit.py
  183. +22 −0 tests/messages_data/error_emails/content_transfer_encoding_empty.py
  184. +22 −0 tests/messages_data/error_emails/content_transfer_encoding_plain.py
  185. +22 −0 tests/messages_data/error_emails/content_transfer_encoding_qp_with_space.py
  186. +22 −0 tests/messages_data/error_emails/content_transfer_encoding_spam.py
  187. +22 −0 tests/messages_data/error_emails/content_transfer_encoding_text-html.py
  188. +22 −0 tests/messages_data/error_emails/content_transfer_encoding_with_8bits.py
  189. +22 −0 tests/messages_data/error_emails/content_transfer_encoding_with_semi_colon.py
  190. +30 −0 tests/messages_data/error_emails/content_transfer_encoding_x_uuencode.py
  191. +22 −0 tests/messages_data/error_emails/empty_group_lists.py
  192. +22 −0 tests/messages_data/error_emails/empty_in_reply_to.py
  193. +22 −0 tests/messages_data/error_emails/encoding_madness.py
  194. +22 −0 tests/messages_data/error_emails/header_fields_with_empty_values.py
  195. +22 −0 tests/messages_data/error_emails/invalid_subject_characters.py
  196. +22 −0 tests/messages_data/error_emails/missing_body.py
  197. +22 −0 tests/messages_data/error_emails/missing_content_disposition.py
  198. +22 −0 tests/messages_data/error_emails/multiple_content_types.py
  199. +22 −0 tests/messages_data/error_emails/multiple_invalid_content_dispositions.py
  200. +22 −0 tests/messages_data/error_emails/multiple_references_with_one_invalid.py
  201. +22 −0 tests/messages_data/error_emails/must_supply_encoding.py
  202. +22 −0 tests/messages_data/error_emails/new_line_in_to_header.py
  203. +22 −0 tests/messages_data/error_emails/trademark_character_in_subject.py
  204. +22 −0 tests/messages_data/error_emails/weird_to_header.py
  205. +30 −0 tests/messages_data/forwarded_message.py
  206. +30 −0 tests/messages_data/mime_emails/email_with_similar_boundaries.py
  207. +22 −0 tests/messages_data/mime_emails/raw_email11.py
  208. +30 −0 tests/messages_data/mime_emails/raw_email12.py
  209. +30 −0 tests/messages_data/mime_emails/raw_email2.py
  210. +22 −0 tests/messages_data/mime_emails/raw_email4.py
  211. +46 −0 tests/messages_data/mime_emails/raw_email7.py
  212. +22 −0 tests/messages_data/mime_emails/raw_email_encoded_stack_level_too_deep.py
  213. +30 −0 tests/messages_data/mime_emails/raw_email_with_binary_encoded.py
  214. +22 −0 tests/messages_data/mime_emails/raw_email_with_illegal_boundary.py
  215. +30 −0 tests/messages_data/mime_emails/raw_email_with_mimepart_without_content_type.py
  216. +30 −0 tests/messages_data/mime_emails/raw_email_with_multipart_mixed_quoted_boundary.py
  217. +38 −0 tests/messages_data/mime_emails/raw_email_with_nested_attachment.py
  218. +22 −0 tests/messages_data/mime_emails/raw_email_with_quoted_illegal_boundary.py
  219. +30 −0 tests/messages_data/mime_emails/sig_only_email.py
  220. +22 −0 tests/messages_data/mime_emails/two_from_in_message.py
  221. +22 −0 tests/messages_data/multi_charset/japanese.py
  222. +30 −0 tests/messages_data/multi_charset/japanese_attachment.py
  223. +30 −0 tests/messages_data/multi_charset/japanese_attachment_long_name.py
  224. +22 −0 tests/messages_data/multi_charset/japanese_iso_2022.py
  225. +22 −0 tests/messages_data/multi_charset/japanese_shift_jis.py
  226. +22 −0 tests/messages_data/multi_charset/ks_c_5601-1987.py
  227. +30 −0 tests/messages_data/multipart_report_emails/multi_address_bounce1.py
  228. +30 −0 tests/messages_data/multipart_report_emails/multi_address_bounce2.py
  229. +46 −0 tests/messages_data/multipart_report_emails/multipart_report_multiple_status.py
  230. +22 −0 tests/messages_data/multipart_report_emails/report_422.py
  231. +22 −0 tests/messages_data/multipart_report_emails/report_530.py
  232. +22 −0 tests/messages_data/plain_emails/basic_email.py
  233. +22 −0 tests/messages_data/plain_emails/basic_email_lf.py
  234. +22 −0 tests/messages_data/plain_emails/mix_caps_content_type.py
  235. +22 −0 tests/messages_data/plain_emails/raw_email.py
  236. +22 −0 tests/messages_data/plain_emails/raw_email10.py
  237. +22 −0 tests/messages_data/plain_emails/raw_email5.py
  238. +22 −0 tests/messages_data/plain_emails/raw_email6.py
  239. +30 −0 tests/messages_data/plain_emails/raw_email8.py
  240. +22 −0 tests/messages_data/plain_emails/raw_email_bad_time.py
  241. +22 −0 tests/messages_data/plain_emails/raw_email_double_at_in_header.py
  242. +22 −0 tests/messages_data/plain_emails/raw_email_incorrect_header.py
  243. +22 −0 tests/messages_data/plain_emails/raw_email_quoted_with_0d0a.py
  244. +22 −0 tests/messages_data/plain_emails/raw_email_reply.py
  245. +22 −0 tests/messages_data/plain_emails/raw_email_simple.py
  246. +22 −0 tests/messages_data/plain_emails/raw_email_string_in_date_field.py
  247. +22 −0 tests/messages_data/plain_emails/raw_email_trailing_dot.py
  248. +22 −0 tests/messages_data/plain_emails/raw_email_with_at_display_name.py
  249. +22 −0 tests/messages_data/plain_emails/raw_email_with_bad_date.py
  250. +30 −0 tests/messages_data/plain_emails/raw_email_with_partially_quoted_content_id.py
  251. +22 −0 tests/messages_data/plain_emails/raw_email_with_partially_quoted_subject.py
  252. +22 −0 tests/messages_data/rfc2822/example01.py
  253. +22 −0 tests/messages_data/rfc2822/example02.py
  254. +22 −0 tests/messages_data/rfc2822/example03.py
  255. +22 −0 tests/messages_data/rfc2822/example04.py
  256. +22 −0 tests/messages_data/rfc2822/example05.py
  257. +22 −0 tests/messages_data/rfc2822/example06.py
  258. +22 −0 tests/messages_data/rfc2822/example07.py
  259. +22 −0 tests/messages_data/rfc2822/example08.py
  260. +22 −0 tests/messages_data/rfc2822/example09.py
  261. +22 −0 tests/messages_data/rfc2822/example10.py
  262. +22 −0 tests/messages_data/rfc2822/example11.py
  263. +22 −0 tests/messages_data/rfc2822/example12.py
  264. +22 −0 tests/messages_data/rfc2822/example13.py
  265. +22 −0 tests/messages_data/rfc2822/example14.py
  266. +22 −0 tests/messages_data/rfc6532/utf8_headers.py
  267. +22 −0 tests/messages_data/simple.py
  268. +30 −0 tests/messages_data/text_with_content_id.py
  269. +0 −62 tests/test_actions.py
  270. +31 −7 tests/test_folders.py
  271. +24 −0 tests/test_idle.py
  272. +7 −7 tests/test_imap_utf7.py
  273. +137 −0 tests/test_mailbox.py
  274. +98 −24 tests/test_message.py
  275. +75 −61 tests/test_query.py
  276. +118 −33 tests/test_utils.py
  277. +5 −3 tests/utils.py
  278. +0 −3 todo.txt
  279. +8 −0 tox.ini
12 changes: 6 additions & 6 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
*.orig
__pycache__
MANIFEST
/.idea/
/.tox
/*.egg-info/
/examples/check.py
/tests/credentials.ini
/build/
/dist/
/imap_tools.egg-info/
/samples/
/tests/credentials.ini
/examples/check.py
/.python-version
/.idea/
/venv/
Loading