Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/photonquantum/pysjtu
The Python iSJTU client for Humans.
https://github.com/photonquantum/pysjtu
course-registration course-select-system curriculum gpa json sjtu
Last synced: 2 months ago
JSON representation
The Python iSJTU client for Humans.
- Host: GitHub
- URL: https://github.com/photonquantum/pysjtu
- Owner: PhotonQuantum
- License: gpl-3.0
- Created: 2020-01-03T13:01:31.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2024-06-04T13:12:33.000Z (8 months ago)
- Last Synced: 2024-11-10T17:56:08.697Z (3 months ago)
- Topics: course-registration, course-select-system, curriculum, gpa, json, sjtu
- Language: HTML
- Homepage: https://pysjtu.readthedocs.io/en/latest/
- Size: 8.68 MB
- Stars: 44
- Watchers: 5
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
PySJTU - The Python iSJTU client for Humans.
![screenshot](docs/images/pysjtu.png)
---
```python
>>> 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...
```python
>>> 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](https://i.sjtu.edu.cn) 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 included.)
- Fully type annotated.
- 99% test coverage.## Installation
Install with pip:
```shell script
$ pip install pysjtu[ocr]
```PySJTU requires Python 3.8+.
## Built With
- [HTTPX](https://www.python-httpx.org/) - A next generation HTTP client for Python.
- [marshmallow](https://github.com/marshmallow-code/marshmallow) - An ORM/ODM/framework-agnostic library for converting complex datatypes, such as objects, to and from native Python datatypes.
- [ONNX Runtime](https://github.com/microsoft/onnxruntime) - A performance-focused complete scoring engine for Open Neural Network Exchange (ONNX) models.
- [NumPy](https://numpy.org/) - The fundamental package for scientific computing with Python.
- [Pillow](https://python-pillow.org/) - The friendly PIL fork.## License
This project is licensed under GNU General Public License v3.0 - see the [LICENSE](LICENSE) file for details.
—💖—
Built with love by LightQuantum