Add formatting tools

This commit is contained in:
lvrossem
2023-03-28 14:19:42 -06:00
parent 5eba17f793
commit 6e39852f49
10 changed files with 43 additions and 28 deletions

3
format.sh Normal file
View File

@@ -0,0 +1,3 @@
flake8 src/*
black src/*
isort src/*

View File

@@ -4,3 +4,7 @@ sqlalchemy
uvicorn[standard]
psycopg2-binary
fastapi_utils
flake8
black
isort
interrogate

View File

@@ -1,7 +1,9 @@
from sqlalchemy.orm import Session
from models import User, HighScore, CourseProgress
import schemas, models
import models
import schemas
from models import CourseProgress, HighScore, User
def get_user(db: Session, user_id: int):
return db.query(User).filter(User.user_id == user_id).first()
@@ -21,4 +23,3 @@ def create_user(db: Session, user: schemas.users.UserCreate):
db.commit()
db.refresh(db_user)
return db_user

View File

@@ -3,7 +3,7 @@ from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
# SQLALCHEMY_DATABASE_URL = "sqlite:///./sql_app.db"
SQLALCHEMY_DATABASE_URL = 'postgresql://admin:WeSign123!@localhost/wesigndev'
SQLALCHEMY_DATABASE_URL = "postgresql://admin:WeSign123!@localhost/wesigndev"
engine = create_engine(SQLALCHEMY_DATABASE_URL)

View File

@@ -1,5 +1,5 @@
from fastapi_utils.enums import StrEnum
from sqlalchemy.types import TypeDecorator, Enum
from sqlalchemy.types import Enum, TypeDecorator
class StrEnumType(TypeDecorator):
@@ -18,14 +18,14 @@ class StrEnumType(TypeDecorator):
if value is None:
return None
return self.enum_class(value)
class MinigameEnum(StrEnum):
SpellingBee = 'SpellingBee'
Hangman = 'Hangman'
JustSign = 'JustSign'
SpellingBee = "SpellingBee"
Hangman = "Hangman"
JustSign = "JustSign"
class CourseEnum(StrEnum):
Fingerspelling = 'Fingerspelling'
Animals = 'Animals'
Fingerspelling = "Fingerspelling"
Animals = "Animals"

View File

@@ -1,15 +1,18 @@
from typing import List
from fastapi import Depends, FastAPI, HTTPException
from sqlalchemy.orm import Session
from models import Base
from database import SessionLocal, engine
from schemas import users
from typing import List
import crud
from database import SessionLocal, engine
from models import Base
from schemas import users
app = FastAPI()
Base.metadata.create_all(bind=engine)
def get_db():
db = SessionLocal()
try:
@@ -25,6 +28,7 @@ async def root():
print("Hello world")
return {"message": "Hello world!"}
@app.post("/users", response_model=users.User)
async def create_user(user: users.UserCreate, db: Session = Depends(get_db)):
db_user = crud.get_user_by_username(db, username=user.username)
@@ -35,8 +39,5 @@ async def create_user(user: users.UserCreate, db: Session = Depends(get_db)):
@app.get("/users", response_model=List[users.User])
async def read_users(db: Session = Depends(get_db)):
print("here")
users = crud.get_users(db)
print(users[0].high_scores)
return users

View File

@@ -1,10 +1,11 @@
from sqlalchemy import Boolean, Column, ForeignKey, Integer, String, Float
from sqlalchemy.orm import relationship
from sqlalchemy.dialects.postgresql import ARRAY
from enum import Enum
from enums import MinigameEnum, CourseEnum, StrEnumType
from sqlalchemy import Boolean, Column, Float, ForeignKey, Integer, String
from sqlalchemy.dialects.postgresql import ARRAY
from sqlalchemy.orm import relationship
from database import Base
from enums import CourseEnum, MinigameEnum, StrEnumType
class User(Base):
@@ -14,9 +15,13 @@ class User(Base):
username = Column(String, unique=True, index=True, nullable=False)
hashed_password = Column(String, nullable=False)
high_scores = relationship("HighScore", back_populates="owner", cascade="all, delete", lazy="dynamic")
course_progress = relationship("CourseProgress", back_populates="owner", cascade="all, delete", lazy="dynamic")
high_scores = relationship(
"HighScore", back_populates="owner", cascade="all, delete", lazy="dynamic"
)
course_progress = relationship(
"CourseProgress", back_populates="owner", cascade="all, delete", lazy="dynamic"
)
# add a new column to store the high_score IDs
high_score_ids = Column(ARRAY(Integer), default=[])
@@ -34,7 +39,6 @@ class HighScore(Base):
owner = relationship("User", back_populates="high_scores")
class CourseProgress(Base):
__tablename__ = "course_progress"
@@ -43,4 +47,3 @@ class CourseProgress(Base):
course = Column(StrEnumType(CourseEnum), nullable=False)
owner_id = Column(Integer, ForeignKey("users.user_id"))
owner = relationship("User", back_populates="course_progress")

View File

@@ -1,4 +1,5 @@
from pydantic import BaseModel
from enums import CourseEnum

View File

@@ -1,4 +1,5 @@
from pydantic import BaseModel
from src.enums import MinigameEnum

View File

@@ -1,6 +1,7 @@
from pydantic import BaseModel
from typing import List
from pydantic import BaseModel
class User(BaseModel):
user_id: int