Skip to content

Commit 71a05fd

Browse files
committed
Correct typing
1 parent 5763586 commit 71a05fd

File tree

4 files changed

+8
-16
lines changed

4 files changed

+8
-16
lines changed

simple_repository_browser/controller.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ async def project(
139139
recache: bool = False,
140140
) -> str | StreamingResponse:
141141
_ = page_section # Handled in javascript.
142-
_version = None
142+
_version: Version | InvalidVersion | None = None
143143
if version:
144144
try:
145145
_version = Version(version)

simple_repository_browser/crawler.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
from . import fetch_projects
1717
from .fetch_description import PackageInfo, package_info
18-
from .short_release_info import ReleaseInfoModel, ShortReleaseInfo
18+
from .short_release_info import InvalidVersion, ReleaseInfoModel, ShortReleaseInfo
1919

2020

2121
class Crawler:
@@ -146,8 +146,8 @@ async def run_reindex_periodically(self) -> None:
146146
async def fetch_pkg_info(
147147
self,
148148
prj: model.ProjectDetail,
149-
version: Version,
150-
releases: dict[Version, ShortReleaseInfo],
149+
version: Version | InvalidVersion,
150+
releases: dict[Version | InvalidVersion, ShortReleaseInfo],
151151
force_recache: bool,
152152
) -> tuple[model.File, PackageInfo]:
153153
key = ("pkg-info", prj.name, str(version))

simple_repository_browser/model.py

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ async def project_query(
189189
async def project_page(
190190
self,
191191
project_name: str,
192-
version: Version | None,
192+
version: Version | InvalidVersion | None,
193193
recache: bool,
194194
) -> ProjectPageModel:
195195
canonical_name = canonicalize_name(project_name)
@@ -219,19 +219,9 @@ async def project_page(
219219
version = latest_version
220220

221221
if version not in releases:
222-
# Provide a more helpful error message for invalid versions
223-
if isinstance(version, InvalidVersion):
224-
available_versions = [f'"{vn}"' for vn in releases]
225-
detail = (
226-
f'Release "{version}" not found for {project_name}. '
227-
f"Note: This version does not conform to PEP 440. "
228-
f"Available versions: {', '.join(available_versions[:10])}"
229-
)
230-
else:
231-
detail = f'Release "{version}" not found for {project_name}.'
232222
raise errors.RequestError(
233223
status_code=404,
234-
detail=detail,
224+
detail=f'Release "{version}" not found for {project_name}.',
235225
)
236226

237227
release = releases[version]

simple_repository_browser/short_release_info.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ def release_infos(
7474
raise ValueError("No files for the release")
7575

7676
canonical_name = canonicalize_name(project_detail.name)
77+
release: Version | InvalidVersion
7778
for file in project_detail.files:
7879
version_str = None
7980
try:
@@ -88,6 +89,7 @@ def release_infos(
8889
files_grouped_by_version.setdefault(release, []).append(file)
8990

9091
# Ensure there is a release for each version, even if there is no files for it.
92+
version: Version | InvalidVersion
9193
for version_str in project_detail.versions or []:
9294
try:
9395
version = Version(version_str)

0 commit comments

Comments
 (0)