Module Import alias Import alias Import alias Import alias identifier Import alias identifier ImportFrom alias alias ImportFrom alias ImportFrom alias Import alias identifier ClassDef bases body FunctionDef arguments args NameParam defaults body Assign AttributeStore NameLoad attr Num Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr Num decorator_list decorator_list ClassDef bases body FunctionDef arguments args NameParam NameParam NameParam defaults Num body Expr Call AttributeLoad NameLoad attr Str NameLoad Str Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore AttributeLoad NameLoad attr attr Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr Assign AttributeStore NameLoad attr Call NameLoad AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr If CompareEq AttributeLoad NameLoad attr Num body Assign AttributeStore NameLoad attr Call NameLoad keyword Call AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr keyword BinOpAdd BinOpAdd BinOpAdd AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad AttributeLoad NameLoad attr attr Str AttributeLoad AttributeLoad NameLoad attr attr keyword AttributeLoad AttributeLoad NameLoad attr attr orelse If CompareEq AttributeLoad NameLoad attr Num body Assert CompareEq AttributeLoad AttributeLoad NameLoad attr attr Str Assign NameStore Call AttributeLoad NameLoad attr ListComp Call AttributeLoad NameLoad attr NameLoad comprehension NameStore AttributeLoad AttributeLoad NameLoad attr attr Assign AttributeStore NameLoad attr Call NameLoad keyword NameLoad keyword BinOpAdd BinOpAdd BinOpAdd AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad AttributeLoad NameLoad attr attr Str AttributeLoad AttributeLoad NameLoad attr attr keyword AttributeLoad AttributeLoad NameLoad attr attr decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam defaults body Expr Str Assign TupleStore NameStore NameStore NameStore NameStore TupleLoad BinOpSub NameLoad Num BinOpSub NameLoad Num BinOpAdd NameLoad Num BinOpAdd NameLoad Num Assign NameStore ListLoad SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index NameLoad SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index NameLoad SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index NameLoad SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index NameLoad SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index NameLoad SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index NameLoad SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index NameLoad SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index NameLoad Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Str Assign NameStore BinOpAdd NameLoad SubscriptLoad NameLoad Slice Num Num Assign NameStore Call AttributeLoad NameLoad attr GeneratorExp CompareEq TupleLoad NameLoad NameLoad TupleLoad Num Num comprehension TupleStore NameStore NameStore Call NameLoad NameLoad SubscriptLoad NameLoad Slice Num Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Str Assign NameStore Call AttributeLoad NameLoad attr Assign NameStore NameStore Num While BoolOpOr NameLoad NameLoad body Assign NameStore ListLoad Assign NameStore BinOpSub Call NameLoad NameLoad Num Assign NameStore ListLoad Num NameLoad For TupleStore NameStore NameStore Call NameLoad NameLoad body If BoolOpAnd CompareNotIn NameLoad NameLoad CompareNotIn NameLoad NameLoad body Assign TupleStore NameStore NameStore NameStore NameStore NameStore NameStore NameStore NameStore NameStore Call AttributeLoad NameLoad attr NameLoad NameLoad NameLoad If BoolOpAnd CompareLtELtE Num Call NameLoad NameLoad Num CompareEq BinOpMult BinOpMult NameLoad NameLoad NameLoad Num CompareEq BinOpMult BinOpMult NameLoad NameLoad NameLoad Num CompareEq Call AttributeLoad NameLoad attr NameLoad Num body Expr Call AttributeLoad NameLoad attr TupleLoad NameLoad NameLoad For TupleStore NameStore NameStore NameLoad body Assign SubscriptStore SubscriptLoad NameLoad Index NameLoad Index NameLoad Num Assign NameStore ListLoad For TupleStore NameStore NameStore Call NameLoad NameLoad body If BoolOpAnd CompareNotIn NameLoad NameLoad CompareNotIn NameLoad NameLoad body Assign TupleStore NameStore NameStore NameStore NameStore NameStore NameStore NameStore NameStore NameStore Call AttributeLoad NameLoad attr NameLoad NameLoad NameLoad If BoolOpAnd CompareLtELtE Num Call NameLoad NameLoad Num CompareEq BinOpMult BinOpMult NameLoad NameLoad NameLoad Num CompareEq BinOpMult BinOpMult NameLoad NameLoad NameLoad Num CompareEq Call AttributeLoad NameLoad attr NameLoad Num body Expr Call AttributeLoad NameLoad attr TupleLoad NameLoad NameLoad For TupleStore NameStore NameStore NameLoad body Assign SubscriptStore SubscriptLoad NameLoad Index NameLoad Index NameLoad Num Return NameLoad decorator_list decorator_list ClassDef bases body FunctionDef arguments args NameParam NameParam NameParam NameParam defaults Num body Expr Str Expr Call AttributeLoad NameLoad attr Str NameLoad Str Assign AttributeStore NameLoad attr Call NameLoad NameLoad Assign AttributeStore NameLoad attr Call NameLoad NameLoad Assign AttributeStore NameLoad attr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr NameLoad Assign AttributeStore NameLoad attr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr NameLoad Assign AttributeStore NameLoad attr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign AttributeStore NameLoad attr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign AttributeStore NameLoad attr Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam defaults Num body Assign NameStore Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign NameStore Call NameLoad NameLoad Assign NameStore Call NameLoad NameLoad If BoolOpAnd CompareNotEq Call NameLoad NameLoad Num CompareNotEq Call NameLoad NameLoad Num body For TupleStore NameStore NameStore NameLoad body Assign NameStore ListLoad Assign NameStore Call AttributeLoad NameLoad attr ListLoad NameLoad NameLoad For TupleStore NameStore NameStore NameLoad body Assign NameStore Call AttributeLoad NameLoad attr ListLoad NameLoad NameLoad Expr Call AttributeLoad NameLoad attr Call AttributeLoad AttributeLoad NameLoad attr attr BinOpSub NameLoad NameLoad Assign SubscriptStore NameLoad Index TupleLoad NameLoad NameLoad Call NameLoad NameLoad orelse Expr Call AttributeLoad NameLoad attr Str NameLoad Str Return NameLoad decorator_list decorator_list ClassDef bases body FunctionDef arguments args NameParam NameParam NameParam NameParam defaults NameLoad NameLoad body Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr Call NameLoad AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr Assign AttributeStore NameLoad attr Num Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr Str Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad If CompareEq AttributeLoad NameLoad attr Num body Assign AttributeStore NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr If CompareNotEq AttributeLoad NameLoad attr Str body Assign AttributeStore NameLoad attr Call NameLoad AttributeLoad NameLoad attr Str If CompareIsNot AttributeLoad NameLoad attr NameLoad body Assign AttributeStore NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr If CompareNotEq AttributeLoad NameLoad attr Str body Assign AttributeStore NameLoad attr Call NameLoad AttributeLoad NameLoad attr Str If AttributeLoad AttributeLoad NameLoad attr attr body Assign AttributeStore NameLoad attr Call NameLoad AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr Expr Call AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr If CompareIsNot AttributeLoad NameLoad attr NameLoad body Assign AttributeStore NameLoad attr Call NameLoad AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr Expr Call AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr If BoolOpAnd CompareEq AttributeLoad NameLoad attr Num CompareIsNot AttributeLoad NameLoad attr NameLoad body Expr Call AttributeLoad NameLoad attr If CompareEq AttributeLoad NameLoad attr Num body If CompareIs AttributeLoad NameLoad attr NameLoad body Expr Call AttributeLoad NameLoad attr orelse Expr Call AttributeLoad NameLoad attr If BoolOpAnd CompareEq AttributeLoad NameLoad attr Num CompareIsNot AttributeLoad NameLoad attr NameLoad body Assign AttributeStore NameLoad attr SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Call AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr Assign AttributeStore NameLoad attr SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Call AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr If CompareEq AttributeLoad NameLoad attr Num body Assign AttributeStore NameLoad attr ListLoad Assign AttributeStore NameLoad attr ListLoad For NameStore AttributeLoad NameLoad attr body Expr Call AttributeLoad AttributeLoad NameLoad attr attr SubscriptLoad AttributeLoad NameLoad attr Index Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Expr Call AttributeLoad AttributeLoad NameLoad attr attr SubscriptLoad AttributeLoad NameLoad attr Index Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign AttributeStore NameLoad attr Str For TupleStore NameStore NameStore Call NameLoad AttributeLoad NameLoad attr body Assign NameStore Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index NameLoad Assign NameStore Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index NameLoad If CompareIs AttributeLoad NameLoad attr NameLoad body AugAssignAdd AttributeStore NameLoad attr BinOpAdd BinOpAdd BinOpAdd BinOpAdd BinOpAdd BinOpAdd BinOpAdd BinOpAdd BinOpAdd BinOpAdd Str Call NameLoad NameLoad Str Call NameLoad BinOpAdd NameLoad Num Str Call NameLoad BinOpMult AttributeLoad NameLoad attr AttributeLoad NameLoad attr Str Call NameLoad BinOpMult NameLoad AttributeLoad NameLoad attr Str Call NameLoad BinOpMult NameLoad AttributeLoad NameLoad attr Str orelse AugAssignAdd AttributeStore NameLoad attr BinOpAdd BinOpAdd BinOpAdd BinOpAdd BinOpAdd BinOpAdd BinOpAdd BinOpAdd Str Call NameLoad NameLoad Str Call NameLoad BinOpMult AttributeLoad NameLoad attr AttributeLoad NameLoad attr Str Call NameLoad BinOpMult NameLoad AttributeLoad NameLoad attr Str Call NameLoad BinOpMult NameLoad AttributeLoad NameLoad attr Str Expr Call AttributeLoad NameLoad attr BinOpAdd Str AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr Str If CompareEq AttributeLoad AttributeLoad NameLoad attr attr Num body Expr Call AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam defaults body Assign TupleStore NameStore NameStore NameStore NameStore NameStore NameStore NameStore NameStore Call NameLoad AttributeLoad NameLoad attr Assign TupleStore NameStore NameStore NameStore NameStore NameStore NameStore NameStore NameStore Call NameLoad AttributeLoad NameLoad attr Assert BoolOpAnd CompareEq NameLoad NameLoad CompareEq NameLoad NameLoad CompareEq NameLoad NameLoad Assign AttributeStore NameLoad attr NameLoad If AttributeLoad AttributeLoad NameLoad attr attr body Assign NameStore AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr Assign NameStore AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr orelse Assign NameStore Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr Assign NameStore Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr Assign AttributeStore NameLoad attr Call NameLoad NameLoad NameLoad AttributeLoad AttributeLoad NameLoad attr attr Assign AttributeStore NameLoad attr BinOpAdd BinOpAdd BinOpAdd BinOpAdd BinOpAdd BinOpAdd Str Call NameLoad BinOpMult AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr Str Call NameLoad BinOpMult AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr Str Call NameLoad BinOpMult AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr Str decorator_list FunctionDef arguments args NameParam defaults body Assign TupleStore NameStore NameStore NameStore NameStore NameStore NameStore NameStore NameStore Call NameLoad AttributeLoad NameLoad attr Assign AttributeStore NameLoad attr NameLoad If AttributeLoad AttributeLoad NameLoad attr attr body Assign NameStore AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr orelse Assign NameStore Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr Assign AttributeStore NameLoad attr ListLoad For TupleStore NameStore NameStore Call NameLoad SubscriptLoad NameLoad Slice Num body Expr Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad Call NameLoad NameLoad Call NameLoad SubscriptLoad NameLoad Index BinOpAdd NameLoad Num AttributeLoad AttributeLoad NameLoad attr attr decorator_list FunctionDef arguments args NameParam defaults body Assign TupleStore NameStore NameStore NameStore NameStore NameStore NameStore NameStore NameStore Call NameLoad AttributeLoad NameLoad attr Assign TupleStore NameStore NameStore NameStore NameStore NameStore NameStore NameStore NameStore Call NameLoad AttributeLoad NameLoad attr Assert BoolOpAnd CompareEq Call NameLoad NameLoad Num Call NameLoad NameLoad Num CompareEq Call NameLoad NameLoad Num Call NameLoad NameLoad Num Assert CompareEq NameLoad NameLoad Assign AttributeStore NameLoad attr NameLoad If AttributeLoad AttributeLoad NameLoad attr attr body Assign NameStore AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr Assign NameStore AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr orelse Assign NameStore Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr Assign NameStore Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr Assign AttributeStore NameLoad attr ListLoad For TupleStore NameStore NameStore Call NameLoad NameLoad NameLoad body Expr Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad NameLoad NameLoad AttributeLoad AttributeLoad NameLoad attr attr decorator_list FunctionDef arguments args NameParam defaults body Import alias identifier Import alias identifier Import alias identifier Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr keyword Str keyword Str keyword NameLoad Expr Call AttributeLoad NameLoad attr keyword TupleLoad Num Num Assign NameStore Dict Str Str Str ListLoad ListLoad ListLoad If CompareEq AttributeLoad NameLoad attr Num body Expr Call AttributeLoad SubscriptLoad NameLoad Index Str attr ListComp BinOpMult NameLoad AttributeLoad NameLoad attr comprehension NameStore AttributeLoad NameLoad attr Expr Call AttributeLoad SubscriptLoad NameLoad Index Str attr BinOpMult Call NameLoad AttributeLoad NameLoad attr ListLoad Num Expr Call AttributeLoad SubscriptLoad NameLoad Index Str attr BinOpMult Call NameLoad AttributeLoad NameLoad attr ListLoad Num Expr Call AttributeLoad SubscriptLoad NameLoad Index Str attr ListComp BinOpMult NameLoad AttributeLoad NameLoad attr comprehension NameStore AttributeLoad NameLoad attr Expr Call AttributeLoad SubscriptLoad NameLoad Index Str attr BinOpMult Call NameLoad AttributeLoad NameLoad attr ListLoad Num Expr Call AttributeLoad SubscriptLoad NameLoad Index Str attr BinOpMult Call NameLoad AttributeLoad NameLoad attr ListLoad Num If CompareEq AttributeLoad NameLoad attr Num body For NameStore Call NameLoad Call NameLoad AttributeLoad NameLoad attr body Expr Call AttributeLoad SubscriptLoad NameLoad Index Str attr ListComp BinOpMult NameLoad AttributeLoad NameLoad attr comprehension NameStore SubscriptLoad AttributeLoad NameLoad attr Index NameLoad Expr Call AttributeLoad SubscriptLoad NameLoad Index Str attr BinOpMult Call NameLoad SubscriptLoad AttributeLoad NameLoad attr Index NameLoad ListLoad Num Expr Call AttributeLoad SubscriptLoad NameLoad Index Str attr BinOpMult Call NameLoad SubscriptLoad AttributeLoad NameLoad attr Index NameLoad ListLoad NameLoad Expr Call AttributeLoad SubscriptLoad NameLoad Index Str attr ListComp BinOpMult NameLoad AttributeLoad NameLoad attr comprehension NameStore SubscriptLoad AttributeLoad NameLoad attr Index NameLoad Expr Call AttributeLoad SubscriptLoad NameLoad Index Str attr BinOpMult Call NameLoad SubscriptLoad AttributeLoad NameLoad attr Index NameLoad ListLoad Num Expr Call AttributeLoad SubscriptLoad NameLoad Index Str attr BinOpMult Call NameLoad SubscriptLoad AttributeLoad NameLoad attr Index NameLoad ListLoad NameLoad For NameStore Call AttributeLoad NameLoad attr body Assign SubscriptStore NameLoad Index NameLoad ListComp NameLoad comprehension NameStore SubscriptLoad NameLoad Index NameLoad comprehension NameStore NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr keyword Str keyword Str keyword Str keyword NameLoad keyword NameLoad keyword Str keyword Num Expr Call AttributeLoad NameLoad attr Str decorator_list decorator_list FunctionDef arguments args NameParam defaults body Return Call AttributeLoad NameLoad attr Call AttributeLoad CompareGt NameLoad Num attr NameLoad decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Call NameLoad AttributeLoad NameLoad attr If CompareEq NameLoad Num body Assign TupleStore NameStore NameStore NameStore Call AttributeLoad CompareGt NameLoad Num attr Assign NameStore ListComp TupleLoad SubscriptLoad NameLoad Index NameLoad SubscriptLoad NameLoad Index NameLoad SubscriptLoad NameLoad Index NameLoad comprehension NameStore Call NameLoad Num Call NameLoad NameLoad orelse If CompareEq NameLoad Num body Assign TupleStore NameStore NameStore Call AttributeLoad CompareGt NameLoad Num attr Assign NameStore ListComp TupleLoad SubscriptLoad NameLoad Index NameLoad SubscriptLoad NameLoad Index NameLoad comprehension NameStore Call NameLoad Num Call NameLoad NameLoad Return NameLoad decorator_list FunctionDef arguments args defaults body Assign NameStore Call NameLoad NameLoad Expr Call AttributeLoad AttributeLoad NameLoad attr attr Str Expr Call AttributeLoad NameLoad attr keyword Str keyword Str keyword Str keyword NameLoad keyword Str Expr Call AttributeLoad NameLoad attr keyword Str keyword Str keyword Str keyword NameLoad keyword NameLoad keyword Str Expr Call AttributeLoad NameLoad attr keyword Str keyword NameLoad keyword Str keyword NameLoad keyword Str Expr Call AttributeLoad NameLoad attr keyword Str keyword Str keyword Str keyword NameLoad keyword Num keyword ListLoad Str Str Expr Call AttributeLoad NameLoad attr keyword Str keyword NameLoad keyword Str keyword Str keyword NameLoad Expr Call AttributeLoad NameLoad attr keyword Str keyword Str keyword Str keyword NameLoad keyword Num keyword Num Expr Call AttributeLoad NameLoad attr keyword Str keyword Str keyword Str keyword NameLoad keyword Str keyword Str Expr Call AttributeLoad NameLoad attr keyword Str keyword Str keyword Str keyword NameLoad keyword Num keyword Str Return NameLoad decorator_list If CompareEq NameLoad Str body Assign NameStore Call NameLoad Assign NameStore NameLoad If AttributeLoad NameLoad attr body Print Str orelse Assign NameStore Call NameLoad Assign NameStore Call NameLoad Assign NameStore Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Slice Num Assign NameStore SubscriptLoad NameLoad Index Str Assign NameStore Str Assign NameStore Str Assign NameStore Num If CompareIn Str NameLoad body Assign NameStore SubscriptLoad NameLoad Index Str If CompareIn Str NameLoad body Assign AttributeStore NameLoad attr Call NameLoad Call NameLoad SubscriptLoad NameLoad Index Str If CompareIn Str NameLoad body Assign NameStore SubscriptLoad NameLoad Index Str If CompareIn Str NameLoad body Assign NameStore SubscriptLoad NameLoad Index Str If CompareIn Str NameLoad body Assign AttributeStore NameLoad attr Call NameLoad SubscriptLoad NameLoad Index Str Assign NameStore BinOpAdd Str Call AttributeLoad NameLoad attr Str Expr Call AttributeLoad NameLoad attr BinOpAdd Str NameLoad Assign NameStore Str Expr Call AttributeLoad NameLoad attr BinOpAdd BinOpAdd BinOpAdd BinOpAdd BinOpAdd Str NameLoad Str NameLoad Str NameLoad If CompareNotEq NameLoad Str body Assign NameStore Str Expr Call AttributeLoad NameLoad attr BinOpAdd BinOpAdd BinOpAdd BinOpAdd BinOpAdd Str NameLoad Str NameLoad Str NameLoad orelse Assign NameStore NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr NameLoad keyword NameLoad keyword Num keyword NameLoad keyword NameLoad If CompareIsNot NameLoad NameLoad body Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr NameLoad keyword NameLoad keyword Num keyword NameLoad keyword NameLoad orelse Assign NameStore NameLoad Assign NameStore Call NameLoad NameLoad keyword NameLoad keyword NameLoad Assign NameStore Call NameLoad BinOpAdd Str NameLoad Str Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr BinOpAdd Str NameLoad Expr Call AttributeLoad NameLoad attr BinOpAdd Str NameLoad Expr Call AttributeLoad NameLoad attr If AttributeLoad NameLoad attr body Expr Call AttributeLoad NameLoad attr BinOpAdd BinOpAdd BinOpAdd BinOpAdd BinOpAdd BinOpAdd Str AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr Str SubscriptLoad Call AttributeLoad NameLoad attr NameLoad Index Num Str SubscriptLoad Call AttributeLoad NameLoad attr NameLoad Index Num If CompareIsNot NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr BinOpAdd BinOpAdd BinOpAdd BinOpAdd BinOpAdd BinOpAdd Str AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr Str SubscriptLoad Call AttributeLoad NameLoad attr NameLoad Index Num Str SubscriptLoad Call AttributeLoad NameLoad attr NameLoad Index Num Expr Call AttributeLoad NameLoad attr Str
N/A N/A sys N/A time N/A os N/A numpy np N/A sct_utils sct msct_image Image get_dimension sct_image set_orientation msct_parser Parser N/A msct_gmseg_utils sct_gm Param N/A N/A __init__ N/A N/A self N/A N/A N/A N/A self debug 0 N/A N/A self thinning True N/A N/A self verbose 1 N/A N/A Thinning N/A N/A __init__ N/A N/A self im v N/A 1 N/A N/A N/A N/A sct printv Thinning ...  v normal N/A N/A self image im N/A N/A N/A self image data N/A bin_data N/A N/A self image data N/A N/A self dim_im N/A len N/A N/A N/A self image data shape N/A N/A N/A self dim_im 2 N/A N/A N/A self thinned_image N/A Image param N/A N/A self zhang_suen N/A N/A self image data absolutepath N/A N/A N/A N/A N/A self image path N/A N/A self image file_name _thinned N/A N/A self image ext hdr N/A N/A self image hdr N/A N/A N/A N/A self dim_im 3 N/A N/A N/A N/A N/A self image orientation IRP N/A thinned_data N/A N/A np asarray N/A N/A N/A self zhang_suen im_slice N/A im_slice N/A N/A self image data N/A N/A self thinned_image N/A Image param thinned_data absolutepath N/A N/A N/A N/A N/A self image path N/A N/A self image file_name _thinned N/A N/A self image ext hdr N/A N/A self image hdr N/A get_neighbours N/A N/A self x y image N/A N/A N/A 
        Return 8-neighbours of image point P1(x,y), in a clockwise order
        code from https://github.com/linbojin/Skeletonization-by-Zhang-Suen-Thinning-Algorithm
        :param x:
        :param y:
        :param image:
        :return:
         N/A N/A x_1 y_1 x1 y1 N/A N/A x 1 N/A y 1 N/A x 1 N/A y 1 N/A neighbours N/A N/A N/A image N/A x_1 N/A y N/A N/A image N/A x_1 N/A y1 N/A N/A image N/A x N/A y1 N/A N/A image N/A x1 N/A y1 N/A N/A image N/A x1 N/A y N/A N/A image N/A x1 N/A y_1 N/A N/A image N/A x N/A y_1 N/A N/A image N/A x_1 N/A y_1 N/A neighbours N/A transitions N/A N/A self neighbours N/A N/A N/A 
        No. of 0,1 patterns (transitions from 0 to 1) in the ordered sequence
        code from https://github.com/linbojin/Skeletonization-by-Zhang-Suen-Thinning-Algorithm
        :param neighbours:
        :return:
         N/A n N/A neighbours N/A neighbours N/A 0 1 N/A s N/A N/A np sum N/A N/A N/A n1 n2 N/A 0 1 N/A N/A n1 n2 N/A zip n N/A n N/A 1 N/A s N/A zhang_suen N/A N/A self image N/A N/A N/A 
        the Zhang-Suen Thinning Algorithm
        code from https://github.com/linbojin/Skeletonization-by-Zhang-Suen-Thinning-Algorithm
        :param image:
        :return:
         N/A image_thinned N/A N/A image copy N/A changing1 changing2 1 N/A N/A changing1 changing2 N/A N/A changing1 N/A N/A max N/A N/A len image_thinned 1 N/A pass_list N/A 1 max N/A N/A x y N/A non_zero_coord image_thinned N/A N/A N/A N/A x pass_list N/A y pass_list N/A N/A N/A P2 P3 P4 P5 P6 P7 P8 P9 n N/A N/A self get_neighbours x y image_thinned N/A N/A N/A 2 N/A sum n 6 N/A N/A N/A P2 P4 P6 0 N/A N/A N/A P4 P6 P8 0 N/A N/A N/A self transitions n 1 N/A N/A N/A N/A changing1 append N/A x y N/A N/A x y changing1 N/A N/A N/A N/A image_thinned N/A x N/A y 0 N/A changing2 N/A N/A N/A x y N/A non_zero_coord image_thinned N/A N/A N/A N/A x pass_list N/A y pass_list N/A N/A N/A P2 P3 P4 P5 P6 P7 P8 P9 n N/A N/A self get_neighbours x y image_thinned N/A N/A N/A 2 N/A sum n 6 N/A N/A N/A P2 P4 P8 0 N/A N/A N/A P2 P6 P8 0 N/A N/A N/A self transitions n 1 N/A N/A N/A N/A changing2 append N/A x y N/A N/A x y changing2 N/A N/A N/A N/A image_thinned N/A x N/A y 0 N/A image_thinned N/A N/A HausdorffDistance N/A N/A __init__ N/A N/A self data1 data2 v N/A 1 N/A N/A 
        the hausdorff distance between two sets is the maximum of the distances from a point in any of the sets to the nearest point in the other set
        :return:
         N/A N/A N/A sct printv Computing 2D Hausdorff's distance ...  v normal N/A N/A self data1 N/A bin_data data1 N/A N/A self data2 N/A bin_data data2 N/A N/A self min_distances_1 N/A N/A self relative_hausdorff_dist N/A self data1 N/A self data2 v N/A N/A self min_distances_2 N/A N/A self relative_hausdorff_dist N/A self data2 N/A self data1 v N/A N/A self h1 N/A N/A np max N/A self min_distances_1 N/A N/A self h2 N/A N/A np max N/A self min_distances_2 N/A N/A self H N/A max N/A self h1 N/A self h2 N/A relative_hausdorff_dist N/A N/A self dat1 dat2 v N/A 1 N/A N/A h N/A N/A np zeros N/A dat1 shape N/A nz_coord_1 N/A non_zero_coord dat1 N/A nz_coord_2 N/A non_zero_coord dat2 N/A N/A N/A N/A len nz_coord_1 0 N/A N/A len nz_coord_2 0 N/A N/A N/A x1 y1 nz_coord_1 N/A N/A d_p1_dat2 N/A N/A p1 N/A N/A np asarray N/A x1 y1 N/A N/A x2 y2 nz_coord_2 N/A N/A p2 N/A N/A np asarray N/A x2 y2 N/A N/A N/A d_p1_dat2 append N/A N/A N/A np linalg norm N/A p1 p2 N/A N/A h N/A N/A x1 y1 N/A min d_p1_dat2 N/A N/A N/A N/A sct printv Warning: an image is empty v warning N/A h N/A N/A ComputeDistances N/A N/A __init__ N/A N/A self im1 im2 param N/A None None N/A N/A N/A self im1 im1 N/A N/A self im2 im2 N/A N/A self dim_im N/A len N/A N/A N/A self im1 data shape N/A N/A self dim_pix 0 N/A N/A self distances None N/A N/A self res N/A N/A self param param N/A N/A self dist1_distribution None N/A N/A self dist2_distribution None N/A N/A N/A self dim_im 3 N/A N/A N/A self orientation1 N/A N/A self im1 orientation N/A N/A N/A self orientation1 IRP N/A N/A N/A self im1 N/A set_orientation N/A self im1 IRP N/A N/A N/A self im2 None N/A N/A N/A self orientation2 N/A N/A self im2 orientation N/A N/A N/A self orientation2 IRP N/A N/A N/A self im2 N/A set_orientation N/A self im2 IRP N/A N/A N/A self param thinning N/A N/A N/A self thinning1 N/A Thinning N/A self im1 N/A N/A self param verbose N/A N/A N/A N/A N/A self thinning1 thinned_image save N/A N/A N/A self im2 None N/A N/A N/A self thinning2 N/A Thinning N/A self im2 N/A N/A self param verbose N/A N/A N/A N/A N/A self thinning2 thinned_image save N/A N/A N/A N/A self dim_im 2 N/A N/A self im2 None N/A N/A N/A N/A self compute_dist_2im_2d N/A N/A N/A self dim_im 3 N/A N/A N/A N/A self im2 None N/A N/A N/A N/A self compute_dist_1im_3d N/A N/A N/A N/A self compute_dist_2im_3d N/A N/A N/A N/A self dim_im 2 N/A N/A self distances None N/A N/A N/A self dist1_distribution N/A N/A N/A self distances min_distances_1 N/A N/A N/A np nonzero N/A N/A self distances min_distances_1 N/A N/A self dist2_distribution N/A N/A N/A self distances min_distances_2 N/A N/A N/A np nonzero N/A N/A self distances min_distances_2 N/A N/A N/A self dim_im 3 N/A N/A N/A self dist1_distribution N/A N/A N/A self dist2_distribution N/A N/A d N/A self distances N/A N/A N/A N/A N/A self dist1_distribution append N/A N/A d min_distances_1 N/A N/A N/A np nonzero N/A d min_distances_1 N/A N/A N/A N/A self dist2_distribution append N/A N/A d min_distances_2 N/A N/A N/A np nonzero N/A d min_distances_2 N/A N/A self res Hausdorff's distance  -  First relative Hausdorff's distance median - Second relative Hausdorff's distance median(all in mm)
 N/A N/A i d N/A enumerate N/A self distances N/A N/A med1 N/A N/A np median N/A N/A self dist1_distribution N/A i N/A med2 N/A N/A np median N/A N/A self dist2_distribution N/A i N/A N/A N/A self im2 None N/A N/A N/A self res N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A Slice  N/A str i  - slice  N/A str N/A i 1 :  N/A str N/A N/A d H N/A self dim_pix   -   N/A str N/A med1 N/A self dim_pix   -   N/A str N/A med2 N/A self dim_pix N/A N/A N/A self res N/A N/A N/A N/A N/A N/A N/A N/A Slice  N/A str i :  N/A str N/A N/A d H N/A self dim_pix   -   N/A str N/A med1 N/A self dim_pix   -   N/A str N/A med2 N/A self dim_pix N/A N/A N/A sct printv N/A -----------------------------------------------------------------------------
 N/A self res N/A N/A self param verbose normal N/A N/A N/A N/A self param verbose 2 N/A N/A N/A N/A self show_results N/A compute_dist_2im_2d N/A N/A self N/A N/A N/A N/A nx1 ny1 nz1 nt1 px1 py1 pz1 pt1 N/A get_dimension N/A self im1 N/A N/A nx2 ny2 nz2 nt2 px2 py2 pz2 pt2 N/A get_dimension N/A self im2 N/A N/A N/A px1 px2 N/A py1 py2 N/A px1 py1 N/A N/A self dim_pix py1 N/A N/A N/A self param thinning N/A N/A dat1 N/A N/A N/A self thinning1 thinned_image data N/A dat2 N/A N/A N/A self thinning2 thinned_image data N/A N/A dat1 N/A bin_data N/A N/A self im1 data N/A dat2 N/A bin_data N/A N/A self im2 data N/A N/A self distances N/A HausdorffDistance dat1 dat2 N/A N/A self param verbose N/A N/A self res N/A N/A N/A N/A N/A N/A Hausdorff's distance :  N/A str N/A N/A N/A self distances H N/A self dim_pix  mm

