Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement v3.0 of the metamodel specification #174

Merged
merged 456 commits into from
Nov 25, 2023
Merged

Implement v3.0 of the metamodel specification #174

merged 456 commits into from
Nov 25, 2023
This pull request is big! We’re only showing the most recent 250 commits.

Commits on Jul 14, 2022

  1. aas.backend.local_file: Fix LocalFileBackend.get_identifiable()

    The problem was, that with V3.0RC02, an Identifer is a string. Therefore
    the distinction between File-Identifier and AAS-Identifier could not be
    made anymore.
    As a solution, remove the option to input the already hashed
    File-Identifier.
    s-heppner committed Jul 14, 2022
    Configuration menu
    Copy the full SHA
    0f7de1b View commit details
    Browse the repository at this point in the history

Commits on Jul 18, 2022

  1. change type of Identifiable/id to str

    implement global and model references
    rename AASReference to ModelReference
    add Reference/referredSemanticId
    remove redundant definitions from XML schema (AAS and IEC61360)
    jkhsjdhjs committed Jul 18, 2022
    Configuration menu
    Copy the full SHA
    c85280d View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    7df87a0 View commit details
    Browse the repository at this point in the history

Commits on Jul 20, 2022

  1. rename IdentifierKeyValuePair to SpecificAssetId

    rename SpecificAssetId/key to SpecificAssetId/name
    change type of SpecificAssetId/externalSubjectId from Reference to GlobalReference
    jkhsjdhjs committed Jul 20, 2022
    Configuration menu
    Copy the full SHA
    357a520 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    ebd3e1f View commit details
    Browse the repository at this point in the history
  3. change type of Extension/refersTo from Reference to ModelReference

    also make it an Iterable
    jkhsjdhjs committed Jul 20, 2022
    Configuration menu
    Copy the full SHA
    e01c598 View commit details
    Browse the repository at this point in the history
  4. restructure KeyTypes

    make CONCEPT_DICTIONARY a private member since it has been removed
    from the spec
    jkhsjdhjs committed Jul 20, 2022
    Configuration menu
    Copy the full SHA
    50308da View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    1434cd3 View commit details
    Browse the repository at this point in the history

Commits on Jul 21, 2022

  1. Configuration menu
    Copy the full SHA
    7e90e2c View commit details
    Browse the repository at this point in the history

Commits on Aug 13, 2022

  1. remove ACCESS_PERMISSION_RULE from KeyTypes

    reflect this change in the json/xml schemata
    add missing comments to protected KeyTypes enum members
    jkhsjdhjs committed Aug 13, 2022
    Configuration menu
    Copy the full SHA
    8b385dd View commit details
    Browse the repository at this point in the history

Commits on Aug 14, 2022

  1. model: rename DataTypeDef to DataTypeDefXsd

    In V3.0RC02 DataTypeDef has been split into DataTypeDefRdf and
    DataTypeDefXsd. Since DataTypeDefRdf only consists of rdf::langString
    and currently isn't used anywhere in the DotAAS specification, just
    rename DataTypeDef to DataTypeDefXsd.
    jkhsjdhjs committed Aug 14, 2022
    Configuration menu
    Copy the full SHA
    7b33f75 View commit details
    Browse the repository at this point in the history

Commits on Aug 16, 2022

  1. Configuration menu
    Copy the full SHA
    2e30030 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    c4e1b14 View commit details
    Browse the repository at this point in the history

Commits on Oct 1, 2022

  1. Configuration menu
    Copy the full SHA
    93d758b View commit details
    Browse the repository at this point in the history
  2. fix mypy errors

    jkhsjdhjs committed Oct 1, 2022
    Configuration menu
    Copy the full SHA
    b3ae31b View commit details
    Browse the repository at this point in the history

Commits on Oct 17, 2022

  1. Adding Int Coverage

    supreetshm947 committed Oct 17, 2022
    Configuration menu
    Copy the full SHA
    2206b6d View commit details
    Browse the repository at this point in the history
  2. Adding Int Coverage

    supreetshm947 committed Oct 17, 2022
    Configuration menu
    Copy the full SHA
    4f7d4da View commit details
    Browse the repository at this point in the history

Commits on Oct 19, 2022

  1. model: update SubmodelElementCollection

    In V3.0RC02 the attributes `allowDuplicates` and `ordered` were removed
    from `SubmodelElementCollection`. Additionally the `semanticId` of
    contained elements is no longer unique. Because of that, the extra
    classes `SubmodelElementCollectionOrdered`,
    `SubmodelElementCollectionUnordered`,
    `SubmodelElementCollectionOrderedUniqueSemanticId` and
    `SubmodelElementCollectionUnorderedUniqueSemanticId` aren't needed
    anymore.
    
    Also ignore two tests which will be modified and re-enabled later.
    jkhsjdhjs committed Oct 19, 2022
    Configuration menu
    Copy the full SHA
    639b4b9 View commit details
    Browse the repository at this point in the history
  2. model.base: extend NamespaceSet by item_add_hook

    The `item_add_hook` is a function that is called whenever items are
    added to the `NamespaceSet`, even on initialization. It is supplied
    to the `NamespaceSet` on initialization and allows the model class
    to check constraints whenever a new item is added.
    jkhsjdhjs committed Oct 19, 2022
    Configuration menu
    Copy the full SHA
    e44a762 View commit details
    Browse the repository at this point in the history

Commits on Oct 20, 2022

  1. add SubmodelElementList

    In turn re-enable the unittests that were disabled in
    639b4b9.
    jkhsjdhjs committed Oct 20, 2022
    Configuration menu
    Copy the full SHA
    fba36db View commit details
    Browse the repository at this point in the history

Commits on Oct 27, 2022

  1. Configuration menu
    Copy the full SHA
    e757f46 View commit details
    Browse the repository at this point in the history

Commits on Oct 28, 2022

  1. Configuration menu
    Copy the full SHA
    8b8276a View commit details
    Browse the repository at this point in the history
  2. Merge pull request #2 from acplt/improve/coverage/model.datatypes

    Improve/coverage/model.datatypes
    supreetshm947 authored Oct 28, 2022
    Configuration menu
    Copy the full SHA
    5f21845 View commit details
    Browse the repository at this point in the history

Commits on Jan 6, 2023

  1. Configuration menu
    Copy the full SHA
    906605e View commit details
    Browse the repository at this point in the history

Commits on Feb 24, 2023

  1. implement ConstrainedList, work on HasSemantics, Unittest

    David Niebert committed Feb 24, 2023
    Configuration menu
    Copy the full SHA
    b940ddd View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    af5dc74 View commit details
    Browse the repository at this point in the history

Commits on Feb 25, 2023

  1. work on generic

    dxvidnrt committed Feb 25, 2023
    Configuration menu
    Copy the full SHA
    585e18f View commit details
    Browse the repository at this point in the history

Commits on Feb 27, 2023

  1. work on mypy

    dxvidnrt committed Feb 27, 2023
    Configuration menu
    Copy the full SHA
    803c2b3 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    eda6d06 View commit details
    Browse the repository at this point in the history

Commits on Feb 28, 2023

  1. Configuration menu
    Copy the full SHA
    a0dc451 View commit details
    Browse the repository at this point in the history

Commits on Mar 1, 2023

  1. work on unittest for ConstrainedList

    David Niebert committed Mar 1, 2023
    Configuration menu
    Copy the full SHA
    02fd7bf View commit details
    Browse the repository at this point in the history

Commits on Mar 2, 2023

  1. Configuration menu
    Copy the full SHA
    c1b11a6 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    df12092 View commit details
    Browse the repository at this point in the history
  3. work on unittest

    David Niebert committed Mar 2, 2023
    Configuration menu
    Copy the full SHA
    141f870 View commit details
    Browse the repository at this point in the history

Commits on Mar 3, 2023

  1. start working on adding supp_sem_id to everything

    David Niebert committed Mar 3, 2023
    Configuration menu
    Copy the full SHA
    82d1286 View commit details
    Browse the repository at this point in the history
  2. sem_id not deletable if there is a supp_sem_id

    David Niebert committed Mar 3, 2023
    Configuration menu
    Copy the full SHA
    543e79c View commit details
    Browse the repository at this point in the history
  3. add supplementary_semantic_id to all subclasses

    David Niebert committed Mar 3, 2023
    Configuration menu
    Copy the full SHA
    2464ff9 View commit details
    Browse the repository at this point in the history
  4. delete unnecessary test

    David Niebert committed Mar 3, 2023
    Configuration menu
    Copy the full SHA
    4f23b7a View commit details
    Browse the repository at this point in the history
  5. add_line

    David Niebert committed Mar 3, 2023
    Configuration menu
    Copy the full SHA
    5b4e5c2 View commit details
    Browse the repository at this point in the history

Commits on Mar 17, 2023

  1. Configuration menu
    Copy the full SHA
    8e94d4a View commit details
    Browse the repository at this point in the history

