From 24fc3f480776f0542017563916603c5179d16134 Mon Sep 17 00:00:00 2001 From: Fabien BOURGEOIS Date: Mon, 22 Feb 2021 01:01:21 +0100 Subject: [PATCH] [FIX]XML Base : fix unicode / str py2/3 difference --- hy_odoo/xml_base.hy | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/hy_odoo/xml_base.hy b/hy_odoo/xml_base.hy index e4bc641..ce52eaf 100644 --- a/hy_odoo/xml_base.hy +++ b/hy_odoo/xml_base.hy @@ -42,8 +42,10 @@ (cond [(string? children) (setv (. parent text) children)] [(instance? XMLDictElement children (do - (setv attrs (dfor [k v] (.items (. children attrs)) [(unicode k) (unicode v)]) - new-parent (.SubElement ET parent (. children tag) attrs) + (if-python2 + (setv attrs (dfor [k v] (.items (. children attrs)) [(unicode k) (unicode v)])) + (setv attrs (dfor [k v] (.items (. children attrs)) [(str k) (str v)]))) + (setv new-parent (.SubElement ET parent (. children tag) attrs) subchildren (.children children)) (when subchildren) (xmlchild new-parent subchildren)))] [(instance? list children) (list( map (partial xmlchild parent) children))] @@ -52,8 +54,9 @@ (defn xmln [&optional [tag ""] [attrs {}] [children []]] "XMLDictElement building from dict object, with defaults" (when (instance? list attrs) (setv children attrs attrs {})) - (setv xmldictel (partial XMLDictElement tag attrs)) - (when (instance? unicode children) (return (xmldictel [children]))) + (setv xmldictel (partial XMLDictElement tag attrs) + inst-str? (if-python2 (instance? unicode children) (instance? str children))) + (when inst-str? (return (xmldictel [children]))) (when (instance? list children) (return (xmldictel children))) (raise (TypeError "Invalid arguments for xmln")))