Skip to content

Commit 709b883

Browse files
committed
Fix errors on ruff check
1 parent cc61989 commit 709b883

11 files changed

+135
-45
lines changed

kalyke/clients/__init__.py

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,27 @@
11
import importlib
22
import urllib.parse
33
from pathlib import Path
4-
from typing import Any, Dict, Union
4+
from typing import Any, Union
55

66
from httpx import AsyncClient, Response
77

88
from ..exceptions import ApnsProviderException
99
from ..models import ApnsConfig, Payload
1010

1111

12-
class __Client(object):
12+
class __Client:
1313
use_sandbox: bool
1414
auth_key_filepath: Union[str, Path]
1515

1616
async def send_message(
1717
self,
1818
device_token: str,
19-
payload: Union[Payload, Dict[str, Any]],
19+
payload: Union[Payload, dict[str, Any]],
2020
apns_config: ApnsConfig,
2121
) -> str:
2222
if isinstance(payload, Payload):
2323
data = payload.dict()
24-
elif isinstance(payload, Dict):
24+
elif isinstance(payload, dict):
2525
data = payload
2626
else:
2727
raise ValueError("Type of 'payload' must be specified by Payload or Dict[str, Any].")
@@ -48,10 +48,10 @@ def _init_client(self, apns_config: ApnsConfig) -> AsyncClient:
4848
def _make_url(self, device_token: str) -> str:
4949
return f"{self._base_url}/3/device/{urllib.parse.quote(device_token)}"
5050

51-
async def _send(self, client: AsyncClient, url: str, data: Dict[str, Any]) -> Response:
51+
async def _send(self, client: AsyncClient, url: str, data: dict[str, Any]) -> Response:
5252
return await client.post(url=url, json=data)
5353

54-
def _handle_error(self, error_json: Dict[str, Any]) -> ApnsProviderException:
54+
def _handle_error(self, error_json: dict[str, Any]) -> ApnsProviderException:
5555
reason = error_json.pop("reason")
5656
exceptions_module = importlib.import_module("kalyke.exceptions")
5757
exception_class = getattr(exceptions_module, reason)

kalyke/clients/apns.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from dataclasses import dataclass, field
1+
from dataclasses import dataclass
22
from datetime import datetime
33
from pathlib import Path
44
from typing import Union

kalyke/clients/live_activity.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from dataclasses import dataclass
2-
from typing import Any, Dict, Union
2+
from typing import Any, Union
33

44
from httpx import AsyncClient
55