Commits on Mar 18, 2023

  1. Configuration menu
    Copy the full SHA
    dc62bdc View commit details
    Browse the repository at this point in the history
  2. model: fix inheritance by adding missing calls to super().__init__()

    Due to missing calls to the initializer function (__init__) of parent
    classes, not all superclasses were correctly initialized for classes
    that inherit from multiple classes (e.g. Submodel, SubmodelElement).
    
    https://stackoverflow.com/a/16310777/4780052
    jkhsjdhjs committed Mar 18, 2023
    Configuration menu
    Copy the full SHA
    30217fa View commit details
    Browse the repository at this point in the history
  3. model: cleanup ConstrainedList and supplemental_semantic_id

    Rename supplementary_semantic_id to supplemental_semantic_id, as it's
    named in the spec.
    
    Use the official description of supplemental_semantic_id from the spec
    in the docstrings.
    
    Only implement the bare minimum of list functions for ConstrainedList.
    Other functions such as `append()`, `pop()` and `remove()` are inherited
    from MutableSequence and implemented via `__getitem__()`, `__len__()`,
    `insert()`, and `__delitem__()`.
    
    Document Constraint AASd-118 in HasSemantics docstring.
    
    Change type of `supplemental_semantic_id` in `__init__()` of classes
    that inherit from `HasSemantics`.
    Optional[ConstrainedList[Reference]] creates an ambiguity between None
    and an empty list, which both correspond to no supplemental semantic ids
    being present. Insead, initialize the set with an empty iterable.
    Also, instead of a ConstrainedList[Reference], use Iterable[Reference]
    as we don't want the users of this SDK to worry about ConstrainedList,
    it should be an implementation detail.
    
    Add item_set_hook to ConstrainedList. Similar to item_del_hook, it is
    actually not necessary for the HasSemantics constraint, but I only
    noticed that later when I re-read the HasSemantics constraint.
    
    Instead of raising a ValueError when a constraint is violated, raise an
    AASConstraintViolation, which is a special class of this SDK for exactly
    this purpose.
    
    Clean up the tests a bit, e.g. use pythons unittest assertion functions
    instead of raising a ValueError on error. Also split the tests by
    functionality in separate functions.
    
    Improve the ConstrainedListTest by verifying which values are passed to
    the hook functions.
    jkhsjdhjs committed Mar 18, 2023
    Configuration menu
    Copy the full SHA
    76dc0e0 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    29aee42 View commit details
    Browse the repository at this point in the history

Commits on Mar 20, 2023

  1. Configuration menu
    Copy the full SHA
    a1aaec3 View commit details
    Browse the repository at this point in the history
  2. Refactor AASToJsonEncoder.default()

    - Use a dictionary called mapping that maps each object type to its corresponding serialization method.
    zrgt committed Mar 20, 2023
    Configuration menu
    Copy the full SHA
    193a580 View commit details
    Browse the repository at this point in the history
  3. Refactor AnnotatedRelationshipElement for JSON

    annotation->in JSON: annotations
    zrgt committed Mar 20, 2023
    Configuration menu
    Copy the full SHA
    e3e52fc View commit details
    Browse the repository at this point in the history
  4. Refactor Operation for JSON

    inputVariable->in JSON: inputVariables
    outputVariable->in JSON: outputVariables
    inoutputVariable->in JSON: inoutputVariables
    zrgt committed Mar 20, 2023
    Configuration menu
    Copy the full SHA
    0a3fc40 View commit details
    Browse the repository at this point in the history
  5. Refactor AssetInformation for JSON

    externalAssetIds->specificAssetIds
    thumbnail->defaultThumbnail
    zrgt committed Mar 20, 2023
    Configuration menu
    Copy the full SHA
    490079e View commit details
    Browse the repository at this point in the history
  6. Refactor Entity for JSON

    externalAssetIds->specificAssetIds
    zrgt committed Mar 20, 2023
    Configuration menu
    Copy the full SHA
    0c3aa9f View commit details
    Browse the repository at this point in the history
  7. Refactor SpecificAssetId for JSON

    subjectId->externalSubjectId
    zrgt committed Mar 20, 2023
    Configuration menu
    Copy the full SHA
    74d44bd View commit details
    Browse the repository at this point in the history

Commits on Mar 21, 2023

  1. Configuration menu
    Copy the full SHA
    b6d17af View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    b01574c View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    53f84cd View commit details
    Browse the repository at this point in the history
  4. Fix json serialisation for File

    'value' is not required in Schema
    zrgt committed Mar 21, 2023
    Configuration menu
    Copy the full SHA
    4e7edfd View commit details
    Browse the repository at this point in the history
  5. Remove unused imports

    zrgt committed Mar 21, 2023
    Configuration menu
    Copy the full SHA
    e84cc83 View commit details
    Browse the repository at this point in the history
  6. Fix json serialisation for Property

    'value' is optional in Schema
    zrgt committed Mar 21, 2023
    Configuration menu
    Copy the full SHA
    32116c0 View commit details
    Browse the repository at this point in the history
  7. Add Qualifier.kind and remove "modelType" for Qualifier

    - Add `kind` attribute to Qualifier class
    - Init QualifierKind enum class
    - remove "modelType" in json de-/serialisation for Qualifier
    zrgt committed Mar 21, 2023
    Configuration menu
    Copy the full SHA
    db25697 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    7d26fd8 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    2362f26 View commit details
    Browse the repository at this point in the history
  10. Remove Constraint AASd-008

    Removed since V30RC02
    zrgt committed Mar 21, 2023
    Configuration menu
    Copy the full SHA
    e12a3a9 View commit details
    Browse the repository at this point in the history

Commits on Mar 27, 2023

  1. Configuration menu
    Copy the full SHA
    5861f9c View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    80faec3 View commit details
    Browse the repository at this point in the history
  3. Fix json deserialization of Entity

    param kind was missing
    zrgt committed Mar 27, 2023
    Configuration menu
    Copy the full SHA
    8c43d4d View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    4d59536 View commit details
    Browse the repository at this point in the history
  5. Fix deserialization of SpecificAssetId

    Add missing attr "supplemental_semantic_id"
    zrgt committed Mar 27, 2023
    Configuration menu
    Copy the full SHA
    2554338 View commit details
    Browse the repository at this point in the history
  6. Add HasDataSpecification + IEC61360 Classes

    - Implement `HasDataSpecification` and make it as ancestor of  `AssetAdministrationShell`, `Submodel`, `SubmodelElement`, `ConceptDescription`, `AdministrativeInformation`,  (conform to V30RC02)
    - Move `AdministrativeInformation` down, as we want it to be defined after its parent `HasDataSpecification`
    - Remove `IEC61360ConceptDescription` and move `IEC61360DataType`, `IEC61360LevelType` to base.py
    - Implement `DataSpecificationIEC61360`, `DataSpecificationPhysicalUnit` and its de-/serialization
    zrgt committed Mar 27, 2023
    Configuration menu
    Copy the full SHA
    f816a42 View commit details
    Browse the repository at this point in the history
  7. Remove test_concept.py as false implemented

    Value format in IEC 61360 refers to the way a particular data element's value is represented, but not its type.
    zrgt committed Mar 27, 2023
    Configuration menu
    Copy the full SHA
    9d0ff24 View commit details
    Browse the repository at this point in the history
  8. Add data_specification equal methods

    We can use it later in tests
    zrgt committed Mar 27, 2023
    Configuration menu
    Copy the full SHA
    9a7ed53 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    7309f82 View commit details
    Browse the repository at this point in the history
  10. Make ValueReferencePair.value_type optional

    As the DotAAS meta model does not require value_type, make it optional
    zrgt committed Mar 27, 2023
    Configuration menu
    Copy the full SHA
    7fee59c View commit details
    Browse the repository at this point in the history

Commits on Mar 28, 2023

  1. Configuration menu
    Copy the full SHA
    98f7719 View commit details
    Browse the repository at this point in the history
  2. Revert "Set 'orderRelevant' as optional in json serialisation of `Sub…

    …modelElementList`"
    
    This reverts commit 2362f26.
    It's better to always serialize the value instead of having multiple
    places where the default value is specified.
    jkhsjdhjs committed Mar 28, 2023
    Configuration menu
    Copy the full SHA
    0a735db View commit details
    Browse the repository at this point in the history
  3. adapter.json: always serialize values with non-None default values

    It's better to always serialize optional values instead of specifying
    their default value in multiple locations.
    See also: 0a735db
    jkhsjdhjs committed Mar 28, 2023
    Configuration menu
    Copy the full SHA
    cbe67a5 View commit details
    Browse the repository at this point in the history
  4. adapter.json: add objects with a for loop

    This saves us a 'type: ignore' comment.
    jkhsjdhjs committed Mar 28, 2023
    Configuration menu
    Copy the full SHA
    34ee83d View commit details
    Browse the repository at this point in the history
  5. model: refactor class and attribute names

    Class names: PascalCase
    Attribute names: snake_case
    jkhsjdhjs committed Mar 28, 2023
    Configuration menu
    Copy the full SHA
    6cc19c6 View commit details
    Browse the repository at this point in the history

Commits on Mar 31, 2023

  1. Configuration menu
    Copy the full SHA
    e7c5b57 View commit details
    Browse the repository at this point in the history

Commits on Apr 1, 2023

  1. fix some mypy errors

    jkhsjdhjs committed Apr 1, 2023
    Configuration menu
    Copy the full SHA
    bf5ad92 View commit details
    Browse the repository at this point in the history
  2. fix codestyle

    jkhsjdhjs committed Apr 1, 2023
    Configuration menu
    Copy the full SHA
    e229208 View commit details
    Browse the repository at this point in the history
  3. model.submodel: make MultiLanguageProperty.value optional

    Since a LangStringSet can't be empty, it must be optional here.
    jkhsjdhjs committed Apr 1, 2023
    Configuration menu
    Copy the full SHA
    3c20c6d View commit details
    Browse the repository at this point in the history

Commits on Apr 7, 2023

  1. update implementation and adapters for new DataSpecification classes …

    …and schema
    
    Changes:
    - fix bugs in XML/JSON schema by copying some sections from the V3.0 schema
    - remove `ABAC.xsd` and `IEC61360.xsd` (not needed anymore, now unified in a single schema)
    - adapter.json: fix `HasDataSpecification` (de-)serialization
    - adapter.xml: add `HasDataSpecification` (de-)serialization
    - move XML namespace definitions to `adapter._generic`
    - remove `ConceptDescriptionIEC61360`
    - remove `example_concept_description.py` (as it only contained `ConceptDescriptionIEC61360`)
    - fix some minor issues in `AASDataChecker` (type hints, error messages, etc.)
    - add `HasDataSpecification` support to `AASDataChecker`
    - add `EmbeddedDataSpecifications` to example data
    - add `__repr__()` to `EmbeddedDataSpecification`, `DataSpecificationIEC61360` and `DataSpecificationPhysicalUnit`
    - remove `value_id` attribute from `DataSpecificationIEC61360`
    - rename attribute accesses of `DataSpecificationPhysicalUnit` that were missed in 6cc19c6
    - update tests and compliance tool example files in accordance to the changes
    jkhsjdhjs committed Apr 7, 2023
    Configuration menu
    Copy the full SHA
    e30e6d6 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    1b17c7a View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    7bd0026 View commit details
    Browse the repository at this point in the history
  4. adapter.xml: support deserialization of Qualifier.kind

    Furthermore, check `Qualifier.kind` with `AASDataChecker` and add
    examplary values to example files.
    jkhsjdhjs committed Apr 7, 2023
    Configuration menu
    Copy the full SHA
    80b2760 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    dfdb08e View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    583159c View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    e7b5083 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    2373167 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    9da564c View commit details
    Browse the repository at this point in the history
  10. adapter: adjust for DataSpecificationIEC61360.value_format defaulti…

    …ng to `String`
    
    2373167 and
    9da564c changed the default
    `value_format` and `value_type` of `DataSpecificationIEC61360` and
    `ValueReferencePair` to `String`.
    This commit adjusts the JSON/XML adapters accordingly.
    jkhsjdhjs committed Apr 7, 2023
    Configuration menu
    Copy the full SHA
    f3b3b4f View commit details
    Browse the repository at this point in the history
  11. model: remove security.py

    The security model wasn't implemented and isn't part of the new V3.0
    schemata. The (de-)serialization functions weren't used since the
    removal of the security attribute from `AssetAdministrationShell` in
    1c45c3c.
    
    In turn, also remove security (de-)serialization functions from JSON/XML
    adapters.
    Remove ABAC XML namespace definition as it isn't used.
    jkhsjdhjs committed Apr 7, 2023
    Configuration menu
    Copy the full SHA
    9a4d9e3 View commit details
    Browse the repository at this point in the history

Commits on Apr 17, 2023

  1. Merge pull request #18 from acplt/improve/V30RC02

    Update the implementation to V3.0RC02
    s-heppner authored Apr 17, 2023
    Configuration menu
    Copy the full SHA
    ab298a7 View commit details
    Browse the repository at this point in the history

Commits on Apr 21, 2023

  1. Rename base.AASReference to ModelReference (#66)

    Rename AASReference to ModelReference in `test_base.py`
    
    ---------
    
    Co-authored-by: David Niebert <d.niebert@plt.rwth-aachen.de>
    Co-authored-by: s-heppner <s.heppner@plt.rwth-aachen.de>
    3 people authored Apr 21, 2023
    Configuration menu
    Copy the full SHA
    8304c2a View commit details
    Browse the repository at this point in the history

Commits on May 11, 2023

  1. test.model: Fix initialization of model.Key

    Renamed `model.KeyElements` to `model.KeyTypes` as defined for V3.0RC02 and V3.0. Adapted to new constructor of `model.Key`
    David Niebert authored and s-heppner committed May 11, 2023
    Configuration menu
    Copy the full SHA
    651a148 View commit details
    Browse the repository at this point in the history
  2. test.model: Change Indices of model.ModelReference in `test_base.…

    …test_resolve()`
    
    Multiple ModelReferences had the same Index. Fixed `mypy basyx test` errors
    David Niebert authored and s-heppner committed May 11, 2023
    Configuration menu
    Copy the full SHA
    4f9eac0 View commit details
    Browse the repository at this point in the history
  3. Revert "model.datatypes: add yearMonthDuration, dayTimeDuration, date…

    …TimeStamp"
    
    This reverts commit 8fee1c5.
    This commit was for V3.0RC02 only, it is reverted for V3.0
    compatibility.
    jkhsjdhjs authored and s-heppner committed May 11, 2023
    Configuration menu
    Copy the full SHA
    d8293c1 View commit details
    Browse the repository at this point in the history

Commits on May 12, 2023

  1. Configuration menu
    Copy the full SHA
    58b23bb View commit details
    Browse the repository at this point in the history
  2. test.model.test_base: adjust merged commits for V3.0

    This commit adjusts the following commits to work on V3.0 of the SDK:
    f45ae7f
    7289de0
    jkhsjdhjs committed May 12, 2023
    Configuration menu
    Copy the full SHA
    5aed20a View commit details
    Browse the repository at this point in the history

Commits on May 15, 2023

  1. Configuration menu
    Copy the full SHA
    8dcbb13 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    e1d0d78 View commit details
    Browse the repository at this point in the history

Commits on May 27, 2023

  1. Merge pull request #78 from acplt/merge/main_in_v30

    Merge branch 'main' into improve/V30
    s-heppner authored May 27, 2023
    Configuration menu
    Copy the full SHA
    b6993a1 View commit details
    Browse the repository at this point in the history

Commits on Jun 7, 2023

  1. base.AssetKind: Add new enum NOTAPPLICABLE and update description

    `NOTAPPLICABLE` added to `_generic.ASSET_KIND`
    David Niebert authored and s-heppner committed Jun 7, 2023
    Configuration menu
    Copy the full SHA
    4129c02 View commit details
    Browse the repository at this point in the history
  2. Revert unrelated change in aasJSONSchema

    David Niebert authored and s-heppner committed Jun 7, 2023
    Configuration menu
    Copy the full SHA
    94331a5 View commit details
    Browse the repository at this point in the history
  3. Seperate value NOT_APPLICABLE by _

    David Niebert authored and s-heppner committed Jun 7, 2023
    Configuration menu
    Copy the full SHA
    49743d0 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    e4bf363 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    d0d423a View commit details
    Browse the repository at this point in the history

Commits on Jun 12, 2023

  1. Add SubmodelElementList to KEY_TYPES dict

    `model.KeyTypes.SUBMODEL_ELEMENT_LIST` was missed in the KEY_TYPES dict, which is required for serialization
    zrgt authored and s-heppner committed Jun 12, 2023
    Configuration menu
    Copy the full SHA
    1445bdd View commit details
    Browse the repository at this point in the history

Commits on Jun 20, 2023

  1. model: Adapt constructor of class Key

    We adapt the changes in the specification for class `Key`:
    
    - Rename `model.KeyElements` to `model.KeyTypes` as defined for 
      V3.0RC02 and V3.0. Adapted to new constructor of `model.Key`
    - `test.model`: Change Indices of `model.ModelReference` in 
      `test_base.test_resolve()`
    -  Change all occurrences of value in `model.Key()` from 
      `abc` to `model.Identifier(abc)`
    - V3.0 changed type of `model.Key.value` from `str` to `Identifier`
    - Change type of `Key.value` from str to `Identifier`
    - Delete unnecessary length check in constructor of `base.Key` 
      because `model.Identifier` checks length constrains
    - Change __str__() in `base.Key` to fit the new type of `Key.value`
    
    ---------
    
    Co-authored-by: David Niebert <d.niebert@plt.rwth-aachen.de>
    Co-authored-by: s-heppner <s.heppner@plt.rwth-aachen.de>
    3 people authored Jun 20, 2023
    Configuration menu
    Copy the full SHA
    0136081 View commit details
    Browse the repository at this point in the history

Commits on Jun 27, 2023

  1. adapter.xml.xml_deserialization: except AASConstraintViolation in `…

    …_failsafe_construct()`
    
    Previously, raised `AASConstraintViolation` would immediately abort processing XML data in failsafe mode.
    jkhsjdhjs committed Jun 27, 2023
    Configuration menu
    Copy the full SHA
    edf5f27 View commit details
    Browse the repository at this point in the history
  2. examples, test: adjust AdministrativeInformation version and revision…

    … according to constraints
    jkhsjdhjs committed Jun 27, 2023
    Configuration menu
    Copy the full SHA
    fa929b8 View commit details
    Browse the repository at this point in the history
  3. model: add type aliases for constrained strings

    ...and replace usages of plain `str` where appropriate.
    jkhsjdhjs committed Jun 27, 2023
    Configuration menu
    Copy the full SHA
    69c9718 View commit details
    Browse the repository at this point in the history
  4. model: implement constraints for constrained string type aliases

    The constraints are implemented as functions in a new
    `model._string_constraints` module. Each of the functions verifies
    individual length and pattern constraints for the respective string
    type. The check-function for the respective string alias must be
    called, whenever a new value is assigned to an attribute, that is
    of the type of that string alias.
    
    This is realized via decorator-functions, that are defined for each
    string alias. These decorators extend the decorated class by a property
    attribute for the given attribute-name. The setter of that property
    calls the check-function whenever a new value is set. All
    setter-functions allow setting `None` values, because the decorator
    may be used for optional attributes as well. If `None` would be assigned
    to mandatory attributes, the typechecker catches this error.
    
    Wherever an attribute is already defined as a class property, the
    setter is extended by a call to the respective check-function.
    jkhsjdhjs committed Jun 27, 2023
    Configuration menu
    Copy the full SHA
    5ff2fd8 View commit details
    Browse the repository at this point in the history
  5. model.base: raise AASConstraintViolation in `AdministrativeInformat…

    …ion` when a revision is set without a version
    
    The specification defines this constraint as AASd-005.
    jkhsjdhjs committed Jun 27, 2023
    Configuration menu
    Copy the full SHA
    c81adf0 View commit details
    Browse the repository at this point in the history

Commits on Jun 29, 2023

  1. Reformulate Constraints for V3.0 (#85)

    Version 3.0 reformulates multiple Constraints.
    Reformulations that are connected to updates on 
    Version 3.0 are listed and NOT changed yet.
    
    I recommend to reformulate the constraints as part of the update.
    
    Reformulations:
    * 6
    * 7
    * 12
    * 20
    * 109
    * 115
    * 118
    * 121
    * 122
    * 123
    * 124
    * 125
    * 126
    * 127
    
    t.b.d. with other updates:
    * 2 (Referable/idShort)
    * 5 (AdministrativeInformation/version)
    * 77 (Extension/name)
    
    Constrains that have not been implemented yet and 
    therefore have not been reformulated:
    * 119
    * 120
    dxvidnrt authored Jun 29, 2023
    Configuration menu
    Copy the full SHA
    834b0aa View commit details
    Browse the repository at this point in the history

Commits on Jul 1, 2023

  1. Remove attribute kind from SubmodelElement

    `SubmodelElement` does not inherit from `base.HasKind` anymore. 
    Removed all occurences 
    of `kind` in `SubmodelElement` and its subclasses.
    
    * Remove attribute `kind` in initializations of objects of 
      type `SubmodelElement`.
    * Remove check for attribute `kind` in `_helper.py` for all 
      objects of type `SubmodelElement`
    * Remove attribute `kind` from methods in `json_deserialization.py` 
      that work on classes of type `SubmodelElement`
    * Remove attribute `kind` from methods in `xml_deserialization.py` 
      that work on classes of type `SubmodelElement`
    * Remove attribute `kind` from initialized objects of 
      type `SubmodelElement`
    * Remove attribute `kind` from initialized objects of 
      type `SubmodelElement` in file `example_aas_missing_attributes.py`
    * Remove check for attribute `kind` in `_check_qualifier_equal()`
    
    ---------
    
    Co-authored-by: David Niebert <d.niebert@plt.rwth-aachen.de>
    Co-authored-by: s-heppner <s.heppner@plt.rwth-aachen.de>
    3 people authored Jul 1, 2023
    Configuration menu
    Copy the full SHA
    77c33e7 View commit details
    Browse the repository at this point in the history

Commits on Jul 18, 2023

  1. Merge pull request #92 from rwth-iat/feature/constrained_string_datat…

    …ypes
    
    The constraints are implemented as functions in a new
    model._string_constraints module. Each of the functions verifies
    individual length and pattern constraints for the respective string
    type. The check-function for the respective string alias must be
    called, whenever a new value is assigned to an attribute, that is
    of the type of that string alias.
    
    This is realized via decorator-functions, that are defined for each
    string alias. These decorators extend the decorated class by a property
    attribute for the given attribute-name. The setter of that property
    calls the check-function whenever a new value is set. All
    setter-functions allow setting None values, because the decorator
    may be used for optional attributes as well. If None would be assigned
    to mandatory attributes, the typechecker catches this error.
    
    Wherever an attribute is already defined as a class property, the
    setter is extended by a call to the respective check-function.
    
    See also: #89
    s-heppner authored Jul 18, 2023
    Configuration menu
    Copy the full SHA
    3621036 View commit details
    Browse the repository at this point in the history

Commits on Jul 26, 2023

  1. Partially revert "Remove attribute kind from SubmodelElement"

    This partially reverts 77c33e7. The
    attribute is only removed from `SubmodelElement`s in the spec, but the
    commit also removes deserialization of the `kind`-Attribute for
    `Submodels` and some `kind` attributes of `Qualifier`s and `Submodel`s
    in the examples.
    jkhsjdhjs authored and s-heppner committed Jul 26, 2023
    Configuration menu
    Copy the full SHA
    d4280b6 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    ba2000b View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    6cb4add View commit details
    Browse the repository at this point in the history
  4. Revert "Change all occurrences of value in model.Key() from abc t…

    …o `model.Identifier(abc)`"
    
    This reverts commits d758bfd,
    10d399b and aae8caa.
    As `Identifier` is now implemented as a `str`-Alias, wrapping every
    string in `model.Identifier()` isn't necessary.
    jkhsjdhjs authored and s-heppner committed Jul 26, 2023
    Configuration menu
    Copy the full SHA
    f6a91aa View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    eddfc18 View commit details
    Browse the repository at this point in the history
  6. Merge pull request #97 from rwth-iat/merge/main_in_v30

    This merges the recent commits on main in improve/V30. Furthermore, a duplicate test is removed from test.model.test_base.
    s-heppner authored Jul 26, 2023
    Configuration menu
    Copy the full SHA
    196c98a View commit details
    Browse the repository at this point in the history

Commits on Aug 8, 2023

  1. model.aas: Add new attribute asset_type to AssetInformation

    David Niebert authored and s-heppner committed Aug 8, 2023
    Configuration menu
    Copy the full SHA
    f1e7278 View commit details
    Browse the repository at this point in the history
  2. Change type of all occurrences of AssetInformation.global_asset_id

    …from `base.ModelReference` to `base.Identifier`
    David Niebert authored and s-heppner committed Aug 8, 2023
    Configuration menu
    Copy the full SHA
    ef25fdc View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    042b9aa View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    e1a4dec View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    091d5be View commit details
    Browse the repository at this point in the history
  6. update XML/JSON schemata, adapter and test files for updated `AssetIn…

    …formation` attribute
    jkhsjdhjs authored and s-heppner committed Aug 8, 2023
    Configuration menu
    Copy the full SHA
    afa361b View commit details
    Browse the repository at this point in the history
  7. remove wrapping Identifier() around strings

    These were introduced in past commits for the attributes `asset_type`
    and `global_asset_id` of `AssetInformation`, but aren't necessary since
    `Identifier` is implemented as an alias for `str`.
    jkhsjdhjs authored and s-heppner committed Aug 8, 2023
    Configuration menu
    Copy the full SHA
    95b917f View commit details
    Browse the repository at this point in the history
  8. model.aas: add constraints to AssetInformation attributes

    The attributes `global_asset_id` and `asset_type` are of type
    `Identifier`, so they must be constrained accordingly.
    Additionally, this commits updates the docstring of these attributes.
    jkhsjdhjs authored and s-heppner committed Aug 8, 2023
    Configuration menu
    Copy the full SHA
    e3a1711 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    8aaa2b3 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    ebd2600 View commit details
    Browse the repository at this point in the history

Commits on Aug 10, 2023

  1. Merge pull request #102 from rwth-iat/merge/main_in_v30

    merge main in improve/V30
    s-heppner authored Aug 10, 2023
    Configuration menu
    Copy the full SHA
    e19ab55 View commit details
    Browse the repository at this point in the history
  2. adapter.xml.xml_deserialization: fix pycodestyle warnings

    Since a recent update, pycodestyle requires whitespaces between the last
    comma and the backslash at the end of a line, where it is broken.
    jkhsjdhjs authored and s-heppner committed Aug 10, 2023
    Configuration menu
    Copy the full SHA
    ee5d699 View commit details
    Browse the repository at this point in the history
  3. examples: fix pycodestyle warning

    Types should be compared via `is` instead of `==`.
    jkhsjdhjs authored and s-heppner committed Aug 10, 2023
    Configuration menu
    Copy the full SHA
    af15b0f View commit details
    Browse the repository at this point in the history

Commits on Aug 11, 2023

  1. model.KeyTypes: Ignore mypy errors for abstract classes to be compliant

    Mypy appears to not like abstract classes in a context where only
    concrete classes should be given:
    
    ```
    Only concrete class can be given where
    "tuple[type[Referable], KeyTypes]" is expected
    ```
    
    However, the spec demands the three abstract classes
    - `EventElement`
    - `DataElement`
    - `SubmodelElement`
    
    to appear inside the `model.KeyTypes` Enum.
    Therefore, we ignore these errors via `# type: ignore`.
    s-heppner committed Aug 11, 2023
    Configuration menu
    Copy the full SHA
    493d5d3 View commit details
    Browse the repository at this point in the history

