Skip to content

Conversation

@ZANDx1
Copy link

@ZANDx1 ZANDx1 commented Oct 27, 2025

Added an additional unit test in test_aasx_utils.py that verifies the behavior of AASXWriter.write_all_aas_objects with referenced and unreferenced submodels.

write_all_aas_objects does indeed include all Submodels. See unittest

As for the docstring, one could leave it as it is as the functions description already explains it.

Closes #209

Frosty2500 and others added 19 commits April 23, 2025 14:38
…asyx#363)

We add a missing import statement of `basyx.aas.adapter.json`. 

Fixes eclipse-basyx#352
…syx#356)

Currently, there are several wrong imports and
outdated unittests in the `compliance-tool` 
package.

This fixes these issues.

Fixes eclipse-basyx#354
…ce` (eclipse-basyx#337)

Previously, if the `semantic_id` was a 
`ModelReference`, it very often had the generic 
`type` "`model.Referable`" instead of the actual
type of the object it points to. This lead to a 
bug in the AASX writer, where 
`ConceptDescription`s were not written to the 
AASX, even though they existed in the 
`ObjectStore`.

This fixes this problem by tackling three separate
points: 

1. In `json_deserialization.py`, we now infer the
`type` of the `ModelReference` via the Reference's
last `Key`. This is more of a hotfix and issue 
eclipse-basyx#367 tracks the creation of a better solution. 

2. In `aasx.py`, an unneccessary `logger.info` 
call is removed, that previously cluttered the 
output of the writer if a `semantic_id` was not 
pointing to a `ConceptDescription`, which is not
something worth noting. Furthermore, we improve
other log messages. 

3. In `examples.data._helper`, we improve the test
for `semantic_id` equality, namely by comparing
the `ModelReference`'s attributes explicitly, when
it happens to be one, instead of relying on simple
string comparision.
This updates the minimum version of the dependency `pyecma376` in the `pyproject.toml`, ensuring that our AASX files allow for spaces in file names. 

Fixes eclipse-basyx#236
…-basyx#369)

Previously, some `sdk` dependencies, that are only 
necessary for testing were included in the 
mandatory dependencies.

For improving package footprint, these are moved 
into the `[dev]` section of optional dependencies
in the `pyproject.toml`.

---------

Co-authored-by: s-heppner <[email protected]>
This adds a new `SetObjectStore` that is backed by 
a set. Its main advantage is that it does not have 
the problem with not updated `Identifier`s
that the `DictObjectStore` has (See eclipse-basyx#216).

We make sure to document the differences between
`DictObjectStore` and `SetObjectStore` in their
respective class docstrings.
… updated (eclipse-basyx#344)

Previously, there was no check if the copyright
statement on top of each file (due to the MIT
license) was up to date. 

This adapts our `update_copyright_year.sh` script
with a checking mode to determine if any file
needs adapting and then adds this check to the CI.

At the same time, this also updates all necessary
files to the year 2025.

Fixes eclipse-basyx#260
Fixes eclipse-basyx#331

---------

Co-authored-by: s-heppner <[email protected]>
…pse-basyx#359)

Previously, we were accidentally still trying to 
install dependencies from the already deleted 
`requirements.txt` when generating the 
documentation.

This fixes this and installs them instead from 
the `pyproject.toml`.

Co-authored-by: s-heppner <[email protected]>
This refactors away from `setup.py` and towards
`pyproject.toml` for the `compliance_tool` 
package.

At the same step, we also update the relevant CI 
checks as well.
This fixes the redirects from the AAS repository 
paths to the Submodel repository paths to work
properly.

Furthermore, the installation of dependencies 
inside the server Docker image was previously 
using the latest release of the SDK. This means,
that we could not ensure that each commit in the
`main` branch of our monorepo would be 
interoperable between SDK and server, as a PR 
would have to be closed in order for the server CI
would not report any errors. In order to fix this,
issue in the development process, the server 
Docker image now installs the SDK from the local
repository, rather than from GitHub.

Lastly, this fixes a wrong status code reported
when specifing a model that is malformed or 
missing information. The specification expects a
400 (Bad Request) response, but the server sent a 
422 (Unprocessable Content). 

Fixes eclipse-basyx#315
…#376)

Previously, the section "Codestyle and Testing"
was outdated, still from the time where there was
only the SDK inside this repository.

This greatly extends the section, renaming it to
"Code Quality" and introducing subsections for
"Codestyle" and "Testing", where we describe how
to run the necessary tests locally on the
developer's machine for each of the packages
inside this monorepository.

Fixes eclipse-basyx#353
We previously refactored the compliance_tool from
`setup.py` to `pyproject.toml` (See eclipse-basyx#361).
However, somehow the `setup.py` slipped through
and is still in the `compliance_tool` directory.

This removes the `setup.py` from the
`compliance_tool` completely.
This adds a job `compliance-tool-publish` to the `release.yml` that
automatically publishes the compliance-tool package to PyPI upon
release. It is simply copied from the SDK job, with adapted paths.
…#392)

* sdk: Update lxml dependency in pyproject.toml

Previously, the `lxml` dependency in the `pyproject.toml` was pinned to
versions `>=4.2,<5`. This caused a faulty installation via `pip` on
Windows due to missing binary wheels.

This updates the `lxml` dependency to versions `>=5.3` to resolve the
issue.

Additionally, the `mypy` dependency in the `pyproject.toml` was unpinned,
leading to the installation of the latest version. The recent release of
`mypy 1.16.0` introduced changes not yet supported by our codebase,
resulting in CI pipeline failures.

This restricts the `mypy` dependency to version `1.15.0` until we have
proper support for `1.16.0` and its new features.

Fixes eclipse-basyx#391
Previously, the SDK version could have been confused with the supported
AAS specification versions.

To alleviate this, this adds an additional text to the top of 
the `README.md`.
@s-heppner
Copy link
Contributor

I assume the conflicts are because this depends on #425. I'll have a look at it once that PR is closed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants