Module ImportFrom alias alias alias ImportFrom alias alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias Import alias If CompareGtE SubscriptLoad AttributeLoad NameLoad attr Index Num Num body Assign NameStore NameLoad Assign NameStore NameLoad Expr Str ClassDef bases NameLoad body Expr Str FunctionDef arguments args NameParam NameParam NameParam NameParam defaults body Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad decorator_list decorator_list ClassDef bases NameLoad body Expr Str FunctionDef arguments args NameParam NameParam NameParam defaults NameLoad NameLoad body Expr Call AttributeLoad Call NameLoad NameLoad NameLoad attr Assign AttributeStore NameLoad attr BoolOpOr NameLoad Dict Assign AttributeStore NameLoad attr BoolOpOr NameLoad ListLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Str If Call NameLoad NameLoad NameLoad body Return NameLoad orelse If CompareIn NameLoad NameLoad body Return SubscriptLoad NameLoad Index NameLoad orelse Raise Call NameLoad BinOpMod Str TupleLoad NameLoad Call NameLoad Call AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam NameParam defaults NameLoad NameLoad NameLoad NameLoad body Expr Str If CompareIn NameLoad Call AttributeLoad AttributeLoad NameLoad attr attr body Raise Call NameLoad Str Assign NameStore Dict TryExcept body Assign NameStore Call AttributeLoad NameLoad attr NameLoad If BoolOpAnd NameLoad NameLoad body Assign SubscriptStore NameLoad Index Str NameLoad orelse If NameLoad body Assign SubscriptStore NameLoad Index Str AttributeLoad NameLoad attr handlers ExceptHandler type NameLoad body Raise Call NameLoad Str If NameLoad body Assign SubscriptStore NameLoad Index Str Dict Str NameLoad orelse If BoolOpAnd NameLoad UnaryOpNot NameLoad body Assign SubscriptStore NameLoad Index Str NameLoad orelse Raise Call NameLoad Str Assign NameStore Call NameLoad NameLoad NameLoad keyword NameLoad keyword IfExp NameLoad NameLoad NameLoad Assign SubscriptStore AttributeLoad NameLoad attr Index NameLoad Call NameLoad NameLoad NameLoad NameLoad Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Str If CompareIs Call NameLoad NameLoad NameLoad body Expr Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad orelse Expr Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore Dict For TupleStore NameStore NameStore Call AttributeLoad AttributeLoad NameLoad attr attr body For NameStore AttributeLoad AttributeLoad NameLoad attr attr body If BoolOpOr AttributeLoad NameLoad attr CompareGt Call NameLoad AttributeLoad NameLoad attr Num body If CompareNotIn NameLoad Call AttributeLoad NameLoad attr body Assign SubscriptStore NameLoad Index NameLoad Dict Assign SubscriptStore SubscriptLoad NameLoad Index NameLoad Index Call NameLoad AttributeLoad NameLoad attr Dict If AttributeLoad NameLoad attr body Assign SubscriptStore SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index Call NameLoad AttributeLoad NameLoad attr Index Str AttributeLoad NameLoad attr If CompareGt Call NameLoad AttributeLoad NameLoad attr Num body Assign SubscriptStore SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index Call NameLoad AttributeLoad NameLoad attr Index Str AttributeLoad NameLoad attr If CompareIn Str AttributeLoad NameLoad attr body Assign SubscriptStore AttributeLoad NameLoad attr Index Str Dict Str AttributeLoad AttributeLoad NameLoad attr attr If BoolOpAnd CompareIs AttributeLoad AttributeLoad NameLoad attr attr NameLoad CompareNotIn Str AttributeLoad NameLoad attr body Assign SubscriptStore AttributeLoad NameLoad attr Index Str NameLoad Delete SubscriptDel AttributeLoad NameLoad attr Index Str orelse If BoolOpAnd CompareIsNot AttributeLoad AttributeLoad NameLoad attr attr NameLoad CompareIn Str AttributeLoad NameLoad attr body Assign SubscriptStore AttributeLoad NameLoad attr Index Str Dict Str AttributeLoad AttributeLoad NameLoad attr attr Delete SubscriptDel AttributeLoad NameLoad attr Index Str If NameLoad body Return Dict Str Str Str Call NameLoad GeneratorExp TupleLoad NameLoad AttributeLoad NameLoad attr comprehension TupleStore NameStore NameStore Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad Call NameLoad Lambda arguments args NameParam defaults Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr NameLoad orelse Return Dict Str Str Call NameLoad GeneratorExp TupleLoad NameLoad AttributeLoad NameLoad attr comprehension TupleStore NameStore NameStore Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad Call NameLoad Lambda arguments args NameParam defaults Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam NameParam NameParam defaults body Expr Str If BoolOpOr UnaryOpNot NameLoad CompareEq NameLoad Str body Assign NameStore NameLoad If UnaryOpNot Call NameLoad NameLoad NameLoad body Raise Call NameLoad Str Assign AttributeStore NameLoad attr NameLoad Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr If UnaryOpNot NameLoad body Raise Call NameLoad Str If CompareIn Str AttributeLoad NameLoad attr body Expr Call AttributeLoad AttributeLoad NameLoad attr attr Str If NameLoad body Assign SubscriptStore AttributeLoad NameLoad attr Index Str Dict Str Call NameLoad NameLoad orelse Expr Call AttributeLoad AttributeLoad NameLoad attr attr Str Assign SubscriptStore AttributeLoad NameLoad attr Index Str NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam defaults NameLoad NameLoad NameLoad Num Str NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad body Expr Str Assign NameStore Dict TryExcept body Assign NameStore Call AttributeLoad NameLoad attr NameLoad NameLoad NameLoad NameLoad handlers ExceptHandler type NameLoad body Raise Call NameLoad Str Assign NameStore ListLoad For NameStore NameLoad body Assign NameStore Dict If NameLoad body If UnaryOpNot NameLoad body Raise Call NameLoad Str Assign SubscriptStore NameLoad Index Str Dict Str Str Str NameLoad NameLoad NameLoad If NameLoad body Assign SubscriptStore NameLoad Index Str NameLoad Assign SubscriptStore NameLoad Index Str SubscriptLoad NameLoad Index Str Assign SubscriptStore NameLoad Index Str SubscriptLoad NameLoad Index Str Assign NameStore ListLoad Str Str For NameStore NameLoad body Expr Call NameLoad NameLoad NameLoad Call NameLoad NameLoad Assign NameStore ListLoad Str Str Str Str Str Str For NameStore NameLoad body Expr Call NameLoad NameLoad NameLoad Call NameLoad SubscriptLoad NameLoad Slice Num Expr Call AttributeLoad NameLoad attr Dict Str NameLoad If NameLoad body Expr Call AttributeLoad NameLoad attr Call NameLoad NameLoad orelse Expr Call AttributeLoad NameLoad attr NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam defaults NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad kwarg body Expr Str Assign NameStore ListLoad Assign NameStore Call NameLoad NameLoad Assign NameStore Call NameLoad NameLoad Assign NameStore Call NameLoad AttributeLoad NameLoad attr Assign NameStore Call NameLoad AttributeLoad NameLoad attr If UnaryOpNot NameLoad body If BoolOpAnd CompareGt NameLoad Num CompareEq NameLoad Num body Assign NameStore Call NameLoad BinOpMult AttributeLoad NameLoad attr NameLoad Assign NameStore Call NameLoad AttributeLoad NameLoad attr If BoolOpAnd CompareEq NameLoad Num CompareGt NameLoad Num body Assign NameStore Call NameLoad BinOpMult AttributeLoad NameLoad attr NameLoad Assign NameStore Call NameLoad AttributeLoad NameLoad attr If CompareNotEq NameLoad NameLoad body Raise Call NameLoad Str If BoolOpOr Call NameLoad NameLoad NameLoad Call NameLoad NameLoad NameLoad body If BoolOpAnd CompareEq NameLoad Num UnaryOpNot NameLoad body Assign NameStore BinOpMult ListLoad Call AttributeLoad Call AttributeLoad NameLoad attr NameLoad attr Str NameLoad orelse Assign NameStore BinOpMult ListLoad Call AttributeLoad Call AttributeLoad NameLoad attr NameLoad attr Str NameLoad orelse If BoolOpAnd Call NameLoad NameLoad NameLoad CompareEq Call NameLoad NameLoad NameLoad body Assign NameStore Call NameLoad Call NameLoad Lambda arguments args NameParam defaults Call AttributeLoad Call AttributeLoad NameLoad attr NameLoad attr Str NameLoad orelse Raise Call NameLoad Str If NameLoad body TryExcept body Assign NameStore ListComp AttributeLoad NameLoad attr comprehension NameStore AttributeLoad NameLoad attr If CompareGt Call NameLoad ListComp NameLoad comprehension NameStore NameLoad Call NameLoad ListComp NameLoad comprehension NameStore NameLoad body Raise Call NameLoad Str If BoolOpAnd CompareGtE NameLoad NameLoad Call NameLoad GeneratorExp CompareGt NameLoad NameLoad comprehension TupleStore NameStore NameStore Call NameLoad NameLoad NameLoad body Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Slice NameLoad Assign NameStore AttributeLoad NameLoad attr Assign NameStore NameLoad orelse Assign NameStore ListLoad Assign NameStore Num Assign NameStore ListLoad Assign NameStore ListLoad Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index NameLoad Assign NameStore AttributeLoad NameLoad attr Assign NameStore Num For TupleStore NameStore NameStore Call NameLoad AttributeLoad NameLoad attr body Assign NameStore SubscriptLoad NameLoad Index NameLoad While CompareGt NameLoad Call AttributeLoad NameLoad attr Str body If CompareGt NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad AugAssignSub NameStore NameLoad Assign AttributeStore NameLoad attr Call NameLoad AttributeLoad NameLoad attr NameLoad AugAssignSub NameStore NameLoad Assign AttributeStore NameLoad attr Call NameLoad AttributeLoad NameLoad attr NameLoad orelse Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad AugAssignSub NameStore NameLoad Assign AttributeStore NameLoad attr Call NameLoad AttributeLoad NameLoad attr NameLoad AugAssignAdd NameStore Num If CompareLt NameLoad NameLoad body Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index NameLoad Assign NameStore AttributeLoad NameLoad attr Assign NameStore Call NameLoad NameLoad Assign NameStore Call NameLoad NameLoad Assign NameStore NameLoad handlers ExceptHandler type TupleLoad NameLoad NameLoad NameLoad name NameStore body Raise Call NameLoad Str For TupleStore NameStore NameStore NameStore Call NameLoad Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr NameLoad body If CompareGt NameLoad Call NameLoad Num Str body Assign NameStore Call AttributeLoad NameLoad attr NameLoad While CompareGt NameLoad Call NameLoad Num Str body Assign NameStore Call NameLoad Num Str Assign NameStore Dict Str Str Str NameLoad NameLoad NameLoad If AttributeLoad NameLoad attr body AugAssignAdd AttributeStore NameLoad attr NameLoad orelse Assign AttributeStore NameLoad attr NameLoad If AttributeLoad NameLoad attr body AugAssignSub AttributeStore NameLoad attr NameLoad If BoolOpAnd NameLoad BoolOpAnd CompareNotIn Str NameLoad CompareNotIn Str NameLoad body Raise Call NameLoad Str If Call AttributeLoad NameLoad attr Str body Assign SubscriptStore NameLoad Index Str Dict Str Str Str BoolOpOr Call AttributeLoad NameLoad attr Str Call AttributeLoad NameLoad attr Str BinOpDiv NameLoad Num BoolOpOr Call AttributeLoad NameLoad attr Str Call AttributeLoad NameLoad attr Str Num BoolOpOr Call AttributeLoad NameLoad attr Str Call AttributeLoad NameLoad attr Str Str If Call AttributeLoad NameLoad attr Str body Assign SubscriptStore NameLoad Index Str Dict Str Str Str BoolOpOr Call AttributeLoad NameLoad attr Str Call AttributeLoad NameLoad attr Str BinOpDiv NameLoad Num BoolOpOr Call AttributeLoad NameLoad attr Str Call AttributeLoad NameLoad attr Str Num BoolOpOr Call AttributeLoad NameLoad attr Str Call AttributeLoad NameLoad attr Str Str Assign NameStore ListLoad Str Str For NameStore NameLoad body Expr Call NameLoad NameLoad NameLoad Call NameLoad NameLoad Assign NameStore ListLoad Str Str Str Str Str Str For NameStore NameLoad body Expr Call NameLoad NameLoad NameLoad Call NameLoad SubscriptLoad NameLoad Slice Num If CompareGt NameLoad Call NameLoad Num Str body Expr Call AttributeLoad NameLoad attr NameLoad AugAssignSub NameStore Call NameLoad Num Str Assign NameStore NameLoad Assign NameStore Dict Str Str Str NameLoad NameLoad NameLoad If AttributeLoad NameLoad attr body AugAssignAdd AttributeStore NameLoad attr NameLoad orelse Assign AttributeStore NameLoad attr NameLoad If AttributeLoad NameLoad attr body AugAssignSub AttributeStore NameLoad attr NameLoad If BoolOpAnd NameLoad BoolOpAnd CompareNotIn Str NameLoad CompareNotIn Str NameLoad body Raise Call NameLoad Str If Call AttributeLoad NameLoad attr Str body Assign SubscriptStore NameLoad Index Str Dict Str Str Str BoolOpOr Call AttributeLoad NameLoad attr Str Call AttributeLoad NameLoad attr Str BinOpDiv NameLoad Num BoolOpOr Call AttributeLoad NameLoad attr Str Call AttributeLoad NameLoad attr Str Num BoolOpOr Call AttributeLoad NameLoad attr Str Call AttributeLoad NameLoad attr Str Str If Call AttributeLoad NameLoad attr Str body Assign SubscriptStore NameLoad Index Str Dict Str Str Str BoolOpOr Call AttributeLoad NameLoad attr Str Call AttributeLoad NameLoad attr Str BinOpDiv NameLoad Num BoolOpOr Call AttributeLoad NameLoad attr Str Call AttributeLoad NameLoad attr Str Num BoolOpOr Call AttributeLoad NameLoad attr Str Call AttributeLoad NameLoad attr Str Str Assign NameStore ListLoad Str Str For NameStore NameLoad body Expr Call NameLoad NameLoad NameLoad Call NameLoad NameLoad Assign NameStore ListLoad Str Str Str Str Str Str For NameStore NameLoad body Expr Call NameLoad NameLoad NameLoad Call NameLoad SubscriptLoad NameLoad Slice Num If CompareGt NameLoad Call NameLoad Num Str body Expr Call AttributeLoad NameLoad attr NameLoad Assign NameStore Dict Expr Call NameLoad NameLoad Str NameLoad If NameLoad body Assign SubscriptStore NameLoad Index Str NameLoad If NameLoad body Expr Call AttributeLoad NameLoad attr Call NameLoad ListLoad NameLoad orelse Expr Call AttributeLoad NameLoad attr ListLoad NameLoad orelse For NameStore NameLoad body Assign NameStore Dict Expr Call NameLoad NameLoad Str NameLoad Assign SubscriptStore NameLoad Index Str ListLoad NameLoad If NameLoad body Expr Call AttributeLoad NameLoad attr Call NameLoad ListLoad NameLoad orelse Expr Call AttributeLoad NameLoad attr ListLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam defaults NameLoad NameLoad NameLoad Str Num NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad body Expr Str If UnaryOpNot Call NameLoad NameLoad TupleLoad NameLoad NameLoad body Raise Call NameLoad Str If Call NameLoad NameLoad TupleLoad NameLoad NameLoad body Assign NameStore ListLoad NameLoad If Call NameLoad NameLoad NameLoad body If CompareNotEq Call NameLoad NameLoad Call NameLoad NameLoad body Raise Call NameLoad Str Assign NameStore ListComp Call AttributeLoad NameLoad attr NameLoad comprehension NameStore NameLoad orelse Assign NameStore BinOpMult ListLoad Call AttributeLoad NameLoad attr NameLoad Call NameLoad NameLoad Assign NameStore Dict Str Dict Assign NameStore SubscriptLoad NameLoad Index Str Expr Call NameLoad NameLoad Str NameLoad Assign NameStore ListLoad For TupleStore NameStore NameStore Call NameLoad NameLoad NameLoad body Assign NameStore Dict Assign SubscriptStore NameLoad Index Str NameLoad Assign SubscriptStore NameLoad Index Str NameLoad Expr Call NameLoad NameLoad Str NameLoad Expr Call NameLoad NameLoad Str NameLoad Expr Call AttributeLoad NameLoad attr NameLoad If AttributeLoad NameLoad attr body AugAssignAdd AttributeStore NameLoad attr NameLoad orelse Assign AttributeStore NameLoad attr NameLoad If AttributeLoad NameLoad attr body AugAssignSub AttributeStore NameLoad attr NameLoad Expr Call NameLoad NameLoad Str NameLoad If NameLoad body Assign SubscriptStore NameLoad Index Str Dict Str Str Str NameLoad NameLoad NameLoad Assign NameStore ListLoad Str Str For NameStore NameLoad body Expr Call NameLoad NameLoad NameLoad Call NameLoad NameLoad Assign NameStore ListLoad Str Str Str Str Str For NameStore NameLoad body Expr Call NameLoad NameLoad NameLoad Call NameLoad SubscriptLoad NameLoad Slice Num If NameLoad body Expr Call AttributeLoad NameLoad attr Call NameLoad ListLoad NameLoad orelse Expr Call AttributeLoad NameLoad attr ListLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam NameParam defaults NameLoad Str body Expr Str Assign NameStore ListLoad Assign NameStore Call NameLoad NameLoad Assign NameStore Call NameLoad NameLoad Assign NameStore Call NameLoad AttributeLoad NameLoad attr Assign NameStore Call NameLoad AttributeLoad NameLoad attr If UnaryOpNot NameLoad body If BoolOpAnd CompareGt NameLoad Num CompareEq NameLoad Num body Assign NameStore Call NameLoad BinOpMult AttributeLoad NameLoad attr NameLoad Assign NameStore Call NameLoad AttributeLoad NameLoad attr If BoolOpAnd CompareEq NameLoad Num CompareGt NameLoad Num body Assign NameStore Call NameLoad BinOpMult AttributeLoad NameLoad attr NameLoad Assign NameStore Call NameLoad AttributeLoad NameLoad attr If CompareNotEq NameLoad NameLoad body Raise Call NameLoad Str If BoolOpOr Call NameLoad NameLoad NameLoad Call NameLoad NameLoad NameLoad body If BoolOpAnd CompareEq NameLoad Num UnaryOpNot NameLoad body Assign NameStore BinOpMult ListLoad Call AttributeLoad Call AttributeLoad NameLoad attr NameLoad attr Str NameLoad orelse Assign NameStore BinOpMult ListLoad Call AttributeLoad Call AttributeLoad NameLoad attr NameLoad attr Str NameLoad orelse If BoolOpAnd Call NameLoad NameLoad NameLoad CompareEq Call NameLoad NameLoad NameLoad body Assign NameStore Call NameLoad Call NameLoad Lambda arguments args NameParam defaults Call AttributeLoad Call AttributeLoad NameLoad attr NameLoad attr Str NameLoad orelse Raise Call NameLoad Str If NameLoad body TryExcept body Assign NameStore ListComp AttributeLoad NameLoad attr comprehension NameStore AttributeLoad NameLoad attr If CompareGt Call NameLoad ListComp NameLoad comprehension NameStore NameLoad Call NameLoad ListComp NameLoad comprehension NameStore NameLoad body Raise Call NameLoad Str If BoolOpAnd CompareGtE NameLoad NameLoad Call NameLoad GeneratorExp CompareGt NameLoad NameLoad comprehension TupleStore NameStore NameStore Call NameLoad NameLoad NameLoad body Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Slice NameLoad Assign NameStore AttributeLoad NameLoad attr Assign NameStore NameLoad orelse Assign NameStore ListLoad Assign NameStore Num Assign NameStore ListLoad Assign NameStore ListLoad Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index NameLoad Assign NameStore AttributeLoad NameLoad attr Assign NameStore Num For TupleStore NameStore NameStore Call NameLoad AttributeLoad NameLoad attr body Assign NameStore SubscriptLoad NameLoad Index NameLoad While CompareGt NameLoad Call AttributeLoad NameLoad attr Str body If CompareGt NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad AugAssignSub NameStore NameLoad Assign AttributeStore NameLoad attr Call NameLoad AttributeLoad NameLoad attr NameLoad AugAssignSub NameStore NameLoad Assign AttributeStore NameLoad attr Call NameLoad AttributeLoad NameLoad attr NameLoad orelse Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad AugAssignSub NameStore NameLoad Assign AttributeStore NameLoad attr Call NameLoad AttributeLoad NameLoad attr NameLoad AugAssignAdd NameStore Num If CompareLt NameLoad NameLoad body Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index NameLoad Assign NameStore AttributeLoad NameLoad attr Assign NameStore Call NameLoad NameLoad Assign NameStore Call NameLoad NameLoad Assign NameStore NameLoad handlers ExceptHandler type TupleLoad NameLoad NameLoad NameLoad name NameStore body Raise Call NameLoad Str For TupleStore NameStore NameStore NameStore Call NameLoad Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr NameLoad body Assign NameStore Dict Str Str Str NameLoad NameLoad NameLoad If AttributeLoad NameLoad attr body AugAssignAdd AttributeStore NameLoad attr NameLoad orelse Assign AttributeStore NameLoad attr NameLoad If AttributeLoad NameLoad attr body AugAssignSub AttributeStore NameLoad attr NameLoad If CompareGt NameLoad Call NameLoad Num Str body Expr Call AttributeLoad NameLoad attr NameLoad For NameStore NameLoad body Assign SubscriptStore NameLoad Index Str Call AttributeLoad SubscriptLoad NameLoad Index Str attr Str If BoolOpAnd AttributeLoad NameLoad attr CompareEq AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Str body Assign NameStore SubscriptLoad SubscriptLoad SubscriptLoad SubscriptLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Index Str Index Num Index Str Index Num If BoolOpAnd CompareEq AttributeLoad SubscriptLoad NameLoad Index Str attr AttributeLoad SubscriptLoad SubscriptLoad NameLoad Index Num Index Str attr CompareEq AttributeLoad SubscriptLoad NameLoad Index Str attr AttributeLoad SubscriptLoad SubscriptLoad NameLoad Index Num Index Str attr CompareEq NameLoad SubscriptLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Index Str body Expr Call AttributeLoad SubscriptLoad SubscriptLoad SubscriptLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Index Str Index Num Index Str attr NameLoad Return Expr Call AttributeLoad NameLoad attr Call NameLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam defaults Call NameLoad keyword Num keyword Num NameLoad NameLoad NameLoad Num Str NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad body Expr Str If Call NameLoad NameLoad NameLoad body Assign NameStore NameLoad Assign NameStore AttributeLoad NameLoad attr If CompareEq AttributeLoad NameLoad attr Num body Assign NameStore Call AttributeLoad NameLoad attr Num orelse If CompareEq AttributeLoad NameLoad attr Num body Assign NameStore Call AttributeLoad NameLoad attr ListLoad Num Num Num Num orelse Raise Call NameLoad Str If Call NameLoad NameLoad NameLoad body Assign NameStore NameLoad Assign NameStore AttributeLoad NameLoad attr If CompareEq AttributeLoad NameLoad attr Num body Assign NameStore Call AttributeLoad NameLoad attr Num orelse If CompareEq AttributeLoad NameLoad attr Num body Assign NameStore Call AttributeLoad NameLoad attr ListLoad Num Num Num Num orelse Raise Call NameLoad Str If BoolOpOr UnaryOpNot BoolOpOr Call NameLoad NameLoad NameLoad Call NameLoad NameLoad NameLoad UnaryOpNot BoolOpOr Call NameLoad NameLoad NameLoad Call NameLoad NameLoad NameLoad body Raise Call NameLoad Str Assign NameStore Call NameLoad NameLoad Assign NameStore Call NameLoad NameLoad Assign NameStore ListLoad Assign NameStore ListLoad Assign NameStore ListLoad Assign NameStore Call NameLoad AttributeLoad NameLoad attr Assign NameStore Call NameLoad AttributeLoad NameLoad attr If UnaryOpNot NameLoad body If BoolOpAnd CompareGt NameLoad Num CompareEq NameLoad Num body Assign NameStore Call NameLoad BinOpMult AttributeLoad NameLoad attr NameLoad Assign NameStore Call NameLoad AttributeLoad NameLoad attr If BoolOpAnd CompareEq NameLoad Num CompareGt NameLoad Num body Assign NameStore Call NameLoad BinOpMult AttributeLoad NameLoad attr NameLoad Assign NameStore Call NameLoad AttributeLoad NameLoad attr If CompareNotEq NameLoad NameLoad body Raise Call NameLoad Str If BoolOpOr Call NameLoad NameLoad NameLoad Call NameLoad NameLoad NameLoad body If BoolOpAnd CompareEq NameLoad Num UnaryOpNot NameLoad body Assign NameStore BinOpMult ListLoad Call AttributeLoad NameLoad attr NameLoad NameLoad orelse Assign NameStore BinOpMult ListLoad Call AttributeLoad NameLoad attr NameLoad NameLoad orelse If BoolOpAnd Call NameLoad NameLoad NameLoad CompareEq Call NameLoad NameLoad NameLoad body Assign NameStore Call NameLoad Call NameLoad Lambda arguments args NameParam defaults Call AttributeLoad NameLoad attr NameLoad NameLoad orelse Raise Call NameLoad Str If Call NameLoad NameLoad NameLoad body If BoolOpAnd CompareEq NameLoad Num UnaryOpNot NameLoad body Assign NameStore BinOpMult ListLoad NameLoad NameLoad orelse Assign NameStore BinOpMult ListLoad NameLoad NameLoad orelse If BoolOpAnd Call NameLoad NameLoad NameLoad CompareEq Call NameLoad NameLoad NameLoad body Assign NameStore NameLoad orelse Raise Call NameLoad Str Assign NameStore ListLoad Assign NameStore ListLoad Assign NameStore ListLoad For NameStore NameLoad body If BoolOpOr CompareNotIn Str NameLoad CompareNotIn Str NameLoad body Raise Call NameLoad Str Assign NameStore SubscriptLoad NameLoad Index Str Assign NameStore SubscriptLoad NameLoad Index Str Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad If BoolOpAnd CompareEq NameLoad Num CompareEq NameLoad Num body Expr Call AttributeLoad NameLoad attr Str orelse If CompareEq NameLoad Num body Expr Call AttributeLoad NameLoad attr Str orelse If CompareEq NameLoad Num body Expr Call AttributeLoad NameLoad attr Str orelse Raise Call NameLoad Str For TupleStore NameStore NameStore NameStore NameStore NameStore Call NameLoad Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr NameLoad NameLoad NameLoad body Assign NameStore AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr Assign NameStore AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr If BoolOpOr CompareLt NameLoad Num CompareGt NameLoad NameLoad CompareGt NameLoad NameLoad body Raise Call NameLoad Str Assign NameStore BinOpFloorDiv AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr NameLoad Assign NameStore BinOpFloorDiv AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr NameLoad If BoolOpOr CompareLt NameLoad Num CompareGt NameLoad NameLoad CompareGt NameLoad NameLoad body Raise Call NameLoad Str Expr Call NameLoad NameLoad NameLoad NameLoad NameLoad Expr Call NameLoad NameLoad NameLoad NameLoad NameLoad If BoolOpOr NameLoad NameLoad body If UnaryOpNot Call NameLoad ListComp CompareEq NameLoad SubscriptLoad NameLoad Index Num comprehension NameStore NameLoad body Raise Call NameLoad Str If NameLoad body TryExcept body For TupleStore NameStore NameStore NameStore NameStore Call NameLoad Call NameLoad AttributeLoad NameLoad attr NameLoad NameLoad NameLoad body Assign NameStore NameLoad If CompareEq NameLoad Str body Assign NameStore NameLoad If CompareEq AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr Num body If NameLoad body Assign NameStore ListComp SubscriptLoad Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad BinOpMult BinOpMult NameLoad NameLoad Num NameLoad Index NameLoad comprehension NameStore Call NameLoad BinOpMult BinOpMult NameLoad NameLoad Num CompareEqEq BinOpMod NameLoad Num BinOpMod BinOpFloorDiv NameLoad Num Num Num orelse Assign NameStore ListComp SubscriptLoad Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad BinOpMult BinOpMult NameLoad NameLoad Num NameLoad Index NameLoad comprehension NameStore Call NameLoad BinOpMult BinOpMult NameLoad NameLoad Num CompareEqEq BinOpMod NameLoad Num BinOpMod BinOpFloorDiv NameLoad Num Num Num orelse Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad BinOpMult NameLoad NameLoad NameLoad If UnaryOpNot Call NameLoad ListComp CompareGtE AttributeLoad NameLoad attr AttributeLoad NameLoad attr comprehension NameStore NameLoad body Raise Call NameLoad Str Assign NameStore ListComp AttributeLoad NameLoad attr comprehension NameStore AttributeLoad NameLoad attr If CompareGt Call NameLoad ListComp NameLoad comprehension NameStore NameLoad Call NameLoad ListComp NameLoad comprehension NameStore NameLoad body Raise Call NameLoad Str If BoolOpAnd CompareGtE NameLoad NameLoad Call NameLoad GeneratorExp CompareGt NameLoad NameLoad comprehension TupleStore NameStore NameStore Call NameLoad NameLoad NameLoad body Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Slice NameLoad Assign NameStore AttributeLoad NameLoad attr Assign NameStore NameLoad orelse Assign NameStore ListLoad Assign NameStore Num Assign NameStore ListLoad Assign NameStore ListLoad Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index NameLoad Assign NameStore AttributeLoad NameLoad attr Assign NameStore Num For TupleStore NameStore NameStore Call NameLoad AttributeLoad NameLoad attr body Assign NameStore SubscriptLoad NameLoad Index NameLoad While CompareGt NameLoad Call AttributeLoad NameLoad attr Str body If CompareGt NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad AugAssignSub NameStore NameLoad Assign AttributeStore NameLoad attr Call NameLoad AttributeLoad NameLoad attr NameLoad AugAssignSub NameStore NameLoad Assign AttributeStore NameLoad attr Call NameLoad AttributeLoad NameLoad attr NameLoad orelse Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad AugAssignSub NameStore NameLoad Assign AttributeStore NameLoad attr Call NameLoad AttributeLoad NameLoad attr NameLoad AugAssignAdd NameStore Num If CompareLt NameLoad NameLoad body Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index NameLoad Assign NameStore AttributeLoad NameLoad attr Assign NameStore Call NameLoad NameLoad Assign NameStore Call NameLoad NameLoad Assign NameStore NameLoad Assign NameStore BinOpMult ListLoad SubscriptLoad NameLoad Index Num Call NameLoad NameLoad Assign NameStore BinOpMult ListLoad SubscriptLoad NameLoad Index Num Call NameLoad NameLoad Assign NameStore BinOpMult ListLoad SubscriptLoad NameLoad Index Num Call NameLoad NameLoad Assign NameStore BinOpMult ListLoad SubscriptLoad NameLoad Index Num Call NameLoad NameLoad handlers ExceptHandler type TupleLoad NameLoad NameLoad NameLoad body Raise Call NameLoad Str Assign NameStore Call AttributeLoad NameLoad attr Str If NameLoad body If UnaryOpNot NameLoad body Assign NameStore Call AttributeLoad NameLoad attr Str orelse Assign NameStore Call AttributeLoad NameLoad attr NameLoad If UnaryOpNot BoolOpOr Call NameLoad ListComp CompareGt NameLoad NameLoad comprehension NameStore NameLoad Call NameLoad ListComp CompareLtE NameLoad NameLoad comprehension NameStore NameLoad CompareGt NameLoad NameLoad body Raise Call NameLoad Str Assign NameStore SubscriptLoad NameLoad Index Num If CompareEq NameLoad Str body Assign NameStore Num orelse Assign NameStore Num Assign NameStore BinOpAdd NameLoad NameLoad If CompareGt Call NameLoad Call NameLoad Call NameLoad Lambda arguments args NameParam defaults AttributeLoad NameLoad attr AttributeLoad NameLoad attr NameLoad body Raise Call NameLoad Str Assign NameStore Call AttributeLoad NameLoad attr Str Assign NameStore Call AttributeLoad NameLoad attr Str Assign NameStore Call AttributeLoad NameLoad attr Str Assign NameStore Call AttributeLoad NameLoad attr Str If NameLoad body If CompareIn Str Call AttributeLoad NameLoad attr body Assign NameStore Call AttributeLoad NameLoad attr SubscriptLoad NameLoad Index Str If NameLoad body Assign NameStore Call AttributeLoad NameLoad attr NameLoad If NameLoad body Assign NameStore Call AttributeLoad NameLoad attr NameLoad If CompareGt NameLoad Call AttributeLoad NameLoad attr NameLoad body Assign NameStore NameLoad orelse Assign NameStore NameLoad Assign NameStore BinOpSub BinOpSub NameLoad NameLoad NameLoad For TupleStore NameStore NameStore NameStore NameStore NameStore NameStore NameStore Call NameLoad Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr NameLoad NameLoad NameLoad NameLoad NameLoad body If CompareGt NameLoad NameLoad body Assign NameStore NameLoad While CompareGt NameLoad NameLoad body If CompareLt NameLoad BinOpMult NameLoad Num body Assign NameStore BinOpDiv NameLoad Num Assign NameStore NameLoad Assign NameStore Dict Str Str Str NameLoad NameLoad NameLoad Assign NameStore NameLoad If CompareEq NameLoad Str body Assign NameStore NameLoad If CompareEq AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr Num body If NameLoad body Assign NameStore ListComp SubscriptLoad Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad BinOpMult BinOpMult NameLoad NameLoad Num NameLoad Index NameLoad comprehension NameStore Call NameLoad BinOpMult BinOpMult NameLoad NameLoad Num CompareEqEq BinOpMod NameLoad Num BinOpMod BinOpFloorDiv NameLoad Num Num Num orelse Assign NameStore ListComp SubscriptLoad Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad BinOpMult BinOpMult NameLoad NameLoad Num NameLoad Index NameLoad comprehension NameStore Call NameLoad BinOpMult BinOpMult NameLoad NameLoad Num CompareEqEq BinOpMod NameLoad Num BinOpMod BinOpFloorDiv NameLoad Num Num Num orelse Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad BinOpMult NameLoad NameLoad NameLoad If CompareEq AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr Num body If NameLoad body Assign NameStore ListComp SubscriptLoad Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad BinOpMult BinOpMult NameLoad NameLoad Num NameLoad Index NameLoad comprehension NameStore Call NameLoad BinOpMult BinOpMult NameLoad NameLoad Num CompareEqEq BinOpMod NameLoad Num BinOpMod BinOpFloorDiv NameLoad Num Num Num orelse Assign NameStore ListComp SubscriptLoad Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad BinOpMult BinOpMult NameLoad NameLoad Num NameLoad Index NameLoad comprehension NameStore Call NameLoad BinOpMult BinOpMult NameLoad NameLoad Num CompareEqEq BinOpMod NameLoad Num BinOpMod BinOpFloorDiv NameLoad Num Num Num orelse Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad BinOpMult NameLoad NameLoad NameLoad For NameStore NameLoad body If AttributeLoad NameLoad attr body AugAssignSub AttributeStore NameLoad attr NameLoad For NameStore NameLoad body If AttributeLoad NameLoad attr body AugAssignAdd AttributeStore NameLoad attr NameLoad orelse Assign AttributeStore NameLoad attr NameLoad Assign NameStore ListLoad Str Str For NameStore NameLoad body Expr Call NameLoad NameLoad NameLoad Call NameLoad NameLoad Assign NameStore ListLoad Str Str Str Str Str Str For NameStore NameLoad body Expr Call NameLoad NameLoad NameLoad Call NameLoad SubscriptLoad NameLoad Slice Num If BoolOpAnd UnaryOpNot NameLoad BoolOpOr NameLoad NameLoad body Assign NameStore BinOpMult NameLoad Num If NameLoad body Assign SubscriptStore NameLoad Index Str Dict Str Str Str NameLoad NameLoad NameLoad If NameLoad body Assign SubscriptStore NameLoad Index Str Dict Str Str Str NameLoad NameLoad NameLoad If CompareGt NameLoad Call NameLoad Num Str body Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad orelse AugAssignSub NameStore NameLoad Assign NameStore NameLoad Assign NameStore Dict Str Str Str NameLoad NameLoad NameLoad Assign NameStore NameLoad If CompareEq NameLoad Str body Assign NameStore NameLoad If CompareEq AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr Num body If NameLoad body Assign NameStore ListComp SubscriptLoad Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad BinOpMult BinOpMult NameLoad NameLoad Num NameLoad Index NameLoad comprehension NameStore Call NameLoad BinOpMult BinOpMult NameLoad NameLoad Num CompareEqEq BinOpMod NameLoad Num BinOpMod BinOpFloorDiv NameLoad Num Num Num orelse Assign NameStore ListComp SubscriptLoad Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad BinOpMult BinOpMult NameLoad NameLoad Num NameLoad Index NameLoad comprehension NameStore Call NameLoad BinOpMult BinOpMult NameLoad NameLoad Num CompareEqEq BinOpMod NameLoad Num BinOpMod BinOpFloorDiv NameLoad Num Num Num orelse Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad BinOpMult NameLoad NameLoad NameLoad If CompareEq AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr Num body If NameLoad body Assign NameStore ListComp SubscriptLoad Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad BinOpMult BinOpMult NameLoad NameLoad Num NameLoad Index NameLoad comprehension NameStore Call NameLoad BinOpMult BinOpMult NameLoad NameLoad Num CompareEqEq BinOpMod NameLoad Num BinOpMod BinOpFloorDiv NameLoad Num Num Num orelse Assign NameStore ListComp SubscriptLoad Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad BinOpMult BinOpMult NameLoad NameLoad Num NameLoad Index NameLoad comprehension NameStore Call NameLoad BinOpMult BinOpMult NameLoad NameLoad Num CompareEqEq BinOpMod NameLoad Num BinOpMod BinOpFloorDiv NameLoad Num Num Num orelse Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad BinOpMult NameLoad NameLoad NameLoad For NameStore NameLoad body If AttributeLoad NameLoad attr body AugAssignSub AttributeStore NameLoad attr NameLoad For NameStore NameLoad body If AttributeLoad NameLoad attr body AugAssignAdd AttributeStore NameLoad attr NameLoad orelse Assign AttributeStore NameLoad attr NameLoad Assign NameStore ListLoad Str Str For NameStore NameLoad body Expr Call NameLoad NameLoad NameLoad Call NameLoad NameLoad Assign NameStore ListLoad Str Str Str Str Str Str For NameStore NameLoad body Expr Call NameLoad NameLoad NameLoad Call NameLoad SubscriptLoad NameLoad Slice Num If BoolOpAnd UnaryOpNot NameLoad BoolOpOr NameLoad NameLoad body Assign NameStore BinOpMult NameLoad Num If NameLoad body Assign SubscriptStore NameLoad Index Str Dict Str Str Str NameLoad NameLoad NameLoad If NameLoad body Assign SubscriptStore NameLoad Index Str Dict Str Str Str NameLoad NameLoad NameLoad If CompareGt NameLoad Call NameLoad Num Str body Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Assign NameStore NameLoad Assign NameStore Dict Str Str Str NameLoad NameLoad NameLoad Assign NameStore NameLoad If CompareEq NameLoad Str body Assign NameStore NameLoad If CompareEq AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr Num body If NameLoad body Assign NameStore ListComp SubscriptLoad Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad BinOpMult BinOpMult NameLoad NameLoad Num NameLoad Index NameLoad comprehension NameStore Call NameLoad BinOpMult BinOpMult NameLoad NameLoad Num CompareEqEq BinOpMod NameLoad Num BinOpMod BinOpFloorDiv NameLoad Num Num Num orelse Assign NameStore ListComp SubscriptLoad Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad BinOpMult BinOpMult NameLoad NameLoad Num NameLoad Index NameLoad comprehension NameStore Call NameLoad BinOpMult BinOpMult NameLoad NameLoad Num CompareEqEq BinOpMod NameLoad Num BinOpMod BinOpFloorDiv NameLoad Num Num Num orelse Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad BinOpMult NameLoad NameLoad NameLoad If CompareEq AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr Num body If NameLoad body Assign NameStore ListComp SubscriptLoad Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad BinOpMult BinOpMult NameLoad NameLoad Num NameLoad Index NameLoad comprehension NameStore Call NameLoad BinOpMult BinOpMult NameLoad NameLoad Num CompareEqEq BinOpMod NameLoad Num BinOpMod BinOpFloorDiv NameLoad Num Num Num orelse Assign NameStore ListComp SubscriptLoad Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad BinOpMult BinOpMult NameLoad NameLoad Num NameLoad Index NameLoad comprehension NameStore Call NameLoad BinOpMult BinOpMult NameLoad NameLoad Num CompareEqEq BinOpMod NameLoad Num BinOpMod BinOpFloorDiv NameLoad Num Num Num orelse Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad BinOpMult NameLoad NameLoad NameLoad For NameStore NameLoad body If AttributeLoad NameLoad attr body AugAssignSub AttributeStore NameLoad attr NameLoad For NameStore NameLoad body If AttributeLoad NameLoad attr body AugAssignAdd AttributeStore NameLoad attr NameLoad orelse Assign AttributeStore NameLoad attr NameLoad Assign NameStore ListLoad Str Str For NameStore NameLoad body Expr Call NameLoad NameLoad NameLoad Call NameLoad NameLoad Assign NameStore ListLoad Str Str Str Str Str Str For NameStore NameLoad body Expr Call NameLoad NameLoad NameLoad Call NameLoad SubscriptLoad NameLoad Slice Num If BoolOpAnd UnaryOpNot NameLoad BoolOpOr NameLoad NameLoad body Assign NameStore BinOpMult NameLoad Num If NameLoad body Assign SubscriptStore NameLoad Index Str Dict Str Str Str NameLoad NameLoad NameLoad If NameLoad body Assign SubscriptStore NameLoad Index Str Dict Str Str Str NameLoad NameLoad NameLoad If CompareGt NameLoad Call NameLoad Num Str body Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Assign NameStore Dict If NameLoad body Assign SubscriptStore NameLoad Index Str NameLoad Expr Call NameLoad NameLoad Str SubscriptLoad NameLoad Index Num Expr Call NameLoad NameLoad Str Num Assign NameStore SubscriptLoad NameLoad Index Num If CompareEq NameLoad Str body Assign NameStore Num Assign NameStore Num orelse If CompareEq NameLoad Str body Assign NameStore Num Assign NameStore Num orelse Assign NameStore Num Assign NameStore Num If NameLoad body Expr Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad ListLoad NameLoad orelse If BoolOpAnd CompareGt Call NameLoad AttributeLoad NameLoad attr Num CompareEq AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Str Call NameLoad NameLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr NameLoad NameLoad NameLoad body Expr Call AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr NameLoad orelse Expr Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad ListLoad NameLoad orelse For TupleStore NameStore NameStore NameStore Call NameLoad Call NameLoad NameLoad NameLoad NameLoad body Assign NameStore Dict Assign SubscriptStore NameLoad Index Str ListLoad NameLoad Expr Call NameLoad NameLoad Str NameLoad Expr Call NameLoad NameLoad Str Num Assign NameStore NameLoad If CompareEq NameLoad Str body Assign NameStore Num Assign NameStore Num orelse If CompareEq NameLoad Str body Assign NameStore Num Assign NameStore Num orelse Assign NameStore Num Assign NameStore Num If NameLoad body Expr Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad ListLoad NameLoad orelse If BoolOpAnd CompareGt Call NameLoad AttributeLoad NameLoad attr Num CompareEq AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Str Call NameLoad NameLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr NameLoad NameLoad NameLoad body Expr Call AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr NameLoad orelse Expr Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad ListLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam NameParam defaults Str NameLoad body Expr Str Assign NameStore Call AttributeLoad NameLoad attr If BoolOpAnd CompareEq NameLoad Str UnaryOpNot NameLoad body Raise Call NameLoad Str If Call NameLoad NameLoad NameLoad body Assign NameStore Call NameLoad ListComp AttributeLoad NameLoad attr comprehension NameStore NameLoad If CompareGt Call NameLoad NameLoad Num body Raise Call NameLoad Str Assign NameStore ListComp Call NameLoad AttributeLoad NameLoad attr comprehension NameStore NameLoad If UnaryOpNot Call NameLoad NameLoad NameLoad body Raise Call NameLoad Str Expr Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam defaults Str Str Num body Expr Str If UnaryOpNot Call NameLoad NameLoad TupleLoad NameLoad NameLoad NameLoad NameLoad body Raise Call NameLoad Str If Call NameLoad NameLoad TupleLoad NameLoad NameLoad body Assign NameStore Call NameLoad ListLoad NameLoad If Call NameLoad NameLoad NameLoad body Assign NameStore Call NameLoad NameLoad For NameStore AttributeLoad NameLoad attr body Assign NameStore Dict Str Str Str Str NameLoad NameLoad NameLoad NameLoad Expr Call AttributeLoad NameLoad attr ListLoad Dict Str ListLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam defaults NameLoad body Expr Str If BoolOpAnd CompareNotEq NameLoad NameLoad BoolOpOr CompareGt NameLoad Num CompareLt NameLoad Num body Raise Call NameLoad Str If UnaryOpNot Call NameLoad NameLoad NameLoad body Raise Call NameLoad Str For NameStore NameLoad body Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr SubscriptLoad NameLoad Index Str Call AttributeLoad AttributeLoad NameLoad attr attr keyword NameLoad For NameStore NameLoad body If AttributeLoad NameLoad attr body AugAssignAdd AttributeStore NameLoad attr Call AttributeLoad NameLoad attr SubscriptLoad NameLoad Index Str orelse Expr Call AttributeLoad NameLoad attr SubscriptLoad NameLoad Index Str Expr Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad NameLoad NameLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam defaults NameLoad body Expr Str If BoolOpAnd CompareNotEq NameLoad NameLoad BoolOpOr CompareGt NameLoad Num CompareLt NameLoad Num body Raise Call NameLoad Str Assign NameStore ListLoad For NameStore Call NameLoad Num AttributeLoad AttributeLoad NameLoad attr attr body Expr Call AttributeLoad NameLoad attr Dict Str Str NameLoad NameLoad Expr Call AttributeLoad NameLoad attr NameLoad NameLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam defaults body Expr Str Expr Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad NameLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam defaults Str NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad body Expr Str If UnaryOpNot Call NameLoad NameLoad NameLoad body Raise Call NameLoad Str Expr Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam NameParam defaults NameLoad Num body Expr Str Expr Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam defaults Num NameLoad NameLoad body Expr Str If Call NameLoad NameLoad NameLoad body Assign NameStore Call NameLoad NameLoad If Call NameLoad NameLoad NameLoad body Assign NameStore Call AttributeLoad NameLoad attr If NameLoad body Expr Call NameLoad NameLoad Expr Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam defaults Num NameLoad NameLoad NameLoad body Expr Str If Call NameLoad NameLoad NameLoad body Assign NameStore Call NameLoad NameLoad If Call NameLoad NameLoad NameLoad body Assign NameStore Call AttributeLoad NameLoad attr If BoolOpAnd CompareIsNot NameLoad NameLoad UnaryOpNot CompareLtELtE Num NameLoad Num body Raise Call NameLoad BinOpMod Str NameLoad If NameLoad body Expr Call NameLoad NameLoad Expr Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam NameParam defaults NameLoad NameLoad body Expr Str If Call NameLoad NameLoad NameLoad body Assign NameStore Call NameLoad NameLoad If Call NameLoad NameLoad NameLoad body Assign NameStore Call AttributeLoad NameLoad attr If NameLoad body Expr Call NameLoad NameLoad Expr Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam NameParam NameParam defaults body Expr Str Assign NameStore Call NameLoad SubscriptLoad Call AttributeLoad SubscriptLoad Call AttributeLoad NameLoad attr Str Num Index Num attr Str Num Index Num If CompareGt Call NameLoad NameLoad NameLoad body Assign NameStore Num For NameStore Call NameLoad Num Call NameLoad NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr SubscriptLoad NameLoad Slice NameLoad BinOpAdd NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad BinOpMod Str TupleLoad NameLoad NameLoad AugAssignAdd NameStore Num orelse Expr Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam NameParam defaults body Expr Str ImportFrom alias ImportFrom alias TryExcept body Assign NameStore Call NameLoad SubscriptLoad Call AttributeLoad SubscriptLoad Call AttributeLoad NameLoad attr Str Num Index Num attr Str Num Index Num handlers ExceptHandler type TupleLoad NameLoad NameLoad body Raise Call NameLoad Str Assign NameStore Call NameLoad NameLoad If CompareLtE NameLoad Call NameLoad Str body Raise Call NameLoad BinOpMod Str NameLoad If UnaryOpNot Call NameLoad NameLoad NameLoad body Raise Call NameLoad BinOpMod Str NameLoad If UnaryOpNot Call NameLoad NameLoad NameLoad body Raise Call NameLoad BinOpMod Str NameLoad If UnaryOpNot Call NameLoad NameLoad NameLoad body Assign NameStore ListLoad NameLoad For NameStore NameLoad body Expr Call NameLoad NameLoad Assign NameStore ListComp SubscriptLoad NameLoad Index Str comprehension NameStore NameLoad Assign NameStore ListComp SubscriptLoad NameLoad Index Str comprehension NameStore NameLoad If CompareIn NameLoad NameLoad body If Call NameLoad NameLoad body Raise Call NameLoad Str orelse If CompareIn NameLoad NameLoad body If Call NameLoad NameLoad body Raise Call NameLoad Str orelse For TupleStore NameStore NameStore Call NameLoad NameLoad body Assign SubscriptStore NameLoad Index Str BinOpFloorDiv NameLoad NameLoad Assign SubscriptStore NameLoad Index Str BinOpMod NameLoad NameLoad orelse For NameStore NameLoad body Assign SubscriptStore NameLoad Index Str Num Assign NameStore Call NameLoad Str Assign NameStore ListComp Call NameLoad NameLoad comprehension TupleStore NameStore NameStore Call NameLoad Call NameLoad NameLoad keyword NameLoad keyword NameLoad For NameStore NameLoad body Assign NameStore ListComp SubscriptLoad NameLoad Index Str comprehension NameStore NameLoad If CompareGt Call NameLoad NameLoad NameLoad body Raise Call NameLoad BinOpMod Str TupleLoad NameLoad Call NameLoad NameLoad If CompareIn NameLoad NameLoad body If Call NameLoad NameLoad body Raise Call NameLoad Str orelse For TupleStore NameStore NameStore Call NameLoad NameLoad body Assign SubscriptStore NameLoad Index Str BinOpMod NameLoad NameLoad Assign NameStore ListComp SubscriptLoad NameLoad Index Str comprehension NameStore NameLoad If CompareNotEq Call NameLoad NameLoad Call NameLoad Call NameLoad Num BinOpAdd Call NameLoad NameLoad Num body Raise Call NameLoad Str If CompareGt Call NameLoad NameLoad Num body Assign NameStore BinOpMod Str TupleLoad NameLoad SubscriptLoad SubscriptLoad NameLoad Index Num Index Str orelse Assign NameStore NameLoad Assign NameStore Call NameLoad NameLoad keyword Call NameLoad Str Assign NameStore ListComp SubscriptLoad NameLoad Index Str comprehension NameStore NameLoad Assign NameStore ListLoad For NameStore NameLoad body For NameStore SubscriptLoad NameLoad Index Str body Assign NameStore NameLoad Assign SubscriptStore NameLoad Index Str SubscriptLoad NameLoad Index Str Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam defaults Str body Expr Str Expr Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Str Expr Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam defaults Str body Expr Str Expr Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Str Expr Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam defaults NameLoad NameLoad body Expr Str Expr Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Str Expr Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam defaults body Expr Str Assign NameStore Call AttributeLoad NameLoad attr NameLoad If AttributeLoad NameLoad attr body AugAssignAdd AttributeStore NameLoad attr NameLoad orelse Assign AttributeStore NameLoad attr NameLoad If AttributeLoad NameLoad attr body AugAssignSub AttributeStore NameLoad attr NameLoad Expr Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad NameLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam NameParam NameParam defaults Num Dict Str NameLoad body Expr Str Assign NameStore Dict If BoolOpOr Call NameLoad NameLoad NameLoad Call NameLoad NameLoad NameLoad body Assign NameStore ListLoad NameLoad Assign SubscriptStore NameLoad Index Str NameLoad If CompareGt Call NameLoad Call NameLoad ListComp AttributeLoad NameLoad attr comprehension NameStore SubscriptLoad NameLoad Index Str Num body Raise Call NameLoad Str If BoolOpOr Call NameLoad NameLoad NameLoad Call NameLoad NameLoad NameLoad body Assign NameStore ListLoad NameLoad Assign SubscriptStore NameLoad Index Str NameLoad Assign SubscriptStore NameLoad Index Str NameLoad Assign NameStore ListLoad NameLoad If BoolOpAnd UnaryOpNot NameLoad AttributeLoad NameLoad attr CompareEq AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Str CompareEq AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr NameLoad CompareEq AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr NameLoad CompareEq AttributeLoad SubscriptLoad SubscriptLoad SubscriptLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Index Num Index Str Index Num attr AttributeLoad SubscriptLoad NameLoad Index Num attr body Expr Call AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr NameLoad orelse Expr Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad NameLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam NameParam defaults NameLoad NameLoad body Expr Str Expr Call NameLoad NameLoad NameLoad Assign NameStore Dict Assign SubscriptStore NameLoad Index Str NameLoad For NameStore ListLoad Str body Assign NameStore SubscriptLoad Call NameLoad Index NameLoad If BoolOpAnd Call NameLoad NameLoad NameLoad CompareIn Str NameLoad body Assign NameStore Call NameLoad NameLoad Assign SubscriptStore NameLoad Index NameLoad NameLoad Expr Call NameLoad NameLoad Expr Call AttributeLoad NameLoad attr NameLoad NameLoad NameLoad NameLoad Str decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam defaults NameLoad Num NameLoad NameLoad NameLoad body Expr Str Expr Call NameLoad NameLoad NameLoad Assign NameStore Dict Assign SubscriptStore NameLoad Index Str NameLoad For NameStore TupleLoad Str Str Str Str body Assign NameStore SubscriptLoad Call NameLoad Index NameLoad If BoolOpAnd Call NameLoad NameLoad NameLoad CompareIn Str NameLoad body Assign NameStore Call NameLoad NameLoad Assign SubscriptStore NameLoad Index NameLoad NameLoad Expr Call NameLoad NameLoad Expr Call AttributeLoad NameLoad attr NameLoad NameLoad NameLoad NameLoad Str decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam defaults Num NameLoad NameLoad NameLoad body Expr Str Expr Call NameLoad NameLoad NameLoad Assign NameStore Dict Assign SubscriptStore NameLoad Index Str NameLoad For NameStore TupleLoad Str Str Str Str body Assign NameStore SubscriptLoad Call NameLoad Index NameLoad If BoolOpAnd Call NameLoad NameLoad NameLoad CompareIn Str NameLoad body Assign NameStore Call NameLoad NameLoad Assign SubscriptStore NameLoad Index NameLoad NameLoad Expr Call NameLoad NameLoad Expr Call AttributeLoad NameLoad attr NameLoad NameLoad NameLoad NameLoad Str decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam defaults Num Num NameLoad NameLoad NameLoad body Expr Str Expr Call NameLoad NameLoad NameLoad Assign NameStore Dict Assign SubscriptStore NameLoad Index Str NameLoad For NameStore TupleLoad Str Str Str Str Str body Assign NameStore SubscriptLoad Call NameLoad Index NameLoad If BoolOpAnd Call NameLoad NameLoad NameLoad CompareIn Str NameLoad body Assign NameStore Call NameLoad NameLoad Assign SubscriptStore NameLoad Index NameLoad NameLoad Expr Call NameLoad NameLoad Expr Call AttributeLoad NameLoad attr NameLoad NameLoad NameLoad NameLoad Str decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam defaults Num Num NameLoad NameLoad NameLoad NameLoad body Expr Str Expr Call NameLoad NameLoad NameLoad Assign NameStore Dict Assign SubscriptStore NameLoad Index Str NameLoad For NameStore TupleLoad Str Str Str Str Str Str body Assign NameStore SubscriptLoad Call NameLoad Index NameLoad If BoolOpAnd Call NameLoad NameLoad NameLoad CompareIn Str NameLoad body Assign NameStore Call NameLoad NameLoad Assign SubscriptStore NameLoad Index NameLoad NameLoad Expr Call NameLoad NameLoad Expr Call AttributeLoad NameLoad attr NameLoad NameLoad NameLoad NameLoad Str decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam defaults body Expr Str Expr Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad NameLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam defaults body Expr Str Assign NameStore Call NameLoad NameLoad If UnaryOpNot Call NameLoad NameLoad NameLoad body Raise Call NameLoad Str If UnaryOpNot Call NameLoad NameLoad NameLoad body Assign NameStore BinOpMult ListLoad Call AttributeLoad NameLoad attr NameLoad Call NameLoad NameLoad orelse If CompareNotEq Call NameLoad NameLoad Call NameLoad NameLoad body Raise Call NameLoad Str Assign NameStore ListComp Call AttributeLoad NameLoad attr NameLoad comprehension NameStore NameLoad For NameStore NameLoad body If UnaryOpNot Call NameLoad NameLoad TupleLoad NameLoad NameLoad body Raise Call NameLoad Str For TupleStore NameStore NameStore Call NameLoad NameLoad NameLoad body Assign NameStore ListLoad If CompareGt NameLoad Call NameLoad Num Str body Assign NameStore BinOpSub NameLoad Call NameLoad Num Str Expr Call AttributeLoad NameLoad attr NameLoad NameLoad Call NameLoad Num Str While CompareGt NameLoad Call NameLoad Num Str body Expr Call AttributeLoad NameLoad attr NameLoad NameLoad NameLoad AugAssignSub NameStore NameLoad Continue Assign NameStore Dict Assign SubscriptStore NameLoad Index Str NameLoad Assign SubscriptStore NameLoad Index Str NameLoad If AttributeLoad NameLoad attr body AugAssignAdd AttributeStore NameLoad attr NameLoad orelse Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad If BoolOpAnd AttributeLoad NameLoad attr CompareEq AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Str CompareEq AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr NameLoad CompareEq AttributeLoad SubscriptLoad SubscriptLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Index Num Index Str attr AttributeLoad NameLoad attr body Expr Call AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr NameLoad orelse Expr Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam defaults body Expr Str Expr Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Return BinOpMod Str TupleLoad Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam NameParam defaults body For NameStore AttributeLoad NameLoad attr body Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index NameLoad If CompareIs AttributeLoad NameLoad attr NameLoad body Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam defaults body Expr Str Assign NameStore NameLoad Assign NameStore ListLoad Assign NameStore Call NameLoad NameLoad Assign NameStore Call NameLoad NameLoad If Call NameLoad NameLoad NameLoad body If CompareNotEq Call NameLoad NameLoad Call NameLoad AttributeLoad NameLoad attr body Raise Call NameLoad Str Assign NameStore ListComp Call AttributeLoad NameLoad attr NameLoad comprehension NameStore NameLoad orelse Assign NameStore BinOpMult ListLoad Call AttributeLoad NameLoad attr NameLoad Call NameLoad AttributeLoad NameLoad attr For TupleStore NameStore NameStore Call NameLoad Call NameLoad AttributeLoad NameLoad attr NameLoad body Assign NameStore Call AttributeLoad NameLoad attr Str If BoolOpOr CompareEq Call NameLoad NameLoad Num CompareLt AttributeLoad NameLoad attr NameLoad body Assign NameStore Call NameLoad GeneratorExp NameLoad comprehension NameStore AttributeLoad NameLoad attr CompareGtE AttributeLoad NameLoad attr NameLoad NameLoad If CompareIs NameLoad NameLoad body Raise Call NameLoad BinOpMod Str TupleLoad SubscriptLoad Call AttributeLoad Call NameLoad NameLoad attr Str Index Num SubscriptLoad Call AttributeLoad Call NameLoad NameLoad attr Str Index Num Expr Call AttributeLoad NameLoad attr Dict Str Str NameLoad ListLoad Assign NameStore Dict Str Str NameLoad NameLoad If NameLoad body Assign SubscriptStore NameLoad Index Str NameLoad Expr Call AttributeLoad SubscriptLoad SubscriptLoad NameLoad Index Num Index Str attr NameLoad AugAssignSub AttributeStore NameLoad attr NameLoad If AttributeLoad NameLoad attr body AugAssignAdd AttributeStore NameLoad attr NameLoad orelse Assign AttributeStore NameLoad attr NameLoad Return NameLoad decorator_list NameLoad FunctionDef arguments args NameParam NameParam defaults body Expr Str If BoolOpAnd CompareGt Call NameLoad AttributeLoad NameLoad attr Num CompareEq AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Str body AugAssignAdd AttributeStore SubscriptLoad AttributeLoad NameLoad attr Index Num attr NameLoad orelse Expr Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam NameParam defaults body Expr Str Assign NameStore Num If BoolOpAnd UnaryOpNot NameLoad AttributeLoad NameLoad attr CompareEq AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Str CompareEq AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr NameLoad body If CompareLtE Call AttributeLoad NameLoad attr NameLoad NameLoad NameLoad body If UnaryOpNot NameLoad body Expr Call AttributeLoad SubscriptLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Index Num attr Dict NameLoad NameLoad orelse If NameLoad body Expr Call AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr ListLoad Dict NameLoad NameLoad orelse If CompareGt Call AttributeLoad NameLoad attr NameLoad NameLoad NameLoad body Raise Call NameLoad Str orelse Expr Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad ListLoad ListLoad Dict NameLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam defaults body Expr Str Assign NameStore Call NameLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Assign NameStore ListComp SubscriptLoad SubscriptLoad Call NameLoad Call AttributeLoad NameLoad attr Index Num Index Str comprehension NameStore AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr comprehension NameStore NameLoad Expr Call AttributeLoad NameLoad attr SubscriptLoad NameLoad Index Str Assign NameStore Call NameLoad Call NameLoad NameLoad Assign NameStore Call NameLoad NameLoad AugAssignAdd NameStore NameLoad If NameLoad body AugAssignAdd NameStore Num Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body If CompareIs Call NameLoad NameLoad NameLoad body Return DictComp NameLoad Call AttributeLoad NameLoad attr NameLoad comprehension TupleStore NameStore NameStore Call AttributeLoad NameLoad attr orelse If CompareIs Call NameLoad NameLoad NameLoad body Return ListComp Call AttributeLoad NameLoad attr NameLoad comprehension NameStore NameLoad orelse If Call NameLoad NameLoad NameLoad body Return Call AttributeLoad NameLoad attr NameLoad orelse If Call NameLoad NameLoad NameLoad body Return ListComp Call AttributeLoad NameLoad attr NameLoad comprehension NameStore AttributeLoad NameLoad attr orelse If Call NameLoad NameLoad NameLoad body Return Call AttributeLoad NameLoad attr NameLoad orelse If Call NameLoad NameLoad NameLoad body Return Call NameLoad NameLoad orelse Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Str Assign NameStore Dict Assign NameStore Dict For TupleStore NameStore NameStore Call AttributeLoad NameLoad attr body If Call NameLoad NameLoad NameLoad body Assign SubscriptStore NameLoad Index Call NameLoad NameLoad Call AttributeLoad NameLoad attr NameLoad If BoolOpAnd Call NameLoad NameLoad NameLoad Call NameLoad SubscriptLoad NameLoad Index Num NameLoad body For NameStore NameLoad body Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Str orelse If BoolOpAnd Call NameLoad NameLoad NameLoad CompareIn Str NameLoad body If CompareIn Str NameLoad body Assign NameStore SubscriptLoad NameLoad Index Str If BoolOpAnd NameLoad Call AttributeLoad NameLoad attr Str body Raise Call NameLoad Str orelse Assign NameStore NameLoad Assign SubscriptStore NameLoad Index Call NameLoad NameLoad Call AttributeLoad NameLoad attr NameLoad SubscriptLoad NameLoad Index Str SubscriptLoad NameLoad Index Str keyword Call AttributeLoad NameLoad attr Str keyword NameLoad orelse Assign SubscriptStore NameLoad Index Call NameLoad NameLoad NameLoad Assign SubscriptStore NameLoad Index Str NameLoad For TupleStore NameStore NameStore Call AttributeLoad NameLoad attr body If BoolOpAnd Call NameLoad NameLoad NameLoad CompareIn Str Call NameLoad SubscriptLoad NameLoad Index Num body Assign NameStore Call NameLoad ListLoad For NameStore NameLoad body Assign TupleStore NameStore NameStore Call AttributeLoad NameLoad attr Str Num Expr Call AttributeLoad NameLoad attr Call AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index NameLoad attr attr NameLoad Assign SubscriptStore NameLoad Index Call NameLoad NameLoad NameLoad orelse If CompareIn Str Call NameLoad NameLoad body Assign NameStore SubscriptLoad Call AttributeLoad NameLoad attr Str Index Num If UnaryOpNot CompareIn NameLoad AttributeLoad NameLoad attr body Raise Call NameLoad BinOpMod Str NameLoad If CompareEq SubscriptLoad Call AttributeLoad NameLoad attr Str Index Num Str body Assign SubscriptStore NameLoad Index Call NameLoad NameLoad Call AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index NameLoad attr attr orelse Assign SubscriptStore NameLoad Index Call NameLoad NameLoad Call AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index NameLoad attr attr SubscriptLoad Call AttributeLoad NameLoad attr Str Index Num orelse Assign SubscriptStore NameLoad Index Call NameLoad NameLoad NameLoad Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam defaults Str body Expr Str Expr Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad NameLoad NameLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam defaults body Expr Str If Call NameLoad NameLoad NameLoad body Assign NameStore ListLoad NameLoad orelse If Call NameLoad NameLoad NameLoad body For NameStore NameLoad body If UnaryOpNot Call NameLoad NameLoad NameLoad body Raise Call NameLoad Str orelse Raise Call NameLoad Str Expr Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam defaults body Expr Str Assign NameStore Call NameLoad NameLoad Expr Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad NameLoad NameLoad decorator_list decorator_list
N/A container Container Well WellGroup container_type ContainerType _CONTAINER_TYPES unit Unit instruction * pipette_tools assign util check_valid_origin util check_stamp_append util check_valid_mag util check_valid_mag_params util check_valid_incubate_params util check_valid_gel_purify_extract N/A sys N/A N/A N/A N/A sys version_info N/A 0 3 N/A N/A xrange range N/A basestring str N/A 
    :copyright: 2016 by The Autoprotocol Development Team, see AUTHORS
        for more details.
    :license: BSD, see LICENSE for more details

 Ref N/A object N/A N/A 
    Link a ref name (string) to a Container instance.

     __init__ N/A N/A self name opts container N/A N/A N/A N/A self name name N/A N/A self opts opts N/A N/A self container container N/A N/A Protocol N/A object N/A N/A 
    A Protocol is a sequence of instructions to be executed, and a set of
    containers on which those instructions act.

    Initially, a Protocol has an empty sequence of instructions and no
    referenced containers. To add a reference to a container, use the ref()
    method, which returns a Container.

        .. code-block:: python

            p = Protocol()
            my_plate = p.ref("my_plate", id="ct1xae8jabbe6",
                                    cont_type="96-pcr", storage="cold_4")

    To add instructions to the protocol, use the helper methods in this class

        .. code-block:: python

            p.transfer(source=my_plate.well("A1"),
                       dest=my_plate.well("B4"),
                       volume="50:microliter")
            p.thermocycle(my_plate, groups=[
                          { "cycles": 1,
                            "steps": [
                              { "temperature": "95:celsius",
                                "duration": "1:hour"
                              }]
                          }])

    Autoprotocol Output:

        .. code-block:: json

            {
              "refs": {
                "my_plate": {
                  "id": "ct1xae8jabbe6",
                  "store": {
                    "where": "cold_4"
                  }
                }
              },
              "instructions": [
                {
                  "groups": [
                    {
                      "transfer": [
                        {
                          "volume": "50.0:microliter",
                          "to": "my_plate/15",
                          "from": "my_plate/0"
                        }
                      ]
                    }
                  ],
                  "op": "pipette"
                },
                {
                  "volume": "10:microliter",
                  "dataref": null,
                  "object": "my_plate",
                  "groups": [
                    {
                      "cycles": 1,
                      "steps": [
                        {
                          "duration": "1:hour",
                          "temperature": "95:celsius"
                        }
                      ]
                    }
                  ],
                  "op": "thermocycle"
                }
              ]
            }

     __init__ N/A N/A self refs instructions N/A None None N/A N/A N/A N/A N/A super Protocol self __init__ N/A N/A self refs N/A refs N/A N/A N/A self instructions N/A instructions N/A N/A container_type N/A N/A self shortname N/A N/A N/A 
        Convert a ContainerType shortname into a ContainerType object.

        Parameters
        ----------
        shortname : str
            String representing one of the ContainerTypes in the
            _CONTAINER_TYPES dictionary.

        Returns
        -------
        ContainerType
            Returns a Container type object corresponding to the shortname
            passed to the function.  If a ContainerType object is passed,
            that same ContainerType is returned.

        Raises
        ------
        ValueError
            If an unknown ContainerType shortname is passed as a parameter.

         N/A N/A isinstance shortname ContainerType N/A N/A shortname N/A N/A N/A shortname _CONTAINER_TYPES N/A N/A N/A _CONTAINER_TYPES N/A shortname N/A N/A N/A ValueError N/A Unknown container type %s (known types=%s) N/A shortname N/A str N/A N/A _CONTAINER_TYPES keys N/A ref N/A N/A self name id cont_type storage discard N/A None None None None N/A N/A 
        Add a Ref object to the dictionary of Refs associated with this protocol
        and return a Container with the id, container type and storage or
        discard conditions specified.

        Example Usage:

        .. code-block:: python

            p = Protocol()

            # ref a new container (no id specified)
            sample_ref_1 = p.ref("sample_plate_1",
                                 cont_type="96-pcr",
                                 discard=True)

            # ref an existing container with a known id
            sample_ref_2 = p.ref("sample_plate_2",
                                 id="ct1cxae33lkj",
                                 cont_type="96-pcr",
                                 storage="ambient")

        Autoprotocol Output:

        .. code-block:: json

            {
              "refs": {
                "sample_plate_1": {
                  "new": "96-pcr",
                  "discard": true
                },
                "sample_plate_2": {
                  "id": "ct1cxae33lkj",
                  "store": {
                    "where": "ambient"
                  }
                }
              },
              "instructions": []
            }

        Parameters
        ----------
        name : str
            name of the container/ref being created.
        id : str
            id of the container being created, from your organization's
            inventory on http://secure.transcriptic.com.  Strings representing
            ids begin with "ct".
        cont_type : str, ContainerType
            container type of the Container object that will be generated.
        storage : {"ambient", "cold_20", "cold_4", "warm_37"}, optional
            temperature the container being referenced should be stored at
            after a run is completed.  Either a storage condition must be
            specified or discard must be set to True.
        discard : bool, optional
            if no storage condition is specified and discard is set to True,
            the container being referenced will be discarded after a run.

        Returns
        -------
        container : Container
            Container object generated from the id and container type
             provided.

        Raises
        ------
        RuntimeError
            If a container previously referenced in this protocol (existant
            in refs section) has the same name as the one specified.
        RuntimeError
            If no container type is specified.
        RuntimeError
            If no valid storage or discard condition is specified.

         N/A N/A name N/A N/A N/A self refs keys N/A N/A N/A RuntimeError Two containers within the same protocol cannot have the same name. N/A opts N/A N/A N/A N/A cont_type N/A N/A self container_type cont_type N/A N/A id cont_type N/A N/A N/A opts N/A id id N/A N/A cont_type N/A N/A N/A opts N/A new N/A cont_type shortname N/A N/A N/A ValueError N/A N/A N/A RuntimeError You must specify a ref's container type. N/A storage N/A N/A N/A opts N/A store N/A where storage N/A N/A N/A discard N/A storage N/A N/A N/A opts N/A discard discard N/A N/A N/A RuntimeError You must specify either a valid storage condition or set discard=True for a Ref. N/A container N/A Container id cont_type name name storage N/A storage storage None N/A N/A N/A self refs N/A name N/A Ref name opts container N/A container N/A append N/A N/A self instructions N/A N/A N/A 
        Append instruction(s) to the list of Instruction objects associated
        with this protocol.  The other functions on Protocol() should be used
        in lieu of doing this directly.

        Example Usage:

        .. code-block:: python

            p = Protocol()
            p.append(Incubate("sample_plate", "ambient", "1:hour"))

        Autoprotocol Output:

        .. code-block:: json

            "instructions": [
                {
                  "duration": "1:hour",
                  "where": "ambient",
                  "object": "sample_plate",
                  "shaking": false,
                  "op": "incubate"
                }
            ]

        Parameters
        ----------
        instructions : Instruction
            Instruction object to be appended.

         N/A N/A N/A type instructions list N/A N/A N/A N/A N/A self instructions extend instructions N/A N/A N/A N/A N/A self instructions append instructions N/A as_dict N/A N/A self N/A N/A N/A 
        Return the entire protocol as a dictionary.

        Example Usage:

        .. code-block:: python

            from autoprotocol.protocol import Protocol
            import json

            p = Protocol()
            sample_ref_2 = p.ref("sample_plate_2",
                                  id="ct1cxae33lkj",
                                  cont_type="96-pcr",
                                  storage="ambient")
            p.seal(sample_ref_2)
            p.incubate(sample_ref_2, "warm_37", "20:minute")

            print json.dumps(p.as_dict(), indent=2)

        Autoprotocol Output:

        .. code-block:: json

            {
              "refs": {
                "sample_plate_2": {
                  "id": "ct1cxae33lkj",
                  "store": {
                    "where": "ambient"
                  }
                }
              },
              "instructions": [
                {
                  "object": "sample_plate_2",
                  "op": "seal"
                },
                {
                  "duration": "20:minute",
                  "where": "warm_37",
                  "object": "sample_plate_2",
                  "shaking": false,
                  "op": "incubate"
                }
              ]
            }

        Returns
        -------
        dict
            dict with keys "refs" and "instructions", each of which contain
            the "refified" contents of their corresponding Protocol attribute.

         N/A outs N/A N/A N/A n ref N/A N/A N/A self refs items N/A N/A well N/A N/A ref container _wells N/A N/A N/A N/A well name N/A N/A len N/A well properties 0 N/A N/A N/A n N/A N/A outs keys N/A N/A N/A outs N/A n N/A N/A N/A N/A outs N/A n N/A N/A str N/A well index N/A N/A N/A well name N/A N/A N/A N/A N/A outs N/A n N/A N/A str N/A well index N/A name N/A well name N/A N/A N/A len N/A well properties 0 N/A N/A N/A N/A N/A outs N/A n N/A N/A str N/A well index N/A properties N/A well properties N/A N/A store N/A ref opts N/A N/A N/A N/A ref opts N/A store N/A where N/A N/A ref container storage N/A N/A N/A N/A N/A ref container storage None N/A discard N/A ref opts N/A N/A N/A N/A ref opts N/A discard True N/A N/A N/A ref opts N/A store N/A N/A N/A N/A N/A N/A ref container storage None N/A discard N/A ref opts N/A N/A N/A N/A ref opts N/A store N/A where N/A N/A ref container storage N/A N/A N/A ref opts N/A discard N/A outs N/A N/A N/A refs instructions outs N/A dict N/A N/A key N/A value opts N/A N/A key value N/A N/A N/A self refs items N/A list N/A map N/A N/A N/A x N/A N/A N/A self _refify N/A x data N/A self instructions outs N/A N/A N/A refs instructions N/A dict N/A N/A key N/A value opts N/A N/A key value N/A N/A N/A self refs items N/A list N/A map N/A N/A N/A x N/A N/A N/A self _refify N/A x data N/A self instructions N/A store N/A N/A self container condition N/A N/A N/A 
        Manually adjust the storage destiny for a container used within
        this protocol.

        Parameters
        ----------
        container : Container
            Container used within this protocol
        condition : str
            New storage destiny for the specified Container

        Raises
        ------
        TypeError
            If container argument is not a Container object
        RuntimeError
            If the container passed is not already present in self.refs

         N/A N/A N/A condition N/A condition discard N/A N/A condition None N/A N/A N/A isinstance container Container N/A N/A N/A TypeError Protocol.store() can only be used on a Container object. N/A N/A container storage condition N/A r N/A N/A N/A self refs get N/A container name N/A N/A r N/A N/A N/A RuntimeError That container does not exist in the refs for this protocol. N/A N/A discard N/A r opts N/A N/A N/A N/A N/A r opts pop discard N/A condition N/A N/A N/A N/A r opts N/A store N/A where N/A str condition N/A N/A N/A N/A N/A r opts pop store N/A N/A N/A r opts N/A discard True N/A distribute N/A N/A self source dest volume allow_carryover mix_before mix_vol repetitions flowrate aspirate_speed aspirate_source distribute_target pre_buffer disposal_vol transit_vol blowout_buffer tip_type new_group N/A False False None 10 100:microliter/second None None None None None None None None False N/A N/A 
        Distribute liquid from source well(s) to destination wells(s).


        Example Usage:

        .. code-block:: python

            p = Protocol()
            sample_plate = p.ref("sample_plate",
                                 None,
                                 "96-flat",
                                 storage="warm_37")
            sample_source = p.ref("sample_source",
                                  "ct32kj234l21g",
                                  "micro-1.5",
                                  storage="cold_20")

            p.distribute(sample_source.well(0),
                         sample_plate.wells_from(0,8,columnwise=True),
                         "200:microliter",
                         mix_before=True,
                         mix_vol="500:microliter",
                         repetitions=20)

        Autoprotocol Output:

        .. code-block:: json

            "instructions": [
              {
                "groups": [
                  {
                    "distribute": {
                      "to": [
                        {
                          "volume": "150.0:microliter",
                          "well": "sample_plate/0"
                        },
                        {
                          "volume": "150.0:microliter",
                          "well": "sample_plate/12"
                        },
                        {
                          "volume": "150.0:microliter",
                          "well": "sample_plate/24"
                        },
                        {
                          "volume": "150.0:microliter",
                          "well": "sample_plate/36"
                        },
                        {
                          "volume": "150.0:microliter",
                          "well": "sample_plate/48"
                        },
                        {
                          "volume": "150.0:microliter",
                          "well": "sample_plate/60"
                        },
                        {
                          "volume": "150.0:microliter",
                          "well": "sample_plate/72"
                        },
                        {
                          "volume": "150.0:microliter",
                          "well": "sample_plate/84"
                        }
                      ],
                      "from": "sample_source/0",
                      "mix_before": {
                        "volume": "500:microliter",
                        "repetitions": 20,
                        "speed": "100:microliter/second"
                      }
                    }
                  }
                ],
                "op": "pipette"
              }
            ]

        Parameters
        ----------
        source : Well, WellGroup
            Well or wells to distribute liquid from.  If passed as a WellGroup
            with set_volume() called on it, liquid will be automatically be
            drawn from the wells specified using the fill_wells function.
        dest : Well, WellGroup
            Well or wells to distribute liquid to.
        volume : str, Unit, list
            Volume of liquid to be distributed to each destination well.  If a
            single string or unit is passed to represent the volume, that
            volume will be distributed to each destination well.  If a list of
            volumes is provided, that volume will be distributed to the
            corresponding well in the WellGroup provided. The length of the
            volumes list must therefore match the number of wells in the
            destination WellGroup if destination wells are recieving different
            volumes.
        allow_carryover : bool, optional
            specify whether the same pipette tip can be used to aspirate more
            liquid from source wells after the previous volume aspirated has
            been depleted.
        mix_before : bool, optional
            Specify whether to mix the liquid in the destination well before
            liquid is transferred.
        mix_vol : str, Unit, optional
            Volume to aspirate and dispense in order to mix liquid in a wells
            before liquid is distributed.
        repetitions : int, optional
            Number of times to aspirate and dispense in order to mix
            liquid in a well before liquid is distributed.
        flowrate : str, Unit, optional
            Speed at which to mix liquid in well before liquid is distributed.
        aspirate speed : str, Unit, optional
            Speed at which to aspirate liquid from source well.  May not be
            specified if aspirate_source is also specified. By default this is
            the maximum aspiration speed, with the start speed being half of
            the speed specified.
        aspirate_source : fn, optional
            Can't be specified if aspirate_speed is also specified.
        distribute_target : fn, optional
            A function that contains additional parameters for distributing to
            target wells including depth, dispense_speed, and calibrated
            volume.
            If this parameter is specified, the same parameters will be
            applied to every destination well.
            Can't be specified if dispense_speed is also specified.
        pre_buffer : str, Unit, optional
            Volume of air aspirated before aspirating liquid.
        disposal_vol : str, Unit, optional
            Volume of extra liquid to aspirate that will be dispensed into
            trash afterwards.
        transit_vol : str, Unit, optional
            Volume of air aspirated after aspirating liquid to reduce presence
            of bubbles at pipette tip.
        blowout_buffer : bool, optional
            If true the operation will dispense the pre_buffer along with the
            dispense volume.
            Cannot be true if disposal_vol is specified.

        Raises
        ------
        RuntimeError
            If no mix volume is specified for the mix_before instruction.
        ValueError
            If source and destination well(s) is/are not expressed as either
            Wells or WellGroups.

         N/A opts N/A N/A N/A N/A dists N/A N/A self fill_wells dest source volume distribute_target N/A N/A N/A ValueError N/A N/A N/A RuntimeError When distributing liquid, source well(s) must have an associated volume (aliquot). N/A groups N/A N/A d dists N/A N/A opts N/A N/A mix_before N/A N/A N/A mix_vol N/A N/A N/A RuntimeError No mix volume specified for mix_before. N/A N/A opts N/A mix_before N/A volume repetitions speed mix_vol repetitions flowrate N/A allow_carryover N/A N/A N/A opts N/A allow_carryover allow_carryover N/A N/A opts N/A from N/A d N/A from N/A N/A opts N/A to N/A d N/A to N/A opt_list N/A aspirate_speed allow_carryover N/A option opt_list N/A N/A N/A assign opts option N/A eval option N/A x_opt_list N/A x_aspirate_source x_pre_buffer x_disposal_vol x_transit_vol x_blowout_buffer x_tip_type N/A x_option x_opt_list N/A N/A N/A assign opts x_option N/A eval N/A x_option N/A 2 N/A N/A N/A groups append N/A distribute opts N/A new_group N/A N/A N/A N/A self append N/A Pipette groups N/A N/A N/A N/A self _pipette groups N/A transfer N/A N/A self source dest volume one_source one_tip aspirate_speed dispense_speed aspirate_source dispense_target pre_buffer disposal_vol transit_vol blowout_buffer tip_type new_group N/A False False None None None None None None None None None False mix_kwargs N/A N/A 
        Transfer liquid from one specific well to another.  A new pipette tip
        is used between each transfer step unless the "one_tip" parameter
        is set to True.

        Example Usage:

        .. code-block:: python

            p = Protocol()
            sample_plate = p.ref("sample_plate",
                                 ct32kj234l21g,
                                 "96-flat",
                                 storage="warm_37")


            # a basic one-to-one transfer:
            p.transfer(sample_plate.well("B3"),
                       sample_plate.well("C3"),
                       "20:microliter")

            # using a basic transfer in a loop:
            for i in xrange(1, 12):
              p.transfer(sample_plate.well(i-1),
                         sample_plate.well(i),
                         "10:microliter")

            # transfer liquid from each well in the first column of a 96-well
            # plate to each well of the second column using a new tip and
            # a different volume each time:
            volumes = ["5:microliter", "10:microliter", "15:microliter",
                       "20:microliter", "25:microliter", "30:microliter",
                       "35:microliter", "40:microliter"]

            p.transfer(sample_plate.wells_from(0,8,columnwise=True),
                       sample_plate.wells_from(1,8,columnwise=True),
                       volumes)

            # transfer liquid from wells A1 and A2 (which both contain the same
            # source) into each of the following 10 wells:
            p.transfer(sample_plate.wells_from("A1", 2),
                       sample_plate.wells_from("A3", 10),
                       "10:microliter",
                       one_source=True)

            # transfer liquid from wells containing the same source to multiple
            # other wells without discarding the tip in between:
            p.transfer(sample_plate.wells_from("A1", 2),
                       sample_plate.wells_from("A3", 10),
                       "10:microliter",
                       one_source=True,
                       one_tip=True)


        Parameters
        ----------
        source : Well, WellGroup
            Well or wells to transfer liquid from.  If multiple source wells
            are supplied and one_source is set to True, liquid will be
            transfered from each source well specified as long as it contains
            sufficient volume. Otherwise, the number of source wells specified
            must match the number of destination wells specified and liquid
            will be transfered from each source well to its corresponding
            destination well.
        dest : Well, WellGroup
            Well or WellGroup to which to transfer liquid.  The number of
            destination wells must match the number of source wells specified
            unless one_source is set to True.
        volume : str, Unit, list
            The volume(s) of liquid to be transferred from source wells to
            destination wells.  Volume can be specified as a single string or
            Unit, or can be given as a list of volumes.  The length of a list
            of volumes must match the number of destination wells given unless
            the same volume is to be transferred to each destination well.
        one_source : bool, optional
            Specify whether liquid is to be transferred to destination wells
            from a group of wells all containing the same substance.
        one_tip : bool, optional
            Specify whether all transfer steps will use the same tip or not.
        mix_after : bool, optional
            Specify whether to mix the liquid in the destination well after
            liquid is transferred.
        mix_before : bool, optional
            Specify whether to mix the liquid in the source well before
            liquid is transferred.
        mix_vol : str, Unit, optional
            Volume to aspirate and dispense in order to mix liquid in a wells
            before and/or after each transfer step.
        repetitions : int, optional
            Number of times to aspirate and dispense in order to mix
            liquid in well before and/or after each transfer step.
        flowrate : str, Unit, optional
            Speed at which to mix liquid in well before and/or after each
            transfer step.
        aspirate speed : str, Unit, optional
            Speed at which to aspirate liquid from source well.  May not be
            specified if aspirate_source is also specified. By default this is
            the maximum aspiration speed, with the start speed being half of
            the speed specified.
        dispense_speed : str, Unit, optional
            Speed at which to dispense liquid into the destination well.  May
            not be specified if dispense_target is also specified.
        aspirate_source : fn, optional
            Can't be specified if aspirate_speed is also specified.
        dispense_target : fn, optional
            Same but opposite of  aspirate_source.
        pre_buffer : str, Unit, optional
            Volume of air aspirated before aspirating liquid.
        disposal_vol : str, Unit, optional
            Volume of extra liquid to aspirate that will be dispensed into
            trash afterwards.
        transit_vol : str, Unit, optional
            Volume of air aspirated after aspirating liquid to reduce presence
            of bubbles at pipette tip.
        blowout_buffer : bool, optional
            If true the operation will dispense the pre_buffer along with the
            dispense volume. Cannot be true if disposal_vol is specified.
        tip_type : str, optional
            Type of tip to be used for the transfer operation.
        new_group : bool, optional

        Raises
        ------
        RuntimeError
            If more than one volume is specified as a list but the list length
            does not match the number of destination wells given.
        RuntimeError
            If transferring from WellGroup to WellGroup that have different
            number of wells and one_source is not True.

         N/A opts N/A N/A source N/A WellGroup source N/A dest N/A WellGroup dest N/A len_source N/A len N/A source wells N/A len_dest N/A len N/A dest wells N/A N/A one_source N/A N/A N/A N/A len_dest 1 N/A len_source 1 N/A N/A source N/A WellGroup N/A N/A source wells len_dest N/A len_source N/A len N/A source wells N/A N/A N/A len_dest 1 N/A len_source 1 N/A N/A dest N/A WellGroup N/A N/A dest wells len_source N/A len_dest N/A len N/A dest wells N/A N/A len_source len_dest N/A N/A N/A RuntimeError To transfer liquid from one well or multiple wells  containing the same source, set one_source to True. To transfer liquid from multiple wells to a single destination well, specify only one destination well. Otherwise, you must specify the same number of source and destination wells to do a one-to-one transfer. N/A N/A N/A isinstance volume basestring N/A isinstance volume Unit N/A N/A N/A N/A len_dest 1 N/A one_source N/A N/A volume N/A N/A N/A N/A N/A N/A Unit fromstring volume to ul len_source N/A N/A volume N/A N/A N/A N/A N/A N/A Unit fromstring volume to ul len_dest N/A N/A N/A N/A isinstance volume list N/A N/A len volume len_dest N/A N/A volume N/A list N/A map N/A N/A N/A x N/A N/A N/A N/A N/A Unit fromstring x to ul volume N/A N/A N/A RuntimeError Unless the same volume of liquid is being transferred to each destination well, each destination well must have a corresponding volume in the form of a list. N/A one_source N/A N/A N/A N/A source_vol N/A N/A s volume N/A s N/A source wells N/A N/A N/A sum N/A a N/A a volume N/A sum N/A a N/A a source_vol N/A N/A N/A RuntimeError There is not enough volume in the source well(s) specified to complete the transfers. N/A N/A N/A len_source len_dest N/A all N/A N/A i j N/A N/A i j N/A zip source_vol volume N/A N/A sources N/A N/A source wells N/A len_dest N/A destinations N/A dest wells N/A volumes volume N/A N/A sources N/A N/A source_counter 0 N/A destinations N/A N/A volumes N/A N/A s N/A N/A source wells N/A source_counter N/A vol N/A s volume N/A max_decimal_places 12 N/A N/A idx d N/A enumerate N/A dest wells N/A N/A vol_d N/A volume N/A idx N/A N/A vol_d N/A N/A Unit fromstring 0:microliter N/A N/A N/A vol vol_d N/A N/A N/A N/A sources append s N/A N/A N/A destinations append d N/A N/A N/A volumes append vol_d N/A vol vol_d N/A N/A vol _magnitude N/A round N/A vol _magnitude max_decimal_places N/A vol_d vol_d N/A N/A vol_d _magnitude N/A round N/A vol_d _magnitude max_decimal_places N/A N/A N/A N/A sources append s N/A N/A N/A destinations append d N/A N/A N/A volumes append vol N/A vol_d vol N/A N/A vol_d _magnitude N/A round N/A vol_d _magnitude max_decimal_places N/A source_counter 1 N/A N/A source_counter len_source N/A N/A s N/A N/A source wells N/A source_counter N/A vol N/A s volume N/A source N/A WellGroup sources N/A dest N/A WellGroup destinations N/A volume volumes N/A N/A N/A N/A ValueError AttributeError TypeError N/A e N/A N/A N/A RuntimeError When transferring liquid from multiple wells containing the same substance to multiple other wells, each source Well must have a volume attribute (aliquot) associated with it. N/A N/A s d v N/A list N/A zip N/A source wells N/A dest wells volume N/A N/A N/A v N/A Unit 900 microliter N/A N/A diff N/A N/A Unit fromstring v N/A N/A diff N/A Unit 900 microliter N/A N/A v N/A Unit 900 microliter N/A xfer N/A from to volume s d v N/A N/A d volume N/A N/A N/A d volume v N/A N/A N/A d volume v N/A N/A s volume N/A N/A N/A s volume v N/A N/A mix_kwargs N/A N/A mix_before mix_kwargs N/A mix_after mix_kwargs N/A N/A N/A RuntimeError If you specify mix arguments on transfer() you must also specify mix_before and/or mix_after=True. N/A N/A N/A mix_kwargs get mix_before N/A N/A N/A xfer N/A mix_before N/A volume repetitions speed N/A N/A N/A mix_kwargs get mix_vol_b N/A N/A mix_kwargs get mix_vol N/A v 2 N/A N/A N/A mix_kwargs get repetitions_b N/A N/A mix_kwargs get repetitions 10 N/A N/A N/A mix_kwargs get flowrate_b N/A N/A mix_kwargs get flowrate 100:microliter/second N/A N/A N/A mix_kwargs get mix_after N/A N/A N/A xfer N/A mix_after N/A volume repetitions speed N/A N/A N/A mix_kwargs get mix_vol_a N/A N/A mix_kwargs get mix_vol N/A v 2 N/A N/A N/A mix_kwargs get repetitions_a N/A N/A mix_kwargs get repetitions 10 N/A N/A N/A mix_kwargs get flowrate_a N/A N/A mix_kwargs get flowrate 100:microliter/second N/A opt_list N/A aspirate_speed dispense_speed N/A option opt_list N/A N/A N/A assign xfer option N/A eval option N/A x_opt_list N/A x_aspirate_source x_dispense_target x_pre_buffer x_disposal_vol x_transit_vol x_blowout_buffer N/A x_option x_opt_list N/A N/A N/A assign xfer x_option N/A eval N/A x_option N/A 2 N/A N/A v N/A Unit 0 microliter N/A N/A N/A N/A opts append xfer N/A diff N/A Unit 900 microliter N/A v diff N/A xfer N/A from to volume s d v N/A N/A d volume N/A N/A N/A d volume v N/A N/A N/A d volume v N/A N/A s volume N/A N/A N/A s volume v N/A N/A mix_kwargs N/A N/A mix_before mix_kwargs N/A mix_after mix_kwargs N/A N/A N/A RuntimeError If you specify mix arguments on transfer() you must also specify mix_before and/or mix_after=True. N/A N/A N/A mix_kwargs get mix_before N/A N/A N/A xfer N/A mix_before N/A volume repetitions speed N/A N/A N/A mix_kwargs get mix_vol_b N/A N/A mix_kwargs get mix_vol N/A v 2 N/A N/A N/A mix_kwargs get repetitions_b N/A N/A mix_kwargs get repetitions 10 N/A N/A N/A mix_kwargs get flowrate_b N/A N/A mix_kwargs get flowrate 100:microliter/second N/A N/A N/A mix_kwargs get mix_after N/A N/A N/A xfer N/A mix_after N/A volume repetitions speed N/A N/A N/A mix_kwargs get mix_vol_a N/A N/A mix_kwargs get mix_vol N/A v 2 N/A N/A N/A mix_kwargs get repetitions_a N/A N/A mix_kwargs get repetitions 10 N/A N/A N/A mix_kwargs get flowrate_a N/A N/A mix_kwargs get flowrate 100:microliter/second N/A opt_list N/A aspirate_speed dispense_speed N/A option opt_list N/A N/A N/A assign xfer option N/A eval option N/A x_opt_list N/A x_aspirate_source x_dispense_target x_pre_buffer x_disposal_vol x_transit_vol x_blowout_buffer N/A x_option x_opt_list N/A N/A N/A assign xfer x_option N/A eval N/A x_option N/A 2 N/A N/A v N/A Unit 0 microliter N/A N/A N/A N/A opts append xfer N/A trans N/A N/A N/A assign trans x_tip_type tip_type N/A one_tip N/A N/A N/A trans N/A transfer opts N/A new_group N/A N/A N/A N/A self append N/A Pipette N/A trans N/A N/A N/A N/A self _pipette N/A trans N/A N/A x opts N/A N/A trans N/A N/A N/A assign trans x_tip_type tip_type N/A N/A trans N/A transfer N/A x N/A new_group N/A N/A N/A N/A self append N/A Pipette N/A trans N/A N/A N/A N/A self _pipette N/A trans N/A consolidate N/A N/A self sources dest volumes allow_carryover mix_after mix_vol flowrate repetitions aspirate_speed dispense_speed aspirate_source dispense_target pre_buffer transit_vol blowout_buffer tip_type new_group N/A False False None 100:microliter/second 10 None None None None None None None None False N/A N/A 
        Aspirates from each source well, in order, the volume specified, then
        dispenses the sum volume into the target well. Be aware that the same
        tip will be used to aspirate from all the source wells, so if you want
        to avoid contaminating any of them you should use a separate transfer
        group. Consolidate is limited by the maximum volume of the disposable
        tip. If the total volume you want to dispense into the target well
        exceeds the volume that will fit in one tip, you must either specify
        `allow_carryover` to allow the tip to carry on pipetting from the
        source wells after it has touched the target well, or break up your
        operation into multiple groups with separate tips.

        Parameters
        ----------
        sources : Well, WellGroup
            Well or wells to transfer liquid from.
        dest : Well, str
            Well to which to transfer consolidated liquid.
        volumes : str, Unit, list
            The volume(s) of liquid to be transferred from source well(s) to
            destination well.  Volume can be specified as a single string or
            Unit, or can be given as a list of volumes.  The length of a list
            of volumes must match the number of source wells given.
        mix_after : bool, optional
            Specify whether to mix the liquid in the destination well after
            liquid is transferred.
        mix_vol : str, Unit, optional
            Volume to aspirate and dispense in order to mix liquid in a wells
            before and/or after each transfer step.
        repetitions : int, optional
            Number of times to aspirate and dispense in order to mix
            liquid in well before and/or after each transfer step.
        flowrate : str, Unit, optional
            Speed at which to mix liquid in well before and/or after each
            transfer step.
        aspirate speed : str, Unit, optional
            Speed at which to aspirate liquid from source well.  May not be
            specified if aspirate_source is also specified. By default this
            is the maximum aspiration speed, with the start speed being half
            of the speed specified.
        dispense_speed : str, Unit, optional
            Speed at which to dispense liquid into the destination well. May
            not be specified if dispense_target is also specified.
        aspirate_source : fn, optional
            Options for aspirating liquid. Cannot be specified if
            aspirate_speed is also specified.
        dispense_target : fn, optional
            Options for dispensing liquid. Cannot be specified if
            dispense_speed is also specified.
        pre_buffer : str, Unit, optional
            Volume of air aspirated before aspirating liquid.
        transit_vol : str, Unit, optional
            Volume of air aspirated after aspirating liquid to reduce
            presence of bubbles at pipette tip.
        blowout_buffer : bool, optional
            If true the operation will dispense the pre_buffer along with the
            dispense volume cannot be true if disposal_vol is specified.

        Raises
        ------
        TypeError
            If supplying more than one destination well for consolidation.
        ValueError
            If a volume list is supplied and the length does not match the
            number of source wells.
         N/A N/A N/A isinstance dest N/A Well str N/A N/A N/A TypeError You can only consolidate liquid into one destination well. N/A N/A isinstance sources N/A Well basestring N/A N/A sources N/A sources N/A N/A isinstance volumes list N/A N/A N/A N/A len volumes N/A len sources N/A N/A N/A ValueError If supplying consolidate volumes as a list, its length must match the number of source wells specified. N/A volumes N/A N/A N/A Unit fromstring v N/A v volumes N/A N/A volumes N/A N/A N/A N/A Unit fromstring volumes N/A len sources N/A cons N/A consolidate N/A N/A cons_instr N/A cons N/A consolidate N/A N/A assign cons_instr to dest N/A from_wells N/A N/A N/A s v N/A zip sources volumes N/A N/A source_opts N/A N/A N/A source_opts N/A well s N/A N/A source_opts N/A volume v N/A N/A assign source_opts aspirate_speed aspirate_speed N/A N/A assign source_opts x_aspirate_source aspirate_source N/A N/A N/A from_wells append source_opts N/A N/A dest volume N/A N/A N/A dest volume v N/A N/A N/A dest volume v N/A N/A s volume N/A N/A N/A s volume v N/A N/A assign cons_instr from from_wells N/A mix_after N/A N/A N/A cons_instr N/A mix_after N/A volume repetitions speed mix_vol repetitions flowrate N/A opt_list N/A allow_carryover dispense_speed N/A option opt_list N/A N/A N/A assign cons_instr option N/A eval option N/A x_opt_list N/A x_dispense_target x_pre_buffer x_transit_vol x_blowout_buffer x_tip_type N/A x_option x_opt_list N/A N/A N/A assign cons_instr x_option N/A eval N/A x_option N/A 2 N/A new_group N/A N/A N/A N/A self append N/A Pipette N/A cons N/A N/A N/A N/A self _pipette N/A cons N/A acoustic_transfer N/A N/A self source dest volume one_source droplet_size N/A False 25:nanoliter N/A N/A 
        Specify source and destination wells for transfering liquid via an
        acoustic liquid handler.  Droplet size is usually device-specific.

        Parameters
        ----------
        source : Well, WellGroup
            Well or wells to transfer liquid from.  If multiple source wells
            are supplied and one_source is set to True, liquid will be
            transfered from each source well specified as long as it contains
            sufficient volume. Otherwise, the number of source wells specified
            must match the number of destination wells specified and liquid
            will be transfered from each source well to its corresponding
            destination well.
        dest : Well, WellGroup
            Well or WellGroup to which to transfer liquid.  The number of
            destination wells must match the number of source wells specified
            unless one_source is set to True.
        volume : str, Unit, list
            The volume(s) of liquid to be transferred from source wells to
            destination wells.  Volume can be specified as a single string or
            Unit, or can be given as a list of volumes.  The length of a list
            of volumes must match the number of destination wells given unless
            the same volume is to be transferred to each destination well.
        one_source : bool, optional
            Specify whether liquid is to be transferred to destination wells
            from a group of wells all containing the same substance.
        droplet_size : str, Unit, optional
            Volume representing a droplet_size.  The volume of each `transfer`
            group should be a multiple of this volume.


        Example Usage:

        .. code-block:: python

            p.acoustic_transfer(
                echo.wells(0,1).set_volume("12:nanoliter"),
                plate.wells_from(0,5), "4:nanoliter", one_source=True)


        Autoprotocol Output:

        .. code-block:: json

            "instructions": [
            {
              "groups": [
                {
                  "transfer": [
                    {
                      "volume": "0.004:microliter",
                      "to": "plate/0",
                      "from": "echo_plate/0"
                    },
                    {
                      "volume": "0.004:microliter",
                      "to": "plate/1",
                      "from": "echo_plate/0"
                    },
                    {
                      "volume": "0.004:microliter",
                      "to": "plate/2",
                      "from": "echo_plate/0"
                    },
                    {
                      "volume": "0.004:microliter",
                      "to": "plate/3",
                      "from": "echo_plate/1"
                    },
                    {
                      "volume": "0.004:microliter",
                      "to": "plate/4",
                      "from": "echo_plate/1"
                    }
                  ]
                }
              ],
              "droplet_size": "25:microliter",
              "op": "acoustic_transfer"
            }]

         N/A transfers N/A N/A source N/A WellGroup source N/A dest N/A WellGroup dest N/A len_source N/A len N/A source wells N/A len_dest N/A len N/A dest wells N/A N/A one_source N/A N/A N/A N/A len_dest 1 N/A len_source 1 N/A N/A source N/A WellGroup N/A N/A source wells len_dest N/A len_source N/A len N/A source wells N/A N/A N/A len_dest 1 N/A len_source 1 N/A N/A dest N/A WellGroup N/A N/A dest wells len_source N/A len_dest N/A len N/A dest wells N/A N/A len_source len_dest N/A N/A N/A RuntimeError To transfer liquid from one well or multiple wells  containing the same source, set one_source to True. To transfer liquid from multiple wells to a single destination well, specify only one destination well. Otherwise, you must specify the same number of source and destination wells to do a one-to-one transfer. N/A N/A N/A isinstance volume basestring N/A isinstance volume Unit N/A N/A N/A N/A len_dest 1 N/A one_source N/A N/A volume N/A N/A N/A N/A N/A N/A Unit fromstring volume to ul len_source N/A N/A volume N/A N/A N/A N/A N/A N/A Unit fromstring volume to ul len_dest N/A N/A N/A N/A isinstance volume list N/A N/A len volume len_dest N/A N/A volume N/A list N/A map N/A N/A N/A x N/A N/A N/A N/A N/A Unit fromstring x to ul volume N/A N/A N/A RuntimeError Unless the same volume of liquid is being transferred to each destination well, each destination well must have a corresponding volume in the form of a list. N/A one_source N/A N/A N/A N/A source_vol N/A N/A s volume N/A s N/A source wells N/A N/A N/A sum N/A a N/A a volume N/A sum N/A a N/A a source_vol N/A N/A N/A RuntimeError There is not enough volume in the source well(s) specified to complete the transfers. N/A N/A N/A len_source len_dest N/A all N/A N/A i j N/A N/A i j N/A zip source_vol volume N/A N/A sources N/A N/A source wells N/A len_dest N/A destinations N/A dest wells N/A volumes volume N/A N/A sources N/A N/A source_counter 0 N/A destinations N/A N/A volumes N/A N/A s N/A N/A source wells N/A source_counter N/A vol N/A s volume N/A max_decimal_places 12 N/A N/A idx d N/A enumerate N/A dest wells N/A N/A vol_d N/A volume N/A idx N/A N/A vol_d N/A N/A Unit fromstring 0:microliter N/A N/A N/A vol vol_d N/A N/A N/A N/A sources append s N/A N/A N/A destinations append d N/A N/A N/A volumes append vol_d N/A vol vol_d N/A N/A vol _magnitude N/A round N/A vol _magnitude max_decimal_places N/A vol_d vol_d N/A N/A vol_d _magnitude N/A round N/A vol_d _magnitude max_decimal_places N/A N/A N/A N/A sources append s N/A N/A N/A destinations append d N/A N/A N/A volumes append vol N/A vol_d vol N/A N/A vol_d _magnitude N/A round N/A vol_d _magnitude max_decimal_places N/A source_counter 1 N/A N/A source_counter len_source N/A N/A s N/A N/A source wells N/A source_counter N/A vol N/A s volume N/A source N/A WellGroup sources N/A dest N/A WellGroup destinations N/A volume volumes N/A N/A N/A N/A ValueError AttributeError TypeError N/A e N/A N/A N/A RuntimeError When transferring liquid from multiple wells containing the same substance to multiple other wells, each source Well must have a volume attribute (aliquot) associated with it. N/A N/A s d v N/A list N/A zip N/A source wells N/A dest wells volume N/A N/A xfer N/A from to volume s d v N/A N/A d volume N/A N/A N/A d volume v N/A N/A N/A d volume v N/A N/A s volume N/A N/A N/A s volume v N/A N/A v N/A Unit 0 microliter N/A N/A N/A N/A transfers append xfer N/A x transfers N/A N/A N/A x N/A volume N/A N/A N/A x N/A volume to nl N/A N/A N/A self instructions N/A N/A N/A N/A self instructions N/A -1 op acoustic_transfer N/A N/A prev_inst N/A N/A N/A N/A N/A N/A N/A self instructions N/A -1 data N/A groups N/A 0 N/A transfer N/A -1 N/A N/A N/A N/A N/A prev_inst N/A from container N/A N/A N/A transfers N/A 0 N/A from container N/A N/A N/A prev_inst N/A to container N/A N/A N/A transfers N/A 0 N/A to container N/A droplet_size N/A N/A N/A N/A self instructions N/A -1 data N/A droplet_size N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A self instructions N/A -1 data N/A groups N/A 0 N/A transfer extend transfers N/A N/A N/A N/A self append N/A AcousticTransfer transfers droplet_size N/A stamp N/A N/A self source_origin dest_origin volume shape mix_before mix_after mix_vol repetitions flowrate aspirate_speed dispense_speed aspirate_source dispense_target pre_buffer disposal_vol transit_vol blowout_buffer one_source one_tip new_group N/A N/A dict rows 8 columns 12 False False None 10 100:microliter/second None None None None None None None None False False False N/A N/A 
        **Note: the way this method now works is significantly different to the
        way it has in previous versions, please make sure to read the
        documentation below and adjust existing scripts utilizing stamp()
        accordingly**

        A stamp instruction consists of a list of groups of transfers, each of
        which specifies from and to well references (ref/well_index)
        representing the top-left well or origin of a specified shape.

        The volume field defines the volume of liquid that will be aspirated
        from every well of the shape specified starting at the from field and
        dispensed into the corresponding wells starting at the to field.

        Currently, the shape field may only be a rectangle object defined by
        rows and columns attributes representing the number of contiguous tip
        rows and columns to transfer.

        The shape parameter is optional and will default to a full 8 rows by
        12 columns. The tip_layout field refers to the SBS compliant layout of
        tips, is optional, and will default to the layout of a 96 tip box.

        The following plate types are currently supported: 96 and 384.


        Example Usage:

        .. code-block:: python

            p = Protocol()

            plate_1_96 = p.ref("plate_1_96", None, "96-flat", discard=True)
            plate_2_96 = p.ref("plate_2_96", None, "96-flat", discard=True)
            plate_1_384 = p.ref("plate_1_384", None, "384-flat", discard=True)
            plate_2_384 = p.ref("plate_2_384", None, "384-flat", discard=True)

            # A full-plate transfer between two 96 or 384-well plates
            p.stamp(plate_1_96, plate_2_96, "10:microliter")
            p.stamp(plate_1_384, plate_2_384, "10:microliter")

            # Defining shapes for selective stamping:
            row_rectangle = dict(rows=1, columns=12)
            two_column_rectangle = dict(rows=8, columns=2)

            # A transfer from the G row to the H row of another 96-well plate
            p.stamp(plate_1_96.well("G1"), plate_2_96.well("H1"),
            "10:microliter", row_rectangle)

            # A 2-column transfer from columns 1,2 of a 96-well plate to
            #columns 2,4 of a 384-well plate
            p.stamp(plate_1_96.well("A1"), plate_1_384.wells_from("A2", 2,
            columnwise=True), "10:microliter", two_column_rectangle)

            # A 2-row transfer from rows 1,2 of a 384-well plate to rows 2,3
            #of a 96-well plate
            p.stamp(plate_1_384.wells(["A1", "A2", "B1", "B2"]), plate_1_96.
            wells(["B1", "B1", "C1", "C1"]), "10:microliter",
            shape=row_rectangle)

        Parameters
        ----------
        source_origin : Container, Well, WellGroup
            Top-left well or wells where the rows/columns will be defined with
            respect to the source transfer.
            If a container is specified, stamp will be applied to all
            quadrants of the container.
        dest_origin : Container, Well, WellGroup
            Top-left well or wells where the rows/columns will be defined with
            respect to the destination transfer.
            If a container is specified, stamp will be applied to all
            quadrants of the container
        volume : str, Unit, list
            Volume(s) of liquid to move from source plate to destination
            plate. Volume can be specified as a single string or Unit, or can
            be given as a list of volumes.  The length of a list of volumes
            must match the number of destination wells given unless the same
            volume is to be transferred to each destination well.
        shape : dictionary, list, optional
            The shape(s) parameter is optional and will default to a rectangle
            corresponding to a full 96-well plate (8 rows by 12 columns).
            The rows and columns will be defined wrt the specified origin.
            The length of a list of shapes must match the number of
            destination wells given unless the same shape is to be used for
            each destination well. If the length of shape is greater than 1,
            one_tip=False.

            Example

            .. code-block:: python

                rectangle = {}
                rectangle["rows"] = 8
                rectangle["columns"] = 12

        mix_after : bool, optional
            Specify whether to mix the liquid in destination wells after
            liquid is transferred.
        mix_before : bool, optional
            Specify whether to mix the liquid in source wells before
            liquid is transferred.
        mix_vol : str, Unit, optional
            Volume to aspirate and dispense in order to mix liquid in wells
            before and/or after it is transfered.
        repetitions : int, optional
            Number of times to aspirate and dispense in order to mix
            liquid in wells before and/or after it is transfered.
        flowrate : str, Unit, optional
            Speed at which to mix liquid in well before and/or after each
            transfer step in units of "microliter/second".
        dispense_speed : str, Unit, optional
            Speed at which to dispense liquid into the destination well.  May
            not be specified if dispense_target is also specified.
        aspirate_source : fn, optional
            Can't be specified if aspirate_speed is also specified.
        dispense_target : fn, optional
            Same but opposite of  aspirate_source.
        pre_buffer : str, Unit, optional
            Volume of air aspirated before aspirating liquid.
        disposal_vol : str, Unit, optional
            Volume of extra liquid to aspirate that will be dispensed into
            trash afterwards.
        transit_vol : str, Unit, optional
            Volume of air aspirated after aspirating liquid to reduce presence
            of bubbles at pipette tip.
        blowout_buffer : bool, optional
            If true the operation will dispense the pre_buffer along with the
            dispense volume. Cannot be true if disposal_vol is specified.
        one_source : bool, optional
            Specify whether liquid is to be transferred to destination origins
            from a group of origins all containing the same substance. Volume
            of all wells in the shape must be equal to or greater than the
            volume in the origin well. Specifying origins with overlapping
            shapes can produce undesireable effects.
        one_tip : bool, optional
            Specify whether all transfer steps will use the same tip or not.
            If multiple different shapes are used, one_tip cannot be true.
        new_group : bool, optional

            Example

            .. code-block:: python

                p.stamp(plate_1_96.well("A1"), plate_2_96.well("A1"),
                "10:microliter")
                p.stamp(plate_1_96.well("A1"), plate_2_96.well("A1"),
                "10:microliter")

            Autoprotocol Output:

            .. code-block:: json

                "instructions": [
                    {
                      "groups": [
                        {
                          "transfer": [
                            {
                              "volume": "10.0:microliter",
                              "to": "plate_2_96/0",
                              "from": "plate_1_96/0"
                            }
                          ],
                          "shape": {
                            "rows": 8,
                            "columns": 12
                          },
                          "tip_layout": 96
                        }
                      ],
                      "op": "stamp"
                    },
                    {
                      "groups": [
                        {
                          "transfer": [
                            {
                              "volume": "10.0:microliter",
                              "to": "plate_2_96/0",
                              "from": "plate_1_96/0"
                            }
                          ],
                          "shape": {
                            "rows": 8,
                            "columns": 12
                          },
                          "tip_layout": 96
                        }
                      ],
                      "op": "stamp"
                    }
                  ]

         N/A N/A isinstance source_origin Container N/A N/A source_plate source_origin N/A source_plate_type N/A source_plate container_type N/A N/A N/A source_plate_type well_count 96 N/A N/A source_origin N/A N/A source_plate well 0 N/A N/A N/A N/A source_plate_type well_count 384 N/A N/A source_origin N/A N/A source_plate wells N/A 0 1 24 25 N/A N/A N/A TypeError Invalid source_origin type given. If source_origin is a container, it must be a container with 96 or 384 wells. N/A N/A isinstance dest_origin Container N/A N/A dest_plate dest_origin N/A dest_plate_type N/A dest_plate container_type N/A N/A N/A dest_plate_type well_count 96 N/A N/A dest_origin N/A N/A dest_plate well 0 N/A N/A N/A N/A dest_plate_type well_count 384 N/A N/A dest_origin N/A N/A dest_plate wells N/A 0 1 24 25 N/A N/A N/A TypeError Invalid dest_origin type given. If dest_origin is a container, it must be a container with 96 or 384 wells. N/A N/A N/A N/A N/A isinstance source_origin Well N/A isinstance source_origin WellGroup N/A N/A N/A isinstance dest_origin Well N/A isinstance dest_origin WellGroup N/A N/A N/A TypeError Invalid input type given. Source and destination must be of type Container, Well, or WellGroup. N/A source N/A WellGroup source_origin N/A dest N/A WellGroup dest_origin N/A opts N/A N/A oshp N/A N/A osta N/A N/A len_source N/A len N/A source wells N/A len_dest N/A len N/A dest wells N/A N/A one_source N/A N/A N/A N/A len_dest 1 N/A len_source 1 N/A N/A source N/A WellGroup N/A N/A source wells len_dest N/A len_source N/A len N/A source wells N/A N/A N/A len_dest 1 N/A len_source 1 N/A N/A dest N/A WellGroup N/A N/A dest wells len_source N/A len_dest N/A len N/A dest wells N/A N/A len_source len_dest N/A N/A N/A RuntimeError To transfer liquid from one origin or multiple origins containing the same source, set one_source to True. To transfer from multiple origins to a single destination well, specify only one destination well. Otherwise, you must specify the same number of source and destination wells to do a one-to-one transfer. N/A N/A N/A isinstance volume basestring N/A isinstance volume Unit N/A N/A N/A N/A len_dest 1 N/A one_source N/A N/A volume N/A N/A N/A N/A Unit fromstring volume len_source N/A N/A volume N/A N/A N/A N/A Unit fromstring volume len_dest N/A N/A N/A N/A isinstance volume list N/A N/A len volume len_dest N/A N/A volume N/A list N/A map N/A N/A N/A x N/A N/A N/A Unit fromstring x volume N/A N/A N/A RuntimeError Unless the same volume of liquid is being transferred to each destination well, each destination well must have a corresponding volume in the form of a list. N/A N/A isinstance shape dict N/A N/A N/A N/A len_dest 1 N/A one_source N/A N/A shape N/A N/A shape len_source N/A N/A shape N/A N/A shape len_dest N/A N/A N/A N/A isinstance shape list N/A N/A len shape len_dest N/A N/A shape shape N/A N/A N/A RuntimeError Unless the same shape is being used for all transfers, each destination well must have a corresponding shape in the form of a list. N/A stamp_type N/A N/A rows N/A N/A columns N/A N/A s shape N/A N/A N/A N/A rows s N/A columns s N/A N/A N/A TypeError Invalid input shape given. Rows and columns of a rectangle has to be defined. N/A r N/A s N/A rows N/A c N/A s N/A columns N/A N/A N/A rows append r N/A N/A N/A columns append c N/A N/A N/A c 12 N/A r 8 N/A N/A N/A N/A stamp_type append full N/A N/A N/A c 12 N/A N/A N/A N/A stamp_type append row N/A N/A N/A r 8 N/A N/A N/A N/A stamp_type append col N/A N/A N/A ValueError Only complete rows or columns are allowed. N/A N/A s d c r st N/A list N/A zip N/A source wells N/A dest wells columns rows stamp_type N/A N/A src_col_count N/A N/A N/A s container container_type col_count N/A dest_col_count N/A N/A N/A d container container_type col_count N/A N/A N/A c 0 N/A c src_col_count N/A c dest_col_count N/A N/A N/A ValueError Columns given exceed plate dimensions. N/A src_row_count N/A N/A N/A N/A s container container_type well_count src_col_count N/A dest_row_count N/A N/A N/A N/A d container container_type well_count dest_col_count N/A N/A N/A r 0 N/A r src_row_count N/A r dest_row_count N/A N/A N/A ValueError Rows given exceed plate dimensions. N/A N/A check_valid_origin s st c r N/A N/A check_valid_origin d st c r N/A N/A one_tip one_source N/A N/A N/A N/A all N/A N/A s N/A shape N/A 0 N/A s shape N/A N/A N/A RuntimeError The same shape must be used if one_tip or one_source is true. N/A one_source N/A N/A N/A N/A N/A w c r st N/A list N/A zip N/A source wells columns rows stamp_type N/A N/A columnWise False N/A N/A st col N/A N/A columnWise True N/A N/A N/A N/A N/A w container container_type col_count 24 N/A N/A columnWise N/A N/A source_wells N/A N/A N/A N/A N/A w container wells_from w N/A N/A c r 4 columnWise N/A x N/A x N/A range N/A N/A c r 4 N/A N/A x 2 N/A N/A x 16 2 0 N/A N/A source_wells N/A N/A N/A N/A N/A w container wells_from w N/A N/A c r 4 columnWise N/A x N/A x N/A range N/A N/A c r 4 N/A N/A x 2 N/A N/A x 24 2 0 N/A N/A source_wells N/A N/A N/A w container wells_from w N/A c r columnWise N/A N/A N/A all N/A N/A N/A s volume N/A w volume N/A s source_wells N/A N/A N/A RuntimeError Each well in a shape must have the same or greater volume as the origin well. N/A source_vol N/A N/A s volume N/A s N/A source wells N/A N/A N/A sum N/A a N/A a volume N/A sum N/A a N/A a source_vol N/A N/A N/A RuntimeError There is not enough volume in the source well(s) specified to complete the transfers. N/A N/A N/A len_source len_dest N/A all N/A N/A i j N/A N/A i j N/A zip source_vol volume N/A N/A sources N/A N/A source wells N/A len_dest N/A destinations N/A dest wells N/A volumes volume N/A N/A sources N/A N/A source_counter 0 N/A destinations N/A N/A volumes N/A N/A s N/A N/A source wells N/A source_counter N/A vol N/A s volume N/A max_decimal_places 12 N/A N/A idx d N/A enumerate N/A dest wells N/A N/A vol_d N/A volume N/A idx N/A N/A vol_d N/A N/A Unit fromstring 0:microliter N/A N/A N/A vol vol_d N/A N/A N/A N/A sources append s N/A N/A N/A destinations append d N/A N/A N/A volumes append vol_d N/A vol vol_d N/A N/A vol _magnitude N/A round N/A vol _magnitude max_decimal_places N/A vol_d vol_d N/A N/A vol_d _magnitude N/A round N/A vol_d _magnitude max_decimal_places N/A N/A N/A N/A sources append s N/A N/A N/A destinations append d N/A N/A N/A volumes append vol N/A vol_d vol N/A N/A vol_d _magnitude N/A round N/A vol_d _magnitude max_decimal_places N/A source_counter 1 N/A N/A source_counter len_source N/A N/A s N/A N/A source wells N/A source_counter N/A vol N/A s volume N/A source N/A WellGroup sources N/A dest N/A WellGroup destinations N/A volume volumes N/A shape N/A N/A N/A shape N/A 0 N/A len volume N/A rows N/A N/A N/A rows N/A 0 N/A len volume N/A columns N/A N/A N/A columns N/A 0 N/A len volume N/A stamp_type N/A N/A N/A stamp_type N/A 0 N/A len volume N/A N/A N/A N/A ValueError AttributeError TypeError N/A N/A N/A RuntimeError When transferring liquid from multiple wells containing the same substance to multiple other wells, each source Well must have a volume attribute (aliquot) associated with it. N/A volumeSwitch N/A N/A Unit fromstring 31:microliter N/A one_tip N/A N/A N/A mix_vol N/A N/A temp_vol N/A N/A Unit fromstring 0:microliter N/A N/A temp_vol N/A N/A Unit fromstring mix_vol N/A N/A N/A N/A all N/A N/A v volumeSwitch N/A v volume N/A all N/A N/A v volumeSwitch N/A v volume N/A temp_vol volumeSwitch N/A N/A N/A RuntimeError Volumes must all be > or <= 31:microliter for one_tip = True. If one_source = True, it may be generating volumes which are incompatible. N/A st N/A stamp_type N/A 0 N/A N/A st full N/A N/A maxContainers 3 N/A N/A maxContainers 2 N/A all_wells N/A source dest N/A N/A N/A len N/A set N/A map N/A N/A N/A x N/A N/A x container N/A all_wells wells maxContainers N/A N/A N/A RuntimeError Exceeded maximum allowed containers when using one_tip = True N/A tip_capacity N/A N/A Unit fromstring 158:microliter N/A primer_resid N/A N/A Unit fromstring 5:microliter N/A transit_resid N/A N/A Unit fromstring 1:microliter N/A pre_buffer_resid N/A N/A Unit fromstring 5:microliter N/A aspirate_source N/A N/A N/A primer_vol N/A N/A aspirate_source keys N/A N/A primer_resid N/A N/A Unit fromstring N/A aspirate_source N/A primer_vol N/A pre_buffer N/A N/A pre_buffer_resid N/A N/A Unit fromstring pre_buffer N/A transit_vol N/A N/A transit_resid N/A N/A Unit fromstring transit_vol N/A N/A primer_resid N/A N/A Unit fromstring transit_resid N/A N/A primer_or_transit primer_resid N/A N/A primer_or_transit transit_resid N/A max_tip_vol N/A N/A tip_capacity pre_buffer_resid primer_or_transit N/A N/A s d v c r st sh N/A list N/A zip N/A source wells N/A dest wells volume columns rows stamp_type shape N/A N/A N/A v max_tip_vol N/A N/A diff v N/A N/A diff max_tip_vol N/A N/A N/A diff N/A max_tip_vol 2 N/A N/A diff N/A diff 2 N/A v diff N/A xfer N/A from to volume s d v N/A columnWise False N/A N/A st col N/A N/A columnWise True N/A N/A N/A N/A N/A d container container_type col_count 24 N/A N/A columnWise N/A N/A dest_wells N/A N/A N/A N/A N/A d container wells_from d N/A N/A c r 4 columnWise N/A x N/A x N/A range N/A N/A c r 4 N/A N/A x 2 N/A N/A x 16 2 0 N/A N/A dest_wells N/A N/A N/A N/A N/A d container wells_from d N/A N/A c r 4 columnWise N/A x N/A x N/A range N/A N/A c r 4 N/A N/A x 2 N/A N/A x 24 2 0 N/A N/A dest_wells N/A N/A N/A d container wells_from d N/A c r columnWise N/A N/A N/A N/A N/A s container container_type col_count 24 N/A N/A columnWise N/A N/A source_wells N/A N/A N/A N/A N/A s container wells_from s N/A N/A c r 4 columnWise N/A x N/A x N/A range N/A N/A c r 4 N/A N/A x 2 N/A N/A x 16 2 0 N/A N/A source_wells N/A N/A N/A N/A N/A s container wells_from s N/A N/A c r 4 columnWise N/A x N/A x N/A range N/A N/A c r 4 N/A N/A x 2 N/A N/A x 24 2 0 N/A N/A source_wells N/A N/A N/A s container wells_from s N/A c r columnWise N/A well source_wells N/A N/A N/A well volume N/A N/A N/A well volume v N/A well dest_wells N/A N/A N/A well volume N/A N/A N/A well volume v N/A N/A N/A well volume v N/A opt_list N/A aspirate_speed dispense_speed N/A option opt_list N/A N/A N/A assign xfer option N/A eval option N/A x_opt_list N/A x_aspirate_source x_dispense_target x_pre_buffer x_disposal_vol x_transit_vol x_blowout_buffer N/A x_option x_opt_list N/A N/A N/A assign xfer x_option N/A eval N/A x_option N/A 2 N/A N/A N/A mix_vol N/A mix_before mix_after N/A N/A mix_vol N/A v 0.5 N/A mix_before N/A N/A N/A xfer N/A mix_before N/A volume repetitions speed mix_vol repetitions flowrate N/A mix_after N/A N/A N/A xfer N/A mix_after N/A volume repetitions speed mix_vol repetitions flowrate N/A N/A v N/A Unit 0 microliter N/A N/A N/A N/A opts append xfer N/A N/A N/A oshp append sh N/A N/A N/A osta append st N/A N/A diff max_tip_vol N/A v max_tip_vol N/A xfer N/A from to volume s d v N/A columnWise False N/A N/A st col N/A N/A columnWise True N/A N/A N/A N/A N/A d container container_type col_count 24 N/A N/A columnWise N/A N/A dest_wells N/A N/A N/A N/A N/A d container wells_from d N/A N/A c r 4 columnWise N/A x N/A x N/A range N/A N/A c r 4 N/A N/A x 2 N/A N/A x 16 2 0 N/A N/A dest_wells N/A N/A N/A N/A N/A d container wells_from d N/A N/A c r 4 columnWise N/A x N/A x N/A range N/A N/A c r 4 N/A N/A x 2 N/A N/A x 24 2 0 N/A N/A dest_wells N/A N/A N/A d container wells_from d N/A c r columnWise N/A N/A N/A N/A N/A s container container_type col_count 24 N/A N/A columnWise N/A N/A source_wells N/A N/A N/A N/A N/A s container wells_from s N/A N/A c r 4 columnWise N/A x N/A x N/A range N/A N/A c r 4 N/A N/A x 2 N/A N/A x 16 2 0 N/A N/A source_wells N/A N/A N/A N/A N/A s container wells_from s N/A N/A c r 4 columnWise N/A x N/A x N/A range N/A N/A c r 4 N/A N/A x 2 N/A N/A x 24 2 0 N/A N/A source_wells N/A N/A N/A s container wells_from s N/A c r columnWise N/A well source_wells N/A N/A N/A well volume N/A N/A N/A well volume v N/A well dest_wells N/A N/A N/A well volume N/A N/A N/A well volume v N/A N/A N/A well volume v N/A opt_list N/A aspirate_speed dispense_speed N/A option opt_list N/A N/A N/A assign xfer option N/A eval option N/A x_opt_list N/A x_aspirate_source x_dispense_target x_pre_buffer x_disposal_vol x_transit_vol x_blowout_buffer N/A x_option x_opt_list N/A N/A N/A assign xfer x_option N/A eval N/A x_option N/A 2 N/A N/A N/A mix_vol N/A mix_before mix_after N/A N/A mix_vol N/A v 0.5 N/A mix_before N/A N/A N/A xfer N/A mix_before N/A volume repetitions speed mix_vol repetitions flowrate N/A mix_after N/A N/A N/A xfer N/A mix_after N/A volume repetitions speed mix_vol repetitions flowrate N/A N/A v N/A Unit 0 microliter N/A N/A N/A N/A opts append xfer N/A N/A N/A oshp append sh N/A N/A N/A osta append st N/A v diff N/A xfer N/A from to volume s d v N/A columnWise False N/A N/A st col N/A N/A columnWise True N/A N/A N/A N/A N/A d container container_type col_count 24 N/A N/A columnWise N/A N/A dest_wells N/A N/A N/A N/A N/A d container wells_from d N/A N/A c r 4 columnWise N/A x N/A x N/A range N/A N/A c r 4 N/A N/A x 2 N/A N/A x 16 2 0 N/A N/A dest_wells N/A N/A N/A N/A N/A d container wells_from d N/A N/A c r 4 columnWise N/A x N/A x N/A range N/A N/A c r 4 N/A N/A x 2 N/A N/A x 24 2 0 N/A N/A dest_wells N/A N/A N/A d container wells_from d N/A c r columnWise N/A N/A N/A N/A N/A s container container_type col_count 24 N/A N/A columnWise N/A N/A source_wells N/A N/A N/A N/A N/A s container wells_from s N/A N/A c r 4 columnWise N/A x N/A x N/A range N/A N/A c r 4 N/A N/A x 2 N/A N/A x 16 2 0 N/A N/A source_wells N/A N/A N/A N/A N/A s container wells_from s N/A N/A c r 4 columnWise N/A x N/A x N/A range N/A N/A c r 4 N/A N/A x 2 N/A N/A x 24 2 0 N/A N/A source_wells N/A N/A N/A s container wells_from s N/A c r columnWise N/A well source_wells N/A N/A N/A well volume N/A N/A N/A well volume v N/A well dest_wells N/A N/A N/A well volume N/A N/A N/A well volume v N/A N/A N/A well volume v N/A opt_list N/A aspirate_speed dispense_speed N/A option opt_list N/A N/A N/A assign xfer option N/A eval option N/A x_opt_list N/A x_aspirate_source x_dispense_target x_pre_buffer x_disposal_vol x_transit_vol x_blowout_buffer N/A x_option x_opt_list N/A N/A N/A assign xfer x_option N/A eval N/A x_option N/A 2 N/A N/A N/A mix_vol N/A mix_before mix_after N/A N/A mix_vol N/A v 0.5 N/A mix_before N/A N/A N/A xfer N/A mix_before N/A volume repetitions speed mix_vol repetitions flowrate N/A mix_after N/A N/A N/A xfer N/A mix_after N/A volume repetitions speed mix_vol repetitions flowrate N/A N/A v N/A Unit 0 microliter N/A N/A N/A N/A opts append xfer N/A N/A N/A oshp append sh N/A N/A N/A osta append st N/A trans N/A N/A one_tip N/A N/A N/A trans N/A transfer opts N/A N/A assign trans shape N/A oshp N/A 0 N/A N/A assign trans tip_layout 96 N/A stamp_type N/A osta N/A 0 N/A N/A stamp_type full N/A N/A maxTransfers 4 N/A maxContainers 3 N/A N/A N/A stamp_type col N/A N/A maxTransfers 12 N/A maxContainers 2 N/A N/A maxTransfers 8 N/A maxContainers 3 N/A new_group N/A N/A N/A N/A N/A self instructions append N/A Stamp N/A trans N/A N/A N/A N/A N/A len N/A self instructions 0 N/A N/A N/A N/A self instructions N/A -1 op stamp N/A check_stamp_append trans N/A N/A N/A self instructions N/A -1 groups maxTransfers maxContainers volumeSwitch N/A N/A N/A N/A N/A N/A N/A self instructions N/A -1 groups append trans N/A N/A N/A N/A N/A self instructions append N/A Stamp N/A trans N/A N/A N/A x y z N/A list N/A zip opts oshp osta N/A N/A trans N/A N/A N/A trans N/A transfer N/A x N/A N/A assign trans shape y N/A N/A assign trans tip_layout 96 N/A stamp_type z N/A N/A stamp_type full N/A N/A maxTransfers 4 N/A maxContainers 3 N/A N/A N/A stamp_type col N/A N/A maxTransfers 12 N/A maxContainers 2 N/A N/A maxTransfers 8 N/A maxContainers 3 N/A new_group N/A N/A N/A N/A N/A self instructions append N/A Stamp N/A trans N/A N/A N/A N/A N/A len N/A self instructions 0 N/A N/A N/A N/A self instructions N/A -1 op stamp N/A check_stamp_append trans N/A N/A N/A self instructions N/A -1 groups maxTransfers maxContainers volumeSwitch N/A N/A N/A N/A N/A N/A N/A self instructions N/A -1 groups append trans N/A N/A N/A N/A N/A self instructions append N/A Stamp N/A trans N/A sangerseq N/A N/A self cont wells dataref type primer N/A standard None N/A N/A 
        Send the indicated wells of the container specified for Sanger sequencing.
        The specified wells should already contain the appropriate mix for
        sequencing, including primers and DNA according to the instructions
        provided by the vendor.

          Example Usage:

          .. code-block:: python

            p = Protocol()
            sample_plate = p.ref("sample_plate",
                                 None,
                                 "96-flat",
                                 storage="warm_37")

            p.sangerseq(sample_plate,
                        sample_plate.wells_from(0,5).indices(),
                        "seq_data_022415")

          Autoprotocol Output:

          .. code-block:: json

            "instructions": [
                {
                  "dataref": "seq_data_022415",
                  "object": "sample_plate",
                  "wells": [
                    "A1",
                    "A2",
                    "A3",
                    "A4",
                    "A5"
                  ],
                  "op": "sangerseq"
                }
              ]


        Parameters
        ----------
        cont : Container, str
          Container with well(s) that contain material to be sequenced.
        type : str
          Type of sequencing reaction to take place ("standard" or "rca"),
          defaults to "standard"
        wells : list of str
          Well indices of the container that contain appropriate materials to
          be sent for sequencing.
        primer : container
          Tube containing sufficient primer for all RCA reactions.  This field
          will be ignored if you specify the sequencing type as "standard".
          Tube containing sufficient primer for all RCA reactions
        dataref : str
          Name of sequencing dataset that will be returned.

         N/A type N/A N/A type lower N/A N/A N/A type rca N/A primer N/A N/A N/A RuntimeError You must specify the location of primer for RCA sequencing reactions. N/A N/A isinstance wells WellGroup N/A N/A container N/A set N/A N/A w container N/A w wells N/A N/A N/A len container 1 N/A N/A N/A ValueError All wells need to be on one container for SangerSeq N/A wells N/A N/A str N/A w index N/A w wells N/A N/A N/A isinstance wells list N/A N/A N/A ValueError Unknown input. SangerSeq wells accepts either a WellGroup or well indices N/A N/A N/A N/A self instructions append N/A SangerSeq cont wells dataref type primer N/A mix N/A N/A self well volume speed repetitions N/A 50:microliter 100:microliter/second 10 N/A N/A 
        Mix specified well using a new pipette tip

        Example Usage:

        .. code-block:: python

            p = Protocol()
            sample_source = p.ref("sample_source",
                                  None,
                                  "micro-1.5",
                                  storage="cold_20")

            p.mix(sample_source.well(0), volume="200:microliter",
                  repetitions=25)

        Autoprotocol Output:

        .. code-block:: json

            "instructions": [
                {
                  "groups": [
                    {
                      "mix": [
                        {
                          "volume": "200:microliter",
                          "well": "sample_source/0",
                          "repetitions": 25,
                          "speed": "100:microliter/second"
                        }
                      ]
                    }
                  ],
                  "op": "pipette"
                }
              ]
            }


        Parameters
        ----------
        well : str, Well, WellGroup, list of Wells
            Well(s) to be mixed. If a WellGroup is passed, each well in the
            group will be mixed using the specified parameters.
        volume : str, Unit, optional
            volume of liquid to be aspirated and expelled during mixing
        speed : str, Unit, optional
            flowrate of liquid during mixing
        repetitions : int, optional
            number of times to aspirate and expell liquid during mixing

         N/A N/A N/A isinstance well N/A Well basestring WellGroup list N/A N/A N/A TypeError Well given is not of type 'str', 'Well', 'WellGroup' or 'list'. N/A N/A isinstance well N/A Well basestring N/A N/A well N/A WellGroup N/A well N/A N/A isinstance well list N/A N/A well N/A WellGroup well N/A w N/A well wells N/A N/A opts N/A well volume speed repetitions w volume speed repetitions N/A N/A N/A self _pipette N/A N/A mix N/A opts N/A dispense N/A N/A self ref reagent columns speed_percentage N/A None N/A N/A 
        Dispense specified reagent to specified columns.

        Example Usage:

        .. code-block:: python

            p = Protocol()
            sample_plate = p.ref("sample_plate",
                                 None,
                                 "96-flat",
                                 storage="warm_37")

            p.dispense(sample_plate,
                       "water",
                       [{"column": 0, "volume": "10:microliter"},
                        {"column": 1, "volume": "20:microliter"},
                        {"column": 2, "volume": "30:microliter"},
                        {"column": 3, "volume": "40:microliter"},
                        {"column": 4, "volume": "50:microliter"},
                        {"column": 5, "volume": "60:microliter"},
                        {"column": 6, "volume": "70:microliter"},
                        {"column": 7, "volume": "80:microliter"},
                        {"column": 8, "volume": "90:microliter"},
                        {"column": 9, "volume": "100:microliter"},
                        {"column": 10, "volume": "110:microliter"},
                        {"column": 11, "volume": "120:microliter"}
                       ])


        Autoprotocol Output:

        .. code-block:: json

            "instructions": [
                {
                  "reagent": "water",
                  "object": "sample_plate",
                  "columns": [
                    {
                      "column": 0,
                      "volume": "10:microliter"
                    },
                    {
                      "column": 1,
                      "volume": "20:microliter"
                    },
                    {
                      "column": 2,
                      "volume": "30:microliter"
                    },
                    {
                      "column": 3,
                      "volume": "40:microliter"
                    },
                    {
                      "column": 4,
                      "volume": "50:microliter"
                    },
                    {
                      "column": 5,
                      "volume": "60:microliter"
                    },
                    {
                      "column": 6,
                      "volume": "70:microliter"
                    },
                    {
                      "column": 7,
                      "volume": "80:microliter"
                    },
                    {
                      "column": 8,
                      "volume": "90:microliter"
                    },
                    {
                      "column": 9,
                      "volume": "100:microliter"
                    },
                    {
                      "column": 10,
                      "volume": "110:microliter"
                    },
                    {
                      "column": 11,
                      "volume": "120:microliter"
                    }
                  ],
                  "op": "dispense"
                }
              ]

        Parameters
        ----------
        ref : Container, str
            Container for reagent to be dispensed to.
        reagent : str
            Reagent to be dispensed to columns in container.
        columns : list
            Columns to be dispensed to, in the form of a list of dicts specifying
            the column number and the volume to be dispensed to that column.
            Columns are expressed as integers indexed from 0.
            [{"column": <column num>, "volume": <volume>}, ...]
        speed_percentage : int, optional
            Integer between 1 and 100 that represents the percentage of the
            maximum speed at which liquid is dispensed from the reagent
            dispenser.

         N/A N/A N/A speed_percentage None N/A N/A speed_percentage 100 N/A speed_percentage 1 N/A N/A N/A RuntimeError Invalid speed percentage specified. N/A N/A N/A isinstance columns list N/A N/A N/A TypeError Columns is not of type 'list'. N/A c columns N/A N/A wells N/A WellGroup N/A N/A ref wells_from N/A c N/A column N/A N/A N/A ref container_type row_count columnwise True N/A w wells N/A N/A N/A w volume N/A N/A N/A w volume N/A N/A Unit fromstring N/A c N/A volume N/A N/A N/A N/A w set_volume N/A c N/A volume N/A N/A N/A N/A self instructions append N/A Dispense ref reagent columns speed_percentage N/A dispense_full_plate N/A N/A self ref reagent volume speed_percentage N/A None N/A N/A 
        Dispense the specified amount of the specified reagent to every well
        of a container using a reagent dispenser.

        Example Usage:

        .. code-block:: python

            p = Protocol()
            sample_plate = p.ref("sample_plate",
                                 None,
                                 "96-flat",
                                 storage="warm_37")

            p.dispense_full_plate(sample_plate,
                                  "water",
                                  "100:microliter")

        Autoprotocol Output:

        .. code-block:: json

            "instructions": [
                {
                  "reagent": "water",
                  "object": "sample_plate",
                  "columns": [
                    {
                      "column": 0,
                      "volume": "100:microliter"
                    },
                    {
                      "column": 1,
                      "volume": "100:microliter"
                    },
                    {
                      "column": 2,
                      "volume": "100:microliter"
                    },
                    {
                      "column": 3,
                      "volume": "100:microliter"
                    },
                    {
                      "column": 4,
                      "volume": "100:microliter"
                    },
                    {
                      "column": 5,
                      "volume": "100:microliter"
                    },
                    {
                      "column": 6,
                      "volume": "100:microliter"
                    },
                    {
                      "column": 7,
                      "volume": "100:microliter"
                    },
                    {
                      "column": 8,
                      "volume": "100:microliter"
                    },
                    {
                      "column": 9,
                      "volume": "100:microliter"
                    },
                    {
                      "column": 10,
                      "volume": "100:microliter"
                    },
                    {
                      "column": 11,
                      "volume": "100:microliter"
                    }
                  ],
                  "op": "dispense"
                }
            ]



        Parameters
        ----------
        ref : Container
            Container for reagent to be dispensed to.
        reagent : str
            Reagent to be dispensed to columns in container.
        volume : Unit, str
            Volume of reagent to be dispensed to each well
        speed_percentage : int, optional
            Integer between 1 and 100 that represents the percentage of the
            maximum speed at which liquid is dispensed from the reagent
            dispenser.

         N/A N/A N/A speed_percentage None N/A N/A speed_percentage 100 N/A speed_percentage 1 N/A N/A N/A RuntimeError Invalid speed percentage specified. N/A columns N/A N/A col N/A range 0 N/A N/A ref container_type col_count N/A N/A N/A N/A columns append N/A column volume col volume N/A N/A N/A self dispense ref reagent columns speed_percentage N/A spin N/A N/A self ref acceleration duration N/A N/A N/A 
        Apply acceleration to a container.

        Example Usage:

        .. code-block:: python

            p = Protocol()
            sample_plate = p.ref("sample_plate",
                                 None,
                                 "96-flat",
                                 storage="warm_37")

            p.spin(sample_plate, "700:meter/second^2", "20:minute")

        Autoprotocol Output:

        .. code-block:: json

            "instructions": [
                {
                  "acceleration": "700:meter/second^2",
                  "duration": "20:minute",
                  "object": "sample_plate",
                  "op": "spin"
                }
            ]

        Parameters
        ----------
        ref : str, Ref
            The plate to be centrifuged.
        acceleration: str, Unit
            Acceleration to be applied to the plate, in units of `g` or
            `meter/second^2`.
        duration: str, Unit
            Length of time that acceleration should be applied.

         N/A N/A N/A N/A self instructions append N/A Spin ref acceleration duration N/A thermocycle N/A N/A self ref groups volume dataref dyes melting_start melting_end melting_increment melting_rate N/A 10:microliter None None None None None None N/A N/A 
        Append a Thermocycle instruction to the list of instructions, with
        groups is a list of dicts in the form of:

        .. code-block:: python

            "groups": [{
                "cycles": integer,
                "steps": [{
                  "duration": duration,
                  "temperature": temperature,
                  "read": boolean // optional (default false)
                },{
                  "duration": duration,
                  "gradient": {
                    "top": temperature,
                    "bottom": temperature
                  },
                  "read": boolean // optional (default false)
                }]
            }],

        Thermocycle can also be used for either conventional or row-wise
        gradient PCR as well as qPCR. Refer to the examples below for details.

        Example Usage:

        To thermocycle a container according to the protocol:
            * 1 cycle:
                * 95 degrees for 5 minutes
            * 30 cycles:
                * 95 degrees for 30 seconds
                * 56 degrees for 20 seconds
                * 72 degrees for 30 seconds
            * 1 cycle:
                * 72 degrees for 10 minutes


        .. code-block:: python

            p = Protocol()
            sample_plate = p.ref("sample_plate",
                                 None,
                                 "96-pcr",
                                 storage="warm_37")

            # a plate must be sealed before it can be thermocycled
            p.seal(sample_plate)

            p.thermocycle(sample_plate,
                        [
                         {"cycles": 1,
                          "steps": [{
                             "temperature": "95:celsius",
                             "duration": "5:minute",
                             }]
                          },
                          {"cycles": 30,
                              "steps": [
                                 {"temperature": "95:celsius",
                                  "duration": "30:second"},
                                 {"temperature": "56:celsius",
                                  "duration": "20:second"},
                                 {"temperature": "72:celsius",
                                  "duration": "20:second"}
                                 ]
                         },
                             {"cycles": 1,
                                 "steps": [
                                 {"temperature": "72:celsius", "duration":"10:minute"}]
                             }
                        ])


        Autoprotocol Output:

        .. code-block:: json

            "instructions": [
            {
              "object": "sample_plate",
              "op": "seal"
            },
            {
              "volume": "10:microliter",
              "dataref": null,
              "object": "sample_plate",
              "groups": [
                {
                  "cycles": 1,
                  "steps": [
                    {
                      "duration": "5:minute",
                      "temperature": "95:celsius"
                    }
                  ]
                },
                {
                  "cycles": 30,
                  "steps": [
                    {
                      "duration": "30:second",
                      "temperature": "95:celsius"
                    },
                    {
                      "duration": "20:second",
                      "temperature": "56:celsius"
                    },
                    {
                      "duration": "20:second",
                      "temperature": "72:celsius"
                    }
                  ]
                },
                {
                  "cycles": 1,
                  "steps": [
                    {
                      "duration": "10:minute",
                      "temperature": "72:celsius"
                    }
                  ]
                }
              ],
              "op": "thermocycle"
            }]


        To gradient thermocycle a container according to the protocol:

            * 1 cycle:
                * 95 degrees for 5 minutes
            * 30 cycles:
                * 95 degrees for 30 seconds

                Top Row:
                * 55 degrees for 20 seconds
                Bottom Row:
                * 65 degrees for 20 seconds

                * 72 degrees for 30 seconds
            * 1 cycle:
                * 72 degrees for 10 minutes

        .. code-block:: python

            p = Protocol()
            sample_plate = p.ref("sample_plate",
                                 None,
                                 "96-pcr",
                                 storage="warm_37")

            # a plate must be sealed before it can be thermocycled
            p.seal(sample_plate)

            p.thermocycle(sample_plate,
                          [
                           {"cycles": 1,
                            "steps": [{
                               "temperature": "95:celsius",
                               "duration": "5:minute",
                               }]
                            },
                            {"cycles": 30,
                                "steps": [
                                  {
                                    "duration": "30:second",
                                    "temperature": "95:celsius"
                                  },
                                  {
                                   "duration": "20:second",
                                   "gradient": {
                                      "top": "56:celsius",
                                      "bottom": "58:celsius"
                                    }
                                  },
                                  {
                                    "duration": "20:second",
                                    "temperature": "72:celsius"
                                  }
                                  ]
                           },
                               {"cycles": 1,
                                    "steps": [{"temperature": "72:celsius", "duration":"10:minute"}]
                               }
                          ])

        To conduct a qPCR, at least one dye type and the dataref field has to
        be specified.
        The example below uses SYBR dye and the following temperature profile:

            * 1 cycle:
                * 95 degrees for 3 minutes
            * 40 cycles:
                * 95 degrees for 10 seconds
                * 60 degrees for 30 seconds (Read during extension)

        .. code-block:: python

            p = Protocol()
            sample_plate = p.ref("sample_plate",
                                 None,
                                 "96-pcr",
                                 storage="warm_37")

            # a plate must be sealed before it can be thermocycled
            p.seal(sample_plate)

            p.thermocycle(sample_plate,
                          [{"cycles": 1,
                            "steps": [{
                                "temperature": "95:celsius",
                                "duration": "3:minute",
                                }]
                           },
                           {"cycles": 40,
                                "steps": [
                                    {"temperature": "95:celsius",
                                     "duration": "10:second",
                                     "read": False},
                                    {"temperature": "60:celsius",
                                     "duration": "30:second",
                                     "read": True},
                                    ]
                          }],
                          dataref = "my_qpcr_data",
                          dyes = {
                            "SYBR": sample_plate.all_wells().indices()}
                          )

        Parameters
        ----------
        ref : str, Ref
            Container to be thermocycled
        groups : list of dicts
            List of thermocycling instructions formatted as above
        volume : str, Unit, optional
            Volume contained in wells being thermocycled
        dataref : str, optional
            Name of dataref representing read data if performing qPCR
        dyes : dict, optional
            Dictionary mapping dye types to the wells they're used in
        melting_start: str, Unit
            Temperature at which to start the melting curve.
        melting_end: str, Unit
            Temperature at which to end the melting curve.
        melting_increment: str, Unit
            Temperature by which to increment the melting curve. Accepted
            increment values are between 0.1 and 9.9 degrees celsius.
        melting_rate: str, Unit
            Specifies the duration of each temperature step in the melting
            curve.

        Raises
        ------
        AttributeError
            if groups are not properly formatted

         N/A N/A N/A isinstance groups list N/A N/A N/A AttributeError groups for thermocycling must be a list of cycles in the form of [{'cycles':___, 'steps': [{'temperature':___,'duration':___, }]}, { ... }, ...] N/A N/A N/A N/A self instructions append N/A Thermocycle ref groups volume dataref dyes melting_start melting_end melting_increment melting_rate N/A incubate N/A N/A self ref where duration shaking co2 N/A False 0 N/A N/A 
        Move plate to designated thermoisolater or ambient area for incubation
        for specified duration.

        Example Usage:

        .. code-block:: python

            p = Protocol()
            sample_plate = p.ref("sample_plate",
                                 None,
                                 "96-pcr",
                                 storage="warm_37")

            # a plate must be sealed/covered before it can be incubated
            p.seal(sample_plate)
            p.incubate(sample_plate, "warm_37", "1:hour", shaking=True)

        Autoprotocol Output:

        .. code-block:: json

            "instructions": [
                {
                  "object": "sample_plate",
                  "op": "seal"
                },
                {
                  "duration": "1:hour",
                  "where": "warm_37",
                  "object": "sample_plate",
                  "shaking": true,
                  "op": "incubate",
                  "co2_percent": 0
                }
              ]

         N/A N/A N/A N/A self instructions append N/A Incubate ref where duration shaking co2 N/A absorbance N/A N/A self ref wells wavelength dataref flashes incubate_before temperature N/A 25 None None N/A N/A 
        Read the absorbance for the indicated wavelength for the indicated
        wells. Append an Absorbance instruction to the list of instructions for
        this Protocol object.

        Example Usage:

        .. code-block:: python

            p = Protocol()
            sample_plate = p.ref("sample_plate",
                                 None,
                                 "96-flat",
                                 storage="warm_37")

            p.absorbance(sample_plate, sample_plate.wells_from(0,12),
                         "600:nanometer", "test_reading", flashes=50)

        Autoprotocol Output:

        .. code-block:: json

            "instructions": [
                {
                  "dataref": "test_reading",
                  "object": "sample_plate",
                  "wells": [
                    "A1",
                    "A2",
                    "A3",
                    "A4",
                    "A5",
                    "A6",
                    "A7",
                    "A8",
                    "A9",
                    "A10",
                    "A11",
                    "A12"
                  ],
                  "num_flashes": 50,
                  "wavelength": "600:nanometer",
                  "op": "absorbance"
                }
              ]

        Parameters
        ----------
        ref : str, Ref
        wells : list, WellGroup, Well
            WellGroup of wells to be measured or a list of well references in
            the form of ["A1", "B1", "C5", ...]
        wavelength : str, Unit
            wavelength of light absorbance to be read for the indicated wells
        dataref : str
            name of this specific dataset of measured absorbances
        flashes : int, optional
        temperature: str, Unit, optional
            set temperature to heat plate reading chamber
        incubate_before: dict, optional
            incubation prior to reading if desired

            .. code-block:: json

                {
                  "shaking": {
                    "amplitude": str, Unit
                    "orbital": bool
                    }
                "duration": str, Unit
                }

         N/A N/A isinstance wells Well N/A N/A wells N/A WellGroup wells N/A N/A isinstance wells WellGroup N/A N/A wells N/A N/A wells indices N/A incubate_before N/A N/A N/A check_valid_incubate_params incubate_before N/A N/A N/A N/A self instructions append N/A Absorbance ref wells wavelength dataref flashes incubate_before temperature N/A fluorescence N/A N/A self ref wells excitation emission dataref flashes temperature gain incubate_before N/A 25 None None None N/A N/A 
        Read the fluoresence for the indicated wavelength for the indicated
        wells.  Append a Fluorescence instruction to the list of instructions
        for this Protocol object.

        Example Usage:

        .. code-block:: python

            p = Protocol()
            sample_plate = p.ref("sample_plate",
                                 None,
                                 "96-flat",
                                 storage="warm_37")

            p.fluorescence(sample_plate, sample_plate.wells_from(0,12),
                           excitation="587:nanometer", emission="610:nanometer",
                           dataref="test_reading")

        Autoprotocol Output:

        .. code-block:: json

            "instructions": [
                {
                  "dataref": "test_reading",
                  "excitation": "587:nanometer",
                  "object": "sample_plate",
                  "emission": "610:nanometer",
                  "wells": [
                    "A1",
                    "A2",
                    "A3",
                    "A4",
                    "A5",
                    "A6",
                    "A7",
                    "A8",
                    "A9",
                    "A10",
                    "A11",
                    "A12"
                  ],
                  "num_flashes": 25,
                  "op": "fluorescence"
                }
              ]

        Parameters
        ----------
        ref : str, Container
            Container to plate read.
        wells : list, WellGroup, Well
            WellGroup of wells to be measured or a list of well references in
            the form of ["A1", "B1", "C5", ...]
        excitation : str, Unit
            Wavelength of light used to excite the wells indicated
        emission : str, Unit
            Wavelength of light to be measured for the indicated wells
        dataref : str
            Name of this specific dataset of measured absorbances
        flashes : int, optional
            Number of flashes.
        temperature: str, Unit, optional
            set temperature to heat plate reading chamber
        gain: float, optional
            float between 0 and 1, multiplier, gain=0.2 of maximum signal amplification
        incubate_before: dict, optional
            incubation prior to reading if desired

            .. code-block:: json

                {
                  "shaking": {
                    "amplitude": str, Unit
                    "orbital": bool
                    }
                "duration": str, Unit
                }

         N/A N/A isinstance wells Well N/A N/A wells N/A WellGroup wells N/A N/A isinstance wells WellGroup N/A N/A wells N/A N/A wells indices N/A N/A N/A gain None N/A N/A 0 gain 1 N/A N/A N/A ValueError N/A fluoresence gain set to %s must be between 0 and 1, inclusive gain N/A incubate_before N/A N/A N/A check_valid_incubate_params incubate_before N/A N/A N/A N/A self instructions append N/A Fluorescence ref wells excitation emission dataref flashes incubate_before temperature gain N/A luminescence N/A N/A self ref wells dataref incubate_before temperature N/A None None N/A N/A 
        Read luminescence of indicated wells.

        Example Usage:

        .. code-block:: python

            p = Protocol()
            sample_plate = p.ref("sample_plate",
                                 None,
                                 "96-flat",
                                 storage="warm_37")

            p.luminescence(sample_plate, sample_plate.wells_from(0,12),
                           "test_reading")

        Autoprotocol Output:

        .. code-block:: json

            "instructions": [
                {
                  "dataref": "test_reading",
                  "object": "sample_plate",
                  "wells": [
                    "A1",
                    "A2",
                    "A3",
                    "A4",
                    "A5",
                    "A6",
                    "A7",
                    "A8",
                    "A9",
                    "A10",
                    "A11",
                    "A12"
                  ],
                  "op": "luminescence"
                }
              ]

        Parameters
        ----------
        ref : str, Container
            Container to plate read.
        wells : list, WellGroup, Well
            WellGroup or list of wells to be measured
        dataref : str
            Name of this dataset of measured luminescence readings.
        temperature: str, Unit, optional
            set temperature to heat plate reading chamber
        incubate_before: dict, optional
            incubation prior to reading if desired

            .. code-block:: json

                {
                  "shaking": {
                    "amplitude": str, Unit
                    "orbital": bool
                    }
                "duration": str, Unit
                }

         N/A N/A isinstance wells Well N/A N/A wells N/A WellGroup wells N/A N/A isinstance wells WellGroup N/A N/A wells N/A N/A wells indices N/A incubate_before N/A N/A N/A check_valid_incubate_params incubate_before N/A N/A N/A N/A self instructions append N/A Luminescence ref wells dataref incubate_before temperature N/A gel_separate N/A N/A self wells volume matrix ladder duration dataref N/A N/A N/A 
        Separate nucleic acids on an agarose gel.

        Example Usage:

        .. code-block:: python

            p = Protocol()
            sample_plate = p.ref("sample_plate",
                                 None,
                                 "96-flat",
                                 storage="warm_37")

            p.gel_separate(sample_plate.wells_from(0,12), "10:microliter",
                           "agarose(8,0.8%)", "ladder1", "11:minute",
                           "genotyping_030214")

        Autoprotocol Output:

        .. code-block:: json

            "instructions": [
                {
                  "dataref": "genotyping_030214",
                  "matrix": "agarose(8,0.8%)",
                  "volume": "10:microliter",
                  "ladder": "ladder1",
                  "objects": [
                    "sample_plate/0",
                    "sample_plate/1",
                    "sample_plate/2",
                    "sample_plate/3",
                    "sample_plate/4",
                    "sample_plate/5",
                    "sample_plate/6",
                    "sample_plate/7",
                    "sample_plate/8",
                    "sample_plate/9",
                    "sample_plate/10",
                    "sample_plate/11"
                  ],
                  "duration": "11:minute",
                  "op": "gel_separate"
                }
            ]

        Parameters
        ----------
        wells : list, WellGroup
            List of string well references or WellGroup containing wells to be
            separated on gel.
        volume : str, Unit
            Volume of liquid to be transferred from each well specified to a
            lane of the gel.
        matrix : str
            Matrix (gel) in which to gel separate samples
        ladder : str
            Ladder by which to measure separated fragment size
        duration : str, Unit
            Length of time to run current through gel.
        dataref : str
            Name of this set of gel separation results.
         N/A max_well N/A int N/A N/A N/A N/A N/A N/A matrix split ( 1 N/A 1 split , 1 N/A 0 N/A N/A N/A len wells max_well N/A N/A datarefs 1 N/A x N/A xrange 0 N/A len wells max_well N/A N/A N/A N/A self gel_separate N/A wells N/A x N/A x max_well volume matrix ladder duration N/A %s_%d N/A dataref datarefs N/A datarefs 1 N/A N/A N/A N/A N/A self instructions append N/A GelSeparate wells volume matrix ladder duration dataref N/A gel_purify N/A N/A self extracts volume matrix ladder dataref N/A N/A N/A 
        Separate nucleic acids on an agarose gel and purify according to
        parameters. If gel extract lanes are not specified, they will be
        sequentially ordered and purified on as many gels as necessary.

        Each element in extracts specifies a source loaded in a single lane of
        gel with a list of bands that will be purified from that lane. If the
        same source is to be run on separate lanes, a new dictionary must be
        added to extracts. It is also possible to add an element to extract
        with a source but without a list of bands. In that case, the source
        will be run in a lane without extraction.

        Example Usage:

            .. code-block:: python

                p = Protocol()
                sample_wells = p.ref("test_plate", None, "96-pcr",
                                     discard=True).wells_from(0, 8)
                extract_wells = [p.ref("extract_" + str(i.index), None,
                                       "micro-1.5", storage="cold_4").well(0)
                                 for i in sample_wells]


                extracts = [make_gel_extract_params(
                                w,
                                make_band_param(
                                    "TE",
                                    "5:microliter",
                                    80,
                                    79,
                                    extract_wells[i]))
                                for i, w in enumerate(sample_wells)]

                extracts[0] >>

                {
                  "band_list": [
                    {
                      "band_size_range": {
                        "max_bp": 80,
                        "min_bp": 79
                      },
                      "destination": Well(Container(extract_0), 0, None),
                      "elution_buffer": "TE",
                      "elution_volume": "Unit(5.0, 'microliter')"
                    }
                  ],
                  "gel": None,
                  "lane": None,
                  "source": Well(Container(test_plate), 0, None)
                }

                p.gel_purify(extracts, "10:microliter",
                             "select_size(8,0.8%)", "ladder1",
                             "gel_purify_example")

        Parameters
        ----------
        extracts: List of dicts
            Dictionary containing parameters for gel extraction, must be in the
            form of:

            ..code-block:: python

                [
                  {
                  "band_list": [
                    {
                      "band_size_range": {
                        "max_bp": int,
                        "min_bp": int
                      },
                      "destination": Well,
                      "elution_buffer": str,
                      "elution_volume": Volume
                    }
                  ],
                  "gel": int or None,
                  "lane": int or None,
                  "source": Well
                  }
                ]

            util.make_gel_extract_params() and util.make_band_param() can be
            used to create these dictionaries
        band_list: list of dicts
            List of bands to be extracted from the lane
        band_size_range: dict
            Dictionary for the size range of the band to be extracted
        max_bp: int
            Maximum size for the band
        min_bp: int
            Minimum size for the band
        destination: Well
            Well to place the extracted material
        elution_buffer: str
            Buffer to use to extract the band, commonly "water"
        elution_volume: str, Unit
            Volume of elution_buffer to extract the band into
        gel: int
            Integer identifier for the gel if using multiple gels
        lane: int
            Integer identifier for the lane of a gel to run the source
        source: Well
            Well from whcih to purify the material
        volume: str, Unit
            Volume of liquid to be transferred from each well specified to a
            lane of the gel.
        matrix: str
            Matrix (gel) in which to gel separate samples
        ladder: str
            Ladder by which to measure separated fragment size
        dataref: str
            Name of this set of gel separation results.


        Raises
        -------
        RuntimeError:
            If matrix is not properly formatted.
        AttributeError:
            If extract parameters are not a list of dictionaries.
        KeyError:
            If extract parameters do not contain the specified parameter keys.
        ValueError:
            If min_bp is greater than max_bp.
        ValueError:
            If extract destination is not of type Well.
        ValueError:
            If extract elution volume is not of type Unit
        ValueError:
            if extract elution volume is not greater than 0.
        RuntimeError:
            If gel extract lanes are set for some but not all extract wells.
        RuntimeError:
            If all samples do not fit on single gel type.
        TypeError:
            If lane designated for gel extracts is not an integer.
        RuntimeError:
            If designated lane index is outside lanes within the gel.
        RuntimeError:
            If lanes not designated and number of extracts not equal to number
            of samples.

         itertools groupby operator itemgetter N/A N/A N/A max_well N/A int N/A N/A N/A N/A N/A N/A matrix split ( 1 N/A 1 split , 1 N/A 0 N/A N/A N/A N/A AttributeError IndexError N/A N/A N/A RuntimeError Matrix specified is not properly formatted. N/A volume N/A Unit volume N/A N/A volume N/A Unit 0:microliter N/A N/A N/A ValueError N/A Volume: %s, must be greater than 0:microliter volume N/A N/A N/A isinstance ladder str N/A N/A N/A TypeError N/A Ladder: %s, must be a string ladder N/A N/A N/A isinstance dataref str N/A N/A N/A TypeError N/A Datref: %s, must be a string dataref N/A N/A N/A isinstance extracts list N/A N/A extracts N/A extracts N/A e extracts N/A N/A N/A check_valid_gel_purify_extract e N/A gel_set N/A N/A e N/A gel N/A e extracts N/A lane_set N/A N/A e N/A lane N/A e extracts N/A N/A None gel_set N/A N/A N/A any gel_set N/A N/A N/A RuntimeError If one extract has gel set, all extracts must have gel set N/A N/A N/A None lane_set N/A N/A N/A any lane_set N/A N/A N/A RuntimeError If one extract has lane set, all extracts must have lane set N/A N/A N/A i e N/A enumerate extracts N/A N/A N/A e N/A gel N/A i max_well N/A N/A e N/A lane N/A i max_well N/A N/A e extracts N/A N/A N/A e N/A gel 0 N/A sort_key N/A itemgetter gel N/A parsed_extracts N/A N/A list grp N/A N/A key grp N/A groupby N/A sorted extracts key sort_key key sort_key N/A pe parsed_extracts N/A N/A lane_set N/A N/A e N/A lane N/A e pe N/A N/A N/A len lane_set max_well N/A N/A N/A RuntimeError N/A The gel is not large enough to accomodate all lanes: gel has %s wells, %s lanes specified N/A max_well N/A len lane_set N/A N/A None lane_set N/A N/A N/A any lane_set N/A N/A N/A RuntimeError If one extract has lane set, all extracts must have lane set N/A N/A N/A i e N/A enumerate pe N/A N/A N/A e N/A lane N/A i max_well N/A lane_set N/A N/A e N/A lane N/A e pe N/A N/A N/A sorted lane_set N/A list N/A range 0 N/A N/A max lane_set 1 N/A N/A N/A RuntimeError Lanes must be contiguous, unique, and start from 0 N/A N/A N/A len parsed_extracts 1 N/A N/A dataref_gel N/A %s_%s N/A dataref N/A N/A pe N/A 0 N/A gel N/A N/A dataref_gel dataref N/A pe N/A sorted pe key N/A itemgetter lane N/A samples N/A N/A e N/A source N/A e pe N/A pe_unpacked N/A N/A e pe N/A N/A b N/A e N/A band_list N/A N/A ext b N/A N/A ext N/A lane N/A e N/A lane N/A N/A N/A pe_unpacked append ext N/A N/A N/A N/A self instructions append N/A GelPurify samples volume matrix ladder dataref_gel pe_unpacked N/A seal N/A N/A self ref type N/A ultra-clear N/A N/A 
        Seal indicated container using the automated plate sealer.

        Example Usage:

        .. code-block:: python

            p = Protocol()
            sample_plate = p.ref("sample_plate",
                                 None,
                                 "96-flat",
                                 storage="warm_37")

            p.seal(sample_plate)

        Autoprotocol Output:

        .. code-block:: json

            "instructions": [
                {
                  "object": "sample_plate",
                  "type": "ultra-clear"
                  "op": "seal"
                }
              ]

        Parameters
        ----------
        ref : Ref, str
          Container to be sealed
        type : str
          Seal type to be used, such as "ultra-clear" or "foil".

         N/A N/A N/A N/A self instructions append N/A Seal ref type N/A unseal N/A N/A self ref N/A N/A N/A 
        Remove seal from indicated container using the automated plate
        unsealer.

        Example Usage:

        .. code-block:: python

            p = Protocol()
            sample_plate = p.ref("sample_plate",
                                 None,
                                 "96-flat",
                                 storage="warm_37")
            # a plate must be sealed to be unsealed
            p.seal(sample_plate)

            p.unseal(sample_plate)

        Autoprotocol Output:

        .. code-block:: json

            "instructions": [
                {
                  "object": "sample_plate",
                  "op": "seal"
                },
                {
                  "object": "sample_plate",
                  "op": "unseal"
                }
              ]

        Parameters
        ----------
        ref : Ref, str
            Container to be unsealed

         N/A N/A N/A N/A self instructions append N/A Unseal ref N/A cover N/A N/A self ref lid N/A standard N/A N/A 
        Place specified lid type on specified container

        Example Usage:

        .. code-block:: python

            p = Protocol()
            sample_plate = p.ref("sample_plate",
                                 None,
                                 "96-flat",
                                 storage="warm_37")
            p.cover(sample_plate, lid="universal")

        Autoprotocol Output:

        .. code-block:: json

            "instructions": [
                {
                  "lid": "universal",
                  "object": "sample_plate",
                  "op": "cover"
                }
              ]

        Parameters
        ----------
        ref : str
            Container to be convered
        lid : {"standard", "universal", "low_evaporation"}, optional
            Type of lid to cover container with

         N/A N/A N/A N/A self instructions append N/A Cover ref lid N/A uncover N/A N/A self ref N/A N/A N/A 
        Remove lid from specified container

        Example Usage:

        .. code-block:: python

            p = Protocol()
            sample_plate = p.ref("sample_plate",
                                 None,
                                 "96-flat",
                                 storage="warm_37")
            # a plate must have a cover to be uncovered
            p.cover(sample_plate, lid="universal")

            p.uncover(sample_plate)

        Autoprotocol Output:

        .. code-block:: json

            "instructions": [
                {
                  "lid": "universal",
                  "object": "sample_plate",
                  "op": "cover"
                },
                {
                  "object": "sample_plate",
                  "op": "uncover"
                }
              ]

        Parameters
        ----------
        ref : str
            Container to remove lid from

         N/A N/A N/A N/A self instructions append N/A Uncover ref N/A flow_analyze N/A N/A self dataref FSC SSC neg_controls samples colors pos_controls N/A None None N/A N/A 
        Perform flow cytometry.The instruction will be executed within the
        voltage range specified for each channel, optimized for the best sample
        separation/distribution that can be achieved within these limits. The
        vendor will specify the device that this instruction is executed on and
        which excitation and emission spectra are available. At least one
        negative control is required, which will be used to define data
        acquisition parameters as well as to determine any autofluorescent
        properties for the sample set. Additional negative positive control
        samples are optional. Positive control samples will be used to
        optimize single color signals and, if desired, to minimize bleed into
        other channels.


        For each sample this instruction asks you to specify the `volume`
        and/or `captured_events`. Vendors might also require `captured_events`
        in case their device does not support volumetric sample intake. If
        both conditions are supported, the vendor will specify if data will be
        collected only until the first one is met or until both conditions are
        fulfilled.

        Example Usage:


        Autoprotocol Output:

        Parameters
        ----------
        dataref : str
            Name of flow analysis dataset generated.
        FSC : dict
            Dictionary containing FSC channel parameters in the form of:

            .. code-block:: json

                {
                  "voltage_range": {
                    "low": "230:volt",
                    "high": "280:volt"
                    },
                  "area": true,             //default: true
                  "height": true,           //default: true
                  "weight": false           //default: false
                }

        SSC : dict
            Dictionary of SSC channel parameters in the form of:

            .. code-block:: json

                {
                  "voltage_range": {
                    "low": <voltage>,
                    "high": <voltage>"
                    },
                  "area": true,             //default: true
                  "height": true,           //default: false
                  "weight": false           //default: false
                }

        neg_controls : list of dicts
            List of negative control wells in the form of:

            .. code-block:: json

                {
                    "well": well,
                    "volume": volume,
                    "captured_events": integer,     // optional, default infinity
                    "channel": [channel_name]
                }

            at least one negative control is required.
        samples : list of dicts
            List of samples in the form of:

            .. code-block:: json

                {
                    "well": well,
                    "volume": volume,
                    "captured_events": integer,     // optional, default infinity
                }

            at least one sample is required
        colors : list of dicts, optional
            Optional list of colors in the form of:

            .. code-block:: json

              [{
                "name": "FitC",
                "emission_wavelength": "495:nanometer",
                "excitation_wavelength": "519:nanometer",
                "voltage_range": {
                  "low": <voltage>,
                  "high": <voltage>
                },
                "area": true,             //default: true
                "height": false,          //default: false
                "weight": false           //default: false
              }, ... ]

        pos_controls : list of dicts, optional
            Optional list of positive control wells in the form of:

            .. code-block:: json

                [{
                    "well": well,
                    "volume": volume,
                    "captured_events": integer,     // optional, default infinity
                    "channel": [channel_name],
                    "minimize_bleed": [{            // optional
                      "from": color,
                      "to": [color]
                    }, ...
                ]

       N/A N/A N/A N/A self instructions append N/A FlowAnalyze dataref FSC SSC neg_controls samples colors pos_controls N/A oligosynthesize N/A N/A self oligos N/A N/A N/A 
        Specify a list of oligonucleotides to be synthesized and a destination
        for each product.

        Example Usage:

        .. code-block:: python

            oligo_1 = p.ref("oligo_1", None, "micro-1.5", discard=True)

            p.oligosynthesize([{"sequence": "CATGGTCCCCTGCACAGG",
                                "destination": oligo_1.well(0),
                                "scale": "25nm",
                                "purification": "standard"}])

        Autoprotocol Output:

        .. code-block:: json

            "instructions": [
                {
                  "oligos": [
                    {
                      "destination": "oligo_1/0",
                      "sequence": "CATGGTCCCCTGCACAGG",
                      "scale": "25nm",
                      "purification": "standard"
                    }
                  ],
                  "op": "oligosynthesize"
                }
              ]

        Parameters
        ----------
        oligos : list of dicts
            List of oligonucleotides to synthesize.  Each dictionary should
            contain the oligo's sequence, destination, scale and purification

            .. code-block:: json

                [
                    {
                      "destination": "my_plate/A1",
                      "sequence": "GATCRYMKSWHBVDN",
                        // - standard IUPAC base codes
                        // - IDT also allows rX (RNA), mX (2' O-methyl RNA), and
                        //   X*/rX*/mX* (phosphorothioated)
                        // - they also allow inline annotations for modifications,
                        //   eg "GCGACTC/3Phos/" for a 3' phosphorylation
                        //   eg "aggg/iAzideN/cgcgc" for an internal modification
                      "scale": "25nm" | "100nm" | "250nm" | "1um",
                      "purification": "standard" | "page" | "hplc",
                        // default: standard
                    },
                    ...
                ]
         N/A N/A N/A N/A self instructions append N/A Oligosynthesize oligos N/A spread N/A N/A self source dest volume N/A N/A N/A 
        Spread the specified volume of the source aliquot across the surface of
        the agar contained in the object container

        Example Usage:

        .. code-block:: python

            p = Protocol()

            agar_plate = p.ref("agar_plate", None, "1-flat", discard=True)
            bact = p.ref("bacteria", None, "micro-1.5", discard=True)

            p.spread(bact.well(0), agar_plate.well(0), "55:microliter")


        Autoprotocol Output:

        .. code-block:: json

            {
              "refs": {
                "bacteria": {
                  "new": "micro-1.5",
                  "discard": true
                },
                "agar_plate": {
                  "new": "1-flat",
                  "discard": true
                }
              },
              "instructions": [
                {
                  "volume": "55.0:microliter",
                  "to": "agar_plate/0",
                  "from": "bacteria/0",
                  "op": "spread"
                }
              ]
            }


        Parameters
        ----------
        source : str, Well
            Source of material to spread on agar
        dest : str, Well
            Reference to destination location (plate containing agar)
        volume : str, Unit
            Volume of source material to spread on agar

         N/A volume N/A N/A Unit fromstring volume N/A N/A dest volume N/A N/A N/A dest volume volume N/A N/A N/A dest volume volume N/A N/A source volume N/A N/A N/A source volume volume N/A N/A N/A N/A self instructions append N/A Spread source dest volume N/A autopick N/A N/A self sources dests min_abort criteria dataref newpick N/A 0 N/A autopick False N/A N/A 

        Pick colonies from the agar-containing location(s) specified in
        `sources` to the location(s) specified in `dests` in highest to lowest
        rank order until there are no more colonies available.  If fewer than
        min_abort pickable colonies have been identified from the location(s)
        specified in `sources`, the run will stop and no further instructions
        will be executed.

        Example Usage:

        Autoprotocol Output:

        Parameters
        ----------
        sources : list of str, list of Wells
          Reference to plate containing agar and colonies to pick
        dests : list of str, list of Wells
          List of destination(s) for picked colonies
        criteria : dict
          Dictionary of autopicking criteria.
        min_abort : int, optional
          Total number of colonies that must be detected in the aggregate
          list of `from` wells to avoid aborting the entire run.

         N/A pick N/A N/A N/A N/A isinstance sources Well N/A isinstance sources str N/A N/A sources N/A sources N/A N/A pick N/A from sources N/A N/A N/A len N/A set N/A N/A s container N/A s N/A pick N/A from 1 N/A N/A N/A RuntimeError All source wells for autopick must exist on the same container N/A N/A N/A isinstance dests Well N/A isinstance dests str N/A N/A dests N/A dests N/A N/A pick N/A to dests N/A N/A pick N/A min_abort min_abort N/A group N/A pick N/A N/A N/A newpick N/A self instructions N/A N/A N/A N/A self instructions N/A -1 op autopick N/A N/A N/A N/A self instructions N/A -1 dataref dataref N/A N/A N/A N/A self instructions N/A -1 criteria criteria N/A N/A N/A N/A N/A N/A N/A N/A self instructions N/A -1 groups N/A 0 N/A from N/A 0 container N/A N/A sources N/A 0 container N/A N/A N/A N/A N/A N/A N/A self instructions N/A -1 groups extend group N/A N/A N/A N/A N/A self instructions append N/A Autopick group criteria dataref N/A mag_dry N/A N/A self head container duration new_tip new_instruction N/A False False N/A N/A 

        Dry beads with magnetized tips above and outside a container for a set
        time.

        Example Usage:

        .. code-block:: python

            p = Protocol()
            plate = p.ref("plate_0", None, "96-pcr", storage="cold_20")

            p.mag_dry("96-pcr", plate, "30:minute", new_tip=False,
                      new_instruction=False)

        Autoprotocol Output:

        .. code-block:: json

            "instructions": [
                {
                  "groups": [
                    [
                      {
                        "dry": {
                          "duration": "30:minute",
                          "object": "plate_0"
                        }
                      }
                    ]
                  ],
                  "magnetic_head": "96-pcr",
                  "op": "magnetic_transfer"
                }
              ]

        Parameters
        ----------
        head : str
            Magnetic head to use for the magnetic bead transfers
        container : Container
            Container to dry beads above
        duration : str, Unit
            Time for drying
        new_tip : bool
            Specify whether to use a new tip to complete the step
        new_instruction: bool
            Specify whether to create a new magnetic_transfer instruction

         N/A N/A check_valid_mag container head N/A mag N/A N/A N/A mag N/A object container N/A kw N/A duration N/A N/A val N/A N/A locals N/A kw N/A N/A N/A isinstance val str N/A : val N/A N/A val N/A Unit val N/A N/A mag N/A kw val N/A N/A check_valid_mag_params mag N/A N/A N/A self _add_mag mag head new_tip new_instruction dry N/A mag_incubate N/A N/A self head container duration magnetize tip_position temperature new_tip new_instruction N/A False 1.5 None False False N/A N/A 

        Incubate the container for a set time with tips set at `tip_position`.

        Example Usage:

        .. code-block:: python

            p = Protocol()
            plate = p.ref("plate_0", None, "96-pcr", storage="cold_20")

            p.mag_incubate("96-pcr", plate, "30:minute", magnetize=False,
                           tip_position=1.5, temperature=None, new_tip=False)

        Autoprotocol Output:

        .. code-block:: json

            "instructions": [
                {
                  "groups": [
                    [
                      {
                        "incubate": {
                          "duration": "30:minute",
                          "tip_position": 1.5,
                          "object": "plate_0",
                          "magnetize": false,
                          "temperature": null
                        }
                      }
                    ]
                  ],
                  "magnetic_head": "96-pcr",
                  "op": "magnetic_transfer"
                }
              ]

        Parameters
        ----------
        head : str
            Magnetic head to use for the magnetic bead transfers
        container : Container
            Container to incubate beads
        duration : str, Unit
            Time for incubation
        magnetize : bool
            Specify whether to magnetize the tips
        tip_position : float
            Position relative to well height that tips are held
        temperature: str, Unit
            Temperature heat block is set at
        new_tip : bool
            Specify whether to use a new tip to complete the step
        new_instruction: bool
            Specify whether to create a new magnetic_transfer instruction

         N/A N/A check_valid_mag container head N/A mag N/A N/A N/A mag N/A object container N/A kw N/A duration magnetize tip_position temperature N/A N/A val N/A N/A locals N/A kw N/A N/A N/A isinstance val str N/A : val N/A N/A val N/A Unit val N/A N/A mag N/A kw val N/A N/A check_valid_mag_params mag N/A N/A N/A self _add_mag mag head new_tip new_instruction incubate N/A mag_collect N/A N/A self head container cycles pause_duration bottom_position temperature new_tip new_instruction N/A 0.0 None False False N/A N/A 

        Collect beads from a container by cycling magnetized tips in and out
        of the container with an optional pause at the bottom of the insertion.

        Example Usage:

        .. code-block:: python

            p = Protocol()
            plate = p.ref("plate_0", None, "96-pcr", storage="cold_20")

            p.mag_collect("96-pcr", plate, 5, "30:second", bottom_position=
                          0.0, temperature=None, new_tip=False,
                          new_instruction=False)

        Autoprotocol Output:

        .. code-block:: json

            "instructions": [
                {
                  "groups": [
                    [
                      {
                        "collect": {
                          "bottom_position": 0.0,
                          "object": "plate_0",
                          "temperature": null,
                          "cycles": 5,
                          "pause_duration": "30:second"
                        }
                      }
                    ]
                  ],
                  "magnetic_head": "96-pcr",
                  "op": "magnetic_transfer"
                }
              ]

        Parameters
        ----------
        head : str
            Magnetic head to use for the magnetic bead transfers
        container : Container
            Container to incubate beads
        cycles: int
            Number of cycles to raise and lower tips
        pause_duration : str, Unit
            Time tips are paused in bottom position each cycle
        bottom_position : float
            Position relative to well height that tips are held during pause
        temperature: str, Unit
            Temperature heat block is set at
        new_tip : bool
            Specify whether to use a new tip to complete the step
        new_instruction: bool
            Specify whether to create a new magnetic_transfer instruction

         N/A N/A check_valid_mag container head N/A mag N/A N/A N/A mag N/A object container N/A kw N/A cycles pause_duration bottom_position temperature N/A N/A val N/A N/A locals N/A kw N/A N/A N/A isinstance val str N/A : val N/A N/A val N/A Unit val N/A N/A mag N/A kw val N/A N/A check_valid_mag_params mag N/A N/A N/A self _add_mag mag head new_tip new_instruction collect N/A mag_release N/A N/A self head container duration frequency center amplitude temperature new_tip new_instruction N/A 0.5 0.5 None False False N/A N/A 

        Release beads into a container by cycling tips in and out of the
        container with tips unmagnetized.

        Example Usage:

        .. code-block:: python

            p = Protocol()
            plate = p.ref("plate_0", None, "96-pcr", storage="cold_20")

            p.mag_release("96-pcr", plate, "30:second", "60:hertz", center=0.75,
                          amplitude=0.25, temperature=None, new_tip=False,
                          new_instruction=False)

        Autoprotocol Output:

        .. code-block:: json

            "instructions": [
                {
                  "groups": [
                    [
                      {
                        "release": {
                          "center": 0.75,
                          "object": "plate_0",
                          "frequency": "2:hertz",
                          "amplitude": 0.25,
                          "duration": "30:second",
                          "temperature": null
                        }
                      }
                    ]
                  ],
                  "magnetic_head": "96-pcr",
                  "op": "magnetic_transfer"
                }
              ]

        Parameters
        ----------
        head : str
            Magnetic head to use for the magnetic bead transfers
        container : Container
            Container to incubate beads
        duration : str, Unit
            Total time for this sub-operation
        frequency : str, Unit
            Cycles per second (hertz) that tips are raised and lowered
        center : float
            Position relative to well height where oscillation is centered
        amplitude : float
            Distance relative to well height to oscillate around "center"
        temperature: str, Unit
            Temperature heat block is set at
        new_tip : bool
            Specify whether to use a new tip to complete the step
        new_instruction: bool
            Specify whether to create a new magnetic_transfer instruction

         N/A N/A check_valid_mag container head N/A mag N/A N/A N/A mag N/A object container N/A kw N/A duration frequency center amplitude temperature N/A N/A val N/A N/A locals N/A kw N/A N/A N/A isinstance val str N/A : val N/A N/A val N/A Unit val N/A N/A mag N/A kw val N/A N/A check_valid_mag_params mag N/A N/A N/A self _add_mag mag head new_tip new_instruction release N/A mag_mix N/A N/A self head container duration frequency center amplitude magnetize temperature new_tip new_instruction N/A 0.5 0.5 False None False False N/A N/A 

        Mix beads in a container by cycling tips in and out of the
        container.

        Example Usage:

        .. code-block:: python

            p = Protocol()
            plate = p.ref("plate_0", None, "96-pcr", storage="cold_20")

            p.mag_mix("96-pcr", plate, "30:second", "60:hertz", center=0.75,
                      amplitude=0.25, magnetize=True, temperature=None,
                      new_tip=False, new_instruction=False)

        Autoprotocol Output:

        .. code-block:: json

            "instructions": [
                {
                  "groups": [
                    [
                      {
                        "mix": {
                          "center": 0.75,
                          "object": "plate_0",
                          "frequency": "2:hertz",
                          "amplitude": 0.25,
                          "duration": "30:second",
                          "magnetize": true,
                          "temperature": null
                        }
                      }
                    ]
                  ],
                  "magnetic_head": "96-pcr",
                  "op": "magnetic_transfer"
                }
              ]

        Parameters
        ----------
        head : str
            Magnetic head to use for the magnetic bead transfers
        container : Container
            Container to incubate beads
        duration : str, Unit
            Total time for this sub-operation
        frequency : str, Unit
            Cycles per second (hertz) that tips are raised and lowered
        center : float
            Position relative to well height where oscillation is centered
        amplitude : float
            Distance relative to well height to oscillate around "center"
        magnetize : bool
            Specify whether to magnetize the tips
        temperature: str, Unit
            Temperature heat block is set at
        new_tip : bool
            Specify whether to use a new tip to complete the step
        new_instruction: bool
            Specify whether to create a new magnetic_transfer instruction

         N/A N/A check_valid_mag container head N/A mag N/A N/A N/A mag N/A object container N/A kw N/A duration frequency center amplitude magnetize temperature N/A N/A val N/A N/A locals N/A kw N/A N/A N/A isinstance val str N/A : val N/A N/A val N/A Unit val N/A N/A mag N/A kw val N/A N/A check_valid_mag_params mag N/A N/A N/A self _add_mag mag head new_tip new_instruction mix N/A image_plate N/A N/A self ref mode dataref N/A N/A N/A 
        Capture an image of the specified container.

        Example Usage:

        .. code-block:: python

            p = Protocol()

            agar_plate = p.ref("agar_plate", None, "1-flat", discard=True)
            bact = p.ref("bacteria", None, "micro-1.5", discard=True)

            p.spread(bact.well(0), agar_plate.well(0), "55:microliter")
            p.incubate(agar_plate, "warm_37", "18:hour")
            p.image_plate(agar_plate, mode="top", dataref="my_plate_image_1")


        Autoprotocol Output:

        .. code-block:: json

            {
              "refs": {
                "bacteria": {
                  "new": "micro-1.5",
                  "discard": true
                },
                "agar_plate": {
                  "new": "1-flat",
                  "discard": true
                }
              },
              "instructions": [
                {
                  "volume": "55.0:microliter",
                  "to": "agar_plate/0",
                  "from": "bacteria/0",
                  "op": "spread"
                },
                {
                  "where": "warm_37",
                  "object": "agar_plate",
                  "co2_percent": 0,
                  "duration": "18:hour",
                  "shaking": false,
                  "op": "incubate"
                },
                {
                  "dataref": "my_plate_image_1",
                  "object": "agar_plate",
                  "mode": "top",
                  "op": "image_plate"
                }
              ]
            }


        Parameters
        ----------
        ref : str, Container
            Container to take image of
        mode : str
            Imaging mode (currently supported: "top")
        dataref : str
            Name of data reference of resulting image

         N/A N/A N/A N/A self instructions append N/A ImagePlate ref mode dataref N/A provision N/A N/A self resource_id dests volumes N/A N/A N/A 
        Provision a commercial resource from a catalog into the specified
        destination well(s).  A new tip is used for each destination well
        specified to avoid contamination.

        Parameters
        ----------
        resource_id : str
          Resource ID from catalog.
        dests : Well, WellGroup
          Destination(s) for specified resource.
        volumes : str, Unit, list of str, list of Unit
          Volume(s) to transfer of the resource to each destination well.  If
          one volume of specified, each destination well recieve that volume of
          the resource.  If destinations should recieve different volumes, each
          one should be specified explicitly in a list matching the order of the
          specified destinations.

        Raises
        ------
        TypeError
          If resource_id is not a string.
        RuntimeError
          If length of the list of volumes specified does not match the number
          of destination wells specified.
        TypeError
          If volume is not specified as a string or Unit (or a list of either)

         N/A dests N/A WellGroup dests N/A N/A N/A isinstance resource_id basestring N/A N/A N/A TypeError Resource ID must be a string. N/A N/A N/A isinstance volumes list N/A N/A volumes N/A N/A N/A N/A Unit fromstring volumes N/A len dests N/A N/A N/A N/A len volumes N/A len dests N/A N/A N/A RuntimeError To provision a resource into multiple destinations with multiple volumes, the  list of volumes must correspond with the destinations in length and in order. N/A volumes N/A N/A N/A Unit fromstring v N/A v volumes N/A v volumes N/A N/A N/A N/A isinstance v N/A basestring Unit N/A N/A N/A TypeError Volume must be a string or Unit. N/A N/A d v N/A zip dests volumes N/A N/A dest_group N/A N/A N/A v N/A Unit 900 microliter N/A N/A diff N/A v N/A Unit 900 microliter N/A N/A N/A self provision resource_id d N/A Unit 900 microliter N/A N/A diff N/A Unit 0.0 microliter N/A N/A N/A N/A self provision resource_id d diff N/A diff diff N/A N/A xfer N/A N/A N/A xfer N/A well d N/A N/A xfer N/A volume v N/A N/A d volume N/A N/A N/A d volume v N/A N/A N/A N/A d set_volume v N/A N/A N/A dest_group append xfer N/A N/A N/A self instructions N/A N/A N/A N/A self instructions N/A -1 op provision N/A N/A N/A N/A self instructions N/A -1 resource_id resource_id N/A N/A N/A N/A N/A N/A N/A self instructions N/A -1 to N/A -1 N/A well container N/A d container N/A N/A N/A N/A N/A N/A N/A self instructions N/A -1 to append xfer N/A N/A N/A N/A N/A self instructions append N/A Provision resource_id dest_group N/A flash_freeze N/A N/A self container duration N/A N/A N/A 
        Flash freeze the contents of the specified container by submerging it
        in liquid nitrogen for the specified amount of time.

        Example Usage:

        .. code-block:: python

            p = Protocol()

            sample = p.ref("liquid_sample", None, "micro-1.5", discard=True)
            p.flash_freeze(sample, "25:second")


        Autoprotocol Output:

        .. code-block:: json

            {
              "refs": {
                "liquid_sample": {
                  "new": "micro-1.5",
                  "discard": true
                }
              },
              "instructions": [
                {
                  "duration": "25:second",
                  "object": "liquid_sample",
                  "op": "flash_freeze"
                }
              ]
            }


        Parameters
        ----------
        container : Container, str
          Container to be flash frozen.
        duration : str, Unit
          Duration to submerge specified container in liquid nitrogen.

         N/A N/A N/A N/A self instructions append N/A FlashFreeze container duration N/A _ref_for_well N/A N/A self well N/A N/A N/A N/A %s/%d N/A N/A N/A self _ref_for_container N/A well container N/A well index N/A _ref_for_container N/A N/A self container N/A N/A N/A k N/A self refs N/A N/A v N/A N/A self refs N/A k N/A N/A N/A v container container N/A N/A k N/A fill_wells N/A N/A dst_group src_group volume distribute_target N/A N/A N/A 
        Distribute liquid to a WellGroup, sourcing the liquid from a group
        of wells all containing the same substance.

        Parameters
        ----------
        dst_group : WellGroup
            WellGroup to distribute liquid to
        src_group : WellGroup
            WellGroup containing the substance to be distributed
        volume : str, Unit
            volume of liquid to be distributed to each destination well

        Returns
        -------
        distributes : list
            List of distribute groups

        Raises
        ------
        RuntimeError
            if source wells run out of liquid before distributing to all
            designated destination wells
        RuntimeError
            if length of list of volumes does not match the number of
            destination wells to be distributed to

         N/A src None N/A distributes N/A N/A src_group N/A WellGroup src_group N/A dst_group N/A WellGroup dst_group N/A N/A isinstance volume list N/A N/A N/A N/A len volume N/A len N/A dst_group wells N/A N/A N/A RuntimeError List length of volumes provided for distribution does not match the number of  destination wells N/A volume N/A N/A N/A Unit fromstring x N/A x volume N/A N/A volume N/A N/A N/A N/A Unit fromstring volume N/A len N/A dst_group wells N/A N/A d v N/A list N/A zip N/A dst_group wells volume N/A N/A v N/A N/A v to ul N/A N/A N/A N/A len distributes 0 N/A N/A src volume v N/A N/A src N/A next N/A w N/A w N/A src_group wells N/A N/A w volume v None N/A N/A src None N/A N/A N/A RuntimeError N/A no well in source group has more than %s %s(s) N/A N/A N/A N/A N/A str v rsplit : N/A 0 N/A N/A N/A N/A str v rsplit : N/A 1 N/A N/A N/A distributes append N/A from to src N/A N/A opts N/A well volume d v N/A distribute_target N/A N/A N/A opts N/A distribute_target distribute_target N/A N/A N/A N/A N/A distributes N/A -1 N/A to append opts N/A N/A src volume v N/A N/A d volume N/A N/A N/A d volume v N/A N/A N/A d volume v N/A distributes N/A staticmethod _pipette N/A N/A self groups N/A N/A N/A Append given pipette groups to the protocol

         N/A N/A N/A N/A len N/A self instructions 0 N/A N/A N/A N/A self instructions N/A -1 op pipette N/A N/A N/A N/A N/A self instructions N/A -1 groups groups N/A N/A N/A N/A N/A self instructions append N/A Pipette groups N/A _add_mag N/A N/A self mag head new_tip new_instruction name N/A N/A N/A 
        Append given magnetic_transfer groups to protocol
         N/A max_containers 8 N/A N/A N/A new_instruction N/A self instructions N/A N/A N/A N/A self instructions N/A -1 op magnetic_transfer N/A N/A N/A N/A self instructions N/A -1 magnetic_head head N/A N/A N/A N/A N/A self _count_mag_containers mag new_tip max_containers N/A N/A N/A new_tip N/A N/A N/A N/A N/A N/A N/A N/A self instructions N/A -1 groups N/A -1 append N/A name mag N/A N/A new_tip N/A N/A N/A N/A N/A N/A N/A self instructions N/A -1 groups append N/A N/A name mag N/A N/A N/A N/A N/A self _count_mag_containers mag new_tip max_containers N/A N/A N/A RuntimeError Error with magnetic_transfer: Only 8 containers and tips are allowed per magnetic transfer instruction. Please specify a new instruction N/A N/A N/A N/A N/A self instructions append N/A MagneticTransfer N/A N/A N/A name mag head N/A _count_mag_containers N/A N/A self mag new_tip N/A N/A N/A 
        Count the number of containers and tip protectors used in a
        magnetic_transfer instruction
         N/A num_groups N/A len N/A N/A N/A self instructions N/A -1 groups N/A containers N/A N/A N/A N/A list N/A N/A g values N/A 0 N/A object N/A group N/A N/A N/A self instructions N/A -1 groups N/A g group N/A N/A N/A containers append N/A mag N/A object N/A containers N/A list N/A set containers N/A num_containers N/A len containers N/A num_containers num_groups N/A new_tip N/A N/A num_containers 1 N/A num_containers N/A _refify N/A N/A self op_data N/A N/A N/A N/A N/A type op_data dict N/A N/A N/A k N/A N/A self _refify v N/A N/A k v N/A N/A op_data items N/A N/A N/A N/A type op_data list N/A N/A N/A N/A N/A self _refify i N/A i op_data N/A N/A N/A isinstance op_data Well N/A N/A N/A N/A self _ref_for_well op_data N/A N/A N/A isinstance op_data WellGroup N/A N/A N/A N/A N/A self _ref_for_well w N/A w N/A op_data wells N/A N/A N/A isinstance op_data Container N/A N/A N/A N/A self _ref_for_container op_data N/A N/A N/A isinstance op_data Unit N/A N/A N/A str op_data N/A N/A op_data N/A _ref_containers_and_wells N/A N/A self params N/A N/A N/A 
        Used by harness.run() to process JSON container and well references

        .. code-block:: python

            parameters = {
                "sample": {
                        "id": null,
                        "type": "micro-1.5",
                        "storage": "cold_4",
                        "discard": null
                },
                "mastermix_loc": "sample_plate/A1",
                "samples": [
                    "sample_plate/B1",
                    "sample_plate/B2",
                    "sample_plate/B3",
                    "sample_plate/B4"
                ]
            }

            protocol.make_well_references(parameters)

        returns:

        .. code-block:: python

            {
                "refs":{
                    "sample": Container(None, "micro-1.5")
                },
                "mastermix_loc": protocol.refs["sample_plate"].well("A1"),
                "samples": WellGroup([
                        protocol.refs["sample_plate"].well("B1"),
                        protocol.refs["sample_plate"].well("B2"),
                        protocol.refs["sample_plate"].well("B3"),
                        protocol.refs["sample_plate"].well("B4")
                    ])
            }

        Parameters
        ----------
        params : dict
            A dictionary of parameters to be passed to a protocol.

         N/A parameters N/A N/A containers N/A N/A N/A k v N/A N/A params items N/A N/A N/A isinstance v dict N/A N/A N/A parameters N/A N/A str k N/A N/A self _ref_containers_and_wells v N/A N/A N/A isinstance v list N/A isinstance N/A v N/A 0 dict N/A N/A cont v N/A N/A N/A N/A self _ref_containers_and_wells N/A N/A cont encode utf-8 N/A N/A N/A N/A isinstance v dict N/A type v N/A N/A N/A discard v N/A N/A discard N/A v N/A discard N/A N/A discard N/A N/A v get storage N/A N/A N/A RuntimeError You must either specify a storage condition or set discard to true, not both. N/A N/A discard False N/A N/A containers N/A N/A str k N/A N/A self ref k N/A v N/A id N/A v N/A type storage N/A N/A v get storage discard discard N/A N/A N/A parameters N/A N/A str k v N/A N/A parameters N/A refs containers N/A N/A k v N/A N/A params items N/A N/A N/A N/A isinstance v list N/A / N/A str N/A v N/A 0 N/A N/A group N/A WellGroup N/A N/A w v N/A N/A N/A cont well N/A N/A w rsplit / 1 N/A N/A N/A group append N/A N/A N/A N/A N/A self refs N/A cont container well well N/A N/A parameters N/A N/A str k group N/A N/A N/A / N/A str v N/A N/A ref_name N/A N/A N/A v rsplit / N/A 0 N/A N/A N/A ref_name N/A self refs N/A N/A N/A RuntimeError N/A Parameters contain well references to a container that isn't referenced in this protocol: '%s'. ref_name N/A N/A N/A N/A N/A v rsplit / N/A 1 all_wells N/A N/A N/A parameters N/A N/A str k N/A N/A N/A N/A N/A self refs N/A ref_name container all_wells N/A N/A N/A parameters N/A N/A str k N/A N/A N/A N/A N/A self refs N/A ref_name container well N/A N/A N/A v rsplit / N/A 1 N/A N/A N/A parameters N/A N/A str k v N/A parameters N/A measure_concentration N/A N/A self wells dataref measurement volume N/A 2:microliter N/A N/A 
        Measure the concentration of DNA, ssDNA, RNA or Protein in the
        specified volume of the source aliquots.

        Example Usage:

        .. code-block:: python

            p = Protocol()

            test_plate = p.ref("test_plate", id=None, cont_type="96-flat",
                storage=None, discard=True)
            p.measure_concentration(test_plate.wells_from(0, 3), "mc_test",
                "DNA")
            p.measure_concentration(test_plate.wells_from(3, 3),
                dataref="mc_test2", measurement="protein",
                volume="4:microliter")


        Autoprotocol Output:

        .. code-block:: json

            {
              "refs": {
                "test_plate": {
                  "new": "96-flat",
                  "discard": true
                }
              },
              "instructions": [
                 {
                    "volume": "2.0:microliter",
                    "dataref": "mc_test",
                    "object": [
                        "test_plate/0",
                        "test_plate/1",
                        "test_plate/2"
                    ],
                    "op": "measure_concentration",
                    "measurement": "DNA"
                  }
              ]
            }


        Parameters
        ----------
        wells : list, WellGroup
            WellGroup of wells to be measured
        volume : str, Unit
            Volume of sample required for analysis
        dataref : str
            Name of this specific dataset of measurements
        measurement : str
            Class of material to be measured. One of ["DNA", "ssDNA", "RNA",
            "protein"].

         N/A N/A N/A N/A self instructions append N/A MeasureConcentration wells volume dataref measurement N/A measure_mass N/A N/A self containers dataref N/A N/A N/A 
        Measure the mass of a list of containers.

        Example Usage:

        .. code-block:: python

            p = Protocol()

            test_plate = p.ref("test_plate", id=None, cont_type="96-flat",
                storage=None, discard=True)
            p.measure_mass([test_plate], "test_data")


        Autoprotocol Output:

        .. code-block:: json

            {
              "refs": {
                "test_plate": {
                  "new": "96-flat",
                  "discard": true
                }
              },
              "instructions": [
                 {
                    "dataref": "test_data",
                    "object": [
                        "test_plate
                    ],
                    "op": "measure_mass"
                  }
              ]
            }


        Parameters
        ----------
        containers : list, Container
            list of containers to be measured
        dataref : str
            Name of this specific dataset of measurements

         N/A N/A isinstance containers Container N/A N/A containers N/A containers N/A N/A N/A isinstance containers list N/A N/A container containers N/A N/A N/A N/A isinstance container Container N/A N/A N/A TypeError Only list of Container allowed N/A N/A N/A TypeError Only Container or list of Container allowed N/A N/A N/A N/A self instructions append N/A MeasureMass containers dataref N/A measure_volume N/A N/A self wells dataref N/A N/A N/A 
        Measure the volume of each well in wells.

        Example Usage:

        .. code-block:: python

            p = Protocol()

            test_plate = p.ref("test_plate", id=None, cont_type="96-flat",
                storage=None, discard=True)
            p.measure_volume(test_plate.from_wells(0,2), "test_data")


        Autoprotocol Output:

        .. code-block:: json

            {
              "refs": {
                "test_plate": {
                  "new": "96-flat",
                  "discard": true
                }
              },
              "instructions": [
                 {
                    "dataref": "test_data",
                    "object": [
                        "test_plate/0",
                        "test_plate/1"
                    ],
                    "op": "measure_volume"
                  }
              ]
            }


        Parameters
        ----------
        wells : list, well, WellGroup
            list of wells to be measured
        dataref : str
            Name of this specific dataset of measurements

         N/A wells N/A WellGroup wells N/A N/A N/A N/A self instructions append N/A MeasureVolume wells dataref N/A N/A