From e73296b34a2bdbe456b17c160cc92ed349d1388c Mon Sep 17 00:00:00 2001 From: Christophe Bedard Date: Tue, 30 Mar 2021 18:17:50 -0400 Subject: [PATCH] Fix typing info Signed-off-by: Christophe Bedard --- .../data_model/__init__.py | 7 +++ .../data_model/cpu_time.py | 6 +-- .../data_model/memory_usage.py | 6 +-- .../tracetools_analysis/data_model/profile.py | 6 +-- .../tracetools_analysis/data_model/ros2.py | 52 ++++++------------- 5 files changed, 28 insertions(+), 49 deletions(-) diff --git a/tracetools_analysis/tracetools_analysis/data_model/__init__.py b/tracetools_analysis/tracetools_analysis/data_model/__init__.py index 4451949..4459da6 100644 --- a/tracetools_analysis/tracetools_analysis/data_model/__init__.py +++ b/tracetools_analysis/tracetools_analysis/data_model/__init__.py @@ -15,6 +15,13 @@ """Base data model module.""" +from typing import Any +from typing import Dict +from typing import List + + +DataModelIntermediateStorage = List[Dict[str, Any]] + class DataModel(): """ diff --git a/tracetools_analysis/tracetools_analysis/data_model/cpu_time.py b/tracetools_analysis/tracetools_analysis/data_model/cpu_time.py index b66c7e4..f255e16 100644 --- a/tracetools_analysis/tracetools_analysis/data_model/cpu_time.py +++ b/tracetools_analysis/tracetools_analysis/data_model/cpu_time.py @@ -18,6 +18,7 @@ import pandas as pd from . import DataModel +from . import DataModelIntermediateStorage class CpuTimeDataModel(DataModel): @@ -30,10 +31,7 @@ class CpuTimeDataModel(DataModel): def __init__(self) -> None: """Create a CpuTimeDataModel.""" super().__init__() - # Intermediate - self._times = [] - # Final - self.times = None + self._times: DataModelIntermediateStorage = [] def add_duration( self, diff --git a/tracetools_analysis/tracetools_analysis/data_model/memory_usage.py b/tracetools_analysis/tracetools_analysis/data_model/memory_usage.py index 7785cbc..0eabf8a 100644 --- a/tracetools_analysis/tracetools_analysis/data_model/memory_usage.py +++ b/tracetools_analysis/tracetools_analysis/data_model/memory_usage.py @@ -18,6 +18,7 @@ import pandas as pd from . import DataModel +from . import DataModelIntermediateStorage class MemoryUsageDataModel(DataModel): @@ -31,10 +32,7 @@ class MemoryUsageDataModel(DataModel): def __init__(self) -> None: """Create a MemoryUsageDataModel.""" super().__init__() - # Intermediate - self._memory_diff = [] - # Final - self.memory_diff = None + self._memory_diff: DataModelIntermediateStorage = [] def add_memory_difference( self, diff --git a/tracetools_analysis/tracetools_analysis/data_model/profile.py b/tracetools_analysis/tracetools_analysis/data_model/profile.py index 6d1bcd9..0845647 100644 --- a/tracetools_analysis/tracetools_analysis/data_model/profile.py +++ b/tracetools_analysis/tracetools_analysis/data_model/profile.py @@ -20,6 +20,7 @@ from typing import Optional import pandas as pd from . import DataModel +from . import DataModelIntermediateStorage class ProfileDataModel(DataModel): @@ -33,10 +34,7 @@ class ProfileDataModel(DataModel): def __init__(self) -> None: """Create a ProfileDataModel.""" super().__init__() - # Intermediate - self._times = [] - # Final - self.times = None + self._times: DataModelIntermediateStorage = [] def add_duration( self, diff --git a/tracetools_analysis/tracetools_analysis/data_model/ros2.py b/tracetools_analysis/tracetools_analysis/data_model/ros2.py index c0d6816..3d10b6c 100644 --- a/tracetools_analysis/tracetools_analysis/data_model/ros2.py +++ b/tracetools_analysis/tracetools_analysis/data_model/ros2.py @@ -18,6 +18,7 @@ import pandas as pd from . import DataModel +from . import DataModelIntermediateStorage class Ros2DataModel(DataModel): @@ -30,43 +31,22 @@ class Ros2DataModel(DataModel): def __init__(self) -> None: """Create a Ros2DataModel.""" super().__init__() - - # Intermediate - self._contexts = [] - self._nodes = [] - self._publishers = [] - self._subscriptions = [] - self._subscription_objects = [] - self._services = [] - self._clients = [] - self._timers = [] - self._timer_node_links = [] - self._callback_objects = [] - self._callback_symbols = [] - self._lifecycle_state_machines = [] - self._callback_instances = [] - self._lifecycle_transitions = [] - - # Final # Objects (one-time events, usually when something is created) - self.contexts = None - self.nodes = None - self.publishers = None - self.subscriptions = None - self.subscription_objects = None - self.services = None - self.clients = None - self.timers = None - self.timer_node_links = None - - self.callback_objects = None - self.callback_symbols = None - self.lifecycle_state_machines = None - + self._contexts: DataModelIntermediateStorage = [] + self._nodes: DataModelIntermediateStorage = [] + self._publishers: DataModelIntermediateStorage = [] + self._subscriptions: DataModelIntermediateStorage = [] + self._subscription_objects: DataModelIntermediateStorage = [] + self._services: DataModelIntermediateStorage = [] + self._clients: DataModelIntermediateStorage = [] + self._timers: DataModelIntermediateStorage = [] + self._timer_node_links: DataModelIntermediateStorage = [] + self._callback_objects: DataModelIntermediateStorage = [] + self._callback_symbols: DataModelIntermediateStorage = [] + self._lifecycle_state_machines: DataModelIntermediateStorage = [] # Events (multiple instances, may not have a meaningful index) - self.callback_instances = None - # Lifecycle state transitions (may not have a meaningful index) - self.lifecycle_transitions = None + self._callback_instances: DataModelIntermediateStorage = [] + self._lifecycle_transitions: DataModelIntermediateStorage = [] def add_context( self, context_handle, timestamp, pid, version @@ -250,9 +230,7 @@ class Ros2DataModel(DataModel): if self._lifecycle_state_machines: self.lifecycle_state_machines.set_index( 'state_machine_handle', inplace=True, drop=True) - # Events (multiple instances, may not have a meaningful index) self.callback_instances = pd.DataFrame.from_dict(self._callback_instances) - # Lifecycle state transitions (may not have a meaningful index) self.lifecycle_transitions = pd.DataFrame.from_dict(self._lifecycle_transitions) def print_data(self) -> None: