def network_sketch(ax, highlight=None, labels=True, yscaling=<NUM_LIT:1.>):
name_to_id_mapping={'<STR_LIT>':(<NUM_LIT:0>,<NUM_LIT:0>),<EOL>'<STR_LIT>':(<NUM_LIT:0>,<NUM_LIT:1>),<EOL>'<STR_LIT>':(<NUM_LIT:1>,<NUM_LIT:0>),<EOL>'<STR_LIT>':(<NUM_LIT:1>,<NUM_LIT:1>),<EOL>'<STR_LIT>':(<NUM_LIT:2>,<NUM_LIT:0>),<EOL>'<STR_LIT>':(<NUM_LIT:2>,<NUM_LIT:1>),<EOL>'<STR_LIT>':(<NUM_LIT:3>,<NUM_LIT:0>),<EOL>'<STR_LIT>':(<NUM_LIT:3>,<NUM_LIT:1>)<EOL>} <EOL>showgrid=False  <EOL>layer_x=<NUM_LIT:0.1>                            <EOL>layer6_y=<NUM_LIT>*yscaling                           <EOL>layer_width=<NUM_LIT>                       <EOL>layer_height=<NUM_LIT>*yscaling                      <EOL>layer_colors=['<STR_LIT>','<STR_LIT>','<STR_LIT>','<STR_LIT>'] <EOL>c_pop_size=<NUM_LIT>                        <EOL>c_pop_dist=<NUM_LIT>                        <EOL>t_pop_size=<NUM_LIT>                        <EOL>t_pop_y=<NUM_LIT:0.0>                         <EOL>axon_cell_sep=<NUM_LIT>                     <EOL>cc_input_y=<NUM_LIT>*yscaling                        <EOL>tc_input_y=<NUM_LIT>*yscaling                         <EOL>exc_clr = '<STR_LIT:k>' if analysis_params.bw else analysis_params.colorE                            <EOL>inh_clr = '<STR_LIT>' if analysis_params.bw else analysis_params.colorI                            <EOL>lw_pop=<NUM_LIT:0.5>                              <EOL>lw_axons=<NUM_LIT>                           <EOL>arrow_size=<NUM_LIT>                       <EOL>conn_radius=<NUM_LIT>                      <EOL>legend_length=<NUM_LIT>                     <EOL>colors = phlp.get_colors(<NUM_LIT:8>)[::-<NUM_LIT:1>]            <EOL>fontdict1={'<STR_LIT>': <NUM_LIT:6>, <EOL>'<STR_LIT>':'<STR_LIT>',<EOL>'<STR_LIT>':'<STR_LIT>',<EOL>'<STR_LIT>':'<STR_LIT>'}<EOL>fontdict2={'<STR_LIT>': <NUM_LIT:6>, <EOL>'<STR_LIT>':'<STR_LIT>',<EOL>'<STR_LIT>':'<STR_LIT>',<EOL>'<STR_LIT>':'<STR_LIT>'}<EOL>fontdict3={'<STR_LIT>': <NUM_LIT:6>, <EOL>'<STR_LIT>':'<STR_LIT>',<EOL>'<STR_LIT>':'<STR_LIT:left>',<EOL>'<STR_LIT>':'<STR_LIT>'}<EOL>def draw_box(ax,pos,lw=<NUM_LIT:1.>,ls='<STR_LIT>',eclr='<STR_LIT:k>',fclr='<STR_LIT:w>',zorder=<NUM_LIT:0>, clip_on=False,<EOL>boxstyle=patches.BoxStyle("<STR_LIT>", pad=<NUM_LIT:0.0>), padadjust=<NUM_LIT:0.>):<EOL><INDENT>'''<STR_LIT>'''    <EOL>rect = patches.FancyBboxPatch((pos[<NUM_LIT:0>]+padadjust, pos[<NUM_LIT:1>]+padadjust),<EOL>pos[<NUM_LIT:2>]-<NUM_LIT:2>*padadjust, pos[<NUM_LIT:3>]-<NUM_LIT:2>*padadjust, ec=eclr, fc=fclr,<EOL>lw=lw, ls=ls, zorder=zorder, clip_on=clip_on,<EOL>boxstyle=boxstyle)<EOL>ax.add_patch(rect)<EOL><DEDENT>def draw_circle(ax,xy,radius,lw=<NUM_LIT:1.>,ls='<STR_LIT>',eclr='<STR_LIT:k>',fclr='<STR_LIT:w>',zorder=<NUM_LIT:0>):<EOL><INDENT>'''<STR_LIT>'''    <EOL>circ = plt.Circle((xy[<NUM_LIT:0>],xy[<NUM_LIT:1>]),radius=radius, ec=eclr,fc=fclr,lw=lw,ls=ls,zorder=zorder)<EOL>ax.add_patch(circ)<EOL><DEDENT>def put_text(ax,xy,txt,clr,fontdict,zorder=<NUM_LIT:10>):<EOL><INDENT>'''<STR_LIT>'''<EOL>ax.text(xy[<NUM_LIT:0>],xy[<NUM_LIT:1>],txt,fontdict=fontdict,color=clr,zorder=zorder)<EOL><DEDENT>def draw_line(ax,path,lw=<NUM_LIT:1.>,ls='<STR_LIT>',lclr='<STR_LIT:k>',zorder=<NUM_LIT:0>):<EOL><INDENT>'''<STR_LIT>'''<EOL>pth = Path(np.array(path))        <EOL>patch = patches.PathPatch(pth, fill=False, lw=lw,ls=ls,ec=lclr,fc=lclr,zorder=zorder)<EOL>ax.add_patch(patch)<EOL><DEDENT>def draw_arrow(ax,path,lw=<NUM_LIT:1.0>,ls='<STR_LIT>',lclr='<STR_LIT:k>',arrow_size=<NUM_LIT>,zorder=<NUM_LIT:0>):<EOL><INDENT>'''<STR_LIT>'''<EOL>x=path[-<NUM_LIT:2>][<NUM_LIT:0>]<EOL>y=path[-<NUM_LIT:2>][<NUM_LIT:1>]<EOL>dx=path[-<NUM_LIT:1>][<NUM_LIT:0>]-path[-<NUM_LIT:2>][<NUM_LIT:0>]<EOL>dy=path[-<NUM_LIT:1>][<NUM_LIT:1>]-path[-<NUM_LIT:2>][<NUM_LIT:1>]<EOL>D=np.array([dx,dy])<EOL>D=D/np.sqrt(D[<NUM_LIT:0>]**<NUM_LIT:2>+D[<NUM_LIT:1>]**<NUM_LIT:2>)<EOL>path2=np.array(path).copy()<EOL>path2[-<NUM_LIT:1>,:]=path2[-<NUM_LIT:1>,:]-arrow_size*D<EOL>pth = Path(np.array(path2))<EOL>patch = patches.PathPatch(pth, fill=False, lw=lw,ls=ls,ec=lclr,fc=lclr,zorder=zorder)<EOL>ax.add_patch(patch)<EOL>arr=patches.FancyArrow(x,y,dx,dy,length_includes_head=True,width=<NUM_LIT:0.0>,head_width=arrow_size,overhang=<NUM_LIT>,ec=lclr,fc=lclr,linewidth=<NUM_LIT:0>)<EOL>ax.add_patch(arr)<EOL><DEDENT>layer_pos=[]<EOL>c_pop_pos=[]<EOL>for i in range(<NUM_LIT:4>):<EOL><INDENT>layer_pos+=[[layer_x,layer6_y+i*layer_height*yscaling,layer_width,layer_height]] <EOL>draw_box(ax,layer_pos[i],lw=<NUM_LIT:0.>,fclr=layer_colors[i],zorder=<NUM_LIT:0>)<EOL>l_margin=(layer_width-<NUM_LIT>*c_pop_size-c_pop_dist)/<NUM_LIT><EOL>b_margin=(layer_height-c_pop_size)/<NUM_LIT><EOL>c_pop_pos+=[[ [layer_pos[i][<NUM_LIT:0>] + l_margin,<EOL>layer_pos[i][<NUM_LIT:1>] + b_margin,<EOL>c_pop_size, c_pop_size], <EOL>[layer_pos[i][<NUM_LIT:0>] + l_margin + c_pop_size + c_pop_dist,<EOL>layer_pos[i][<NUM_LIT:1>] + b_margin,<EOL>c_pop_size, c_pop_size]  ]] <EOL>draw_box(ax,c_pop_pos[i][<NUM_LIT:0>],lw=lw_pop,eclr='<STR_LIT:k>',fclr=colors[i*<NUM_LIT:2>+<NUM_LIT:1>],zorder=<NUM_LIT:2>,<EOL>boxstyle=patches.BoxStyle("<STR_LIT>", pad=<NUM_LIT>), padadjust=<NUM_LIT>) <EOL>draw_box(ax,c_pop_pos[i][<NUM_LIT:1>],lw=lw_pop,eclr='<STR_LIT:k>',fclr=colors[i*<NUM_LIT:2>],zorder=<NUM_LIT:2>,<EOL>boxstyle=patches.BoxStyle("<STR_LIT>", pad=<NUM_LIT>), padadjust=<NUM_LIT>) <EOL><DEDENT>c_center_x=layer_x+layer_width/<NUM_LIT> <EOL>t_pos=[c_center_x-t_pop_size/<NUM_LIT>,t_pop_y*yscaling,t_pop_size,t_pop_size] <EOL>draw_box(ax,t_pos,lw=lw_pop,eclr='<STR_LIT:k>',fclr='<STR_LIT:k>',zorder=<NUM_LIT:2>,<EOL>boxstyle=patches.BoxStyle("<STR_LIT>", pad=<NUM_LIT>), padadjust=<NUM_LIT>) <EOL>axon_x_dist=(c_pop_dist-<NUM_LIT>*axon_cell_sep)/<NUM_LIT><EOL>assert(axon_x_dist><NUM_LIT:0.>)<EOL>axon_y_dist=c_pop_size/<NUM_LIT><EOL>c_axon_x=[]<EOL>c_axon_y=[]<EOL>for i in range(<NUM_LIT:4>): <EOL><INDENT>exc=c_pop_pos[i][<NUM_LIT:0>][<NUM_LIT:0>]+c_pop_size+axon_cell_sep+i*axon_x_dist <EOL>inh=exc+<NUM_LIT>*axon_x_dist <EOL>c_axon_x+=[[exc,inh]]<EOL><DEDENT>for i in range(<NUM_LIT:4>): <EOL><INDENT>c_axon_y+=[[]]<EOL>for j in range(<NUM_LIT:4>): <EOL><INDENT>exc=c_pop_pos[i][<NUM_LIT:0>][<NUM_LIT:1>]+(j+<NUM_LIT:1.>)*axon_y_dist <EOL>inh=c_pop_pos[i][<NUM_LIT:0>][<NUM_LIT:1>]+c_pop_size-(j+<NUM_LIT:1.>)*axon_y_dist <EOL>c_axon_y[i]+=[[exc,inh]]<EOL><DEDENT><DEDENT>for i in range(<NUM_LIT:4>):<EOL><INDENT>draw_line(ax,[[c_axon_x[i][<NUM_LIT:0>],c_axon_y[<NUM_LIT:0>][i][<NUM_LIT:0>]],[c_axon_x[i][<NUM_LIT:0>],c_axon_y[-<NUM_LIT:1>][i][<NUM_LIT:0>]]],lw=lw_axons,ls='<STR_LIT>',lclr=exc_clr,zorder=<NUM_LIT:1>)<EOL>draw_line(ax,[[c_axon_x[i][<NUM_LIT:1>],c_axon_y[<NUM_LIT:0>][i][<NUM_LIT:1>]],[c_axon_x[i][<NUM_LIT:1>],c_axon_y[-<NUM_LIT:1>][i][<NUM_LIT:1>]]],lw=lw_axons,ls='<STR_LIT>',lclr=inh_clr,zorder=<NUM_LIT:0>)<EOL><DEDENT>for i in range(<NUM_LIT:4>): <EOL><INDENT>for j in range(<NUM_LIT:4>): <EOL><INDENT>path=[[c_axon_x[j][<NUM_LIT:0>],c_axon_y[i][j][<NUM_LIT:0>]],[c_pop_pos[i][<NUM_LIT:0>][<NUM_LIT:0>]+c_pop_size,c_axon_y[i][j][<NUM_LIT:0>]]]        <EOL>draw_arrow(ax,path,lw=lw_axons,ls='<STR_LIT>',lclr=exc_clr,arrow_size=arrow_size,zorder=<NUM_LIT:1>)<EOL>path=[[c_axon_x[j][<NUM_LIT:0>],c_axon_y[i][j][<NUM_LIT:0>]],[c_pop_pos[i][<NUM_LIT:1>][<NUM_LIT:0>],c_axon_y[i][j][<NUM_LIT:0>]]]        <EOL>draw_arrow(ax,path,lw=lw_axons,ls='<STR_LIT>',lclr=exc_clr,arrow_size=arrow_size,zorder=<NUM_LIT:1>)<EOL>path=[[c_axon_x[j][<NUM_LIT:1>],c_axon_y[i][j][<NUM_LIT:1>]],[c_pop_pos[i][<NUM_LIT:1>][<NUM_LIT:0>],c_axon_y[i][j][<NUM_LIT:1>]]]<EOL>draw_arrow(ax,path,lw=lw_axons,ls='<STR_LIT>',lclr=inh_clr,arrow_size=arrow_size,zorder=<NUM_LIT:0>)<EOL>path=[[c_axon_x[j][<NUM_LIT:1>],c_axon_y[i][j][<NUM_LIT:1>]],[c_pop_pos[i][<NUM_LIT:0>][<NUM_LIT:0>]+c_pop_size,c_axon_y[i][j][<NUM_LIT:1>]]]<EOL>draw_arrow(ax,path,lw=lw_axons,ls='<STR_LIT>',lclr=inh_clr,arrow_size=arrow_size,zorder=<NUM_LIT:0>)<EOL>draw_circle(ax,[c_axon_x[j][<NUM_LIT:0>],c_axon_y[i][j][<NUM_LIT:0>]],conn_radius,lw=<NUM_LIT:0>,fclr=exc_clr,zorder=<NUM_LIT:0>)<EOL>draw_circle(ax,[c_axon_x[j][<NUM_LIT:1>],c_axon_y[i][j][<NUM_LIT:1>]],conn_radius,lw=<NUM_LIT:0>,fclr=inh_clr,zorder=<NUM_LIT:0>)        <EOL><DEDENT><DEDENT>for i in range(<NUM_LIT:4>):<EOL><INDENT>path=[[c_pop_pos[i][<NUM_LIT:0>][<NUM_LIT:0>]+c_pop_size/<NUM_LIT>,c_pop_pos[i][<NUM_LIT:0>][<NUM_LIT:1>]],<EOL>[c_pop_pos[i][<NUM_LIT:0>][<NUM_LIT:0>]+c_pop_size/<NUM_LIT>,c_pop_pos[i][<NUM_LIT:0>][<NUM_LIT:1>]-axon_y_dist],<EOL>[c_axon_x[i][<NUM_LIT:0>],c_pop_pos[i][<NUM_LIT:0>][<NUM_LIT:1>]-axon_y_dist]]<EOL>draw_line(ax,path,lw=lw_axons,ls='<STR_LIT>',lclr=exc_clr,zorder=<NUM_LIT:1>)  <EOL>draw_circle(ax,path[-<NUM_LIT:1>],conn_radius,lw=<NUM_LIT:0>,fclr=exc_clr,zorder=<NUM_LIT:0>) <EOL>path=[[c_pop_pos[i][<NUM_LIT:1>][<NUM_LIT:0>]+c_pop_size/<NUM_LIT>,c_pop_pos[i][<NUM_LIT:1>][<NUM_LIT:1>]],<EOL>[c_pop_pos[i][<NUM_LIT:1>][<NUM_LIT:0>]+c_pop_size/<NUM_LIT>,c_pop_pos[i][<NUM_LIT:1>][<NUM_LIT:1>]-axon_y_dist],<EOL>[c_axon_x[-<NUM_LIT:1>-i][<NUM_LIT:1>],c_pop_pos[i][<NUM_LIT:1>][<NUM_LIT:1>]-axon_y_dist]]<EOL>draw_line(ax,path,lw=lw_axons,ls='<STR_LIT>',lclr=inh_clr,zorder=<NUM_LIT:1>)  <EOL>draw_circle(ax,path[-<NUM_LIT:1>],conn_radius,lw=<NUM_LIT:0>,fclr=inh_clr,zorder=<NUM_LIT:0>) <EOL><DEDENT>path=[[c_axon_x[<NUM_LIT:0>][<NUM_LIT:0>],c_pop_pos[<NUM_LIT:0>][<NUM_LIT:0>][<NUM_LIT:1>]-axon_y_dist],[c_axon_x[<NUM_LIT:0>][<NUM_LIT:0>],c_axon_y[<NUM_LIT:0>][<NUM_LIT:0>][<NUM_LIT:0>]]]        <EOL>draw_line(ax,path,lw=lw_axons,ls='<STR_LIT>',lclr=exc_clr,zorder=<NUM_LIT:0>)        <EOL>path=[[c_axon_x[-<NUM_LIT:1>][<NUM_LIT:1>],c_pop_pos[<NUM_LIT:0>][<NUM_LIT:1>][<NUM_LIT:1>]-axon_y_dist],[c_axon_x[-<NUM_LIT:1>][<NUM_LIT:1>],c_axon_y[<NUM_LIT:0>][<NUM_LIT:0>][<NUM_LIT:1>]]]        <EOL>draw_line(ax,path,lw=lw_axons,ls='<STR_LIT>',lclr=inh_clr,zorder=<NUM_LIT:0>)        <EOL>path=[[<NUM_LIT:0.>,c_pop_pos[-<NUM_LIT:1>][<NUM_LIT:0>][<NUM_LIT:1>]+c_pop_size+axon_cell_sep],<EOL>[c_pop_pos[-<NUM_LIT:1>][<NUM_LIT:1>][<NUM_LIT:0>]+c_pop_size+axon_cell_sep,c_pop_pos[-<NUM_LIT:1>][<NUM_LIT:0>][<NUM_LIT:1>]+c_pop_size+axon_cell_sep]]<EOL>draw_line(ax,path,lw=lw_axons,ls='<STR_LIT>',lclr=exc_clr,zorder=<NUM_LIT:1>)<EOL>path=[[c_pop_pos[-<NUM_LIT:1>][<NUM_LIT:0>][<NUM_LIT:0>]-axon_cell_sep,c_pop_pos[-<NUM_LIT:1>][<NUM_LIT:0>][<NUM_LIT:1>]+c_pop_size+axon_cell_sep],<EOL>[c_pop_pos[-<NUM_LIT:1>][<NUM_LIT:0>][<NUM_LIT:0>]-axon_cell_sep,c_pop_pos[<NUM_LIT:0>][<NUM_LIT:0>][<NUM_LIT:1>]+cc_input_y*c_pop_size]]<EOL>draw_line(ax,path,lw=lw_axons,ls='<STR_LIT>',lclr=exc_clr,zorder=<NUM_LIT:1>) <EOL>draw_circle(ax,path[<NUM_LIT:0>],conn_radius,lw=<NUM_LIT:0>,fclr=exc_clr,zorder=<NUM_LIT:0>) <EOL>path=[[c_pop_pos[-<NUM_LIT:1>][<NUM_LIT:1>][<NUM_LIT:0>]+c_pop_size+axon_cell_sep,c_pop_pos[-<NUM_LIT:1>][<NUM_LIT:0>][<NUM_LIT:1>]+c_pop_size+axon_cell_sep],<EOL>[c_pop_pos[-<NUM_LIT:1>][<NUM_LIT:1>][<NUM_LIT:0>]+c_pop_size+axon_cell_sep,c_pop_pos[<NUM_LIT:0>][<NUM_LIT:0>][<NUM_LIT:1>]+cc_input_y*c_pop_size]]<EOL>draw_line(ax,path,lw=lw_axons,ls='<STR_LIT>',lclr=exc_clr,zorder=<NUM_LIT:1>) <EOL>draw_circle(ax,path[<NUM_LIT:0>],conn_radius,lw=<NUM_LIT:0>,fclr=exc_clr,zorder=<NUM_LIT:0>) <EOL>for i in range(<NUM_LIT:4>):<EOL><INDENT>path=[[c_pop_pos[-<NUM_LIT:1>][<NUM_LIT:0>][<NUM_LIT:0>]-axon_cell_sep,c_pop_pos[i][<NUM_LIT:0>][<NUM_LIT:1>]+cc_input_y*c_pop_size],<EOL>[c_pop_pos[-<NUM_LIT:1>][<NUM_LIT:0>][<NUM_LIT:0>],c_pop_pos[i][<NUM_LIT:0>][<NUM_LIT:1>]+cc_input_y*c_pop_size],]<EOL>draw_arrow(ax,path,lw=lw_axons,ls='<STR_LIT>',lclr=exc_clr,arrow_size=arrow_size,zorder=<NUM_LIT:0>)<EOL>draw_circle(ax,path[<NUM_LIT:0>],conn_radius,lw=<NUM_LIT:0>,fclr=exc_clr,zorder=<NUM_LIT:0>) <EOL>path=[[c_pop_pos[-<NUM_LIT:1>][<NUM_LIT:1>][<NUM_LIT:0>]+c_pop_size+axon_cell_sep,c_pop_pos[i][<NUM_LIT:0>][<NUM_LIT:1>]+cc_input_y*c_pop_size],<EOL>[c_pop_pos[-<NUM_LIT:1>][<NUM_LIT:1>][<NUM_LIT:0>]+c_pop_size,c_pop_pos[i][<NUM_LIT:0>][<NUM_LIT:1>]+cc_input_y*c_pop_size]]<EOL>draw_arrow(ax,path,lw=lw_axons,ls='<STR_LIT>',lclr=exc_clr,arrow_size=arrow_size,zorder=<NUM_LIT:0>)<EOL>draw_circle(ax,path[<NUM_LIT:0>],conn_radius,lw=<NUM_LIT:0>,fclr=exc_clr,zorder=<NUM_LIT:0>) <EOL><DEDENT>path=[[t_pos[<NUM_LIT:0>]+t_pop_size/<NUM_LIT>,t_pos[<NUM_LIT:1>]+t_pop_size],<EOL>[t_pos[<NUM_LIT:0>]+t_pop_size/<NUM_LIT>,t_pos[<NUM_LIT:1>]+t_pop_size+axon_y_dist]]<EOL>draw_line(ax,path,lw=lw_axons,ls='<STR_LIT>',lclr=exc_clr,zorder=<NUM_LIT:1>) <EOL>draw_circle(ax,path[-<NUM_LIT:1>],conn_radius,lw=<NUM_LIT:0>,fclr=exc_clr,zorder=<NUM_LIT:0>) <EOL>path=[[c_pop_pos[<NUM_LIT:0>][<NUM_LIT:0>][<NUM_LIT:0>]-(axon_cell_sep+axon_y_dist),t_pos[<NUM_LIT:1>]+t_pop_size+axon_y_dist],<EOL>[c_pop_pos[<NUM_LIT:0>][<NUM_LIT:1>][<NUM_LIT:0>]+c_pop_size+(axon_cell_sep+axon_y_dist),t_pos[<NUM_LIT:1>]+t_pop_size+axon_y_dist]]<EOL>draw_line(ax,path,lw=lw_axons,ls='<STR_LIT>',lclr=exc_clr,zorder=<NUM_LIT:1>) <EOL>path=[[c_pop_pos[<NUM_LIT:0>][<NUM_LIT:0>][<NUM_LIT:0>]-(axon_cell_sep+axon_y_dist),t_pos[<NUM_LIT:1>]+t_pop_size+axon_y_dist],<EOL>[c_pop_pos[<NUM_LIT:0>][<NUM_LIT:0>][<NUM_LIT:0>]-(axon_cell_sep+axon_y_dist),c_pop_pos[<NUM_LIT:2>][<NUM_LIT:0>][<NUM_LIT:1>]+tc_input_y*c_pop_size]]<EOL>draw_line(ax,path,lw=lw_axons,ls='<STR_LIT>',lclr=exc_clr,zorder=<NUM_LIT:1>) <EOL>path=[[c_pop_pos[<NUM_LIT:0>][<NUM_LIT:1>][<NUM_LIT:0>]+c_pop_size+(axon_cell_sep+axon_y_dist),t_pos[<NUM_LIT:1>]+t_pop_size+axon_y_dist],<EOL>[c_pop_pos[<NUM_LIT:0>][<NUM_LIT:1>][<NUM_LIT:0>]+c_pop_size+(axon_cell_sep+axon_y_dist),c_pop_pos[<NUM_LIT:2>][<NUM_LIT:0>][<NUM_LIT:1>]+tc_input_y*c_pop_size]]<EOL>draw_line(ax,path,lw=lw_axons,ls='<STR_LIT>',lclr=exc_clr,zorder=<NUM_LIT:1>) <EOL>path=[[c_pop_pos[<NUM_LIT:0>][<NUM_LIT:0>][<NUM_LIT:0>]-(axon_cell_sep+axon_y_dist),c_pop_pos[<NUM_LIT:2>][<NUM_LIT:0>][<NUM_LIT:1>]+tc_input_y*c_pop_size],<EOL>[c_pop_pos[<NUM_LIT:0>][<NUM_LIT:0>][<NUM_LIT:0>],c_pop_pos[<NUM_LIT:2>][<NUM_LIT:0>][<NUM_LIT:1>]+tc_input_y*c_pop_size],]<EOL>draw_arrow(ax,path,lw=lw_axons,ls='<STR_LIT>',lclr=exc_clr,arrow_size=arrow_size,zorder=<NUM_LIT:1>) <EOL>draw_circle(ax,path[<NUM_LIT:0>],conn_radius,lw=<NUM_LIT:0>,fclr=exc_clr,zorder=<NUM_LIT:0>) <EOL>path=[[c_pop_pos[<NUM_LIT:0>][<NUM_LIT:0>][<NUM_LIT:0>]-(axon_cell_sep+axon_y_dist),c_pop_pos[<NUM_LIT:0>][<NUM_LIT:0>][<NUM_LIT:1>]+tc_input_y*c_pop_size],<EOL>[c_pop_pos[<NUM_LIT:0>][<NUM_LIT:0>][<NUM_LIT:0>],c_pop_pos[<NUM_LIT:0>][<NUM_LIT:0>][<NUM_LIT:1>]+tc_input_y*c_pop_size],]<EOL>draw_arrow(ax,path,lw=lw_axons,ls='<STR_LIT>',lclr=exc_clr,arrow_size=arrow_size,zorder=<NUM_LIT:1>) <EOL>draw_circle(ax,path[<NUM_LIT:0>],conn_radius,lw=<NUM_LIT:0>,fclr=exc_clr,zorder=<NUM_LIT:0>) <EOL>path=[[c_pop_pos[<NUM_LIT:0>][<NUM_LIT:1>][<NUM_LIT:0>]+c_pop_size+(axon_cell_sep+axon_y_dist),c_pop_pos[<NUM_LIT:2>][<NUM_LIT:0>][<NUM_LIT:1>]+tc_input_y*c_pop_size],<EOL>[c_pop_pos[<NUM_LIT:0>][<NUM_LIT:1>][<NUM_LIT:0>]+c_pop_size,c_pop_pos[<NUM_LIT:2>][<NUM_LIT:0>][<NUM_LIT:1>]+tc_input_y*c_pop_size],]<EOL>draw_arrow(ax,path,lw=lw_axons,ls='<STR_LIT>',lclr=exc_clr,arrow_size=arrow_size,zorder=<NUM_LIT:1>) <EOL>draw_circle(ax,path[<NUM_LIT:0>],conn_radius,lw=<NUM_LIT:0>,fclr=exc_clr,zorder=<NUM_LIT:0>) <EOL>path=[[c_pop_pos[<NUM_LIT:0>][<NUM_LIT:1>][<NUM_LIT:0>]+c_pop_size+(axon_cell_sep+axon_y_dist),c_pop_pos[<NUM_LIT:0>][<NUM_LIT:0>][<NUM_LIT:1>]+tc_input_y*c_pop_size],<EOL>[c_pop_pos[<NUM_LIT:0>][<NUM_LIT:1>][<NUM_LIT:0>]+c_pop_size,c_pop_pos[<NUM_LIT:0>][<NUM_LIT:0>][<NUM_LIT:1>]+tc_input_y*c_pop_size],]<EOL>draw_arrow(ax,path,lw=lw_axons,ls='<STR_LIT>',lclr=exc_clr,arrow_size=arrow_size,zorder=<NUM_LIT:1>) <EOL>draw_circle(ax,path[<NUM_LIT:0>],conn_radius,lw=<NUM_LIT:0>,fclr=exc_clr,zorder=<NUM_LIT:0>) <EOL>if labels:<EOL><INDENT>legend_x=[t_pos[<NUM_LIT:0>]+t_pop_size+axon_cell_sep,t_pos[<NUM_LIT:0>]+t_pop_size+axon_cell_sep+legend_length]<EOL>legend_y=[t_pos[<NUM_LIT:1>],(t_pos[<NUM_LIT:1>]+<NUM_LIT:2>*t_pop_size/<NUM_LIT:3>)]<EOL>draw_arrow(ax,[[legend_x[<NUM_LIT:0>],legend_y[<NUM_LIT:1>]],[legend_x[<NUM_LIT:1>],legend_y[<NUM_LIT:1>]]],lw=lw_axons,ls='<STR_LIT>',lclr=exc_clr,arrow_size=arrow_size,zorder=<NUM_LIT:1>)<EOL>draw_arrow(ax,[[legend_x[<NUM_LIT:0>],legend_y[<NUM_LIT:0>]],[legend_x[<NUM_LIT:1>],legend_y[<NUM_LIT:0>]]],lw=lw_axons,ls='<STR_LIT>',lclr=inh_clr,arrow_size=arrow_size,zorder=<NUM_LIT:1>)<EOL>put_text(ax,[t_pos[<NUM_LIT:0>]+t_pop_size/<NUM_LIT>,(t_pos[<NUM_LIT:1>]+t_pop_size/<NUM_LIT>)],r'<STR_LIT>','<STR_LIT:w>',fontdict1)<EOL>put_text(ax,[c_pop_pos[<NUM_LIT:0>][<NUM_LIT:0>][<NUM_LIT:0>]+c_pop_size/<NUM_LIT>,c_pop_pos[<NUM_LIT:0>][<NUM_LIT:0>][<NUM_LIT:1>]+c_pop_size/<NUM_LIT>],r'<STR_LIT>','<STR_LIT:w>' if analysis_params.bw else '<STR_LIT:k>',fontdict1)<EOL>put_text(ax,[c_pop_pos[<NUM_LIT:0>][<NUM_LIT:1>][<NUM_LIT:0>]+c_pop_size/<NUM_LIT>,c_pop_pos[<NUM_LIT:0>][<NUM_LIT:1>][<NUM_LIT:1>]+c_pop_size/<NUM_LIT>],r'<STR_LIT>','<STR_LIT:w>' if analysis_params.bw else '<STR_LIT:k>',fontdict1)<EOL>put_text(ax,[c_pop_pos[<NUM_LIT:1>][<NUM_LIT:0>][<NUM_LIT:0>]+c_pop_size/<NUM_LIT>,c_pop_pos[<NUM_LIT:1>][<NUM_LIT:0>][<NUM_LIT:1>]+c_pop_size/<NUM_LIT>],r'<STR_LIT>','<STR_LIT:w>' if analysis_params.bw else '<STR_LIT:k>',fontdict1)<EOL>put_text(ax,[c_pop_pos[<NUM_LIT:1>][<NUM_LIT:1>][<NUM_LIT:0>]+c_pop_size/<NUM_LIT>,c_pop_pos[<NUM_LIT:1>][<NUM_LIT:1>][<NUM_LIT:1>]+c_pop_size/<NUM_LIT>],r'<STR_LIT>','<STR_LIT:w>' if analysis_params.bw else '<STR_LIT:k>',fontdict1)<EOL>put_text(ax,[c_pop_pos[<NUM_LIT:2>][<NUM_LIT:0>][<NUM_LIT:0>]+c_pop_size/<NUM_LIT>,c_pop_pos[<NUM_LIT:2>][<NUM_LIT:0>][<NUM_LIT:1>]+c_pop_size/<NUM_LIT>],r'<STR_LIT>','<STR_LIT:w>' if analysis_params.bw else '<STR_LIT:k>',fontdict1)<EOL>put_text(ax,[c_pop_pos[<NUM_LIT:2>][<NUM_LIT:1>][<NUM_LIT:0>]+c_pop_size/<NUM_LIT>,c_pop_pos[<NUM_LIT:2>][<NUM_LIT:1>][<NUM_LIT:1>]+c_pop_size/<NUM_LIT>],r'<STR_LIT>','<STR_LIT:w>' if analysis_params.bw else '<STR_LIT:k>',fontdict1)<EOL>put_text(ax,[c_pop_pos[<NUM_LIT:3>][<NUM_LIT:0>][<NUM_LIT:0>]+c_pop_size/<NUM_LIT>,c_pop_pos[<NUM_LIT:3>][<NUM_LIT:0>][<NUM_LIT:1>]+c_pop_size/<NUM_LIT>],r'<STR_LIT>','<STR_LIT:w>' if analysis_params.bw else '<STR_LIT:k>',fontdict1)<EOL>put_text(ax,[c_pop_pos[<NUM_LIT:3>][<NUM_LIT:1>][<NUM_LIT:0>]+c_pop_size/<NUM_LIT>,c_pop_pos[<NUM_LIT:3>][<NUM_LIT:1>][<NUM_LIT:1>]+c_pop_size/<NUM_LIT>],r'<STR_LIT>','<STR_LIT:w>' if analysis_params.bw else '<STR_LIT:k>',fontdict1)<EOL>put_text(ax,[c_pop_pos[-<NUM_LIT:1>][<NUM_LIT:0>][<NUM_LIT:0>],<EOL>c_pop_pos[-<NUM_LIT:1>][<NUM_LIT:0>][<NUM_LIT:1>]+c_pop_size+<NUM_LIT>*axon_cell_sep + <NUM_LIT>],<EOL>r'<STR_LIT>','<STR_LIT:k>',fontdict2)<EOL>put_text(ax,[legend_x[<NUM_LIT:1>]+axon_y_dist,legend_y[<NUM_LIT:1>]],r'<STR_LIT>','<STR_LIT:k>',fontdict3)<EOL>put_text(ax,[legend_x[<NUM_LIT:1>]+axon_y_dist,legend_y[<NUM_LIT:0>]],r'<STR_LIT>','<STR_LIT:k>',fontdict3)<EOL>put_text(ax,[<NUM_LIT>*c_pop_pos[<NUM_LIT:0>][<NUM_LIT:0>][<NUM_LIT:0>],c_pop_pos[<NUM_LIT:0>][<NUM_LIT:1>][<NUM_LIT:1>]+c_pop_size/<NUM_LIT>],r'<STR_LIT>','<STR_LIT:k>',fontdict1)<EOL>put_text(ax,[<NUM_LIT>*c_pop_pos[<NUM_LIT:1>][<NUM_LIT:0>][<NUM_LIT:0>],c_pop_pos[<NUM_LIT:1>][<NUM_LIT:1>][<NUM_LIT:1>]+c_pop_size/<NUM_LIT>],r'<STR_LIT>','<STR_LIT:k>',fontdict1)<EOL>put_text(ax,[<NUM_LIT>*c_pop_pos[<NUM_LIT:2>][<NUM_LIT:0>][<NUM_LIT:0>],c_pop_pos[<NUM_LIT:2>][<NUM_LIT:1>][<NUM_LIT:1>]+c_pop_size/<NUM_LIT>],r'<STR_LIT>','<STR_LIT:k>',fontdict1)<EOL>put_text(ax,[<NUM_LIT>*c_pop_pos[<NUM_LIT:3>][<NUM_LIT:0>][<NUM_LIT:0>],c_pop_pos[<NUM_LIT:3>][<NUM_LIT:1>][<NUM_LIT:1>]+c_pop_size/<NUM_LIT>],r'<STR_LIT>','<STR_LIT:k>',fontdict1)<EOL><DEDENT>if highlight is not None:<EOL><INDENT>ids = name_to_id_mapping[highlight]<EOL>fontdict1['<STR_LIT>']=<NUM_LIT:4><EOL>put_text(ax,[c_pop_pos[ids[<NUM_LIT:0>]][ids[<NUM_LIT:1>]][<NUM_LIT:0>]+c_pop_size/<NUM_LIT>,c_pop_pos[ids[<NUM_LIT:0>]][ids[<NUM_LIT:1>]][<NUM_LIT:1>]+c_pop_size/<NUM_LIT>],highlight,'<STR_LIT:k>',fontdict1)<EOL><DEDENT>ax.xaxis.set_ticks([])<EOL>ax.yaxis.set_ticks([])<EOL>ax.axis(ax.axis('<STR_LIT>'))<EOL>return ax<EOL>
highlight : None or string
     if string, then only the label of this population is set and the box is highlighted