diff --git a/servo/configuration.py b/servo/configuration.py index 3db2992a8..9fbf05e8f 100644 --- a/servo/configuration.py +++ b/servo/configuration.py @@ -23,6 +23,7 @@ import pathlib import re from typing import Any, Callable, Dict, List, Optional, Type, Union +from typing_extensions import TypeAlias import pydantic import yaml @@ -37,6 +38,7 @@ "BaseConfiguration", "BaseServoConfiguration", "OpsaniOptimizer", + "OptimizerTypes", "CommonConfiguration", ] @@ -178,6 +180,9 @@ class Config: } +OptimizerTypes: TypeAlias = Union[OpsaniOptimizer, AppdynamicsOptimizer] + + DEFAULT_TITLE = "Base Connector Configuration Schema" @@ -564,7 +569,7 @@ class BaseServoConfiguration(AbstractBaseConfiguration, abc.ABC): name: Optional[str] = None description: Optional[str] = None - optimizer: Union[OpsaniOptimizer, AppdynamicsOptimizer] = {} + optimizer: OptimizerTypes = {} connectors: Optional[Union[List[str], Dict[str, str]]] = pydantic.Field( None, description=( @@ -604,7 +609,7 @@ def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) # If optimizer hasn't failed validation then it was set by environment variables. - # Explicityly assign it so that its included in pydantic's __fields_set__ + # Explicitly assign it so that its included in pydantic's __fields_set__ # Ideally we could just set include=True on the Field but that doesn't seem to override exclude_unset self.optimizer = self.optimizer diff --git a/servo/connector.py b/servo/connector.py index d104def85..7bee3a5c1 100644 --- a/servo/connector.py +++ b/servo/connector.py @@ -135,23 +135,15 @@ class BaseConnector( ) """Shared configuration from our parent Servo instance.""" - _optimizer: Optional[ - Union[ - servo.configuration.OpsaniOptimizer, - servo.configuration.AppdynamicsOptimizer, - ] - ] = pydantic.PrivateAttr(default=None) + _optimizer: Optional[servo.configuration.OptimizerTypes] = pydantic.PrivateAttr( + default=None + ) """Shared optimizer from our parent Servo instance.""" @property def optimizer( self, - ) -> Optional[ - Union[ - servo.configuration.OpsaniOptimizer, - servo.configuration.AppdynamicsOptimizer, - ] - ]: + ) -> Optional[servo.configuration.OptimizerTypes]: """The optimizer for the connector.""" return self._optimizer diff --git a/servo/runner.py b/servo/runner.py index bfc87af88..99055a419 100644 --- a/servo/runner.py +++ b/servo/runner.py @@ -74,10 +74,7 @@ def connected(self) -> bool: @property def optimizer( self, - ) -> Union[ - servo.configuration.OpsaniOptimizer, - servo.configuration.AppdynamicsOptimizer, - ]: + ) -> servo.configuration.OptimizerTypes: return self.servo.optimizer @property