Commits on Aug 22, 2023

  1. model.base: Add new attributes to class AdministrativeInformation

    Version 3.0 of the spec introduces the 2 new attributes
    - `creator`
    - `template_id`
    to class `AdministrativeInformation`.
    This commit adds them to the class.
    s-heppner committed Aug 22, 2023
    Configuration menu
    Copy the full SHA
    4b9dc86 View commit details
    Browse the repository at this point in the history
  2. model.base: adapt __eq__() and __repr__() of `AdministrativeInfor…

    …mation` for new attributes
    jkhsjdhjs authored and s-heppner committed Aug 22, 2023
    Configuration menu
    Copy the full SHA
    5050299 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    db77f66 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    3108a22 View commit details
    Browse the repository at this point in the history

Commits on Aug 23, 2023

  1. model.base: Rename GlobalReference to ExternalReference

    Version 3.0 of the spec renames `ReferenceTypes/GlobalReference` to
    `ReferenceTypes/ExternalReference` to avoid confusion with
    `KeyTypes/GlobalReference`.
    s-heppner authored and jkhsjdhjs committed Aug 23, 2023
    Configuration menu
    Copy the full SHA
    db1f5ff View commit details
    Browse the repository at this point in the history
  2. Fix PyCodeStyle

    s-heppner authored and jkhsjdhjs committed Aug 23, 2023
    Configuration menu
    Copy the full SHA
    0cdca73 View commit details
    Browse the repository at this point in the history
  3. Update JSON and XSD schemata

    s-heppner authored and jkhsjdhjs committed Aug 23, 2023
    Configuration menu
    Copy the full SHA
    f800e99 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    e706605 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    e766c54 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    65142e4 View commit details
    Browse the repository at this point in the history
  7. examples, test: rename AdministrativeInformation.creator references…

    … to `ExternalReference`
    jkhsjdhjs committed Aug 23, 2023
    Configuration menu
    Copy the full SHA
    5be0392 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    d1dbfce View commit details
    Browse the repository at this point in the history

