• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

eclipse-aascw / aas-core-codegen / 37140921914
90%

Build:
DEFAULT BRANCH: main
Ran 03 Oct 2026 05:43PM UTC
Jobs 3
Files 309
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

03 Oct 2026 05:33PM UTC coverage: 90.088% (+0.2%) from 89.901%
37140921914

push

github

web-flow
Support nested collections (#833)

We allow the lists, the tuples and the sets to nest at any depth, *e.g.*,
``List[List[Tuple[Positive_int, Set[str]]]]``, and generate the code for
them in all the targets and schemas.

``Optional`` is allowed only at the top of a type annotation, since
the nested optionals can not be de/serialized in JSON and XML on many
targets. The items of the sets stay scalar. The mutability of
an argument is deep, so every level must be spelled alike:
``Sequence[Sequence[int]]`` or ``List[List[int]]``.

The type inference refuses ``==``, ``!=`` and ``in`` on lists, tuples
and sets, as the targets disagree on comparing them, and refuses deep
copies of lists and sets for now.

We copy the lists with ``list(...)`` instead of ``[:]``, since mypy
refuses to store the slice of a read-only ``Sequence`` as a ``List``.
For the same reason, we refuse to initialize a variable declared with
``List[...]`` with a read-only value:

    maybe_texts: Optional[List[str]] = optional_texts  # refused

The de/serializers are composed recursively, one function per container
type. In XML, the classes stay unwrapped, while the other items of
the lists and the sets are wrapped in ``<v>`` and the items of
the tuples in ``<v1>``, ``<v2>`` etc. at every level:

    <rowsOfPairs><v><v><v1>1</v1><v2><v>known</v></v2></v></v></rowsOfPairs>

We add the common meta-model ``nested_collections`` together with its
live test data, which check the round-trips and the paths of the errors
at every depth, *e.g.*, ``rowsOfPairs[0][1][0]``.

877 of 906 new or added lines in 39 files covered. (96.8%)

2 existing lines in 2 files now uncovered.

45189 of 50161 relevant lines covered (90.09%)

2.7 hits per line

Uncovered Changes

Lines Coverage ∆ File
6
90.27
-4.68% aas_core_codegen/intermediate/uses.py
2
97.34
3.45% aas_core_codegen/cpp/lib/_generate_xmlization.py
2
81.2
1.06% aas_core_codegen/cpp/transpilation.py
2
83.37
-0.02% aas_core_codegen/csharp/transpilation.py
2
96.46
0.04% aas_core_codegen/golang/lib/_generate_jsonization.py
2
97.61
-0.03% aas_core_codegen/golang/lib/_generate_xmlization.py
2
83.28
-0.02% aas_core_codegen/golang/transpilation.py
2
89.84
1.03% aas_core_codegen/intermediate/type_inference.py
2
83.6
-0.02% aas_core_codegen/java/transpilation.py
2
82.01
0.69% aas_core_codegen/python/common.py
2
82.07
-0.01% aas_core_codegen/typescript/transpilation.py
1
96.7
0.0% aas_core_codegen/java/lib/_generate_jsonization.py
1
98.07
-0.0% aas_core_codegen/java/lib/_generate_xmlization.py
1
96.8
0.33% aas_core_codegen/typescript/lib/_generate_jsonization.py

Coverage Regressions

Lines Coverage ∆ File
1
90.27
-4.68% aas_core_codegen/intermediate/uses.py
1
82.01
0.69% aas_core_codegen/python/common.py
Jobs
ID Job ID Ran Files Coverage
1 3.10 - 37140921914.1 03 Oct 2026 05:45PM UTC 309
90.09
GitHub Action Run
2 3.11 - 37140921914.2 03 Oct 2026 05:45PM UTC 309
90.09
GitHub Action Run
3 3.12 - 37140921914.3 03 Oct 2026 05:45PM UTC 309
90.09
GitHub Action Run
Source Files on build 37140921914
  • Tree
  • List 309
  • Changed 45
  • Source Changed 0
  • Coverage Changed 45
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 1dbef4aa on github
  • Prev Build on main (#37074178428)
  • Next Build on main (#37152077800)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc