summaryrefslogtreecommitdiff
path: root/extra
diff options
context:
space:
mode:
authorRumyana Neykova <rumi.neykova@gmail.com>2012-08-20 11:00:15 +0100
committerAsk Solem <ask@celeryproject.org>2012-09-21 12:57:07 +0100
commitb982a4096e459d462b251d93ce0b58eb9848d650 (patch)
treea156f181afbf8d8eed358fa95d3a818f09566769 /extra
parent520db9ca6f709b5309122f35703a752af6e56b5e (diff)
downloadpy-amqp-b982a4096e459d462b251d93ce0b58eb9848d650.tar.gz
Fix bug: Rules tags from the AMQP spec document are not gererated.
Diffstat (limited to 'extra')
-rwxr-xr-xextra/generate_skeleton_0_8.py37
1 files changed, 25 insertions, 12 deletions
diff --git a/extra/generate_skeleton_0_8.py b/extra/generate_skeleton_0_8.py
index 2877dbf..acf1021 100755
--- a/extra/generate_skeleton_0_8.py
+++ b/extra/generate_skeleton_0_8.py
@@ -105,6 +105,7 @@ def _reindent(s, indent, reformat=True):
def generate_docstr(element, indent='', wrap=None):
+ print 'Generate objects'
"""
Generate a Python docstr for a given element in the AMQP
XML spec file. The element could be a class or method
@@ -119,8 +120,28 @@ def generate_docstr(element, indent='', wrap=None):
if txt:
result.append(_reindent(txt, indent))
result.append(indent)
-
- for d in element.findall('doc') + element.findall('rule'):
+ extra_indent = ''
+ """
+ rules = element.findall('rule')
+ if rules:
+ result.append(indent + 'RULES:')
+ for r in rules:
+ result.append(indent + 'RULE:')
+ result.append(indent)
+ extra_indent = ' '
+ rule_docs = generate_docstr(r, indent + ' ')
+ if rule_docs:
+ result.append(extra_indent)
+ result.append(rule_docs)
+ result.append(indent)
+ """
+ for d in element.findall('doc') + element.findall('rule'):
+ if d.tag == 'rule':
+ result.append(indent + 'RULE:')
+ result.append(indent)
+ extra_indent = ' '
+ d = d.findall('doc')[0]
+
docval = ''.join(d.textlist()).rstrip()
if not docval:
continue
@@ -131,12 +152,8 @@ def generate_docstr(element, indent='', wrap=None):
extra_indent = ' '
if d.attrib['name'] == 'grammar':
reformat = False # Don't want re-indenting to mess this up
- elif d.tag == 'rule':
- result.append(indent + 'RULE:')
- result.append(indent)
- extra_indent = ' '
- else:
- extra_indent = ''
+ #else:
+ # extra_indent = ''
result.append(_reindent(docval, indent + extra_indent, reformat))
result.append(indent)
@@ -159,8 +176,6 @@ def generate_docstr(element, indent='', wrap=None):
return '\n'.join(x.rstrip() for x in result) + '\n'
-
-
def generate_methods(class_element, out):
methods = class_element.findall('method')
methods.sort(key=lambda x: x.attrib['name'])
@@ -228,7 +243,6 @@ def generate_methods(class_element, out):
out.write(' pass\n')
out.write('\n\n')
-
def generate_class(spec, class_element, out):
out.write('class %s(object):\n' % class_element.attrib['name'].capitalize())
s = generate_docstr(class_element, ' ', ' """')
@@ -253,7 +267,6 @@ def generate_class(spec, class_element, out):
generate_methods(amqp_class, out)
-
def generate_module(spec, out):
"""
Given an AMQP spec parsed into an xml.etree.ElemenTree,