Skip to content

Commit fb5b168

Browse files
committed
Enhance error handling in Command class and optimize _Director class by reusing _iris reference
1 parent 58df156 commit fb5b168

File tree

2 files changed

+11
-6
lines changed

2 files changed

+11
-6
lines changed

src/iop/_cli.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from __future__ import annotations
22
import argparse
33
import json
4+
import logging
45
import os
56
from dataclasses import dataclass
67
from enum import Enum, auto
@@ -161,7 +162,10 @@ def _handle_init(self) -> None:
161162

162163
def _handle_help(self) -> None:
163164
create_parser().print_help()
164-
print(f"\nDefault production: {_Director.get_default_production()}")
165+
try:
166+
print(f"\nDefault production: {_Director.get_default_production()}")
167+
except Exception:
168+
logging.warning("Could not retrieve default production.")
165169

166170
def create_parser() -> argparse.ArgumentParser:
167171
"""Create and configure argument parser"""

src/iop/_director.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -268,29 +268,30 @@ def test_component(target,message=None,classname=None,body=None):
268268
classname: the name of the class to test
269269
body: the body of the message
270270
"""
271+
iris = _iris.get_iris()
271272
if not message:
272-
message = _iris.get_iris().cls('Ens.Request')._New()
273+
message = iris.cls('Ens.Request')._New()
273274
if classname:
274275
# if classname start with 'iris.' then create an iris object
275276
if classname.startswith('iris.'):
276277
# strip the iris. prefix
277278
classname = classname[5:]
278279
if body:
279-
message = _iris.get_iris().cls(classname)._New(body)
280+
message = iris.cls(classname)._New(body)
280281
else:
281-
message = _iris.get_iris().cls(classname)._New()
282+
message = iris.cls(classname)._New()
282283
# else create a python object
283284
else:
284285
# python message are casted to Grongier.PEX.Message
285-
message = _iris.get_iris().cls("IOP.Message")._New()
286+
message = iris.cls("IOP.Message")._New()
286287
message.classname = classname
287288
if body:
288289
message.json = body
289290
else:
290291
message.json = _Utils.string_to_stream("{}")
291292
# serialize the message
292293
serial_message = dispatch_serializer(message)
293-
response = _iris.get_iris().cls('IOP.Utils').dispatchTestComponent(target,serial_message)
294+
response = iris.cls('IOP.Utils').dispatchTestComponent(target,serial_message)
294295
try:
295296
deserialized_response = dispatch_deserializer(response)
296297
except ImportError as e:

0 commit comments

Comments
 (0)