Skip to main content

esprit-py

PyPI - Version

PyPI Downloads

PyPI Downloads

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()
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

Metadata

Release files for esprit-py 0.7.1

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

Source distribution (sdist)

Source distribution for esprit-py 0.7.1
File Size Uploaded Provenance Actions
esprit_py-0.7.1.tar.gz 16.6 kB Without provenance Details for esprit_py-0.7.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for esprit-py 0.7.1
File Interpreter ABI Platform Actions
esprit_py-0.7.1-py3-none-any.whl Python 3 none any Details for esprit_py-0.7.1-py3-none-any.whl

Total release size: 34.8 kB

Release files / esprit_py-0.7.1.tar.gz

Download URL esprit_py-0.7.1.tar.gz
Size 16.6 kB
Tags Source
SHA-256 checksum
How to use checksums
aba9b64a1297c50637428f6ef6ed9ed70a86843d157024d4897dd40435238825
BLAKE2b-256 checksum
How to use checksums
2a79ccf428aded8a8f608228f8cc95cbbad3d23a9449f06d318e06076c333934
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.3

Release files / esprit_py-0.7.1-py3-none-any.whl

Download URL esprit_py-0.7.1-py3-none-any.whl
Size 18.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dc5cde464e9e68d66a142241d30193e29b7b68dafb29f0390b0c79719a0e96da
BLAKE2b-256 checksum
How to use checksums
5b43072084f740dc1b5379e51925000896d09e4d849df5b5f1d4d202125699aa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.3

Security for esprit-py 0.7.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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