<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://battery.knowledge-graph.eu/w/index.php?action=history&amp;feed=atom&amp;title=Item%3AOSW659a81662ff44af1b2b6febeee7c3a25</id>
	<title>Item:OSW659a81662ff44af1b2b6febeee7c3a25 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://battery.knowledge-graph.eu/w/index.php?action=history&amp;feed=atom&amp;title=Item%3AOSW659a81662ff44af1b2b6febeee7c3a25"/>
	<link rel="alternate" type="text/html" href="https://battery.knowledge-graph.eu/w/index.php?title=Item:OSW659a81662ff44af1b2b6febeee7c3a25&amp;action=history"/>
	<updated>2026-05-11T07:45:17Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.5</generator>
	<entry>
		<id>https://battery.knowledge-graph.eu/w/index.php?title=Item:OSW659a81662ff44af1b2b6febeee7c3a25&amp;diff=96&amp;oldid=prev</id>
		<title>Maintenance script: Install package: OSW Docs - Core</title>
		<link rel="alternate" type="text/html" href="https://battery.knowledge-graph.eu/w/index.php?title=Item:OSW659a81662ff44af1b2b6febeee7c3a25&amp;diff=96&amp;oldid=prev"/>
		<updated>2023-12-15T05:14:53Z</updated>

		<summary type="html">&lt;p&gt;Install package: OSW Docs - Core&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Overview==&lt;br /&gt;
{{Template:Editor/DrawIO|file_name=diagram-json|page_name=Item:OSWab674d663a5b472f838d8e1eb43e6784|uuid=95a74be1-e22d-4b6e-9e4f-836127d5915a|full_width=0}}&lt;br /&gt;
&lt;br /&gt;
==JSON-Schema and Data Classes==&lt;br /&gt;
Codegeneration from &amp;lt;code&amp;gt;jsonschema&amp;lt;/code&amp;gt; slots for Category pages with [https://github.com/OpenSemanticLab/osw-python osw-python] and [https://github.com/koxudaxi/datamodel-code-generator datamodel-code-generator]&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count: 3;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;break-inside: avoid;&amp;quot;&amp;gt; Category:MyCategory &amp;lt;code&amp;gt;jsonschema&amp;lt;/code&amp;gt; &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;text&amp;quot;: { &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot; },&lt;br /&gt;
        &amp;quot;number&amp;quot;: { &amp;quot;type&amp;quot;: &amp;quot;number&amp;quot; },&lt;br /&gt;
        &amp;quot;array&amp;quot;: { &amp;quot;type&amp;quot;: &amp;quot;array&amp;quot; }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;break-inside: avoid;&amp;quot;&amp;gt; Category:MySubCategory &amp;lt;code&amp;gt;jsonschema&amp;lt;/code&amp;gt; &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,&lt;br /&gt;
    &amp;quot;allOf&amp;quot;: &amp;quot;/wiki/Category:MyCategory?action=raw&amp;amp;slot=jsonschema&amp;quot;,&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;additional_property&amp;quot;: { &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot; }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;break-inside: avoid;&amp;quot;&amp;gt; Generated Python Code&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python3&amp;quot;&amp;gt;&lt;br /&gt;
class MyClass():&lt;br /&gt;
    text: str&lt;br /&gt;
    number: float&lt;br /&gt;
    array: List[Any]&lt;br /&gt;
    &lt;br /&gt;
class MySubClass(MyClass):&lt;br /&gt;
    additional_property: str&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Data Class Instance Serialization==&lt;br /&gt;
JSON generation from python class instances with [https://docs.pydantic.dev/ pydantic] BaseModel&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count: 3;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;break-inside: avoid;&amp;quot;&amp;gt; Python Dataclass &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python3&amp;quot;&amp;gt;&lt;br /&gt;
class MyClass(BaseModel):&lt;br /&gt;
    text: str&lt;br /&gt;
    number: float&lt;br /&gt;
    array: List[Any]&lt;br /&gt;
    &lt;br /&gt;
class MySubClass(MyClass):&lt;br /&gt;
    additional_property: str&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;break-inside: avoid;&amp;quot;&amp;gt; Python Class Instance &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python3&amp;quot;&amp;gt;&lt;br /&gt;
my_instance = MySubClass(&lt;br /&gt;
    text=&amp;quot;some text&amp;quot;,&lt;br /&gt;
    number=1.1,&lt;br /&gt;
    array=[1, &amp;quot;two&amp;quot;, 3.0]&lt;br /&gt;
    additional_property = &amp;quot;test2&amp;quot;&lt;br /&gt;
)&lt;br /&gt;
my_instance.json()&lt;br /&gt;
my_instance = osw.store_entity(my_instance) # wiki upload&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;break-inside: avoid;&amp;quot;&amp;gt; Uploaded json by calling &amp;lt;code&amp;gt;my_instance.json()&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;text&amp;quot;: &amp;quot;some text&amp;quot;,&lt;br /&gt;
    &amp;quot;number&amp;quot;: 1.0,&lt;br /&gt;
    &amp;quot;array&amp;quot;: [1,&amp;quot;two&amp;quot;,3.0],&lt;br /&gt;
    &amp;quot;additional_property&amp;quot;: &amp;quot;test2&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Controller Extension of Data Classes==&lt;br /&gt;
Add functionalities to entities represented by wiki pages&lt;br /&gt;
&amp;lt;div style=&amp;quot;column-count: 3;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;break-inside: avoid;&amp;quot;&amp;gt; Python Dataclass &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python3&amp;quot;&amp;gt;&lt;br /&gt;
class MyClass():&lt;br /&gt;
    text: str&lt;br /&gt;
    number: float&lt;br /&gt;
    array: List[Any]&lt;br /&gt;
    &lt;br /&gt;
class MySubClass(MyClass):&lt;br /&gt;
    additional_property: str&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;break-inside: avoid;&amp;quot;&amp;gt; Python Controller Class&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python3&amp;quot;&amp;gt;&lt;br /&gt;
class MyClassController(MyClass):&lt;br /&gt;
    def print_text(text):&lt;br /&gt;
        print(self.text)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;break-inside: avoid;&amp;quot;&amp;gt; Controller instantiation and execution&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python3&amp;quot;&amp;gt;&lt;br /&gt;
my_instance = MySubClass(&lt;br /&gt;
    text=&amp;quot;some text&amp;quot;,&lt;br /&gt;
    # ...&lt;br /&gt;
)&lt;br /&gt;
# or&lt;br /&gt;
my_instance = osw.load_entity(&amp;quot;Item:...&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
my_instance = my_instance.cast(MyInstanceController)&lt;br /&gt;
my_instance.print_text() # &amp;quot;some text&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
</feed>