Commit Graph

307 Commits

Author SHA1 Message Date
Konstantinos Natsakis
fa080b8d92
BUG: Right format for username using remoteusereval
Similarly to 7a4285370f, reading the username
using remoteusereval returns a bytes objects instead an utf-8 string.

This patch includes support for both string and bytes objects.

Signed-off-by: Konstantinos Natsakis <5933427+knatsakis@users.noreply.github.com>
2021-02-08 23:54:50 +02:00
Rodolfo García Peñas (kix)
63ce3f770d foldersort broken with instance comparison
This patch solves a problem about the comparison of mails used in
foldersort.

When foldersort is used, for example with:

 lambda x,y: -cmp(x,y)

The user gets an error:

ERROR: While attempting to sync account 'accountname'
  '<' not supported between instances of 'K' and 'K'

Traceback:
  File "offlineimap3/offlineimap/accounts.py", line 298, in syncrunner
    self.__sync()
  File "offlineimap3/offlineimap/accounts.py", line 374, in __sync
    remoterepos.getfolders()
  File "offlineimap3/offlineimap/repository/IMAP.py", line 725, in getfolders
    retval.sort(key=cmp2key(self.foldersort))

The problem is because in Python 3, we must specify all parameters for
total_ordering (see https://docs.python.org/3/library/functools.html in
the functools.total_ordering block):

  Given a class defining one or more rich comparison ordering methods,
  this class decorator supplies the rest. This simplifies the effort
  involved in specifying all of the possible rich comparison operations:

  The class must define one of __lt__(), __le__(), __gt__(), or __ge__().
  In addition, the class should supply an __eq__() method.

Also, see: https://docs.python.org/3.1/library/stdtypes.html#comparisons

  Instances of a class cannot be ordered with respect to other instances
  of the same class, or other types of object, unless the class defines
  enough of the methods __lt__(), __le__(), __gt__(), and __ge__()
  (in general, __lt__() and __eq__() are sufficient, if you want the
  conventional meanings of the comparison operators).

This patch implements all methods.

Closes #33
2020-12-30 21:49:19 +01:00
Rodolfo García Peñas (kix)
7a4285370f BUG: Right format for password using remotepasseval
Reading the password using remotepasseval returns a bytes objects
instead an utf-8 string.

This patch includes support strings and bytes objects.

Closes #21

    Signed-off-by: Rodolfo García Peñas (kix) <kix@kix.es>
2020-11-04 22:17:32 +01:00
Rodolfo García Peñas (kix)
6010437885 __init__.py added explicit from in raise exceptions
Remove the warnings:

repository/__init__.py:66:12: W0707: Consider explicitly re-raising using the 'from' keyword (raise-missing-from)
repository/__init__.py:74:12: W0707: Consider explicitly re-raising using the 'from' keyword (raise-missing-from)
2020-11-01 12:58:39 +01:00
Rodolfo García Peñas (kix)
0f19b6e63a __init__.py removed pass
This pass is not needed, because we have docstring.
2020-11-01 12:56:57 +01:00
Rodolfo García Peñas (kix)
8c6de099f9 LocalStatus.py Renamed variable
Variable bk is renamed to bkend to avoid this pylint warning:

repository/LocalStatus.py:88:12: C0103: Variable name "bk" doesn't conform to snake_case naming style (invalid-name)
2020-11-01 12:54:59 +01:00
Rodolfo García Peñas (kix)
3e5832e828 LocalStatus.py removed unused pass
We don't need this pass because we have the docstring.
2020-11-01 12:53:34 +01:00
Rodolfo García Peñas (kix)
14020a670f LocalStatus.py added docstrings
This patch adds some docstrings.
2020-11-01 12:52:51 +01:00
Rodolfo García Peñas (kix)
2409fe8f49 IMAP.py removed warning about explicitly re-raising
This patch removes this warning:

repository/IMAP.py:146:16: W0707: Consider explicitly re-raising using the 'from' keyword (raise-missing-from)
2020-11-01 12:45:48 +01:00
Rodolfo García Peñas (kix)
f8a5b0b295 IMAP.py renamed variables
This patch renames some variables to avoid warnings like:

'e' doesn't conform to snake_case naming style (invalid-name)
2020-11-01 12:40:48 +01:00
Rodolfo García Peñas (kix)
316fcfbbee IMAP.py docstrings
This patch includes the docstrings for IMAP.py file.
2020-11-01 12:31:18 +01:00
Rodolfo García Peñas (kix)
852bc9acd9 Gmail.py use hardcoded url variable 2/2
Because the call in the if and in the else blocks is the same, we can move it outside the conditional block.

Code now is clear.
2020-11-01 10:06:32 +01:00
Rodolfo García Peñas (kix)
6b9f37e317 Gmail.py use hardcoded url variable 1/2
This patch sets the url variable to the hardcoded value. Then call the
self.setoauth2_request_url(url) function.
2020-11-01 10:04:18 +01:00
Rodolfo García Peñas (kix)
b175f7a698 Base.py sync_folder_structure returns always None
The function sync_folder_structure is only used in the accounts.py file:

