diff --git a/warehouse/legacy/api/json.py b/warehouse/legacy/api/json.py index 8192efc451ed..b7622fbe6e0e 100644 --- a/warehouse/legacy/api/json.py +++ b/warehouse/legacy/api/json.py @@ -65,7 +65,7 @@ def json_project(project, request): try: release = ( request.db.query(Release) - .filter(Release.project == project) + .filter(Release.project == project, Release.yanked.is_(False)) .order_by(Release.is_prerelease.nullslast(), Release._pypi_ordering.desc()) .limit(1) .one() @@ -114,7 +114,7 @@ def json_release(release, request): request.db.query(Release, File) .options(Load(Release).load_only("version", "requires_python")) .outerjoin(File) - .filter(Release.project == project) + .filter(Release.project == project, Release.yanked.is_(False)) .order_by(Release._pypi_ordering.desc(), File.filename) .all() ) diff --git a/warehouse/packaging/models.py b/warehouse/packaging/models.py index a3b5c9dd0da6..88a180c19888 100644 --- a/warehouse/packaging/models.py +++ b/warehouse/packaging/models.py @@ -149,8 +149,9 @@ def __getitem__(self, version): return ( session.query(Release) .filter( - (Release.project == self) - & (Release.canonical_version == canonical_version) + Release.project == self, + Release.yanked.is_(False), + Release.canonical_version == canonical_version, ) .one() ) @@ -161,7 +162,11 @@ def __getitem__(self, version): try: return ( session.query(Release) - .filter((Release.project == self) & (Release.version == version)) + .filter( + Release.project == self, + Release.version == version, + Release.yanked.is_(False), + ) .one() ) except NoResultFound: @@ -220,7 +225,7 @@ def all_versions(self): return ( orm.object_session(self) .query(Release.version, Release.created, Release.is_prerelease) - .filter(Release.project == self) + .filter(Release.project == self, Release.yanked.is_(False)) .order_by(Release._pypi_ordering.desc()) .all() ) @@ -230,7 +235,7 @@ def latest_version(self): return ( orm.object_session(self) .query(Release.version, Release.created, Release.is_prerelease) - .filter(Release.project == self) + .filter(Release.project == self, Release.yanked.is_(False)) .order_by(Release.is_prerelease.nullslast(), Release._pypi_ordering.desc()) .first() ) diff --git a/warehouse/packaging/views.py b/warehouse/packaging/views.py index 5cfc9c41888c..ae7b42ebee76 100644 --- a/warehouse/packaging/views.py +++ b/warehouse/packaging/views.py @@ -38,7 +38,7 @@ def project_detail(project, request): try: release = ( request.db.query(Release) - .filter(Release.project == project) + .filter(Release.project == project, Release.yanked.is_(False)) .order_by(Release.is_prerelease.nullslast(), Release._pypi_ordering.desc()) .limit(1) .one()