Skip to content

Commit cffa0e8

Browse files
authored
Merge pull request #22 from BlockScience/dev
v1.2.1 - moved logging system out of node container into module __init__ so logging format is configured immediately - removed print statements from build system and added appropriate log statements - updated component start/stop logging
2 parents 804402a + 1366286 commit cffa0e8

File tree

9 files changed

+144
-160
lines changed

9 files changed

+144
-160
lines changed

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
44

55
[project]
66
name = "koi-net"
7-
version = "1.2.0"
7+
version = "1.2.1"
88
description = "Implementation of KOI-net protocol in Python"
99
authors = [
1010
{name = "Luke Miller", email = "[email protected]"}

src/koi_net/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
from . import log_system

src/koi_net/build/artifact.py

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
from collections import deque
33
from typing import TYPE_CHECKING, Any
44

5+
import structlog
6+
57
from .consts import (
68
COMP_ORDER_OVERRIDE,
79
COMP_TYPE_OVERRIDE,
@@ -16,6 +18,8 @@
1618
if TYPE_CHECKING:
1719
from .assembler import NodeAssembler
1820

21+
log = structlog.stdlib.get_logger()
22+
1923

2024
class BuildArtifact:
2125
assembler: "NodeAssembler"
@@ -42,6 +46,7 @@ def collect_comps(self):
4246
continue
4347

4448
self.comp_dict[k] = v
49+
log.debug(f"Collected {len(self.comp_dict)} components")
4550

4651
def build_dependencies(self):
4752
"""Builds dependency graph and component type map.
@@ -76,7 +81,7 @@ def build_dependencies(self):
7681

7782
self.dep_graph[comp_name] = dep_names
7883

79-
[print(f"{i}: {comp_name} -> {deps}") for i, (comp_name, deps) in enumerate(self.dep_graph.items())]
84+
log.debug("Built dependency graph")
8085

8186
def build_init_order(self):
8287
"""Builds component initialization order using Kahn's algorithm."""
@@ -122,8 +127,7 @@ def build_init_order(self):
122127
cycle_nodes = set(self.dep_graph) - set(self.init_order)
123128
raise Exception(f"Found cycle in dependency graph, the following nodes could not be ordered: {cycle_nodes}")
124129

125-
print("\ninit order")
126-
[print(f"{i}: {comp_name}") for i, comp_name in enumerate(self.init_order)]
130+
log.debug(f"Resolved initialization order: {' -> '.join(self.init_order)}")
127131

128132
def build_start_order(self):
129133
"""Builds component start order.
@@ -150,8 +154,7 @@ def build_start_order(self):
150154
# order workers first
151155
self.start_order = workers + start_order
152156

153-
print("\nstart order")
154-
[print(f"{i}: {comp_name}") for i, comp_name in enumerate(self.start_order)]
157+
log.debug(f"Resolved start order: {' -> '.join(self.start_order)}")
155158

156159
def build_stop_order(self):
157160
"""Builds component stop order.
@@ -178,11 +181,9 @@ def build_stop_order(self):
178181
self.stop_order = workers + stop_order
179182
# reverse order from start order
180183
self.stop_order.reverse()
181-
182-
print("\nstop order")
183-
[print(f"{i}: {comp_name}") for i, comp_name in enumerate(self.stop_order)]
184184

185-
185+
log.debug(f"Resolved stop order: {' -> '.join(self.stop_order)}")
186+
186187
def visualize(self) -> str:
187188
"""Creates representation of dependency graph in Graphviz DOT language."""
188189

@@ -197,9 +198,11 @@ def visualize(self) -> str:
197198
self.graphviz = s
198199

199200
def build(self):
201+
log.debug("Creating build artifact...")
200202
self.collect_comps()
201203
self.build_dependencies()
202204
self.build_init_order()
203205
self.build_start_order()
204206
self.build_stop_order()
205207
self.visualize()
208+
log.debug("Done")

src/koi_net/build/assembler.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,28 +20,29 @@ class NodeAssembler:
2020
def __new__(cls) -> Self | NodeContainer:
2121
"""Returns assembled node container."""
2222

23+
log.debug(f"Assembling '{cls.__name__}'")
24+
2325
# builds assembly artifact if it doesn't exist
2426
if not cls._artifact:
2527
cls._artifact = BuildArtifact(cls)
2628
cls._artifact.build()
2729

2830
components = cls._build_components(cls._artifact)
2931

32+
log.debug("Returning assembled node")
3033
return NodeContainer(cls._artifact, **components)
3134

3235
@staticmethod
3336
def _build_components(artifact: BuildArtifact):
3437
"""Returns assembled components as a dict."""
3538

36-
print("\nbuilding components")
39+
log.debug("Building components...")
3740
components: dict[str, Any] = {}
3841
for comp_name in artifact.init_order:
3942
# for comp_name, (comp_type, dep_names) in dep_graph.items():
4043
comp = artifact.comp_dict[comp_name]
4144
comp_type = artifact.comp_types[comp_name]
4245

43-
print(comp, comp_type)
44-
4546
if comp_type == CompType.OBJECT:
4647
components[comp_name] = comp
4748

@@ -53,5 +54,6 @@ def _build_components(artifact: BuildArtifact):
5354
raise Exception(f"Couldn't find required component '{dep}'")
5455
dependencies[dep] = components[dep]
5556
components[comp_name] = comp(**dependencies)
56-
57+
log.debug("Done")
58+
5759
return components

src/koi_net/build/container.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,13 @@ def start(self):
3434
for comp_name in self._artifact.start_order:
3535
comp = getattr(self, comp_name)
3636
start_func = getattr(comp, START_FUNC_NAME)
37+
log.info(f"Starting {comp_name}...")
3738
start_func()
3839

3940
def stop(self):
4041
log.info("Stopping node...")
4142
for comp_name in self._artifact.stop_order:
4243
comp = getattr(self, comp_name)
4344
stop_func = getattr(comp, STOP_FUNC_NAME)
44-
stop_func()
45+
log.info(f"Stopping {comp_name}...")
46+
stop_func()

src/koi_net/core.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
from .cache import Cache
2-
from .log_system import LogSystem
32
from .build.assembler import NodeAssembler
43
from .config.core import NodeConfig
54
from .config.proxy import ConfigProxy
@@ -36,7 +35,6 @@
3635
)
3736

3837
class BaseNode(NodeAssembler):
39-
log_system: LogSystem = LogSystem
4038
kobj_queue: KobjQueue = KobjQueue
4139
event_queue: EventQueue = EventQueue
4240
poll_event_buf: EventBuffer = EventBuffer

0 commit comments

Comments
 (0)