pyupgrade: Reformat with --py36-plus.
This includes mainly fixes of string literals using f-strings or .format(...), as well as unpacking of list comprehensions.
This commit is contained in:
		
							parent
							
								
									e27ac0ddbe
								
							
						
					
					
						commit
						9ce7c52a10
					
				
					 78 changed files with 356 additions and 389 deletions
				
			
		|  | @ -143,7 +143,7 @@ for tries in range(10): | |||
|         missing = 0 | ||||
|         for elt in zephyr_subs_to_add: | ||||
|             if elt not in zephyr_subs: | ||||
|                 logging.error("Failed to subscribe to %s" % (elt,)) | ||||
|                 logging.error(f"Failed to subscribe to {elt}") | ||||
|                 missing += 1 | ||||
|         if missing == 0: | ||||
|             actually_subscribed = True | ||||
|  | @ -220,9 +220,7 @@ for key, (stream, test) in zhkeys.items(): | |||
|             ) | ||||
|             print_status_and_exit(1) | ||||
|         else: | ||||
|             logging.warning( | ||||
|                 "Replaced key %s with %s due to Zephyr server failure." % (key, new_key) | ||||
|             ) | ||||
|             logging.warning(f"Replaced key {key} with {new_key} due to Zephyr server failure.") | ||||
|     receive_zephyrs() | ||||
| 
 | ||||
| receive_zephyrs() | ||||
|  |  | |||
|  | @ -9,19 +9,19 @@ api_key = sys.argv[2] | |||
| ccache_data_encoded = sys.argv[3] | ||||
| 
 | ||||
| # Update the Kerberos ticket cache file | ||||
| program_name = "zmirror-%s" % (short_user,) | ||||
| with open("/home/zulip/ccache/%s" % (program_name,), "wb") as f: | ||||
| program_name = f"zmirror-{short_user}" | ||||
| with open(f"/home/zulip/ccache/{program_name}", "wb") as f: | ||||
|     f.write(base64.b64decode(ccache_data_encoded)) | ||||
| 
 | ||||
| # Setup API key | ||||
| api_key_path = "/home/zulip/api-keys/%s" % (program_name,) | ||||
| api_key_path = f"/home/zulip/api-keys/{program_name}" | ||||
| open(api_key_path, "w").write(api_key + "\n") | ||||
| 
 | ||||
| # Setup supervisord configuration | ||||
| supervisor_path = "/etc/supervisor/conf.d/zulip/%s.conf" % (program_name,) | ||||
| supervisor_path = f"/etc/supervisor/conf.d/zulip/{program_name}.conf" | ||||
| template = os.path.join(os.path.dirname(__file__), "zmirror_private.conf.template") | ||||
| template_data = open(template).read() | ||||
| session_path = "/home/zulip/zephyr_sessions/%s" % (program_name,) | ||||
| session_path = f"/home/zulip/zephyr_sessions/{program_name}" | ||||
| 
 | ||||
| # Preserve mail zephyrs forwarding setting across rewriting the config file | ||||
| 
 | ||||
|  |  | |||
|  | @ -42,7 +42,7 @@ if options.forward_class_messages and not options.noshard: | |||
|     jobs = list("0123456789abcdef") | ||||
| 
 | ||||
|     def run_job(shard: str) -> int: | ||||
|         subprocess.call(args + ["--shard=%s" % (shard,)]) | ||||
|         subprocess.call(args + [f"--shard={shard}"]) | ||||
|         return 0 | ||||
| 
 | ||||
|     for (status, job) in run_parallel(run_job, jobs, threads=16): | ||||
|  |  | |||
|  | @ -54,7 +54,7 @@ def to_zephyr_username(zulip_username: str) -> str: | |||
|         return user.lower() + "@ATHENA.MIT.EDU" | ||||
|     match_user = re.match(r"([a-zA-Z0-9_]+)\|(.+)", user) | ||||
|     if not match_user: | ||||
|         raise Exception("Could not parse Zephyr realm for cross-realm user %s" % (zulip_username,)) | ||||
|         raise Exception(f"Could not parse Zephyr realm for cross-realm user {zulip_username}") | ||||
|     return match_user.group(1).lower() + "@" + match_user.group(2).upper() | ||||
| 
 | ||||
