kevincianfarini/pyvt
バージニア州tech timetable of classes python api
インストール
pip install py-vt
使用法
Timetableをインポート
from pyvt import Timetable
apiはtimetableオブジェクトを介してtimetableへのアクtimetableオブジェクトは、VT Timetableからデータを取得するためのいくつかの便利なメソッドを提供します。p>
timetable.crn_lookup('17583', term_year='201701', open_only=False)
は、クラスが容量に満ちているかどうかにかかわらず、crn17583を使用してtimetableからクラスsectionオブジェクトを返します。201701
201701
。 または、開いているセクションのみを検索したい場合は、次の手順を実行します:timetableのすべてのメソッドは、timetableリクエストを行うときにopen_only=True
term_year=None
のデフォルト引数を提供します。 検索時に、term yearがNoneの場合は、最新のterm yearにデフォルト設定されます。 これについては、用語の年のセクションでより多くのことがあります。
他の最も一般的に使用される検索メソッドのいくつかは次のとおりです:クエリの成功に応じて、単一のSection(...)
None
のいずれかを返します。 引数に基づいて使用可能なクラスセクションがない場合は、Noneが返されます。次のメソッドは、クエリの成功に応じて、Section(...)
None
のリストを返します。
def class_lookup(self, subject_code, class_number, term_year=None, open_only=True): ...def cle_lookup(self, cle_code, term_year=None, open_only=True): ...def subject_lookup(self, subject_code, term_year=None, open_only=True): ...
より洗練された検索は、refined_lookup(...)
メソッド
def refined_lookup(self, crn_code=None, subject_code=None, class_number=None, cle_code=None, term_year=None, open_only=True):
使用コード
このAPIで使用する必要があるコードのvtの時刻表のポストのニーズ。 いくつかの有用なコードは次のとおりです。
len(crn_code) >= 3subj_codes = len(class_number) == 4cle_codes = { 'AR%': 'All Curriculums', 'AR01': 'Area 1 Classes', 'AR02': 'Area 2 Classes', ... 'AR07': 'Area 7 Classes'}
用語年
バージニア工科大学の時刻表は、特定の用語年のクラスセクション検索を提供しています。 現在の学期の年を操作したい場合は、timetableメソッド呼び出しでterm_year=None
を変更せずに残すことができます。 要求を行うと、任期年は最新の任期年にデフォルト設定されます。任期年は、毎年8月、1月、6月、7月に発生します。 3月のデフォルトの学期年呼び出しは、1月にある最後のアクティブな学期年のクラスセクションを返すことになります。 春学期。 これは、まだ利用できない期間の年を持つVT Timetableへの呼び出しを避けるためです。
または、特定の用語年が利用可能であるがデフォルトではないことがわかっている場合は、用語年をルックアップメソッドに渡すことができます。 Timetableから返されるセクションオブジェクト
クラスセクションは、Section()
オブジェクトの形式で提供されます。 すべてのSectionオブジェクトには次のプロパティがあります。
section_attrs =
vt Timetableへのクエリが成功すると、単一のsectionオブジェクトまたはsectionオブジェク 上記の属性からクラスセクションに関する情報にアクセスできます。
TimetableError
不正な要求が行われたか、VT TimetableがダウンしているときにTimetableエラーがスローされます。 実際には、要求のステータスコードが200でない場合。 スローされたエラーは、ある程度正常に失敗しようとするために使用できます。 TimetableErrorは、実行時の一時停止を可能にするsleep_time
属性を提供します。この背後にある考え方は、要求が悪い場合、プログラムは短時間スリープするということです。 ただし、VT Timetableがダウンしていて、複数の連続するTimetableErrors
sleep_time
は、サーバーを圧倒しないように指数