he Szymon!
a bezierPath object is not made to be editable. One way could be jumpt to a glyph object.
or do a detour by cutting the path in four quarters and draw them seperatly
# create a bezierPath
path = BezierPath()
# add text to the path with a font and fontSize
path.text("P", font="Helvetica-Bold", fontSize=778)
# move the page a bit
translate(100, 100)
# get the bounds of the path
minx, miny, maxx, maxy = path.bounds()
# calculate the width, height of the bounds
# we only need half the width, height
w = (maxx-minx) * .5
h = (maxy-miny) * .5
# create a bezierPath and add a quarter
bottomLeft = BezierPath()
bottomLeft.rect(minx, miny, w, h)
# create a bezierPath and add a quarter
bottomRight = BezierPath()
bottomRight.rect(minx + w, miny, w, h)
# create a bezierPath and add a quarter
topLeft = BezierPath()
topLeft.rect(minx, miny + h, w, h)
# create a bezierPath and add a quarter
topRight = BezierPath()
topRight.rect(minx + w, miny + h, w, h)
# only keep the path when both of the them are filled
bottomLeft = bottomLeft & path
bottomRight = bottomRight & path
topLeft = topLeft & path
topRight = topRight & path
# start drawing
with savedState():
translate(w, h)
skew(-30, 0)
translate(-w, -h)
fill(1, 0, 0)
drawPath(bottomLeft)
fill(1, 1, 0)
drawPath(bottomRight)
fill(0, 1, 0)
drawPath(topLeft)
fill(0, 1, 1)
drawPath(topRight)