diff options
author | Rumyana Neykova <rumi.neykova@gmail.com> | 2012-08-20 11:00:15 +0100 |
---|---|---|
committer | Ask Solem <ask@celeryproject.org> | 2012-09-21 12:57:07 +0100 |
commit | b982a4096e459d462b251d93ce0b58eb9848d650 (patch) | |
tree | a156f181afbf8d8eed358fa95d3a818f09566769 /extra | |
parent | 520db9ca6f709b5309122f35703a752af6e56b5e (diff) | |
download | py-amqp-b982a4096e459d462b251d93ce0b58eb9848d650.tar.gz |
Fix bug: Rules tags from the AMQP spec document are not gererated.
Diffstat (limited to 'extra')
-rwxr-xr-x | extra/generate_skeleton_0_8.py | 37 |
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, |