Commits on Aug 24, 2023

  1. Merge pull request #106 from rwth-iat/Rename/GlobalReference

    Version 3.0 of the spec renames ReferenceTypes/GlobalReference to
    ReferenceTypes/ExternalReference to avoid confusion with
    KeyTypes/GlobalReference.
    
    This merge implements these changes.
    s-heppner authored Aug 24, 2023
    Configuration menu
    Copy the full SHA
    d360723 View commit details
    Browse the repository at this point in the history
  2. model.base: Rename ModelingKind to ModellingKind (#104)

    In version 3.0 the Enum ModelingKind has been
    renamed to ModellingKind.
    
    This renames the class definition and all
    its occurences in code and documentation.
    s-heppner authored Aug 24, 2023
    Configuration menu
    Copy the full SHA
    12156ca View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    539d438 View commit details
    Browse the repository at this point in the history
  4. adapter.json: improve LangStringSet json serialization

    Since `LangStringSet` was changed to be an own class in
    a1aaec3, we can check for a
    `LangStringSet` via `isinstance()` now and simplify the JSON
    serialization.
    jkhsjdhjs authored and s-heppner committed Aug 24, 2023
    Configuration menu
    Copy the full SHA
    e0e724b View commit details
    Browse the repository at this point in the history
  5. model.base: change type of SpecificAssetId.value to Identifier (#114

    )
    
    Co-authored-by: s-heppner <s.heppner@plt.rwth-aachen.de>
    jkhsjdhjs and s-heppner authored Aug 24, 2023
    Configuration menu
    Copy the full SHA
    07ca8d7 View commit details
    Browse the repository at this point in the history

Commits on Aug 31, 2023

  1. model: add ShortNameType constrained string alias

    This will be used for the constrained `MultiLanguageNameType` constrained
    `LangStringSet`.
    jkhsjdhjs authored and s-heppner committed Aug 31, 2023
    Configuration menu
    Copy the full SHA
    2f17cb9 View commit details
    Browse the repository at this point in the history
  2. model._string_constraints: add create_check_function()

    This function returns a new constraint-check function for strings
    that aren't of a specific type. This will be used by the constrained
    lang string sets `MultiLanguageTextType`, `DefinitionTypeIEC61360`,
    `PreferredNameTypeIEC61360` and `ShortNameTypeIEC61360`, where values
    aren't of a basic constrained string type, but are still constrained in
    minimum and maximum length.
    jkhsjdhjs authored and s-heppner committed Aug 31, 2023
    Configuration menu
    Copy the full SHA
    268f9bf View commit details
    Browse the repository at this point in the history
  3. model.base: add ConstrainedLangStringSet and subclasses

    This adds the abstract base class `ConstrainedLangStringSet` and the
    following subclasses:
    - `MultiLanguageNameType`
    - `MultiLanguageTextType`
    - `DefinitionTypeIEC61360`
    - `PreferredNameTypeIEC61360`
    - `ShortNameTypeIEC61360`
    
    `ConstrainedLangStringSet` is implemented as an abstract subclass of
    `LangStringSet`, which uses a given function to check the constraints
    of all stored values, similar to `ConstrainedList`. This function is
    called for every key-value pair on initialization and whenever a new
    key-value pair is added. Additionally, functions such as `__init__()`
    and `__setitem__()` of the base class `LangStringSet` are called where
    appropriate, such that all constraints for language tags are also
    checked here.
    
    Each of the concrete subclasses consist of just an `__init__()`
    function, that passes a constraint-check function to
    `ConstrainedLangStringSet.__init__()`.
    jkhsjdhjs authored and s-heppner committed Aug 31, 2023
    Configuration menu
    Copy the full SHA
    ba533d2 View commit details
    Browse the repository at this point in the history
  4. test.model.test_base: add LangStringSet test-cases

    This adds a few basic tests for `LangStringSet` and its subclasses, e.g.
    whether language-tag constraints are checked correctly, whether
    `LangStringSet` checks for emptiness and whether basic functionality
    such as string-representation, length-calculation and key-values
    iteration works as expected.
    
    Additionally, a basic test for value-constraints in
    `ConstrainedLangStringSet`s is added.
    jkhsjdhjs authored and s-heppner committed Aug 31, 2023
    Configuration menu
    Copy the full SHA
    1f50e8f View commit details
    Browse the repository at this point in the history
  5. replace all usages of LangStringSet with a ConstrainedLangStringSet

    `LangStringSet` still remains concrete but may be made abstract in the
    future.
    jkhsjdhjs authored and s-heppner committed Aug 31, 2023
    Configuration menu
    Copy the full SHA
    b70ea4d View commit details
    Browse the repository at this point in the history
  6. adapter: adjust for the new ConstrainedLangStringSets

    This commit changes the XML/JSON (de-)serialization adapter and
    corresponding schemata such that they are compatible with the new
    `ConstrainedLangStringSet` types.
    jkhsjdhjs authored and s-heppner committed Aug 31, 2023
    Configuration menu
    Copy the full SHA
    18b561d View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    2d68291 View commit details
    Browse the repository at this point in the history
  8. model.base: make extending a ConstrainedList atomic (#116)

    * model.base: make extending a ConstrainedList atomic
    
    model.base: make extending a ConstrainedList atomic
    
    Previously partial additions of elements via a call to `.extend()` were
    possible, since the `.extend()` method of the superclass simply calls
    `.append()` for each item, which in turn calls `.insert()`. 
    Thus, if the hook call for one item raised an exception, 
    all previous items had already been added.
    
    Furthermore, this PR adds tests for the atomicity of extension 
    and deletion operations of `ConstrainedList`.
    
    ---------
    
    Co-authored-by: s-heppner <s.heppner@plt.rwth-aachen.de>
    jkhsjdhjs and s-heppner authored Aug 31, 2023
    Configuration menu
    Copy the full SHA
    505694d View commit details
    Browse the repository at this point in the history

Commits on Sep 1, 2023

  1. model.AdministrativeInformation: Update formulation of AASd-005 to v3…

    ….0 (#120)
    
    Version 3.0 of the specification reformulates AASd-005:
    
    > If AdministrativeInformation/version is not specified,
      AdministrativeInformation/revision shall also be unspecified.
      This means that a revision requires a version. If there is no version,
      there is no revision. Revision is optional.
    s-heppner authored Sep 1, 2023
    Configuration menu
    Copy the full SHA
    31a82a9 View commit details
    Browse the repository at this point in the history

Commits on Sep 8, 2023

  1. Configuration menu
    Copy the full SHA
    18fde95 View commit details
    Browse the repository at this point in the history

Commits on Sep 20, 2023

  1. Remove constraint AASd-003

    Case-sensitive matching for idShorts is already implemented
    zrgt authored and s-heppner committed Sep 20, 2023
    Configuration menu
    Copy the full SHA
    e8e664d View commit details
    Browse the repository at this point in the history

Commits on Oct 3, 2023

  1. model.base: fix Referable.__repr__() for SubmodelElementList-chil…

    …dren
    
    Since AASd-120 prohibits specifying id_shorts of direct children of
    `SubmodelElementLists`, this commit adjusts `Referable.__repr__()` such
    that the index of the element in the corresponding list is returned
    instead.
    Furthermore, the tests are adjusted accordingly.
    jkhsjdhjs authored and s-heppner committed Oct 3, 2023
    Configuration menu
    Copy the full SHA
    598f05b View commit details
    Browse the repository at this point in the history
  2. model.submodel: add elements to SubmodelElementList after the `_val…

    …ue` attribute has been assigned
    
    This fixes an `AttributeError` previously raised during initialization
    of a `SubmodelElementList`, since the `check_constraints` function,
    which is called for every added item, may call `Referable.__repr__()`
    when the `value` attribute isn't set yet. The `AttributeError` occured
    because `Referable.__repr__()` accesses the `value` attribute for direct
    children of a `SubmodelElementList` (1aa0e82).
    This is worked around by first assigning the `OrderedNamespaceSet` to
    the `value`-attribute and then adding each item separately.
    jkhsjdhjs authored and s-heppner committed Oct 3, 2023
    Configuration menu
    Copy the full SHA
    6b4fd27 View commit details
    Browse the repository at this point in the history
  3. model.base: replace continue with break in NamespaceSet.remove()

    If an item has been found, it doesn't make any sense to continue
    iterating the remaining items. Thus, this `continue` is replaced by a
    `break`, to break out of the loop once an item has been found.
    jkhsjdhjs authored and s-heppner committed Oct 3, 2023
    Configuration menu
    Copy the full SHA
    d96c605 View commit details
    Browse the repository at this point in the history
  4. adapter.json.json_deserialization: handle AASConstraintViolation

    Previously, `AASConstraintViolation` exception weren't excepted in the
    json deserialization, breaking failsafe parsing whenever a constraint is
    violated. This commit ports edf5f27 to
    the json deserialization.
    jkhsjdhjs authored and s-heppner committed Oct 3, 2023
    Configuration menu
    Copy the full SHA
    9e8d46c View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    8cdfcb7 View commit details
    Browse the repository at this point in the history
  6. model.base: fix ModelReference.resolve() error messages for element…

    …s contained in `SubmodelElementLists`
    
    Some error messages raised in `ModelReference.resolve()` make use of the
    `resolved_keys` local list variable, which keeps track of all
    Identifiers, id_shorts and `SubmodelElementList` indices that have been
    resolved successfully.
    Instead of `SubmodelElementList` indices, the children's id_shorts were
    added to this list previously, which is inconsistent, and soon would
    cease to work anyway, since AASd-120 prohibits specifying id_shorts for
    children of `SubmodelElementList`.
    This commit fixes this such that indices are added and adjusts the tests
    accordingly.
    jkhsjdhjs authored and s-heppner committed Oct 3, 2023
    Configuration menu
    Copy the full SHA
    09b68a4 View commit details
    Browse the repository at this point in the history

Commits on Oct 6, 2023

  1. make id_shorts optional

    Since `SubmodelElementLists` require that their children elements don't
    have `id_shorts`, they have to be made optional for all elements, but
    required for `NamespaceSets`.
    jkhsjdhjs authored and s-heppner committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    bffb075 View commit details
    Browse the repository at this point in the history
  2. model.base: implement AASd-022 correctly

    Type is changed from `KeyError` to `AASConstraintViolation` and the
    tests are adjusted accordingly.
    Furthermore, the NamespaceSet.add() identifier uniqueness check is moved
    after the simple parent check for performance reasons, solely because
    the parent check is a lot faster.
    jkhsjdhjs authored and s-heppner committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    894403d View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    d5f4919 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    105a0e6 View commit details
    Browse the repository at this point in the history
  5. model._string_constraints: escape unicode characters in errors

    Escape unicode characters in regular expression patterns and string
    values for clean error messages.
    jkhsjdhjs authored and s-heppner committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    3c299d4 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    8ebe456 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    ef66f3e View commit details
    Browse the repository at this point in the history

Commits on Oct 10, 2023

  1. Remove the www. subdomain in AASX namespace (#122)

    Needed to be compliant to the spec V3.0. 
    
    Fixes #96 
    
    ---------
    
    Co-authored-by: s-heppner <s.heppner@plt.rwth-aachen.de>
    zrgt and s-heppner authored Oct 10, 2023
    Configuration menu
    Copy the full SHA
    25adeca View commit details
    Browse the repository at this point in the history

Commits on Oct 12, 2023

  1. model.base: add item_id_{set,del}_hook to NamespaceSet

    These hooks allow dynamically assigning a value to the identifying
    attribute of an object whenever it is added to a `NamespaceSet`
    (`item_id_set_hook`). Furthermore, the `item_id_del_hook` allows
    unsetting the identifying attribute whenever an object is removed
    from a `NamespaceSet`.
    This functionality is necessary for the implementation of
    `SubmodelElementLists`, because there we need to store items without
    an identifying attribute in a `NamespaceSet`.
    jkhsjdhjs authored and s-heppner committed Oct 12, 2023
    Configuration menu
    Copy the full SHA
    cb596a9 View commit details
    Browse the repository at this point in the history
  2. Remove DataSpecificationPhysicalUnit (#137)

    As the DataSpecificationPhysicalUnit is not part of V3.0 it was removed from the SDK.
    Fixes #136
    zrgt authored Oct 12, 2023
    Configuration menu
    Copy the full SHA
    35bc834 View commit details
    Browse the repository at this point in the history
  3. generate unique id_shorts for SubmodelElementList-children

    Constraint AASd-120 requires direct children of a `SubmodelElementList`
    to have id_short=None. On the contrary, `SubmodelElementList` must be a
    Namespace, since children of Lists must still be referable via
    References, and also must be allowed to reference their parent, which
    is expected to be a Namespace.
    Since id_short=None must hold for all direct children, they lack
    a unique identifying attribute, that can be used to refer to an
    item. However, this is required for a Namespace.
    
    Thus, we had two options for implementing this:
    - Refactor a lot of the model.base module such that `SubmodelElementLists`
      are considered Namespaces
    - Generate a unique id_short for every direct children of a
      `SubmodelElementList` whenever it is added.
    
    Since the first alternative would require a distinction for
    `SubmodelElementList` in all places where a `Namespace` is used, we
    decided on the second alternative.
    
    This commit implements the generation of unique id_shorts via the
    `item_id_set_hook`, that was recently added to `NamespaceSet` and
    `OrderedNamespaceSet`. It is called for every added SubmodelElement.
    Furthermore, the `item_id_del_hook` is called for every removed
    SubmodelElement and used to remove the generated id_short again.
    
    This aside, the examples and unit tests are also adjusted such that the
    id_short is removed for all direct children of `SubmodelElementList`.
    Furthermore, a test for `AASd-120` is added.
    The AASDataChecker is adjusted to skip the comparison of id_short for
    direct children of `SubmodelElementList`, since these are generated and
    thus never the same now.
    For the same reason, the XML/JSON serialisation is adjusted to skip
    serialising the id_short if direct children of a `SubmodelElementList`.
    jkhsjdhjs committed Oct 12, 2023
    Configuration menu
    Copy the full SHA
    927f125 View commit details
    Browse the repository at this point in the history
  4. examples.data._helper: disable comparison of unordered `SubmodelEleme…

    …ntList`
    
    Since direct children of `SubmodelElementList` don't have an identifying
    attribute anymore (AASd-120), they cannot be compared because it is
    impossible to know which SubmodelElement should be compared against
    which other element. Maybe this can be implemented again in the future,
    when hashing is implemented for all SubmodelElements, but for now we
    raise a `NotImplementedError`.
    
    A test-case for this behavior is added and `order_relevant` is set to
    `true` in all example files.
    jkhsjdhjs committed Oct 12, 2023
    Configuration menu
    Copy the full SHA
    cc11346 View commit details
    Browse the repository at this point in the history
  5. test: update compliance tool test-files

    This commit applies the following changes to all test-files:
    - The id_short of direct children of a `SubmodelElementList` is removed
    - `SubmodelElementList.order_relevant` is set to true for all
      `SubmodelElementList`s
    jkhsjdhjs committed Oct 12, 2023
    Configuration menu
    Copy the full SHA
    a0a2416 View commit details
    Browse the repository at this point in the history

Commits on Oct 16, 2023

  1. Set id_short of Identifiables to optional

    This commit extends bffb075.
    zrgt committed Oct 16, 2023
    Configuration menu
    Copy the full SHA
    1545e47 View commit details
    Browse the repository at this point in the history
  2. Merge remote-tracking branch 'acplt/feature/SubmodelElementList_gener…

    …ated_id_shorts_aasd_120' into fix/id_short
    zrgt committed Oct 16, 2023
    Configuration menu
    Copy the full SHA
    250517d View commit details
    Browse the repository at this point in the history

Commits on Oct 17, 2023

  1. Update compliance tool test files

    As default value of Submodel.id_short, ConceptDescription.id_short, AAS.id_short is set to None, test files had to be updated.
    zrgt committed Oct 17, 2023
    Configuration menu
    Copy the full SHA
    c44bbc9 View commit details
    Browse the repository at this point in the history

Commits on Oct 18, 2023

  1. generate unique id_shorts for SubmodelElementList-children

    Constraint AASd-120 requires direct children of a `SubmodelElementList`
    to have id_short=None. On the contrary, `SubmodelElementList` must be a
    Namespace, since children of Lists must still be referable via
    References, and also must be allowed to reference their parent, which
    is expected to be a Namespace.
    Since id_short=None must hold for all direct children, they lack
    a unique identifying attribute, that can be used to refer to an
    item. However, this is required for a Namespace.
    
    Thus, we had two options for implementing this:
    - Refactor a lot of the model.base module such that `SubmodelElementLists`
      are considered Namespaces
    - Generate a unique id_short for every direct children of a
      `SubmodelElementList` whenever it is added.
    
    Since the first alternative would require a distinction for
    `SubmodelElementList` in all places where a `Namespace` is used, we
    decided on the second alternative.
    
    This commit implements the generation of unique id_shorts via the
    `item_id_set_hook`, that was recently added to `NamespaceSet` and
    `OrderedNamespaceSet`. It is called for every added SubmodelElement.
    Furthermore, the `item_id_del_hook` is called for every removed
    SubmodelElement and used to remove the generated id_short again.
    
    This aside, the examples and unit tests are also adjusted such that the
    id_short is removed for all direct children of `SubmodelElementList`.
    Furthermore, a test for `AASd-120` is added.
    The AASDataChecker is adjusted to skip the comparison of id_short for
    direct children of `SubmodelElementList`, since these are generated and
    thus never the same now.
    For the same reason, the XML/JSON serialisation is adjusted to skip
    serialising the id_short if direct children of a `SubmodelElementList`.
    jkhsjdhjs authored and s-heppner committed Oct 18, 2023
    Configuration menu
    Copy the full SHA
    9e6f80b View commit details
    Browse the repository at this point in the history
  2. examples.data._helper: disable comparison of unordered `SubmodelEleme…

    …ntList`
    
    Since direct children of `SubmodelElementList` don't have an identifying
    attribute anymore (AASd-120), they cannot be compared because it is
    impossible to know which SubmodelElement should be compared against
    which other element. Maybe this can be implemented again in the future,
    when hashing is implemented for all SubmodelElements, but for now we
    raise a `NotImplementedError`.
    
    A test-case for this behavior is added and `order_relevant` is set to
    `true` in all example files.
    jkhsjdhjs authored and s-heppner committed Oct 18, 2023
    Configuration menu
    Copy the full SHA
    1dc894b View commit details
    Browse the repository at this point in the history
  3. test: update compliance tool test-files

    This commit applies the following changes to all test-files:
    - The id_short of direct children of a `SubmodelElementList` is removed
    - `SubmodelElementList.order_relevant` is set to true for all
      `SubmodelElementList`s
    jkhsjdhjs authored and s-heppner committed Oct 18, 2023
    Configuration menu
    Copy the full SHA
    0fb4fb1 View commit details
    Browse the repository at this point in the history
  4. Set SpecificAssetId.external_subject_id as optional

    according to the spec
    zrgt authored and s-heppner committed Oct 18, 2023
    Configuration menu
    Copy the full SHA
    a91ee0a View commit details
    Browse the repository at this point in the history
  5. test.compliance_tool: Manually update test aasx files

    In order to be able to merge #139, we need to manually adapt the
    aasx test files.
    
    This commit is yet another reason for why we should stop using
    binary test files.
    s-heppner committed Oct 18, 2023
    Configuration menu
    Copy the full SHA
    9dbea12 View commit details
    Browse the repository at this point in the history

Commits on Oct 19, 2023

  1. Merge pull request #139 from rwth-iat/fix/id_short

    Set `id_short` of `Identifiables` to optional
    s-heppner authored Oct 19, 2023
    Configuration menu
    Copy the full SHA
    7c21edf View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    fefb27b View commit details
    Browse the repository at this point in the history
  3. Set typehint of EmbeddedDataSpecification.data_specification

     Set to Reference instead of ExternalReference according to specs
    zrgt authored and s-heppner committed Oct 19, 2023
    Configuration menu
    Copy the full SHA
    99cfc76 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    483a0e6 View commit details
    Browse the repository at this point in the history
  5. Update compliance tool test files

    As default value of Submodel.id_short, ConceptDescription.id_short, AAS.id_short is set to None, test files had to be updated.
    zrgt authored and s-heppner committed Oct 19, 2023
    Configuration menu
    Copy the full SHA
    dad03a6 View commit details
    Browse the repository at this point in the history
  6. Update IEC61360_DATA_TYPES

    zrgt authored and s-heppner committed Oct 19, 2023
    Configuration menu
    Copy the full SHA
    84bc0f6 View commit details
    Browse the repository at this point in the history
  7. Fix the implementation of DataSpecificationIEC61360

    - Update IEC61360_DATA_TYPES from the Spec
    - Add checking of value_type string: 1<len(value_type)<2000
    - Some Refactoring
    - Fix typehint of DataSpecification according to the spec
    - Simplify Value and ValueReferencePair, as value is just a string acc. to spec
    - Fix value_format, as it not one of xsd types, but also a string (e.g. "X..17" or "M" or "NR2..3.3"), which describes how the value should look like. Look in IEC61360-1 for further info
    zrgt authored and s-heppner committed Oct 19, 2023
    Configuration menu
    Copy the full SHA
    b1d0c3f View commit details
    Browse the repository at this point in the history
  8. Fix pycodestyle issue

    zrgt authored and s-heppner committed Oct 19, 2023
    Configuration menu
    Copy the full SHA
    f72b99f View commit details
    Browse the repository at this point in the history
  9. Fix ValueReferencePairTest

    zrgt authored and s-heppner committed Oct 19, 2023
    Configuration menu
    Copy the full SHA
    8fbaa64 View commit details
    Browse the repository at this point in the history

Commits on Oct 20, 2023

  1. Remove binary files from test files for compliance tool (#143)

    * Remove binary files from test files
    
    As binary files are not appropriate for git, we decided instead to create folders with the exact structure like in .aasx files and zip these folder when initializing a ComplianceToolAASXTest.
    
    * Add setUpClass() and tearDownClass().
    
    Instead init() use setUpClass() to generate AASX files with zipped dirs and delete these AASX files after tests are finished.
    
    * Remove test_empty.aasx binary
    
    It will be generated in ComplianceToolAASXTest.setUpClass()
    
    * Remove ComplianceToolAASXTest.tearDownClass()
    
    As other tests also need AASX files, we cannot remove AASX files after all Tests in ComplianceToolAASXTest are run. That is why tearDownClass() was removed
    
    * Move generation of AASX files to __init__.py
    
    As other tests also need AASX files, we cannot generate  AASX files in ComplianceToolAASXTest, because other tests can be run before or without tests from ComplianceToolAASXTest.
    zrgt authored Oct 20, 2023
    Configuration menu
    Copy the full SHA
    9d01620 View commit details
    Browse the repository at this point in the history

Commits on Nov 3, 2023

  1. Add Constraint AASd-133 in SpecificAssetId documentation (#147)

    This adds a documentation of AASd-133 to `SpecificAssetId`.
    
    ---------
    
    Co-authored-by: s-heppner <s.heppner@plt.rwth-aachen.de>
    zrgt and s-heppner authored Nov 3, 2023
    Configuration menu
    Copy the full SHA
    5eb895e View commit details
    Browse the repository at this point in the history

Commits on Nov 13, 2023

  1. model.base: fix ConstrainedList.clear() atomicity

    The default inherited `clear()` implementation repeatedly deletes the
    last item of the list until the list is empty. If the last item can be
    deleted successfully, but an item in front of it that will be deleted
    later cannot, this makes `clear()` non-atomic.
    
    Thus, the `clear()` method is now overriden in an atomic way.
    Furthermore, the ConstrainedList atomicity test is fixed to correctly
    test for this as well.
    jkhsjdhjs authored and s-heppner committed Nov 13, 2023
    Configuration menu
    Copy the full SHA
    886313e View commit details
    Browse the repository at this point in the history

Commits on Nov 14, 2023

  1. Fix Entity.specificAssetIds in schemas

    zrgt authored and s-heppner committed Nov 14, 2023
    Configuration menu
    Copy the full SHA
    347c2a0 View commit details
    Browse the repository at this point in the history
  2. - Set Entity.specific_asset_id as Iterable[SpecificAssetId], beca…

    …use the spec has changed
    
    - Add check of constraint AASd-014 for Entity, see https://rwth-iat.github.io/aas-specs/AASiD/AASiD_1_Metamodel/index.html#Entity
    - Add check of constraint AASd-131 for AssetInformation, see https://rwth-iat.github.io/aas-specs/AASiD/AASiD_1_Metamodel/index.html#AssetInformation
    - Refactor de-/serialization of Entity
    - Refactor deserialization of AssetInformation because of check of constraint AASd-131
    zrgt authored and s-heppner committed Nov 14, 2023
    Configuration menu
    Copy the full SHA
    dc8d119 View commit details
    Browse the repository at this point in the history
  3. Refactor check_entity_equal()&check_asset_information_equal()

    Add function for checking `Iterable[SpecificAssetId]`
    zrgt authored and s-heppner committed Nov 14, 2023
    Configuration menu
    Copy the full SHA
    9dc68f0 View commit details
    Browse the repository at this point in the history
  4. Update test files

    - Add globalAssetId for all `ÀssetInformation`
    - Fix Entity.specificAssetIds in test files
    zrgt authored and s-heppner committed Nov 14, 2023
    Configuration menu
    Copy the full SHA
    931c669 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    cb7ad32 View commit details
    Browse the repository at this point in the history
  6. Use getter/setter decorators for global_asset_id

    - Use getter/setter decorators for global_asset_id
    - Refactor `Entity.__init__`: use setter for `entity_type` and remove `_validate_asset_ids_for_entity_type()` from init because it will be called in `entity_type` setter
    - Add return type to some init funcs of abstract classes to calm down MyPy
    zrgt authored and s-heppner committed Nov 14, 2023
    Configuration menu
    Copy the full SHA
    5bdd4f7 View commit details
    Browse the repository at this point in the history
  7. Fix errors from MyPy

    zrgt authored and s-heppner committed Nov 14, 2023
    Configuration menu
    Copy the full SHA
    9e42551 View commit details
    Browse the repository at this point in the history
  8. Fix pycodestyle errors

    zrgt authored and s-heppner committed Nov 14, 2023
    Configuration menu
    Copy the full SHA
    85285c8 View commit details
    Browse the repository at this point in the history
  9. Fix typehint of specific_asset_id

    zrgt authored and s-heppner committed Nov 14, 2023
    Configuration menu
    Copy the full SHA
    a7ee225 View commit details
    Browse the repository at this point in the history
  10. Fix wrong example value

    zrgt authored and s-heppner committed Nov 14, 2023
    Configuration menu
    Copy the full SHA
    bdb5cc2 View commit details
    Browse the repository at this point in the history
  11. model.submodel: remove _string_constraints decorator from Entity

    This decorator silently overrides the `global_asset_id` property,
    resulting in the constraints not being checked properly.
    jkhsjdhjs authored and s-heppner committed Nov 14, 2023
    Configuration menu
    Copy the full SHA
    5408c46 View commit details
    Browse the repository at this point in the history
  12. model.submodel: move Entity.global_asset_id string constraint check…

    … to setter
    
    This only needs to be checked if the `global_asset_id` changes.
    jkhsjdhjs authored and s-heppner committed Nov 14, 2023
    Configuration menu
    Copy the full SHA
    114053d View commit details
    Browse the repository at this point in the history
  13. model.submodel: remove duplicate code in Entity

    `_validate_asset_ids_for_entity_type()` only needs to know whether there
    are `specific_asset_ids` or not. This can be represented by a boolean,
    allowing the delete hook of the `ConstrainedList` to make use of this
    function as well.
    jkhsjdhjs authored and s-heppner committed Nov 14, 2023
    Configuration menu
    Copy the full SHA
    62932e8 View commit details
    Browse the repository at this point in the history
  14. model.ass: add _validate_asset_ids() function to AssetInformation

    Similar to `submodel.Entity`, this is done to reduce duplicate code.
    jkhsjdhjs authored and s-heppner committed Nov 14, 2023
    Configuration menu
    Copy the full SHA
    015ed62 View commit details
    Browse the repository at this point in the history
  15. model.{aas, submodel}: add set hook to `{AssetInformation, Entity}.sp…

    …ecific_asset_id`
    
    Since `__setitem__` can be used to clear the list as well (e.g.
    `list[:] = ()`), the constraints need to be verified in this case as
    well.
    jkhsjdhjs authored and s-heppner committed Nov 14, 2023
    Configuration menu
    Copy the full SHA
    f82dd58 View commit details
    Browse the repository at this point in the history
  16. model.submodel: assign values correctly in Entity.__init__

    The attributes need to be assigned bypassing the setters because the
    setters try to access attributes that haven't been set yet for
    constraint validation. Only `global_asset_id` is set via the setter
    as a final constraint validation, and because `global_asset_id` is
    also constrained via a string constraint.
    jkhsjdhjs authored and s-heppner committed Nov 14, 2023
    Configuration menu
    Copy the full SHA
    07c8012 View commit details
    Browse the repository at this point in the history
  17. model.{aas, submodel}: add getter/setter for `{AssetInformation, Enti…

    …ty}.specific_asset_id`
    
    This prevents setting the attributes without verification of the constraints.
    jkhsjdhjs authored and s-heppner committed Nov 14, 2023
    Configuration menu
    Copy the full SHA
    7a073ad View commit details
    Browse the repository at this point in the history
  18. model.submodel: verify constraints when SpecificAssetIds are added …

    …to `Entity`
    
    This adds an `item_add_hook` to the `specific_asset_id`
    `ConstrainedList`, which is called whenever a new item is added to the
    list. This is necessary because a co-managed `Entity` is not allowed to
    have specific asset ids, so it shouldn't be possible to add any in this
    case.
    jkhsjdhjs authored and s-heppner committed Nov 14, 2023
    Configuration menu
    Copy the full SHA
    7fdb952 View commit details
    Browse the repository at this point in the history
  19. model.{aas, submodel}: improve `{AssetInformation, Entity}.global_ass…

    …et_id` type hints
    jkhsjdhjs authored and s-heppner committed Nov 14, 2023
    Configuration menu
    Copy the full SHA
    e39f16e View commit details
    Browse the repository at this point in the history
  20. Configuration menu
    Copy the full SHA
    73dc4ea View commit details
    Browse the repository at this point in the history
  21. Refactor Entity and AssetInformation

    - Refactor hook funcs param names
    - Set all private attributes, bypassing setters.
    - Place setting of `Entity._global_asset_id` ahead of `Entity._specific_asset_id` to set item_add_hook directly in the ConstrainedList initialization
    - Rename `Entity._validate_asset_ids_for_entity_type` to `Entity._validate_asset_ids`
    - Place check of `global_asset_id` value into `_validate_asset_ids`
    - Run `_validate_asset_ids` at the end of init
    zrgt authored and s-heppner committed Nov 14, 2023
    Configuration menu
    Copy the full SHA
    c25e5f0 View commit details
    Browse the repository at this point in the history
  22. Refactor Entity and AssetInformation

    - Bundle check methods together at the end of classes
    - Extract validation of `global_asset_id` to `_validate_asset_ids()`
    - Rename `Entity._validate_asset_ids()` to `_validate_aasd_014` and `AssetInformation._validate_asset_ids()` to `_validate_aasd_131`, as the methods only validate these constraints and not all asset ids
    zrgt authored and s-heppner committed Nov 14, 2023
    Configuration menu
    Copy the full SHA
    cabc193 View commit details
    Browse the repository at this point in the history
  23. make Operation a Namespace

    This commit makes `Operation` inherit from
    `UniqueIdShortNamespace`, to implement Constraint AASd-134:
    
    For an Operation, the idShort of all inputVariable/value,
    outputVariable/value, and inoutputVariable/value shall be unique.
    
    In the DotAAS spec, the attributes `inputVariable`, `outputVariable`
    and `inoutputVariable` of `Operation` are defined to be a collection of
    `OperationVariable` instances, which themselves just contain a single
    `SubmodelElement`. Thus, the `OperationVariable` isn't really required
    for `Operation`, as the `Operation` can just contain the
    `SubmodelElements` directly, without an unnecessary wrapper. This makes
    `Operation` less tedious to use and also allows us to use normal
    `NamespaceSets` for the 3 attributes, which together with the
    `UniqueIdShortNamespace` ensure, that the `idShort` of all contained
    `SubmodelElements` is unique across all 3 attributes.
    
    Aside this, the examples are updated since `SubmodelElements` as
    children of an `Operation` are now linked to the parent. This prevents
    us from reusing other `SubmodelElements` as `OperationVariables` as it
    was done previously, since each `SubmodelElement` can only have one
    parent.
    
    Fix #146 #148
    jkhsjdhjs authored and s-heppner committed Nov 14, 2023
    Configuration menu
    Copy the full SHA
    1d87d2d View commit details
    Browse the repository at this point in the history
  24. model._string_constraints: don't overwrite existing attributes in cas…

    …e of a conflict
    
    Currently a string constraints decorator silently overwrites existing
    attributes in case of a naming conflict. This behavior is changed such
    that the decorator checks for existing attributes beforehand and raises
    an exception in case of a conflict.
    Futhermore, tests for this behavior are added.
    jkhsjdhjs authored and s-heppner committed Nov 14, 2023
    Configuration menu
    Copy the full SHA
    bc2ff75 View commit details
    Browse the repository at this point in the history
  25. model.base: Improve NamespaceSet (#155)

    - Refactor `NamespaceSet.add()` as too big
    - Extract some methods, in particular `_execute_item_del_hook` 
      to avoid code duplication
    - As we check different constraints for uniqueness in the namespace, 
      I defined `ATTRIBUTES_CONSTRAINT_IDS`. 
      The dict will be used when throwing exception. 
      The solution with the dict is temporary, we need another solution here.
    - Use correct constraint ids for each NamespaceSet in tests, use 000 if not constraint id is suitable
    zrgt authored Nov 14, 2023
    Configuration menu
    Copy the full SHA
    defe3b7 View commit details
    Browse the repository at this point in the history
  26. Update constraints.rst docs

    zrgt authored and s-heppner committed Nov 14, 2023
    Configuration menu
    Copy the full SHA
    2b82cc6 View commit details
    Browse the repository at this point in the history
  27. Configuration menu
    Copy the full SHA
    bb3ed92 View commit details
    Browse the repository at this point in the history
  28. adapter.json: Update Schema to comply with v3.0

    Please note, that according to [#72], we decided not
    to include the `File` pattern, since the
    specification is wrong at this.
    
    [#72](#72)
    s-heppner committed Nov 14, 2023
    Configuration menu
    Copy the full SHA
    9a9bd8a View commit details
    Browse the repository at this point in the history
  29. test: remove null values from example files

    These went unnoticed previously since the JSON schema doesn't prohibit
    additional attributes. Now that the `modelType` is defined as a constant
    string per definition, a `Property` object only matches against the
    corresponding definition, allowing more strict validation, that catches
    errors such as these null values.
    jkhsjdhjs authored and s-heppner committed Nov 14, 2023
    Configuration menu
    Copy the full SHA
    24d4cf3 View commit details
    Browse the repository at this point in the history
  30. Configuration menu
    Copy the full SHA
    58d0fea View commit details
    Browse the repository at this point in the history

Commits on Nov 16, 2023

  1. adapter.json: Remove deprecated XSD DataTypes from Schema

    This removes the two XSD datatypes
    
    - `xs:dateTimeStamp`
    - `xs:dayTimeDuration`
    
    from the `DataTypeDefXsd` in the JSON schema, as they were
    removed from the specification in v3.0
    s-heppner committed Nov 16, 2023
    Configuration menu
    Copy the full SHA
    9fcf8be View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    eed8972 View commit details
    Browse the repository at this point in the history
  3. adapter.xml: Update XSD of valueDataType and Extension

    This commit remanes `valueDataType_t` from the XSD to
    `valueDataType`.
    Furthermore, it adds a missing `<reference>` tag around
    the `refersTo` References of `Extension`.
    s-heppner committed Nov 16, 2023
    Configuration menu
    Copy the full SHA
    aef62f8 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    bfc2cca View commit details
    Browse the repository at this point in the history
  5. adapter.xml: Change order of SubmodelElementList objects

    The current order of the elements in `SubmodelElementList`
    was wrong. This updates the order.
    s-heppner committed Nov 16, 2023
    Configuration menu
    Copy the full SHA
    b5b4a41 View commit details
    Browse the repository at this point in the history
  6. adapter.xml: Remove <aas:kind> from SubmodelElements in XSD

    Version 3.0 of the spec removes the attribute `kind` from
    `SubmodelElement`s.
    While we already implemented this, it was still missing in the
    XSD Schema, as well as the examples. This commit fixes that.
    s-heppner committed Nov 16, 2023
    Configuration menu
    Copy the full SHA
    a5b61f4 View commit details
    Browse the repository at this point in the history
  7. adapter.xml: Fix deserialization for Extension

    Currently, the XML deserialization missed the
    `<aas:refersTo>` wrapper around the single references
    inside `Extension.refers_to`. This commit fixes that.
    s-heppner committed Nov 16, 2023
    Configuration menu
    Copy the full SHA
    1ada11f View commit details
    Browse the repository at this point in the history
  8. model.Extension: Change refers_to to be of type Set[Reference]

    Currently, `Extension.refers_to` is declared as a `Iterable[Reference]`.
    This implies, that we can not necessarily check, whether or not the
    attribute is empty or not.
    This creates a problem with the XML serialization, since the
    `<aas.refersTo>` element should only appear if there is at least
    one `Reference` inside.
    
    This commit changes the `Extension.refers_to` to be a set of
    `Reference`s, as well as adapting a more clear check whether
    or not the attribute is empty in `adapter.xml.xml_serialization`.
    s-heppner committed Nov 16, 2023
    Configuration menu
    Copy the full SHA
    03c1579 View commit details
    Browse the repository at this point in the history
  9. Soften the language tag constraint

    remove constraint, that if the second part of lang tag exists, it must be a region
    
    See #157
    zrgt authored and s-heppner committed Nov 16, 2023
    Configuration menu
    Copy the full SHA
    f6074ee View commit details
    Browse the repository at this point in the history
  10. Update test_language_tag_constraints

    zrgt authored and s-heppner committed Nov 16, 2023
    Configuration menu
    Copy the full SHA
    aef37fe View commit details
    Browse the repository at this point in the history

Commits on Nov 17, 2023

  1. compliance_tool: add verification of Extensions

    Previously, the compliance tool would ignore `Extensions` of objects.
    However, during the update to V3.0 and the changes to the JSON/XML
    formats, we noticed that the adapters aren't properly tested this way.
    
    The validation of `Extensions` can be disabled via the flag
    `--dont-check-extensions` or the keyword argument `check_extensions` to
    `AASDataChecker`, since many users are probably only interested in
    comparing the main model, without any extensions.
    jkhsjdhjs authored and s-heppner committed Nov 17, 2023
    Configuration menu
    Copy the full SHA
    4384bbb View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    dd361c6 View commit details
    Browse the repository at this point in the history

Commits on Nov 20, 2023

  1. README: Bump to v3.0

    s-heppner committed Nov 20, 2023
    Configuration menu
    Copy the full SHA
    0f55c2a View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    e520b71 View commit details
    Browse the repository at this point in the history

Commits on Nov 21, 2023

  1. Configuration menu
    Copy the full SHA
    6d58ca7 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    de82662 View commit details
    Browse the repository at this point in the history

Commits on Nov 22, 2023

  1. test.adapter.xml: remove 'type: ignore' comments

    These comments were mistakenly re-added in a previous merge of main into
    improve/V30.
    jkhsjdhjs authored and s-heppner committed Nov 22, 2023
    Configuration menu
    Copy the full SHA
    2db802b View commit details
    Browse the repository at this point in the history