From 946db0113eaee24be38f11635ea7b6d9a5d7d70f Mon Sep 17 00:00:00 2001 From: Russell Hay Date: Thu, 21 Jul 2016 11:36:39 -0700 Subject: [PATCH 1/2] refactoring for better readability --- tableaudocumentapi/datasource.py | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/tableaudocumentapi/datasource.py b/tableaudocumentapi/datasource.py index 0fdc3fb..1b41576 100644 --- a/tableaudocumentapi/datasource.py +++ b/tableaudocumentapi/datasource.py @@ -4,6 +4,7 @@ # ############################################################################### import collections +import itertools import xml.etree.ElementTree as ET import xml.sax.saxutils as sax import zipfile @@ -178,16 +179,17 @@ def fields(self): return self._fields def _get_all_fields(self): - column_objects = [_column_object_from_column_xml(self._datasourceTree, xml) - for xml in self._datasourceTree.findall('.//column')] - existing_fields = [x.id for x in column_objects] - metadata_fields = (x.text - for x in self._datasourceTree.findall(".//metadata-record[@class='column']/local-name")) - - missing_fields = (x for x in metadata_fields if x not in existing_fields) - column_objects.extend(( - _column_object_from_metadata_xml(_get_metadata_xml_for_field(self._datasourceTree, field_name)) - for field_name in missing_fields - )) - - return FieldDictionary({k: v for k, v in column_objects}) + column_field_objects = self._get_column_objects() + existing_column_fields = [x.id for x in column_field_objects] + metadata_field_objects = (x for x in self._get_metadata_objects() if x.id not in existing_column_fields) + field_objects = itertools.chain(column_field_objects, metadata_field_objects) + + return FieldDictionary({k: v for k, v in field_objects}) + + def _get_metadata_objects(self): + return (_column_object_from_metadata_xml(x) + for x in self._datasourceTree.findall(".//metadata-record[@class='column']")) + + def _get_column_objects(self): + return [_column_object_from_column_xml(self._datasourceTree, xml) + for xml in self._datasourceTree.findall('.//column')] From 9ad63f211df3d2c07230989170bf9b22409892ed Mon Sep 17 00:00:00 2001 From: Russell Hay Date: Thu, 21 Jul 2016 13:26:44 -0700 Subject: [PATCH 2/2] rename metadata_field_objects to metadata_only_field_objects --- tableaudocumentapi/datasource.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tableaudocumentapi/datasource.py b/tableaudocumentapi/datasource.py index 1b41576..7e3c2af 100644 --- a/tableaudocumentapi/datasource.py +++ b/tableaudocumentapi/datasource.py @@ -181,8 +181,8 @@ def fields(self): def _get_all_fields(self): column_field_objects = self._get_column_objects() existing_column_fields = [x.id for x in column_field_objects] - metadata_field_objects = (x for x in self._get_metadata_objects() if x.id not in existing_column_fields) - field_objects = itertools.chain(column_field_objects, metadata_field_objects) + metadata_only_field_objects = (x for x in self._get_metadata_objects() if x.id not in existing_column_fields) + field_objects = itertools.chain(column_field_objects, metadata_only_field_objects) return FieldDictionary({k: v for k, v in field_objects}) pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy