Lehrstuhl für Informations- und Automatisierungssysteme issueshttps://git.rwth-aachen.de/groups/acplt/-/issues2020-01-30T13:46:51+01:00https://git.rwth-aachen.de/acplt/pyi40aas/-/issues/41Make imports relative if possible2020-01-30T13:46:51+01:00Torben MinyMake imports relative if possiblehttps://git.rwth-aachen.de/acplt/pyi40aas/-/issues/42Tests: Add tests for data.examples2020-01-30T09:56:53+01:00Torben MinyTests: Add tests for data.exampleshttps://git.rwth-aachen.de/acplt/pyi40aas/-/issues/29model: Rename instance attributes to not contain trailing underscores2020-01-28T15:33:51+01:00Michael Thiesmodel: Rename instance attributes to not contain trailing underscoresTrailing underscores are nice for function parameters (including initializer parameters) to avoid name conflicts with global denominators (like module names and builtins). However, instance attributes form an own namespace and don't conf...Trailing underscores are nice for function parameters (including initializer parameters) to avoid name conflicts with global denominators (like module names and builtins). However, instance attributes form an own namespace and don't conflict with global denominators. Thus, trailing underscores are not required for them and I would prefer removing them to have less confusing attribute names.
However this should not be changed, before we merged the `features/json_adapter` branch.Leon Mauritz MöllerLeon Mauritz Möllerhttps://git.rwth-aachen.de/acplt/pyi40aas/-/issues/26model/adapter: Represent ValueDataType as native Python type2020-01-28T14:59:07+01:00Michael Thiesmodel/adapter: Represent ValueDataType as native Python typeProposal: Use native Python types for values (of Property, Qualifier, etc.) for easier programmatic handling of those values. We can choose the correct type at deserialization using the `valueType` attribute of those objects and re-creat...Proposal: Use native Python types for values (of Property, Qualifier, etc.) for easier programmatic handling of those values. We can choose the correct type at deserialization using the `valueType` attribute of those objects and re-create the `valueType` at serialization depending on the value's `type()`.
Then, we can throw away the `valueType` attribute (which is redundant to the `value` attribute's type) and probably replace it with a property, which would just return the `value`'s `xsd_name`.https://git.rwth-aachen.de/acplt/pyi40aas/-/issues/25model: Implement DataSpecificationIEC613602020-01-21T12:26:05+01:00Michael Thiesmodel: Implement DataSpecificationIEC61360https://git.rwth-aachen.de/acplt/pyi40aas/-/issues/32example: Move example data generators into package examples.data2020-01-21T12:24:27+01:00Michael Thiesexample: Move example data generators into package examples.datahttps://git.rwth-aachen.de/acplt/pyi40aas/-/issues/39base.Referable.parent is of type: Optional[Namespace]. XSD-schema expects par...2020-01-16T16:45:48+01:00Sebastian Heppners.heppner@iat.rwth-aachen.debase.Referable.parent is of type: Optional[Namespace]. XSD-schema expects parent to be of type="aas:reference_t"How to serialize this parameter in compliance with the schema?How to serialize this parameter in compliance with the schema?https://git.rwth-aachen.de/acplt/pyi40aas/-/issues/37model.base.HasDataSpecification has parameter data_specification of type Set[...2020-01-07T13:27:10+01:00Sebastian Heppners.heppner@iat.rwth-aachen.demodel.base.HasDataSpecification has parameter data_specification of type Set[Reference]. XML-Serialization expects this to be just a Reference.https://git.rwth-aachen.de/acplt/pyi40aas/-/issues/36model.submodel.SubmodelElementCollection: class seems to miss parameters "all...2019-12-28T17:13:21+01:00Sebastian Heppners.heppner@iat.rwth-aachen.demodel.submodel.SubmodelElementCollection: class seems to miss parameters "allow_duplicate"Or is this something the serialization should be able to read from the specific object instance?Or is this something the serialization should be able to read from the specific object instance?https://git.rwth-aachen.de/acplt/pyi40aas/-/issues/24Add package and module docstrings explaining what is contained in each packag...2019-12-20T15:12:45+01:00Michael ThiesAdd package and module docstrings explaining what is contained in each package/module and should go there* Module Docstrings should contain a description of the functionality the module provides (in an abstract way) and a short overview, how this functionality is implemented (e.g. which functions/classes do I typically need to use the funct...* Module Docstrings should contain a description of the functionality the module provides (in an abstract way) and a short overview, how this functionality is implemented (e.g. which functions/classes do I typically need to use the functionality and when should I look at the other functions/classes). The latter part might not be sensible for AAS model modules.
* Package docstrings should be added for the `aas` and the `aas.model` package and provide a high-level overview over the functionality the structure of this package, including the purpose of the single child modules/packages. It should answer the question: “which functionality regarding the AAS is implemented in the package and which (abstract) part of it can be found in which module?”. The docstring of `aas` might be overlapping with the README.md file, which should also explain the project structure.https://git.rwth-aachen.de/acplt/pyi40aas/-/issues/21model.adapter: Serialization for JSON2019-12-20T14:50:44+01:00Torben Minymodel.adapter: Serialization for JSONTorben MinyTorben Minyhttps://git.rwth-aachen.de/acplt/pyi40aas/-/issues/30JSON: Fix deserialization of Constraints2019-12-19T17:08:42+01:00Torben MinyJSON: Fix deserialization of ConstraintsJob [#583039](https://git.rwth-aachen.de/acplt/pyaas/-/jobs/583039) failed for 20f66fd7ddbbb0d0bf72c68f9520ced39eac9c62:Job [#583039](https://git.rwth-aachen.de/acplt/pyaas/-/jobs/583039) failed for 20f66fd7ddbbb0d0bf72c68f9520ced39eac9c62:https://git.rwth-aachen.de/acplt/pyi40aas/-/issues/27model: View does not inherit from HasDataSpecification, HasSemantics, Referable2019-12-16T10:53:23+01:00Michael Thiesmodel: View does not inherit from HasDataSpecification, HasSemantics, Referablehttps://git.rwth-aachen.de/acplt/pyi40aas/-/issues/15add license2019-12-11T11:19:39+01:00Leon Mauritz Mölleradd licensehttps://git.rwth-aachen.de/acplt/pyi40aas/-/issues/1Check model classes for completness according to VWSiD V2.02019-12-09T13:06:15+01:00Michael ThiesCheck model classes for completness according to VWSiD V2.0Includes checking for updated descriptions
See here: https://www.plattform-i40.de/PI40/Redaktion/DE/Downloads/Publikation/Details-of-the-Asset-Administration-Shell-Part1.htmlIncludes checking for updated descriptions
See here: https://www.plattform-i40.de/PI40/Redaktion/DE/Downloads/Publikation/Details-of-the-Asset-Administration-Shell-Part1.htmlhttps://git.rwth-aachen.de/acplt/pyi40aas/-/issues/23Add ID-Generator2019-12-03T17:35:10+01:00Torben MinyAdd ID-Generator* [x] Generator for random unique IDs
* [x] Generator with URL-parameter to create unique IDs in this namespace, e.g. "acplt.org/AAS/" and then create "acplt.org/AAS/AAS1"* [x] Generator for random unique IDs
* [x] Generator with URL-parameter to create unique IDs in this namespace, e.g. "acplt.org/AAS/" and then create "acplt.org/AAS/AAS1"https://git.rwth-aachen.de/acplt/pyi40aas/-/issues/6model: Enforce constraints2019-12-03T11:11:03+01:00Michael Thiesmodel: Enforce constraintsSome thoughts about the implementation of each constraint:
* [x] AASd-001: Can be enforced in initializer + property-setter, that only allows `None` values, if object has an attribute 'identification` (Yay, duck typing!)
* [x] AASd-002:...Some thoughts about the implementation of each constraint:
* [x] AASd-001: Can be enforced in initializer + property-setter, that only allows `None` values, if object has an attribute 'identification` (Yay, duck typing!)
* [x] AASd-002: Can be checked in intializer + property-setter
* [ ] (AASd-003: Oh no!)
* [x] Additional constraint: Uniqueness of idShort in one Namespace: Can be checked upon adding Referable to Namespace and in property-setter of `idShort`: If `self.parent.resolve(new_value)` does not throw a KeyError exception and returns another Object than `self`, we do not allow the new name.
* [x] AASd-004: We ignore this constraint and instead set `parent` upon adding to a Namespace (We should document this in the code)
* [x] AASd-005: Idea: Make the whole object immutable
* [x] AASd-006 & **AASd-007** & **AASd-012**: Let's ignore this, since we currently don't know, how `valueId` actually works
* [x] AASd-013: Let's ignore this constraint. A range could be unlimited to both ends. Additionally, `Property` does not enforce to have a value either.
* [x] AASd-008: Can be enforced in initializer + property-setter. However, we cannot ensure that the SubmodelElement's kind is not changed afterwards. (A possible solution for this is proposed in #7.)
* [x] AASd-014: We can ensure this by making `entityType` an automatically-computed property depending on `asset`.
* [x] AASd-009: Let's ignore this constraint to make programming with this class easier (security is not supported since security is not correct)
* [x] AASd-010: I don't see, how we could check this. (security is not supported since security is not correct)
* [x] AASd-011: Can be enforced in initializer + property-setter, but requires some annoying tree traversal (using `parent`). (security is not supported since security is not correct)
* [x] AASd-015: Can be enforced in initializer + property-setter, but requires some annoying tree traversal (using `parent`). (security is not supported since security is not correct)https://git.rwth-aachen.de/acplt/pyi40aas/-/issues/9model: Implement Registry and Reference.get()2019-12-03T10:17:14+01:00Michael Thiesmodel: Implement Registry and Reference.get()* Add `AbstractRegistry` (with `lookup()` method), `AbstractObjectStore` (inheriting from `AbstractRegistry`, with `add` and `remove` methods) and `DictObjectStore` (inherting from `AbstractObjectStore`)
* Add `Reference.get(registry: Ab...* Add `AbstractRegistry` (with `lookup()` method), `AbstractObjectStore` (inheriting from `AbstractRegistry`, with `add` and `remove` methods) and `DictObjectStore` (inherting from `AbstractObjectStore`)
* Add `Reference.get(registry: AbstractRegistry)` method
* Add testshttps://git.rwth-aachen.de/acplt/pyi40aas/-/issues/8model: Add Namespace class and resolve functionality2019-12-03T09:59:41+01:00Michael Thiesmodel: Add Namespace class and resolve functionality* [x] Add an abstract class `Namespace` with method `get_referable()`
* [x] Make relevant classes inherit from `Namespace`
* [x] Convert lists of Referable objects (internally) to `NamespaceSet` (see #10)* [x] Add an abstract class `Namespace` with method `get_referable()`
* [x] Make relevant classes inherit from `Namespace`
* [x] Convert lists of Referable objects (internally) to `NamespaceSet` (see #10)https://git.rwth-aachen.de/acplt/pyi40aas/-/issues/16model: Initializer of AssetAdministrationShell misses `identification` parameter2019-12-02T15:18:17+01:00Michael Thiesmodel: Initializer of AssetAdministrationShell misses `identification` parameter