[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#920952: ITP: imaplibext -- Python imaplib extension library providing UID-based commands



Package: wnpp
Severity: wishlist

* Package name    : imaplibext
  Version         : 0.7.6
  Upstream Author : Thomas Ward <teward@ubuntu.com>
* URL             : https://gitlab.com/teward/imaplibext
* License         : AGPL-3+
  Programming Lang: Python
  Description     : Python imaplib extension library providing UID-based
commands

imaplibext is a Python library compatible with Python 2 and Python 3 which
extends the existing imaplib library to provide commands which utilize UID-
based commands instead of the way the imaplib currently does commands. This
allows for better interaction with individual messages, including when
manipulating flags, etc. in a way that won't affect other messages.

A long time ago, I started working on a ListServ product internally with a
company and we couldn't manipulate messages to mark them as unread easily
because we were not using UID-based commands.  This led to some
StackOverflow
questions on best approach to fixing this, which was to make all calls
via UID
calls (imaplib.IMAP4(...).uid(...)). These UID commands ended up being
lengthy
when directly called, and I realized this was going to cause problems, so I
created imaplibext as a wrapper around imaplib to utilize all commands
as UID
command calls instead of the command calls as they were in pure imaplib.
This
permitted easier modifications to email messages and to make sure that the
message we're working with was actually the message we were manipulating.

I personally use this in all my Python projects which relate to using IMAP
email, and this is in use in several projects at the workplace by several
developers. There are more and more projects created as well that are
Python 3
in origin which are using this at work, including on several private
listserv
deployments I have with customized ListServ software; this software utilizes
imaplibext, and if it was possible to have this included in Debian it'd make
things a lot easier and have one less thing that has to be pulled in through
PyPI.

Currently, the only way to get this functionality is with imaplib's
uid() calls
to an IMAP connection.  This can get very lengthy when you have to rewrite
commands to be properly interact with UID commands.  This library
overrides the
in-built IMAP commands to utilize UID calls and behaves identically to
the in-
built imaplib commands that it overrides.

I plan to maintain this myself, as I actively support the library in PyPI
itself as well as in its git repository, and I use it regularly and can fix
bugs on it regularly.  I am also active regularly downstream in Ubuntu, and
because of my levels of activity there, I have no intention of
"disappearing"
or going away and orphaning the package.  I am also regularly reachable via
Email and IRC, and can actively commit to keeping this package updated and
maintained.


Reply to: