| Commit message (Collapse) | Author | Age |
... | |
| | |
|
| |
| |
| |
| |
| |
| | |
This patch removes the need to create an intermediate dictionary while
calculating the authors of a thread, it does so by working directly with
the _authors list.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Currently this function takes a list, splits into two lists based on
whether or not a function returns None, sorts the list that isn't None,
and then appends the list of None to the end. This creates 4 new
concrete lists on each method call, requires the use of 3 filter +
lambda pairs, and calls list.sort(). Pretty complicated and inefficient.
This patch replaces that with a single sorted() function call with a kay
function that replaces None with a value that is guaranteed to sort less
than what Message.get_date() will return, but will not cause a
comparison to None (which is an error in Python 3.x). This is all based
on iterators and avoids the need for filter or list concatenation. This
should result in only one new list being created.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
This had the advantage of being more readable to people without a
functional programming background, and it avoids the need to use lambdas
which are both slow and have many corners in python. In a few cases it
also allows us to use a generator expression instead of a materialized
list, which save some memory.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In alot/helper.py this is a fairly obvious change. In alot/buffers.py
I've taken the liberty of replacing a somewhat odd use of multiplication
that relies on the bool class (True and False) implementing an __int__
method. These are used to add the 's' to the end of 'message' if there
are more than one message (thus messages), this is much clearer (and
more correct) when implemented as a ternary instead.
|
| |
| |
| |
| | |
This just adds the `r` prefix to a few strings.
|
| |
| |
| |
| |
| | |
several of these don't take a self argument. In one case self is needed,
in the others decorating them as static methods fixes the behavior.
|
| | |
|
| | |
|
|/
|
|
| |
This is needed by unittest that mock Thread.refresh.
|
|\
| |
| | |
Switch to container infrastructure on travis
|
|/
|
|
|
|
|
|
|
| |
Travis advises to prefer them and they start up much quicker compared to full
VMs.
This is now possible because
https://github.com/travis-ci/apt-package-whitelist/issues/3895 has been
resolved.
|
|\
| |
| | |
Drop little used helper
|
|/
|
|
|
|
|
|
| |
The safely_get helper is just a wrapper around try/except, and is used
twice in the whole code base, in the same function. It really doesn't
even end up saving code because to get around line wrapping a lambda is
assigned (which is not the greatest style wise), it ends up saving one
line of code when it's called, and the function itself is 16 lines long.
|
|\
| |
| | |
[QC] Turn methods with no `self` usage into staticmethods
|
|/ |
|
| |
|
|\
| |
| | |
Use with blocks to write to temp files
|
| | |
|
|\ \
| | |
| | | |
Fix some issues reported by quantifycode
|
| | | |
|
| | | |
|
| | | |
|
| |/ |
|
|/ |
|
|\
| |
| | |
small fixes suggested by quantifiedcode
|
| |
| |
| |
| | |
https://www.quantifiedcode.com/app/issue_class/AiJMd9EB
|
| | |
|
|\ \
| |/
|/| |
fix interpolation in config files #902.
|
|/
|
|
|
|
|
|
|
| |
Configobj's string interpolation feature does not work as expected in
account sections of alot configuration files.
The reason is that interpolation is done in ConfigObj.__getitem__
which alot does not use directly for account sections.
This patch causes all values to be read via ConfigObj.__getitem__
explicitly.
|
|\
| |
| | |
Save command line history across sessions
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
The option allows to limit the size of recent command line entries that are
store on disk.
|
| |
| |
| |
| |
| |
| | |
Initialize the command history with lines from
${XDG_CACHE_HOME:-~/.cache}/alot at startup. Write the current history to the
file again during shutdown.
|
|\ \
| | |
| | | |
Use footnote-links to clean up badges
|
| | |
| | |
| | |
| | |
| | |
| | | |
Having a "badges" section is a bit weird, and surveying other projects
suggests that a common convention is to put these right after the quick
synopsis.
|
| | | |
|
|/ /
| |
| |
| | |
...They can be hard to look at in the source otherwise.
|
|\ \
| | |
| | | |
badges
|
| | | |
|
| | | |
|
|\ \ \
| |/ /
|/| | |
Use open() as a context manager
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
While open().read() is nice for its terseness it has the problem that it
causes an fd to leak until the gc collects it. For short lived scripts
this isn't a big deal, but for a program like alot that run for long
periods of time it's better to be correct and ensure that the fd is
closed.
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This uses open() as a context manager instead of calling close()
explicitly. This has the advantage of closing even in the event of an
exception, being easier to visually inspect for correctness, and being
the more modern idiom.
This does leave one case of file.close(), where FILE is opened in an if
tree.
|
|\ \
| | |
| | | |
Small fixes found with pylint
|