summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
| * db/thread: Set some protected variables in the constructor.Dylan Baker2016-12-21
| |
| * db/thread: Avoid intermediate data structureDylan Baker2016-12-21
| | | | | | | | | | | | 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.
| * db/thread: don't create multiple lists to sortDylan Baker2016-12-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * Define instance attribute in constructor.Dylan Baker2016-12-21
| |
| * Replace map() and filter() with comprehensionsDylan Baker2016-12-21
| | | | | | | | | | | | | | | | 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.
| * Fix "superflous paren" warnings from pylintDylan Baker2016-12-21
| | | | | | | | | | | | | | | | | | 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.
| * Use raw strings with backslashesDylan Baker2016-12-21
| | | | | | | | This just adds the `r` prefix to a few strings.
| * Fix values to methods in __main__Dylan Baker2016-12-21
| | | | | | | | | | 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.
| * tests: Add tests for alot.db.thread.Thread.get_authorDylan Baker2016-12-21
| |
| * setup.py: Add hook for tests.Dylan Baker2016-12-21
| |
| * db/thread: define Thread._authors in constructorDylan Baker2016-12-21
|/ | | | This is needed by unittest that mock Thread.refresh.
* Merge pull request #933 from lucc/travis/containerLucas Hoffmann2016-12-20
|\ | | | | Switch to container infrastructure on travis
| * Switch to container infrastructure on travisLucas Hoffmann2016-12-20
|/ | | | | | | | | 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.
* Merge pull request #932 from dcbaker/pr/drop-helperPatrick Totzke2016-12-19
|\ | | | | Drop little used helper
| * Drop little used helperDylan Baker2016-12-19
|/ | | | | | | | 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.
* Merge pull request #931 from lucc/quantifycode-fixesLucas Hoffmann2016-12-19
|\ | | | | [QC] Turn methods with no `self` usage into staticmethods
| * Turn methods with no `self` usage into staticmethodsLucas Hoffmann2016-12-18
|/
* faqPatrick Totzke2016-12-18
|
* Merge pull request #929 from lucc/with-block-temp-filesPatrick Totzke2016-12-18
|\ | | | | Use with blocks to write to temp files
| * Use with blocks to write to temp filesLucas Hoffmann2016-12-18
| |
* | Merge pull request #930 from lucc/quantifycode-fixesPatrick Totzke2016-12-17
|\ \ | | | | | | Fix some issues reported by quantifycode
| * | Turn method into static methodLucas Hoffmann2016-12-17
| | |
| * | Remove redundant None argument in dict.get()Lucas Hoffmann2016-12-17
| | |
| * | Use cls as first argument to classmethodsLucas Hoffmann2016-12-17
| | |
| * | Simplify arithmetic comparisonLucas Hoffmann2016-12-17
| |/
* / include some files when building a distChristian Geier2016-12-17
|/
* Merge pull request #927 from pazz/cleanupPatrick Totzke2016-12-16
|\ | | | | small fixes suggested by quantifiedcode
| * more pythonic names in doc-scriptsPatrick Totzke2016-12-16
| | | | | | | | https://www.quantifiedcode.com/app/issue_class/AiJMd9EB
| * Remove unreachable codePatrick Totzke2016-12-16
| |
* | Merge pull request #926 from pazz/0.4-interpolation-902Patrick Totzke2016-12-16
|\ \ | |/ |/| fix interpolation in config files #902.
| * fix interpolation in config files #902.Patrick Totzke2016-12-16
|/ | | | | | | | | 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.
* Merge pull request #885 from lucc/historyPatrick Totzke2016-12-15
|\ | | | | Save command line history across sessions
| * Add saved history feature to NEWS fileLucas Hoffmann2016-12-15
| |
| * Fix typo in commentLucas Hoffmann2016-12-15
| |
| * Address comments by @dcbakerLucas Hoffmann2016-12-15
| |
| * Update autogenerated docsLucas Hoffmann2016-12-14
| |
| * Expand history concept for sender and recipient of mailLucas Hoffmann2016-12-14
| |
| * Add history_size optionLucas Hoffmann2016-12-14
| | | | | | | | | | The option allows to limit the size of recent command line entries that are store on disk.
| * Save and load command history across invocationsLucas Hoffmann2016-12-14
| | | | | | | | | | | | Initialize the command history with lines from ${XDG_CACHE_HOME:-~/.cache}/alot at startup. Write the current history to the file again during shutdown.
* | Merge pull request #924 from zenhack/cleanup-badgesPatrick Totzke2016-12-15
|\ \ | | | | | | Use footnote-links to clean up badges
| * | Move badges to the topIan Denhardt2016-12-15
| | | | | | | | | | | | | | | | | | 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.
| * | README: make headings all the same levelIan Denhardt2016-12-15
| | |
| * | Use footnote-links to clean up badgesIan Denhardt2016-12-15
|/ / | | | | | | ...They can be hard to look at in the source otherwise.
* | Merge pull request #923 from dcbaker/pr/badgesPatrick Totzke2016-12-15
|\ \ | | | | | | badges
| * | README: add badgesDylan Baker2016-12-14
| | |
| * | README: update the irc channel to #alotDylan Baker2016-12-14
| | |
* | | Merge pull request #922 from dcbaker/pr/open-context-managerPatrick Totzke2016-12-15
|\ \ \ | |/ / |/| | Use open() as a context manager
| * | use open as a context manager instead of oneline open().read()Dylan Baker2016-12-14
| | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | use open() as context managerDylan Baker2016-12-14
|/ / | | | | | | | | | | | | | | | | | | 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.
* | Merge pull request #920 from lucc/pylintDylan Baker2016-12-14
|\ \ | | | | | | Small fixes found with pylint