Skip to content

TheLime1/esprit-py

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

esprit-py

PyPI - Version PyPI Downloads PyPI Downloads

Note

Please note that this library is not an official API provided by Esprit and is intended for educational and personal use only.

Features

  • Fast & Lightweight: 5-10x faster than previous versions (no Selenium/browser required)
  • Get your exact timetable pdf not 300 pages pdf
  • Grades:
    • Regular session grades (released one by one during semester)
    • Principal session final results (end of year verdict)
    • Rattrapage (retake) session grades
    • Rattrapage session final results
    • Calculate your total semester average
  • Get your absences
  • Get your credits
  • Get your language proficiency levels (French & English)
  • Get your ranking across past academic years
  • New: Logout functionality for proper session management

Installation

pip install --upgrade esprit-py

Examples

Get regular grades and calculate average:

from esprit import Esprit

# Replace with your actual ID and password
id = 'ID'
password = 'PASSWORD'

grades = None

# Keep trying to get grades until it is successful cuz esprit use garabage servers
while grades is None:
    try:
        # Create an Esprit object
        esprit = Esprit()

        # Attempt to log in
        esprit.login(id, password)

        # Get regular grades (released one by one during semester)
        grades = esprit.get_regular_grades()

    except Exception as e:
        print(f"An error occurred: {e}. Retrying...")

if grades is not None:
    for grade in grades:
        print(grade)
    
    # Calculate average
    esprit.calculate_average(grades)
else:
    print("Failed to get grades.")

# Logout when done
esprit.logout()

Get all grade-related data:

from esprit import Esprit

esprit = Esprit()
id = 'ID'
password = 'PASSWORD'

if esprit.login(id, password):
    # Regular session grades (released during semester)
    regular_grades = esprit.get_regular_grades()
    if regular_grades:
        print("Regular Grades:", regular_grades)
    
    # Principal session final result (end of year)
    principal_result = esprit.get_principal_result()
    if principal_result:
        print("Principal Result:", principal_result)
    
    # Rattrapage session grades (retakes)
    rattrapage_grades = esprit.get_rattrapage_grades()
    if rattrapage_grades:
        print("Rattrapage Grades:", rattrapage_grades)
    
    # Rattrapage session final result
    rattrapage_result = esprit.get_rattrapage_result()
    if rattrapage_result:
        print("Rattrapage Result:", rattrapage_result)
    
    # Language proficiency levels
    language_levels = esprit.get_language_levels()
    if language_levels:
        print("Language Levels:", language_levels)
    
    # Academic ranking across years
    ranking = esprit.get_ranking()
    if ranking:
        print("Ranking:", ranking)
    
    esprit.logout()

Get absences:

from esprit import Esprit

# Create an Esprit object
esprit = Esprit()

# Replace with your actual ID and password
id = 'ID'
password = 'PASSWORD'

# Attempt to log in
if esprit.login(id, password):
    print("Login successful.")
else:
    print("Login failed.")

# Get absences
absences = esprit.get_absences()
if absences is not None:
    for absence in absences:
        print(absence)
else:
    print("Failed to get absences.")

# Logout when done
esprit.logout()

More examples can be found in the examples folder

About

A Python library for interacting with data from esprit-tn.com

Topics

Resources

License

Stars

Watchers

Forks

Languages