Skip to content

Commit 5590a54

Browse files
committed
refactor: truncate exceptions
1 parent 09abb1c commit 5590a54

File tree

6 files changed

+19
-16
lines changed

6 files changed

+19
-16
lines changed

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ license = "Apache-2.0"
3434
license-files = ["LICENSE"]
3535
readme = "README.md"
3636
requires-python = ">=3.11"
37-
version = "2.0.0"
37+
version = "2.0.1"
3838

3939
[project.optional-dependencies]
4040
cli = [

src/mega/auth.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ class Credentials(NamedTuple):
4444

4545

4646
async def login_anonymous(api: MegaAPI) -> Credentials:
47-
logger.info("Creating as an anonymous temporary user...")
47+
logger.info("Creating an anonymous temporary user...")
4848

4949
master_key = random_u32int_array(4)
5050
aes_key = random_u32int_array(4)

src/mega/client.py

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,20 @@
66
from pathlib import Path, PurePosixPath
77
from typing import TYPE_CHECKING, Any
88

9-
import aiohttp
10-
119
from mega import progress
1210
from mega.api import APIContextManager
1311
from mega.core import MegaCore
1412
from mega.crypto import a32_to_base64, b64_to_a32, b64_url_encode, encrypt_attr, encrypt_key
1513
from mega.data_structures import AccountStats, Crypto, FileInfo, Node, NodeID, NodeType, UserResponse
1614
from mega.download import DownloadResults
1715
from mega.errors import MegaNzError, RequestError, ValidationError
18-
from mega.utils import Site, async_map, setup_logger
16+
from mega.utils import Site, async_map, format_error, setup_logger
1917

2018
if TYPE_CHECKING:
2119
from contextlib import _GeneratorContextManager # pyright: ignore[reportPrivateUsage]
2220
from os import PathLike
2321

22+
import aiohttp
2423
import yarl
2524

2625
from mega.filesystem import FileSystem, UserFileSystem
@@ -221,10 +220,7 @@ async def download(file: Node) -> tuple[NodeID, Path | Exception]:
221220
result = await self._core.download_file(file_info, file._crypto, output_path)
222221

223222
except Exception as exc:
224-
if isinstance(exc, aiohttp.ClientResponseError):
225-
msg = f"[{exc.status}] {exc.message}"
226-
else:
227-
msg = f"({type(exc).__name__})"
223+
msg = format_error(exc)
228224
logger.error(f'Unable to download {web_url} to "{output_path}" {msg}')
229225
result = exc
230226

src/mega/transfer_it.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
from pathlib import Path
77
from typing import TYPE_CHECKING, Any, ClassVar, TypeAlias
88

9-
import aiohttp
109
import yarl
1110

1211
from mega import download, progress
@@ -16,13 +15,15 @@
1615
from mega.download import DownloadResults
1716
from mega.errors import ValidationError
1817
from mega.filesystem import FileSystem
19-
from mega.utils import Site, async_map
18+
from mega.utils import Site, async_map, format_error
2019

2120
if TYPE_CHECKING:
2221
from collections.abc import Iterable
2322
from contextlib import _GeneratorContextManager # pyright: ignore[reportPrivateUsage]
2423
from os import PathLike
2524

25+
import aiohttp
26+
2627
from mega.data_structures import GetNodesResponse, NodeSerialized
2728

2829

@@ -123,10 +124,7 @@ async def download(file: Node) -> tuple[NodeID, Path | Exception]:
123124
try:
124125
result = await self._download_file(dl_link, output_path)
125126
except Exception as exc:
126-
if isinstance(exc, aiohttp.ClientResponseError):
127-
msg = f"[{exc.status}] {exc.message}"
128-
else:
129-
msg = f"({type(exc).__name__})"
127+
msg = format_error(exc)
130128
logger.error(f'Unable to download {web_url} to "{output_path}" {msg}')
131129
result = exc
132130

src/mega/utils.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
from stat import S_ISREG
1212
from typing import TYPE_CHECKING, Literal, TypeVar, overload
1313

14+
import aiohttp
1415
import yarl
1516

1617
from mega.errors import ValidationError
@@ -40,6 +41,14 @@ def check_host(self, url: yarl.URL) -> None:
4041
raise ValidationError(f"Not a {self.value.host} URL: {url}")
4142

4243

44+
def format_error(exc: Exception) -> str:
45+
if isinstance(exc, aiohttp.ClientResponseError):
46+
msg = f"[{exc.status}] {exc.message}"
47+
else:
48+
msg = f"({type(exc).__name__})"
49+
return msg[:20]
50+
51+
4352
def setup_logger(level: int = logging.INFO) -> None:
4453
try:
4554
from rich.logging import RichHandler

uv.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)