- Fix #14 by not sorting filters when generating XML (thanks to @spacezorro)
- Fix #18 (support multiple Gmail accounts) by adding
--credential-store
option (thanks to @rbo for pull #29) - Added
--delete-all
option (thanks to @spacezorro for the idea in #30) - Removed dependency on
six
2-to-3 compatibility library
- Fix #28 (pruning a filter with no actions would cause a crash)
- Fix #23 (no such file or directory
client_secret.json
when running locally)
- Added better
--help
strings and mentionclient_secret.json
in README - Moved RuleSet and related classes/functions into its own module
- Fix #7 by allowing actions with no conditions except for in nested rules
- Fix #17 (include XML declaration at top of file)
- Add support for a number of Gmail search operators
- Add support for
forward:
action
- Fix #5 (crash on an existing Gmail filter with no actions)
- Support and test Python 3.6 and Python 3.7
- Explicitly include
oauth2client
in library dependencies. - Support
has: attachment
andhas_attachment: true
as rule conditions.
Support Unicode labels in --dry-run mode
Fix a bug where --prune or --sync would create labels even in --dry-run
Allow dicts in for_each
with keys used in rule strings
Fixed #3 (crash on --upload
when a user had no existing filters)
Fixed a bug that broke --prune
as a standalone command.
- Added
--prune-labels
action to remove unused labels. This action also supports--only-matching REGEX
to limit the pruning behavior and--ignore-errors
for when Google's API times out or returns a 404.
- Added
--dry-run
flag for the cautious souls out there
- Added direct interaction with Gmail API (
--upload
,--prune
, and--sync
) - Added support for Travis-CI
- This was the first version released to PyPI.