HEX
Server: Apache
System: Linux 185.122.168.184.host.secureserver.net 5.14.0-570.52.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Oct 15 06:39:08 EDT 2025 x86_64
User: barbeatleanalyti (1024)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //usr/lib/python3.9/site-packages/setroubleshoot/__pycache__/xml_serialize.cpython-39.pyc
a

U+eP?�@s�ddlmZgd�ZddlZddlTddlZddlZddlmZddl	Tddl
TddlmZm
Z
edd�Zd	d
�Zdd�Zd
d�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd �ZGd!d"�d"e�Zee�Gd#d$�d$e��ZdS)%�)�absolute_import)
�string_to_xmlnode�string_to_cdata_xmlnode�validate_database_doc�boolean�xml_attributes�xml_attribute_dict�xml_child_elements_iter�xml_child_elements�xml_get_child_element_by_name�xml_get_child_elements_by_name�xml_child_element_names�xml_has_child_elements�XmlSerializeN)�*)�
get_config)�
add_metaclass�string_typesZgeneral�
i18n_encodingcCsZ|durtd�dS|��}|dur0td�dS|�d�}|durNtd�dSt|�SdS)Nz3validate_database_doc: doc is empty, validate failsFz4validate_database_doc: root is empty, validate fails�versionz7validate_database_doc: version is empty, validate fails)�	log_debug�getRootElement�propZdatabase_version_compatible)�doc�	root_noder�r�@/usr/lib/python3.9/site-packages/setroubleshoot/xml_serialize.pyr>s
rcCsht|t�r|St|t�rF|��}|dvr,dS|dvr8dStd|��nt|t�rXt|�Std|��dS)zconvert value to bool)�t�true�1T)�fZfalse�0Fzcannot convert (%s) to booleanN)�
isinstance�boolr�lower�
ValueError�int)�valuerrrrNs


rcCst�t|��S�N)�libxml2ZnewText�str�rr'rrrr`srcCs|�|t|��Sr()Z
newCDataBlock�lenr+rrrrdsrccs,|��}|r(|��|��fV|��}qdSr()Zget_properties�get_nameZget_content�get_next)�noderrrrrtsrcCs"i}t|�D]\}}|||<q|Sr()r)r/Zprops�namer'rrrr{s
rccs,|��}|r(|��dkr|V|��}qdS�N�element��get_children�get_typer.�r/�childrrrr	�s
r	cCs6|��}|r2|��dkr(|��|kr(|S|��}qdSr1)r4r5r-r.)r/r0r7rrrr�s
rcCs@g}|��}|r<|��dkr2|��|kr2|�|�|��}q|Sr1)r4r5r-�appendr.)r/r0�elementsr7rrrr�s

rcCstt|��Sr()�listr	�r/rrrr
�sr
cCsdd�t|�D�S)NcSsg|]}|���qSr)r-)�.0�errr�
<listcomp>��z+xml_child_element_names.<locals>.<listcomp>)r	r;rrrr
�sr
cCs*|��}|r&|��dkrdS|��}qdS)Nr2TFr3r6rrrr�s
rcs$eZdZdd�Z�fdd�Z�ZS)�XmlSerializeMetaDatacs�|dkrt�||||�S|�d��|�dd��|�dd���durh|D]}|j�dd���durFqhqFn���fdd�}||d<t�||||�S)Nr�__init__�init_from_xml_node�_init_postprocesscsRt|�dkr@t|dtj�r@�|i|���durN�|d�n�|i|��dS)N��r)r,r"r)ZxmlNode)�args�kwds�rCZnormal_initZxml_initrr�wrapped_init�s
z2XmlSerializeMetaData.__new__.<locals>.wrapped_init)�type�__new__�get�__dict__)�cls�	classname�bases�	classdictZbase_clsrIrrHrrK�s
zXmlSerializeMetaData.__new__cs�tt|��|||�|�d���s&dS�dkr6d|_njd|_�fdd�t����D�|_�fdd�t����D�|_|j|j|_	|j�
�|j�
�|j	�
�dS)N�	_xml_info�unstructuredTFcs g|]}�|ddkr|�qS)�XMLFormr2r�r<�x�Zxml_inforrr>�r?z1XmlSerializeMetaData.__init__.<locals>.<listcomp>cs g|]}�|ddkr|�qS)rTZ	attributerrUrWrrr>�r?)�superr@rArL�
_unstructuredr:�keys�	_elements�_attributes�_names�sort)rNrOrPrQ��	__class__rWrrA�s


zXmlSerializeMetaData.__init__)�__name__�
__module__�__qualname__rKrA�
__classcell__rrr_rr@�sr@c@sreZdZdd�Zdd�Zdd�Zdd�Zdd
d�Zddd
�Zddd�Z	ddd�Z
ddd�Zddd�Zddd�Z
d	S)rcCs|��dSr()�_init_defaults��selfrrrrA�szXmlSerialize.__init__cCs|��Sr()�get_xml_text_docrfrrr�__str__�szXmlSerialize.__str__cCsp|jdkrdS|jD]V}|j|}|�dd�}|durFt|||��q|�d�r^t||g�qt||d�qdS)NrS�defaultr:)rRr]rL�setattr)rgr0�	name_inforjrrrre�s



