https://github.com/stariongroup/deh-csv
A library that converts ECSS-E-TM-10-25 datasets into CSV
https://github.com/stariongroup/deh-csv
csv ecss-e-tm-10-25 mbse modeltopia
Last synced: 6 months ago
JSON representation
A library that converts ECSS-E-TM-10-25 datasets into CSV
- Host: GitHub
- URL: https://github.com/stariongroup/deh-csv
- Owner: STARIONGROUP
- License: apache-2.0
- Created: 2023-08-06T09:11:33.000Z (over 2 years ago)
- Default Branch: development
- Last Pushed: 2025-02-06T17:40:18.000Z (about 1 year ago)
- Last Synced: 2025-09-24T09:57:49.395Z (6 months ago)
- Topics: csv, ecss-e-tm-10-25, mbse, modeltopia
- Language: C#
- Homepage: https://www.stariongroup.eu
- Size: 515 KB
- Stars: 0
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# DEH-CSV
The Digital Engineering Hub CSV **DEH-CSV** library is used to convert an ECSS-E-TM-10-25 data set into a CSV files.
[](https://sonarcloud.io/summary/new_code?id=STARIONGROUP_DEH-CSV)
[](https://sonarcloud.io/summary/new_code?id=STARIONGROUP_DEH-CSV)
[](https://sonarcloud.io/summary/new_code?id=STARIONGROUP_DEH-CSV)
[](https://sonarcloud.io/summary/new_code?id=STARIONGROUP_DEH-CSV)
[](https://sonarcloud.io/summary/new_code?id=STARIONGROUP_DEH-CSV)
[](https://sonarcloud.io/summary/new_code?id=STARIONGROUP_DEH-CSV)
[](https://sonarcloud.io/summary/new_code?id=STARIONGROUP_DEH-CSV)
[](https://sonarcloud.io/summary/new_code?id=STARIONGROUP_DEH-CSV)
[](https://sonarcloud.io/summary/new_code?id=STARIONGROUP_DEH-CSV)
[](https://sonarcloud.io/summary/new_code?id=STARIONGROUP_DEH-CSV)
## Installation
The packages are available on Nuget at https://www.nuget.org/packages/DEH-CSV/
[](https://buildstats.info/nuget/DEH-CSV)
## Quickstart
1. Install the nuget package into your project or solution.
### Write
1. Add a mapping file that states how the properties of an ECSS-E-TM-10-25 [Thing](https://comet-dev-docs.mbsehub.org/) needs to be mapped to fields in a CSV file.
1. Use the [ICsvWriter](https://github.com/STARIONGROUP/DEH-CSV/blob/master/DEH-CSV/ICsvWriter.cs) interface and/or the [CsvWriter](https://github.com/STARIONGROUP/DEH-CSV/blob/master/DEH-CSV/CsvWriter.cs) class.
The `ICsvWriter` interface exposes only one method: **write**.
```
public void Write(Iteration iteration, bool includeNestedElements, IEnumerable maps, DirectoryInfo target, object options);
```
- iteration: Proive an `Iteration` instance that provides access to all the `Thing`s that need to be exported, this includes the container `EngineeringMoedel` and the `SiteDirectory`.
- includeNestedElements: A value that indicates whether a volatile nested element tree needs to be generated for each `Option` in the provided `Iteration` and added to the `Thing` instances for which CSVs are to be written.
- maps: a collection of `TypeMap`s that contain the configuration of how a certain kind of `Thing` is to be mapped to fields in a CSV file.
- target: the target directory where the CSV files are to be generated.
- options: any kind of `object` that can contain configuration information (this is igonred by the standard implementation but can be used when a derived CsvWriter is created where the `Write` method is overriden).
### Read
1. Add a mapping file that states of a CSV file needs to be mapped to the properties of an ECSS-E-TM-10-25 [Thing](https://comet-dev-docs.mbsehub.org/)
1. Add the corresponding CSV file that needs to be processed
1. Use the [ICsvReader](https://github.com/STARIONGROUP/DEH-CSV/blob/development/DEH-CSV/ICsvReader.cs) interface and/or the [CsvReader](https://github.com/STARIONGROUP/DEH-CSV/blob/development/DEH-CSV/CsvReader.cs) class.
The `ICsvReader` interface exposes only one method: **read**.
```
public Task> Read(Stream stream, IReadOnlyCollection typeMaps, ISession session);
```
- stream: The `Stream` that contains CSV content
- typeMaps: The collection of `TypeMap`s
- session: The `ISession` that helps to retrieve `Thing`
- returns: A `Task` that contains a collection of mapped `Thing`s
After the read is done, all mapped `Thing`s can be written to the `Isession` by adding them to the correct TopContainer. A manual action will need to be done there, unless a `TypeMap` is created to perform that action.
## Build Status
GitHub actions are used to build and test the libraries
Branch | Build Status
------- | :------------
Master | 
Development | 
# License
The DEH-CSV libraries are provided to the community under the Apache License 2.0.