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

Set no_implicit_optional = True #9742

Merged
merged 2 commits into from
Apr 5, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changelog.d/9742.misc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Start linting mypy with `no_implicit_optional`.
1 change: 1 addition & 0 deletions mypy.ini
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ show_traceback = True
mypy_path = stubs
warn_unreachable = True
local_partial_types = True
no_implicit_optional = True

# To find all folders that pass mypy you run:
#
Expand Down
7 changes: 5 additions & 2 deletions synapse/handlers/account_validity.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
import logging
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from typing import TYPE_CHECKING, List
from typing import TYPE_CHECKING, List, Optional

from synapse.api.errors import StoreError, SynapseError
from synapse.logging.context import make_deferred_yieldable
Expand Down Expand Up @@ -241,7 +241,10 @@ async def renew_account(self, renewal_token: str) -> bool:
return True

async def renew_account_for_user(
self, user_id: str, expiration_ts: int = None, email_sent: bool = False
self,
user_id: str,
expiration_ts: Optional[int] = None,
email_sent: bool = False,
) -> int:
"""Renews the account attached to a given user by pushing back the
expiration date by the current validity period in the server's
Expand Down
2 changes: 1 addition & 1 deletion synapse/handlers/e2e_keys.py
Original file line number Diff line number Diff line change
Expand Up @@ -1008,7 +1008,7 @@ async def _process_other_signatures(
return signature_list, failures

async def _get_e2e_cross_signing_verify_key(
self, user_id: str, key_type: str, from_user_id: str = None
self, user_id: str, key_type: str, from_user_id: Optional[str] = None
) -> Tuple[JsonDict, str, VerifyKey]:
"""Fetch locally or remotely query for a cross-signing public key.
Expand Down
2 changes: 1 addition & 1 deletion synapse/http/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -590,7 +590,7 @@ async def put_json(
uri: str,
json_body: Any,
args: Optional[QueryParams] = None,
headers: RawHeaders = None,
headers: Optional[RawHeaders] = None,
) -> Any:
"""Puts some json to the given URI.
Expand Down
2 changes: 1 addition & 1 deletion synapse/notifier.py
Original file line number Diff line number Diff line change
Expand Up @@ -548,7 +548,7 @@ async def get_events_for(
pagination_config: PaginationConfig,
timeout: int,
is_guest: bool = False,
explicit_room_id: str = None,
explicit_room_id: Optional[str] = None,
) -> EventStreamResult:
"""For the given user and rooms, return any new events for them. If
there are no new events wait for up to `timeout` milliseconds for any
Expand Down
2 changes: 1 addition & 1 deletion synapse/replication/tcp/redis.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ class ConstantProperty(Generic[T, V]):

constant = attr.ib() # type: V

def __get__(self, obj: Optional[T], objtype: Type[T] = None) -> V:
def __get__(self, obj: Optional[T], objtype: Optional[Type[T]] = None) -> V:
return self.constant

def __set__(self, obj: Optional[T], value: V):
Expand Down
4 changes: 2 additions & 2 deletions synapse/storage/databases/main/group_server.py
Original file line number Diff line number Diff line change
Expand Up @@ -1027,8 +1027,8 @@ async def add_user_to_group(
user_id: str,
is_admin: bool = False,
is_public: bool = True,
local_attestation: dict = None,
remote_attestation: dict = None,
local_attestation: Optional[dict] = None,
remote_attestation: Optional[dict] = None,
) -> None:
"""Add a user to the group server.
Expand Down
4 changes: 3 additions & 1 deletion synapse/util/caches/deferred_cache.py
Original file line number Diff line number Diff line change
Expand Up @@ -283,7 +283,9 @@ def eb(_fail):
# we return a new Deferred which will be called before any subsequent observers.
return observable.observe()

def prefill(self, key: KT, value: VT, callback: Callable[[], None] = None):
def prefill(
self, key: KT, value: VT, callback: Optional[Callable[[], None]] = None
):
callbacks = [callback] if callback else []
self.cache.set(key, value, callbacks=callbacks)

Expand Down
7 changes: 5 additions & 2 deletions tests/rest/client/v2_alpha/test_auth.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from typing import Union
from typing import Optional, Union

from twisted.internet.defer import succeed

Expand Down Expand Up @@ -74,7 +74,10 @@ def register(self, expected_response: int, body: JsonDict) -> FakeChannel:
return channel

def recaptcha(
self, session: str, expected_post_response: int, post_session: str = None
self,
session: str,
expected_post_response: int,
post_session: Optional[str] = None,
) -> None:
"""Get and respond to a fallback recaptcha. Returns the second request."""
if post_session is None:
Expand Down