@@ -12,7 +12,7 @@ class LiveActivityClient(ApnsClient):
1212
async def send_message(
1313
self,
1414
device_token: str,
15-
payload: Union[LiveActivityPayload, Dict[str, Any]], # type: ignore[override]
15+
payload: Union[LiveActivityPayload, dict[str, Any]], # type: ignore[override]
1616
apns_config: LiveActivityApnsConfig, # type: ignore[override]
1717
) -> str:
1818
return await super().send_message(

kalyke/clients/voip.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import warnings
22
from dataclasses import dataclass, field
33
from pathlib import Path
4-
from typing import Any, Dict, Optional, Union
4+
from typing import Any, Optional, Union
55

66
import httpx
77
from httpx import AsyncClient
@@ -19,12 +19,12 @@ class VoIPClient(BaseClient):
1919

2020
def __post_init__(self) -> None:
2121
if self.key_filepath is None and self.password is not None:
22-
warnings.warn(UserWarning("password is ignored because key_filepath is None."))
22+
warnings.warn(UserWarning("password is ignored because key_filepath is None."), stacklevel=2)
2323

2424
async def send_message(
2525
self,
2626
device_token: str,
27-
payload: Dict[str, Any], # type: ignore[override]
27+
payload: dict[str, Any], # type: ignore[override]
2828
apns_config: VoIPApnsConfig, # type: ignore[override]
2929
) -> str:
3030
return await super().send_message(

kalyke/exceptions.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from typing import Any, Dict
1+
from typing import Any
22

33

44
class VolumeOutOfRangeException(Exception):
@@ -33,7 +33,7 @@ def __str__(self) -> str:
3333

3434
# https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/handling_notification_responses_from_apns#3394535
3535
class ApnsProviderException(Exception):
36-
def __init__(self, error: Dict[str, Any]) -> None:
36+
def __init__(self, error: dict[str, Any]) -> None:
3737
self.error = error
3838

3939
def __str__(self) -> str:

kalyke/models/apns_config.py

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import time
22
import uuid
33
from dataclasses import dataclass, field
4-
from typing import Dict, Optional
4+
from typing import Optional
55

66
import httpx
77

@@ -22,11 +22,11 @@ def __post_init__(self):
2222
if self.identifier:
2323
try:
2424
_ = uuid.UUID(hex=self.identifier, version=4)
25-
except ValueError:
26-
raise ValueError(f"{self.identifier} is invalid format.")
25+
except ValueError as e:
26+
raise ValueError(f"{self.identifier} is invalid format.") from e
2727

28-
def make_headers(self) -> Dict[str, str]:
29-
headers: Dict[str, Optional[str]] = {
28+
def make_headers(self) -> dict[str, str]:
29+
headers: dict[str, Optional[str]] = {
3030
"apns-push-type": self.push_type.value,
3131
"apns-id": self.identifier,
3232
"apns-expiration": str(self.expiration),
@@ -35,7 +35,7 @@ def make_headers(self) -> Dict[str, str]:
3535
"apns-collapse-id": self.collapse_id,
3636
"user-agent": f"python-httpx/{httpx.__version__} {self.topic}",
3737
}
38-
attached_headers: Dict[str, str] = {k: v for k, v in headers.items() if v is not None}
38+
attached_headers: dict[str, str] = {k: v for k, v in headers.items() if v is not None}
3939
return attached_headers
4040

4141

kalyke/models/critical_sound.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from dataclasses import dataclass, field
2-
from typing import Dict, Optional, Union
2+
from typing import Optional, Union
33

44
from ..exceptions import VolumeOutOfRangeException
55

@@ -16,8 +16,8 @@ def __post_init__(self):
1616
else:
1717
raise VolumeOutOfRangeException(volume=self.volume)
1818

19-
def dict(self) -> Dict[str, Union[int, str, float]]:
20-
sound: Dict[str, Union[int, str, float]] = {
19+
def dict(self) -> dict[str, Union[int, str, float]]:
20+
sound: dict[str, Union[int, str, float]] = {
2121
"critical": int(self.critical),
2222
"volume": self.volume,
2323
}

kalyke/models/payload.py

+12-12
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import json
22
from dataclasses import dataclass, field
33
from datetime import datetime
4-
from typing import Any, Dict, Optional, Union
4+
from typing import Any, Optional, Union
55

66
from ..exceptions import (
77
LiveActivityAttributesIsNotJSONSerializable,
@@ -27,7 +27,7 @@ class Payload:
2727
interruption_level: Optional[InterruptionLevel] = field(default=None)
2828
relevance_score: Optional[float] = field(default=None)
2929
filter_criteria: Optional[str] = field(default=None)
30-
custom: Optional[Dict[str, Any]] = field(default=None)
30+
custom: Optional[dict[str, Any]] = field(default=None)
3131

3232
def __post_init__(self):
3333
if self.relevance_score:
@@ -39,8 +39,8 @@ def _validate_relevance_score(self):
3939
else:
4040
raise RelevanceScoreOutOfRangeException(relevance_score=self.relevance_score)
4141

42-
def dict(self) -> Dict[str, Any]:
43-
aps: Dict[str, Any] = {
42+
def dict(self) -> dict[str, Any]:
43+
aps: dict[str, Any] = {
4444
"alert": self.alert.dict() if isinstance(self.alert, PayloadAlert) else self.alert,
4545
"badge": self.badge,
4646
"sound": self.sound,
@@ -70,19 +70,19 @@ def dict(self) -> Dict[str, Any]:
7070
class LiveActivityPayload(Payload):
7171
timestamp: datetime = field(default_factory=datetime.now)
7272
event: LiveActivityEvent = field(default=LiveActivityEvent.UPDATE)
73-
content_state: Dict[str, Any] = field(default_factory=dict)
73+
content_state: dict[str, Any] = field(default_factory=dict)
7474
stale_date: Optional[datetime] = field(default=None)
7575
dismissal_date: Optional[datetime] = field(default=None)
7676
attributes_type: Optional[str] = field(default=None)
77-
attributes: Optional[Dict[str, Any]] = field(default=None)
77+
attributes: Optional[dict[str, Any]] = field(default=None)
7878

7979
def __post_init__(self):
8080
if self.event == LiveActivityEvent.START:
8181
self._validate_event_is_start()
8282
try:
8383
_ = json.dumps(self.content_state)
84-
except TypeError:
85-
raise LiveActivityContentStateIsNotJSONSerializable()
84+
except TypeError as e:
85+
raise LiveActivityContentStateIsNotJSONSerializable() from e
8686
super().__post_init__()
8787

8888
def _validate_relevance_score(self):
@@ -96,12 +96,12 @@ def _validate_event_is_start(self):
9696
)
9797
try:
9898
_ = json.dumps(self.attributes)
99-
except TypeError:
100-
raise LiveActivityAttributesIsNotJSONSerializable()
99+
except TypeError as e:
100+
raise LiveActivityAttributesIsNotJSONSerializable() from e
101101

102-
def dict(self) -> Dict[str, Any]:
102+
def dict(self) -> dict[str, Any]:
103103
payload = super().dict()
104-
additional: Dict[str, Optional[Any]] = {
104+
additional: dict[str, Optional[Any]] = {
105105
"timestamp": int(self.timestamp.timestamp()),
106106
"event": self.event.value,
107107
"content-state": self.content_state,

kalyke/models/payload_alert.py

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from dataclasses import dataclass, field
2-
from typing import Dict, List, Optional, Union
2+
from typing import Optional, Union
33

44

55
@dataclass(frozen=True)
@@ -9,14 +9,14 @@ class PayloadAlert:
99
body: Optional[str] = field(default=None)
1010
launch_image: Optional[str] = field(default=None)
1111
title_loc_key: Optional[str] = field(default=None)
12-
title_loc_args: Optional[List[str]] = field(default=None)
12+
title_loc_args: Optional[list[str]] = field(default=None)
1313
subtitle_loc_key: Optional[str] = field(default=None)
14-
subtitle_loc_args: Optional[List[str]] = field(default=None)
14+
subtitle_loc_args: Optional[list[str]] = field(default=None)
1515
loc_key: Optional[str] = field(default=None)
16-
loc_args: Optional[List[str]] = field(default=None)
16+
loc_args: Optional[list[str]] = field(default=None)
1717

18-
def dict(self) -> Dict[str, Union[str, List[str]]]:
19-
alert: Dict[str, Optional[Union[str, List[str]]]] = {
18+
def dict(self) -> dict[str, Union[str, list[str]]]:
19+
alert: dict[str, Optional[Union[str, list[str]]]] = {
2020
"title": self.title,
2121
"subtitle": self.subtitle,
2222
"body": self.body,
@@ -28,5 +28,5 @@ def dict(self) -> Dict[str, Union[str, List[str]]]:
2828
"loc-key": self.loc_key,
2929
"loc-args": self.loc_args,
3030
}
31-
attached_alert: Dict[str, Union[str, List[str]]] = {k: v for k, v in alert.items() if v is not None}
31+
attached_alert: dict[str, Union[str, list[str]]] = {k: v for k, v in alert.items() if v is not None}
3232
return attached_alert

0 commit comments

Comments
 (0)