mirror of https://github.com/zulip/zulip.git
Fix several new errors caught by mypy 0.501.
Clear out a bunch of easy to review errors, so we can focus on the more complicated ones.
This commit is contained in:
parent
024168d85d
commit
28d3af0965
|
@ -122,7 +122,7 @@ def main(argv=None):
|
||||||
|
|
||||||
if not do_send_message(client, message_data):
|
if not do_send_message(client, message_data):
|
||||||
return 1
|
return 1
|
||||||
|
return 0
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
sys.exit(main())
|
sys.exit(main())
|
||||||
|
|
|
@ -87,7 +87,7 @@ def format_commit_lines(web_url, repo, base, tip):
|
||||||
return "\n".join(summary for summary in commit_summaries)
|
return "\n".join(summary for summary in commit_summaries)
|
||||||
|
|
||||||
def send_zulip(email, api_key, site, stream, subject, content):
|
def send_zulip(email, api_key, site, stream, subject, content):
|
||||||
# type: (str, str, str, str, str, Text) -> str
|
# type: (str, str, str, str, str, Text) -> None
|
||||||
"""
|
"""
|
||||||
Send a message to Zulip using the provided credentials, which should be for
|
Send a message to Zulip using the provided credentials, which should be for
|
||||||
a bot in most cases.
|
a bot in most cases.
|
||||||
|
|
|
@ -86,7 +86,7 @@ def release_deployment_lock():
|
||||||
shutil.rmtree(LOCK_DIR)
|
shutil.rmtree(LOCK_DIR)
|
||||||
|
|
||||||
def run(args, **kwargs):
|
def run(args, **kwargs):
|
||||||
# type: (Sequence[str], **Any) -> int
|
# type: (Sequence[str], **Any) -> None
|
||||||
# Output what we're doing in the `set -x` style
|
# Output what we're doing in the `set -x` style
|
||||||
print("+ %s" % (" ".join(args)))
|
print("+ %s" % (" ".join(args)))
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ import sys
|
||||||
|
|
||||||
|
|
||||||
def check_urls():
|
def check_urls():
|
||||||
# type: () -> bool
|
# type: () -> None
|
||||||
url_files = ['zproject/urls.py',
|
url_files = ['zproject/urls.py',
|
||||||
'zproject/dev_urls.py',
|
'zproject/dev_urls.py',
|
||||||
'zproject/legacy_urls.py',
|
'zproject/legacy_urls.py',
|
||||||
|
|
|
@ -97,3 +97,4 @@ class BaseDocumentationSpider(scrapy.Spider):
|
||||||
self._set_error_state()
|
self._set_error_state()
|
||||||
else:
|
else:
|
||||||
raise Exception(failure.value)
|
raise Exception(failure.value)
|
||||||
|
return None
|
||||||
|
|
|
@ -57,6 +57,7 @@ def generic(html_class):
|
||||||
for kw in GENERIC_KEYWORDS:
|
for kw in GENERIC_KEYWORDS:
|
||||||
if kw in html_class:
|
if kw in html_class:
|
||||||
return True
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
def display(fns):
|
def display(fns):
|
||||||
# type: (List[str]) -> None
|
# type: (List[str]) -> None
|
||||||
|
|
|
@ -144,13 +144,11 @@ def split_for_id_and_class(element):
|
||||||
|
|
||||||
def html_branches(text, fn=None):
|
def html_branches(text, fn=None):
|
||||||
# type: (str, str) -> List[HtmlTreeBranch]
|
# type: (str, str) -> List[HtmlTreeBranch]
|
||||||
|
|
||||||
tree = html_tag_tree(text)
|
tree = html_tag_tree(text)
|
||||||
branches = [] # type: List[HtmlTreeBranch]
|
branches = [] # type: List[HtmlTreeBranch]
|
||||||
|
|
||||||
def walk(node, tag_info_list=None):
|
def walk(node, tag_info_list=None):
|
||||||
# type: (Node, Optional[List[TagInfo]]) -> Node
|
# type: (Node, Optional[List[TagInfo]]) -> None
|
||||||
|
|
||||||
info = get_tag_info(node.token)
|
info = get_tag_info(node.token)
|
||||||
if tag_info_list is None:
|
if tag_info_list is None:
|
||||||
tag_info_list = [info]
|
tag_info_list = [info]
|
||||||
|
@ -195,7 +193,6 @@ def html_tag_tree(text):
|
||||||
|
|
||||||
def build_id_dict(templates):
|
def build_id_dict(templates):
|
||||||
# type: (List[str]) -> (Dict[str,List[str]])
|
# type: (List[str]) -> (Dict[str,List[str]])
|
||||||
|
|
||||||
template_id_dict = defaultdict(list) # type: (Dict[str,List[str]])
|
template_id_dict = defaultdict(list) # type: (Dict[str,List[str]])
|
||||||
|
|
||||||
for fn in templates:
|
for fn in templates:
|
||||||
|
|
|
@ -241,6 +241,7 @@ class BaseWebsocketHandler(WebSocketHandler):
|
||||||
# close websocket proxy connection if no connection with target websocket server
|
# close websocket proxy connection if no connection with target websocket server
|
||||||
return self.close()
|
return self.close()
|
||||||
self.client.write_message(message, binary)
|
self.client.write_message(message, binary)
|
||||||
|
return None
|
||||||
|
|
||||||
def check_origin(self, origin):
|
def check_origin(self, origin):
|
||||||
# type: (str) -> bool
|
# type: (str) -> bool
|
||||||
|
@ -262,6 +263,7 @@ class CombineHandler(BaseWebsocketHandler):
|
||||||
# type: (*Any, **Any) -> Optional[Callable]
|
# type: (*Any, **Any) -> Optional[Callable]
|
||||||
if self.request.headers.get("Upgrade", "").lower() == 'websocket':
|
if self.request.headers.get("Upgrade", "").lower() == 'websocket':
|
||||||
return super(CombineHandler, self).get(*args, **kwargs)
|
return super(CombineHandler, self).get(*args, **kwargs)
|
||||||
|
return None
|
||||||
|
|
||||||
def head(self):
|
def head(self):
|
||||||
# type: () -> None
|
# type: () -> None
|
||||||
|
|
|
@ -402,6 +402,7 @@ class InlineInterestingLinkProcessor(markdown.treeprocessors.Treeprocessor):
|
||||||
|
|
||||||
if yt_id is not None:
|
if yt_id is not None:
|
||||||
return "https://i.ytimg.com/vi/%s/default.jpg" % (yt_id,)
|
return "https://i.ytimg.com/vi/%s/default.jpg" % (yt_id,)
|
||||||
|
return None
|
||||||
|
|
||||||
def twitter_text(self, text, urls, user_mentions, media):
|
def twitter_text(self, text, urls, user_mentions, media):
|
||||||
# type: (Text, List[Dict[Text, Text]], List[Dict[Text, Any]], List[Dict[Text, Any]]) -> Element
|
# type: (Text, List[Dict[Text, Text]], List[Dict[Text, Any]], List[Dict[Text, Any]]) -> Element
|
||||||
|
@ -972,7 +973,7 @@ class UserMentionPattern(markdown.inlinepatterns.Pattern):
|
||||||
el.set('data-user-id', user_id)
|
el.set('data-user-id', user_id)
|
||||||
el.text = "@%s" % (name,)
|
el.text = "@%s" % (name,)
|
||||||
return el
|
return el
|
||||||
|
return None
|
||||||
|
|
||||||
class StreamPattern(VerbosePattern):
|
class StreamPattern(VerbosePattern):
|
||||||
def find_stream_by_name(self, name):
|
def find_stream_by_name(self, name):
|
||||||
|
@ -1001,7 +1002,7 @@ class StreamPattern(VerbosePattern):
|
||||||
stream_name=urllib.parse.quote(force_str(name))))
|
stream_name=urllib.parse.quote(force_str(name))))
|
||||||
el.text = u'#{stream_name}'.format(stream_name=name)
|
el.text = u'#{stream_name}'.format(stream_name=name)
|
||||||
return el
|
return el
|
||||||
|
return None
|
||||||
|
|
||||||
class AlertWordsNotificationProcessor(markdown.preprocessors.Preprocessor):
|
class AlertWordsNotificationProcessor(markdown.preprocessors.Preprocessor):
|
||||||
def run(self, lines):
|
def run(self, lines):
|
||||||
|
|
|
@ -72,6 +72,7 @@ def get_language_name(code):
|
||||||
for lang in get_language_list():
|
for lang in get_language_list():
|
||||||
if lang['code'] == code:
|
if lang['code'] == code:
|
||||||
return lang['name']
|
return lang['name']
|
||||||
|
return None
|
||||||
|
|
||||||
def get_available_language_codes():
|
def get_available_language_codes():
|
||||||
# type: () -> List[Text]
|
# type: () -> List[Text]
|
||||||
|
|
|
@ -194,20 +194,22 @@ def make_client(name):
|
||||||
return client
|
return client
|
||||||
|
|
||||||
def find_key_by_email(address):
|
def find_key_by_email(address):
|
||||||
# type: (Text) -> Text
|
# type: (Text) -> Optional[Text]
|
||||||
from django.core.mail import outbox
|
from django.core.mail import outbox
|
||||||
key_regex = re.compile("accounts/do_confirm/([a-f0-9]{40})>")
|
key_regex = re.compile("accounts/do_confirm/([a-f0-9]{40})>")
|
||||||
for message in reversed(outbox):
|
for message in reversed(outbox):
|
||||||
if address in message.to:
|
if address in message.to:
|
||||||
return key_regex.search(message.body).groups()[0]
|
return key_regex.search(message.body).groups()[0]
|
||||||
|
return None
|
||||||
|
|
||||||
def find_pattern_in_email(address, pattern):
|
def find_pattern_in_email(address, pattern):
|
||||||
# type: (Text, Text) -> Text
|
# type: (Text, Text) -> Optional[Text]
|
||||||
from django.core.mail import outbox
|
from django.core.mail import outbox
|
||||||
key_regex = re.compile(pattern)
|
key_regex = re.compile(pattern)
|
||||||
for message in reversed(outbox):
|
for message in reversed(outbox):
|
||||||
if address in message.to:
|
if address in message.to:
|
||||||
return key_regex.search(message.body).group(0)
|
return key_regex.search(message.body).group(0)
|
||||||
|
return None
|
||||||
|
|
||||||
def message_ids(result):
|
def message_ids(result):
|
||||||
# type: (Dict[str, Any]) -> Set[int]
|
# type: (Dict[str, Any]) -> Set[int]
|
||||||
|
|
|
@ -41,7 +41,7 @@ class StatsDWrapper(object):
|
||||||
# as our statsd server supports them but supporting
|
# as our statsd server supports them but supporting
|
||||||
# pystatsd is not released yet
|
# pystatsd is not released yet
|
||||||
def _our_gauge(self, stat, value, rate=1, delta=False):
|
def _our_gauge(self, stat, value, rate=1, delta=False):
|
||||||
# type: (str, float, float, bool) -> str
|
# type: (str, float, float, bool) -> None
|
||||||
"""Set a gauge value."""
|
"""Set a gauge value."""
|
||||||
from django_statsd.clients import statsd
|
from django_statsd.clients import statsd
|
||||||
if delta:
|
if delta:
|
||||||
|
|
|
@ -1354,6 +1354,8 @@ class UserPresence(models.Model):
|
||||||
return 'active'
|
return 'active'
|
||||||
elif status == UserPresence.IDLE:
|
elif status == UserPresence.IDLE:
|
||||||
return 'idle'
|
return 'idle'
|
||||||
|
else:
|
||||||
|
raise ValueError('Unknown status: %s' % (status,))
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def get_status_dict_by_user(user_profile):
|
def get_status_dict_by_user(user_profile):
|
||||||
|
|
|
@ -470,6 +470,7 @@ class ValidatorTestCase(TestCase):
|
||||||
])('_', val)
|
])('_', val)
|
||||||
if error:
|
if error:
|
||||||
return 'This is not a valid person'
|
return 'This is not a valid person'
|
||||||
|
return None
|
||||||
|
|
||||||
person = {'name': 'King Lear', 'age': 42}
|
person = {'name': 'King Lear', 'age': 42}
|
||||||
self.assertEqual(check_person(person), None)
|
self.assertEqual(check_person(person), None)
|
||||||
|
|
|
@ -278,6 +278,7 @@ class GoogleMobileOauth2Backend(ZulipAuthMixin):
|
||||||
return user_profile
|
return user_profile
|
||||||
else:
|
else:
|
||||||
return_data["valid_attestation"] = False
|
return_data["valid_attestation"] = False
|
||||||
|
return None
|
||||||
|
|
||||||
class ZulipRemoteUserBackend(RemoteUserBackend):
|
class ZulipRemoteUserBackend(RemoteUserBackend):
|
||||||
create_unknown_user = False
|
create_unknown_user = False
|
||||||
|
|
Loading…
Reference in New Issue