예제 #1
0
    # \((?:CC|CL|COM|HON|HU|LA|Q|SS|/)+\)
    tagPattern = re.compile(tagPattern, flags=re.IGNORECASE)

    prerequisitesPattern = re.compile(r'(\(Prerequisites: .+?\))')

    for index, description in enumerate(descriptions):
        try:
            startIndex = re.search(r'\(Requirement[s]?: ', description).start()

            nestingLevel = 0
            for offset, char in enumerate(description[startIndex:]):
                if char == '(':
                    nestingLevel += 1
                elif char == ')':
                    nestingLevel -= 1

                if nestingLevel == 0:
                    endIndex = startIndex + offset + 1
                    break

            description = description[:startIndex] + description[endIndex:]
        except AttributeError:
            pass

        description = tagPattern.sub(repl='', string=description)
        description = prerequisitesPattern.sub(repl='', string=description)

        descriptions[index] = description.strip()

    listToJson(descriptions, 'description')
import json
from typing import List

from util import listToJson

if __name__ == '__main__':
    sections: List[dict] = json.load(open('_pawsSection.raw.json', 'r'))

    campuses = set()
    for section in sections:
        campuses.add(section['location'])

    campuses = list(campuses)

    listToJson(campuses, 'campus')
import json
from typing import List

from util import listToJson

if __name__ == '__main__':
    sections: List[dict] = json.load(open('_pawsSection.raw.json', 'r'))

    notes = set()
    for section in sections:
        for note in section['notes']:
            notes.add(note)

    notes = list(notes)

    listToJson(notes, 'note')
예제 #4
0
import json
from util import listToJson

if __name__ == '__main__':
    courses: list = json.load(open('_pawsCourse.raw.json', 'r'))
    sections: list = json.load(open('_pawsSection.raw.json', 'r'))

    prerequisites = set()

    for course in courses:
        prerequisite: str = course['prerequisite']
        if prerequisite is not None:
            prerequisites.add(prerequisite)

    for section in sections:
        prerequisite: str = section['prerequisite']
        if prerequisite is not None:
            prerequisites.add(prerequisite)

    prerequisites = list(prerequisites)

    listToJson(prerequisites, 'prerequisite')
예제 #5
0
    requirements = set()
    for section in sections:
        description: str = section['title'][1]

        try:
            # Search for header
            startIndex = re.search(r'\(Requirement[s]?: ',
                                   description).end()  # AttributeError

            # We could simply search for ')'
            # But there could be nesting prentices, so a nesting counter is required
            # For example: 'Background knowledge in Fortran, C/C++ or other programming language (other than MATLAB or similar), and partial differential equations.'
            nestingLevel = 1
            for offset, char in enumerate(description[startIndex:]):
                if char == '(':
                    nestingLevel += 1
                elif char == ')':
                    nestingLevel -= 1

                if nestingLevel == 0:
                    endIndex = startIndex + offset
                    break

            requirements.add(description[startIndex:endIndex])
        except AttributeError:  # 'NoneType' object has no attribute 'end'
            pass

    requirements = list(requirements)

    listToJson(requirements, 'requirement')
import json
from typing import List

from util import listToJson

if __name__ == '__main__':
    sections: List[dict] = json.load(open('_pawsSection.raw.json', 'r'))

    titles = set()
    for section in sections:
        titles.add(section['title'][0])

    titles = list(titles)

    listToJson(titles, 'title')
import json

from util import listToJson

if __name__ == '__main__':
    courses: list = json.load(open('_pawsCourse.raw.json', 'r'))

    scheduleTypes = set()
    for course in courses:
        scheduleTypes.update(course['scheduleTypes'])

    scheduleTypes = list(scheduleTypes)

    listToJson(scheduleTypes, 'scheduleType')
예제 #8
0
import json

from util import listToJson

if __name__ == '__main__':
    courses: list = json.load(open('_pawsCourse.raw.json', 'r'))

    levels = set()
    for course in courses:
        level: str = course['level']
        if level is not None:
            levels.add(level)

    levels = list(levels)

    listToJson(levels, 'level')
import json

from util import listToJson

if __name__ == '__main__':
    courses: list = json.load(open('_pawsCourse.raw.json', 'r'))
    sections: list = json.load(open('_pawsSection.raw.json', 'r'))

    restrictions = set()

    for course in courses:
        restrictions.update(course['restrictions'])

    for section in sections:
        restrictions.update(section['restrictions'])

    restrictions = list(restrictions)

    listToJson(restrictions, 'restriction')
import json
from util import listToJson

if __name__ == '__main__':
    courses: list = json.load(open('_pawsCourse.raw.json', 'r'))

    courseAttributes = set()
    for course in courses:
        courseAttributes.update(course['courseAttributes'])

    courseAttributes = list(courseAttributes)

    listToJson(courseAttributes, 'courseAttribute')
import json
from typing import List

from util import listToJson

if __name__ == '__main__':
    sections: List[dict] = json.load(open('_pawsSection.raw.json', 'r'))

    sessions = set()
    for section in sections:
        session: str = section['session']
        if session is not None:
            sessions.add(session)

    sessions = list(sessions)

    listToJson(sessions, 'session')