1e84eeb7e93f3a8355d024f727a9e1b93b0c998e
[AGL/meta-agl-demo.git] / recipes-connectivity / kuksa-val / kuksa-dbc-feeder / 0001-dbc2val-add-installation-mechanism.patch
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
5
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.
10
11 Signed-off-by: Scott Murray <scott.murray@konsulko.com>
12
13 ---
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
23
24 diff --git a/kuksa_feeders/dbc2val/__init__.py b/kuksa_feeders/dbc2val/__init__.py
25 new file mode 100644
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
31 @@ -11,8 +11,8 @@
32  ########################################################################
33  
34  import yaml 
35 -import transforms.mapping
36 -import transforms.math
37 +from dbc2val.transforms import mapping
38 +from dbc2val.transforms import math
39  
40  
41  class mapper:
42 @@ -22,9 +22,9 @@ class mapper:
43              self.mapping = yaml.full_load(file)
44  
45          self.transforms={}
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()
52  
53  
54  
55 @@ -62,4 +62,4 @@ class mapper:
56  
57      def __getitem__(self, item):
58          return self.mapping[item]
59 -    
60 \ No newline at end of file
61 +    
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
67  import queue
68  import json
69  
70 -import dbc2vssmapper
71 -import dbcreader
72 -import j1939reader
73 -import elm2canbridge
74 +from dbc2val import dbc2vssmapper, dbcreader, j1939reader, elm2canbridge
75  
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
79  
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')]
82 +configfile = None
83  for candidate in config_candidates:
84      if os.path.isfile(candidate):
85          configfile=candidate
86 diff --git a/kuksa_feeders/setup.cfg b/kuksa_feeders/setup.cfg
87 new file mode 100644
88 index 0000000..4b69ccf
89 --- /dev/null
90 +++ b/kuksa_feeders/setup.cfg
91 @@ -0,0 +1,31 @@
92 +[metadata]
93 +name = dbc2val
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
100 +project_urls=
101 +  Source=https://github.com/eclipse/kuksa.val/tree/master/kuksa_feeders/dbc2val
102 +  Bug Tracker=https://github.com/eclipse/kuksa.val/issues
103 +classifiers = 
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
111 +    
112 +license_file = ../LICENSE
113 +
114 +[options]
115 +python_requires = >=3.6
116 +install_requires=
117 +    pyserial
118 +    pyyaml
119 +    kuksa-viss-client
120 +packages=find:
121 +include_package_data = True
122 +scripts=dbc2val/dbcfeeder.py
123 diff --git a/kuksa_feeders/setup.py b/kuksa_feeders/setup.py
124 new file mode 100644
125 index 0000000..ad08d17
126 --- /dev/null
127 +++ b/kuksa_feeders/setup.py
128 @@ -0,0 +1,36 @@
129 +# To avoid shipping dbcfeeder.py in the module itself, use the
130 +# technique outlined at:
131 +#
132 +# https://stackoverflow.com/a/50592100
133 +#
134 +# This can be removed if the directory structure is ever reorganized
135 +# more along the lines of upstream recommendations.
136 +#
137 +
138 +import fnmatch
139 +from setuptools import find_packages, setup
140 +from setuptools.command.build_py import build_py as build_py_orig
141 +
142 +exclude = ['dbc2val.dbcfeeder']
143 +
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)]
151 +
152 +setup(
153 +    version_config={
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
161 +    },
162 +    setup_requires=['setuptools-git-versioning'],
163 +    cmdclass={'build_py': build_py},
164 +)