From cb3a50cd3626d6a67beb39d2c9dd897f43379d70 Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Wed, 20 Jan 2021 01:24:01 +0800 Subject: [PATCH] pybind/mgr/cephadm/inventory: cast variable to expected type to silence mypy warnings like: cephadm/module.py:55: note: In module imported here, cephadm/__init__.py:6: note: ... from here: cephadm/inventory.py: note: In member "load" of class "SpecStore": cephadm/inventory.py:130: error: Invalid index type "str" for "str"; expected type "Union[int, slice]" cephadm/inventory.py:131: error: Invalid index type "str" for "str"; expected type "Union[int, slice]" Signed-off-by: Kefu Chai --- src/pybind/mgr/cephadm/inventory.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/pybind/mgr/cephadm/inventory.py b/src/pybind/mgr/cephadm/inventory.py index 3283957372a73..1b51547c6c996 100644 --- a/src/pybind/mgr/cephadm/inventory.py +++ b/src/pybind/mgr/cephadm/inventory.py @@ -2,7 +2,7 @@ import datetime from copy import copy import json import logging -from typing import TYPE_CHECKING, Dict, List, Iterator, Optional, Any, Tuple, Set +from typing import cast, TYPE_CHECKING, Dict, List, Iterator, Optional, Any, Tuple, Set import orchestrator from ceph.deployment import inventory @@ -126,9 +126,9 @@ class SpecStore(): for k, v in self.mgr.get_store_prefix(SPEC_STORE_PREFIX).items(): service_name = k[len(SPEC_STORE_PREFIX):] try: - v = json.loads(v) - spec = ServiceSpec.from_json(v['spec']) - created = str_to_datetime(v['created']) + j = cast(Dict[str, dict], json.loads(v)) + spec = ServiceSpec.from_json(j['spec']) + created = str_to_datetime(cast(str, j['created'])) self.specs[service_name] = spec self.spec_created[service_name] = created self.mgr.log.debug('SpecStore: loaded spec for %s' % ( -- 2.39.5