diff --git a/.github/workflows/buildcheck.yml b/.github/workflows/buildcheck.yml index c83e9c88..16b9bccc 100644 --- a/.github/workflows/buildcheck.yml +++ b/.github/workflows/buildcheck.yml @@ -45,7 +45,7 @@ jobs: poetry run flake8 src tests contrib - name: Run tests run: | - poetry run pytest --cov=vss_tools --cov-report=term-missing --cov-fail-under=90 + poetry run pytest --cov=vss_tools --cov-report=term-missing --cov-fail-under=88 - name: Test Binary Go Parser run: | cd binary/go_parser diff --git a/docs/vspec.md b/docs/vspec.md index 93d399c0..34c09275 100644 --- a/docs/vspec.md +++ b/docs/vspec.md @@ -39,8 +39,8 @@ vspec export json --vspec spec/VehicleSignalSpecification.vspec --output vss.jso /Users/Bar/workspace/vehicle_signal_specification/spec/units.yaml INFO Loading vspec from spec/VehicleSignalSpecification.vspec... utils.py:81 [16:40:04] INFO Check type usage __init__.py:117 - INFO Generating JSON output... vss2json.py:142 - INFO Serializing compact JSON... vss2json.py:148 + INFO Generating JSON output... json.py:142 + INFO Serializing compact JSON... json.py:148 ``` ## Exporter docs diff --git a/docs/vspec_arch.md b/docs/vspec_arch.md index d54c46cd..ab0ccbeb 100644 --- a/docs/vspec_arch.md +++ b/docs/vspec_arch.md @@ -137,7 +137,7 @@ That means that we can define the cli interface of subcommands in their own file The main cli entrypoint for `vspec` is defined in [vspec.py](../src/vss_tools/vspec/vspec.py). There you can also see all the subcommands referenced. When building a new exporter tool, this is the place that needs to be adapted as well -as creating a new file similar to the other exporters in [vssexporters](../src/vss_tools/vspec/vssexporters). +as creating a new file similar to the other exporters in [exporters](../src/vss_tools/vspec/exporters). It is also possible to build a complete different script entrypoint and not hook into the current interface. All cli options can be imported and used via [cli_options.py](../src/vss_tools/vspec/cli_options.py). diff --git a/pyproject.toml b/pyproject.toml index cf4800fb..392f4537 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -31,7 +31,7 @@ pre-commit = "*" [tool.poetry.scripts] -vspec = "vss_tools.vspec.cli:cli" +vspec = "vss_tools.cli:cli" [build-system] requires = ["poetry-core"] diff --git a/src/vss_tools/vspec/cli.py b/src/vss_tools/cli.py similarity index 53% rename from src/vss_tools/vspec/cli.py rename to src/vss_tools/cli.py index 873eb16d..7f2f2c5a 100644 --- a/src/vss_tools/vspec/cli.py +++ b/src/vss_tools/cli.py @@ -11,9 +11,9 @@ import rich_click as click -import vss_tools.vspec.cli_options as clo +import vss_tools.cli_options as clo from vss_tools import log -from vss_tools.vspec.lazy_group import LazyGroup +from vss_tools.lazy_group import LazyGroup @click.group(context_settings={"auto_envvar_prefix": "vss_tools"}, invoke_without_command=True) @@ -35,20 +35,20 @@ def cli(ctx: click.Context, log_level: str, log_file: Path): @cli.group( cls=LazyGroup, lazy_subcommands={ - "apigear": "vss_tools.vspec.vssexporters.vss2apigear:cli", - "binary": "vss_tools.vspec.vssexporters.vss2binary:cli", - "csv": "vss_tools.vspec.vssexporters.vss2csv:cli", - "ddsidl": "vss_tools.vspec.vssexporters.vss2ddsidl:cli", - "franca": "vss_tools.vspec.vssexporters.vss2franca:cli", - "graphql": "vss_tools.vspec.vssexporters.vss2graphql:cli", - "id": "vss_tools.vspec.vssexporters.vss2id:cli", - "json": "vss_tools.vspec.vssexporters.vss2json:cli", - "jsonschema": "vss_tools.vspec.vssexporters.vss2jsonschema:cli", - "protobuf": "vss_tools.vspec.vssexporters.vss2protobuf:cli", - "yaml": "vss_tools.vspec.vssexporters.vss2yaml:cli", - "tree": "vss_tools.vspec.vssexporters.vss2tree:cli", - "samm": "vss_tools.vspec.vssexporters.vss2samm.vss2samm:cli", - "go": "vss_tools.vspec.vssexporters.vss2go:cli", + "apigear": "vss_tools.exporters.apigear:cli", + "binary": "vss_tools.exporters.binary:cli", + "csv": "vss_tools.exporters.csv:cli", + "ddsidl": "vss_tools.exporters.ddsidl:cli", + "franca": "vss_tools.exporters.franca:cli", + "graphql": "vss_tools.exporters.graphql:cli", + "id": "vss_tools.exporters.id:cli", + "json": "vss_tools.exporters.json:cli", + "jsonschema": "vss_tools.exporters.jsonschema:cli", + "protobuf": "vss_tools.exporters.protobuf:cli", + "yaml": "vss_tools.exporters.yaml:cli", + "tree": "vss_tools.exporters.tree:cli", + "samm": "vss_tools.exporters.samm:cli", + "go": "vss_tools.exporters.go:cli", }, ) @click.pass_context diff --git a/src/vss_tools/vspec/cli_options.py b/src/vss_tools/cli_options.py similarity index 98% rename from src/vss_tools/vspec/cli_options.py rename to src/vss_tools/cli_options.py index 1306e3b1..4fd85d8d 100644 --- a/src/vss_tools/vspec/cli_options.py +++ b/src/vss_tools/cli_options.py @@ -11,7 +11,7 @@ import rich_click as click from rich_click import option -from vss_tools.vspec.model import get_all_model_fields +from vss_tools.model import get_all_model_fields def validate_attribute(value): diff --git a/src/vss_tools/vspec/datatypes.py b/src/vss_tools/datatypes.py similarity index 100% rename from src/vss_tools/vspec/datatypes.py rename to src/vss_tools/datatypes.py diff --git a/src/vss_tools/vspec/vssexporters/__init__.py b/src/vss_tools/exporters/__init__.py similarity index 100% rename from src/vss_tools/vspec/vssexporters/__init__.py rename to src/vss_tools/exporters/__init__.py diff --git a/src/vss_tools/vspec/vssexporters/vss2apigear.py b/src/vss_tools/exporters/apigear.py similarity index 94% rename from src/vss_tools/vspec/vssexporters/vss2apigear.py rename to src/vss_tools/exporters/apigear.py index df72495a..1a7e4241 100644 --- a/src/vss_tools/vspec/vssexporters/vss2apigear.py +++ b/src/vss_tools/exporters/apigear.py @@ -11,18 +11,19 @@ import abc import typing -import yaml +from enum import Enum, Flag, auto +from math import inf +from pathlib import Path + import rich_click as click -import vss_tools.vspec.cli_options as clo +import yaml -from enum import Enum, Flag, auto +import vss_tools.cli_options as clo from vss_tools import log -from vss_tools.vspec.tree import VSSNode -from vss_tools.vspec.model import VSSDataBranch, VSSDataStruct, VSSDataDatatype -from vss_tools.vspec.datatypes import Datatypes -from vss_tools.vspec.main import get_trees -from pathlib import Path -from math import inf +from vss_tools.datatypes import Datatypes +from vss_tools.main import get_trees +from vss_tools.model import VSSDataBranch, VSSDataDatatype, VSSDataStruct +from vss_tools.tree import VSSNode class SolutionLayers(Flag): @@ -62,7 +63,7 @@ def __init__(self, name: str): self.variants: typing.List[tuple[str, int | None]] = [] -class ApiGearType(): +class ApiGearType: def __init__(self, type: str): super().__init__() @@ -76,7 +77,7 @@ def array(cls, type: str): return t -class ApiGearProperty(): +class ApiGearProperty: def __init__(self, type: ApiGearType): super().__init__() @@ -234,7 +235,7 @@ def export_node(node: VSSNode, module: ApiGearModule, interface: ApiGearInterfac def export_data_type_node(node: VSSNode | None, module: ApiGearModule, structure: ApiGearStructure | None = None): """This method is used to traverse through the root VSS Data Types node to build - -> ApiGear equivalent string buffer and to serialize it accordingly into a module + -> ApiGear equivalent string buffer and to serialize it accordingly into a module """ if node is None: return @@ -271,7 +272,7 @@ def generate_module(directory: Path, module: ApiGearModule, module_name: str, mo "schema": "apigear.module/1.0", "name": module_name, "version": "1.0", - "interfaces": [] + "interfaces": [], } for interface in module.interfaces: @@ -342,15 +343,16 @@ def generate_module(directory: Path, module: ApiGearModule, module_name: str, mo log.info(f"Module file generated at location: {module_path}") -def generate_solution(directory: Path, module_filename: str, module_name: str, - layers: typing.Dict[SolutionLayers, Path]): +def generate_solution( + directory: Path, module_filename: str, module_name: str, layers: typing.Dict[SolutionLayers, Path] +): log.debug("Generating solution file") yaml_dict: typing.Dict[str, typing.Any] = { "schema": "apigear.solution/1.0", "name": module_name, "version": "1.0", - "layers": [] + "layers": [], } unreal: typing.Dict[str, typing.Any] = { "name": "unreal", @@ -410,10 +412,11 @@ def export_yaml(file_name, content_dict): ) -def export_apigear(directory: Path, root: VSSNode, data_type_tree: VSSNode | None, - layers: typing.Dict[SolutionLayers, Path]): +def export_apigear( + directory: Path, root: VSSNode, data_type_tree: VSSNode | None, layers: typing.Dict[SolutionLayers, Path] +): """This method is used to traverse through the root VSS node to build - -> ApiGear equivalent string buffer and to serialize it accordingly into a file + -> ApiGear equivalent string buffer and to serialize it accordingly into a file """ module = ApiGearModule() module_name = root.name @@ -423,7 +426,7 @@ def export_apigear(directory: Path, root: VSSNode, data_type_tree: VSSNode | Non log.debug(f"Module name: {module_name}") log.debug(f"Module filename: {module_filename}") - if (not layers): + if not layers: layers = {SolutionLayers.CPP: Path("./cppservice")} log.warning(f"No layers provided! Defaulting to CPP in {layers[SolutionLayers.CPP]}") @@ -512,13 +515,13 @@ def cli( output_dir.mkdir(exist_ok=True, parents=True) layers = {} - if (apigear_template_unreal_path is not None): + if apigear_template_unreal_path is not None: layers[SolutionLayers.UNREAL] = apigear_template_unreal_path - if (apigear_template_cpp_path is not None): + if apigear_template_cpp_path is not None: layers[SolutionLayers.CPP] = apigear_template_cpp_path - if (apigear_template_qt5_path is not None): + if apigear_template_qt5_path is not None: layers[SolutionLayers.QT5] = apigear_template_qt5_path - if (apigear_template_qt6_path is not None): + if apigear_template_qt6_path is not None: layers[SolutionLayers.QT6] = apigear_template_qt6_path export_apigear(output_dir, tree, data_type_tree, layers) diff --git a/src/vss_tools/vspec/vssexporters/vss2binary.py b/src/vss_tools/exporters/binary.py similarity index 97% rename from src/vss_tools/vspec/vssexporters/vss2binary.py rename to src/vss_tools/exporters/binary.py index 9b727975..844984f4 100644 --- a/src/vss_tools/vspec/vssexporters/vss2binary.py +++ b/src/vss_tools/exporters/binary.py @@ -31,10 +31,10 @@ import rich_click as click -import vss_tools.vspec.cli_options as clo +import vss_tools.cli_options as clo from vss_tools import log -from vss_tools.vspec.main import get_trees -from vss_tools.vspec.tree import VSSNode +from vss_tools.main import get_trees +from vss_tools.tree import VSSNode def allowedString(allowedList): diff --git a/src/vss_tools/vspec/vssexporters/vss2csv.py b/src/vss_tools/exporters/csv.py similarity index 95% rename from src/vss_tools/vspec/vssexporters/vss2csv.py rename to src/vss_tools/exporters/csv.py index 1b916e8b..bd440734 100644 --- a/src/vss_tools/vspec/vssexporters/vss2csv.py +++ b/src/vss_tools/exporters/csv.py @@ -15,11 +15,11 @@ import rich_click as click from anytree import PreOrderIter # type: ignore[import] -import vss_tools.vspec.cli_options as clo +import vss_tools.cli_options as clo from vss_tools import log -from vss_tools.vspec.main import get_trees -from vss_tools.vspec.tree import VSSNode -from vss_tools.vspec.utils.misc import getattr_nn +from vss_tools.main import get_trees +from vss_tools.tree import VSSNode +from vss_tools.utils.misc import getattr_nn def get_header(with_uuid: bool, entry_type: str, with_instance_column: bool) -> list[str]: diff --git a/src/vss_tools/vspec/vssexporters/vss2ddsidl.py b/src/vss_tools/exporters/ddsidl.py similarity index 98% rename from src/vss_tools/vspec/vssexporters/vss2ddsidl.py rename to src/vss_tools/exporters/ddsidl.py index 41077897..263fe895 100644 --- a/src/vss_tools/vspec/vssexporters/vss2ddsidl.py +++ b/src/vss_tools/exporters/ddsidl.py @@ -15,12 +15,12 @@ import rich_click as click -import vss_tools.vspec.cli_options as clo +import vss_tools.cli_options as clo from vss_tools import log -from vss_tools.vspec.main import get_trees -from vss_tools.vspec.model import VSSDataBranch, VSSDataStruct -from vss_tools.vspec.tree import VSSNode -from vss_tools.vspec.utils.misc import getattr_nn +from vss_tools.main import get_trees +from vss_tools.model import VSSDataBranch, VSSDataStruct +from vss_tools.tree import VSSNode +from vss_tools.utils.misc import getattr_nn c_keywords = [ "auto", diff --git a/src/vss_tools/vspec/vssexporters/vss2franca.py b/src/vss_tools/exporters/franca.py similarity index 96% rename from src/vss_tools/vspec/vssexporters/vss2franca.py rename to src/vss_tools/exporters/franca.py index c1192df7..4fec6e50 100644 --- a/src/vss_tools/vspec/vssexporters/vss2franca.py +++ b/src/vss_tools/exporters/franca.py @@ -15,10 +15,10 @@ import rich_click as click from anytree import PreOrderIter -import vss_tools.vspec.cli_options as clo +import vss_tools.cli_options as clo from vss_tools import log -from vss_tools.vspec.main import get_trees -from vss_tools.vspec.tree import VSSNode +from vss_tools.main import get_trees +from vss_tools.tree import VSSNode # Write the header line diff --git a/src/vss_tools/vspec/vssexporters/vss2go.py b/src/vss_tools/exporters/go.py similarity index 97% rename from src/vss_tools/vspec/vssexporters/vss2go.py rename to src/vss_tools/exporters/go.py index 90cafa97..7671ba19 100644 --- a/src/vss_tools/vspec/vssexporters/vss2go.py +++ b/src/vss_tools/exporters/go.py @@ -15,12 +15,12 @@ import rich_click as click from anytree import PreOrderIter -import vss_tools.vspec.cli_options as clo +import vss_tools.cli_options as clo from vss_tools import log -from vss_tools.vspec.datatypes import Datatypes, is_array -from vss_tools.vspec.main import get_trees -from vss_tools.vspec.model import VSSDataBranch, VSSDataDatatype, VSSDataStruct -from vss_tools.vspec.tree import VSSNode +from vss_tools.datatypes import Datatypes, is_array +from vss_tools.main import get_trees +from vss_tools.model import VSSDataBranch, VSSDataDatatype, VSSDataStruct +from vss_tools.tree import VSSNode datatype_map = { Datatypes.INT8_ARRAY[0]: "[]int8", diff --git a/src/vss_tools/vspec/vssexporters/vss2graphql.py b/src/vss_tools/exporters/graphql.py similarity index 95% rename from src/vss_tools/vspec/vssexporters/vss2graphql.py rename to src/vss_tools/exporters/graphql.py index b259d9b0..e7a0d342 100644 --- a/src/vss_tools/vspec/vssexporters/vss2graphql.py +++ b/src/vss_tools/exporters/graphql.py @@ -24,13 +24,13 @@ print_schema, ) -import vss_tools.vspec.cli_options as clo +import vss_tools.cli_options as clo from vss_tools import log -from vss_tools.vspec.datatypes import Datatypes -from vss_tools.vspec.main import get_trees -from vss_tools.vspec.model import VSSDataDatatype -from vss_tools.vspec.tree import VSSNode -from vss_tools.vspec.utils.misc import camel_back +from vss_tools.datatypes import Datatypes +from vss_tools.main import get_trees +from vss_tools.model import VSSDataDatatype +from vss_tools.tree import VSSNode +from vss_tools.utils.misc import camel_back GRAPHQL_TYPE_MAPPING = { Datatypes.INT8[0]: GraphQLInt, diff --git a/src/vss_tools/vspec/vssexporters/vss2id.py b/src/vss_tools/exporters/id.py similarity index 96% rename from src/vss_tools/vspec/vssexporters/vss2id.py rename to src/vss_tools/exporters/id.py index 021f54a8..15494cc0 100644 --- a/src/vss_tools/vspec/vssexporters/vss2id.py +++ b/src/vss_tools/exporters/id.py @@ -16,17 +16,17 @@ import rich_click as click import yaml -import vss_tools.vspec.cli_options as clo +import vss_tools.cli_options as clo from vss_tools import log -from vss_tools.vspec.main import get_trees -from vss_tools.vspec.tree import VSSNode -from vss_tools.vspec.utils import vss2id_val -from vss_tools.vspec.utils.idgen_utils import ( +from vss_tools.main import get_trees +from vss_tools.tree import VSSNode +from vss_tools.utils import vss2id_val +from vss_tools.utils.idgen_utils import ( fnv1_32_hash, get_all_keys_values, get_node_identifier_bytes, ) -from vss_tools.vspec.utils.misc import getattr_nn +from vss_tools.utils.misc import getattr_nn def generate_split_id(node: VSSNode, id_counter: int, strict_mode: bool) -> Tuple[str, int]: diff --git a/src/vss_tools/vspec/vssexporters/vss2json.py b/src/vss_tools/exporters/json.py similarity index 95% rename from src/vss_tools/vspec/vssexporters/vss2json.py rename to src/vss_tools/exporters/json.py index b05d5649..f0b8e708 100644 --- a/src/vss_tools/vspec/vssexporters/vss2json.py +++ b/src/vss_tools/exporters/json.py @@ -14,10 +14,10 @@ import rich_click as click -import vss_tools.vspec.cli_options as clo +import vss_tools.cli_options as clo from vss_tools import log -from vss_tools.vspec.main import get_trees -from vss_tools.vspec.tree import VSSNode +from vss_tools.main import get_trees +from vss_tools.tree import VSSNode def get_data(node: VSSNode, with_extra_attributes: bool = True, extended_attributes: tuple[str, ...] = ()): diff --git a/src/vss_tools/vspec/vssexporters/vss2jsonschema.py b/src/vss_tools/exporters/jsonschema.py similarity index 96% rename from src/vss_tools/vspec/vssexporters/vss2jsonschema.py rename to src/vss_tools/exporters/jsonschema.py index 8c67d09e..d696eb65 100644 --- a/src/vss_tools/vspec/vssexporters/vss2jsonschema.py +++ b/src/vss_tools/exporters/jsonschema.py @@ -15,11 +15,11 @@ import rich_click as click -import vss_tools.vspec.cli_options as clo +import vss_tools.cli_options as clo from vss_tools import log -from vss_tools.vspec.main import get_trees -from vss_tools.vspec.model import VSSDataBranch, VSSDataDatatype, VSSDataStruct -from vss_tools.vspec.tree import VSSNode +from vss_tools.main import get_trees +from vss_tools.model import VSSDataBranch, VSSDataDatatype, VSSDataStruct +from vss_tools.tree import VSSNode type_map = { "int8": "integer", diff --git a/src/vss_tools/vspec/vssexporters/vss2protobuf.py b/src/vss_tools/exporters/protobuf.py similarity index 97% rename from src/vss_tools/vspec/vssexporters/vss2protobuf.py rename to src/vss_tools/exporters/protobuf.py index 1072a79a..05758642 100644 --- a/src/vss_tools/vspec/vssexporters/vss2protobuf.py +++ b/src/vss_tools/exporters/protobuf.py @@ -16,15 +16,15 @@ import rich_click as click from anytree import findall -import vss_tools.vspec.cli_options as clo +import vss_tools.cli_options as clo from vss_tools import log -from vss_tools.vspec.main import get_trees -from vss_tools.vspec.model import ( +from vss_tools.main import get_trees +from vss_tools.model import ( VSSDataBranch, VSSDataDatatype, VSSDataStruct, ) -from vss_tools.vspec.tree import VSSNode +from vss_tools.tree import VSSNode PATH_DELIMITER = "." DIR_DELIMITER = "/" diff --git a/src/vss_tools/vspec/vssexporters/vss2samm/vss2samm.py b/src/vss_tools/exporters/samm/__init__.py similarity index 95% rename from src/vss_tools/vspec/vssexporters/vss2samm/vss2samm.py rename to src/vss_tools/exporters/samm/__init__.py index 76925b10..7c93f24a 100644 --- a/src/vss_tools/vspec/vssexporters/vss2samm/vss2samm.py +++ b/src/vss_tools/exporters/samm/__init__.py @@ -17,11 +17,12 @@ from typing import Optional import rich_click as click -import vss_tools.vspec.cli_options as clo from anytree import findall + +import vss_tools.cli_options as clo from vss_tools import log -from vss_tools.vspec.main import get_trees -from vss_tools.vspec.tree import VSSNode +from vss_tools.main import get_trees +from vss_tools.tree import VSSNode from .config import config as cfg @@ -35,13 +36,13 @@ def __setup_environment(output_namespace, vspec_version, split_depth: int) -> No cfg.init(output_namespace, vspec_version, split_depth) global VSSConcepts - VSSConcepts = importlib.import_module("vss_tools.vspec.vssexporters.vss2samm.helpers.samm_concepts").VSSConcepts + VSSConcepts = importlib.import_module("vss_tools.vspec.exporters.samm.helpers.samm_concepts").VSSConcepts global vss_helper - vss_helper = importlib.import_module("vss_tools.vspec.vssexporters.vss2samm.helpers.vss_helper") + vss_helper = importlib.import_module("vss_tools.vspec.exporters.samm.helpers.vss_helper") global ttl_helper - ttl_helper = importlib.import_module("vss_tools.vspec.vssexporters.vss2samm.helpers.ttl_helper") + ttl_helper = importlib.import_module("vss_tools.vspec.exporters.samm.helpers.ttl_helper") # TODO: Currently this is a workaround to read the Vehicle.VersionVSS, which is provided from COVESA/VSS diff --git a/src/vss_tools/vspec/vssexporters/vss2samm/config/config.py b/src/vss_tools/exporters/samm/config/config.py similarity index 100% rename from src/vss_tools/vspec/vssexporters/vss2samm/config/config.py rename to src/vss_tools/exporters/samm/config/config.py diff --git a/src/vss_tools/vspec/vssexporters/vss2samm/helpers/data_types_and_units.py b/src/vss_tools/exporters/samm/helpers/data_types_and_units.py similarity index 100% rename from src/vss_tools/vspec/vssexporters/vss2samm/helpers/data_types_and_units.py rename to src/vss_tools/exporters/samm/helpers/data_types_and_units.py diff --git a/src/vss_tools/vspec/vssexporters/vss2samm/helpers/file_helper.py b/src/vss_tools/exporters/samm/helpers/file_helper.py similarity index 100% rename from src/vss_tools/vspec/vssexporters/vss2samm/helpers/file_helper.py rename to src/vss_tools/exporters/samm/helpers/file_helper.py diff --git a/src/vss_tools/vspec/vssexporters/vss2samm/helpers/namespaces.py b/src/vss_tools/exporters/samm/helpers/namespaces.py similarity index 100% rename from src/vss_tools/vspec/vssexporters/vss2samm/helpers/namespaces.py rename to src/vss_tools/exporters/samm/helpers/namespaces.py diff --git a/src/vss_tools/vspec/vssexporters/vss2samm/helpers/samm_concepts.py b/src/vss_tools/exporters/samm/helpers/samm_concepts.py similarity index 100% rename from src/vss_tools/vspec/vssexporters/vss2samm/helpers/samm_concepts.py rename to src/vss_tools/exporters/samm/helpers/samm_concepts.py diff --git a/src/vss_tools/vspec/vssexporters/vss2samm/helpers/string_helper.py b/src/vss_tools/exporters/samm/helpers/string_helper.py similarity index 100% rename from src/vss_tools/vspec/vssexporters/vss2samm/helpers/string_helper.py rename to src/vss_tools/exporters/samm/helpers/string_helper.py diff --git a/src/vss_tools/vspec/vssexporters/vss2samm/helpers/ttl_builder_helper.py b/src/vss_tools/exporters/samm/helpers/ttl_builder_helper.py similarity index 99% rename from src/vss_tools/vspec/vssexporters/vss2samm/helpers/ttl_builder_helper.py rename to src/vss_tools/exporters/samm/helpers/ttl_builder_helper.py index 05e65701..c4f22614 100644 --- a/src/vss_tools/vspec/vssexporters/vss2samm/helpers/ttl_builder_helper.py +++ b/src/vss_tools/exporters/samm/helpers/ttl_builder_helper.py @@ -11,7 +11,7 @@ from rdflib import Graph, Literal, URIRef from rdflib.namespace import RDF, XSD from vss_tools import log -from vss_tools.vspec.tree import VSSNode +from vss_tools.tree import VSSNode from . import vss_helper as vss_helper from .data_types_and_units import DataTypes diff --git a/src/vss_tools/vspec/vssexporters/vss2samm/helpers/ttl_helper.py b/src/vss_tools/exporters/samm/helpers/ttl_helper.py similarity index 98% rename from src/vss_tools/vspec/vssexporters/vss2samm/helpers/ttl_helper.py rename to src/vss_tools/exporters/samm/helpers/ttl_helper.py index 7d1791dc..af0959ec 100644 --- a/src/vss_tools/vspec/vssexporters/vss2samm/helpers/ttl_helper.py +++ b/src/vss_tools/exporters/samm/helpers/ttl_helper.py @@ -11,8 +11,8 @@ from rdflib import Graph, URIRef from rdflib.namespace import RDF from vss_tools import log -from vss_tools.vspec.model import VSSDataBranch -from vss_tools.vspec.tree import VSSNode +from vss_tools.model import VSSDataBranch +from vss_tools.tree import VSSNode from ..config import config as cfg from . import ttl_builder_helper as ttl_builder diff --git a/src/vss_tools/vspec/vssexporters/vss2samm/helpers/vss_helper.py b/src/vss_tools/exporters/samm/helpers/vss_helper.py similarity index 99% rename from src/vss_tools/vspec/vssexporters/vss2samm/helpers/vss_helper.py rename to src/vss_tools/exporters/samm/helpers/vss_helper.py index 63ec7127..711136e2 100644 --- a/src/vss_tools/vspec/vssexporters/vss2samm/helpers/vss_helper.py +++ b/src/vss_tools/exporters/samm/helpers/vss_helper.py @@ -12,9 +12,9 @@ from rdflib import URIRef from vss_tools import log -from vss_tools.vspec.datatypes import Datatypes -from vss_tools.vspec.model import NodeType, VSSDataBranch -from vss_tools.vspec.tree import VSSNode +from vss_tools.datatypes import Datatypes +from vss_tools.model import NodeType, VSSDataBranch +from vss_tools.tree import VSSNode from ..config import config as cfg from .data_types_and_units import DataTypes, DataUnits diff --git a/src/vss_tools/vspec/vssexporters/vss2tree.py b/src/vss_tools/exporters/tree.py similarity index 94% rename from src/vss_tools/vspec/vssexporters/vss2tree.py rename to src/vss_tools/exporters/tree.py index 02ceb3fe..4f778376 100644 --- a/src/vss_tools/vspec/vssexporters/vss2tree.py +++ b/src/vss_tools/exporters/tree.py @@ -11,10 +11,10 @@ import rich_click as click from anytree import RenderTree -import vss_tools.vspec.cli_options as clo +import vss_tools.cli_options as clo from vss_tools import log -from vss_tools.vspec.main import get_trees -from vss_tools.vspec.tree import VSSNode +from vss_tools.main import get_trees +from vss_tools.tree import VSSNode def get_rendered_tree(tree: VSSNode, attributes: tuple[str]) -> str: diff --git a/src/vss_tools/vspec/vssexporters/vss2yaml.py b/src/vss_tools/exporters/yaml.py similarity index 96% rename from src/vss_tools/vspec/vssexporters/vss2yaml.py rename to src/vss_tools/exporters/yaml.py index 608cdb42..da436620 100644 --- a/src/vss_tools/vspec/vssexporters/vss2yaml.py +++ b/src/vss_tools/exporters/yaml.py @@ -16,9 +16,9 @@ import rich_click as click import yaml -import vss_tools.vspec.cli_options as clo +import vss_tools.cli_options as clo from vss_tools import log -from vss_tools.vspec.main import get_trees +from vss_tools.main import get_trees def export_yaml(file_name, content_dict): diff --git a/src/vss_tools/vspec/lazy_group.py b/src/vss_tools/lazy_group.py similarity index 100% rename from src/vss_tools/vspec/lazy_group.py rename to src/vss_tools/lazy_group.py diff --git a/src/vss_tools/vspec/main.py b/src/vss_tools/main.py similarity index 96% rename from src/vss_tools/vspec/main.py rename to src/vss_tools/main.py index 71945a61..5a3b8faf 100644 --- a/src/vss_tools/vspec/main.py +++ b/src/vss_tools/main.py @@ -11,20 +11,20 @@ from anytree import PreOrderIter, findall from vss_tools import log -from vss_tools.vspec.datatypes import ( +from vss_tools.datatypes import ( dynamic_datatypes, dynamic_quantities, dynamic_units, ) -from vss_tools.vspec.model import ( +from vss_tools.model import ( VSSDataBranch, VSSDataProperty, VSSDataStruct, get_all_model_fields, ) -from vss_tools.vspec.tree import ModelValidationException, VSSNode, build_tree -from vss_tools.vspec.units_quantities import load_quantities, load_units -from vss_tools.vspec.vspec import InvalidSpecDuplicatedEntryException, load_vspec +from vss_tools.tree import ModelValidationException, VSSNode, build_tree +from vss_tools.units_quantities import load_quantities, load_units +from vss_tools.vspec import InvalidSpecDuplicatedEntryException, load_vspec class NameViolationException(Exception): diff --git a/src/vss_tools/vspec/model.py b/src/vss_tools/model.py similarity index 99% rename from src/vss_tools/vspec/model.py rename to src/vss_tools/model.py index ce38f99e..0060c6e9 100644 --- a/src/vss_tools/vspec/model.py +++ b/src/vss_tools/model.py @@ -21,7 +21,7 @@ from typing_extensions import Self from vss_tools import log -from vss_tools.vspec.datatypes import ( +from vss_tools.datatypes import ( Datatypes, dynamic_quantities, dynamic_units, diff --git a/src/vss_tools/vspec/py.typed b/src/vss_tools/py.typed similarity index 100% rename from src/vss_tools/vspec/py.typed rename to src/vss_tools/py.typed diff --git a/src/vss_tools/vspec/tree.py b/src/vss_tools/tree.py similarity index 99% rename from src/vss_tools/vspec/tree.py rename to src/vss_tools/tree.py index a6775bc2..69693279 100644 --- a/src/vss_tools/vspec/tree.py +++ b/src/vss_tools/tree.py @@ -16,8 +16,8 @@ from pydantic import ValidationError from vss_tools import log -from vss_tools.vspec.datatypes import Datatypes, dynamic_datatypes -from vss_tools.vspec.model import ( +from vss_tools.datatypes import Datatypes, dynamic_datatypes +from vss_tools.model import ( ModelValidationException, VSSData, VSSDataBranch, @@ -27,7 +27,7 @@ get_vss_raw, resolve_vss_raw, ) -from vss_tools.vspec.vspec import deep_update +from vss_tools.vspec import deep_update SEPARATOR = "." diff --git a/src/vss_tools/vspec/units_quantities.py b/src/vss_tools/units_quantities.py similarity index 95% rename from src/vss_tools/vspec/units_quantities.py rename to src/vss_tools/units_quantities.py index 9f707ec6..95bc42b4 100644 --- a/src/vss_tools/vspec/units_quantities.py +++ b/src/vss_tools/units_quantities.py @@ -11,7 +11,7 @@ from pydantic import ValidationError from vss_tools import log -from vss_tools.vspec.model import ModelValidationException, VSSQuantity, VSSUnit +from vss_tools.model import ModelValidationException, VSSQuantity, VSSUnit class UnitQuantityRedefinitionException(Exception): diff --git a/src/vss_tools/vspec/utils/__init__.py b/src/vss_tools/utils/__init__.py similarity index 100% rename from src/vss_tools/vspec/utils/__init__.py rename to src/vss_tools/utils/__init__.py diff --git a/src/vss_tools/vspec/utils/idgen_utils.py b/src/vss_tools/utils/idgen_utils.py similarity index 100% rename from src/vss_tools/vspec/utils/idgen_utils.py rename to src/vss_tools/utils/idgen_utils.py diff --git a/src/vss_tools/vspec/utils/misc.py b/src/vss_tools/utils/misc.py similarity index 100% rename from src/vss_tools/vspec/utils/misc.py rename to src/vss_tools/utils/misc.py diff --git a/src/vss_tools/vspec/utils/vss2id_val.py b/src/vss_tools/utils/vss2id_val.py similarity index 98% rename from src/vss_tools/vspec/utils/vss2id_val.py rename to src/vss_tools/utils/vss2id_val.py index 8231e32c..2beec389 100644 --- a/src/vss_tools/vspec/utils/vss2id_val.py +++ b/src/vss_tools/utils/vss2id_val.py @@ -12,8 +12,8 @@ from anytree import PreOrderIter from vss_tools import log -from vss_tools.vspec.tree import VSSNode -from vss_tools.vspec.utils.idgen_utils import fnv1_32_wrapper +from vss_tools.tree import VSSNode +from vss_tools.utils.idgen_utils import fnv1_32_wrapper def validate_static_uids(signals_dict: dict, validation_tree: VSSNode, strict: bool): diff --git a/src/vss_tools/vspec/vspec.py b/src/vss_tools/vspec.py similarity index 100% rename from src/vss_tools/vspec/vspec.py rename to src/vss_tools/vspec.py diff --git a/src/vss_tools/vspec/__init__.py b/src/vss_tools/vspec/__init__.py deleted file mode 100755 index 3b2f4a7b..00000000 --- a/src/vss_tools/vspec/__init__.py +++ /dev/null @@ -1,7 +0,0 @@ -# Copyright (c) 2016 Contributors to COVESA -# -# This program and the accompanying materials are made available under the -# terms of the Mozilla Public License 2.0 which is available at -# https://www.mozilla.org/en-US/MPL/2.0/ -# -# SPDX-License-Identifier: MPL-2.0 diff --git a/tests/instances/test_instances.py b/tests/instances/test_instances.py index 5423ac7c..b5c6be52 100644 --- a/tests/instances/test_instances.py +++ b/tests/instances/test_instances.py @@ -9,10 +9,10 @@ import re from pathlib import Path -import vss_tools.vspec.model as model +import vss_tools.model as model from anytree import RenderTree -from vss_tools.vspec.main import get_trees -from vss_tools.vspec.tree import VSSNode +from vss_tools.main import get_trees +from vss_tools.tree import VSSNode HERE = Path(__file__).resolve().parent RESOURCES = HERE / "resources" diff --git a/tests/vspec/test_isinstance/test_isinstance.py b/tests/vspec/test_isinstance/test_isinstance.py index 49d82763..4f5f717a 100644 --- a/tests/vspec/test_isinstance/test_isinstance.py +++ b/tests/vspec/test_isinstance/test_isinstance.py @@ -8,7 +8,7 @@ from pathlib import Path -from vss_tools.vspec.main import get_trees +from vss_tools.main import get_trees HERE = Path(__file__).resolve().parent diff --git a/tests/vspec/test_static_uids/test_static_uids.py b/tests/vspec/test_static_uids/test_static_uids.py index 7b24e24a..e1ebfa37 100644 --- a/tests/vspec/test_static_uids/test_static_uids.py +++ b/tests/vspec/test_static_uids/test_static_uids.py @@ -17,12 +17,12 @@ from typing import Dict import pytest -import vss_tools.vspec.vssexporters.vss2id as vss2id +import vss_tools.exporters.id as vss2id import yaml -from vss_tools.vspec.datatypes import Datatypes -from vss_tools.vspec.main import get_trees -from vss_tools.vspec.tree import VSSNode -from vss_tools.vspec.utils.idgen_utils import get_all_keys_values +from vss_tools.datatypes import Datatypes +from vss_tools.main import get_trees +from vss_tools.tree import VSSNode +from vss_tools.utils.idgen_utils import get_all_keys_values HERE = Path(__file__).resolve().parent TEST_UNITS = HERE / ".." / "test_units.yaml"