Skip to content

Commit 107782c

Browse files
committed
Move print function from __main__ to printing.py and give better names
* Move __main__.list_od() to printing.format_node() * Rename GerPrintEntryHeader() to format_od_header() * Rename GetPrintEntry() to format_od_object()
1 parent 08c4b9e commit 107782c

File tree

7 files changed

+313
-229
lines changed

7 files changed

+313
-229
lines changed

src/objdictgen/__main__.py

+3-55
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030

3131
import objdictgen
3232
from objdictgen import jsonod
33-
from objdictgen.printing import GetPrintEntry
33+
from objdictgen.printing import format_node
3434
from objdictgen.typing import TDiffEntries, TDiffNodes, TPath
3535

3636
T = TypeVar('T')
@@ -122,59 +122,6 @@ def _printlines(entries: TDiffEntries):
122122
_printlines(diffs[index])
123123

124124

125-
def list_od(
126-
od: "Node",
127-
name: str,
128-
opts: argparse.Namespace) -> Generator[str, None, None]:
129-
"""Generator for producing the output for odg list"""
130-
131-
# Get the indexes to print and determine the order
132-
keys = od.GetAllIndices(sort=opts.sort)
133-
if opts.index:
134-
indexp = [jsonod.str_to_int(i) for i in opts.index]
135-
keys = [k for k in keys if k in indexp]
136-
missing = ", ".join((str(k) for k in indexp if k not in keys))
137-
if missing:
138-
raise ValueError(f"Unknown index {missing}")
139-
140-
profiles = []
141-
if od.DS302:
142-
loaded, equal = jsonod.compare_profile("DS-302", od.DS302)
143-
if equal:
144-
extra = "DS-302 (equal)"
145-
elif loaded:
146-
extra = "DS-302 (not equal)"
147-
else:
148-
extra = "DS-302 (not loaded)"
149-
profiles.append(extra)
150-
151-
pname = od.ProfileName
152-
if pname and pname != 'None':
153-
loaded, equal = jsonod.compare_profile(pname, od.Profile, od.SpecificMenu)
154-
if equal:
155-
extra = f"{pname} (equal)"
156-
elif loaded:
157-
extra = f"{pname} (not equal)"
158-
else:
159-
extra = f"{pname} (not loaded)"
160-
profiles.append(extra)
161-
162-
if not opts.compact:
163-
yield f"{Fore.CYAN}File:{Style.RESET_ALL} {name}"
164-
yield f"{Fore.CYAN}Name:{Style.RESET_ALL} {od.Name} [{od.Type.upper()}] {od.Description}"
165-
tp = ", ".join(profiles) or None
166-
yield f"{Fore.CYAN}Profiles:{Style.RESET_ALL} {tp}"
167-
if od.ID:
168-
yield f"{Fore.CYAN}ID:{Style.RESET_ALL} {od.ID}"
169-
yield ""
170-
171-
# Print the parameters
172-
yield from GetPrintEntry(
173-
od, keys=keys, short=opts.short, compact=opts.compact, unused=opts.unused,
174-
verbose=opts.all, raw=opts.raw
175-
)
176-
177-
178125
@debug_wrapper()
179126
def main(debugopts: DebugOpts, args: Sequence[str]|None = None):
180127
""" Main command dispatcher """
@@ -265,6 +212,7 @@ def main(debugopts: DebugOpts, args: Sequence[str]|None = None):
265212
subp.add_argument('--raw', action="store_true", help="Show raw parameter values")
266213
subp.add_argument('--short', action="store_true", help="Do not list sub-index")
267214
subp.add_argument('--unused', action="store_true", help="Include unused profile parameters")
215+
subp.add_argument('--internal', action="store_true", help="Show internal data")
268216
subp.add_argument('-D', '--debug', **opt_debug) # type: ignore[arg-type]
269217
subp.add_argument('--no-color', action='store_true', help="Disable colored output")
270218

@@ -400,7 +348,7 @@ def main(debugopts: DebugOpts, args: Sequence[str]|None = None):
400348
print(Fore.LIGHTBLUE_EX + name + '\n' + "=" * len(name) + Style.RESET_ALL)
401349

402350
od = open_od(name)
403-
for line in list_od(od, name, opts):
351+
for line in format_node(od, name, index=opts.index, opts=opts):
404352
print(line)
405353

406354

src/objdictgen/nodelist.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,14 @@
2020

2121
import errno
2222
import os
23-
from pathlib import Path
2423
import shutil
2524
from dataclasses import dataclass
25+
from pathlib import Path
2626

2727
from objdictgen import eds_utils
2828
from objdictgen.node import Node
2929
from objdictgen.nodemanager import NodeManager
30-
from objdictgen.printing import GetPrintEntry
30+
from objdictgen.printing import format_node
3131
from objdictgen.typing import TODObj, TODSubObj, TPath
3232

3333
# ------------------------------------------------------------------------------
@@ -270,11 +270,11 @@ def main(projectdir):
270270
print("MasterNode :")
271271
node = manager.CurrentNode
272272
if node:
273-
for line in GetPrintEntry(node, raw=True):
273+
for line in format_node(node, "MasterNode", raw=True):
274274
print(line)
275275
print()
276276
for nodeid, nodeinfo in nodelist.SlaveNodes.items():
277277
print(f"SlaveNode name={nodeinfo.Name} id=0x{nodeid:02X} :")
278-
for line in GetPrintEntry(nodeinfo.Node):
278+
for line in format_node(nodeinfo.Node, nodeinfo.Name):
279279
print(line)
280280
print()

src/objdictgen/nodemanager.py

-5
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,6 @@
2424
from pathlib import Path
2525
from typing import Container, Generic, TypeVar, cast
2626

27-
import colorama
28-
2927
from objdictgen import maps
3028
from objdictgen.maps import OD, ODMapping
3129
from objdictgen.node import Node
@@ -35,9 +33,6 @@
3533

3634
log = logging.getLogger('objdictgen')
3735

38-
Fore = colorama.Fore
39-
Style = colorama.Style
40-
4136
UNDO_BUFFER_LENGTH = 20
4237

4338
type_model = re.compile(r'([\_A-Z]*)([0-9]*)')

0 commit comments

Comments
 (0)