Developer Interface
===================
Session
-------
.. automodule:: pysjtu.session
:members:
Client
------
.. automodule:: pysjtu.client
:members:
.. note::
Anything that has request-compatible `get`, `post` methods and a `_cache_store` dict can be accepted as a `Session`.
Recognizers
-----------
.. automodule:: pysjtu.ocr
:members:
Schema
------
Utilities helpful for creating the model for a new API. If you want to contribute to this project, you may want to read this.
This package uses `marshmallow `_
and `marshmallow_dataclass `_ to define the schema of the data.
**Example**
.. sourcecode:: python
from marshmallow_dataclass import dataclass
from marshmallow import EXCLUDE
from pysjtu.fields import SplitField
@dataclass(base_schema=FinalizeHook(LoadDumpSchema)) # to support separate alias for load and dump
class Foo(Result):
bar: str
baz: int = mfield(required=True, load_key="baz_id")
names: WithField(List[str], field=SplitField, sep=",") = mfield(required=True)
For more complex use cases, you can read the schema of `GPAQueryParams `_ for reference.
.. automodule:: pysjtu.schema
:members:
Exceptions
----------
.. automodule:: pysjtu.exceptions
:members: