mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-12-15 23:13:50 -05:00
Add missing type hints to synapse.util (#9982)
This commit is contained in:
parent
22a8838f62
commit
7adcb20fc0
9 changed files with 39 additions and 25 deletions
|
|
@ -17,15 +17,15 @@ import hashlib
|
|||
import unpaddedbase64
|
||||
|
||||
|
||||
def sha256_and_url_safe_base64(input_text):
|
||||
def sha256_and_url_safe_base64(input_text: str) -> str:
|
||||
"""SHA256 hash an input string, encode the digest as url-safe base64, and
|
||||
return
|
||||
|
||||
:param input_text: string to hash
|
||||
:type input_text: str
|
||||
Args:
|
||||
input_text: string to hash
|
||||
|
||||
:returns a sha256 hashed and url-safe base64 encoded digest
|
||||
:rtype: str
|
||||
returns:
|
||||
A sha256 hashed and url-safe base64 encoded digest
|
||||
"""
|
||||
digest = hashlib.sha256(input_text.encode()).digest()
|
||||
return unpaddedbase64.encode_base64(digest, urlsafe=True)
|
||||
|
|
|
|||
|
|
@ -30,12 +30,12 @@ from typing import (
|
|||
T = TypeVar("T")
|
||||
|
||||
|
||||
def batch_iter(iterable: Iterable[T], size: int) -> Iterator[Tuple[T]]:
|
||||
def batch_iter(iterable: Iterable[T], size: int) -> Iterator[Tuple[T, ...]]:
|
||||
"""batch an iterable up into tuples with a maximum size
|
||||
|
||||
Args:
|
||||
iterable (iterable): the iterable to slice
|
||||
size (int): the maximum batch size
|
||||
iterable: the iterable to slice
|
||||
size: the maximum batch size
|
||||
|
||||
Returns:
|
||||
an iterator over the chunks
|
||||
|
|
@ -46,10 +46,7 @@ def batch_iter(iterable: Iterable[T], size: int) -> Iterator[Tuple[T]]:
|
|||
return iter(lambda: tuple(islice(sourceiter, size)), ())
|
||||
|
||||
|
||||
ISeq = TypeVar("ISeq", bound=Sequence, covariant=True)
|
||||
|
||||
|
||||
def chunk_seq(iseq: ISeq, maxlen: int) -> Iterable[ISeq]:
|
||||
def chunk_seq(iseq: Sequence[T], maxlen: int) -> Iterable[Sequence[T]]:
|
||||
"""Split the given sequence into chunks of the given size
|
||||
|
||||
The last chunk may be shorter than the given size.
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@
|
|||
import importlib
|
||||
import importlib.util
|
||||
import itertools
|
||||
from types import ModuleType
|
||||
from typing import Any, Iterable, Tuple, Type
|
||||
|
||||
import jsonschema
|
||||
|
|
@ -44,8 +45,8 @@ def load_module(provider: dict, config_path: Iterable[str]) -> Tuple[Type, Any]:
|
|||
|
||||
# We need to import the module, and then pick the class out of
|
||||
# that, so we split based on the last dot.
|
||||
module, clz = modulename.rsplit(".", 1)
|
||||
module = importlib.import_module(module)
|
||||
module_name, clz = modulename.rsplit(".", 1)
|
||||
module = importlib.import_module(module_name)
|
||||
provider_class = getattr(module, clz)
|
||||
|
||||
# Load the module config. If None, pass an empty dictionary instead
|
||||
|
|
@ -69,11 +70,11 @@ def load_module(provider: dict, config_path: Iterable[str]) -> Tuple[Type, Any]:
|
|||
return provider_class, provider_config
|
||||
|
||||
|
||||
def load_python_module(location: str):
|
||||
def load_python_module(location: str) -> ModuleType:
|
||||
"""Load a python module, and return a reference to its global namespace
|
||||
|
||||
Args:
|
||||
location (str): path to the module
|
||||
location: path to the module
|
||||
|
||||
Returns:
|
||||
python module object
|
||||
|
|
|
|||
|
|
@ -17,19 +17,19 @@ import phonenumbers
|
|||
from synapse.api.errors import SynapseError
|
||||
|
||||
|
||||
def phone_number_to_msisdn(country, number):
|
||||
def phone_number_to_msisdn(country: str, number: str) -> str:
|
||||
"""
|
||||
Takes an ISO-3166-1 2 letter country code and phone number and
|
||||
returns an msisdn representing the canonical version of that
|
||||
phone number.
|
||||
Args:
|
||||
country (str): ISO-3166-1 2 letter country code
|
||||
number (str): Phone number in a national or international format
|
||||
country: ISO-3166-1 2 letter country code
|
||||
number: Phone number in a national or international format
|
||||
|
||||
Returns:
|
||||
(str) The canonical form of the phone number, as an msisdn
|
||||
The canonical form of the phone number, as an msisdn
|
||||
Raises:
|
||||
SynapseError if the number could not be parsed.
|
||||
SynapseError if the number could not be parsed.
|
||||
"""
|
||||
try:
|
||||
phoneNumber = phonenumbers.parse(number, country)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue