Skip to content

Commit 95e3671

Browse files
committed
replace confuse package with dynaconf
1 parent 52bf157 commit 95e3671

20 files changed

+383
-618
lines changed

setup.cfg

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,7 @@ package_dir =
3030
# DON'T CHANGE THE FOLLOWING LINE! IT WILL BE UPDATED BY PYSCAFFOLD!
3131
# Add here dependencies of your project (semicolon/line-separated), e.g.
3232
install_requires =
33-
importlib-metadata; python_version<"3.8"
34-
confuse
33+
dynaconf
3534
pandas
3635
aiomisc
3736
aiodebug

src/data_agent/broker/agent.py

Lines changed: 15 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,7 @@
55

66
from data_agent import __version__
77
from data_agent.api import ServiceApi
8-
from data_agent.config_manager import (
9-
PersistentComponent,
10-
component_config_view,
11-
init_configuration,
12-
)
13-
from data_agent.config_template import (
14-
CONFIG_SECTION_BROKER,
15-
CONFIG_SECTION_CONNECTION_MANAGER,
16-
CONFIG_SECTION_DAQ_SCHEDULER,
17-
CONFIG_SECTION_LOG,
18-
CONFIG_SECTION_SAFE_MANIPULATOR,
19-
CONFIG_SECTION_SERVICE,
20-
)
8+
from data_agent.config_manager import ConfigManager
219
from data_agent.connection_manager import ConnectionManager
2210
from data_agent.daq_scheduler import create_daq_scheduler
2311
from data_agent.exchanger import DataExchanger
@@ -35,10 +23,10 @@ class BrokerAgent:
3523
_scheduler = None
3624

3725
async def init(self, loop, is_service=False, enable_persistance=True):
38-
self._config, _ = init_configuration(is_service, loop)
39-
service_config = component_config_view(self._config, CONFIG_SECTION_SERVICE)
40-
broker_config = component_config_view(self._config, CONFIG_SECTION_BROKER)
41-
log_config = component_config_view(self._config, CONFIG_SECTION_LOG)
26+
self._config = ConfigManager(loop=loop, enable_persistance=enable_persistance)
27+
28+
service_config = self._config.get("service")
29+
broker_config = self._config.get("broker")
4230

4331
uri_pattern = re.compile(r"(\b(?:[a-z]{,5})://.*:)(.*)(@[^ \b]+)", re.MULTILINE)
4432
broker_uri_wo_pass = re.sub(uri_pattern, r"\1**********\3", broker_config.uri)
@@ -50,8 +38,10 @@ async def init(self, loop, is_service=False, enable_persistance=True):
5038
f" FQN: {service_config.domain}.{service_config.type}.{service_config.id}"
5139
)
5240
log.info(f" Broker URI: {broker_uri_wo_pass}")
53-
log.info(f" Config directory: {self._config.config_dir()}")
54-
log.info(f' Logs path: {log_config["handlers"]["file"]["filename"]}')
41+
log.info(f" Config directory: {self._config.base_path}")
42+
log.info(
43+
f" Logs path: {self._config.get('log.handlers.file.filename')}"
44+
)
5545
log.info(
5646
"***********************************************************************"
5747
)
@@ -70,29 +60,15 @@ async def init(self, loop, is_service=False, enable_persistance=True):
7060
if handler.get_name() == "amqp":
7161
await self._broker_conn.init_logging_handler(handler)
7262

73-
self._connection_manager = ConnectionManager(
74-
PersistentComponent(
75-
self._config,
76-
CONFIG_SECTION_CONNECTION_MANAGER,
77-
enable_persistence=enable_persistance,
78-
)
79-
)
63+
self._connection_manager = ConnectionManager(config=self._config)
8064
self._safe_manipulator = SafeManipulator(
81-
self._connection_manager,
82-
PersistentComponent(
83-
self._config,
84-
CONFIG_SECTION_SAFE_MANIPULATOR,
85-
enable_persistence=enable_persistance,
86-
),
65+
connection_manager=self._connection_manager,
66+
config=self._config,
8767
)
8868
self._scheduler = create_daq_scheduler(
89-
self._broker_conn,
90-
self._connection_manager,
91-
PersistentComponent(
92-
self._config,
93-
CONFIG_SECTION_DAQ_SCHEDULER,
94-
enable_persistence=enable_persistance,
95-
),
69+
broker=self._broker_conn,
70+
conn_manager=self._connection_manager,
71+
config=self._config,
9672
)
9773
self._data_exchanger = DataExchanger(self._connection_manager)
9874
api = ServiceApi(

src/data_agent/broker/cli.py

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,14 @@
77
from data_agent import __version__
88
from data_agent.broker.instr_exec import cli_exec
99
from data_agent.broker.instr_list_services import cli_list_services
10-
from data_agent.config_manager import component_config_view, init_configuration
11-
from data_agent.config_template import CONFIG_SECTION_BROKER, CONFIG_SECTION_SERVICE
12-
13-
# logging.basicConfig(level=os.environ.get("LOGLEVEL", "DEBUG"))
14-
# logging.getLogger().addHandler(logging.StreamHandler())
10+
from data_agent.config_manager import ConfigManager
1511

1612
log = logging.getLogger(__name__)
1713

1814

1915
async def create_amq_broker_connector(config, keep_alive_listen):
20-
config_broker = component_config_view(config, CONFIG_SECTION_BROKER)
21-
config_service = component_config_view(config, CONFIG_SECTION_SERVICE)
16+
config_broker = config.get("broker")
17+
config_service = config.get("service")
2218

2319
amq = AmqBrokerConnector(
2420
amqp_uri=config_broker.uri,
@@ -35,21 +31,22 @@ def run():
3531
loop = asyncio.get_event_loop()
3632

3733
parser = argparse.ArgumentParser(description="Broker Connected Data Agent CLI")
34+
35+
config = ConfigManager(loop=loop, parser=parser)
36+
37+
# Initialize subparser after ConfigManager identified configurable settings
3838
subparsers = parser.add_subparsers(dest="instruction", help="Execute API call")
3939
subparsers.add_parser("exec")
4040
subparsers.add_parser("list_services")
4141

42-
config, unrecognized_args = init_configuration(
43-
loop=loop, is_service=False, parser=parser
44-
)
4542
known_args, _ = parser.parse_known_args()
43+
print(known_args)
4644

47-
config_service = component_config_view(config, CONFIG_SECTION_SERVICE)
45+
config_service = config.get("service")
4846

4947
log.info(
50-
'***** Broker Connected Agent CLI: "{}", Instruction: "{}", Ver: {} ******'.format(
51-
config_service["id"], known_args.instruction, __version__
52-
)
48+
f'***** Broker Connected Agent CLI: "{config_service.id}", '
49+
f'Instruction: "{known_args.instruction}", Ver: {__version__} ******'
5350
)
5451

5552
broker = loop.run_until_complete(
@@ -61,14 +58,13 @@ def run():
6158
task = None
6259

6360
if known_args.instruction == "exec":
64-
task = cli_exec(broker, config, unrecognized_args)
61+
task = cli_exec(broker, config)
6562
elif known_args.instruction == "list_services":
66-
task = cli_list_services(broker, config, unrecognized_args)
63+
task = cli_list_services(broker, config)
6764
else:
6865
raise Exception("Unknown instruction")
6966

7067
loop.run_until_complete(task)
71-
7268
loop.run_until_complete(broker.close())
7369
loop.run_until_complete(loop.shutdown_asyncgens())
7470
loop.close()

src/data_agent/broker/instr_exec.py

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,6 @@
66
from aio_pika.exceptions import DeliveryError
77
from async_timeout import timeout
88

9-
from data_agent.config_manager import component_config_view
10-
from data_agent.config_template import CONFIG_SECTION_SERVICE
11-
129
global_kwargs = []
1310

1411

@@ -88,16 +85,16 @@ async def print_formatted_result(
8885
print("\n\r------------------------------------------------")
8986

9087

91-
async def cli_exec(broker, config, args):
92-
config_service = component_config_view(config, CONFIG_SECTION_SERVICE)
88+
async def cli_exec(broker, config):
89+
config_service = config.get("service")
9390

9491
service_id = config_service.id
9592
service_domain = config_service.domain
9693
service_type = config_service.type
9794

9895
await print_formatted_result(
99-
args[0],
100-
args[1:] if len(args) > 1 else [],
96+
config.unknown_args[0],
97+
config.unknown_args[1:] if len(config.unknown_args) > 1 else [],
10198
broker,
10299
service_domain,
103100
service_id,

src/data_agent/broker/instr_list_services.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
from pprint import pprint
33

44

5-
async def cli_list_services(broker, config, args):
5+
async def cli_list_services(broker, config):
66
# Sleep to collect keep alives
77
print("Waiting 5 seconds for keep alives...")
88
await asyncio.sleep(5)

0 commit comments

Comments
 (0)