From fc130c736b7ea4a4373c4df733ec7aca96d48a71 Mon Sep 17 00:00:00 2001
From: Piotr Maslanka <piotr.maslanka@henrietta.com.pl>
Date: Sun, 8 Oct 2017 10:20:04 +0200
Subject: [PATCH] go

---
 coolamqp/framing/compilation/xml_fields.py |  7 ++++---
 coolamqp/framing/compilation/xml_tags.py   | 11 +++++------
 2 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/coolamqp/framing/compilation/xml_fields.py b/coolamqp/framing/compilation/xml_fields.py
index 18d7cb3..44d2dbf 100644
--- a/coolamqp/framing/compilation/xml_fields.py
+++ b/coolamqp/framing/compilation/xml_fields.py
@@ -12,7 +12,7 @@ def nop(x):
 
 __all__ = [
     '_name', '_docs', '_ComputedField', '_ValueField', '_SimpleField',
-    'get_docs'
+    '_docs_with_label'
 ]
 
 class _Field(object):
@@ -65,7 +65,7 @@ class _SimpleField(_ValueField):
         super(_SimpleField, self).__init__(name, name, field_type, default)
 
 
-def get_docs(elem, label=False):
+def get_docs(elem, label):
     """Parse an XML element. Return documentation"""
     for kid in elem.getchildren():
 
@@ -79,6 +79,7 @@ def get_docs(elem, label=False):
         return elem.attrib.get('label', None)
 
 _name = _SimpleField('name', six.text_type)
-_docs = _ComputedField('docs', lambda elem: get_docs(elem))
+_docs = _ComputedField('docs', lambda elem: get_docs(elem, False))
+_docs_with_label = _ComputedField('docs', lambda elem: get_docs(elem, True))
 
 
diff --git a/coolamqp/framing/compilation/xml_tags.py b/coolamqp/framing/compilation/xml_tags.py
index 7c7faa8..082cf7a 100644
--- a/coolamqp/framing/compilation/xml_tags.py
+++ b/coolamqp/framing/compilation/xml_tags.py
@@ -3,7 +3,7 @@ from __future__ import print_function, absolute_import, division
 import six
 import logging
 import copy
-
+import math
 from coolamqp.framing.base import BASIC_TYPES, DYNAMIC_BASIC_TYPES
 from .xml_fields import *
 
@@ -17,6 +17,7 @@ __all__ = [
     'Domain', 'Method', 'Class', 'Field', 'Constant'
 ]
 
+
 class BaseObject(object):
 
     FIELDS = []
@@ -60,12 +61,10 @@ class Class(BaseObject):
     FIELDS = [
         _name,
         _SimpleField('index', int),
-        _ComputedField('docs', lambda elem: get_docs(elem, label=True)),
-        _ComputedField('methods', lambda elem: sorted(
-            [Method(me) for me in elem.getchildren() if me.tag == 'method'],
+        _docs_with_label,
+        _ComputedField('methods', lambda elem: sorted(map(Method, _get_tagchild(elem, 'method')),
             key=lambda m: (m.name.strip('-')[0], -len(m.response)))),
-        _ComputedField('properties', lambda elem: [Field(e) for e in elem.getchildren() if
-                   e.tag == 'field'])
+        _ComputedField('properties', lambda elem: map(Field, _get_tagchild(elem, 'field')))
     ]
 
 
-- 
GitLab