1 From 603b5a584bd2b348befc9bab8f1ea0a7974f9d77 Mon Sep 17 00:00:00 2001
2 From: Scott Murray <scott.murray@konsulko.com>
3 Date: Wed, 11 May 2022 15:31:25 -0400
4 Subject: [PATCH] dbc2val: add installation mechanism
6 Add setup.py and setup.cfg to allow installing the dbc2val module
7 and dbcfeeder.py in a way suitable for packaging. Some of the
8 imports in the scripts have been tweaked to enable running against
9 an installed copy of dbc2val.
11 Signed-off-by: Scott Murray <scott.murray@konsulko.com>
14 kuksa_feeders/dbc2val/__init__.py | 0
15 kuksa_feeders/dbc2val/dbc2vssmapper.py | 12 ++++-----
16 kuksa_feeders/dbc2val/dbcfeeder.py | 6 ++---
17 kuksa_feeders/setup.cfg | 31 ++++++++++++++++++++++
18 kuksa_feeders/setup.py | 36 ++++++++++++++++++++++++++
19 5 files changed, 75 insertions(+), 10 deletions(-)
20 create mode 100644 kuksa_feeders/dbc2val/__init__.py
21 create mode 100644 kuksa_feeders/setup.cfg
22 create mode 100644 kuksa_feeders/setup.py
24 diff --git a/kuksa_feeders/dbc2val/__init__.py b/kuksa_feeders/dbc2val/__init__.py
26 index 0000000..e69de29
27 diff --git a/kuksa_feeders/dbc2val/dbc2vssmapper.py b/kuksa_feeders/dbc2val/dbc2vssmapper.py
28 index a43d1bd..1718154 100644
29 --- a/kuksa_feeders/dbc2val/dbc2vssmapper.py
30 +++ b/kuksa_feeders/dbc2val/dbc2vssmapper.py
32 ########################################################################
35 -import transforms.mapping
36 -import transforms.math
37 +from dbc2val.transforms import mapping
38 +from dbc2val.transforms import math
42 @@ -22,9 +22,9 @@ class mapper:
43 self.mapping = yaml.full_load(file)
46 - self.transforms['fullmapping']=transforms.mapping.mapping(discard_non_matching_items=True)
47 - self.transforms['partialmapping']=transforms.mapping.mapping(discard_non_matching_items=False)
48 - self.transforms['math']=transforms.math.math()
49 + self.transforms['fullmapping']=mapping.mapping(discard_non_matching_items=True)
50 + self.transforms['partialmapping']=mapping.mapping(discard_non_matching_items=False)
51 + self.transforms['math']=math.math()
55 @@ -62,4 +62,4 @@ class mapper:
57 def __getitem__(self, item):
58 return self.mapping[item]
60 \ No newline at end of file
62 diff --git a/kuksa_feeders/dbc2val/dbcfeeder.py b/kuksa_feeders/dbc2val/dbcfeeder.py
63 index 71939c6..56c316a 100755
64 --- a/kuksa_feeders/dbc2val/dbcfeeder.py
65 +++ b/kuksa_feeders/dbc2val/dbcfeeder.py
66 @@ -16,10 +16,7 @@ import configparser
74 +from dbc2val import dbc2vssmapper, dbcreader, j1939reader, elm2canbridge
76 scriptDir= os.path.dirname(os.path.realpath(__file__))
77 sys.path.append(os.path.join(scriptDir, "../../"))
78 @@ -27,6 +24,7 @@ from kuksa_viss_client import KuksaClientThread
80 print("kuksa.val DBC example feeder")
81 config_candidates=['/config/dbc_feeder.ini', '/etc/dbc_feeder.ini', os.path.join(scriptDir, 'config/dbc_feeder.ini')]
83 for candidate in config_candidates:
84 if os.path.isfile(candidate):
86 diff --git a/kuksa_feeders/setup.cfg b/kuksa_feeders/setup.cfg
88 index 0000000..4b69ccf
90 +++ b/kuksa_feeders/setup.cfg
94 +author = Sebastian Schildt, Naresh Nayak, Wenwen Chen
95 +author_email = sebastian.schildt@de.bosch.com, naresh.nayak@de.bosch.com, wenwen.chen@de.bosch.com
96 +description = kuksa.val DBC feeder
97 +long_description = file:README.md
98 +long_description_content_type = text/markdown
99 +url=https://github.com/eclipse/kuksa.val
101 + Source=https://github.com/eclipse/kuksa.val/tree/master/kuksa_feeders/dbc2val
102 + Bug Tracker=https://github.com/eclipse/kuksa.val/issues
104 + Intended Audience :: Developers
105 + Development Status :: 3 - Alpha
106 + Environment :: Console
107 + Programming Language :: Python :: 3
108 + License :: OSI Approved :: Eclipse Public License 2.0 (EPL-2.0)
109 + Operating System :: OS Independent
110 + Topic :: Software Development
112 +license_file = ../LICENSE
115 +python_requires = >=3.6
121 +include_package_data = True
122 +scripts=dbc2val/dbcfeeder.py
123 diff --git a/kuksa_feeders/setup.py b/kuksa_feeders/setup.py
125 index 0000000..ad08d17
127 +++ b/kuksa_feeders/setup.py
129 +# To avoid shipping dbcfeeder.py in the module itself, use the
130 +# technique outlined at:
132 +# https://stackoverflow.com/a/50592100
134 +# This can be removed if the directory structure is ever reorganized
135 +# more along the lines of upstream recommendations.
139 +from setuptools import find_packages, setup
140 +from setuptools.command.build_py import build_py as build_py_orig
142 +exclude = ['dbc2val.dbcfeeder']
144 +class build_py(build_py_orig):
145 + def find_package_modules(self, package, package_dir):
146 + modules = super().find_package_modules(package, package_dir)
147 + print("modules = %s" % modules)
148 + return [(pkg, mod, file, ) for (pkg, mod, file, ) in modules
149 + if not any(fnmatch.fnmatchcase(pkg + '.' + mod, pat=pattern)
150 + for pattern in exclude)]
154 + "template": "{tag}",
155 + "dev_template": "{tag}-{ccount}",
156 + "dirty_template": "{tag}-{ccount}-dirty",
157 + "starting_version": "0.1.11",
158 + "version_callback": None,
159 + "version_file": None,
160 + "count_commits_from_version_file": False
162 + setup_requires=['setuptools-git-versioning'],
163 + cmdclass={'build_py': build_py},