[Checkins] SVN: z3c.rml/trunk/src/z3c/rml/ * More fixing on the RML
Reference.
Stephan Richter
srichter at cosmos.phy.tufts.edu
Sat Apr 14 19:19:25 EDT 2007
Log message for revision 74139:
* More fixing on the RML Reference.
Changed:
U z3c.rml/trunk/src/z3c/rml/chart.py
U z3c.rml/trunk/src/z3c/rml/rml-reference.pt
U z3c.rml/trunk/src/z3c/rml/rml-reference.py
U z3c.rml/trunk/src/z3c/rml/tests/input/tag-circle.rml
-=-
Modified: z3c.rml/trunk/src/z3c/rml/chart.py
===================================================================
--- z3c.rml/trunk/src/z3c/rml/chart.py 2007-04-14 22:12:40 UTC (rev 74138)
+++ z3c.rml/trunk/src/z3c/rml/chart.py 2007-04-14 23:19:24 UTC (rev 74139)
@@ -160,7 +160,7 @@
class IData1D(interfaces.IRMLDirectiveSignature):
"""A 1-D data set."""
occurence.containing(
- occurence.OneOrMore('data', ISeries1D)
+ occurence.OneOrMore('series', ISeries1D)
)
class Data1D(Data):
@@ -171,7 +171,7 @@
class ISingleData1D(interfaces.IRMLDirectiveSignature):
"""A 1-D data set."""
occurence.containing(
- occurence.One('data', ISeries1D)
+ occurence.One('series', ISeries1D)
)
class SingleData1D(Data1D):
@@ -201,7 +201,7 @@
class IData2D(interfaces.IRMLDirectiveSignature):
"""A 2-D data set."""
occurence.containing(
- occurence.OneOrMore('data', ISeries2D)
+ occurence.OneOrMore('series', ISeries2D)
)
class Data2D(Data):
@@ -1186,6 +1186,9 @@
)
startAngle = attr.Integer(
+ title=u'Start Angle',
+ description=u'The start angle in the chart of the first slice '
+ u'in degrees.',
required=False)
direction = attr.Choice(
Modified: z3c.rml/trunk/src/z3c/rml/rml-reference.pt
===================================================================
--- z3c.rml/trunk/src/z3c/rml/rml-reference.pt 2007-04-14 22:12:40 UTC (rev 74138)
+++ z3c.rml/trunk/src/z3c/rml/rml-reference.pt 2007-04-14 23:19:24 UTC (rev 74139)
@@ -177,6 +177,24 @@
</tal:block>
</tal:block>
+ <tal:block define="attr directive/content"
+ condition="directive/content">
+ <para style="element-subtitle">
+ <i>Content</i>
+ </para>
+ <para style="attribute-name">
+ <tal:block content="attr/type">Type</tal:block>
+ <tal:block condition="attr/required">
+ <i>(required)</i>
+ </tal:block>
+ </para>
+ <para style="field-description"
+ tal:condition="attr/title">
+ <i tal:content="attr/title">Title</i>:
+ <tal:block tal:content="attr/description">Description</tal:block>
+ </para>
+ </tal:block>
+
<tal:block condition="directive/sub-directives">
<para style="element-subtitle">
<i>Sub-Directives</i>
Modified: z3c.rml/trunk/src/z3c/rml/rml-reference.py
===================================================================
--- z3c.rml/trunk/src/z3c/rml/rml-reference.py 2007-04-14 22:12:40 UTC (rev 74138)
+++ z3c.rml/trunk/src/z3c/rml/rml-reference.py 2007-04-14 23:19:24 UTC (rev 74139)
@@ -16,11 +16,17 @@
$Id$
"""
__docformat__ = "reStructuredText"
+import os
import zope.schema
import zope.schema.interfaces
+from lxml import etree
from z3c.rml import attr, document, pagetemplate
+EXAMPLES_DIRECTORY = os.path.join(os.path.dirname(__file__), 'tests', 'input')
IGNORE_ATTRIBUTES = ('RMLAttribute', 'BaseChoice')
+CONTENT_FIELD_TYPES = (
+ attr.TextNode, attr.TextNodeSequence, attr.TextNodeGrid,
+ attr.RawXMLContent, attr.XMLContent)
def getAttributeTypes():
types = []
@@ -48,27 +54,42 @@
vtFormatter = typeFormatters.get(field.value_type.__class__, formatField)
return '%s of %s' %(field.__class__.__name__, vtFormatter(field.value_type))
+def formatGrid(field):
+ vtFormatter = typeFormatters.get(field.value_type.__class__, formatField)
+ return '%s with %i cols of %s' %(
+ field.__class__.__name__, field.columns, vtFormatter(field.value_type))
+
typeFormatters = {
attr.Choice: formatChoice,
- attr.Sequence: formatSequence}
+ attr.Sequence: formatSequence,
+ attr.TextNodeSequence: formatSequence,
+ attr.TextNodeGrid: formatGrid}
-def processSignature(name, signature, directives=None):
+def processSignature(name, signature, examples, directives=None):
if directives is None:
directives = {}
# Process this directive
if signature not in directives:
info = {'name': name, 'description': signature.getDoc()}
attrs = []
- for name, field in zope.schema.getFieldsInOrder(signature):
+ content = None
+ for fname, field in zope.schema.getFieldsInOrder(signature):
+ # Handle the case, where the field describes the content
typeFormatter = typeFormatters.get(field.__class__, formatField)
- attrs.append({
- 'name': name,
+ fieldInfo = {
+ 'name': fname,
'type': typeFormatter(field),
'title': field.title,
'description': field.description,
'required': field.required,
- })
+ }
+ if field.__class__ in CONTENT_FIELD_TYPES:
+ content = fieldInfo
+ else:
+ attrs.append(fieldInfo)
info['attributes'] = attrs
+ info['content'] = content
+ info['examples'] = examples.get(name, None)
subs = []
for occurence in signature.queryTaggedValue('directives', ()):
@@ -80,14 +101,30 @@
directives[signature] = info
# Process Children
for occurence in signature.queryTaggedValue('directives', ()):
- processSignature(occurence.tag, occurence.signature, directives)
+ processSignature(occurence.tag, occurence.signature,
+ examples, directives)
+def extractExamples(directory):
+ examples = {}
+ for fileName in os.listdir(directory):
+ if not fileName.endswith('.rml'):
+ continue
+ rmlFile = open(os.path.join(directory, fileName), 'r')
+ root = etree.parse(rmlFile).getroot()
+ if fileName == 'tag-circle.rml':
+ import pdb; pdb.set_trace()
+
+ return examples
+
+
if __name__ == '__main__':
+ examples = extractExamples(EXAMPLES_DIRECTORY)
+
template = pagetemplate.RMLPageTemplateFile('rml-reference.pt')
directives = {}
- processSignature('document', document.IDocument, directives)
+ processSignature('document', document.IDocument, examples, directives)
directives = sorted(directives.values(), key=lambda d: d['name'])
pdf = template(types=getAttributeTypes(), directives=directives)
Modified: z3c.rml/trunk/src/z3c/rml/tests/input/tag-circle.rml
===================================================================
--- z3c.rml/trunk/src/z3c/rml/tests/input/tag-circle.rml 2007-04-14 22:12:40 UTC (rev 74138)
+++ z3c.rml/trunk/src/z3c/rml/tests/input/tag-circle.rml 2007-04-14 23:19:24 UTC (rev 74139)
@@ -1,11 +1,14 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE document SYSTEM "rml.dtd">
-<document filename="circle.pdf">
+<document
+ filename="circle.pdf"
+ xmlns:doc="http://namespaces.zope.org/rml/doc">
<pageDrawing>
<circle x="10cm" y="25cm" radius="2cm"
- fill="false" stroke="false" />
+ fill="false" stroke="false"
+ doc:elementExample="circle" />
<circle x="10cm" y="20cm" radius="2cm"
fill="true" stroke="false" />
More information about the Checkins
mailing list