From c155b9162dff20dc8bbf7b78eab03aa5af6d8954 Mon Sep 17 00:00:00 2001 From: AZtheAsian Date: Tue, 3 Jan 2017 12:03:45 -0700 Subject: [PATCH] mypy: Annotate api/integrations/codebase/zulip_codebase_mirror. --- .../codebase/zulip_codebase_mirror | 24 ++++++++++++------- tools/run-mypy | 3 +-- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/api/integrations/codebase/zulip_codebase_mirror b/api/integrations/codebase/zulip_codebase_mirror index 2f42d39f66..537edaffc3 100755 --- a/api/integrations/codebase/zulip_codebase_mirror +++ b/api/integrations/codebase/zulip_codebase_mirror @@ -31,6 +31,7 @@ from __future__ import print_function from __future__ import absolute_import +from typing import Any, List, Dict, Optional import requests import logging import time @@ -74,6 +75,7 @@ while len(json_implementations): continue def make_api_call(path): + # type: (str) -> Optional[List[Dict[str, Any]]] response = requests.get("https://api3.codebasehq.com/%s" % (path,), auth=(config.CODEBASE_API_USERNAME, config.CODEBASE_API_KEY), params={'raw': True}, @@ -84,7 +86,7 @@ def make_api_call(path): return json.loads(response.text) if response.status_code >= 500: - logging.error(response.status_code) + logging.error(str(response.status_code)) return None if response.status_code == 403: logging.error("Bad authorization from Codebase. Please check your credentials") @@ -94,9 +96,11 @@ def make_api_call(path): return None def make_url(path): + # type: (str) -> str return "%s/%s" % (config.CODEBASE_ROOT_URL, path) def handle_event(event): + # type: (Dict[str, Any]) -> None event = event['event'] event_type = event['type'] actor_name = event['actor_name'] @@ -261,9 +265,11 @@ def handle_event(event): # the main run loop for this mirror script def run_mirror(): + # type: () -> None # we should have the right (write) permissions on the resume file, as seen # in check_permissions, but it may still be empty or corrupted def default_since(): + # type: () -> datetime return datetime.utcnow() - timedelta(hours=config.CODEBASE_INITIAL_HISTORY_HOURS) try: @@ -272,10 +278,9 @@ def run_mirror(): if timestamp == '': since = default_since() else: - timestamp = int(timestamp, 10) - since = datetime.fromtimestamp(timestamp) + since = datetime.fromtimestamp(float(timestamp)) except (ValueError, IOError) as e: - logging.warn("Could not open resume file: %s" % (e.message or e.strerror,)) + logging.warn("Could not open resume file: %s" % (str(e))) since = default_since() try: @@ -302,23 +307,24 @@ def run_mirror(): # void function that checks the permissions of the files this script needs. def check_permissions(): + # type: () -> None # check that the log file can be written if config.LOG_FILE: try: open(config.LOG_FILE, "w") except IOError as e: - sys.stderr("Could not open up log for writing:") - sys.stderr(e) + sys.stderr.write("Could not open up log for writing:") + sys.stderr.write(str(e)) # check that the resume file can be written (this creates if it doesn't exist) try: open(config.RESUME_FILE, "a+") except IOError as e: - sys.stderr("Could not open up the file %s for reading and writing" % (config.RESUME_FILE,)) - sys.stderr(e) + sys.stderr.write("Could not open up the file %s for reading and writing" % (config.RESUME_FILE,)) + sys.stderr.write(str(e)) if __name__ == "__main__": if not isinstance(config.RESUME_FILE, six.string_types): - sys.stderr("RESUME_FILE path not given; refusing to continue") + sys.stderr.write("RESUME_FILE path not given; refusing to continue") check_permissions() if config.LOG_FILE: logging.basicConfig(filename=config.LOG_FILE, level=logging.WARNING) diff --git a/tools/run-mypy b/tools/run-mypy index cd0fc06337..830d1c9ad6 100755 --- a/tools/run-mypy +++ b/tools/run-mypy @@ -25,7 +25,6 @@ api/integrations/perforce/zulip_perforce_config.py api/integrations/svn/zulip_svn_config.py api/integrations/trac/zulip_trac_config.py api/integrations/asana/zulip_asana_mirror -api/integrations/codebase/zulip_codebase_mirror api/integrations/git/post-receive api/integrations/rss/rss-bot tools/deprecated/iframe-bot/show-last-messages @@ -37,7 +36,7 @@ zproject/test_settings.py # We don't run mypy on contrib_bots, since the code there will # often be shared with other projects that do not want a mypy # dependency (at least while it's still kind of beta). -exclude_common += ['contrib_bots'] +exclude_common += ['contrib_bots'] exclude_py2 = [] # type: List[str]