Skip to content

Commit

Permalink
blacked
Browse files Browse the repository at this point in the history
  • Loading branch information
Roshan Karim committed Sep 12, 2022
1 parent 0726aeb commit 0480ee9
Show file tree
Hide file tree
Showing 23 changed files with 342 additions and 191 deletions.
6 changes: 2 additions & 4 deletions alembic/env.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ def run_migrations_offline():
target_metadata=target_metadata,
literal_binds=True,
dialect_opts={"paramstyle": "named"},
include_schemas=True
include_schemas=True,
)

with context.begin_transaction():
Expand All @@ -66,9 +66,7 @@ def run_migrations_online():
)

with connectable.connect() as connection:
context.configure(
connection=connection, target_metadata=target_metadata
)
context.configure(connection=connection, target_metadata=target_metadata)

with context.begin_transaction():
context.run_migrations()
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Exports the module to the python environment
from setuptools import setup, find_packages

setup(name="src", version = '1.0', packages=find_packages())
setup(name="src", version="1.0", packages=find_packages())
1 change: 1 addition & 0 deletions src/api/accounts.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ def verifyAdmin(

utils.raiseError(401, "Unauthorized admin credentials", structs.ErrorType.AUTH)


def verifyRefreshToken(creds: str = Security(credsHeader)) -> str:
cid = validateRefreshToken(creds)
return cid
Expand Down
6 changes: 4 additions & 2 deletions src/api/v1/routers/badges.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ def getAbsences(db: Session = Depends(accounts.getDBSession)) -> schemas.Absence


@router.get("/classes/count/", response_model=schemas.ClassCountBadge)
def getNumberOfClasses(db: Session = Depends(accounts.getDBSession)) -> schemas.ClassCountBadge:
def getNumberOfClasses(
db: Session = Depends(accounts.getDBSession),
) -> schemas.ClassCountBadge:
classes = crud.getClassesCount(db)
return schemas.ClassCountBadge(message=str(classes))
return schemas.ClassCountBadge(message=str(classes))
4 changes: 3 additions & 1 deletion src/api/v1/routers/teachers.py
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,9 @@ def getAbsenceList(
list: List[models.Absence] = crud.getAbsenceList(db, date, school)
returnAbsences: List[schemas.AbsenceReturn] = [
schemas.AbsenceReturn(
length=absence.length, teacher=prettifyTeacher(absence.teacher), note=absence.note
length=absence.length,
teacher=prettifyTeacher(absence.teacher),
note=absence.note,
)
for absence in list
]
Expand Down
6 changes: 5 additions & 1 deletion src/api/v2/routers/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,7 @@ def removeSpecialDay(
result = crud.removeSpecialDay(db, date, school)
return schemas.Bool(success=True)


@router.get("/teacher/", response_model=schemas.TeacherReturn, status_code=201)
def getTeacher(
first: Optional[str] = None,
Expand All @@ -161,7 +162,10 @@ def getTeacher(
db: Session = Depends(accounts.getDBSession),
creds: schemas.SessionReturn = Depends(accounts.verifyAdmin),
):
return crud.getTeacher(db, schemas.TeacherReturn(first=first, last=last, school=school))
return crud.getTeacher(
db, schemas.TeacherReturn(first=first, last=last, school=school)
)


@router.post("/teacher/alias", response_model=schemas.Bool, status_code=201)
def addTeacherAlias(
Expand Down
6 changes: 4 additions & 2 deletions src/api/v2/routers/badges.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ def getAbsences(db: Session = Depends(accounts.getDBSession)) -> schemas.Absence


@router.get("/classes/count/", response_model=schemas.ClassCountBadge)
def getNumberOfClasses(db: Session = Depends(accounts.getDBSession)) -> schemas.ClassCountBadge:
def getNumberOfClasses(
db: Session = Depends(accounts.getDBSession),
) -> schemas.ClassCountBadge:
classes = crud.getClassesCount(db)
return schemas.ClassCountBadge(message=str(classes))
return schemas.ClassCountBadge(message=str(classes))
8 changes: 4 additions & 4 deletions src/api/v2/routers/info.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,21 +23,21 @@ def getSchedule(
):
if date is None:
date = datetime.date.today()

specialDayInDB = crud.getSpecialDay(db, date, school)
if specialDayInDB is not None:
return schemas.SpecialDay(
date=date,
name=specialDayInDB.name,
schedule=specialDayInDB.schedule,
note=specialDayInDB.note,
school=school
school=school,
)

return schemas.NormalDay(
date=date,
date=date,
schedule=structs.SchoolBlocksOnDayWithTimes()[date.weekday()],
school=school
school=school,
)


Expand Down
4 changes: 3 additions & 1 deletion src/api/v2/routers/teachers.py
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,9 @@ def getAbsenceList(
list: List[models.Absence] = crud.getAbsenceList(db, date, school)
returnAbsences: List[schemas.AbsenceReturn] = [
schemas.AbsenceReturn(
length=absence.length, teacher=prettifyTeacher(absence.teacher), note=absence.note
length=absence.length,
teacher=prettifyTeacher(absence.teacher),
note=absence.note,
)
for absence in list
]
Expand Down
21 changes: 13 additions & 8 deletions src/dataTypes/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@
Boolean,
Enum,
PickleType,
Text,
Text,
DateTime,
Integer,
PrimaryKeyConstraint
PrimaryKeyConstraint,
)
from sqlalchemy.orm import relationship, validates

Expand Down Expand Up @@ -40,6 +40,7 @@ class User(Base):
def __str__(self) -> str:
return f"{self.first} {self.last} ({self.school} {self.grade})"


class Teacher(Base):
__tablename__ = "teachers"
tid = Column(String(8), primary_key=True)
Expand All @@ -53,6 +54,7 @@ class Teacher(Base):
def __str__(self) -> str:
return f"{self.first} {self.last} ({self.school})"


class UserSession(Base):
__tablename__ = "sessions"
sid = Column(String(16), primary_key=True)
Expand All @@ -78,7 +80,8 @@ class Class(Base):

def __str__(self) -> str:
return f"{self.block} {self.teacher} {self.user}"



class Absence(Base):
__tablename__ = "absences"
tid = Column(
Expand Down Expand Up @@ -115,7 +118,7 @@ def validate_schedule_type(self, key, value):
if type(value) != structs.ScheduleWithTimes:
raise ValueError("Schedule must be of type ScheduleWithTimes")
return value

def __str__(self) -> str:
return f"{self.name} ({self.date}):\n\t{self.schedule}\n\tNote: {self.note}"

Expand All @@ -126,21 +129,23 @@ class Aliases(Base):
first = Column(String(255), primary_key=True)
last = Column(String(255), primary_key=True)
tid = Column(String(36), ForeignKey(Teacher.tid, ondelete="CASCADE"))

def __str__(self) -> str:
return f"{self.first} {self.last} ({self.tid})"

# teacher = relationship("Teacher", back_populates="aliases")


class Announcements(Base):
__tablename__ = "announcements"
anid = Column(String(8), primary_key=True)
title = Column(String(255))
content = Column(Text) # Markdown variably sized string
content = Column(Text) # Markdown variably sized string
date = Column(Date)
school = Column(Enum(structs.SchoolName), nullable=True)
lastUpdate = Column(DateTime, nullable=True)

def __str__(self) -> str:
lines="---------------------\n"
lines = "---------------------\n"
header = f"Announcement:\n\tID: {self.anid}\n\tTitle: {self.title}\n\tDate: {self.date}\n\tSchool: {self.school}\n\tLast Update: {self.lastUpdate}\n\tContent:"
return lines + header + "\n\t" + self.content + "\n" + lines
return lines + header + "\n\t" + self.content + "\n" + lines
24 changes: 17 additions & 7 deletions src/dataTypes/schemas.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ class TeacherBase(BaseModel):

def __repr__(self) -> str:
return f"{self.first} {self.last}"

def __str__(self) -> str:
return self.__repr__()

Expand Down Expand Up @@ -82,6 +82,7 @@ class Config:
def __str__(self) -> str:
return f"A: {self.A}\nADV: {self.ADVISORY}\nB: {self.B}\nC: {self.C}\nD: {self.D}\nE: {self.E}\nF: {self.F}\nG: {self.G}\nEXTRA: {self.EXTRA}"


class ScheduleReturn(BaseModel):
A: Optional[List[TeacherReturn]] = None
ADVISORY: Optional[List[TeacherReturn]] = None
Expand Down Expand Up @@ -202,7 +203,7 @@ class UserInfoReturn(UserInfoBase):
schedule: Optional[ScheduleReturn] = None
profile: Optional[UserProfile] = None
onboarded: Optional[bool] = None


class SessionCredentials(BaseModel):
token: Optional[str] = None
Expand Down Expand Up @@ -274,6 +275,7 @@ class Analytics(BaseModel):
class Bool(BaseModel):
success: bool


class Badges(BaseModel):
schemaVersion: int = 1
label: str
Expand Down Expand Up @@ -351,16 +353,16 @@ class Config:
],
"note": "Happy New Years!",
"special": True,
"school": "NSHS"
"school": "NSHS",
}
}

@validator("date")
def checkDate(cls, v):
if not isinstance(v, date):
raise ValueError("Invalid date.")
return v


class SpecialDay(SchoolDay):
special = True
Expand All @@ -371,6 +373,7 @@ class NormalDay(SchoolDay):
note = "No special schedule"
special = False


class AnnouncementBase(BaseModel):
title: str
content: str
Expand All @@ -380,36 +383,43 @@ class AnnouncementBase(BaseModel):
class Config:
orm_mode = True


class AnnouncementCreate(AnnouncementBase):
anid: str

class Config:
orm_mode = True

class AnnouncementReturn(AnnouncementCreate):

class AnnouncementReturn(AnnouncementCreate):
class Config:
orm_mode = True


class AnnouncementUpdate(AnnouncementCreate):
updateTime: datetime

class Config:
orm_mode = True


class TeacherAliasBase(BaseModel):
first: str
last: str

class Config:
orm_mode = True


class TeacherAliasCreate(TeacherAliasBase):
tid: str

class Config:
orm_mode = True


class TeacherAliasReturn(TeacherAliasCreate):
alid: str

class Config:
orm_mode = True
orm_mode = True
2 changes: 1 addition & 1 deletion src/dataTypes/structs.py
Original file line number Diff line number Diff line change
Expand Up @@ -364,7 +364,7 @@ def __modify_schema__(cls, field_schema, field: Optional[ModelField]): # type:
field_schema["items"] = schema_of(BlockWithTimes)
# field_schema['examples'] = [BlockWithTimes.schema_json()['properties']['examples']]
# field_schema['examples'] = schema_of(BlockWithTimes)['examples']

# @staticmethod
# def parse_json(json_data: ) -> "ScheduleWithTimes":
# if json_data is None:
Expand Down
Loading

0 comments on commit 0480ee9

Please sign in to comment.