Beispiel #1
0
    def ingest_course(self):
        """Create course json from info in model map.

        Returns:
            dict: course
        """
        course = {
            'kind':
            'course',
            'school': {
                'code':
                self.school,
                'subdivisions': [{
                    'code': self._get('school_subdivision_code'),
                    'name': self._get('school_subdivision_name')
                }]
            },
            'code':
            self._get('course_code', 'code', 'course'),
            'name':
            titlize(self._get('name', 'course_name')),
            'department':
            self._resolve_department(),
            'credits':
            safe_cast(self._get('credits', 'num_credits'), float, default=0.),
            'prerequisites':
            make_list(self._get('prerequisites', 'prereqs')),
            'corequisites':
            make_list(self._get('corequisites', 'coreqs')),
            'exclusions':
            make_list(self._get('exclusions')),
            'areas':
            make_list(self._get('areas')),
            'level':
            self._get('level'),
            'cores':
            make_list(self._get('cores')),
            'geneds':
            make_list(self._get('geneds')),
            'sections':
            self._get('sections'),
            'homepage':
            self._get('homepage', 'website'),
            'same_as':
            make_list(self._get('same_as')),
            'description':
            self._get('description', 'descr'),
            # 'description': extract_info_from_text(
            #     self._get('description', 'descr'),
            #     inject=self
            # ),
        }

        course = clean(course)
        self._validate_and_log(course)
        if 'department' in course:
            self.tracker.department = course['department']
        return course
Beispiel #2
0
 def _resolve_department(self):
     department = self._get('department')
     if ('department' not in self
             or ('department_name' in self or 'department_code' in self
                 or 'dept_name' in self or 'dept_code' in self)):
         # if not isinstance(self._get('department', 'dept'), dict):
         department = {
             'name': titlize(self._get('department_name', 'dept_name')),
             'code': self._get('department_code', 'dept_code')
         }
     return department
Beispiel #3
0
 def _resolve_department(self):
     department = self._get("department")
     if "department" not in self or ("department_name" in self
                                     or "department_code" in self
                                     or "dept_name" in self
                                     or "dept_code" in self):
         # if not isinstance(self._get('department', 'dept'), dict):
         department = {
             "name": titlize(self._get("department_name", "dept_name")),
             "code": self._get("department_code", "dept_code"),
         }
     return department
Beispiel #4
0
 def _resolve_department(self):
     department = self._get('department')
     if ('department' not in self or
             ('department_name' in self or
                 'department_code' in self or
                 'dept_name' in self or
                 'dept_code' in self)):
         # if not isinstance(self._get('department', 'dept'), dict):
         department = {
             'name': titlize(self._get('department_name', 'dept_name')),
             'code': self._get('department_code', 'dept_code')
         }
     return department
Beispiel #5
0
    def ingest_course(self):
        """Create course json from info in model map.

        Returns:
            dict: course
        """
        course = {
            'kind': 'course',
            'school': {
                'code': self.school,
                'subdivisions': [
                    {
                        'code': self._get('school_subdivision_code'),
                        'name': self._get('school_subdivision_name')
                    }
                ]
            },
            'code': self._get('course_code', 'code', 'course'),
            'name': titlize(self._get('name', 'course_name')),
            'department': self._resolve_department(),
            'credits': safe_cast(self._get('credits', 'num_credits'), float, default=0.),
            'prerequisites': make_list(self._get('prerequisites', 'prereqs')),
            'corequisites': make_list(self._get('corequisites', 'coreqs')),
            'exclusions': make_list(self._get('exclusions')),
            'areas': make_list(self._get('areas')),
            'level': self._get('level'),
            'cores': make_list(self._get('cores')),
            'geneds': make_list(self._get('geneds')),
            'sections': self._get('sections'),
            'homepage': self._get('homepage', 'website'),
            'same_as': make_list(self._get('same_as')),
            'description': self._get('description', 'descr'),
            # 'description': extract_info_from_text(
            #     self._get('description', 'descr'),
            #     inject=self
            # ),
        }

        course = clean(course)
        self._validate_and_log(course)
        if 'department' in course:
            self.tracker.department = course['department']
        return course
