Skip to content

Instantly share code, notes, and snippets.

View joac's full-sized avatar
🔥

Joaquín Sorianello joac

🔥
View GitHub Profile
☁ tryton_builder [master] ⚡ wc example.py
19 51 398 example.py
☁ tryton_builder [master] ⚡ python2 example.py
ElementTree was Monkey Patched to suport CDATA
☁ tryton_builder [master] ⚡ wc HelloWorld/*
12 32 279 HelloWorld/hello.py
44 109 1673 HelloWorld/hello.xml
6 13 130 HelloWorld/__init__.py
6 6 54 HelloWorld/tryton.cfg
68 160 2136 total
@joac
joac / builder_example.py
Created June 5, 2013 17:16
example for my blog
# Imports, for base primitives
from tryton_builder import Module, Model, Field
# We create a new module
module = Module('HelloWorld')
# Two models
hello = Model('Hello', 'hello.hello')
# Add models to module
@joac
joac / indent_ET.py
Created June 4, 2013 16:50
indent for element tree
def indent(elem, level=0):
i = "\n" + level*" "
if len(elem):
if not elem.text or not elem.text.strip():
elem.text = i + " "
if not elem.tail or not elem.tail.strip():
elem.tail = i
for elem in elem:
indent(elem, level+1)
if not elem.tail or not elem.tail.strip():
@joac
joac / cdata_element_tree.py
Last active February 17, 2021 18:50
Monkey Patching Element Tree To support CDATA
import xml.etree.ElementTree as ET
CDATA_KEY = "__CDATA__" #cdata tag name for sustitution
def monkey_patch():
"""Monkey Patch ElementTree, to support CDATA"""
_serialize_xml = ET._serialize_xml
def _serialize_xml_cdata(write, elem, encoding, qnames, namespaces):
tag = elem.tag