Metadata-Version: 2.4
Name: quotequail
Version: 0.5.0
Summary: A library that identifies quoted text in plain text and HTML email messages.
Home-page: http://github.com/closeio/quotequail
Author: Thomas Steinacher
Author-email: engineering@close.com
Maintainer: Thomas Steinacher
Maintainer-email: engineering@close.com
License: MIT
Platform: any
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Communications :: Email
Classifier: Topic :: Software Development :: Libraries :: Python Modules
License-File: LICENSE
Requires-Dist: typing_extensions>=4.1
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: home-page
Dynamic: license
Dynamic: license-file
Dynamic: maintainer
Dynamic: maintainer-email
Dynamic: platform
Dynamic: requires-dist
Dynamic: summary

==========
quotequail
==========

A library that identifies quoted text in plain text and HTML email messages.
quotequail has no mandatory dependencies, however using HTML methods require
libxml.


(Interested in working on projects like this? `Close`_ is looking for `great engineers`_ to join our team)

.. _Close: https://close.com
.. _great engineers: https://www.close.com/careers


Introduction
------------

quotequail comes with the functions listed below which are documented in detail
in quotequail's ``__init__.py``.

* ``quote(text)``: Takes a plain text message as an argument, returns a list of
  tuples. The first argument of the tuple denotes whether the text should be
  expanded by default. The second argument is the unmodified corresponding
  text.
* ``quote_html(html)``: Like ``quote()``, but takes an HTML message as an
  argument.
* ``unwrap(text)``: If the passed text is the text body of a forwarded message,
  a reply, or contains quoted text, a dictionary is returned, containing the
  type (reply/forward/quote), the text at the top/bottom of the wrapped
  message, any parsed headers, and the text of the wrapped message.
* ``unwrap_html(text)``: Like ``unwrap()``, but takes an HTML message as an
  argument.


Examples
--------

.. code:: python

  In [1]: import quotequail

  In [2]: quotequail.quote("""Hello world.

  On 2012-10-16 at 17:02 , Someone <someone@example.com> wrote:

  > Some quoted text
  """)
  Out[2]:
  [(True, 'Hello world.\n\nOn 2012-10-16 at 17:02 , Someone <someone@example.com> wrote:'),
   (False, '\n> Some quoted text\n')]

  In [3]: quotequail.unwrap("""Hello

  Begin forwarded message:

  > From: "Some One" <some.one@example.com>
  > Date: 1. August 2011 23:28:15 GMT-07:00
  > To: "Other Person" <other@example.com>
  > Subject: AW: AW: Some subject
  >
  > Original text

  Text bottom
  """))
  Out[3]:
  {'date': '1. August 2011 23:28:15 GMT-07:00',
   'from': '"Some One" <some.one@example.com>',
   'subject': 'AW: AW: Some subject',
   'text': 'Original text',
   'text_bottom': 'Text bottom',
   'text_top': 'Hello',
   'to': '"Other Person" <other@example.com>',
   'type': 'forward'}