First relative Hausdorff's distance :  N/A str N/A N/A N/A self distances h1 N/A self dim_pix  mm
Second relative Hausdorff's distance :  N/A str N/A N/A N/A self distances h2 N/A self dim_pix  mm N/A compute_dist_1im_3d N/A N/A self N/A N/A N/A N/A nx1 ny1 nz1 nt1 px1 py1 pz1 pt1 N/A get_dimension N/A self im1 N/A N/A self dim_pix py1 N/A N/A N/A self param thinning N/A N/A dat1 N/A N/A N/A self thinning1 thinned_image data N/A N/A dat1 N/A bin_data N/A N/A self im1 data N/A N/A self distances N/A N/A N/A i dat_slice N/A enumerate N/A dat1 N/A -1 N/A N/A N/A N/A N/A self distances append N/A HausdorffDistance N/A bin_data dat_slice N/A bin_data N/A dat1 N/A N/A i 1 N/A N/A self param verbose N/A compute_dist_2im_3d N/A N/A self N/A N/A N/A N/A nx1 ny1 nz1 nt1 px1 py1 pz1 pt1 N/A get_dimension N/A self im1 N/A N/A nx2 ny2 nz2 nt2 px2 py2 pz2 pt2 N/A get_dimension N/A self im2 N/A N/A N/A N/A round pz1 5 N/A round pz2 5 N/A N/A round py1 5 N/A round py2 5 N/A N/A nx1 nx2 N/A N/A self dim_pix py1 N/A N/A N/A self param thinning N/A N/A dat1 N/A N/A N/A self thinning1 thinned_image data N/A dat2 N/A N/A N/A self thinning2 thinned_image data N/A N/A dat1 N/A bin_data N/A N/A self im1 data N/A dat2 N/A bin_data N/A N/A self im2 data N/A N/A self distances N/A N/A N/A slice1 slice2 N/A zip dat1 dat2 N/A N/A N/A N/A N/A self distances append N/A HausdorffDistance slice1 slice2 N/A N/A self param verbose N/A show_results N/A N/A self N/A N/A N/A seaborn sns N/A matplotlib.pyplot plt N/A pandas pd N/A N/A N/A plt hold True N/A N/A N/A sns set style whitegrid palette pastel color_codes True N/A N/A N/A plt figure figsize N/A 35 20 N/A data_dist N/A distances image slice N/A N/A N/A N/A N/A N/A self dim_im 2 N/A N/A N/A N/A N/A data_dist N/A distances append N/A N/A dist N/A self dim_pix N/A dist N/A self dist1_distribution N/A N/A N/A N/A data_dist N/A image append N/A N/A len N/A self dist1_distribution N/A 1 N/A N/A N/A N/A data_dist N/A slice append N/A N/A len N/A self dist1_distribution N/A 0 N/A N/A N/A N/A data_dist N/A distances append N/A N/A dist N/A self dim_pix N/A dist N/A self dist2_distribution N/A N/A N/A N/A data_dist N/A image append N/A N/A len N/A self dist2_distribution N/A 2 N/A N/A N/A N/A data_dist N/A slice append N/A N/A len N/A self dist2_distribution N/A 0 N/A N/A N/A self dim_im 3 N/A N/A i N/A range N/A len N/A self distances N/A N/A N/A N/A N/A data_dist N/A distances append N/A N/A dist N/A self dim_pix N/A dist N/A N/A self dist1_distribution N/A i N/A N/A N/A N/A data_dist N/A image append N/A N/A len N/A N/A self dist1_distribution N/A i N/A 1 N/A N/A N/A N/A data_dist N/A slice append N/A N/A len N/A N/A self dist1_distribution N/A i N/A i N/A N/A N/A N/A data_dist N/A distances append N/A N/A dist N/A self dim_pix N/A dist N/A N/A self dist2_distribution N/A i N/A N/A N/A N/A data_dist N/A image append N/A N/A len N/A N/A self dist2_distribution N/A i N/A 2 N/A N/A N/A N/A data_dist N/A slice append N/A N/A len N/A N/A self dist2_distribution N/A i N/A i N/A k N/A N/A data_dist keys N/A N/A N/A data_dist N/A k N/A item N/A sublist N/A data_dist N/A k N/A item sublist N/A data_dist N/A N/A pd DataFrame data_dist N/A N/A N/A sns violinplot x slice y distances hue image data data_dist split True inner point cut 0 N/A N/A N/A plt savefig violin_plot.png N/A N/A bin_data N/A N/A data N/A N/A N/A N/A N/A np asarray N/A N/A N/A data 0 astype int N/A non_zero_coord N/A N/A data N/A N/A N/A dim N/A len N/A data shape N/A N/A dim 3 N/A N/A N/A X Y Z N/A N/A N/A data 0 nonzero N/A list_coordinates N/A N/A N/A X N/A i N/A Y N/A i N/A Z N/A i N/A i N/A range 0 N/A len X N/A N/A N/A dim 2 N/A N/A N/A X Y N/A N/A N/A data 0 nonzero N/A list_coordinates N/A N/A N/A X N/A i N/A Y N/A i N/A i N/A range 0 N/A len X N/A list_coordinates N/A get_parser N/A N/A N/A N/A N/A parser N/A Parser __file__ N/A N/A N/A N/A parser usage set_description Compute the Hausdorff's distance between two binary images which can be thinned (ie skeletonized)If only one image is inputted, it will be only thinned N/A N/A N/A parser add_option name -i type_value file description First Image on which you want to find the skeleton mandatory True example t2star_manual_gmseg.nii.gz N/A N/A N/A parser add_option name -d type_value file description Second Image on which you want to find the skeleton mandatory False default_value None example t2star_manual_gmseg.nii.gz N/A N/A N/A parser add_option name -r type_value None description Second Image on which you want to find the skeleton mandatory False deprecated_by -d N/A N/A N/A parser add_option name -thinning type_value multiple_choice description Thinning : find the skeleton of the binary images using the Zhang-Suen algorithm (1984) and use it to compute the hausdorff's distance mandatory False default_value 1 example N/A 0 1 N/A N/A N/A parser add_option name -t type_value None description Thinning : find the skeleton of the binary images using the Zhang-Suen algorithm (1984) and use it to compute the hausdorff's distance deprecated_by -thinning mandatory False N/A N/A N/A parser add_option name -resampling type_value float description pixel size in mm to resample to mandatory False default_value 0.1 example 0.5 N/A N/A N/A parser add_option name -o type_value file_output description Name of the output file mandatory False default_value hausdorff_distance.txt example my_hausdorff_dist.txt N/A N/A N/A parser add_option name -v type_value int description verbose: 0 = nothing, 1 = classic, 2 = expended mandatory False default_value 0 example 1 N/A parser N/A N/A N/A __name__ __main__ N/A N/A param N/A Param N/A input_fname None N/A N/A param debug N/A N/A 
*** WARNING: DEBUG MODE ON ***
 N/A N/A param_default N/A Param N/A parser N/A get_parser N/A arguments N/A N/A parser parse N/A N/A sys argv N/A 1 N/A input_fname N/A arguments N/A -i N/A input_second_fname N/A output_fname hausdorff_distance.txt N/A resample_to 0.1 N/A N/A -d arguments N/A N/A input_second_fname N/A arguments N/A -d N/A N/A -thinning arguments N/A N/A N/A param thinning N/A bool N/A int N/A arguments N/A -thinning N/A N/A -resampling arguments N/A N/A resample_to N/A arguments N/A -resampling N/A N/A -o arguments N/A N/A output_fname N/A arguments N/A -o N/A N/A -v arguments N/A N/A N/A param verbose N/A int N/A arguments N/A -v N/A tmp_dir N/A tmp_ N/A N/A time strftime %y%m%d%H%M%S N/A N/A N/A sct run N/A mkdir  tmp_dir N/A im1_name im1.nii.gz N/A N/A N/A sct run N/A N/A N/A N/A N/A cp  input_fname tmp_dir / im1_name N/A N/A input_second_fname N/A N/A im2_name im2.nii.gz N/A N/A N/A sct run N/A N/A N/A N/A N/A cp  input_second_fname tmp_dir / im2_name N/A N/A im2_name None N/A N/A N/A os chdir tmp_dir N/A input_im1 N/A Image N/A N/A sct_gm resample_image im1_name binary True thr 0.5 npx resample_to npy resample_to N/A N/A im2_name None N/A N/A input_im2 N/A Image N/A N/A sct_gm resample_image im2_name binary True thr 0.5 npx resample_to npy resample_to N/A N/A input_im2 None N/A computation N/A ComputeDistances input_im1 im2 input_im2 param param N/A res_fic N/A open N/A ../ output_fname w N/A N/A N/A res_fic write N/A computation res N/A N/A N/A res_fic write N/A 

Input 1:  input_fname N/A N/A N/A res_fic write N/A 
Input 2:  input_second_fname N/A N/A N/A res_fic close N/A N/A param thinning N/A N/A N/A N/A sct run N/A N/A N/A N/A N/A N/A cp  N/A N/A N/A computation thinning1 thinned_image file_name N/A N/A N/A computation thinning1 thinned_image ext  ../ N/A N/A N/A sct extract_fname input_fname N/A 1 _thinned N/A N/A N/A sct extract_fname input_fname N/A 2 N/A N/A im2_name None N/A N/A N/A N/A sct run N/A N/A N/A N/A N/A N/A cp  N/A N/A N/A computation thinning2 thinned_image file_name N/A N/A N/A computation thinning2 thinned_image ext  ../ N/A N/A N/A sct extract_fname input_second_fname N/A 1 _thinned N/A N/A N/A sct extract_fname input_second_fname N/A 2 N/A N/A N/A os chdir ..