kiwi-el8/doc/source/development/kiwi_from_python.rst
Marcus Schäfer 1550cb8691
Update development documentation
With the latest change to the logger kiwi can now be better
used as an api in other python programs
2019-10-23 17:59:31 +02:00

46 lines
1.3 KiB
ReStructuredText

Using KIWI NG in a Python Project
=================================
.. hint:: **Abstract**
KIWI is provided as python module under the **kiwi** namespace.
It is available for the python 2 and 3 versions. The following
description applies for KIWI version |version|.
KIWI NG can also function as a module for other Python projects.
The following example demonstrates how to read an existing image
description, add a new repository definition and export the
modified description on stdout.
.. code:: python
import sys
import logging
from kiwi.xml_description import XMLDescription
from kiwi.xml_state import XMLState
description = XMLDescription('path/to/kiwi/XML/config.xml')
xml_data = description.load()
xml_state = XMLState(
xml_data=xml_data, profiles=[], build_type='iso'
)
xml_state.add_repository(
repo_source='http://repo',
repo_type='rpm-md',
repo_alias='myrepo',
repo_prio=99
)
xml_data.export(
outfile=sys.stdout, level=0
)
All classes are written in a way to care for a single responsibility
in order to allow for re-use on other use cases. Therefore it is possible
to use KIWI NG outside of the main image building scope to manage e.g
the setup of loop devices, filesystems, partitions, etc...