From a66f9fe0f2ba0719462f8ca9a55a8d5c97ad9c74 Mon Sep 17 00:00:00 2001 From: Timm Fitschen <t.fitschen@indiscale.com> Date: Tue, 17 Nov 2020 12:07:22 +0100 Subject: [PATCH] DOC: update CHANGELOG and add source docs --- CHANGELOG.md | 2 ++ src/caosdb/common/state.py | 30 ++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b6d7d84f..e4ee1991 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added ### +* Entity State support (experimental). See the `caosdb.State` class for more + information. * Versioning support (experimental). ### Changed ### diff --git a/src/caosdb/common/state.py b/src/caosdb/common/state.py index 431675fb..7b6a9ce3 100644 --- a/src/caosdb/common/state.py +++ b/src/caosdb/common/state.py @@ -1,5 +1,19 @@ from lxml import etree class State: + """State + + Represents the state of an entity and take care of the serialization and + deserialization of xml for the entity state. + + An entity state is always a State of a StateModel. + + Properties + ---------- + name : str + Name of the State + model : str + Name of the StateModel + """ def __init__(self, model, name): self.name = name @@ -19,6 +33,12 @@ class State: return f"State('{self.model}', '{self.name}')" def to_xml(self): + """Serialize this State to xml. + + Returns + ------- + xml : etree.Element + """ xml = etree.Element("State") if self.name is not None: xml.set("name", self.name) @@ -28,6 +48,16 @@ class State: @staticmethod def from_xml(xml): + """Create a new State instance from an xml Element. + + Parameters + ---------- + xml : etree.Element + + Returns + ------- + state : State + """ name = xml.get("name") model = xml.get("model") return State(name=name, model=model) -- GitLab