kix@inle:~/src/offlineimap3/offlineimap$ rgrep sync_folder_structure *
accounts.py:            remoterepos.sync_folder_structure(localrepos, statusrepos)
repository/Base.py:    def sync_folder_structure(self, local_repo, status_repo):
kix@inle:~/src/offlineimap3/offlineimap$

The returned value is not used. We have this warning:

R1710: Either all return statements in a function should return an expression, or none of them should. (inconsistent-return-statements)

Because is not returning anything here, but is returning None at the function end.
We can include this None here safely.
2020-11-01 10:00:02 +01:00
Rodolfo García Peñas (kix)
1d93f90db5 Base.py renamed exception variable e to exc
This variable is renamed twice to avoid this warning:

C0103: Attribute name "e" doesn't conform to snake_case naming style (invalid-name)
2020-11-01 09:55:25 +01:00
Rodolfo García Peñas (kix)
e25bd7b48b Base.py removed unused pass
This patch removes these pass calls, because we have the docstrings and then we don't need include it.
2020-11-01 09:49:28 +01:00
Rodolfo García Peñas (kix)
20e3323718 Base.py added docstrings
This patch adds multiple docstrings.
2020-11-01 09:47:17 +01:00
Rodolfo García Peñas (kix)
62bfead5e4 Maildir.py split long lines
This patch split long lines in less 80 chars.
2020-11-01 09:29:31 +01:00
Rodolfo García Peñas (kix)
646cb4354b Maildir.py renamed variable names
This patch renames some variables to avoid these warnings:

Variable name "e" doesn't conform to snake_case naming style (invalid-name)
2020-11-01 09:26:42 +01:00
Rodolfo García Peñas (kix)
5c6e95103e Maildir.py added docstrings
This patch adds the docstring for the class and for two methods.
2020-11-01 09:21:08 +01:00
Rodolfo García Peñas (kix)
e12a702128 GmailMaildir.py Removed __init__
First, in Python 3 we don't need call the super().__init__ explicitly, because Python does it. So, we can remove the line:

super().__init__(reposname, account)

If we leafe the method __init__ empty, the parent __init__ method is not called, we need remove the __init__ and then Python uses the parent __init__ method.
2020-11-01 09:13:17 +01:00
Rodolfo García Peñas (kix)
5f338454ee GmailMaildir.py Removed parent class for super call
The super() call in Python 3 does not need the parent class. The MRO get it.
2020-11-01 09:06:35 +01:00
Rodolfo García Peñas (kix)
caea1b7baa GmailMaildir.py included class docstring
Only added docstring for the class.
2020-11-01 09:03:37 +01:00
Rodolfo García Peñas (kix)
c2fce5de38 Gmail.py removed parent class in super calls
In Python 3 we don't need specify the class for these calls, the MRO find it.
2020-11-01 09:02:09 +01:00
Rodolfo García Peñas (kix)
3f7e9fe1bd Gmail.py Changed comments to docstring
This patch changes the comments in these functions to docstrings
and remove pylint warnings.
2020-11-01 08:57:43 +01:00
Rodolfo García Peñas (kix)
fc2055de8c Gmail.py else statement not needed
Always is else here.
2020-11-01 08:54:16 +01:00
Rodolfo García Peñas (kix)
0454e3e2f1 Gmail.py swap if block
I swapped this if - else block, with the "is not". Code now is clear.
2020-11-01 08:53:08 +01:00
Rodolfo García Peñas (kix)
4198fa8201 Gmail.py else statement not needed
We don't need speficify the else here. Always is else.
2020-11-01 08:51:03 +01:00
Rodolfo García Peñas (kix)
d50a28a68f repository add docstring to files
This patch includes the docstrings for all files, removing the pylint
warning
2020-11-01 08:43:16 +01:00
Rodolfo García Peñas (kix)
23f67019cc Base.py long lines style
This patch changes long lines (>80 chars) to lines <80 chars.
The patch only changes the style.
2020-10-31 16:43:52 +01:00
Rodolfo García Peñas (kix)
332a6d7240 IMAP.py long lines style
This patch changes long lines (>80 chars) to lines <80 chars.
The patch only changes the style.
2020-10-31 16:14:53 +01:00
Rodolfo García Peñas (kix)
1ce229ca9d IMAP.py comparison with None should use is
Comparison with None should be "is" not "=="
2020-10-31 16:12:02 +01:00
Rodolfo García Peñas (kix)
2f2f4ef918 IMAP.py long lines style
This patch changes long lines (>80 chars) to lines <80 chars.
The patch only changes the style.
2020-10-31 16:09:34 +01:00
Rodolfo García Peñas (kix)
5033340c2f IMAP.py should use encoding to read the file
This patch includes the word "encoding" to select the right argument in remotepassfile.
2020-10-31 15:53:45 +01:00
Rodolfo García Peñas (kix)
0e90bcbf38 IMAP.py too many arguments for string format
We need only two arguments, not three. We can remove the self argument.
2020-10-31 15:37:50 +01:00
Rodolfo García Peñas (kix)
352133dcc0 call to setDaemon uses Bool argument
The argument 1 should be True in these files.
2020-10-31 15:35:54 +01:00
Rodolfo García Peñas (kix)
a4863b2f04 Use system sslcacertfile by default
This patch includes a new functionality to get the sslcacertfile.