| 
 | ||||
|  | @ -134,10 +134,10 @@ def send_zulip(zeph: ZephyrDict) -> Dict[str, Any]: | |||
|         # Forward messages sent to -c foo -i bar to stream bar subject "instance" | ||||
|         if zeph["stream"] == "message": | ||||
|             message["to"] = zeph["subject"].lower() | ||||
|             message["subject"] = "instance %s" % (zeph["subject"],) | ||||
|             message["subject"] = "instance {}".format(zeph["subject"]) | ||||
|         elif zeph["stream"] == "tabbott-test5": | ||||
|             message["to"] = zeph["subject"].lower() | ||||
|             message["subject"] = "test instance %s" % (zeph["subject"],) | ||||
|             message["subject"] = "test instance {}".format(zeph["subject"]) | ||||
|         else: | ||||
|             message["to"] = zeph["stream"] | ||||
|     else: | ||||
|  | @ -145,7 +145,7 @@ def send_zulip(zeph: ZephyrDict) -> Dict[str, Any]: | |||
|     message["content"] = unwrap_lines(zeph["content"]) | ||||
| 
 | ||||
|     if options.test_mode and options.site == DEFAULT_SITE: | ||||
|         logger.debug("Message is: %s" % (str(message),)) | ||||
|         logger.debug(f"Message is: {str(message)}") | ||||
|         return {"result": "success"} | ||||
| 
 | ||||
