File: gradientname.py

package info (click to toggle)
pyx3 0.17-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 5,328 kB
  • sloc: python: 27,656; makefile: 225; ansic: 130; sh: 17
file content (46 lines) | stat: -rwxr-xr-x 1,738 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import sys, re
sys.path[:0] = [".."]
from pyx import *

text.set(text.LatexRunner)
text.preamble(r"\renewcommand{\familydefault}{\ttdefault}")

c = canvas.canvas()

# data to be plotted
pf = graph.data.paramfunction("k", 0, 1, "color, xmin, xmax, ymin, ymax= k, k, 1, 0, 1")

# positioning is quite ugly ... but it works at the moment
y = 0
dy = -0.65

# we could use gradient.__dict__ to get the instances, but we
# would loose the ordering ... instead we just parse the file:

# see comment in colorname.py

firstgraph = None
p = re.compile("(?P<id>gradient\\.(?P<name>[a-z]+)) += [a-z]*gradient_[a-z]+\\(", re.IGNORECASE)
with open(color.__file__) as f:
    for line in f:
        m = p.match(line)
        if m:
            if firstgraph is None:
                xaxis = graph.axis.lin(
                    parter=graph.axis.parter.lin(tickdists=["0.5","0.1"], labeldists=["1"]),
                    painter=graph.axis.painter.regular(
                        innerticklength=None,
                        outerticklength=graph.axis.painter.ticklength.normal),
                    linkpainter=graph.axis.painter.regular(innerticklength=None, labelattrs=None))
                firstgraph = g = graph.graphxy(ypos=y, width=10, height=0.5, x2=xaxis, y=graph.axis.lin(parter=None))
            else:
                g = graph.graphxy(ypos=y, width=10, height=0.5, x2=graph.axis.linkedaxis(firstgraph.axes["x2"]), y=graph.axis.lin(parter=None))
            g.plot(pf, [graph.style.rect(gradient=getattr(color.gradient, m.group("name")), keygraph=None)])
            g.doplot()
            g.finish()
            c.insert(g)
            c.text(10.2, y + 0.15, m.group("id"), [text.size.footnotesize])
            y += dy


c.writePDFfile()