Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Commit

Permalink
Add type hints to synapse._scripts (#11297)
Browse files Browse the repository at this point in the history
  • Loading branch information
clokep committed Nov 10, 2021
1 parent 5f277ff commit 66c4b77
Show file tree
Hide file tree
Showing 5 changed files with 30 additions and 20 deletions.
1 change: 1 addition & 0 deletions changelog.d/11297.misc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Add type hints to `synapse._scripts`.
2 changes: 0 additions & 2 deletions mypy.ini
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,6 @@ files =
# https://docs.python.org/3/library/re.html#re.X
exclude = (?x)
^(
|synapse/_scripts/register_new_matrix_user.py
|synapse/_scripts/review_recent_signups.py
|synapse/app/__init__.py
|synapse/app/_base.py
|synapse/app/admin_cmd.py
Expand Down
1 change: 1 addition & 0 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,7 @@ def exec_file(path_segments):
"types-Pillow>=8.3.4",
"types-pyOpenSSL>=20.0.7",
"types-PyYAML>=5.4.10",
"types-requests>=2.26.0",
"types-setuptools>=57.4.0",
]

Expand Down
41 changes: 25 additions & 16 deletions synapse/_scripts/register_new_matrix_user.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# Copyright 2015, 2016 OpenMarket Ltd
# Copyright 2018 New Vector
# Copyright 2021 The Matrix.org Foundation C.I.C.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand All @@ -19,22 +20,23 @@
import hmac
import logging
import sys
from typing import Callable, Optional

import requests as _requests
import yaml


def request_registration(
user,
password,
server_location,
shared_secret,
admin=False,
user_type=None,
user: str,
password: str,
server_location: str,
shared_secret: str,
admin: bool = False,
user_type: Optional[str] = None,
requests=_requests,
_print=print,
exit=sys.exit,
):
_print: Callable[[str], None] = print,
exit: Callable[[int], None] = sys.exit,
) -> None:

url = "%s/_synapse/admin/v1/register" % (server_location.rstrip("/"),)

Expand Down Expand Up @@ -65,13 +67,13 @@ def request_registration(
mac.update(b"\x00")
mac.update(user_type.encode("utf8"))

mac = mac.hexdigest()
hex_mac = mac.hexdigest()

data = {
"nonce": nonce,
"username": user,
"password": password,
"mac": mac,
"mac": hex_mac,
"admin": admin,
"user_type": user_type,
}
Expand All @@ -91,10 +93,17 @@ def request_registration(
_print("Success!")


def register_new_user(user, password, server_location, shared_secret, admin, user_type):
def register_new_user(
user: str,
password: str,
server_location: str,
shared_secret: str,
admin: Optional[bool],
user_type: Optional[str],
) -> None:
if not user:
try:
default_user = getpass.getuser()
default_user: Optional[str] = getpass.getuser()
except Exception:
default_user = None

Expand Down Expand Up @@ -123,8 +132,8 @@ def register_new_user(user, password, server_location, shared_secret, admin, use
sys.exit(1)

if admin is None:
admin = input("Make admin [no]: ")
if admin in ("y", "yes", "true"):
admin_inp = input("Make admin [no]: ")
if admin_inp in ("y", "yes", "true"):
admin = True
else:
admin = False
Expand All @@ -134,7 +143,7 @@ def register_new_user(user, password, server_location, shared_secret, admin, use
)


def main():
def main() -> None:

logging.captureWarnings(True)

Expand Down
5 changes: 3 additions & 2 deletions synapse/_scripts/review_recent_signups.py
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ def get_recent_users(txn: LoggingTransaction, since_ms: int) -> List[UserInfo]:
return user_infos


def main():
def main() -> None:
parser = argparse.ArgumentParser()
parser.add_argument(
"-c",
Expand Down Expand Up @@ -142,7 +142,8 @@ def main():
engine = create_engine(database_config.config)

with make_conn(database_config, engine, "review_recent_signups") as db_conn:
user_infos = get_recent_users(db_conn.cursor(), since_ms)
# This generates a type of Cursor, not LoggingTransaction.
user_infos = get_recent_users(db_conn.cursor(), since_ms) # type: ignore[arg-type]

for user_info in user_infos:
if exclude_users_with_email and user_info.emails:
Expand Down

0 comments on commit 66c4b77

Please sign in to comment.