|     return zulip_client.send_message(message) | ||||
|  | @ -174,7 +174,7 @@ def zephyr_bulk_subscribe(subs: List[Tuple[str, str, str]]) -> None: | |||
|         # retrying the next time the bot checks its subscriptions are | ||||
|         # up to date. | ||||
|         logger.exception("Error subscribing to streams (will retry automatically):") | ||||
|         logger.warning("Streams were: %s" % ([cls for cls, instance, recipient in subs],)) | ||||
|         logger.warning(f"Streams were: {[cls for cls, instance, recipient in subs]}") | ||||
|         return | ||||
|     try: | ||||
|         actual_zephyr_subs = [cls for (cls, _, _) in zephyr._z.getSubscriptions()] | ||||
|  | @ -186,7 +186,7 @@ def zephyr_bulk_subscribe(subs: List[Tuple[str, str, str]]) -> None: | |||
|         return | ||||
|     for (cls, instance, recipient) in subs: | ||||
|         if cls not in actual_zephyr_subs: | ||||
|             logger.error("Zephyr failed to subscribe us to %s; will retry" % (cls,)) | ||||
|             logger.error(f"Zephyr failed to subscribe us to {cls}; will retry") | ||||
|             try: | ||||
|                 # We'll retry automatically when we next check for | ||||
|                 # streams to subscribe to (within 15 seconds), but | ||||
|  | @ -317,7 +317,7 @@ def parse_zephyr_body(zephyr_data: str, notice_format: str) -> Tuple[str, str]: | |||
|             # Logic based off of owl_zephyr_get_message in barnowl | ||||
|             fields = body.split("\x00") | ||||
|             if len(fields) == 5: | ||||
|                 body = "New transaction [%s] entered in %s\nFrom: %s (%s)\nSubject: %s" % ( | ||||
|                 body = "New transaction [{}] entered in {}\nFrom: {} ({})\nSubject: {}".format( | ||||
|                     fields[0], | ||||
|                     fields[1], | ||||
|                     fields[2], | ||||
|  | @ -419,7 +419,7 @@ def process_notice(notice: "zephyr.ZNotice", log: Optional[IO[str]]) -> None: | |||
|     if is_personal and not options.forward_personals: | ||||
|         return | ||||
|     if (zephyr_class not in current_zephyr_subs) and not is_personal: | ||||
|         logger.debug("Skipping ... %s/%s/%s" % (zephyr_class, notice.instance, is_personal)) | ||||
|         logger.debug(f"Skipping ... {zephyr_class}/{notice.instance}/{is_personal}") | ||||
|         return | ||||
|     if notice.format.startswith("Zephyr error: See") or notice.format.endswith("@(@color(blue))"): | ||||
|         logger.debug("Skipping message we got from Zulip!") | ||||
|  | @ -471,23 +471,21 @@ def process_notice(notice: "zephyr.ZNotice", log: Optional[IO[str]]) -> None: | |||
|         if notice.instance.strip() != "": | ||||
|             zeph["subject"] = notice.instance | ||||
|         else: | ||||
|             zeph["subject"] = '(instance "%s")' % (notice.instance,) | ||||
|             zeph["subject"] = f'(instance "{notice.instance}")' | ||||
| 
 | ||||
|     # Add instances in for instanced personals | ||||
|     if is_personal: | ||||
|         if notice.cls.lower() != "message" and notice.instance.lower != "personal": | ||||
|             heading = "[-c %s -i %s]\n" % (notice.cls, notice.instance) | ||||
|             heading = f"[-c {notice.cls} -i {notice.instance}]\n" | ||||
|         elif notice.cls.lower() != "message": | ||||
|             heading = "[-c %s]\n" % (notice.cls,) | ||||
|             heading = f"[-c {notice.cls}]\n" | ||||
|         elif notice.instance.lower() != "personal": | ||||
|             heading = "[-i %s]\n" % (notice.instance,) | ||||
|             heading = f"[-i {notice.instance}]\n" | ||||
|         else: | ||||
|             heading = "" | ||||
|         zeph["content"] = heading + zeph["content"] | ||||
| 
 | ||||
|     logger.info( | ||||
|         "Received a message on %s/%s from %s..." % (zephyr_class, notice.instance, notice.sender) | ||||
|     ) | ||||
|     logger.info(f"Received a message on {zephyr_class}/{notice.instance} from {notice.sender}...") | ||||
|     if log is not None: | ||||
|         log.write(json.dumps(zeph) + "\n") | ||||
|         log.flush() | ||||
|  | @ -499,7 +497,7 @@ def process_notice(notice: "zephyr.ZNotice", log: Optional[IO[str]]) -> None: | |||
|         try: | ||||
|             res = send_zulip(zeph) | ||||
|             if res.get("result") != "success": | ||||
|                 logger.error("Error relaying zephyr:\n%s\n%s" % (zeph, res)) | ||||
|                 logger.error(f"Error relaying zephyr:\n{zeph}\n{res}") | ||||
|         except Exception: | ||||
|             logger.exception("Error relaying zephyr:") | ||||
|         finally: | ||||
|  | @ -630,7 +628,7 @@ def send_zephyr(zwrite_args: List[str], content: str) -> Tuple[int, str]: | |||
|             logger.info("stdout: " + stdout) | ||||
|     elif stderr: | ||||
|         logger.warning( | ||||
|             "zwrite command '%s' printed the following warning:" % (" ".join(zwrite_args),) | ||||
|             "zwrite command '{}' printed the following warning:".format(" ".join(zwrite_args)) | ||||
|         ) | ||||
|     if stderr: | ||||
|         logger.warning("stderr: " + stderr) | ||||
|  | @ -712,7 +710,7 @@ Feedback button or at support@zulip.com.""" | |||
|             # Forward messages sent to '(instance "WHITESPACE")' back to the | ||||
|             # appropriate WHITESPACE instance for bidirectional mirroring | ||||
|             instance = match_whitespace_instance.group(1) | ||||
|         elif instance == "instance %s" % (zephyr_class,) or instance == "test instance %s" % ( | ||||
|         elif instance == f"instance {zephyr_class}" or instance == "test instance {}".format( | ||||
|             zephyr_class, | ||||
|         ): | ||||
|             # Forward messages to e.g. -c -i white-magic back from the | ||||
|  | @ -724,7 +722,7 @@ Feedback button or at support@zulip.com.""" | |||
|                 instance = zephyr_class | ||||
|                 zephyr_class = "message" | ||||
|         zwrite_args.extend(["-c", zephyr_class, "-i", instance]) | ||||
|         logger.info("Forwarding message to class %s, instance %s" % (zephyr_class, instance)) | ||||
|         logger.info(f"Forwarding message to class {zephyr_class}, instance {instance}") | ||||
|     elif message["type"] == "private": | ||||
|         if len(message["display_recipient"]) == 1: | ||||
|             recipient = to_zephyr_username(message["display_recipient"][0]["email"]) | ||||
|  | @ -744,7 +742,7 @@ Feedback button or at support@zulip.com.""" | |||
|                 to_zephyr_username(user["email"]).replace("@ATHENA.MIT.EDU", "") | ||||
|                 for user in message["display_recipient"] | ||||
|             ] | ||||
|         logger.info("Forwarding message to %s" % (recipients,)) | ||||
|         logger.info(f"Forwarding message to {recipients}") | ||||
|         zwrite_args.extend(recipients) | ||||
| 
 | ||||
|     if message.get("invite_only_stream"): | ||||
|  | @ -769,7 +767,7 @@ Zulip users (like you) received it, Zephyr users did not. | |||
|         zwrite_args.extend(["-O", "crypt"]) | ||||
| 
 | ||||
|     if options.test_mode: | ||||
|         logger.debug("Would have forwarded: %s\n%s" % (zwrite_args, wrapped_content)) | ||||
|         logger.debug(f"Would have forwarded: {zwrite_args}\n{wrapped_content}") | ||||
|         return | ||||
| 
 | ||||
|     (code, stderr) = send_authed_zephyr(zwrite_args, wrapped_content) | ||||
|  | @ -849,7 +847,7 @@ def maybe_forward_to_zephyr(message: Dict[str, Any]) -> None: | |||
|         timestamp_now = int(time.time()) | ||||
|         if float(message["timestamp"]) < timestamp_now - 15: | ||||
|             logger.warning( | ||||
|                 "Skipping out of order message: %s < %s" % (message["timestamp"], timestamp_now) | ||||
|                 "Skipping out of order message: {} < {}".format(message["timestamp"], timestamp_now) | ||||
|             ) | ||||
|             return | ||||
|         try: | ||||
|  | @ -932,7 +930,7 @@ def add_zulip_subscriptions(verbose: bool) -> None: | |||
|             authorization_errors_fatal=False, | ||||
|         ) | ||||
|         if res.get("result") != "success": | ||||
|             logger.error("Error subscribing to streams:\n%s" % (res["msg"],)) | ||||
|             logger.error("Error subscribing to streams:\n{}".format(res["msg"])) | ||||
|             return | ||||
| 
 | ||||
|         already = res.get("already_subscribed") | ||||
|  | @ -940,10 +938,12 @@ def add_zulip_subscriptions(verbose: bool) -> None: | |||
|         unauthorized = res.get("unauthorized") | ||||
|         if verbose: | ||||
|             if already is not None and len(already) > 0: | ||||
|                 logger.info("\nAlready subscribed to: %s" % (", ".join(list(already.values())[0]),)) | ||||
|                 logger.info( | ||||
|                     "\nAlready subscribed to: {}".format(", ".join(list(already.values())[0])) | ||||
|                 ) | ||||
|             if new is not None and len(new) > 0: | ||||
|                 logger.info( | ||||
|                     "\nSuccessfully subscribed to: %s" % (", ".join(list(new.values())[0]),) | ||||
|                     "\nSuccessfully subscribed to: {}".format(", ".join(list(new.values())[0])) | ||||
|                 ) | ||||
|             if unauthorized is not None and len(unauthorized) > 0: | ||||
|                 logger.info( | ||||
|  | @ -962,7 +962,7 @@ on these streams and already use Zulip.  They can subscribe you to them via the | |||
| """ | ||||
|                         ) | ||||
|                     ) | ||||
|                     + "\n\n  %s" % (", ".join(unauthorized),) | ||||
|                     + "\n\n  {}".format(", ".join(unauthorized)) | ||||
|                 ) | ||||
| 
 | ||||