With this patch is possible to remove the sslcacertfile variable form the
.offlineimaprc and use the system's default. This could be easy for new users.

With this patch, the user can use ssl without the sslcacertfile option
in .offlineimaprc, use sslcacertfile = <empty> (no include anything
after the equal sign, os specify the sslcacertfile as previosly.

Currently, these are the options:

    User specifies sslacertfile -> OK
    User specifies sslacertfile=OS-DEFAULT
        If the system's default is provided -> OK
        If the system's default is not provided -> Fail
    User do not specifies sslacertfile -> Fail
    User specifies empty sslacertfile -> Fail

With the new option (this patch).

    User specifies sslacertfile -> OK
    User specifies sslacertfile=OS-DEFAULT or
    User do not specifies sslacertfile or
    User specifies empty sslacertfile
        If the system's default is provided -> OK
        If the system's default is not provided -> Fail

Closes #14
2020-10-26 12:10:49 +01:00
Rodolfo García Peñas (kix)
47f7b1ba3c get_os_sslcertfile_searchpath do not check iterable
Now, location is always an iterable, so we don't need check it.
2020-10-25 17:32:38 +01:00
Rodolfo García Peñas (kix)
f66bfb0026 Renamed utils/distro.py
The file utils/distro.py is renamed to utils/distro_utils.py
because we need import the distro file to update some calls.

The file is used in IMAP.py, I need change the import.
2020-10-25 16:33:52 +01:00
Rodolfo García Peñas (kix)
0c04611ca4 Changed doxygen parameter
The parameter regtype does not exists, it is reqtype.
2020-10-10 17:48:30 +02:00
Rodolfo García Peñas (kix)
7fff7fc458 repository/__init__.py remove try import python2
This patch removes the dup code between try and catch

Signed-off-by: Rodolfo García Peñas (kix) <kix@kix.es>
2020-09-03 21:36:10 +02:00
Rodolfo García Peñas (kix)
35b588f57e six: changed offlineimap/repository/__init__.py
This patch removes the library six, compatible with python2.

I need change these re-raise calls.

Signed-off-by: Rodolfo García Peñas (kix) <kix@kix.es>
2020-09-03 21:36:05 +02:00
Rodolfo García Peñas (kix)
6321a66287 six: changed offlineimap/repository/IMAP.py
This patch removes the library six, compatible with python2.

I need change this re-raise call.

Signed-off-by: Rodolfo García Peñas (kix) <kix@kix.es>
2020-09-03 21:36:04 +02:00
Rodolfo García Peñas (kix)
6f622c7b27 repository/IMAP.py getselectors updated
In the patch "IMAP list folders" we updated the function getselectors
to return '""'. We use this variable in the folders, but also here.

Because the variable is never '', we need update it with this change, to
test that the variable has value, but is not empty.

Signed-off-by: Rodolfo García Peñas (kix) <kix@kix.es>
2020-09-03 21:35:49 +02:00
Rodolfo García Peñas (kix)
caaa953616 IMAP.py list folders
This patch changes the refernce to "", because now the empty string
is not saved as '""', is just '', so the fecth command fails.

Then, I changed the fech call to "" "*", using refernce "" and pattern
"*".
2020-09-01 18:21:27 +02:00
Rodolfo García Peñas (kix)
ccbe42fb64 repository/Maildir.py changed not var in
This patch changes:

if not var1 in var2

with

if var1 not in var2
2020-08-30 14:25:55 +02:00
Rodolfo García Peñas (kix)
9779d5444a repository/IMAP.py Removed initialitation
We don't need initialite this variable here.
2020-08-30 14:21:04 +02:00
Rodolfo García Peñas (kix)
78b010d149 repository/IMAP.py Removed extra characters
These characters can be removed.
2020-08-30 14:19:34 +02:00
Rodolfo García Peñas (kix)
75f979d45b repository/Gmail.py Unused argument
I removed this argument. The function is not used.
2020-08-30 14:17:10 +02:00
Rodolfo García Peñas (kix)
3aba335109 repository/Base.py changed not var in
This patch changes:

if not var1 in var2

with

if var1 not in var2
2020-08-30 14:15:49 +02:00