Module Import alias Import alias Import alias Import alias Import alias Import alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias alias ImportFrom alias ClassDef bases NameLoad body FunctionDef arguments args NameParam defaults body Print BinOpMod Str NameLoad Expr Call AttributeLoad Call NameLoad NameLoad NameLoad attr decorator_list NameLoad FunctionDef arguments args NameParam defaults body Assign AttributeStore NameLoad attr Str Assign AttributeStore NameLoad attr Str Assign AttributeStore NameLoad attr Str Assign AttributeStore NameLoad attr BinOpMod Str Call AttributeLoad NameLoad attr BinOpMod Str TupleLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign NameStore Dict Str Str Str Str AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr Expr Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad NameLoad NameLoad keyword AttributeLoad NameLoad attr Assign AttributeStore NameLoad attr Str Assign AttributeStore NameLoad attr Str Assign AttributeStore NameLoad attr Str Assign AttributeStore NameLoad attr BinOpMod Str Call AttributeLoad NameLoad attr BinOpMod Str TupleLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign NameStore Dict Str Str Str Str AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr Expr Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad NameLoad NameLoad keyword AttributeLoad NameLoad attr Assign AttributeStore NameLoad attr Call NameLoad Call AttributeLoad Call AttributeLoad Call AttributeLoad NameLoad attr attr keyword NameLoad attr Assign AttributeStore NameLoad attr Call NameLoad Call AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr Str For NameStore Call AttributeLoad NameLoad attr NameLoad body Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad NameLoad TryExcept body Expr Call AttributeLoad NameLoad attr NameLoad handlers ExceptHandler type NameLoad name NameStore body Raise NameLoad decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Dict Str Str Str Str Dict Str Str Dict Str Str Dict Str Str ListLoad Dict Str Str Str Str Str Str Str Dict Str Str Dict Str Str Str Num Str Assign NameStore Call NameLoad keyword Str Assign NameStore Str Assign NameStore Call AttributeLoad Call AttributeLoad NameLoad attr NameLoad attr Assign SubscriptStore SubscriptLoad SubscriptLoad NameLoad Index Str Index Num Index Str Call NameLoad NameLoad Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr NameLoad keyword Str keyword AttributeLoad NameLoad attr Assign NameStore Call NameLoad NameLoad Str Str Expr Call AttributeLoad NameLoad attr Str NameLoad Expr Call AttributeLoad NameLoad attr Str Str Expr Call AttributeLoad NameLoad attr NameLoad Str Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad Str Call AttributeLoad NameLoad attr keyword Str keyword AttributeLoad NameLoad attr keyword AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Num decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore ListLoad Dict Str Str Str Str Dict Str Str Dict Str Str Dict Str Str ListLoad Dict Str Str Str Str Str Str Str Dict Str Str Dict Str Str Str Num Str Dict Str Str Str Str Dict Str Str Dict Str Str Dict Str Str ListLoad Dict Str Str Str Str Str Str Str Dict Str Str Dict Str Str Str Num Str Assign NameStore Call NameLoad keyword Str Assign NameStore Str Assign NameStore Call AttributeLoad Call AttributeLoad NameLoad attr NameLoad attr Assign SubscriptStore SubscriptLoad SubscriptLoad SubscriptLoad NameLoad Index Num Index Str Index Num Index Str Call NameLoad NameLoad Assign NameStore Str Assign NameStore Call AttributeLoad Call AttributeLoad NameLoad attr NameLoad attr Assign SubscriptStore SubscriptLoad SubscriptLoad SubscriptLoad NameLoad Index Num Index Str Index Num Index Str Call NameLoad NameLoad Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr NameLoad keyword Str keyword AttributeLoad NameLoad attr Assign NameStore Call NameLoad NameLoad Str Str Assign NameStore Call NameLoad NameLoad Str Str Expr Call AttributeLoad NameLoad attr Str NameLoad Expr Call AttributeLoad NameLoad attr Str NameLoad Expr Call AttributeLoad NameLoad attr Str Str Expr Call AttributeLoad NameLoad attr Str Str Expr Call AttributeLoad NameLoad attr NameLoad Str Expr Call AttributeLoad NameLoad attr NameLoad Str Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad Str Call AttributeLoad NameLoad attr keyword Str keyword AttributeLoad NameLoad attr keyword AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Num Assign NameStore Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign NameStore SubscriptLoad NameLoad Index Num Assign NameStore SubscriptLoad NameLoad Index Num Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr keyword NameLoad Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr keyword NameLoad Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr Expr Call AttributeLoad NameLoad attr Call NameLoad NameLoad Num Expr Call AttributeLoad NameLoad attr Call NameLoad NameLoad Num Expr Call AttributeLoad NameLoad attr Call AttributeLoad AttributeLoad SubscriptLoad Call AttributeLoad AttributeLoad NameLoad attr attr Index Num attr attr Str Expr Call AttributeLoad NameLoad attr Call AttributeLoad AttributeLoad SubscriptLoad Call AttributeLoad AttributeLoad NameLoad attr attr Index Num attr attr Str decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore ListLoad Dict Str Str Str Str Dict Str Str Dict Str Str Dict Str Str ListLoad Dict Str Str Str Str Str Str Str Dict Str Str Dict Str Str Str Num Str Dict Str Str Str Str Dict Str Str Dict Str Str Dict Str Str ListLoad Dict Str Str Str Str Str Str Str Dict Str Str Dict Str Str Str Num Str Assign NameStore Call NameLoad keyword Str Assign NameStore Str Assign NameStore Call AttributeLoad Call AttributeLoad NameLoad attr NameLoad attr Assign SubscriptStore SubscriptLoad SubscriptLoad SubscriptLoad NameLoad Index Num Index Str Index Num Index Str Call NameLoad NameLoad Assign SubscriptStore SubscriptLoad SubscriptLoad SubscriptLoad NameLoad Index Num Index Str Index Num Index Str Call NameLoad NameLoad Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr NameLoad keyword Str keyword AttributeLoad NameLoad attr Assign NameStore Call NameLoad NameLoad Str Str Expr Call AttributeLoad NameLoad attr Str NameLoad Expr Call AttributeLoad NameLoad attr Str Str Expr Call AttributeLoad NameLoad attr NameLoad Str Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad Str Call AttributeLoad NameLoad attr keyword Str keyword AttributeLoad NameLoad attr keyword AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Num Assign NameStore Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign NameStore SubscriptLoad NameLoad Index Num Assign NameStore SubscriptLoad NameLoad Index Num Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr keyword NameLoad Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr keyword NameLoad Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr Expr Call AttributeLoad NameLoad attr Call NameLoad NameLoad Num Expr Call AttributeLoad NameLoad attr Call NameLoad NameLoad Num Expr Call AttributeLoad NameLoad attr Call AttributeLoad AttributeLoad SubscriptLoad Call AttributeLoad AttributeLoad NameLoad attr attr Index Num attr attr Str Expr Call AttributeLoad NameLoad attr Call AttributeLoad AttributeLoad SubscriptLoad Call AttributeLoad AttributeLoad NameLoad attr attr Index Num attr attr Str decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore ListLoad Dict Str Str Str Str Dict Str Str Dict Str Str Dict Str Str ListLoad Dict Str Str Str Str Str Str Str Dict Str Str Dict Str Str Str Num Str Dict Str Str Str Str Dict Str Str Dict Str Str Dict Str Str ListLoad Dict Str Str Str Str Str Str Str Dict Str Str Dict Str Str Str Num Str Assign NameStore Call NameLoad keyword Str Assign NameStore Str Assign NameStore Call AttributeLoad Call AttributeLoad NameLoad attr NameLoad attr Assign SubscriptStore SubscriptLoad SubscriptLoad SubscriptLoad NameLoad Index Num Index Str Index Num Index Str Call NameLoad NameLoad Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr NameLoad keyword Str keyword AttributeLoad NameLoad attr Assign NameStore Call NameLoad NameLoad Str Str Expr Call AttributeLoad NameLoad attr Str NameLoad Expr Call AttributeLoad NameLoad attr Str Str Expr Call AttributeLoad NameLoad attr NameLoad Str Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad Str Call AttributeLoad NameLoad attr keyword Str keyword AttributeLoad NameLoad attr keyword AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Num Assign NameStore Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign NameStore SubscriptLoad NameLoad Index Num Assign NameStore SubscriptLoad NameLoad Index Num Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr keyword NameLoad Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr keyword NameLoad Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr Expr Call AttributeLoad NameLoad attr Call NameLoad NameLoad Num Expr Call AttributeLoad NameLoad attr Call NameLoad NameLoad Num Expr Call AttributeLoad NameLoad attr Call AttributeLoad AttributeLoad SubscriptLoad Call AttributeLoad AttributeLoad NameLoad attr attr Index Num attr attr Str Expr Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad SubscriptLoad Call AttributeLoad AttributeLoad NameLoad attr attr Index Num attr Index Str Str decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore ListLoad Dict Str Str Str Str Dict Str Str Dict Str Str Dict Str Str ListLoad Dict Str Str Str Str Str Str Str Dict Str Str Dict Str Str Str Num Str Dict Str Str Str Str Str Str Str Dict Str Str Dict Str Str Str Num Str Dict Str Str Str Str Dict Str Str Dict Str Str Dict Str Str ListLoad Dict Str Str Str Str Str Str Str Dict Str Str Dict Str Str Str Num Str Dict Str Str Str Str Str Str Str Dict Str Str Dict Str Str Str Num Str Assign NameStore Call NameLoad keyword Str Assign NameStore Str Assign NameStore Call AttributeLoad Call AttributeLoad NameLoad attr NameLoad attr Assign SubscriptStore SubscriptLoad SubscriptLoad SubscriptLoad NameLoad Index Num Index Str Index Num Index Str Call NameLoad NameLoad Assign NameStore Str Assign NameStore Call AttributeLoad Call AttributeLoad NameLoad attr NameLoad attr Assign SubscriptStore SubscriptLoad SubscriptLoad SubscriptLoad NameLoad Index Num Index Str Index Num Index Str Call NameLoad NameLoad Assign NameStore Str Assign NameStore Call AttributeLoad Call AttributeLoad NameLoad attr NameLoad attr Assign SubscriptStore SubscriptLoad SubscriptLoad SubscriptLoad NameLoad Index Num Index Str Index Num Index Str Call NameLoad NameLoad Assign NameStore Str Assign NameStore Call AttributeLoad Call AttributeLoad NameLoad attr NameLoad attr Assign SubscriptStore SubscriptLoad SubscriptLoad SubscriptLoad NameLoad Index Num Index Str Index Num Index Str Call NameLoad NameLoad Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr NameLoad keyword Str keyword AttributeLoad NameLoad attr Assign NameStore Call NameLoad NameLoad Str Str Assign NameStore Call NameLoad NameLoad Str Str Assign NameStore Call NameLoad NameLoad Str Str Assign NameStore Call NameLoad NameLoad Str Str Expr Call AttributeLoad NameLoad attr Str NameLoad Expr Call AttributeLoad NameLoad attr Str NameLoad Expr Call AttributeLoad NameLoad attr Str NameLoad Expr Call AttributeLoad NameLoad attr Str NameLoad Expr Call AttributeLoad NameLoad attr Str Str Expr Call AttributeLoad NameLoad attr Str Str Expr Call AttributeLoad NameLoad attr Str Str Expr Call AttributeLoad NameLoad attr Str Str Expr Call AttributeLoad NameLoad attr NameLoad Str Expr Call AttributeLoad NameLoad attr NameLoad Str Expr Call AttributeLoad NameLoad attr NameLoad Str Expr Call AttributeLoad NameLoad attr NameLoad Str Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad Str Call AttributeLoad NameLoad attr keyword Str keyword AttributeLoad NameLoad attr keyword AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Num Assign NameStore Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign NameStore SubscriptLoad NameLoad Index Num Assign NameStore SubscriptLoad NameLoad Index Num Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr keyword NameLoad Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr keyword NameLoad Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr Expr Call AttributeLoad NameLoad attr Call NameLoad NameLoad Num Expr Call AttributeLoad NameLoad attr Call NameLoad NameLoad Num Assign NameStore ListLoad Str Str Assign NameStore ListLoad Str Str Expr Call AttributeLoad NameLoad attr Call AttributeLoad AttributeLoad SubscriptLoad Call AttributeLoad AttributeLoad NameLoad attr attr Index Num attr attr NameLoad Expr Call AttributeLoad NameLoad attr Call AttributeLoad AttributeLoad SubscriptLoad Call AttributeLoad AttributeLoad NameLoad attr attr Index Num attr attr NameLoad Expr Call AttributeLoad NameLoad attr Call AttributeLoad AttributeLoad SubscriptLoad Call AttributeLoad AttributeLoad NameLoad attr attr Index Num attr attr NameLoad Expr Call AttributeLoad NameLoad attr Call AttributeLoad AttributeLoad SubscriptLoad Call AttributeLoad AttributeLoad NameLoad attr attr Index Num attr attr NameLoad decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Dict Str Str Str Str Dict Str Str Dict Str Str Dict Str Str ListLoad Dict Str Str Str Str Str Str Str Dict Str Str Dict Str Str Str Num Str Assign NameStore Call NameLoad keyword Str Assign NameStore Str Assign NameStore Call AttributeLoad Call AttributeLoad NameLoad attr NameLoad attr Assign NameStore Str Assign NameStore Call AttributeLoad Call AttributeLoad NameLoad attr NameLoad attr Assign SubscriptStore SubscriptLoad SubscriptLoad NameLoad Index Str Index Num Index Str Call NameLoad NameLoad Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr NameLoad keyword Str keyword AttributeLoad NameLoad attr Assign NameStore Call NameLoad NameLoad Str Str Expr Call AttributeLoad NameLoad attr Str NameLoad Expr Call AttributeLoad NameLoad attr Str Str Expr Call AttributeLoad NameLoad attr NameLoad Str Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad Str Call AttributeLoad NameLoad attr keyword Str keyword AttributeLoad NameLoad attr keyword AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Num Expr Call AttributeLoad NameLoad attr Str AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Dict Str Str Str Str Dict Str Str Dict Str Str Dict Str Str ListLoad Dict Str Str Str Str Str Str Str Dict Str Str Dict Str Str Str Num Str Dict Str Str Str Str Str Str Str Dict Str Str Dict Str Str Str Num Str Assign NameStore Call NameLoad keyword Str Assign NameStore Str Assign NameStore Call AttributeLoad Call AttributeLoad NameLoad attr NameLoad attr Assign SubscriptStore SubscriptLoad SubscriptLoad NameLoad Index Str Index Num Index Str Call NameLoad NameLoad Assign NameStore Str Assign NameStore Call AttributeLoad Call AttributeLoad NameLoad attr NameLoad attr Assign SubscriptStore SubscriptLoad SubscriptLoad NameLoad Index Str Index Num Index Str Call NameLoad NameLoad Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr NameLoad keyword Str keyword AttributeLoad NameLoad attr Assign NameStore Call NameLoad NameLoad Str Str Expr Call AttributeLoad NameLoad attr Str NameLoad Expr Call AttributeLoad NameLoad attr Str Str Expr Call AttributeLoad NameLoad attr NameLoad Str Assign NameStore Call NameLoad NameLoad Str Str Expr Call AttributeLoad NameLoad attr Str NameLoad Expr Call AttributeLoad NameLoad attr Str Str Expr Call AttributeLoad NameLoad attr NameLoad Str Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad Str Call AttributeLoad NameLoad attr keyword Str keyword AttributeLoad NameLoad attr keyword AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Num decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Dict Str Str Str Str Dict Str Str Dict Str Str Dict Str Str ListLoad Dict Str Str Str Str Str Str Str Dict Str Str Dict Str Str Str Num Str Dict Str Str Str Str Str Str Str Dict Str Str Dict Str Str Str Num Str Assign NameStore Call NameLoad keyword Str Assign NameStore Str Assign NameStore Call AttributeLoad Call AttributeLoad NameLoad attr NameLoad attr Assign SubscriptStore SubscriptLoad SubscriptLoad NameLoad Index Str Index Num Index Str Call NameLoad NameLoad Assign NameStore Str Assign NameStore Call AttributeLoad Call AttributeLoad NameLoad attr NameLoad attr Assign NameStore Str Assign NameStore Call AttributeLoad Call AttributeLoad NameLoad attr NameLoad attr Assign SubscriptStore SubscriptLoad SubscriptLoad NameLoad Index Str Index Num Index Str Call NameLoad NameLoad Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr NameLoad keyword Str keyword AttributeLoad NameLoad attr Assign NameStore Call NameLoad NameLoad Str Str Expr Call AttributeLoad NameLoad attr Str NameLoad Expr Call AttributeLoad NameLoad attr Str Str Expr Call AttributeLoad NameLoad attr NameLoad Str Assign NameStore Call NameLoad NameLoad Str Str Expr Call AttributeLoad NameLoad attr Str NameLoad Expr Call AttributeLoad NameLoad attr Str Str Expr Call AttributeLoad NameLoad attr NameLoad Str Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad Str Call AttributeLoad NameLoad attr keyword Str keyword AttributeLoad NameLoad attr keyword AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Num Expr Call AttributeLoad NameLoad attr Str AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Dict Str Str Str Str Dict Str Str Dict Str Str Dict Str Str ListLoad Dict Str Str Str Str Str Str Str Dict Str Str Dict Str Str Str Num Str Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad Str Call AttributeLoad NameLoad attr NameLoad keyword Str keyword AttributeLoad NameLoad attr keyword AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Num decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Dict Str Str Str Str Dict Str Str Dict Str Str Dict Str Str ListLoad Dict Str Str Str Str Str Str Str Str Dict Str Str Dict Str Str Str Str Num Str Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad Str Call AttributeLoad NameLoad attr NameLoad keyword Str keyword AttributeLoad NameLoad attr keyword AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Num Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Str decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore ListLoad Dict Str Str Str Str Dict Str Str Dict Str Str Dict Str Str ListLoad Dict Str Str Str Str Str Str Str Dict Str Str Dict Str Str Str Num Str Dict Str Str Str Str Dict Str Str Dict Str Str Dict Str Str ListLoad Dict Str Str Str Str Str Str Str Dict Str Str Dict Str Str Str Num Str Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad Str Call AttributeLoad NameLoad attr NameLoad keyword Str keyword AttributeLoad NameLoad attr keyword AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Num Assign NameStore Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign NameStore SubscriptLoad NameLoad Index Num Assign NameStore SubscriptLoad NameLoad Index Num Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr keyword NameLoad Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr keyword NameLoad Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr Expr Call AttributeLoad NameLoad attr Call NameLoad NameLoad Num Expr Call AttributeLoad NameLoad attr Call NameLoad NameLoad Num Expr Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad SubscriptLoad Call AttributeLoad AttributeLoad NameLoad attr attr Index Num attr Index Str Str Expr Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad SubscriptLoad Call AttributeLoad AttributeLoad NameLoad attr attr Index Num attr Index Str Str decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Dict Str Str Str Str Dict Str Str Str Str Str Str Dict Str Str Str Dict Str Str Dict Str Str Str Str Dict Str Str Dict Str Str Dict Str Str Str ListLoad Dict Str Str Str Str Str Str Dict Str Str Str Num Str Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad Str Call AttributeLoad NameLoad attr NameLoad keyword Str keyword AttributeLoad NameLoad attr keyword AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Num Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Str decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Dict Str Str Str Str Dict Str Str Dict Str Str Dict Str Str ListLoad Dict Str Str Str Str Str Str Dict Str Str Dict Str Str Str Num Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad Str Call AttributeLoad NameLoad attr NameLoad keyword Str keyword AttributeLoad NameLoad attr keyword AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Num Expr Call AttributeLoad NameLoad attr Str AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Dict Str Str Str Str Dict Str Str Dict Str Str Dict Str Str ListLoad Dict Str Str Str Str Str Str Str Dict Str Str Dict Str Str Str Num Str Dict Str Str Str Str Str Str Str Dict Str Str Dict Str Str Str Num Str Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad Str Call AttributeLoad NameLoad attr NameLoad keyword Str keyword AttributeLoad NameLoad attr keyword AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Num Expr Call AttributeLoad NameLoad attr Str AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr Assign NameStore Dict Str Str Str Str Str NameLoad Dict Str Str Dict Str Str Dict Str Str ListLoad Dict Str Str Str Str Str Str Str Dict Str Str Dict Str Str Str Num Str Assign NameStore Call NameLoad keyword Str Assign NameStore Str Assign NameStore Call AttributeLoad Call AttributeLoad NameLoad attr NameLoad attr Assign SubscriptStore SubscriptLoad SubscriptLoad NameLoad Index Str Index Num Index Str Call NameLoad NameLoad Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr NameLoad keyword Str keyword AttributeLoad NameLoad attr Assign NameStore Call NameLoad NameLoad Str Str Expr Call AttributeLoad NameLoad attr Str NameLoad Expr Call AttributeLoad NameLoad attr Str Str Expr Call AttributeLoad NameLoad attr NameLoad Str Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Assign NameStore Dict Str NameLoad Assign NameStore BinOpMod Str TupleLoad Call NameLoad Str Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Call AttributeLoad NameLoad attr keyword Str keyword AttributeLoad NameLoad attr keyword AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Num decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr Assign NameStore Dict Str Str Str Str Str NameLoad Dict Str Str Dict Str Str Dict Str Str ListLoad Dict Str Str Str Str Str Str Str Dict Str Str Dict Str Str Str Num Str Assign NameStore Call NameLoad keyword Str Assign NameStore Str Assign NameStore Call AttributeLoad Call AttributeLoad NameLoad attr NameLoad attr Assign NameStore Str Assign NameStore Call AttributeLoad Call AttributeLoad NameLoad attr NameLoad attr Assign SubscriptStore SubscriptLoad SubscriptLoad NameLoad Index Str Index Num Index Str Call NameLoad NameLoad Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr NameLoad keyword Str keyword AttributeLoad NameLoad attr Assign NameStore Call NameLoad NameLoad Str Str Expr Call AttributeLoad NameLoad attr Str NameLoad Expr Call AttributeLoad NameLoad attr Str Str Expr Call AttributeLoad NameLoad attr NameLoad Str Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Assign NameStore Dict Str NameLoad Assign NameStore BinOpMod Str TupleLoad Call NameLoad Str Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Call AttributeLoad NameLoad attr keyword Str keyword AttributeLoad NameLoad attr keyword AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Num Expr Call AttributeLoad NameLoad attr Str AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr Assign NameStore Dict Str Str Str Str Str NameLoad Dict Str Str Dict Str Str Dict Str Str ListLoad Dict Str Str Str Str Str Str Str Dict Str Str Dict Str Str Str Num Str Dict Str Str Str Str Str Str Str Dict Str Str Dict Str Str Str Num Str Assign NameStore Call NameLoad keyword Str Assign NameStore Str Assign NameStore Call AttributeLoad Call AttributeLoad NameLoad attr NameLoad attr Assign SubscriptStore SubscriptLoad SubscriptLoad NameLoad Index Str Index Num Index Str Call NameLoad NameLoad Assign NameStore Str Assign NameStore Call AttributeLoad Call AttributeLoad NameLoad attr NameLoad attr Assign SubscriptStore SubscriptLoad SubscriptLoad NameLoad Index Str Index Num Index Str Call NameLoad NameLoad Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr NameLoad keyword Str keyword AttributeLoad NameLoad attr Assign NameStore Call NameLoad NameLoad Str Str Expr Call AttributeLoad NameLoad attr Str NameLoad Expr Call AttributeLoad NameLoad attr Str Str Expr Call AttributeLoad NameLoad attr NameLoad Str Assign NameStore Call NameLoad NameLoad Str Str Expr Call AttributeLoad NameLoad attr Str NameLoad Expr Call AttributeLoad NameLoad attr Str Str Expr Call AttributeLoad NameLoad attr NameLoad Str Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Assign NameStore Dict Str NameLoad Assign NameStore BinOpMod Str TupleLoad Call NameLoad Str Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Call AttributeLoad NameLoad attr keyword Str keyword AttributeLoad NameLoad attr keyword AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Num decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr Assign NameStore Dict Str Str Str Str Str NameLoad Dict Str Str Dict Str Str Dict Str Str ListLoad Dict Str Str Str Str Str Str Str Dict Str Str Dict Str Str Str Num Str Dict Str Str Str Str Str Str Str Dict Str Str Dict Str Str Str Num Str Assign NameStore Call NameLoad keyword Str Assign NameStore Str Assign NameStore Call AttributeLoad Call AttributeLoad NameLoad attr NameLoad attr Assign SubscriptStore SubscriptLoad SubscriptLoad NameLoad Index Str Index Num Index Str Call NameLoad NameLoad Assign NameStore Str Assign NameStore Call AttributeLoad Call AttributeLoad NameLoad attr NameLoad attr Assign NameStore Str Assign NameStore Call AttributeLoad Call AttributeLoad NameLoad attr NameLoad attr Assign SubscriptStore SubscriptLoad SubscriptLoad NameLoad Index Str Index Num Index Str Call NameLoad NameLoad Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr NameLoad keyword Str keyword AttributeLoad NameLoad attr Assign NameStore Call NameLoad NameLoad Str Str Expr Call AttributeLoad NameLoad attr Str NameLoad Expr Call AttributeLoad NameLoad attr Str Str Expr Call AttributeLoad NameLoad attr NameLoad Str Assign NameStore Call NameLoad NameLoad Str Str Expr Call AttributeLoad NameLoad attr Str NameLoad Expr Call AttributeLoad NameLoad attr Str Str Expr Call AttributeLoad NameLoad attr NameLoad Str Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Assign NameStore Dict Str NameLoad Assign NameStore BinOpMod Str TupleLoad Call NameLoad Str Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Call AttributeLoad NameLoad attr keyword Str keyword AttributeLoad NameLoad attr keyword AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Num Expr Call AttributeLoad NameLoad attr Str AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr Assign NameStore Dict Str Str Str Str Str NameLoad Dict Str Str Dict Str Str Dict Str Str ListLoad Dict Str Str Str Str Str Str Str Dict Str Str Dict Str Str Str Num Str Assign NameStore Dict Str NameLoad Assign NameStore BinOpMod Str TupleLoad Call NameLoad Str Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Call AttributeLoad NameLoad attr NameLoad keyword Str keyword AttributeLoad NameLoad attr keyword AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Num decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr Assign NameStore Dict Str Str Str Str Str NameLoad Dict Str Str Dict Str Str Dict Str Str Str Assign NameStore Dict Str NameLoad Assign NameStore BinOpMod Str TupleLoad Call NameLoad Str Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Call AttributeLoad NameLoad attr NameLoad keyword Str keyword AttributeLoad NameLoad attr keyword AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Num Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Str decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr Assign NameStore Dict Str Str Str Str Str NameLoad Dict Str Str Dict Str Str Dict Str Str ListLoad Dict Str Str Str Str Str Str Dict Str Str Dict Str Str Str Num Assign NameStore Dict Str NameLoad Assign NameStore BinOpMod Str TupleLoad Call NameLoad Str Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Call AttributeLoad NameLoad attr NameLoad keyword Str keyword AttributeLoad NameLoad attr keyword AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Num Expr Call AttributeLoad NameLoad attr Str AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr Assign NameStore Dict Str Str Str Str Str NameLoad Dict Str Str Dict Str Str Dict Str Str ListLoad Dict Str Str Str Str Str Str Str Dict Str Str Dict Str Str Str Num Str Assign NameStore Dict Str NameLoad Assign NameStore BinOpMod Str TupleLoad Call NameLoad Str Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Call AttributeLoad NameLoad attr NameLoad keyword Str keyword AttributeLoad NameLoad attr keyword AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Num Expr Call AttributeLoad NameLoad attr Str AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr Assign NameStore Dict Str Str Str Str Str NameLoad Dict Str Str Dict Str Str Dict Str Str ListLoad Dict Str Str Str Str Str Str Str Dict Str Str Dict Str Str Str Num Str Dict Str Str Str Str Str Str Str Dict Str Str Dict Str Str Str Num Str Assign NameStore Dict Str NameLoad Assign NameStore BinOpMod Str TupleLoad Call NameLoad Str Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Call AttributeLoad NameLoad attr NameLoad keyword Str keyword AttributeLoad NameLoad attr keyword AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Num Expr Call AttributeLoad NameLoad attr Str AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Dict Str Str Str Str Dict Str Str Dict Str Str Dict Str Str ListLoad Dict Str Str Str Str Str Str Str Dict Str Str Dict Str Str Str Num Str Assign NameStore Call NameLoad keyword Str Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr Call AttributeLoad AttributeLoad NameLoad attr attr Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Str Str Str Str Str Str Assign NameStore Call NameLoad NameLoad Str Assign NameStore Call AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad Call AttributeLoad NameLoad attr NameLoad attr Assign SubscriptStore SubscriptLoad SubscriptLoad NameLoad Index Str Index Num Index Str Call NameLoad NameLoad Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr NameLoad keyword Str keyword AttributeLoad NameLoad attr Assign NameStore Call NameLoad NameLoad Expr Call AttributeLoad NameLoad attr Str NameLoad Expr Call AttributeLoad NameLoad attr Str Str Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad Str Call AttributeLoad NameLoad attr keyword Str keyword AttributeLoad NameLoad attr keyword AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Num Assign NameStore Dict Str NameLoad Assign NameStore BinOpMod Str TupleLoad Call NameLoad Str Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad keyword AttributeLoad NameLoad attr keyword AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Num Expr Call AttributeLoad NameLoad attr SubscriptLoad NameLoad Index Str Str Assign NameStore Call NameLoad BinOpAdd Str AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Assign NameStore ListLoad For NameStore Call AttributeLoad NameLoad attr body Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr SubscriptLoad SubscriptLoad NameLoad Index Num Index Str Str Expr Call AttributeLoad NameLoad attr Call NameLoad Call AttributeLoad NameLoad attr Call AttributeLoad SubscriptLoad NameLoad Index Num attr NameLoad Expr Call AttributeLoad NameLoad attr Call AttributeLoad SubscriptLoad NameLoad Index Num attr NameLoad Expr Call AttributeLoad NameLoad attr Call AttributeLoad SubscriptLoad NameLoad Index Num attr Str NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Call AttributeLoad Call AttributeLoad NameLoad attr Call AttributeLoad SubscriptLoad NameLoad Index Num attr attr Expr Call AttributeLoad NameLoad attr Call AttributeLoad SubscriptLoad NameLoad Index Num attr Str Str Expr Call AttributeLoad NameLoad attr Call AttributeLoad SubscriptLoad NameLoad Index Num attr Str Str decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad NameLoad keyword Str Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr NameLoad NameLoad keyword ListLoad Str Assign NameStore Call AttributeLoad Call AttributeLoad NameLoad attr NameLoad attr Assign SubscriptStore SubscriptLoad SubscriptLoad NameLoad Index Str Index Num Index Str NameLoad Assign NameStore Call NameLoad Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr NameLoad keyword Str keyword AttributeLoad NameLoad attr Assign NameStore Call NameLoad NameLoad keyword Str Expr Call AttributeLoad NameLoad attr Str NameLoad Expr Call AttributeLoad NameLoad attr Str Str Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad Str Call AttributeLoad NameLoad attr keyword Str keyword AttributeLoad NameLoad attr keyword AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Num decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Call AttributeLoad NameLoad attr NameLoad Assign SubscriptStore NameLoad Index Str Dict Str Str Str Str Str Str Assign NameStore Call AttributeLoad NameLoad attr NameLoad NameLoad keyword Str Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr NameLoad NameLoad keyword ListLoad Str Assign NameStore Call AttributeLoad Call AttributeLoad NameLoad attr NameLoad attr Assign SubscriptStore SubscriptLoad SubscriptLoad NameLoad Index Str Index Num Index Str NameLoad Assign NameStore Call NameLoad Assign NameStore Call NameLoad NameLoad keyword Str keyword AttributeLoad NameLoad attr Assign NameStore Call NameLoad NameLoad keyword Str Expr Call AttributeLoad NameLoad attr Str NameLoad Expr Call AttributeLoad NameLoad attr Str Str Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad Str Call AttributeLoad NameLoad attr keyword Str keyword AttributeLoad NameLoad attr keyword AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Num Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Str decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Call AttributeLoad NameLoad attr NameLoad Assign SubscriptStore NameLoad Index Str Dict Str Str Str Str Str Str Assign NameStore Call AttributeLoad NameLoad attr NameLoad NameLoad keyword Str Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr NameLoad NameLoad keyword ListLoad Str Assign NameStore Call AttributeLoad Call AttributeLoad NameLoad attr NameLoad attr Assign SubscriptStore SubscriptLoad SubscriptLoad NameLoad Index Str Index Num Index Str NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad Assign SubscriptStore SubscriptLoad SubscriptLoad NameLoad Index Str Index Num Index Str NameLoad Assign NameStore Call NameLoad Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr NameLoad keyword Str keyword AttributeLoad NameLoad attr Assign NameStore Call NameLoad NameLoad keyword Str Expr Call AttributeLoad NameLoad attr Str NameLoad Expr Call AttributeLoad NameLoad attr Str Str Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad Str Call AttributeLoad NameLoad attr keyword Str keyword AttributeLoad NameLoad attr keyword AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Num Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Str decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad NameLoad Dict Str ListLoad Call AttributeLoad NameLoad attr NameLoad Str Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr NameLoad NameLoad keyword ListLoad Str Assign NameStore Call AttributeLoad Call AttributeLoad NameLoad attr NameLoad attr Assign SubscriptStore SubscriptLoad SubscriptLoad NameLoad Index Str Index Num Index Str NameLoad Assign NameStore Call NameLoad Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr NameLoad keyword Str keyword AttributeLoad NameLoad attr Assign NameStore Call NameLoad NameLoad keyword Str Expr Call AttributeLoad NameLoad attr Str NameLoad Expr Call AttributeLoad NameLoad attr Str Str Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad Str Call AttributeLoad NameLoad attr keyword Str keyword AttributeLoad NameLoad attr keyword AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Num decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad NameLoad Dict Str ListLoad Call AttributeLoad NameLoad attr NameLoad Str Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr NameLoad NameLoad keyword ListLoad Str Assign NameStore Call AttributeLoad Call AttributeLoad NameLoad attr NameLoad attr Assign SubscriptStore SubscriptLoad SubscriptLoad NameLoad Index Str Index Num Index Str NameLoad Assign NameStore Call NameLoad Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr NameLoad keyword Str keyword AttributeLoad NameLoad attr Assign NameStore Call NameLoad NameLoad keyword Str Expr Call AttributeLoad NameLoad attr Str NameLoad Expr Call AttributeLoad NameLoad attr Str Str Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad Str Call AttributeLoad NameLoad attr keyword Str keyword AttributeLoad NameLoad attr keyword AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Num Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Str decorator_list decorator_list Assign NameStore Str Assign NameStore Str Assign NameStore Str Assign NameStore Str
N/A N/A json N/A base64 N/A uuid N/A urllib N/A hashlib N/A os jose jws datetime datetime email message_from_string email.mime.multipart MIMEMultipart email.mime.application MIMEApplication email.mime.text MIMEText email.mime.image MIMEImage django.test TestCase django.core.urlresolvers reverse django.utils.timezone utc django.conf settings models Statement StatementAttachment adl_lrs.views register AttachmentAndSignedTests N/A TestCase N/A setUpClass N/A N/A cls N/A N/A N/A N/A 
%s __name__ N/A N/A N/A N/A super AttachmentAndSignedTests cls setUpClass N/A classmethod setUp N/A N/A self N/A N/A N/A N/A self username tester1 N/A N/A self email test1@tester.com N/A N/A self password test N/A N/A self auth N/A Basic %s N/A N/A base64 b64encode N/A %s:%s N/A N/A self username N/A self password N/A form N/A username email password password2 N/A self username N/A self email N/A self password N/A self password N/A N/A N/A N/A self client post N/A reverse register form X_Experience_API_Version N/A settings XAPI_VERSION N/A N/A self username2 tester2 N/A N/A self email2 test2@tester.com N/A N/A self password2 test2 N/A N/A self auth2 N/A Basic %s N/A N/A base64 b64encode N/A %s:%s N/A N/A self username2 N/A self password2 N/A form2 N/A username email password password2 N/A self username2 N/A self email2 N/A self password2 N/A self password2 N/A N/A N/A N/A self client post N/A reverse register form2 X_Experience_API_Version N/A settings XAPI_VERSION N/A N/A self firstTime N/A str N/A N/A N/A N/A N/A N/A datetime utcnow replace tzinfo utc isoformat N/A N/A self guid1 N/A str N/A N/A uuid uuid1 N/A tearDown N/A N/A self N/A N/A N/A attach_folder_path N/A N/A N/A os path join N/A settings MEDIA_ROOT attachment_payloads N/A the_file N/A N/A os listdir attach_folder_path N/A N/A file_path N/A N/A N/A os path join attach_folder_path the_file N/A N/A N/A N/A N/A os unlink file_path N/A N/A N/A Exception N/A e N/A N/A e N/A test_multipart N/A N/A self N/A N/A N/A stmt N/A actor verb object attachments N/A mbox mailto:tom@example.com N/A id http://tom.com/verb/butted N/A id act:tom.com/objs/heads N/A N/A usageType display description contentType length sha2 http://example.com/attachment-usage/test N/A en-US A test attachment N/A en-US A test attachment (description) text/plain; charset=utf-8 27 N/A message N/A MIMEMultipart boundary myboundary N/A txt howdy.. this is a text attachment N/A txtsha N/A N/A N/A N/A hashlib sha256 txt hexdigest N/A N/A N/A N/A stmt N/A attachments N/A 0 N/A sha2 N/A str txtsha N/A stmtdata N/A MIMEApplication N/A N/A json dumps stmt _subtype json _encoder N/A json JSONEncoder N/A textdata N/A MIMEText txt plain utf-8 N/A N/A N/A textdata add_header X-Experience-API-Hash txtsha N/A N/A N/A textdata replace_header Content-Transfer-Encoding binary N/A N/A N/A textdata set_payload txt utf-8 N/A N/A N/A message attach stmtdata N/A N/A N/A message attach textdata N/A r N/A N/A N/A self client post N/A reverse lrs:statements N/A N/A message as_string content_type multipart/mixed; boundary=myboundary Authorization N/A self auth X_Experience_API_Version N/A settings XAPI_VERSION N/A N/A N/A self assertEqual N/A r status_code 200 N/A test_multiple_stmt_multipart N/A N/A self N/A N/A N/A stmt N/A N/A actor verb object attachments N/A mbox mailto:tom@example.com N/A id http://tom.com/verb/butted N/A id act:tom.com/objs/heads N/A N/A usageType display description contentType length sha2 http://example.com/attachment-usage/test N/A en-US A test attachment N/A en-US A test attachment (description) text/plain; charset=utf-8 27 N/A actor verb object attachments N/A mbox mailto:tom2@example.com N/A id http://tom.com/verb/butted N/A id act:tom.com/objs/heads2 N/A N/A usageType display description contentType length sha2 http://example.com/attachment-usage/test2 N/A en-US A test attachment2 N/A en-US A test attachment (description)2 text/plain; charset=utf-8 23 N/A message N/A MIMEMultipart boundary myboundary N/A txt howdy.. this is a text attachment N/A txtsha N/A N/A N/A N/A hashlib sha256 txt hexdigest N/A N/A N/A N/A N/A stmt N/A 0 N/A attachments N/A 0 N/A sha2 N/A str txtsha N/A txt2 This is second attachment. N/A txtsha2 N/A N/A N/A N/A hashlib sha256 txt2 hexdigest N/A N/A N/A N/A N/A stmt N/A 1 N/A attachments N/A 0 N/A sha2 N/A str txtsha2 N/A stmtdata N/A MIMEApplication N/A N/A json dumps stmt _subtype json _encoder N/A json JSONEncoder N/A textdata N/A MIMEText txt plain utf-8 N/A textdata2 N/A MIMEText txt2 plain utf-8 N/A N/A N/A textdata add_header X-Experience-API-Hash txtsha N/A N/A N/A textdata2 add_header X-Experience-API-Hash txtsha2 N/A N/A N/A textdata replace_header Content-Transfer-Encoding binary N/A N/A N/A textdata2 replace_header Content-Transfer-Encoding binary N/A N/A N/A textdata set_payload txt utf-8 N/A N/A N/A textdata2 set_payload txt2 utf-8 N/A N/A N/A message attach stmtdata N/A N/A N/A message attach textdata N/A N/A N/A message attach textdata2 N/A r N/A N/A N/A self client post N/A reverse lrs:statements N/A N/A message as_string content_type multipart/mixed Authorization N/A self auth X_Experience_API_Version N/A settings XAPI_VERSION N/A N/A N/A self assertEqual N/A r status_code 200 N/A returned_ids N/A N/A json loads N/A r content N/A stmt_id1 N/A returned_ids N/A 0 N/A stmt_id2 N/A returned_ids N/A 1 N/A saved_stmt1 N/A N/A N/A Statement objects get statement_id stmt_id1 N/A saved_stmt2 N/A N/A N/A Statement objects get statement_id stmt_id2 N/A stmts N/A N/A N/A Statement objects all N/A attachments N/A N/A N/A StatementAttachment objects all N/A N/A N/A self assertEqual N/A len stmts 2 N/A N/A N/A self assertEqual N/A len attachments 2 N/A N/A N/A self assertEqual N/A N/A N/A N/A N/A N/A N/A saved_stmt1 stmt_attachments all N/A 0 payload read howdy.. this is a text attachment N/A N/A N/A self assertEqual N/A N/A N/A N/A N/A N/A N/A saved_stmt2 stmt_attachments all N/A 0 payload read This is second attachment. N/A test_multiple_stmt_multipart_same_attachment N/A N/A self N/A N/A N/A stmt N/A N/A actor verb object attachments N/A mbox mailto:tom@example.com N/A id http://tom.com/verb/butted N/A id act:tom.com/objs/heads N/A N/A usageType display description contentType length sha2 http://example.com/attachment-usage/test N/A en-US A test attachment N/A en-US A test attachment (description) text/plain; charset=utf-8 27 N/A actor verb object attachments N/A mbox mailto:tom2@example.com N/A id http://tom.com/verb/butted N/A id act:tom.com/objs/heads2 N/A N/A usageType display description contentType length sha2 http://example.com/attachment-usage/test N/A en-US A test attachment N/A en-US A test attachment (description) text/plain; charset=utf-8 27 N/A message N/A MIMEMultipart boundary myboundary N/A txt howdy.. this is a text attachment N/A txtsha N/A N/A N/A N/A hashlib sha256 txt hexdigest N/A N/A N/A N/A N/A stmt N/A 0 N/A attachments N/A 0 N/A sha2 N/A str txtsha N/A N/A N/A N/A N/A stmt N/A 1 N/A attachments N/A 0 N/A sha2 N/A str txtsha N/A stmtdata N/A MIMEApplication N/A N/A json dumps stmt _subtype json _encoder N/A json JSONEncoder N/A textdata N/A MIMEText txt plain utf-8 N/A N/A N/A textdata add_header X-Experience-API-Hash txtsha N/A N/A N/A textdata replace_header Content-Transfer-Encoding binary N/A N/A N/A textdata set_payload txt utf-8 N/A N/A N/A message attach stmtdata N/A N/A N/A message attach textdata N/A r N/A N/A N/A self client post N/A reverse lrs:statements N/A N/A message as_string content_type multipart/mixed Authorization N/A self auth X_Experience_API_Version N/A settings XAPI_VERSION N/A N/A N/A self assertEqual N/A r status_code 200 N/A returned_ids N/A N/A json loads N/A r content N/A stmt_id1 N/A returned_ids N/A 0 N/A stmt_id2 N/A returned_ids N/A 1 N/A saved_stmt1 N/A N/A N/A Statement objects get statement_id stmt_id1 N/A saved_stmt2 N/A N/A N/A Statement objects get statement_id stmt_id2 N/A stmts N/A N/A N/A Statement objects all N/A attachments N/A N/A N/A StatementAttachment objects all N/A N/A N/A self assertEqual N/A len stmts 2 N/A N/A N/A self assertEqual N/A len attachments 2 N/A N/A N/A self assertEqual N/A N/A N/A N/A N/A N/A N/A saved_stmt1 stmt_attachments all N/A 0 payload read howdy.. this is a text attachment N/A N/A N/A self assertEqual N/A N/A N/A N/A N/A N/A N/A saved_stmt2 stmt_attachments all N/A 0 payload read howdy.. this is a text attachment N/A test_multiple_stmt_multipart_one_attachment_one_fileurl N/A N/A self N/A N/A N/A stmt N/A N/A actor verb object attachments N/A mbox mailto:tom@example.com N/A id http://tom.com/verb/butted N/A id act:tom.com/objs/heads N/A N/A usageType display description contentType length sha2 http://example.com/attachment-usage/test N/A en-US A test attachment N/A en-US A test attachment (description) text/plain; charset=utf-8 27 N/A actor verb object attachments N/A mbox mailto:tom2@example.com N/A id http://tom.com/verb/butted N/A id act:tom.com/objs/heads2 N/A N/A usageType display description contentType length fileUrl http://example.com/attachment-usage/test N/A en-US A test attachment N/A en-US A test attachment (description) text/plain; charset=utf-8 27 http://my/file/url N/A message N/A MIMEMultipart boundary myboundary N/A txt howdy.. this is a text attachment N/A txtsha N/A N/A N/A N/A hashlib sha256 txt hexdigest N/A N/A N/A N/A N/A stmt N/A 0 N/A attachments N/A 0 N/A sha2 N/A str txtsha N/A stmtdata N/A MIMEApplication N/A N/A json dumps stmt _subtype json _encoder N/A json JSONEncoder N/A textdata N/A MIMEText txt plain utf-8 N/A N/A N/A textdata add_header X-Experience-API-Hash txtsha N/A N/A N/A textdata replace_header Content-Transfer-Encoding binary N/A N/A N/A textdata set_payload txt utf-8 N/A N/A N/A message attach stmtdata N/A N/A N/A message attach textdata N/A r N/A N/A N/A self client post N/A reverse lrs:statements N/A N/A message as_string content_type multipart/mixed Authorization N/A self auth X_Experience_API_Version N/A settings XAPI_VERSION N/A N/A N/A self assertEqual N/A r status_code 200 N/A returned_ids N/A N/A json loads N/A r content N/A stmt_id1 N/A returned_ids N/A 0 N/A stmt_id2 N/A returned_ids N/A 1 N/A saved_stmt1 N/A N/A N/A Statement objects get statement_id stmt_id1 N/A saved_stmt2 N/A N/A N/A Statement objects get statement_id stmt_id2 N/A stmts N/A N/A N/A Statement objects all N/A attachments N/A N/A N/A StatementAttachment objects all N/A N/A N/A self assertEqual N/A len stmts 2 N/A N/A N/A self assertEqual N/A len attachments 2 N/A N/A N/A self assertEqual N/A N/A N/A N/A N/A N/A N/A saved_stmt1 stmt_attachments all N/A 0 payload read howdy.. this is a text attachment N/A N/A N/A self assertEqual N/A N/A N/A N/A N/A N/A saved_stmt2 stmt_attachments all N/A 0 canonical_data N/A fileUrl http://my/file/url N/A test_multiple_stmt_multipart_multiple_attachments_each N/A N/A self N/A N/A N/A stmt N/A N/A actor verb object attachments N/A mbox mailto:tom@example.com N/A id http://tom.com/verb/butted N/A id act:tom.com/objs/heads N/A N/A usageType display description contentType length sha2 http://example.com/attachment-usage/test11 N/A en-US A test attachment11 N/A en-US A test attachment (description)11 text/plain; charset=utf-8 27 N/A usageType display description contentType length sha2 http://example.com/attachment-usage/test12 N/A en-US A test attachment12 N/A en-US A test attachment (description)12 text/plain; charset=utf-8 27 N/A actor verb object attachments N/A mbox mailto:tom2@example.com N/A id http://tom.com/verb/butted N/A id act:tom.com/objs/heads2 N/A N/A usageType display description contentType length sha2 http://example.com/attachment-usage/test21 N/A en-US A test attachment21 N/A en-US A test attachment (description)21 text/plain; charset=utf-8 23 N/A usageType display description contentType length sha2 http://example.com/attachment-usage/test22 N/A en-US A test attachment22 N/A en-US A test attachment (description)22 text/plain; charset=utf-8 23 N/A message N/A MIMEMultipart boundary myboundary N/A txt11 This is a text attachment11 N/A txtsha11 N/A N/A N/A N/A hashlib sha256 txt11 hexdigest N/A N/A N/A N/A N/A stmt N/A 0 N/A attachments N/A 0 N/A sha2 N/A str txtsha11 N/A txt12 This is a text attachment12 N/A txtsha12 N/A N/A N/A N/A hashlib sha256 txt12 hexdigest N/A N/A N/A N/A N/A stmt N/A 0 N/A attachments N/A 1 N/A sha2 N/A str txtsha12 N/A txt21 This is a text attachment21 N/A txtsha21 N/A N/A N/A N/A hashlib sha256 txt21 hexdigest N/A N/A N/A N/A N/A stmt N/A 1 N/A attachments N/A 0 N/A sha2 N/A str txtsha21 N/A txt22 This is a text attachment22 N/A txtsha22 N/A N/A N/A N/A hashlib sha256 txt22 hexdigest N/A N/A N/A N/A N/A stmt N/A 1 N/A attachments N/A 1 N/A sha2 N/A str txtsha22 N/A stmtdata N/A MIMEApplication N/A N/A json dumps stmt _subtype json _encoder N/A json JSONEncoder N/A textdata11 N/A MIMEText txt11 plain utf-8 N/A textdata12 N/A MIMEText txt12 plain utf-8 N/A textdata21 N/A MIMEText txt21 plain utf-8 N/A textdata22 N/A MIMEText txt22 plain utf-8 N/A N/A N/A textdata11 add_header X-Experience-API-Hash txtsha11 N/A N/A N/A textdata12 add_header X-Experience-API-Hash txtsha12 N/A N/A N/A textdata21 add_header X-Experience-API-Hash txtsha21 N/A N/A N/A textdata22 add_header X-Experience-API-Hash txtsha22 N/A N/A N/A textdata11 replace_header Content-Transfer-Encoding binary N/A N/A N/A textdata12 replace_header Content-Transfer-Encoding binary N/A N/A N/A textdata21 replace_header Content-Transfer-Encoding binary N/A N/A N/A textdata22 replace_header Content-Transfer-Encoding binary N/A N/A N/A textdata11 set_payload txt11 utf-8 N/A N/A N/A textdata12 set_payload txt12 utf-8 N/A N/A N/A textdata21 set_payload txt21 utf-8 N/A N/A N/A textdata22 set_payload txt22 utf-8 N/A N/A N/A message attach stmtdata N/A N/A N/A message attach textdata11 N/A N/A N/A message attach textdata12 N/A N/A N/A message attach textdata21 N/A N/A N/A message attach textdata22 N/A r N/A N/A N/A self client post N/A reverse lrs:statements N/A N/A message as_string content_type multipart/mixed Authorization N/A self auth X_Experience_API_Version N/A settings XAPI_VERSION N/A N/A N/A self assertEqual N/A r status_code 200 N/A returned_ids N/A N/A json loads N/A r content N/A stmt_id1 N/A returned_ids N/A 0 N/A stmt_id2 N/A returned_ids N/A 1 N/A saved_stmt1 N/A N/A N/A Statement objects get statement_id stmt_id1 N/A saved_stmt2 N/A N/A N/A Statement objects get statement_id stmt_id2 N/A stmts N/A N/A N/A Statement objects all N/A attachments N/A N/A N/A StatementAttachment objects all N/A N/A N/A self assertEqual N/A len stmts 2 N/A N/A N/A self assertEqual N/A len attachments 4 N/A stmt1_contents N/A This is a text attachment11 This is a text attachment12 N/A stmt2_contents N/A This is a text attachment21 This is a text attachment22 N/A N/A N/A self assertIn N/A N/A N/A N/A N/A N/A N/A saved_stmt1 stmt_attachments all N/A 0 payload read stmt1_contents N/A N/A N/A self assertIn N/A N/A N/A N/A N/A N/A N/A saved_stmt1 stmt_attachments all N/A 1 payload read stmt1_contents N/A N/A N/A self assertIn N/A N/A N/A N/A N/A N/A N/A saved_stmt2 stmt_attachments all N/A 0 payload read stmt2_contents N/A N/A N/A self assertIn N/A N/A N/A N/A N/A N/A N/A saved_stmt2 stmt_attachments all N/A 1 payload read stmt2_contents N/A test_multipart_wrong_sha N/A N/A self N/A N/A N/A stmt N/A actor verb object attachments N/A mbox mailto:tom@example.com N/A id http://tom.com/verb/butted N/A id act:tom.com/objs/heads N/A N/A usageType display description contentType length sha2 http://example.com/attachment-usage/test N/A en-US A test attachment N/A en-US A test attachment (description) text/plain; charset=utf-8 27 N/A message N/A MIMEMultipart boundary myboundary N/A txt howdy.. this is a text attachment N/A txtsha N/A N/A N/A N/A hashlib sha256 txt hexdigest N/A wrongtxt blahblahblah this is wrong N/A wrongsha N/A N/A N/A N/A hashlib sha256 wrongtxt hexdigest N/A N/A N/A N/A stmt N/A attachments N/A 0 N/A sha2 N/A str wrongsha N/A stmtdata N/A MIMEApplication N/A N/A json dumps stmt _subtype json _encoder N/A json JSONEncoder N/A textdata N/A MIMEText txt plain utf-8 N/A N/A N/A textdata add_header X-Experience-API-Hash txtsha N/A N/A N/A textdata replace_header Content-Transfer-Encoding binary N/A N/A N/A textdata set_payload txt utf-8 N/A N/A N/A message attach stmtdata N/A N/A N/A message attach textdata N/A r N/A N/A N/A self client post N/A reverse lrs:statements N/A N/A message as_string content_type multipart/mixed Authorization N/A self auth X_Experience_API_Version N/A settings XAPI_VERSION N/A N/A N/A self assertEqual N/A r status_code 400 N/A N/A N/A self assertIn Could not find attachment payload with sha N/A r content N/A test_multiple_multipart N/A N/A self N/A N/A N/A stmt N/A actor verb object attachments N/A mbox mailto:tom@example.com N/A id http://tom.com/verb/butted N/A id act:tom.com/objs/heads N/A N/A usageType display description contentType length sha2 http://example.com/attachment-usage/test N/A en-US A test attachment N/A en-US A test attachment (description) text/plain; charset=utf-8 27 N/A usageType display description contentType length sha2 http://example.com/attachment-usage/test N/A en-US A test attachment2 N/A en-US A test attachment (description)2 text/plain; charset=utf-8 28 N/A message N/A MIMEMultipart boundary myboundary N/A txt howdy.. this is a text attachment N/A txtsha N/A N/A N/A N/A hashlib sha256 txt hexdigest N/A N/A N/A N/A stmt N/A attachments N/A 0 N/A sha2 N/A str txtsha N/A txt2 this is second attachment N/A txtsha2 N/A N/A N/A N/A hashlib sha256 txt2 hexdigest N/A N/A N/A N/A stmt N/A attachments N/A 1 N/A sha2 N/A str txtsha2 N/A stmtdata N/A MIMEApplication N/A N/A json dumps stmt _subtype json _encoder N/A json JSONEncoder N/A textdata N/A MIMEText txt plain utf-8 N/A N/A N/A textdata add_header X-Experience-API-Hash txtsha N/A N/A N/A textdata replace_header Content-Transfer-Encoding binary N/A N/A N/A textdata set_payload txt utf-8 N/A textdata2 N/A MIMEText txt2 plain utf-8 N/A N/A N/A textdata2 add_header X-Experience-API-Hash txtsha2 N/A N/A N/A textdata2 replace_header Content-Transfer-Encoding binary N/A N/A N/A textdata2 set_payload txt2 utf-8 N/A N/A N/A message attach stmtdata N/A N/A N/A message attach textdata N/A N/A N/A message attach textdata2 N/A r N/A N/A N/A self client post N/A reverse lrs:statements N/A N/A message as_string content_type multipart/mixed Authorization N/A self auth X_Experience_API_Version N/A settings XAPI_VERSION N/A N/A N/A self assertEqual N/A r status_code 200 N/A test_multiple_multipart_wrong N/A N/A self N/A N/A N/A stmt N/A actor verb object attachments N/A mbox mailto:tom@example.com N/A id http://tom.com/verb/butted N/A id act:tom.com/objs/heads N/A N/A usageType display description contentType length sha2 http://example.com/attachment-usage/test N/A en-US A test attachment N/A en-US A test attachment (description) text/plain; charset=utf-8 27 N/A usageType display description contentType length sha2 http://example.com/attachment-usage/test N/A en-US A test attachment2 N/A en-US A test attachment (description)2 text/plain; charset=utf-8 28 N/A message N/A MIMEMultipart boundary myboundary N/A txt howdy.. this is a text attachment N/A txtsha N/A N/A N/A N/A hashlib sha256 txt hexdigest N/A N/A N/A N/A stmt N/A attachments N/A 0 N/A sha2 N/A str txtsha N/A txt2 this is second attachment N/A txtsha2 N/A N/A N/A N/A hashlib sha256 txt2 hexdigest N/A wrongtxt this is some wrong text N/A wrongsha2 N/A N/A N/A N/A hashlib sha256 wrongtxt hexdigest N/A N/A N/A N/A stmt N/A attachments N/A 1 N/A sha2 N/A str wrongsha2 N/A stmtdata N/A MIMEApplication N/A N/A json dumps stmt _subtype json _encoder N/A json JSONEncoder N/A textdata N/A MIMEText txt plain utf-8 N/A N/A N/A textdata add_header X-Experience-API-Hash txtsha N/A N/A N/A textdata replace_header Content-Transfer-Encoding binary N/A N/A N/A textdata set_payload txt utf-8 N/A textdata2 N/A MIMEText txt2 plain utf-8 N/A N/A N/A textdata2 add_header X-Experience-API-Hash txtsha2 N/A N/A N/A textdata2 replace_header Content-Transfer-Encoding binary N/A N/A N/A textdata2 set_payload txt2 utf-8 N/A N/A N/A message attach stmtdata N/A N/A N/A message attach textdata N/A N/A N/A message attach textdata2 N/A r N/A N/A N/A self client post N/A reverse lrs:statements N/A N/A message as_string content_type multipart/mixed Authorization N/A self auth X_Experience_API_Version N/A settings XAPI_VERSION N/A N/A N/A self assertEqual N/A r status_code 400 N/A N/A N/A self assertIn Could not find attachment payload with sha N/A r content N/A test_app_json_multipart N/A N/A self N/A N/A N/A stmt N/A actor verb object attachments N/A mbox mailto:tom@example.com N/A id http://tom.com/verb/butted N/A id act:tom.com/objs/heads N/A N/A usageType display description contentType length fileUrl http://example.com/attachment-usage/test N/A en-US A test attachment N/A en-US A test attachment (description) text/plain; charset=utf-8 27 http://my/file/url N/A response N/A N/A N/A self client post N/A reverse lrs:statements N/A N/A json dumps stmt content_type application/json Authorization N/A self auth X_Experience_API_Version N/A settings XAPI_VERSION N/A N/A N/A self assertEqual N/A response status_code 200 N/A test_app_json_multipart_wrong_fields N/A N/A self N/A N/A N/A stmt N/A actor verb object attachments N/A mbox mailto:tom@example.com N/A id http://tom.com/verb/butted N/A id act:tom.com/objs/heads N/A N/A usageType display description bad contentType length fileUrl http://example.com/attachment-usage/test N/A en-US A test attachment N/A en-US A test attachment (description) foo text/plain; charset=utf-8 27 http://my/file/url N/A response N/A N/A N/A self client post N/A reverse lrs:statements N/A N/A json dumps stmt content_type application/json Authorization N/A self auth X_Experience_API_Version N/A settings XAPI_VERSION N/A N/A N/A self assertEqual N/A response status_code 400 N/A N/A N/A self assertEqual N/A response content Invalid field(s) found in Attachment - bad N/A test_app_json_multipart_one_fileURL N/A N/A self N/A N/A N/A stmt N/A N/A actor verb object attachments N/A mbox mailto:tom@example.com N/A id http://tom.com/verb/butted N/A id act:tom.com/objs/heads N/A N/A usageType display description contentType length fileUrl http://example.com/attachment-usage/test N/A en-US A test attachment N/A en-US A test attachment (description) text/plain; charset=utf-8 27 http://my/file/url N/A actor verb object attachments N/A mbox mailto:tom1@example.com N/A id http://tom.com/verb/butted N/A id act:tom.com/objs/heads1 N/A N/A usageType display description contentType length fileUrl http://example.com/attachment-usage/test N/A en-US A test attachment N/A en-US A test attachment (description) text/plain; charset=utf-8 27 http://my/file/url N/A response N/A N/A N/A self client post N/A reverse lrs:statements N/A N/A json dumps stmt content_type application/json Authorization N/A self auth X_Experience_API_Version N/A settings XAPI_VERSION N/A N/A N/A self assertEqual N/A response status_code 200 N/A returned_ids N/A N/A json loads N/A response content N/A stmt_id1 N/A returned_ids N/A 0 N/A stmt_id2 N/A returned_ids N/A 1 N/A saved_stmt1 N/A N/A N/A Statement objects get statement_id stmt_id1 N/A saved_stmt2 N/A N/A N/A Statement objects get statement_id stmt_id2 N/A stmts N/A N/A N/A Statement objects all N/A attachments N/A N/A N/A StatementAttachment objects all N/A N/A N/A self assertEqual N/A len stmts 2 N/A N/A N/A self assertEqual N/A len attachments 2 N/A N/A N/A self assertEqual N/A N/A N/A N/A N/A N/A saved_stmt1 stmt_attachments all N/A 0 canonical_data N/A fileUrl http://my/file/url N/A N/A N/A self assertEqual N/A N/A N/A N/A N/A N/A saved_stmt2 stmt_attachments all N/A 0 canonical_data N/A fileUrl http://my/file/url N/A tyler_attachment_snafu N/A N/A self N/A N/A N/A stmt N/A actor verb object attachments N/A mbox name objectType mailto:tyler.mulligan.ctr@adlnet.gov Tyler Agent N/A id display http://example.com/verbs/answered N/A en-US answered N/A id definition objectType http://adlnet.gov/expapi/activities/example N/A name description N/A en-US Example Activity N/A en-US Example activity description Activity N/A N/A usageType display contentType length sha2 http://cool.com/cool/cool N/A en-US My attachment image/jpeg 12345 f522a694d7fc5c38d7c604f63c87c9f74dcd002e N/A response N/A N/A N/A self client post N/A reverse lrs:statements N/A N/A json dumps stmt content_type application/json Authorization N/A self auth X_Experience_API_Version N/A settings XAPI_VERSION N/A N/A N/A self assertEqual N/A response status_code 400 N/A N/A N/A self assertEqual N/A response content Missing X-Experience-API-Hash field in header N/A test_app_json_multipart_no_fileUrl N/A N/A self N/A N/A N/A stmt N/A actor verb object attachments N/A mbox mailto:tom@example.com N/A id http://tom.com/verb/butted N/A id act:tom.com/objs/heads N/A N/A usageType display description contentType length http://example.com/attachment-usage/test N/A en-US A test attachment N/A en-US A test attachment (description) text/plain; charset=utf-8 27 N/A response N/A N/A N/A self client post N/A reverse lrs:statements N/A N/A json dumps stmt content_type application/json Authorization N/A self auth X_Experience_API_Version N/A settings XAPI_VERSION N/A N/A N/A self assertEqual N/A response status_code 400 N/A N/A N/A self assertIn Attachment sha2 is required when no fileUrl is given N/A response content N/A test_multiple_app_json_multipart_no_fileUrl N/A N/A self N/A N/A N/A stmt N/A actor verb object attachments N/A mbox mailto:tom@example.com N/A id http://tom.com/verb/butted N/A id act:tom.com/objs/heads N/A N/A usageType display description contentType length fileUrl http://example.com/attachment-usage/test N/A en-US A test attachment N/A en-US A test attachment (description) text/plain; charset=utf-8 27 http://some/url N/A usageType display description contentType length fileUrl http://example.com/attachment-usage/test N/A en-US A test attachment2 N/A en-US A test attachment (description)2 text/plain; charset=utf-8 28 N/A response N/A N/A N/A self client post N/A reverse lrs:statements N/A N/A json dumps stmt content_type application/json Authorization N/A self auth X_Experience_API_Version N/A settings XAPI_VERSION N/A N/A N/A self assertEqual N/A response status_code 400 N/A N/A N/A self assertIn Attachments fileUrl with value  was not a valid IRI N/A response content N/A test_multipart_put N/A N/A self N/A N/A N/A stmt_id N/A str N/A N/A uuid uuid1 N/A stmt N/A id actor verb object attachments stmt_id N/A mbox mailto:tom@example.com N/A id http://tom.com/verb/butted N/A id act:tom.com/objs/heads N/A N/A usageType display description contentType length sha2 http://example.com/attachment-usage/test N/A en-US A test attachment N/A en-US A test attachment (description) text/plain; charset=utf-8 27 N/A message N/A MIMEMultipart boundary myboundary N/A txt howdy.. this is a text attachment N/A txtsha N/A N/A N/A N/A hashlib sha256 txt hexdigest N/A N/A N/A N/A stmt N/A attachments N/A 0 N/A sha2 N/A str txtsha N/A stmtdata N/A MIMEApplication N/A N/A json dumps stmt _subtype json _encoder N/A json JSONEncoder N/A textdata N/A MIMEText txt plain utf-8 N/A N/A N/A textdata add_header X-Experience-API-Hash txtsha N/A N/A N/A textdata replace_header Content-Transfer-Encoding binary N/A N/A N/A textdata set_payload txt utf-8 N/A N/A N/A message attach stmtdata N/A N/A N/A message attach textdata N/A param N/A statementId stmt_id N/A path N/A %s?%s N/A N/A reverse lrs:statements N/A N/A urllib urlencode param N/A r N/A N/A N/A self client put path N/A N/A message as_string content_type multipart/mixed Authorization N/A self auth X_Experience_API_Version N/A settings XAPI_VERSION N/A N/A N/A self assertEqual N/A r status_code 204 N/A test_multipart_wrong_sha_put N/A N/A self N/A N/A N/A stmt_id N/A str N/A N/A uuid uuid1 N/A stmt N/A id actor verb object attachments stmt_id N/A mbox mailto:tom@example.com N/A id http://tom.com/verb/butted N/A id act:tom.com/objs/heads N/A N/A usageType display description contentType length sha2 http://example.com/attachment-usage/test N/A en-US A test attachment N/A en-US A test attachment (description) text/plain; charset=utf-8 27 N/A message N/A MIMEMultipart boundary myboundary N/A txt howdy.. this is a text attachment N/A txtsha N/A N/A N/A N/A hashlib sha256 txt hexdigest N/A wrongtxt blahblahblah this is wrong N/A wrongsha N/A N/A N/A N/A hashlib sha256 wrongtxt hexdigest N/A N/A N/A N/A stmt N/A attachments N/A 0 N/A sha2 N/A str wrongsha N/A stmtdata N/A MIMEApplication N/A N/A json dumps stmt _subtype json _encoder N/A json JSONEncoder N/A textdata N/A MIMEText txt plain utf-8 N/A N/A N/A textdata add_header X-Experience-API-Hash txtsha N/A N/A N/A textdata replace_header Content-Transfer-Encoding binary N/A N/A N/A textdata set_payload txt utf-8 N/A N/A N/A message attach stmtdata N/A N/A N/A message attach textdata N/A param N/A statementId stmt_id N/A path N/A %s?%s N/A N/A reverse lrs:statements N/A N/A urllib urlencode param N/A r N/A N/A N/A self client put path N/A N/A message as_string content_type multipart/mixed Authorization N/A self auth X_Experience_API_Version N/A settings XAPI_VERSION N/A N/A N/A self assertEqual N/A r status_code 400 N/A N/A N/A self assertIn Could not find attachment payload with sha N/A r content N/A test_multiple_multipart_put N/A N/A self N/A N/A N/A stmt_id N/A str N/A N/A uuid uuid1 N/A stmt N/A id actor verb object attachments stmt_id N/A mbox mailto:tom@example.com N/A id http://tom.com/verb/butted N/A id act:tom.com/objs/heads N/A N/A usageType display description contentType length sha2 http://example.com/attachment-usage/test N/A en-US A test attachment N/A en-US A test attachment (description) text/plain; charset=utf-8 27 N/A usageType display description contentType length sha2 http://example.com/attachment-usage/test N/A en-US A test attachment2 N/A en-US A test attachment (description)2 text/plain; charset=utf-8 28 N/A message N/A MIMEMultipart boundary myboundary N/A txt howdy.. this is a text attachment N/A txtsha N/A N/A N/A N/A hashlib sha256 txt hexdigest N/A N/A N/A N/A stmt N/A attachments N/A 0 N/A sha2 N/A str txtsha N/A txt2 this is second attachment N/A txtsha2 N/A N/A N/A N/A hashlib sha256 txt2 hexdigest N/A N/A N/A N/A stmt N/A attachments N/A 1 N/A sha2 N/A str txtsha2 N/A stmtdata N/A MIMEApplication N/A N/A json dumps stmt _subtype json _encoder N/A json JSONEncoder N/A textdata N/A MIMEText txt plain utf-8 N/A N/A N/A textdata add_header X-Experience-API-Hash txtsha N/A N/A N/A textdata replace_header Content-Transfer-Encoding binary N/A N/A N/A textdata set_payload txt utf-8 N/A textdata2 N/A MIMEText txt2 plain utf-8 N/A N/A N/A textdata2 add_header X-Experience-API-Hash txtsha2 N/A N/A N/A textdata2 replace_header Content-Transfer-Encoding binary N/A N/A N/A textdata2 set_payload txt2 utf-8 N/A N/A N/A message attach stmtdata N/A N/A N/A message attach textdata N/A N/A N/A message attach textdata2 N/A param N/A statementId stmt_id N/A path N/A %s?%s N/A N/A reverse lrs:statements N/A N/A urllib urlencode param N/A r N/A N/A N/A self client put path N/A N/A message as_string content_type multipart/mixed Authorization N/A self auth X_Experience_API_Version N/A settings XAPI_VERSION N/A N/A N/A self assertEqual N/A r status_code 204 N/A test_multiple_multipart_put_wrong_attachment N/A N/A self N/A N/A N/A stmt_id N/A str N/A N/A uuid uuid1 N/A stmt N/A id actor verb object attachments stmt_id N/A mbox mailto:tom@example.com N/A id http://tom.com/verb/butted N/A id act:tom.com/objs/heads N/A N/A usageType display description contentType length sha2 http://example.com/attachment-usage/test N/A en-US A test attachment N/A en-US A test attachment (description) text/plain; charset=utf-8 27 N/A usageType display description contentType length sha2 http://example.com/attachment-usage/test N/A en-US A test attachment2 N/A en-US A test attachment (description)2 text/plain; charset=utf-8 28 N/A message N/A MIMEMultipart boundary myboundary N/A txt howdy.. this is a text attachment N/A txtsha N/A N/A N/A N/A hashlib sha256 txt hexdigest N/A N/A N/A N/A stmt N/A attachments N/A 0 N/A sha2 N/A str txtsha N/A txt2 this is second attachment N/A txtsha2 N/A N/A N/A N/A hashlib sha256 txt2 hexdigest N/A wrongtxt this is some wrong text N/A wrongsha2 N/A N/A N/A N/A hashlib sha256 wrongtxt hexdigest N/A N/A N/A N/A stmt N/A attachments N/A 1 N/A sha2 N/A str wrongsha2 N/A stmtdata N/A MIMEApplication N/A N/A json dumps stmt _subtype json _encoder N/A json JSONEncoder N/A textdata N/A MIMEText txt plain utf-8 N/A N/A N/A textdata add_header X-Experience-API-Hash txtsha N/A N/A N/A textdata replace_header Content-Transfer-Encoding binary N/A N/A N/A textdata set_payload txt utf-8 N/A textdata2 N/A MIMEText txt2 plain utf-8 N/A N/A N/A textdata2 add_header X-Experience-API-Hash txtsha2 N/A N/A N/A textdata2 replace_header Content-Transfer-Encoding binary N/A N/A N/A textdata2 set_payload txt2 utf-8 N/A N/A N/A message attach stmtdata N/A N/A N/A message attach textdata N/A N/A N/A message attach textdata2 N/A param N/A statementId stmt_id N/A path N/A %s?%s N/A N/A reverse lrs:statements N/A N/A urllib urlencode param N/A r N/A N/A N/A self client put path N/A N/A message as_string content_type multipart/mixed Authorization N/A self auth X_Experience_API_Version N/A settings XAPI_VERSION N/A N/A N/A self assertEqual N/A r status_code 400 N/A N/A N/A self assertIn Could not find attachment payload with sha N/A r content N/A test_app_json_multipart_put N/A N/A self N/A N/A N/A stmt_id N/A str N/A N/A uuid uuid1 N/A stmt N/A id actor verb object attachments stmt_id N/A mbox mailto:tom@example.com N/A id http://tom.com/verb/butted N/A id act:tom.com/objs/heads N/A N/A usageType display description contentType length fileUrl http://example.com/attachment-usage/test N/A en-US A test attachment N/A en-US A test attachment (description) text/plain; charset=utf-8 27 http://my/file/url N/A param N/A statementId stmt_id N/A path N/A %s?%s N/A N/A reverse lrs:statements N/A N/A urllib urlencode param N/A response N/A N/A N/A self client put path N/A N/A json dumps stmt content_type application/json Authorization N/A self auth X_Experience_API_Version N/A settings XAPI_VERSION N/A N/A N/A self assertEqual N/A response status_code 204 N/A test_app_json_multipart_not_array N/A N/A self N/A N/A N/A stmt_id N/A str N/A N/A uuid uuid1 N/A stmt N/A id actor verb object attachments stmt_id N/A mbox mailto:tom@example.com N/A id http://tom.com/verb/butted N/A id act:tom.com/objs/heads wrong N/A param N/A statementId stmt_id N/A path N/A %s?%s N/A N/A reverse lrs:statements N/A N/A urllib urlencode param N/A response N/A N/A N/A self client put path N/A N/A json dumps stmt content_type application/json Authorization N/A self auth X_Experience_API_Version N/A settings XAPI_VERSION N/A N/A N/A self assertEqual N/A response status_code 400 N/A N/A N/A self assertEqual N/A response content Attachments is not a properly formatted array N/A test_app_json_multipart_no_fileUrl_put N/A N/A self N/A N/A N/A stmt_id N/A str N/A N/A uuid uuid1 N/A stmt N/A id actor verb object attachments stmt_id N/A mbox mailto:tom@example.com N/A id http://tom.com/verb/butted N/A id act:tom.com/objs/heads N/A N/A usageType display description contentType length http://example.com/attachment-usage/test N/A en-US A test attachment N/A en-US A test attachment (description) text/plain; charset=utf-8 27 N/A param N/A statementId stmt_id N/A path N/A %s?%s N/A N/A reverse lrs:statements N/A N/A urllib urlencode param N/A response N/A N/A N/A self client put path N/A N/A json dumps stmt content_type application/json Authorization N/A self auth X_Experience_API_Version N/A settings XAPI_VERSION N/A N/A N/A self assertEqual N/A response status_code 400 N/A N/A N/A self assertIn Attachment sha2 is required when no fileUrl is given N/A response content N/A test_app_json_invalid_fileUrl N/A N/A self N/A N/A N/A stmt_id N/A str N/A N/A uuid uuid1 N/A stmt N/A id actor verb object attachments stmt_id N/A mbox mailto:tom@example.com N/A id http://tom.com/verb/butted N/A id act:tom.com/objs/heads N/A N/A usageType display description contentType length fileUrl http://example.com/attachment-usage/test N/A en-US A test attachment N/A en-US A test attachment (description) text/plain; charset=utf-8 27 blah N/A param N/A statementId stmt_id N/A path N/A %s?%s N/A N/A reverse lrs:statements N/A N/A urllib urlencode param N/A response N/A N/A N/A self client put path N/A N/A json dumps stmt content_type application/json Authorization N/A self auth X_Experience_API_Version N/A settings XAPI_VERSION N/A N/A N/A self assertEqual N/A response status_code 400 N/A N/A N/A self assertIn Attachments fileUrl with value blah was not a valid IRI N/A response content N/A test_multiple_app_json_multipart_no_fileUrl_put N/A N/A self N/A N/A N/A stmt_id N/A str N/A N/A uuid uuid1 N/A stmt N/A id actor verb object attachments stmt_id N/A mbox mailto:tom@example.com N/A id http://tom.com/verb/butted N/A id act:tom.com/objs/heads N/A N/A usageType display description contentType length fileUrl http://example.com/attachment-usage/test N/A en-US A test attachment N/A en-US A test attachment (description) text/plain; charset=utf-8 27 http://some/url N/A usageType display description contentType length fileUrl http://example.com/attachment-usage/test N/A en-US A test attachment2 N/A en-US A test attachment (description)2 text/plain; charset=utf-8 28 N/A param N/A statementId stmt_id N/A path N/A %s?%s N/A N/A reverse lrs:statements N/A N/A urllib urlencode param N/A response N/A N/A N/A self client put path N/A N/A json dumps stmt content_type application/json Authorization N/A self auth X_Experience_API_Version N/A settings XAPI_VERSION N/A N/A N/A self assertEqual N/A response status_code 400 N/A N/A N/A self assertIn Attachments fileUrl with value  was not a valid IRI N/A response content N/A test_multipart_non_text_file N/A N/A self N/A N/A N/A stmt N/A actor verb object attachments N/A mbox mailto:tom@example.com N/A id http://tom.com/verb/butted N/A id act:tom.com/objs/heads N/A N/A usageType display description contentType length sha2 http://example.com/attachment-usage/test N/A en-US A test picture N/A en-US A test picture (description) image/png 27 N/A message N/A MIMEMultipart boundary myboundary N/A img_path N/A N/A N/A os path abspath N/A N/A N/A os path join N/A N/A N/A os path dirname __file__ .. .. adl_lrs static img example.png N/A img N/A open img_path rb N/A img_data N/A N/A img read N/A N/A N/A img close N/A imgsha N/A N/A N/A N/A hashlib sha256 img_data hexdigest N/A N/A N/A N/A stmt N/A attachments N/A 0 N/A sha2 N/A str imgsha N/A stmtdata N/A MIMEApplication N/A N/A json dumps stmt _subtype json _encoder N/A json JSONEncoder N/A imgdata N/A MIMEImage img_data N/A N/A N/A imgdata add_header X-Experience-API-Hash imgsha N/A N/A N/A imgdata replace_header Content-Transfer-Encoding binary N/A N/A N/A imgdata set_payload img_data N/A N/A N/A message attach stmtdata N/A N/A N/A message attach imgdata N/A r N/A N/A N/A self client post N/A reverse lrs:statements N/A N/A message as_string content_type multipart/mixed Authorization N/A self auth X_Experience_API_Version N/A settings XAPI_VERSION N/A N/A N/A self assertEqual N/A r status_code 200 N/A param N/A attachments True N/A path N/A %s?%s N/A N/A reverse lrs:statements N/A N/A urllib urlencode param N/A r N/A N/A N/A self client get path X_Experience_API_Version N/A settings XAPI_VERSION Authorization N/A self auth N/A N/A N/A self assertEqual N/A r status_code 200 N/A N/A N/A self assertEqual N/A r N/A Content-Type multipart/mixed; boundary=======ADL_LRS====== N/A msg N/A message_from_string N/A Content-Type:multipart/mixed; boundary=======ADL_LRS====== N/A r content N/A N/A N/A self assertTrue N/A N/A msg is_multipart N/A parts N/A N/A part N/A N/A msg walk N/A N/A N/A N/A parts append part N/A N/A N/A self assertEqual N/A N/A parts N/A 1 N/A Content-Type application/json N/A N/A N/A self assertTrue N/A isinstance N/A N/A json loads N/A N/A N/A parts N/A 1 get_payload dict N/A N/A N/A self assertEqual N/A N/A N/A parts N/A 2 get_payload img_data N/A N/A N/A self assertEqual N/A N/A N/A parts N/A 2 get X-Experience-API-Hash imgsha N/A N/A N/A self assertEqual imgsha N/A N/A N/A N/A hashlib sha256 N/A N/A N/A parts N/A 2 get_payload hexdigest N/A N/A N/A self assertEqual N/A N/A N/A parts N/A 2 get Content-Type image/png N/A N/A N/A self assertEqual N/A N/A N/A parts N/A 2 get Content-Transfer-Encoding binary N/A test_example_signed_statement N/A N/A self N/A N/A N/A payload N/A N/A json loads exstmt N/A signature N/A N/A jws sign payload privatekey algorithm RS256 N/A N/A N/A self assertTrue N/A N/A jws verify signature privatekey algorithms N/A RS256 N/A sha2 N/A N/A N/A N/A hashlib sha256 signature hexdigest N/A N/A N/A N/A payload N/A attachments N/A 0 N/A sha2 sha2 N/A message N/A MIMEMultipart N/A stmtdata N/A MIMEApplication N/A N/A json dumps payload _subtype json _encoder N/A json JSONEncoder N/A jwsdata N/A MIMEApplication signature _subtype octet-stream N/A N/A N/A jwsdata add_header X-Experience-API-Hash sha2 N/A N/A N/A jwsdata replace_header Content-Transfer-Encoding binary N/A N/A N/A jwsdata set_payload signature N/A N/A N/A message attach stmtdata N/A N/A N/A message attach jwsdata N/A r N/A N/A N/A self client post N/A reverse lrs:statements N/A N/A message as_string content_type multipart/mixed Authorization N/A self auth X_Experience_API_Version N/A settings XAPI_VERSION N/A N/A N/A self assertEqual N/A r status_code 200 N/A test_example_signed_statement_sha2s_no_match N/A N/A self N/A N/A N/A stmt N/A N/A json loads exstmt N/A N/A stmt N/A actor N/A mbox name objectType mailto:sneaky@example.com Cheater Agent N/A signature N/A N/A jws sign stmt privatekey algorithm RS384 N/A N/A N/A self assertTrue N/A N/A jws verify signature privatekey algorithms N/A RS384 N/A sha2 N/A N/A N/A N/A hashlib sha384 signature hexdigest N/A N/A N/A N/A stmt N/A attachments N/A 0 N/A sha2 sha2 N/A message N/A MIMEMultipart N/A stmtdata N/A MIMEApplication exstmt _subtype json _encoder N/A json JSONEncoder N/A jwsdata N/A MIMEApplication signature _subtype octet-stream N/A N/A N/A jwsdata add_header X-Experience-API-Hash sha2 N/A N/A N/A jwsdata replace_header Content-Transfer-Encoding binary N/A N/A N/A jwsdata set_payload signature N/A N/A N/A message attach stmtdata N/A N/A N/A message attach jwsdata N/A r N/A N/A N/A self client post N/A reverse lrs:statements N/A N/A message as_string content_type multipart/mixed Authorization N/A self auth X_Experience_API_Version N/A settings XAPI_VERSION N/A N/A N/A self assertEqual N/A r status_code 400 N/A N/A N/A self assertEqual N/A r content Signature attachment is missing from request N/A test_example_signed_statement_payloads_no_match N/A N/A self N/A N/A N/A bad_stmt N/A N/A json loads exstmt N/A N/A bad_stmt N/A actor N/A mbox name objectType mailto:sneaky@example.com Cheater Agent N/A signature N/A N/A jws sign bad_stmt privatekey algorithm RS512 N/A N/A N/A self assertTrue N/A N/A jws verify signature privatekey algorithms N/A RS512 N/A sha2 N/A N/A N/A N/A hashlib sha512 signature hexdigest N/A N/A N/A N/A bad_stmt N/A attachments N/A 0 N/A sha2 sha2 N/A good_stmt N/A N/A json loads exstmt N/A N/A N/A N/A good_stmt N/A attachments N/A 0 N/A sha2 sha2 N/A message N/A MIMEMultipart N/A stmtdata N/A MIMEApplication N/A N/A json dumps good_stmt _subtype json _encoder N/A json JSONEncoder N/A jwsdata N/A MIMEApplication signature _subtype octet-stream N/A N/A N/A jwsdata add_header X-Experience-API-Hash sha2 N/A N/A N/A jwsdata replace_header Content-Transfer-Encoding binary N/A N/A N/A jwsdata set_payload signature N/A N/A N/A message attach stmtdata N/A N/A N/A message attach jwsdata N/A r N/A N/A N/A self client post N/A reverse lrs:statements N/A N/A message as_string content_type multipart/mixed Authorization N/A self auth X_Experience_API_Version N/A settings XAPI_VERSION N/A N/A N/A self assertEqual N/A r status_code 400 N/A N/A N/A self assertEqual N/A r content The JWS is not valid - payload and body statements do not match N/A test_example_signed_statement_with_x509_cert N/A N/A self N/A N/A N/A payload N/A N/A json loads exstmt N/A signature N/A N/A jws sign payload privatekey N/A x5c N/A N/A N/A base64 b64encode publickey RS256 N/A N/A N/A self assertTrue N/A N/A jws verify signature privatekey algorithms N/A RS256 N/A sha2 N/A N/A N/A N/A hashlib sha256 signature hexdigest N/A N/A N/A N/A payload N/A attachments N/A 0 N/A sha2 sha2 N/A message N/A MIMEMultipart N/A stmtdata N/A MIMEApplication N/A N/A json dumps payload _subtype json _encoder N/A json JSONEncoder N/A jwsdata N/A MIMEApplication signature _subtype octet-stream N/A N/A N/A jwsdata add_header X-Experience-API-Hash sha2 N/A N/A N/A jwsdata replace_header Content-Transfer-Encoding binary N/A N/A N/A jwsdata set_payload signature N/A N/A N/A message attach stmtdata N/A N/A N/A message attach jwsdata N/A r N/A N/A N/A self client post N/A reverse lrs:statements N/A N/A message as_string content_type multipart/mixed Authorization N/A self auth X_Experience_API_Version N/A settings XAPI_VERSION N/A N/A N/A self assertEqual N/A r status_code 200 N/A test_example_signed_statement_with_x509_cert_wrong N/A N/A self N/A N/A N/A payload N/A N/A json loads exstmt N/A signature N/A N/A jws sign payload privatekey N/A x5c N/A N/A N/A base64 b64encode wrongpublickey RS256 N/A N/A N/A self assertTrue N/A N/A jws verify signature privatekey algorithms N/A RS256 N/A sha2 N/A N/A N/A N/A hashlib sha256 signature hexdigest N/A N/A N/A N/A payload N/A attachments N/A 0 N/A sha2 sha2 N/A message N/A MIMEMultipart N/A stmtdata N/A MIMEApplication N/A N/A json dumps payload _subtype json _encoder N/A json JSONEncoder N/A jwsdata N/A MIMEApplication signature _subtype octet-stream N/A N/A N/A jwsdata add_header X-Experience-API-Hash sha2 N/A N/A N/A jwsdata replace_header Content-Transfer-Encoding binary N/A N/A N/A jwsdata set_payload signature N/A N/A N/A message attach stmtdata N/A N/A N/A message attach jwsdata N/A r N/A N/A N/A self client post N/A reverse lrs:statements N/A N/A message as_string content_type multipart/mixed Authorization N/A self auth X_Experience_API_Version N/A settings XAPI_VERSION N/A N/A N/A self assertEqual N/A r status_code 400 N/A N/A N/A self assertEqual N/A r content The JWS is not valid: Signature verification failed. N/A N/A N/A exstmt {
    "version": "1.0.0",
    "id": "33cff416-e331-4c9d-969e-5373a1756120",
    "actor": {
        "mbox": "mailto:example@example.com",
        "name": "Example Learner",
        "objectType": "Agent"
    },
    "verb": {
        "id": "http://adlnet.gov/expapi/verbs/experienced",
        "display": {
            "en-US": "experienced"
        }
    },
    "object": {
        "id": "https://www.youtube.com/watch?v=xh4kIiH3Sm8",
        "objectType": "Activity",
        "definition": {
            "name": {
                "en-US": "Tax Tips & Information : How to File a Tax Return "
            },
            "description": {
                "en-US": "Filing a tax return will require filling out either a 1040, 1040A or 1040EZ form"
            }
        }
    },
    "timestamp": "2013-04-01T12:00:00Z",
    "attachments": [
        {
            "usageType": "http://adlnet.gov/expapi/attachments/signature",
            "display": { "en-US": "Signature" },
            "description": { "en-US": "A test signature" },
            "contentType": "application/octet-stream",
            "length": 4235,
            "sha2": "dc9589e454ff375dd5dfd6f556d2583e231e8cafe55ef40102ddd988b79f86f0"
        }
    ]
} N/A publickey -----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAopcIphKtEI/Ong+kU0pm
kR5ajkPlcoiRHcmRbLPIq5wvTQufwZ9oGhhXbsj/M7UMvvviBNCdecT21rK1ZCbh
IHeobjYM0J7ZY7StZhPL7IPUaN1Mt77uR5Oowj3iZjXgG4jwpJ0O8xpqSRZFsR2d
7qjvTTJLFQxNLEznrQshiO4da357T8XfWFsn5hqj1SibGzFnfktAbZ9B9BuMVJuT
HDRgcgrIMf3Ct3/fstOKxo4rb25uXyqAdM24k6Rd+QJc3HZpOQ5Yfgk8DPR5X3YR
Lx1YCLZKPeah0HCQiB3kGD4Wn/Pc4hU29O7c4YhwjCUJAgqiPEHYvuzLmiBcOGzz
hQIDAQAB
-----END PUBLIC KEY----- N/A wrongpublickey -----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzO/eUZPksFpU6E0BBTbp
F1T66Mnq3DJK06hKzyhLfI9L9bGzEQVCa7YNmHdDaGXgmmlT8hdbLeAspfeItKyI
tIzkBLCElHZ1UdIA2ibs3DrH1OH9TWk+ANpVJULY5O73NDb7yx29mDbUdHeBD4kR
R+eTc7HYHf5d5RbZLtZ17gpSf46PncPp+JkyRcAc895BboY7cpAWyGX1tlcWfizk
tT0+h89PoJw8cbKG8hQQfzztCdEkKOgs+4LEAvBWPyhgYRxqFPUcxIxtukZpociD
7i8ZuKIZP9ERCemi1Trniw6iot4DMhtwbT3/nhYGeG1dm011tX0ClKqhiIzJs7n0
8QIDAQAB
-----END PUBLIC KEY----- N/A privatekey -----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCilwimEq0Qj86e
D6RTSmaRHlqOQ+VyiJEdyZFss8irnC9NC5/Bn2gaGFduyP8ztQy+++IE0J15xPbW
srVkJuEgd6huNgzQntljtK1mE8vsg9Ro3Uy3vu5Hk6jCPeJmNeAbiPCknQ7zGmpJ
FkWxHZ3uqO9NMksVDE0sTOetCyGI7h1rfntPxd9YWyfmGqPVKJsbMWd+S0Btn0H0
G4xUm5McNGByCsgx/cK3f9+y04rGjitvbm5fKoB0zbiTpF35Alzcdmk5Dlh+CTwM
9HlfdhEvHVgItko95qHQcJCIHeQYPhaf89ziFTb07tzhiHCMJQkCCqI8Qdi+7Mua
IFw4bPOFAgMBAAECggEAUx6jbUNe9niOSH/2oh4HEWlTIifTxRnMFk5V6hx/Gjxe
ciTfJz03GyAWkqxuyyBjw79BbPS5jOcEyf3SfcDilpaVpMI9CuoqeK6Fdwnn1qIO
lQ2NiuIxLqZuP98jPt2MFIeNfppMaju22mZoeoOJmdkDfZOYjsobKeqnBfAK1NUV
qpewRkgYLLlI/tM+H77ihpOVvQlNH2uuLtjtRP+EpbvkZ0hpH5Qk7wi4ODtQVKeq
qJjUjSu16PrAOX40ce8Cjh7LF1GP1zaRYdfODVKSbFJNvmKReF/trGNOegjiLZP5
pOWss4V7rop5dFdlt4MWRZ2gQi1eFPCnv+teDUBsAQKBgQDU9ZM7VQBaSxwd3uIt
sOsdqWZnbGdc5KN+YyULftUjg/ELDO/hXINnAPXhnBYS/ToKdsYoW0KX24OOkNy9
VLX0Lo+N+J0mhZDjYspg63uWBi+KUkeUWRcb2esjoZf4iT5ugIntpOddA4tZ7wNO
vm7ELydnu1X1GQJWHvacQ026LQKBgQDDc18vnPBSCPTJidEO0GWSbjNu8xbp015w
9t5Tne3499yQDXkoDngfii3B7rxsqVv1UxlCDqmJFSDFm5v/odO1uKZbsazM6/OD
RGD9B2l9XnCpJ0VEewzZPwKnHR1Ms4Fvc4ehSvok2po4YaR5d9KGxkQCRKsXtfDX
ZvekI9WtuQKBgGkWVfUtWOM1tUY4Ojx51Uvp0BKxN8BrQxKXMiyeBedksInXdHgt
AtrNaohOUcZFF2MagWZgwlfVhvHPIl57ct5wK37PdB0SRBExKtTw3yeFHeiP+aqG
3BRuUM5ga3HFp/03iNiwS0tm+FkEzQkKh/Zfnn5dv2kXUkPVO7SYsb5xAoGAJztq
WOFUr/LSR/4c869LJChwtI2hBNCDvYMgP4KM+ROvt06tCihVXmdbJflo4xrftY+3
mzXcPAL8sA27M4XlPC3TXsZ8XCnkmG3KVh/9wceKL7oNQmC8xILMYoUKk5HYoml7
SRoGug0TNcwLusIdhSYZEqd7/Gdt757giJcU1ikCgYEAwZBBLEdF+oSDfEy5ixYb
r9IsERRoDLD7f+C9vf1ilivVsAY8E9uTF+olHzESPhEndlNDwMU3NHzMUsqGf05d
bNxWAKDGyKQSwyb9CbUBMl4ErfkduQAHaJXK7gTF8Pvgr9OehajDT4sQi3H6gg0a
qjOL3XOZ+ZNpW0h9JM/jrF0=
-----END PRIVATE KEY-----