Beispiel #6
0
    def ingest_section(self, course):
        """Create section json object from info in model map.

        Args:
            course (dict): validated course object

        Returns:
            dict: section
        """
        section = {
            "kind": "section",
            "course": {
                "code": course.get("code")
            },
            "code": self._get("section_code", "section", "meeting_section"),
            "name": titlize(self._get("section_name")),
            "term": self._get("term", "semester"),
            "year": str(self._get("year")),
            "instructors": self._resolve_instructors(),
            "capacity": safe_cast(self._get("capacity", "size"), int),
            "enrollment": safe_cast(self._get("enrollment", "enrolment"), int),
            "waitlist": safe_cast(self._get("waitlist"), int),
            "waitlist_size": safe_cast(self._get("waitlist_size"), int),
            "remaining_seats": safe_cast(self._get("remaining_seats"), int),
            "type": self._get("type", "section_type"),
            "fees": safe_cast(self._get("fees", "fee", "cost"), float),
            "final_exam": self._get("final_exam"),
            "textbooks": self._get("textbooks"),
            "meetings": self._get("offerings", "meetings"),
            "course_section_id": safe_cast(self._get("course_section_id"),
                                           int),
        }

        section = clean(section)
        self._validate_and_log(section)
        self.tracker.year = section["year"]
        self.tracker.term = section["term"]
        return section
Beispiel #7
0
    def ingest_section(self, course):
        """Create section json object from info in model map.

        Args:
            course (dict): validated course object

        Returns:
            dict: section
        """
        section = {
            'kind': 'section',
            'course': {
                'code': course.get('code')
            },
            'code': self._get('section_code', 'section',
                              'meeting_section'),
            'name': titlize(self._get('section_name')),
            'term': self._get('term', 'semester'),
            'year': str(self._get('year')),
            'instructors': self._resolve_instructors(),
            'capacity': safe_cast(self._get('capacity', 'size'), int),
            'enrollment': safe_cast(self._get('enrollment', 'enrolment'), int),
            'waitlist': safe_cast(self._get('waitlist'), int),
            'waitlist_size': safe_cast(self._get('waitlist_size'), int),
            'remaining_seats': safe_cast(self._get('remaining_seats'), int),
            'type': self._get('type', 'section_type'),
            'fees': safe_cast(self._get('fees', 'fee', 'cost'), float),
            'final_exam': self._get('final_exam'),
            'textbooks': self._get('textbooks'),
            'meetings': self._get('offerings', 'meetings')
        }

        section = clean(section)
        self._validate_and_log(section)
        self.tracker.year = section['year']
        self.tracker.term = section['term']
        return section
Beispiel #8
0
 def test_titlize(self):
     self.assertEqual('Biology of Canines II',
                      titlize('BIOLOGY OF CANINES II'))
     self.assertEqual('After the Age of Extinction',
                      titlize('AFTer THE AGE oF extinction'))
Beispiel #9
0
 def test_titlize(self):
     self.assertEqual('Biology of Canines II',
                      titlize('BIOLOGY OF CANINES II'))
     self.assertEqual('After the Age of Extinction',
                      titlize('AFTer THE AGE oF extinction'))
Beispiel #10
0
 def test_titlize(self):
     self.assertEqual("Biology of Canines II",
                      titlize("BIOLOGY OF CANINES II"))
     self.assertEqual("After the Age of Extinction",
                      titlize("AFTer THE AGE oF extinction"))
Beispiel #11
0
    def ingest_course(self):
        """Create course json from info in model map.

        Returns:
            dict: course
        """
        course = {
            "kind":
            "course",
            "school": {
                "code":
                self.school,
                "subdivisions": [{
                    "code": self._get("school_subdivision_code"),
                    "name": self._get("school_subdivision_name"),
                }],
            },
            "code":
            self._get("course_code", "code", "course"),
            "name":
            titlize(self._get("name", "course_name")),
            "department":
            self._resolve_department(),
            "credits":
            safe_cast(self._get("credits", "num_credits"), float, default=0.0),
            "prerequisites":
            make_list(self._get("prerequisites", "prereqs")),
            "corequisites":
            make_list(self._get("corequisites", "coreqs")),
            "exclusions":
            make_list(self._get("exclusions")),
            "areas":
            make_list(self._get("areas")),
            "level":
            self._get("level"),
            "cores":
            make_list(self._get("cores")),
            "geneds":
            make_list(self._get("geneds")),
            "sections":
            self._get("sections"),
            "homepage":
            self._get("homepage", "website"),
            "same_as":
            make_list(self._get("same_as")),
            "description":
            self._get("description", "descr"),
            "pos":
            make_list(self._get("pos")),
            "writing_intensive":
            self._get("writing_intensive"),
            "sub_school":
            self._get("sub_school"),
            # 'description': extract_info_from_text(
            #     self._get('description', 'descr'),
            #     inject=self
            # ),
        }

        course = clean(course)
        self._validate_and_log(course)
        if "department" in course:
            self.tracker.department = course["department"]
        return course