Fix return types hints on get_app_data methods

Change-Id: I696ec38f2bba9963150a0450efefe24d37795e6f
This commit is contained in:
Samuel Walladge 2022-09-23 09:56:15 +09:30
parent 6a0d9ac42c
commit c0a56f4928
2 changed files with 10 additions and 10 deletions

View File

@ -15,7 +15,7 @@
"""Common interfaces not charm specific."""
import logging
import typing
from typing import Dict, List, Optional
import ops.model
@ -84,7 +84,7 @@ class OperatorPeers(Object):
return self.framework.model.get_relation(self.relation_name)
@property
def _app_data_bag(self) -> typing.Dict[str, str]:
def _app_data_bag(self) -> Dict[str, str]:
"""Return all app data on peer relation."""
if not self.peers_rel:
return {}
@ -105,22 +105,22 @@ class OperatorPeers(Object):
logging.info("Peers on_changed")
self.on.peers_data_changed.emit()
def set_app_data(self, settings: typing.Dict[str, str]) -> None:
def set_app_data(self, settings: Dict[str, str]) -> None:
"""Publish settings on the peer app data bag."""
for k, v in settings.items():
self._app_data_bag[k] = v
def get_app_data(self, key: str) -> None:
def get_app_data(self, key: str) -> Optional[str]:
"""Get the value corresponding to key from the app data bag."""
if not self.peers_rel:
return None
return self._app_data_bag.get(key)
def get_all_app_data(self) -> None:
def get_all_app_data(self) -> Dict[str, str]:
"""Return all the app data from the relation."""
return self._app_data_bag
def get_all_unit_values(self, key: str) -> typing.List[str]:
def get_all_unit_values(self, key: str) -> List[str]:
"""Retrieve value for key from all related units."""
values = []
if not self.peers_rel:
@ -129,12 +129,12 @@ class OperatorPeers(Object):
values.append(self.peers_rel.data[unit].get(key))
return values
def set_unit_data(self, settings: typing.Dict[str, str]) -> None:
def set_unit_data(self, settings: Dict[str, str]) -> None:
"""Publish settings on the peer unit data bag."""
for k, v in settings.items():
self.peers_rel.data[self.model.unit][k] = v
def all_joined_units(self) -> typing.List[ops.model.Unit]:
def all_joined_units(self) -> List[ops.model.Unit]:
"""All remote units joined to the peer relation."""
return set(self.peers_rel.units)

View File

@ -17,7 +17,7 @@
import json
import logging
import cryptography.hazmat.primitives.serialization as serialization
from typing import Callable, List, Tuple
from typing import Callable, List, Tuple, Optional
from urllib.parse import urlparse
import ops.charm
@ -484,7 +484,7 @@ class BasePeerHandler(RelationHandler):
"""Store data in peer app db."""
self.interface.set_app_data(settings)
def get_app_data(self, key: str) -> str:
def get_app_data(self, key: str) -> Optional[str]:
"""Retrieve data from the peer relation."""
return self.interface.get_app_data(key)