|
|
|
@ -31,7 +31,7 @@ class XMLDataSet:
|
|
|
|
"xml file's filename getters"
|
|
|
|
"xml file's filename getters"
|
|
|
|
return self._filepath
|
|
|
|
return self._filepath
|
|
|
|
|
|
|
|
|
|
|
|
# FIXME à supprimer
|
|
|
|
# FIXME à supprimer MAIS alors il faut rapatrier transform()...
|
|
|
|
def get_source_doc(self) -> str:
|
|
|
|
def get_source_doc(self) -> str:
|
|
|
|
"XML source_doc (xml as a string) getter"
|
|
|
|
"XML source_doc (xml as a string) getter"
|
|
|
|
if hasattr(self, 'source_doc'):
|
|
|
|
if hasattr(self, 'source_doc'):
|
|
|
|
@ -40,11 +40,6 @@ class XMLDataSet:
|
|
|
|
attr_error_msg = str(self._describe())
|
|
|
|
attr_error_msg = str(self._describe())
|
|
|
|
raise AttributeError(f"XMLDataSet bject {attr_error_msg} has no attribute named : 'source_doc'")
|
|
|
|
raise AttributeError(f"XMLDataSet bject {attr_error_msg} has no attribute named : 'source_doc'")
|
|
|
|
|
|
|
|
|
|
|
|
# FIXME : À SUPPRIMER
|
|
|
|
|
|
|
|
def set_source_doc(self, source_doc: str) -> None:
|
|
|
|
|
|
|
|
"XML source_doc (xml as a string) setter"
|
|
|
|
|
|
|
|
self.source_doc = source_doc
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def _describe(self) -> Dict[str, Any]:
|
|
|
|
def _describe(self) -> Dict[str, Any]:
|
|
|
|
"kedro's API-like repr()"
|
|
|
|
"kedro's API-like repr()"
|
|
|
|
return dict(filepath=self._filepath)
|
|
|
|
return dict(filepath=self._filepath)
|
|
|
|
@ -53,8 +48,9 @@ class XMLDataSet:
|
|
|
|
class EtreeXMLDataSet(XMLDataSet):
|
|
|
|
class EtreeXMLDataSet(XMLDataSet):
|
|
|
|
"XMLDataSet loader with lxml.etree (lxml.etree._ElementTree)"
|
|
|
|
"XMLDataSet loader with lxml.etree (lxml.etree._ElementTree)"
|
|
|
|
|
|
|
|
|
|
|
|
def _transform_source_doc(self) -> etree._ElementTree:
|
|
|
|
def _load(self):
|
|
|
|
"xml transformer (with element tree)"
|
|
|
|
"from the xml file loads a internal xml repr (with element tree)"
|
|
|
|
|
|
|
|
# self.source_doc is an etree internal xml repr document
|
|
|
|
self.source_doc = etree.parse(self._filepath)
|
|
|
|
self.source_doc = etree.parse(self._filepath)
|
|
|
|
# removing namespace
|
|
|
|
# removing namespace
|
|
|
|
query = "descendant-or-self::*[namespace-uri()!='']"
|
|
|
|
query = "descendant-or-self::*[namespace-uri()!='']"
|
|
|
|
@ -63,10 +59,6 @@ class EtreeXMLDataSet(XMLDataSet):
|
|
|
|
element.tag = etree.QName(element).localname
|
|
|
|
element.tag = etree.QName(element).localname
|
|
|
|
etree.cleanup_namespaces(self.source_doc)
|
|
|
|
etree.cleanup_namespaces(self.source_doc)
|
|
|
|
|
|
|
|
|
|
|
|
def _load(self):
|
|
|
|
|
|
|
|
"kedro's API-like loader"
|
|
|
|
|
|
|
|
self._transform_source_doc()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def _save(self, data:str) -> None:
|
|
|
|
def _save(self, data:str) -> None:
|
|
|
|
"kedro's API-like saver"
|
|
|
|
"kedro's API-like saver"
|
|
|
|
with open(self._filepath, 'w') as fhandle:
|
|
|
|
with open(self._filepath, 'w') as fhandle:
|
|
|
|
|