Skip to main content

tvdsb-student-api

A Python library and CLI tool for interacting with the TVDSB Student Portal service

CLI tool usage

usage: python3 -m tvdsb_student [-h] --user USER [--passwd PASSWD]

Dumps all TVDSB Student info to STDOUT as JSON

optional arguments:
  -h, --help       show this help message and exit
  --user USER      TVDSB account username
  --passwd PASSWD  TVDSB account password

This script will dump JSON to STDOUT

Library usage

from typing import List
import tvdsb_student

# TVDSB Network auth
user = "lastfirst123"           # This is your network username
passwd = "mySecurePassw0rD!"    # This is your network password

# Create an auth object
creds = tvdsb_student.LoginCreds(user, passwd)

# Read student attendance records
attendance: List[dict] = tvdsb_student.getAttendanceRecords(creds)

# Read student mark history (all report card info)
marks: List[dict] = tvdsb_student.getMarkHistory(creds)

# Read student payment info
payment: dict = tvdsb_student.getPaymentInfo(creds)

# Read student timetable info
timetable: dict = tvdsb_student.getTimetable(creds)

Data schemas

These are all examples of the datastructures generated from polling my student account

Attendance

[
    {
        "code": "G",                                    // Single char denoting incident type
        "course_code": "SPH3UK-02",                     // Course code
        "date": "3/24/2020",                            // Date of incident
        "period": 2,                                    // School period
        "reason": "School Closure/Services Withdrawal"  // Notes about incident
    }
]

Marks

{
    "2020": [ // Courses are grouped by year
        {
            "comment": ".",         // Teacher's comment. This may be a "." if the class finished during a teachers strike
            "course": "ICS4U1",     // Course code
            "date": "2020.06.26",   // Date the grade was last updated in MarkBook
            "mark": 100,            // Percent grade out of 100
            "skills": {             // Listing of all "skills" on a normal report card. Single char, one of [F, S, G, E]
                "homework": "E",
                "independence": "E",
                "initiative": "E",
                "organization": "E",
                "teamwork": "E"
            }
        }
    ]
}

Payment

{
    "pin": 1234567890 // PIN number used to link a parent's payment account to a student (not my real pin)
}

Timetable

{
    "student_info": {
        'grade': 12,                            // Current grade, or next grade during summer
        'locker_number': null,                  // Locker number or null/None for no locker
        'name': ['Evan', 'Pratten'],            // First and last name
        'ontario_education_number': 123456789,  // OEN (not my real OEN)
        'student_number': 987654321             // TVDSB student number (not my real student number)
    },
    "course_semesters": [ // Contains a sub-array for each semester
        [ // Contains an object for each course
            {
                'course_code': 'ENG4U1-02', // Course code
                'period': 2,                // Period number
                'start_time': 1000,         // Time the period begins (24hr)
                'end_time': 1115            // Time the period ends (24hr)
                
            }
        ]
    ]
}

Metadata

Release files for tvdsb-student-api 1.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tvdsb-student-api 1.7
File Size Uploaded
tvdsb-student-api-1.7.tar.gz 8.8 kB Details

Release files / tvdsb-student-api-1.7.tar.gz

Download URL tvdsb-student-api-1.7.tar.gz
Size 8.8 kB
Tags Source
SHA-256 checksum
How to use checksums
bdf3c4475042f23b773090ffc11e8e51144dff144274fd04c99ed700a32fad39
BLAKE2b-256 checksum
How to use checksums
cc71cfe85974de3a5e8158e155e0293e6986f5aa5db78eaeb1d4b89022073187
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.24.0 CPython/3.6.9

Release history Release notifications | RSS feed

This release

1.7 This release

1 release file

1.6

1 release file

1.5

1 release file

1.1

1 release file

1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page