Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix pyright errors #621

Merged
merged 7 commits into from
Apr 10, 2023
Merged
Show file tree
Hide file tree
Changes from 1 commit
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
2 changes: 2 additions & 0 deletions plugins/quetz_conda_suggest/quetz_conda_suggest/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,8 @@ def post_add_package_version(version, condainfo):
db.add(metadata)
else:
metadata = db.get(db_models.CondaSuggestMetadata, version.id)
if not metadata:
raise KeyError(f"Metadata with version '{version.id}' not found")
metadata.data = json.dumps(suggest_map)
db.commit()
generate_channel_suggest_map(db, version.channel_name, subdir)
Expand Down
3 changes: 3 additions & 0 deletions plugins/quetz_content_trust/quetz_content_trust/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,9 @@ def get_self_delegation(nullable: bool = False):
# mamba API when loading the root role from file
self_delegation = [r for r in db_role.delegations if r.type == "root"][0]

if not self_delegation:
raise RuntimeError("self_delegation must not be None")

# db_role.delegation = self_delegation
self_delegation.consumers.append(db_role)

Expand Down
2 changes: 2 additions & 0 deletions plugins/quetz_runexports/quetz_runexports/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,5 +24,7 @@ def post_add_package_version(version, condainfo):
db.add(metadata)
else:
metadata = db.get(db_models.PackageVersionMetadata, version.id)
if not metadata:
raise KeyError(f"No metadata found for version '{version.id}'.")
metadata.data = run_exports
db.commit()
14 changes: 10 additions & 4 deletions quetz/dao.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@

from sqlalchemy import and_, func, insert, or_
from sqlalchemy.dialects.postgresql import insert as pg_insert
from sqlalchemy.exc import IntegrityError
from sqlalchemy.exc import IntegrityError, NoResultFound
janjagusch marked this conversation as resolved.
Show resolved Hide resolved
from sqlalchemy.ext.compiler import compiles
from sqlalchemy.orm import Query, Session, aliased, exc, joinedload
from sqlalchemy.orm import Query, Session, aliased, joinedload
from sqlalchemy.sql.expression import FunctionElement, Insert
from sqlalchemy.types import DateTime

Expand Down Expand Up @@ -193,13 +193,13 @@ def rollback(self):
def get_profile(self, user_id):
try:
return self.db.query(Profile).filter(Profile.user_id == user_id).one()
except exc.NoResultFound:
except NoResultFound:
logger.error("User not found")

def get_user(self, user_id):
try:
return self.db.query(User).filter(User.id == user_id).one()
except exc.NoResultFound:
except NoResultFound:
logger.error("User not found")

def get_users(self, skip: int, limit: int, q: str, order_by: str = 'username:asc'):
Expand Down Expand Up @@ -621,6 +621,8 @@ def create_package(

def update_package_channeldata(self, channel_name, package_name, channeldata):
package = self.get_package(channel_name, package_name)
if package is None:
raise KeyError(f"Package '{package_name}' not found.")
janjagusch marked this conversation as resolved.
Show resolved Hide resolved
if package.channeldata:
old_data = json.loads(package.channeldata)
else:
Expand Down Expand Up @@ -651,6 +653,8 @@ def get_channel_member(self, channel_name, username):

def create_channel_member(self, channel_name, new_member):
user = self.get_user_by_username(new_member.username)
if user is None:
janjagusch marked this conversation as resolved.
Show resolved Hide resolved
raise KeyError(f"User '{new_member.username}' not found.")

member = ChannelMember(
channel_name=channel_name, user_id=user.id, role=new_member.role
Expand Down Expand Up @@ -681,6 +685,8 @@ def get_package_member(self, channel_name, package_name, username):

def create_package_member(self, channel_name, package_name, new_member):
user = self.get_user_by_username(new_member.username)
if user is None:
janjagusch marked this conversation as resolved.
Show resolved Hide resolved
raise KeyError(f"User '{new_member.username}' not found.")

member = PackageMember(
channel_name=channel_name,
Expand Down
12 changes: 12 additions & 0 deletions quetz/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -250,6 +250,8 @@ def dummy_login(
username: str, dao: Dao = Depends(get_dao), session=Depends(get_session)
):
user = dao.get_user_by_username(username)
if user is None:
raise HTTPException(status_code=404, detail=f"User '{username}' not found.")

logout(session)
session["user_id"] = str(uuid.UUID(bytes=user.id))
Expand Down Expand Up @@ -439,6 +441,11 @@ def delete_user(
):
user = dao.get_user_by_username(username)

if not user or not user.profile:
raise HTTPException(
status_code=status.HTTP_404_NOT_FOUND, detail=f"User {username} not found"
)

auth.assert_delete_user(user.id)
dao.delete_user(user.id)

Expand Down Expand Up @@ -1106,6 +1113,11 @@ def delete_package_version(
channel_name, package_name, filename, platform
)

if not version or not version.package:
raise HTTPException(
status_code=status.HTTP_404_NOT_FOUND, detail="Package version not found"
)

auth.assert_package_delete(version.package)

if not version:
Expand Down
4 changes: 4 additions & 0 deletions quetz/tasks/mirror.py
Original file line number Diff line number Diff line change
Expand Up @@ -459,6 +459,10 @@ def create_packages_from_channeldata(
except DBError:
# package already exists so skip it so we retrieve and update it
package = dao.get_package(channel_name, package_name)
if not package:
raise KeyError(
f"Package '{package_name}' not found in channel {channel_name}"
)
package.description = description
package.summary = summary
package.url = metadata.get("home", "")
Expand Down
2 changes: 2 additions & 0 deletions quetz/tasks/workers.py
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,8 @@ def job_wrapper(
user_id: Optional[str]
if task_id:
task = db.query(Task).filter(Task.id == task_id).one_or_none()
if not task:
raise KeyError(f"Task '{task_id}' not found")
# take extra arguments from job definition
if task.job.extra_args:
job_extra_args = json.loads(task.job.extra_args)
Expand Down