zXmlSerialize._init_defaultscCs8|jr$dd�t|j���D�}g}n|j}|j}||fS)NcSsg|]}|�d�s|�qS)�_)�
startswithrUrrrr>r?z<XmlSerialize.get_elements_and_attributes.<locals>.<listcomp>)rYr:rMrZr[r\)rgr9�
attributesrrr�get_elements_and_attributes�sz(XmlSerialize.get_elements_and_attributesNcCs$t�d�}|�||�}|�|�|S)Nz1.0)r)ZnewDoc�
get_xml_nodesZsetRootElement)rg�obj_namer�rootrrr�get_xml_docs

zXmlSerialize.get_xml_doccCsLd}}z,|�|�}|jtdd�}W|durH|��n|durF|��0|S)NrE)�encoding�format)rtZ	serializer�freeDoc)rgrrrZtext_docrrrrhs

�
zXmlSerialize.get_xml_text_docc
Cs�d}z�z&t�|���}|��}|�||�WnLtjyx}z2t�tjd|�WYd}~W|durl|��dSd}~00W|dur�|��n|dur�|��0dS)Nz"read_xml() libxml2.parserError: %s)	r)ZparseDoc�striprrB�parserError�syslog�LOG_ERRrw)rg�bufrrrrr=rrr�read_xmls �
�zXmlSerialize.read_xmlc
Cs
d}�z�z>t�|�}|r8||�s8WW|dur4|��dS|�||�Wn�tjy�}z2t�tjd|�WYd}~W|dur�|��dSd}~0ty�}z2t�tjd|�WYd}~W|dur�|��dSd}~00W|du�r|��n|du�r|��0dS)NFz'read_xml_file() libxml2.parserError: %szread_xml_file() error: %sT)r)Z	parseFilerwrBryrzr{�	Exception)rgZxmlfilerrZvalidate_docrr=rrr�
read_xml_file&s8
	���

�

zXmlSerialize.read_xml_filec
Cs�zfd}|durtj}n2t|t�r0t|d�}d}nt|t�r<ntd|��|�|�|��|rd|�	�Wn:t
y�}z"t�tjd||f�WYd}~n
d}~00dS)NF�wTzbad file parameter %szcould not write %s: %s)
�sys�stdoutr"r�open�FileTyper%�writerh�closer~rzr{)rgrrr Z
need_to_closer=rrr�	write_xml:s


zXmlSerialize.write_xmlcCs�|��\}}|dur|jj}t�|�}|D]<}|j|}|�dt�}t||�}	|	dur*|�	|||	��q*|D�]l}�z"|jdkr�t
}d}
n |j|}|�dt
�}|�d�}
t||�}	|	dus�t|	t�r�t
|	�dkr�Wql|
�rHt�|�}|�|�|	D]P}t|t��r|�||
�}
|�|
�q�t�|
�}|�|�|||�}
|�|
�q�nLt|	t��rl|	�||�}
|�|
�n(t�|�}|�|�|||	�}
|�|
�Wqlt�y�}z(t�tjd|jj||	f�WYd}~qld}~00ql|S)NZexport_typecastrSr:rz%s.%s value=%s)rpr`rar)ZnewNoderRrLr*�getattrZsetProprr"r:r,ZaddChildrrqr~rzr{)rgrrrr9rorsr0rl�typecastr'�list_item_name�element_node�itemr7Zlist_item_noder=rrrrqMsT















4zXmlSerialize.get_xml_nodescCs�|��\}}|��|dur"|}n&t||�}|durHtd||��f��t|�D]n\}}||vrvtd||��f�qP|j|}|�dt	�}	t
|	t�r�t|	t
�r�td|��qP|�||	|��qPt|�D�]}
|
��}|jr�|
��}|�||�q�||v�rtd||��f�q�|j|}|�dt	�}	|�d�}|�r�t||g�}t|
|�}
t
|	t��r�t|	t
��r�|
D]}|�|	|���qjn|
D]}|�|	|�����q�q�t
|	t��r�t|	t
��r�|�||	|
��q�|
��}|�||	|��q�dS)Nz+xml child element (%s) not found in node %sz0unknown attribute (%s) found in xml element (%s)Zimport_typecastz-Illegal use of substructure in attribute (%s)z.unknown element (%s) found in xml element (%s)r:)rprer�KeyErrorr-rrrRrLr*r"rJ�
issubclassrr%�__setattr__r	rYZ
getContentr�rr8)rgZxml_noderrr9rorsr0r'rlr�r�r��attrZ
list_nodesZ	list_noderrrrB�sN





zXmlSerialize.init_from_xml_node)N)N)N)NN)NN)N)N)rarbrcrArirerprtrhr}rr�rqrBrrrrr�s	






7r)Z
__future__r�__all__r��typesr)rzZsetroubleshoot.configrZsetroubleshoot.errcodeZsetroubleshoot.utilZsixrrrrrrrrrr	rrr
r
rrJr@�objectrrrrr�<module>s2

5