|     if len(skipped) > 0: | ||||
|  | @ -989,9 +989,9 @@ Zulip subscription to these lines in ~/.zephyr.subs: | |||
|     for (cls, instance, recipient, reason) in skipped: | ||||
|         if verbose: | ||||
|             if reason != "": | ||||
|                 logger.info("  [%s,%s,%s] (%s)" % (cls, instance, recipient, reason)) | ||||
|                 logger.info(f"  [{cls},{instance},{recipient}] ({reason})") | ||||
|             else: | ||||
|                 logger.info("  [%s,%s,%s]" % (cls, instance, recipient)) | ||||
|                 logger.info(f"  [{cls},{instance},{recipient}]") | ||||
|     if len(skipped) > 0: | ||||
|         if verbose: | ||||
|             logger.info( | ||||
|  | @ -1032,11 +1032,11 @@ def parse_zephyr_subs(verbose: bool = False) -> Set[Tuple[str, str, str]]: | |||
|             recipient = recipient.replace("%me%", options.user) | ||||
|             if not valid_stream_name(cls): | ||||
|                 if verbose: | ||||
|                     logger.error("Skipping subscription to unsupported class name: [%s]" % (line,)) | ||||
|                     logger.error(f"Skipping subscription to unsupported class name: [{line}]") | ||||
|                 continue | ||||
|         except Exception: | ||||
|             if verbose: | ||||
|                 logger.error("Couldn't parse ~/.zephyr.subs line: [%s]" % (line,)) | ||||
|                 logger.error(f"Couldn't parse ~/.zephyr.subs line: [{line}]") | ||||
|             continue | ||||
|         zephyr_subscriptions.add((cls.strip(), instance.strip(), recipient.strip())) | ||||
|     return zephyr_subscriptions | ||||
|  | @ -1051,7 +1051,7 @@ def open_logger() -> logging.Logger: | |||
|         else: | ||||
|             log_file = "/var/log/zulip/mirror-log" | ||||
|     else: | ||||
|         f = tempfile.NamedTemporaryFile(prefix="zulip-log.%s." % (options.user,), delete=False) | ||||
|         f = tempfile.NamedTemporaryFile(prefix=f"zulip-log.{options.user}.", delete=False) | ||||
|         log_file = f.name | ||||
|         # Close the file descriptor, since the logging system will | ||||
|         # reopen it anyway. | ||||
|  | @ -1230,10 +1230,10 @@ or specify the --api-key-file option.""" | |||
|         pgrep_query = "python.*zephyr_mirror" | ||||
|         if options.shard is not None: | ||||
|             # sharded class mirror | ||||
|             pgrep_query = "%s.*--shard=%s" % (pgrep_query, options.shard) | ||||
|             pgrep_query = f"{pgrep_query}.*--shard={options.shard}" | ||||
|         elif options.user is not None: | ||||
|             # Personals mirror on behalf of another user. | ||||
|             pgrep_query = "%s.*--user=%s" % (pgrep_query, options.user) | ||||
|             pgrep_query = f"{pgrep_query}.*--user={options.user}" | ||||
|         proc = subprocess.Popen( | ||||
|             ["pgrep", "-U", os.environ["USER"], "-f", pgrep_query], | ||||
|             stdout=subprocess.PIPE, | ||||
|  | @ -1245,7 +1245,7 @@ or specify the --api-key-file option.""" | |||
|                 continue | ||||
| 
 | ||||
|             # Another copy of zephyr_mirror.py!  Kill it. | ||||
|             logger.info("Killing duplicate zephyr_mirror process %s" % (pid,)) | ||||
|             logger.info(f"Killing duplicate zephyr_mirror process {pid}") | ||||
|             try: | ||||
|                 os.kill(pid, signal.SIGINT) | ||||
|             except OSError: | ||||
|  | @ -1261,7 +1261,7 @@ or specify the --api-key-file option.""" | |||
|         options.forward_mail_zephyrs = subscribed_to_mail_messages() | ||||
| 
 | ||||
|     if options.session_path is None: | ||||
|         options.session_path = "/var/tmp/%s" % (options.user,) | ||||
|         options.session_path = f"/var/tmp/{options.user}" | ||||
| 
 | ||||
|     if options.forward_from_zulip: | ||||
|         child_pid = os.fork()  # type: Optional[int] | ||||
|  | @ -1278,7 +1278,7 @@ or specify the --api-key-file option.""" | |||
| 
 | ||||
|     logger_name = "zephyr=>zulip" | ||||
|     if options.shard is not None: | ||||
|         logger_name += "(%s)" % (options.shard,) | ||||
|         logger_name += f"({options.shard})" | ||||
|     configure_logger(logger, logger_name) | ||||
|     # Have the kernel reap children for when we fork off processes to send Zulips | ||||
|     signal.signal(signal.SIGCHLD, signal.SIG_IGN) | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 PIG208
						PIG208