From 7d78d06165dd1c981428e9ecad937f3815407d18 Mon Sep 17 00:00:00 2001 From: swve Date: Mon, 8 May 2023 09:39:11 +0000 Subject: [PATCH] chore: cleanup python code --- app.py | 2 -- src/routers/auth.py | 2 -- src/routers/blocks.py | 2 +- src/routers/courses/chapters.py | 2 +- src/routers/courses/collections.py | 2 +- src/routers/roles.py | 2 +- src/routers/trail.py | 1 - src/routers/users.py | 6 ++--- src/security/auth.py | 7 ++---- src/security/security.py | 3 +-- .../blocks/block_types/imageBlock/images.py | 3 --- .../blocks/block_types/pdfBlock/pdfBlock.py | 3 --- .../block_types/videoBlock/videoBlock.py | 3 --- src/services/blocks/schemas/blocks.py | 4 +-- src/services/blocks/utils/upload_files.py | 1 - src/services/courses/activities/activities.py | 4 +-- src/services/courses/activities/pdf.py | 1 - .../courses/activities/uploads/pdfs.py | 2 +- .../courses/activities/uploads/videos.py | 2 +- src/services/courses/activities/video.py | 1 - src/services/courses/chapters.py | 14 +++++------ src/services/courses/collections.py | 6 ++--- src/services/courses/courses.py | 6 ++--- src/services/courses/thumbnails.py | 2 +- src/services/mocks/initial.py | 25 ++++++++----------- src/services/orgs.py | 12 ++++----- src/services/roles/roles.py | 8 +++--- src/services/roles/schemas/roles.py | 2 +- src/services/trail.py | 2 -- src/services/users/users.py | 3 +-- 30 files changed, 46 insertions(+), 87 deletions(-) diff --git a/app.py b/app.py index fbbc876c..da8c358c 100644 --- a/app.py +++ b/app.py @@ -1,7 +1,5 @@ -import asyncio import logging from fastapi import FastAPI, Request -import re from config.config import LearnHouseConfig, get_learnhouse_config from src.core.events.events import shutdown_app, startup_app from src.main import global_router diff --git a/src/routers/auth.py b/src/routers/auth.py index 7505b26a..b563212d 100644 --- a/src/routers/auth.py +++ b/src/routers/auth.py @@ -3,8 +3,6 @@ from fastapi import Depends, APIRouter, HTTPException, status, Request from fastapi.security import OAuth2PasswordRequestForm from src.security.auth import * from src.services.users.users import * -from datetime import timedelta -from fastapi.responses import JSONResponse router = APIRouter() diff --git a/src/routers/blocks.py b/src/routers/blocks.py index 6d90bb32..c456d585 100644 --- a/src/routers/blocks.py +++ b/src/routers/blocks.py @@ -1,6 +1,6 @@ from fastapi import APIRouter, Depends, UploadFile, Form, Request from src.security.auth import get_current_user -from fastapi import HTTPException, status, UploadFile +from fastapi import UploadFile from src.services.blocks.block_types.imageBlock.images import create_image_block, get_image_block from src.services.blocks.block_types.videoBlock.videoBlock import create_video_block, get_video_block from src.services.blocks.block_types.pdfBlock.pdfBlock import create_pdf_block, get_pdf_block diff --git a/src/routers/courses/chapters.py b/src/routers/courses/chapters.py index aa024cae..213dcc55 100644 --- a/src/routers/courses/chapters.py +++ b/src/routers/courses/chapters.py @@ -1,4 +1,4 @@ -from fastapi import APIRouter, Depends, Request, UploadFile, Form +from fastapi import APIRouter, Depends, Request from src.services.courses.chapters import CourseChapter, CourseChapterMetaData, create_coursechapter, delete_coursechapter, get_coursechapter, get_coursechapters, get_coursechapters_meta, update_coursechapter, update_coursechapters_meta from src.services.users.users import PublicUser diff --git a/src/routers/courses/collections.py b/src/routers/courses/collections.py index fe5f8f17..3dc39569 100644 --- a/src/routers/courses/collections.py +++ b/src/routers/courses/collections.py @@ -1,6 +1,6 @@ from fastapi import APIRouter, Depends, Request from src.security.auth import get_current_user -from src.services.users.users import PublicUser, User +from src.services.users.users import PublicUser from src.services.courses.collections import Collection, create_collection, get_collection, get_collections, update_collection, delete_collection diff --git a/src/routers/roles.py b/src/routers/roles.py index e784324d..d65891bf 100644 --- a/src/routers/roles.py +++ b/src/routers/roles.py @@ -2,7 +2,7 @@ from fastapi import APIRouter, Depends, Request from src.security.auth import get_current_user from src.services.roles.schemas.roles import Role from src.services.roles.roles import create_role, delete_role, read_role, update_role -from src.services.users.schemas.users import PublicUser, User +from src.services.users.schemas.users import PublicUser router = APIRouter() diff --git a/src/routers/trail.py b/src/routers/trail.py index 13b19fdd..aac85c77 100644 --- a/src/routers/trail.py +++ b/src/routers/trail.py @@ -1,4 +1,3 @@ -from typing import Optional from fastapi import APIRouter, Depends, Request from src.security.auth import get_current_user from src.services.trail import Trail, add_activity_to_trail, add_course_to_trail, create_trail, get_user_trail_with_orgslug, get_user_trail, remove_course_from_trail diff --git a/src/routers/users.py b/src/routers/users.py index 6826077a..80b90753 100644 --- a/src/routers/users.py +++ b/src/routers/users.py @@ -1,9 +1,7 @@ -from fastapi import Depends, FastAPI, APIRouter -from fastapi.security import OAuth2PasswordBearer, OAuth2PasswordRequestForm -from pydantic import BaseModel +from fastapi import Depends, APIRouter from src.security.auth import * from src.services.users.schemas.users import PasswordChangeForm, PublicUser, User, UserWithPassword -from src.services.users.users import create_user, delete_user, get_profile_metadata, get_user_by_userid, read_user, update_user, update_user_password +from src.services.users.users import create_user, delete_user, get_profile_metadata, get_user_by_userid, update_user, update_user_password diff --git a/src/security/auth.py b/src/security/auth.py index fe61fe24..7100a566 100644 --- a/src/security/auth.py +++ b/src/security/auth.py @@ -1,15 +1,12 @@ from pydantic import BaseModel -from fastapi import Depends, FastAPI, APIRouter, HTTPException, status -from fastapi.security import OAuth2PasswordBearer, OAuth2PasswordRequestForm -from passlib.context import CryptContext +from fastapi import Depends, HTTPException, status +from fastapi.security import OAuth2PasswordBearer from jose import JWTError, jwt from datetime import datetime, timedelta from src.services.users.schemas.users import AnonymousUser from src.services.users.users import * -from fastapi import Cookie, FastAPI from src.security.security import * from fastapi_jwt_auth import AuthJWT -from fastapi_jwt_auth.exceptions import AuthJWTException oauth2_scheme = OAuth2PasswordBearer(tokenUrl="/api/auth/login") diff --git a/src/security/security.py b/src/security/security.py index a5b48170..30c935c5 100644 --- a/src/security/security.py +++ b/src/security/security.py @@ -1,10 +1,9 @@ -from pprint import pprint from fastapi import HTTPException, status, Request from passlib.context import CryptContext from passlib.hash import pbkdf2_sha256 from src.services.roles.schemas.roles import RoleInDB -from src.services.users.schemas.users import User, UserInDB +from src.services.users.schemas.users import UserInDB ### 🔒 JWT ############################################################## diff --git a/src/services/blocks/block_types/imageBlock/images.py b/src/services/blocks/block_types/imageBlock/images.py index 8be9575a..4647cce5 100644 --- a/src/services/blocks/block_types/imageBlock/images.py +++ b/src/services/blocks/block_types/imageBlock/images.py @@ -1,8 +1,5 @@ from uuid import uuid4 -from pydantic import BaseModel from fastapi import HTTPException, status, UploadFile, Request -from fastapi.responses import StreamingResponse -import os from src.services.blocks.schemas.blocks import Block from src.services.blocks.utils.upload_files import upload_file_and_return_file_object diff --git a/src/services/blocks/block_types/pdfBlock/pdfBlock.py b/src/services/blocks/block_types/pdfBlock/pdfBlock.py index 6039aeeb..5574c59a 100644 --- a/src/services/blocks/block_types/pdfBlock/pdfBlock.py +++ b/src/services/blocks/block_types/pdfBlock/pdfBlock.py @@ -1,8 +1,5 @@ from uuid import uuid4 -from pydantic import BaseModel from fastapi import HTTPException, status, UploadFile, Request -from fastapi.responses import StreamingResponse -import os from src.services.blocks.schemas.blocks import Block from src.services.blocks.utils.upload_files import upload_file_and_return_file_object diff --git a/src/services/blocks/block_types/videoBlock/videoBlock.py b/src/services/blocks/block_types/videoBlock/videoBlock.py index 6596c00a..de4b8ed8 100644 --- a/src/services/blocks/block_types/videoBlock/videoBlock.py +++ b/src/services/blocks/block_types/videoBlock/videoBlock.py @@ -1,8 +1,5 @@ from uuid import uuid4 -from pydantic import BaseModel -import os from fastapi import HTTPException, status, UploadFile, Request -from fastapi.responses import StreamingResponse from src.services.blocks.schemas.blocks import Block from src.services.blocks.utils.upload_files import upload_file_and_return_file_object diff --git a/src/services/blocks/schemas/blocks.py b/src/services/blocks/schemas/blocks.py index 0c2c9113..70e94365 100644 --- a/src/services/blocks/schemas/blocks.py +++ b/src/services/blocks/schemas/blocks.py @@ -1,7 +1,5 @@ -from typing import Any, List, Literal -from uuid import uuid4 -from fastapi import Request +from typing import Any, Literal from pydantic import BaseModel diff --git a/src/services/blocks/utils/upload_files.py b/src/services/blocks/utils/upload_files.py index ce74bc5c..19a79355 100644 --- a/src/services/blocks/utils/upload_files.py +++ b/src/services/blocks/utils/upload_files.py @@ -3,7 +3,6 @@ import uuid from fastapi import HTTPException, Request, UploadFile, status from src.services.blocks.schemas.files import BlockFile -from src.services.users.schemas.users import PublicUser async def upload_file_and_return_file_object(request: Request, file: UploadFile, activity_id: str, block_id: str, list_of_allowed_file_formats: list, type_of_block: str): diff --git a/src/services/courses/activities/activities.py b/src/services/courses/activities/activities.py index 92c5750b..46842d38 100644 --- a/src/services/courses/activities/activities.py +++ b/src/services/courses/activities/activities.py @@ -1,7 +1,7 @@ from pydantic import BaseModel from src.security.security import verify_user_rights_with_roles -from src.services.users.schemas.users import PublicUser, User -from fastapi import FastAPI, HTTPException, status, Request, Response, BackgroundTasks, UploadFile, File +from src.services.users.schemas.users import PublicUser +from fastapi import HTTPException, status, Request from uuid import uuid4 from datetime import datetime diff --git a/src/services/courses/activities/pdf.py b/src/services/courses/activities/pdf.py index 6c4cbccd..57d2380c 100644 --- a/src/services/courses/activities/pdf.py +++ b/src/services/courses/activities/pdf.py @@ -1,4 +1,3 @@ -from pydantic import BaseModel from src.security.security import verify_user_rights_with_roles from src.services.courses.activities.uploads.pdfs import upload_pdf from src.services.users.users import PublicUser diff --git a/src/services/courses/activities/uploads/pdfs.py b/src/services/courses/activities/uploads/pdfs.py index 1a912df9..71bc5990 100644 --- a/src/services/courses/activities/uploads/pdfs.py +++ b/src/services/courses/activities/uploads/pdfs.py @@ -17,7 +17,7 @@ async def upload_pdf(pdf_file, activity_id): f.write(contents) f.close() - except Exception as e: + except Exception: return {"message": "There was an error uploading the file"} finally: pdf_file.file.close() diff --git a/src/services/courses/activities/uploads/videos.py b/src/services/courses/activities/uploads/videos.py index a95808ba..32ac44e1 100644 --- a/src/services/courses/activities/uploads/videos.py +++ b/src/services/courses/activities/uploads/videos.py @@ -17,7 +17,7 @@ async def upload_video(video_file, activity_id): f.write(contents) f.close() - except Exception as e: + except Exception: return {"message": "There was an error uploading the file"} finally: video_file.file.close() diff --git a/src/services/courses/activities/video.py b/src/services/courses/activities/video.py index 4d2fbabe..4abdceac 100644 --- a/src/services/courses/activities/video.py +++ b/src/services/courses/activities/video.py @@ -1,4 +1,3 @@ -from pydantic import BaseModel from src.security.security import verify_user_rights_with_roles from src.services.courses.activities.uploads.videos import upload_video from src.services.users.users import PublicUser diff --git a/src/services/courses/chapters.py b/src/services/courses/chapters.py index 94cdd195..1548533e 100644 --- a/src/services/courses/chapters.py +++ b/src/services/courses/chapters.py @@ -1,15 +1,13 @@ from datetime import datetime -import json -import pprint from typing import List from uuid import uuid4 from pydantic import BaseModel from src.security.auth import non_public_endpoint -from src.services.courses.courses import Course, CourseInDB -from src.services.courses.activities.activities import Activity, ActivityInDB +from src.services.courses.courses import Course +from src.services.courses.activities.activities import ActivityInDB from src.security.security import verify_user_rights_with_roles from src.services.users.users import PublicUser -from fastapi import HTTPException, status, Request, Response, BackgroundTasks, UploadFile, File +from fastapi import HTTPException, status, Request class CourseChapter(BaseModel): @@ -115,7 +113,7 @@ async def delete_coursechapter(request: Request, coursechapter_id: str, current await verify_rights(request, course["course_id"], current_user, "delete") # Remove coursechapter from course - res = await courses.update_one({"course_id": course["course_id"]}, { + await courses.update_one({"course_id": course["course_id"]}, { "$pull": {"chapters": coursechapter_id}}) await courses.update_one({"chapters_content.coursechapter_id": coursechapter_id}, { @@ -200,7 +198,7 @@ async def update_coursechapters_meta(request: Request, course_id: str, coursecha courses = request.app.db["courses"] # update chapters in course - courseInDB = await courses.update_one({"course_id": course_id}, { + await courses.update_one({"course_id": course_id}, { "$set": {"chapters": coursechapters_metadata.chapterOrder}}) if coursechapters_metadata.chapters is not None: @@ -230,7 +228,7 @@ async def verify_rights(request: Request, course_id: str, current_user: PublicUs if not course: raise HTTPException( - status_code=status.HTTP_409_CONFLICT, detail=f"Course does not exist") + status_code=status.HTTP_409_CONFLICT, detail="Course does not exist") hasRoleRights = await verify_user_rights_with_roles(request, action, current_user.user_id, course_id, course["org_id"]) isAuthor = current_user.user_id in course["authors"] diff --git a/src/services/courses/collections.py b/src/services/courses/collections.py index 817f5e54..3b5ed279 100644 --- a/src/services/courses/collections.py +++ b/src/services/courses/collections.py @@ -1,11 +1,9 @@ -import json from typing import List from uuid import uuid4 from pydantic import BaseModel -from src.services.users.users import PublicUser, User +from src.services.users.users import PublicUser from src.security.security import * -from fastapi import FastAPI, HTTPException, status, Request, Response, BackgroundTasks -from datetime import datetime +from fastapi import HTTPException, status, Request #### Classes #################################################### diff --git a/src/services/courses/courses.py b/src/services/courses/courses.py index f2a8a3fa..06c20ef3 100644 --- a/src/services/courses/courses.py +++ b/src/services/courses/courses.py @@ -271,7 +271,7 @@ async def get_courses_orgslug(request: Request, page: int = 1, limit: int = 10, if not org: raise HTTPException( - status_code=status.HTTP_409_CONFLICT, detail=f"Organization does not exist") + status_code=status.HTTP_409_CONFLICT, detail="Organization does not exist") # get all courses from database all_courses = courses.find({"org_id": org['org_id']}).sort( @@ -288,12 +288,12 @@ async def verify_rights(request: Request, course_id: str, current_user: PublicUs course = await courses.find_one({"course_id": course_id}) - if current_user.user_id == "anonymous" and course["public"] == True and action == "read": + if current_user.user_id == "anonymous" and course["public"] is True and action == "read": return True if not course: raise HTTPException( - status_code=status.HTTP_409_CONFLICT, detail=f"Course/CourseChapter does not exist") + status_code=status.HTTP_409_CONFLICT, detail="Course/CourseChapter does not exist") hasRoleRights = await verify_user_rights_with_roles(request, action, current_user.user_id, course_id, course["org_id"]) isAuthor = current_user.user_id in course["authors"] diff --git a/src/services/courses/thumbnails.py b/src/services/courses/thumbnails.py index 3cde41f4..41da70d7 100644 --- a/src/services/courses/thumbnails.py +++ b/src/services/courses/thumbnails.py @@ -11,7 +11,7 @@ async def upload_thumbnail(thumbnail_file, name_in_disk): f.write(contents) f.close() - except Exception as e: + except Exception: return {"message": "There was an error uploading the file"} finally: thumbnail_file.file.close() \ No newline at end of file diff --git a/src/services/mocks/initial.py b/src/services/mocks/initial.py index f20e529e..8f76684a 100644 --- a/src/services/mocks/initial.py +++ b/src/services/mocks/initial.py @@ -1,22 +1,17 @@ import os import requests from datetime import datetime -from fileinput import filename from pprint import pprint from uuid import uuid4 -from fastapi import File, UploadFile, Request +from fastapi import Request from src.security.security import security_hash_password from src.services.courses.chapters import CourseChapter, create_coursechapter from src.services.courses.activities.activities import Activity, create_activity -from src.services.courses.thumbnails import upload_thumbnail -from src.services.users.schemas.users import UserRolesInOrganization -from src.services.users.users import PublicUser, User, UserInDB, UserWithPassword +from src.services.users.users import PublicUser, UserInDB -from src.services.orgs import OrganizationInDB, Organization, create_org +from src.services.orgs import Organization, create_org from src.services.roles.schemas.roles import Permission, Elements, RoleInDB -from src.services.users.users import create_user -from src.services.courses.courses import Course, CourseInDB, create_course -from src.services.roles.roles import Role, create_role +from src.services.courses.courses import CourseInDB from faker import Faker @@ -39,12 +34,12 @@ async def create_initial_data(request: Request): update_date=str(datetime.now()), roles= [], orgs=[], - username=f"admin", - email=f"admin@admin.admin", + username="admin", + email="admin@admin.admin", password=str(await security_hash_password("admin")), ) - db_admin_user = await database_users.insert_one(admin_user.dict()) + await database_users.insert_one(admin_user.dict()) # find admin user users = request.app.db["users"] @@ -188,9 +183,9 @@ async def create_initial_data(request: Request): "https://source.unsplash.com/random/800x600/?img=1") # check if folder exists and create it if not - if not os.path.exists(f"content/uploads/img"): + if not os.path.exists("content/uploads/img"): - os.makedirs(f"content/uploads/img") + os.makedirs("content/uploads/img") with open(f"content/uploads/img/{name_in_disk}", "wb") as f: f.write(image.content) @@ -198,7 +193,7 @@ async def create_initial_data(request: Request): course.thumbnail = name_in_disk course = CourseInDB(**course.dict()) - course_in_db = await courses.insert_one(course.dict()) + await courses.insert_one(course.dict()) # create chapters for i in range(0, 5): diff --git a/src/services/orgs.py b/src/services/orgs.py index 21ab93ab..a213b2d0 100644 --- a/src/services/orgs.py +++ b/src/services/orgs.py @@ -1,12 +1,10 @@ import json -from typing import List from uuid import uuid4 from pydantic import BaseModel from src.services.users.schemas.users import UserOrganization -from src.services.users.users import PublicUser, User +from src.services.users.users import PublicUser from src.security.security import * -from fastapi import FastAPI, HTTPException, status, Request, Response, BackgroundTasks -from datetime import datetime +from fastapi import HTTPException, status, Request #### Classes #################################################### @@ -109,8 +107,8 @@ async def update_org(request: Request, org_object: Organization, org_id: str, cu org = await orgs.find_one({"org_id": org_id}) if org: - owners = org["owners"] - admins = org["admins"] + org["owners"] + org["admins"] else: raise HTTPException( @@ -153,7 +151,7 @@ async def get_orgs_by_user(request: Request, user_id: str, page: int = 1, limit: orgs = request.app.db["organizations"] user = request.app.db["users"] - if user_id is "anonymous": + if user_id == "anonymous": # raise error raise HTTPException( diff --git a/src/services/roles/roles.py b/src/services/roles/roles.py index 3893ff54..51b1e01b 100644 --- a/src/services/roles/roles.py +++ b/src/services/roles/roles.py @@ -1,9 +1,7 @@ -import json -from typing import List, Literal +from typing import Literal from uuid import uuid4 -from pydantic import BaseModel from src.services.roles.schemas.roles import Role, RoleInDB -from src.services.users.schemas.users import PublicUser, User +from src.services.users.schemas.users import PublicUser from src.security.security import * from fastapi import HTTPException, status, Request from datetime import datetime @@ -63,7 +61,7 @@ async def delete_role(request: Request, role_id: str, current_user: PublicUser): #### Security #################################################### async def verify_user_permissions_on_roles(request: Request, current_user: PublicUser, action: Literal["create", "read", "update", "delete"], role_id: str | None): - users = request.app.db["users"] + request.app.db["users"] roles = request.app.db["roles"] # If current user is not authenticated diff --git a/src/services/roles/schemas/roles.py b/src/services/roles/schemas/roles.py index 929b8c95..18b0c34c 100644 --- a/src/services/roles/schemas/roles.py +++ b/src/services/roles/schemas/roles.py @@ -1,4 +1,4 @@ -from typing import List, Literal +from typing import Literal from pydantic import BaseModel diff --git a/src/services/trail.py b/src/services/trail.py index 2b49ad5b..956ec4e8 100644 --- a/src/services/trail.py +++ b/src/services/trail.py @@ -1,6 +1,4 @@ -from cmath import log from datetime import datetime -import json from typing import List, Literal, Optional from uuid import uuid4 from fastapi import HTTPException, Request, status diff --git a/src/services/users/users.py b/src/services/users/users.py index 0f730a3e..ef57bc56 100644 --- a/src/services/users/users.py +++ b/src/services/users/users.py @@ -2,7 +2,6 @@ from datetime import datetime from typing import Literal from uuid import uuid4 from fastapi import HTTPException, Request, status -from src.services.roles.schemas.roles import Role from src.security.security import security_hash_password, security_verify_password from src.services.users.schemas.users import PasswordChangeForm, PublicUser, User, UserOrganization, UserRolesInOrganization, UserWithPassword, UserInDB @@ -195,7 +194,7 @@ async def get_user_by_userid(request: Request, user_id: str): async def get_profile_metadata(request: Request, user): users = request.app.db["users"] - roles = request.app.db["roles"] + request.app.db["roles"] user = await users.find_one({"user_id": user['user_id']})