Skip to content

Commit

Permalink
Style
Browse files Browse the repository at this point in the history
  • Loading branch information
Clue88 committed Dec 14, 2023
1 parent c724e4f commit cd74711
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 12 deletions.
2 changes: 1 addition & 1 deletion backend/degree/management/commands/fetch_degrees.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ class Command(BaseCommand):
Fetches, parses and stores degrees from degreeworks.
Expects PENN_ID, X_AUTH_TOKEN, REFRESH_TOKEN, NAME environment variables are set.
Note: this script deletes any existing degres in the database that overlap with the
degrees fetched from degreeworks.
"""
Expand Down
22 changes: 12 additions & 10 deletions backend/degree/management/commands/load_degrees.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import json
from os import listdir, path
import re
from os import listdir, path
from textwrap import dedent

from django.core.management.base import BaseCommand
Expand All @@ -13,7 +13,8 @@
class Command(BaseCommand):
help = dedent(
"""
Load degrees from degreeworks JSONs named like year-program-degree-major-concentration (without the .json extension).
Load degrees from degreeworks JSONs named like year-program-degree-major-concentration
(without the .json extension).
"""
)

Expand All @@ -23,9 +24,9 @@ def add_arguments(self, parser):
required=True,
help=dedent(
"""
A directory containing JSON files of degrees, assumed to be named like
year-program-degree-major-concentration.json.
"""
A directory containing JSON files of degrees, assumed to be named like
year-program-degree-major-concentration.json.
"""
),
)

Expand All @@ -34,11 +35,12 @@ def handle(self, *args, **kwargs):
assert path.isdir(directory), f"{directory} is not a directory"

for degree_file in listdir(directory):
year, program, degree, major, concentration = re.match(r"(\d+)-(\w+)-(\w+)-(\w+)(?:-(\w+))?", degree_file).groups()
year, program, degree, major, concentration = re.match(
r"(\d+)-(\w+)-(\w+)-(\w+)(?:-(\w+))?", degree_file).groups()
if program not in program_code_to_name:
print(f"Skipping {degree_file} because {program} is not an applicable program code")
continue

with transaction.atomic():
Degree.objects.filter(
program=program,
Expand All @@ -57,10 +59,10 @@ def handle(self, *args, **kwargs):
)

degree.save()

with open(path.join(directory, degree_file)) as f:
degree_json = json.load(f)
degree_json = json.load(f)

rules = parse_degreeworks(degree_json, degree)
print(f"Saving degree {degree}...")
for rule in rules:
Expand Down
4 changes: 3 additions & 1 deletion backend/degree/urls.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
from django.urls import path, include
from django.urls import include, path
from rest_framework import routers

from degree.views import DegreeDetail, DegreeList, UserDegreePlanViewset, rule_courses


router = routers.DefaultRouter()

router.register("degreeplans", UserDegreePlanViewset, basename="degreeplans")
Expand Down
1 change: 1 addition & 0 deletions backend/tests/degree/test_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@ def test_empty_string(self):
with self.assertRaises(LarkError):
q_object_parser.parse("")


class RuleEvaluationTest(TestCase):
def setUp(self):
self.cis_1200, self.cis_1200_001, _, _ = get_or_create_course_and_section(
Expand Down

0 comments on commit cd74711

Please sign in to comment.