xmlobj is simple utility to map xml file to python object
Project description
Description
xmlobj is simple utility to map xml file to python object
xmlobj also allows you to add functionality to mapped object by adding mixin class
A Simple Example
from pathlib import Path
from PIL import Image, ImageDraw
from xmlobj import get_xml_obj
class DrawBoxesMixin:
def draw_box(self, image) -> Image.Image:
p1 = (self.object.bndbox.xmin, self.object.bndbox.ymin)
p2 = (self.object.bndbox.xmax, self.object.bndbox.ymax)
img_draw = ImageDraw.Draw(image)
img_draw.text(p1, self.object.name, align="left")
img_draw.rectangle([p1, p2])
return image
if __name__ == "__main__":
pascal_annotation = Path("samples/000027.xml")
img_file = "samples/000027.jpg"
img = Image.open(img_file)
obj = get_xml_obj(pascal_annotation, mixin_clsasses=[DrawBoxesMixin])
rendered_img = obj.draw_box(img.copy())
rendered_img.show()
Save xml
import xml.etree.cElementTree as ET
from xmlobj import get_xml_obj
if __name__ == "__main__":
obj = get_xml_obj("samples/books.xml")
root = obj.to_xml()
tree = ET.ElementTree(root)
ET.indent(tree, space="\t", level=0)
tree.write("my_xml_books.xml")
Limitations
- Tag lowercase
Original:
<CD>
<TITLE>Empire Burlesque</TITLE>
<ARTIST>Bob Dylan</ARTIST>
<COUNTRY>USA</COUNTRY>
</CD>
Output:
<cd>
<TITLE>Empire Burlesque</TITLE>
<ARTIST>Bob Dylan</ARTIST>
<COUNTRY>USA</COUNTRY>
</cd>
- Attribute properties
Original:
<book id="bk101">
<author>Gambardella, Matthew</author>
<title>XML Developer's Guide</title>
<genre>Computer</genre>
<price>44.95</price>
<publish_date>2000-10-01</publish_date>
<description>An in-depth look at creating applications
with XML.
</description>
</book>
Output:
<book>
<id>bk101</id>
<author>Gambardella, Matthew</author>
<title>XML Developer's Guide</title>
<genre>Computer</genre>
<price>44.95</price>
<publish_date>2000-10-01</publish_date>
<description>An in-depth look at creating applications
with XML.</description>
</book>
Installation
pip install xmlobj
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
File details
Details for the file xmlobj-1.2.2-py3-none-any.whl
.
File metadata
- Download URL: xmlobj-1.2.2-py3-none-any.whl
- Upload date:
- Size: 4.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 18bcccfc7d77016bec5ce34310a7eb5d25c02e6a61d5392c3bef61f32855b16a |
|
MD5 | 1780afc3df3779f8bb1463065df254e5 |
|
BLAKE2b-256 | e62b6fe5cc70c7433a03b36cc21d3eb16d5a3afed897a66da11a6293885a1418 |