jenkins-bot has submitted this change and it was merged. (
https://gerrit.wikimedia.org/r/538257 )
Change subject: [IMPR] derive LoginStatus from IntEnum
......................................................................
[IMPR] derive LoginStatus from IntEnum
Removing name class method might be a breaking change
but I think this is never used elsewhere and can easily
replace by the IntEnum name attribute:
Instead LoginStatus.name(0) you may use LoginStatus(0).name
Bug: T213287
Change-Id: Id92f64671bde4c19463f516e1f273a8d33c67dcb
---
M pywikibot/site.py
1 file changed, 11 insertions(+), 19 deletions(-)
Approvals:
Huji: Looks good to me, approved
jenkins-bot: Verified
diff --git a/pywikibot/site.py b/pywikibot/site.py
index bd8d070..283133e 100644
--- a/pywikibot/site.py
+++ b/pywikibot/site.py
@@ -31,6 +31,7 @@
except ImportError: # Python 2.7
from collections import Iterable, Container, Mapping
from collections import namedtuple
+from enum import IntEnum
from warnings import warn
import pywikibot
@@ -101,18 +102,22 @@
"""Page cannot be reserved for writing due to existing
lock."""
-class LoginStatus(object):
+class LoginStatus(IntEnum):
"""
Enum for Login statuses.
>> LoginStatus.NOT_ATTEMPTED
- -3
- >>> LoginStatus.AS_USER
+ LoginStatus(-3)
+ >>> LoginStatus.IN_PROGRESS.value
+ -2
+ >>> LoginStatus.NOT_LOGGED_IN.name
+ NOT_LOGGED_IN
+ >>> int(LoginStatus.AS_USER)
0
- >>> LoginStatus.name(-3)
+ >>> LoginStatus(-3).name
'NOT_ATTEMPTED'
- >>> LoginStatus.name(0)
+ >>> LoginStatus(0).name
'AS_USER'
"""
@@ -122,22 +127,9 @@
AS_USER = 0
AS_SYSOP = 1
- @classmethod
- def name(cls, search_value):
- """Return the name of a LoginStatus by it's
value."""
- for key, value in cls.__dict__.items():
- if key == key.upper() and value == search_value:
- return key
- raise KeyError('Value %r could not be found in this enum'
- % search_value)
-
- def __init__(self, state):
- """Initializer."""
- self.state = state
-
def __repr__(self):
"""Return internal representation."""
- return 'LoginStatus(%s)' % (LoginStatus.name(self.state))
+ return 'LoginStatus({})'.format(self)
Family = redirect_func(pywikibot.family.Family.load,
--
To view, visit
https://gerrit.wikimedia.org/r/538257
To unsubscribe, or for help writing mail filters, visit
https://gerrit.wikimedia.org/r/settings
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: Id92f64671bde4c19463f516e1f273a8d33c67dcb
Gerrit-Change-Number: 538257
Gerrit-PatchSet: 3
Gerrit-Owner: Xqt <info(a)gno.de>
Gerrit-Reviewer: Huji <huji.huji(a)gmail.com>
Gerrit-Reviewer: jenkins-bot (75)