Code:
from netgen.geom2d import *
from ngsolve import *
geo = SplineGeometry()
pnts = [ (0,0), (2,0), (2,2), (0,2), (0,1.5), (0,0.5), (1,0.5), (1,1.5)]
pind = [ geo.AppendPoint(*pnt) for pnt in pnts ]
geo.Append(['line',pind[0],pind[1]],leftdomain=1,rightdomain=0,bc="b")
geo.Append(['line',pind[1],pind[2]],leftdomain=1,rightdomain=0,bc="r")
geo.Append(['line',pind[2],pind[3]],leftdomain=1,rightdomain=0,bc="t")
geo.Append(['line',pind[3],pind[4]],leftdomain=1,rightdomain=0,bc="l")
geo.Append(['line',pind[4],pind[5]],leftdomain=2,rightdomain=0,bc="l")
geo.Append(['line',pind[5],pind[0]],leftdomain=1,rightdomain=0,bc="l")
geo.Append(['line',pind[5],pind[6]],leftdomain=2,rightdomain=1,bc="b2")
geo.Append(['line',pind[6],pind[7]],leftdomain=2,rightdomain=1,bc="r2")
geo.Append(['line',pind[7],pind[4]],leftdomain=2,rightdomain=1,bc="t2")
geo.SetMaterial (1, "outer")
geo.SetMaterial (2, "inner")
mesh = Mesh(geo.GenerateMesh(maxh=0.1))