| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
|
|
|
| |
Only added mapping for the 'bios' section.
|
|
|
|
|
|
| |
Using these attributes, only XML data (from the given XPath in 'filter')
which matches the value in 'filtervalue' will be added to the Python
data.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Added support boolean and list:boolean value types
* Traversing child nodes and having dynamic keys
Now it is possible to do the following:
** test.xml **
<?xml version="1.0" encoding="UTF-8"?>
<testdata>
<list>
<value enabled="1">Option 1</value>
<value enabled="0">Option 2</value>
<value enabled="1">Option 3</value>
</list>
</testdata>
** mapping.xml **
<?xml version="1.0" encoding="UTF-8"?>
<dmidecode_fieldmap version="1">
<Mapping name="example">
<Map keytype="string" key="/testdata/list/value"
valuetype="boolean" value="/testdata/list/value/@enabled"/>
</Mapping>
</dmidecode_fieldmap>
Which should result in:
{'Option 1': True, 'Option 2': False, 'Option 3': True'}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The xmlpythonizer module will convert any XML data (xmlNode
or xmlDoc) and format it as a Python object. The formatting is
defined in it's own XML file.
Basic format:
<dmidecode_fieldmap version="1">
<Mapping name="{name of mapping table}">
<Map keytype="{key type}" key="{key value}"
valuetype="{value type} value="{value}"/>
</Mapping>
</dmidecode_fieldmap>
The keytype and key attributes defines the key in the Python Dict. The
root element will always be a Python Dict structure. The valid key types
are:
* constant
Uses the value in {key} as the key value
* string, integer, float
Uses a string value from the data XML to be converted to Python. The
value set in the key attribute defines an XPath value which points to the
data to be used as a Python dict key.
Since Python only supports C strings in the C interface for Python dict
keys, integer and float will be treated as strings.
The valuetype and value attributes are similar to the keys, but with some more
features. Valid valuetypes are:
* constant
The value given in the value attribute will be used in the value in
the Python result.
* string, integer, float
The value given in the value attribute defines the XPath to the data XML,
of where to retrieve the value for the given key.
The valuetype defines if the data should be understood as a string, integer
or float in the Python result.
* list:string, list:integer, list:float
This does the same as the string, integer or float type, with a tweak. The
data will be put into a list. If the XPath given returns multiple nodes,
all of them will be added to this list.
* dict
The dict valuetype is more special. It should not contain any value
attribute. On the other hand, it should contain a sub-level of <Map> tags.
In this way, you can build up a multi dimensional Python dict.
Example:
** pythonmap.xml **
<?xml version="1.0" encoding="UTF-8"?>
<dmidecode_fieldmap version="1">
<Mapping name="example_map">
<Map keytype="constant" key="DemoCase" valuetype="constant" value="XML Pythonizing"/>
<Map keytype="constant" key="String1" valuetype="string" value="/example/string1"/>
<Map keytype="constant" key="AttribString1" valuetype="integer" value="/example/string1/@int_value"/>
<Map keytype="string" key="/example/keyset/@value" valuetype="dict">
<Map keytype="constant" key="Value1" valuetype="string" value="/example/keyset/value1"/>
<Map keytype="constant" key="ValueList" valuetype="list:string" value="/example/keyset/valuelist"/>
</Map>
</Mapping>
</dmidecode_fieldmap>
** exampledata.xml **
<?xml version="1.0" encoding="UTF-8"?>
<example>
<string1 int_value="1234">String value #1</string1>
<keyset value="TestData">
<value1>More test data</value1>
<valuelist>Value1 in list</valuelist>
<valuelist>Value2 in list</valuelist>
<valuelist>Value3 in list</valuelist>
</keyset>
</example>
** C code snippet **
void xmlpythonizer() {
xmlDoc *xmlmap = NULL;
xmlDoc *xmldata = NULL;
ptzMAP *mapping = NULL;
PyObject *pythondata = NULL;
// Read XML files
xmlmap = xmlReadFile("pythonmap.xml", NULL, 0);
xmldata = xmlReadFile("exampledata.xml", NULL, 0);
// Parse the mapping XML
mapping = dmiMAP_ParseMappingXML(xmlmap, "example_map");
// Parse the xmldata into a Python object
pythondata = pythonizeXMLdoc(mapping, xmldata);
// ..... the program continues to do something useful
}
The result stored inside the pythondata object should now be
something similar to:
{'DemoCase': 'XML Pythonizing',
'String1': 'String value #1',
'AttribString1: 1234,
'TestData': {'Value1': 'More test data',
'ValueList': ['Value1 in list','Value2 in list','Value3 in list']}
}
|
|
|
|
| |
node
|
| |
|
|
|
|
| |
This fixes a regression from commit 7f0fa9b2e1afd6aecea0b34b62cf9ebdf075164d
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Still do not compile
|
|
|
|
| |
Does not compile yet
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
git-svn-id: svn://svn.autonomy.net.au/python-dmidecode@180 abc39116-655e-4be6-ad55-d661dc543056
|
|
|
|
| |
git-svn-id: svn://svn.autonomy.net.au/python-dmidecode@179 abc39116-655e-4be6-ad55-d661dc543056
|
|
|
|
| |
git-svn-id: svn://svn.autonomy.net.au/python-dmidecode@174 abc39116-655e-4be6-ad55-d661dc543056
|
|
|
|
| |
git-svn-id: svn://svn.autonomy.net.au/python-dmidecode@172 abc39116-655e-4be6-ad55-d661dc543056
|
|
|
|
|
|
|
| |
version with which python-dmidecode is in sync with.
git-svn-id: svn://svn.autonomy.net.au/python-dmidecode@170 abc39116-655e-4be6-ad55-d661dc543056
|
|
|
|
|
|
|
|
|
| |
Added the second type of stuffed bios (upstream).
Integrated dmidecode the binary into the test case for a more objective result.
git-svn-id: svn://svn.autonomy.net.au/python-dmidecode@163 abc39116-655e-4be6-ad55-d661dc543056
|
|
|
|
| |
git-svn-id: svn://svn.autonomy.net.au/python-dmidecode@162 abc39116-655e-4be6-ad55-d661dc543056
|
|
|
|
|
|
|
| |
memory file or device.
git-svn-id: svn://svn.autonomy.net.au/python-dmidecode@155 abc39116-655e-4be6-ad55-d661dc543056
|
|
|
|
| |
git-svn-id: svn://svn.autonomy.net.au/python-dmidecode@137 abc39116-655e-4be6-ad55-d661dc543056
|
|
|
|
|
|
|
| |
Updated test cases to test for this too.
git-svn-id: svn://svn.autonomy.net.au/python-dmidecode@136 abc39116-655e-4be6-ad55-d661dc543056
|
|
|
|
|
|
|
|
|
| |
Bettered test cases.
Case 127 magically fixed.
git-svn-id: svn://svn.autonomy.net.au/python-dmidecode@135 abc39116-655e-4be6-ad55-d661dc543056
|
|
|
|
|
|
|
|
|
|
|
|
| |
should be implemented to return this string, so further cleanup is still
required; as it stands, there is no access to this information anymore!
Updated test case.
Further general cleanup.
git-svn-id: svn://svn.autonomy.net.au/python-dmidecode@133 abc39116-655e-4be6-ad55-d661dc543056
|
|
|
|
| |
git-svn-id: svn://svn.autonomy.net.au/python-dmidecode@131 abc39116-655e-4be6-ad55-d661dc543056
|
|
|
|
|
|
|
| |
Updated setup.py to reflect new version.
git-svn-id: svn://svn.autonomy.net.au/python-dmidecode@128 abc39116-655e-4be6-ad55-d661dc543056
|
|
|
|
| |
git-svn-id: svn://svn.autonomy.net.au/python-dmidecode@127 abc39116-655e-4be6-ad55-d661dc543056
|
|
|
|
| |
git-svn-id: svn://svn.autonomy.net.au/python-dmidecode@125 abc39116-655e-4be6-ad55-d661dc543056
|
|
|
|
|
|
|
|
|
| |
Don't crash when writing to a read-only file, return False instead.
Missing an INCREF in get_dev() fixed.
git-svn-id: svn://svn.autonomy.net.au/python-dmidecode@124 abc39116-655e-4be6-ad55-d661dc543056
|
|
|
|
| |
git-svn-id: svn://svn.autonomy.net.au/python-dmidecode@123 abc39116-655e-4be6-ad55-d661dc543056
|
|
|
|
|
|
|
| |
Adding an example directory.
git-svn-id: svn://svn.autonomy.net.au/python-dmidecode@115 abc39116-655e-4be6-ad55-d661dc543056
|
|
|
|
|
|
|
|
|
| |
period 2008-02-16 to 2008-11-23.
These changes have been made, but not yet fully tested.
git-svn-id: svn://svn.autonomy.net.au/python-dmidecode@114 abc39116-655e-4be6-ad55-d661dc543056
|
|
|
|
|
|
|
|
|
| |
revision 31.
Update reference to AMD CPUID document.
git-svn-id: svn://svn.autonomy.net.au/python-dmidecode@113 abc39116-655e-4be6-ad55-d661dc543056
|
|
|
|
| |
git-svn-id: svn://svn.autonomy.net.au/python-dmidecode@112 abc39116-655e-4be6-ad55-d661dc543056
|
|
git-svn-id: svn://svn.autonomy.net.au/python-dmidecode@108 abc39116-655e-4be6-ad55-d661dc543056
|