Skip to main content

The Python iSJTU client for Humans.

Project description

PySJTU - The Python iSJTU client for Humans.

PyPI version Documentation Status

screenshot


>>> import pysjtu
>>> c = pysjtu.create_client(username="FeiLin", password="WHISPERS")
>>> chemistry = c.schedule(year=2019, term=0).filter("大学化学")
>>> chemistry[0].teacher_name
['麦亦勇']
>>> calculus_exam = c.exam(year=2019, term=0).filter(course_id="MA248")
>>> calculus_exam[0].date
datetime.date(2019, 11, 6)

And, to persist your session...

>>> import pysjtu
>>> session = pysjtu.Session()
>>> session.login("FeiLin", "WHISPERS")
>>> session.dump("lin_fei.session")

>>> session = pysjtu.Session()
>>> session.load("lin_fei.session")
>>> pysjtu.Client(session).student_id
519027910001

Features

PySJTU allows you to manipulate iSJTU APIs easily.

You don't need to construct queries on your own, or guessing the meaning of poorly named variables (to name a few, kch_id, rwzxs) any more. Now course.name course.hour_total is enough!

Main features of PySJTU:

  • A friendly API with understandable attribute names.
  • Easy session persistence.
  • Robust captcha recognition using ResNet.
  • 80% iSJTU APIs covered. (Course selection APIs will be implemented soon.)
  • Fully type annotated.
  • 99% test coverage.

Installation

Install with pip:

$ pip install pysjtu

PySJTU requires Python 3.6+.

Built With

  • HTTPX - A next generation HTTP client for Python.
  • marshmallow - An ORM/ODM/framework-agnostic library for converting complex datatypes, such as objects, to and from native Python datatypes.
  • ONNX Runtime - A performance-focused complete scoring engine for Open Neural Network Exchange (ONNX) models.
  • NumPy - The fundamental package for scientific computing with Python.
  • Pillow - The friendly PIL fork.

License

This project is licensed under GNU General Public License v3.0 - see the LICENSE file for details.

—💖—

Built with love by LightQuantum

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for pysjtu, version 0.1.1
Filename, size File type Python version Upload date Hashes
Filename, size pysjtu-0.1.1-py3-none-any.whl (1.2 MB) File type Wheel Python version py3 Upload date Hashes View
Filename, size pysjtu-0.1.1.tar.gz (1.2 MB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page